Daftar Isi:

Measurino: Bukti Konsep Roda Pengukur: 9 Langkah
Measurino: Bukti Konsep Roda Pengukur: 9 Langkah

Video: Measurino: Bukti Konsep Roda Pengukur: 9 Langkah

Video: Measurino: Bukti Konsep Roda Pengukur: 9 Langkah
Video: CARA CEPAT MEMBACA MIKROMETER SEKRUP DAN KALIBRASI NYA❗️ 2024, Juli
Anonim
Measurino: Bukti Konsep Roda Pengukur
Measurino: Bukti Konsep Roda Pengukur

Measurino hanya menghitung jumlah putaran roda dan jarak yang ditempuh berbanding lurus dengan jari-jari roda itu sendiri. Ini adalah prinsip dasar Odometer dan saya telah memulai proyek ini terutama untuk mempelajari bagaimana menjaga sirkuit (ditangani oleh mikrokontroler Arduino), kompatibel dengan beberapa rentang jarak, dari milimeter hingga kilometer, dan untuk mengevaluasi kemungkinan masalah atau perbaikan.

Langkah 1: Bagian dan Komponen

  • Arduino Nano rev.3
  • Layar OLED 128×64 (SSD1306)
  • Encoder Putar Fotolistrik Inkremental (400P/R)
  • Roda Karet untuk model pesawat (diameter 51mm)
  • 2 tombol tekan
  • baterai 9v

Langkah 2: Encoder

Encoder
Encoder
Encoder
Encoder

Untuk proyek ini saya telah menguji beberapa encoder putar murah, tetapi saya segera membuangnya karena masalah presisi/sensitivitas. Jadi saya pergi ke DFRobot's Incremental Photoelectric Rotary Encoder - 400P/R SKU: SEN0230. Ini adalah rotary encoder fotolistrik inkremental industri dengan bahan aluminium, cangkang logam, dan poros baja tahan karat. Ini menghasilkan sinyal pulsa ortogonal dua fase AB melalui rotasi disk kisi dan optocoupler. 400 pulsa/putaran untuk setiap fase, dan 1600 pulsa/putaran untuk output 4 kali fase ganda. Rotary encoder ini mendukung kecepatan maksimal 5000 putaran/menit. Dan dapat digunakan untuk kecepatan, sudut, kecepatan sudut dan pengukuran data lainnya.

Rotary encoder fotolistrik memiliki output kolektor terbuka NPN, jadi Anda perlu menggunakan resistor pullup atau mengaktifkan pull-up Arduino internal. Ini menggunakan chip pengatur tegangan 750L05, yang memiliki input daya rentang lebar DC4.8V-24V.

Langkah 3: Sensitivitas

Kepekaan
Kepekaan

Rotary Encoder Optoelektrik ini benar-benar memiliki sensitivitas yang hebat, yang membuatnya sempurna untuk aplikasi pengontrolan poros dan pemosisian. Tapi untuk tujuan saya itu terlalu masuk akal. Dengan roda 51mm, encoder ini memiliki sensitivitas 0,4mm, yang berarti bahwa jika tangan Anda bergetar minimal, itu akan direkam. Jadi saya menurunkan sensitivitas dengan menambahkan histeresis dalam rutinitas interupsi:

batalkan interupsi()

{ karakter saya; i = digitalRead(B_PHASE); jika (i == 1) hitung +=1; lain hitung -=1; if (abs(count) >= histeresis) { flag_A = flag_A+count; menghitung = 0; } }

Trik ini cukup untuk memberikan stabilitas yang baik untuk mengukur.

Langkah 4: Pengukuran

Pilih Satuan Ukur Anda (Desimal atau Imperial) dan kemudian cukup posisikan roda dengan titik kontaknya di awal pengukuran Anda, tekan tombol tekan Reset dan tetap berputar sampai akhir. Dari kiri ke kanan ukuran bertambah dan dijumlahkan, untuk kanan ke kiri berkurang dan dikurangi. Anda juga dapat mengukur kurva benda (bentuk mobil Anda, pegangan tangga spiral, panjang lengan Anda dari bahu ke pergelangan tangan dengan siku ditekuk, dll).

