Jika Anda harus mengebor kedalaman tertentu untuk suatu proyek, Anda memerlukan bor bangku dengan tampilan kedalaman. Kebanyakan latihan bangku memiliki penggaris dengan panah untuk membaca. Keberhasilan pengeboran tergantung pada seberapa akurat Anda dapat membaca posisi yang diinginkan. Dalam proyek Arduino ini saya menyajikan proposal alternatif:Tampilan kedalaman pengeboran dengan sensor gyro dan tampilan 7 segmen dengan dukungan Arduino.
Mesin yang paling sering saya gunakan di bengkel saya bukanlah gergaji atau mesin gerinda. Sejauh ini latihan bangku. Terlepas dari proyeknya, itu sebenarnya selalu digunakan. Jika saya membutuhkan kedalaman pengeboran tertentu, saya dapat menggunakan penggaris bawaan pada mesin. Dan ingat kedalaman yang harus saya bor. Ini benar-benar bekerja dengan baik.
Tetapi dengan bertambahnya usia - ya, ya, ya - semakin sulit bagi saya untuk membaca kedalaman dengan akurasi milimeter. Dan jika cahayanya tidak cukup terang, hampir tidak mungkin untuk membacanya. Tapi hanya memakai kacamata untuk ini? Dan setelah mengebor, di mana menyimpan kacamata? Saya belum sejauh itu.
Sesuai dengan moto Paul Akers dari "2 Secon Lean":
Harus ada solusi yang lebih baik, Anda hanya perlu memikirkan dan membuatnya.
Mengukur Kemungkinan
Tentu saja saya bisa meletakkan kaca pembesar di depan timbangan agar penggaris lebih mudah dibaca. Itu akan meningkatkan pembacaan, tetapi tidak membantu bahwa saya harus mengingat pengukuran dalam setiap kasus. Dan jika Anda membuat kerajinan tangan, pasti menyenangkan juga.
Itulah mengapa solusi elektronik jauh lebih baik. Lebih disukai di ruang kecil sehingga semuanya pas di sebelah sakelar hidup / mati bor. Untuk kasus seperti itu saya suka menggunakan Arduino Nano. Ini memiliki cukup pin untuk mengontrol hampir semua hal dan juga kecil.
Tapi bagaimana Anda mengukur kedalaman pengeboran? Ada beberapa kemungkinan untuk pengukuran panjang. Pasang pengukur ultrasonik? Bisa bekerja, tetapi hanya dengan sedikit mekanik, yang bergerak bersama bor sebagai permukaan refleksi. Atau gunakan encoder yang digerakkan kawat? Itu mungkin, tetapi sangat kompleks, jika Anda membuatnya sendiri:dengan meja putar, penghalang cahaya garpu, dan pegas kembali. Lebih baik mengambil rotary encoder segera? Itu berarti lebih sedikit komponen - ya, tetapi akan terlalu kasar, Anda harus memasang roda gigi untuk terjemahan.
Oke, jadi pikirkan lebih lanjut.
Bor saya, seperti kebanyakan, memiliki roda tangan di samping untuk menyesuaikan kedalaman. Hal ini dapat diputar kira-kira. 270 °. Jadi bahkan tidak satu putaran penuh.
Ini sempurna untuk pengukuran sudut dengan sensor gyro. Sambungan kabel tidak dapat dipelintir dan hanya diperlukan satu komponen murah. Sensor gyro juga dapat dipasang dengan sangat mudah langsung ke sumbu putar handwheel.
Konsep
Saya selalu melanjutkan dengan cara yang sama saat menentukan kedalaman pengeboran:gores permukaan dengan bor, catat koordinatnya, lalu tambahkan kedalaman pengeboran yang diinginkan dan terakhir bor sampai kedalaman tercapai.
Saya ingin mempertahankan proses dasar. Agar tidak mengebor terlalu dalam, saya ingin menerima informasi tentang kapan kedalaman pengeboran telah tercapai.
Sebuah tombol mengambil alih fungsi ini. Saat Anda menekannya, Arduino menyimpan posisi pengeboran saat ini sebagai nilai berhenti dan selalu dapat mengingatkan saya saat dicapai nanti.
Komponen yang tersisa, mengambil lebih banyak ruang dan lebih berat secara signifikan. Untungnya, rumah mesin saya terbuat dari logam. Itu sebabnya saya menggunakan magnet neodymium untuk memperbaikinya.
Pertanyaannya tetap, bagaimana seharusnya sensor dipasang ke mesin?
Sumbu bor memiliki mur segi enam SW17. Jadi saya hanya membutuhkan komponen cetak 3D yang menerima sensor dan dapat dipasang ke mur segi enam.
Komponen yang diperlukan
Arduino Nano
Sensor giroskop GY-521
Modul 7 segmen dengan 8 digit (versi SPI dengan IC MAX7219)
Tekan tombol
Tombol hidup/mati
Supply daya:klip baterai untuk baterai AA atau AAA atau bank daya
Rumah cetak 3D
Magnet neodimium
Koneksi Sensor Gyro
Sensor gyro terhubung melalui I2C. Jadi kita harus menggunakan A5 dan A4 untuk Nano.
VCC -> 5V
GND -> GND
SCL -> A5
SDA -> A4
XDA -> tidak terhubung
XCL -> tidak terhubung
ADO -> tidak terhubung
INT -> tidak terhubung
Modul 7-Segmen
Pin digital apa pun dapat digunakan saat menghubungkan modul 7-segmen. Pin diatur menggunakan sketsa Arduino.
VCC -> 3.3V
GND -> GND
DIN -> D12
CS -> H10
CLK -> H11
Tombol
Pin input tombol juga dapat dipilih secara bebas. Saya menggunakan pin D9.
Catu daya
Untuk power supply saya menggunakan 6 buah baterai AA. Setelah sakelar hidup / mati, mereka memasok listrik ke seluruh sistem.
Casing
Saya mendesain casing dengan Autodesk Fusion 360. Saya membuat cetakan 3D dengan Anycubic i3 Mega.
Magnet neodymium untuk pemasangan ke mesin direkatkan. Jika seluruh tampilan kedalaman pengeboran menghalangi, semuanya akan segera dilepas.
Sketsa Arduino
Saya menggunakan LedControl.h perpustakaan untuk mengontrol tampilan 7 segmen. Jika Anda belum menginstalnya, Anda harus menginstalnya terlebih dahulu menggunakan pengelola perpustakaan.
Sensor gyro terhubung melalui bus I2C. Saat mencari kemungkinan perpustakaan untuk sensor, saya kemudian memutuskan untuk tidak menggunakannya. Komunikasi dilakukan melalui Wire.h .
Di akhir artikel, Anda akan menemukan beberapa tautan yang membantu saya memahaminya.
Kontrol tampilan 7 segmen bekerja sangat baik dengan LedControl .
Setelah inisialisasi dengan pin, prosedur penyiapan hanya memerlukan beberapa persiapan untuk mengaktifkan tampilan dan menyesuaikan intensitas.
Di bagian loop, tampilan hanya menampilkan kedalaman pengeboran saat ini dan, jika disetel, posisi berhenti, juga sebagai angka.
Layar mengharapkan setiap digit sebagai tipe karakter. Saya ingin menggunakan tempat desimal sebagai akurasi. Fungsi dtostrf mengubah float menjadi array karakter. Kemudian menjadi string untuk menunjukkannya berdasarkan karakter di layar.
Ketika posisi berhenti tercapai, "StOP" muncul di layar. "t" kecil dapat dibuat menggunakan setRow prosedur dan pola bit yang sesuai B00001111.
Membaca sensor gyro bekerja melalui fungsi perpustakaan kawat. Saya hanya menggunakan akselerometer untuk menentukan posisi sudut.
Saat bekerja dengan koneksi USB ke Arduino IDE, semuanya bekerja dengan sempurna. Setelah mencabut dan menghubungkan ke sumber daya eksternal, sensor tidak memberikan data apa pun. Ini hanya berfungsi lagi setelah reset Arduino.
Itu memberi saya sakit kepala paling banyak di seluruh proyek. Bisa dibilang indikator kedalaman bor mungkin bisa menyelamatkan mata saya, tapi itulah sebabnya saya mencabut hampir semua rambut saya!
Setelah pencarian yang lama, menginstal waktu tunggu setelah bangun sensor adalah solusinya. Hal ini membuat penundaan (1000) perintah terpenting di seluruh kode sumber.
//menyiapkan sensor GY-521 //kami hanya menggunakan data akselerator Wire.begin(); Wire.beginTransmission(MPU); Wire .write(0x6B); Wire.write(0x00); // membangunkan MPU Wire.endTransmission(true);
//penundaan ini sangat diperlukan dalam kasus saya! delay(1000);
Wire.beginTransmission(MPU); Wire.write(0x1C); //daftar ACCEL_CONFIG Wire.write(0x10); //Tetapkan sebagai 00010000 untuk +/- 8g rentang skala penuh Wire.endTransmission(true);
Nilai offset harus ditentukan untuk sensor di awal, jika tidak, nilainya akan berfluktuasi. Di bagian penyiapan, 100 nilai diukur dan penyimpangannya dirata-rata.
Menghitung sudut dari data sensor tidak semudah itu. Tapi ada banyak petunjuk tentang cara melakukan perhitungan.
Sudut X dalam derajat dihitung menggunakan rumus ini:
Namun, nilai sensor akselerasi sangat berfluktuasi. Oleh karena itu, nilai yang dihitung saat ini dirata-ratakan dengan nilai sebelumnya masing-masing 50%.
TotalAngleX =0,5 * TotalAngleX + 0,5 * AccAngleX;
Nilai sudut dikeluarkan dari -90 ° hingga + 90 ° oleh sensor. Tapi saya membutuhkan sudut dari 0 ° hingga 360 ° untuk konversi menjadi kedalaman pengeboran.
Saya belum menemukan solusi sederhana untuk ini. Namun, untuk aplikasi saya, cukup melihat apakah data sensor Z dan Y positif atau negatif. Dan ubah sudutnya sesuai dengan itu.
delta=0; if ((AccZ<0)) { delta=180.0-TotalAngleX*2.0; } jika ((AccZ>0 )&&(AccY<0)) { delta=360.0; } DrillingMachineAngle=TotalAngleX+delta;
//jika mendekati 360°, tampilan lebih baik 0 ° if (DrillingMachineAngle>350) {DrillingMachineAngle=0;}
Apa yang masih hilang adalah sudut rotasi maksimum yang dimungkinkan oleh handwheel. Cara termudah untuk melakukannya adalah dengan menentukan output sudut melalui Serial.print dan catat nilai maksimumnya.
Bagi saya itu 316 °. Dengan kedalaman pengeboran maksimum 50 mm, posisi saat ini dihitung sebagai berikut:
currentPos=50.0/316.0*DrillingMachineAngle;
Jika tombol ditekan, Arduino menyimpan posisi pengeboran saat ini. 8888 ditampilkan di layar dan menunggu sebentar selama 1 detik.
Jika posisi berhenti disetel, kedalaman pengeboran yang tersisa hingga berhenti akan ditampilkan di layar kanan.
Perakitan dan Uji
Sensor gyro paling baik diperbaiki dengan titik lem panas. Arahkan kabel koneksi melalui penutup. Itu saja untuk bagian ini.
Pada pengujian pertama, sensor gyro harus disejajarkan terlebih dahulu. Saya menginstalnya secara horizontal. Karena dudukan dirancang agar dapat diputar, dudukan dapat dengan mudah disesuaikan hingga 0,0 ditampilkan di layar.
Kemudian tes pertama dapat dimulai.
Secara keseluruhan, saya sangat senang dengan solusinya. Sensor bereaksi sangat cepat dan nilai yang dihitung sama persis dengan kedalaman bor.
Dan berkat layar LED besar, saya tidak perlu khawatir dengan kacamata berusia hingga 85 tahun untuk membaca kedalaman bor yang tepat.
Jadi, selalu ingat apa yang dikatakan Paul:Perbaiki apa yang mengganggu Anda!