Sebuah putaran penuh roda dengan diameter=D akan mengukur panjang D*π. Dalam kasus saya, dengan roda 51mm, ini adalah 16,02cm dan setiap centang berukuran 0,4mm (lihat paragraf Sensitivitas).

Langkah 5: Perakitan

PoC telah dibuat di papan tempat memotong roti untuk mendemonstrasikan sirkuit. Setiap komponen telah terpasang di papan dan rotary encoder terhubung ke Blok Terminal Sekrup Tiang 2x2. Baterai adalah baterai standar 9v dan konsumsi daya total rangkaian sekitar 60mA.

Langkah 6: Kode

Untuk tampilan, saya menggunakan U8g2lib yang sangat fleksibel dan kuat untuk jenis tampilan OLED ini, memungkinkan berbagai pilihan font dan fungsi pemosisian yang baik. Saya tidak membuang banyak waktu untuk mengisi layar dengan informasi, karena ini hanyalah sebuah Poc.

Untuk membaca encoder, saya menggunakan interupsi yang dihasilkan oleh salah satu dari 2 fase: setiap kali poros encoder bergerak, itu menghasilkan interupsi ke Arduino yang terikat pada kenaikan impuls.

attachInterrupt(digitalPinToInterrupt(A_PHASE), interupsi, RISING);

Layar secara otomatis beralih dari milimeter, ke meter, ke kilometer dan (jika dipilih dari tombol tekan) dari inci, ke yard, ke mil, sementara tombol tekan RST mengatur ulang ukuran ke nol.

Langkah 7: Skema

skema
skema

Langkah 8: Dari PoC ke Produksi

Mengapa ini merupakan Bukti Konsep? Karena banyak perbaikan yang bisa/harus dilakukan sebelum membangun peralatan yang berfungsi penuh. Mari kita lihat semua kemungkinan peningkatan secara detail:

  • Roda. Sensitivitas/presisi Measurino tergantung pada roda. Roda yang lebih kecil dapat memberi Anda presisi yang lebih baik dalam mengukur panjang kecil (dalam urutan milimeter hingga sentimeter). Roda yang jauh lebih besar dengan boom ekstensi akan memungkinkan untuk berjalan di jalan dan mengukur kilometer. Untuk roda kecil, bahan harus dipertimbangkan: roda karet penuh dapat sedikit berubah bentuk dan mempengaruhi presisi, jadi dalam hal ini saya akan menyarankan roda aluminium/baja hanya dengan selotip tipis untuk menghindari slip. Dengan pengeditan perangkat lunak yang sepele (pilih diameter roda yang benar dengan sakelar), Anda dapat mempertimbangkan roda yang dapat dipertukarkan untuk beradaptasi dengan ukuran apa pun, dengan menggunakan konektor 4-pin (yaitu: port usb).
  • Perangkat lunak. Dengan menambahkan tombol tekan lain, perangkat lunak juga dapat menangani pengukuran area persegi panjang atau amplitudo sudut. Saya juga menyarankan untuk menambahkan tombol tekan "Tahan" untuk membekukan ukuran di akhir, menghindari menggerakkan roda secara tidak sengaja sebelum membaca nilai pada layar.
  • Ganti roda dengan spool. Untuk ukuran pendek (dalam beberapa meter) roda dapat diganti dengan gulungan pegas yang berisi benang atau selotip. Dengan cara ini Anda hanya perlu menarik utasnya (membuat poros enkoder berputar), ambil ukuran Anda dan lihat di layar.
  • Tambahkan tampilan status baterai. Pin referensi Arduino 3.3v (akurat dalam 1%) dapat digunakan sebagai dasar untuk konverter ADC. Jadi, dengan melakukan konversi analog ke digital pada pin 3.3V (dengan menghubungkannya ke A1) dan kemudian membandingkan pembacaan ini dengan pembacaan dari sensor, kita dapat memperkirakan pembacaan yang sebenarnya, tidak peduli berapa VIN-nya (selama di atas 3.4V). Contoh kerja dapat ditemukan di proyek saya yang lain ini.

Langkah 9: Galeri Gambar

Direkomendasikan: