Daftar Isi:
- Perlengkapan
- Langkah 1: Encoder Optik
- Langkah 2: Bagian Cetakan 3D
- Langkah 3: Diagram Pengkabelan
- Langkah 4: Kode Arduino
- Langkah 5: Pemindaian Pertama
Video: XYZ Point Scanner Menggunakan Salvaged Rotary Encoder: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Setelah memperoleh cukup banyak encoder optik putar yang dibuang dari tempat kerja saya, saya akhirnya memutuskan untuk melakukan sesuatu yang menyenangkan/berguna dengan mereka.
Saya baru saja membeli printer 3D baru untuk rumah saya dan apa yang bisa melengkapinya dengan lebih baik daripada pemindai 3D! Proyek ini juga memberi saya kesempatan sempurna untuk menggunakan printer 3D saya untuk memproduksi suku cadang yang diperlukan.
Perlengkapan
Encoder optik dan sensor optik yang sesuai
Arduino UNO
perisai prototipe opsional
rel batang baja
akses ke printer 3D
Langkah 1: Encoder Optik
Hampir semua rotary encoder dapat digunakan untuk proyek ini, selama itu memberi Anda jumlah 'klik' per mm yang relatif tinggi. Jelas pembuat enkode yang berbeda akan membutuhkan solusi pemasangan yang sesuai.
Saya menggunakan pengukur kontinuitas untuk melacak diagram pengkabelan untuk sensor foto.
Langkah 2: Bagian Cetakan 3D
Bagian-bagian ini menampung encoder putar dan menyediakan slide untuk rel. Rumah pembuat enkode tunggal memiliki dua lubang di bagian belakang untuk memasang rel silang. Rumah enkoder ganda hanyalah dua rumahan tunggal yang disatukan pada sudut yang tepat.
Saya merancang dudukan ini pada fusion360 agar sesuai dengan encoder dan rel pilihan saya, poros encoder memiliki bagian pendek selubung karet katapel, untuk membantunya mencengkeram poros baja tahan karat dengan lebih baik.
Anda ingin poros meluncur bebas dan jatuh melalui rumahan saat dipegang secara vertikal, namun poros harus memberikan tekanan yang cukup pada enkoder agar tidak tergelincir. Apa yang berhasil bagi saya adalah membiarkan slide untuk poros tumpang tindih dengan poros encoder sebesar 0,5 mm. Karet katapel cukup lunak untuk berubah bentuk dengan jumlah tersebut dan memberikan traksi yang baik.
Langkah 3: Diagram Pengkabelan
Sirkuitnya sangat sederhana. Opto-sensor membutuhkan arus untuk dioda emitor IR, resistor ground dan resistor pull-up untuk dioda foto.
Saya memutuskan 5mA untuk dioda emitor seri, dalam encoder khusus ini penurunan tegangan melintasi dioda adalah 3,65V. Saya menggunakan pasokan 5V dari Arduino, yang menyisakan 1,35V untuk resistor, pada 5mA ini berhasil menjadi 270 ohm.
10k ohm dipilih untuk pull-up karena foto-dioda hanya dapat menenggelamkan arus kecil, 10k ohm juga digunakan untuk tombol tekan. Ada tombol yang tersedia untuk digunakan pada papan prototipe yang sudah terhubung ke ground, cukup sediakan resistor pull-up dan sambungkan ke pin input yang diinginkan.
Langkah 4: Kode Arduino
Kode tersebut memerlukan sedikit penjelasan karena pengoperasiannya mungkin tidak langsung terlihat, namun harus dioptimalkan dengan cara ini agar dapat memproses 3 encoder dengan cukup cepat.
Pertama kita hanya ingin mengolah data arah JIKA telah terjadi perubahan posisi encoder.
perubahan = nilai_baru ^ nilai tersimpan;
Untuk mendapatkan lebih banyak resolusi dari encoder saya, saya harus memproses tepi naik dan turun.
Pada pengaturan saya, resolusi saya adalah 24 klik per 1cm.
Ini meninggalkan kita dengan beberapa skenario.
S1 konstan 0 dan S2 beralih dari 0 ke 1
S1 konstan 0 dan S2 beralih dari 1 ke 0
S1 adalah konstan 1 dan S2 beralih dari 0 ke 1
S1 adalah konstan 1 dan S2 beralih dari 1 ke 0
S2 konstan 0 dan S1 beralih dari 0 ke 1
S2 konstan 0 dan S1 beralih dari 1 ke 0
S2 adalah konstan 1 dan S1 beralih dari 0 ke 1
S2 adalah konstan 1 dan S1 beralih dari 1 ke 0
Kondisi ini lebih baik dipahami dalam tabel kebenaran di atas, juga setiap kondisi menghasilkan 'arah', yang diberi nama 0 atau 1.
Grafik memberi kita dua petunjuk penting:
1) satu grafik adalah kebalikan dari yang lain, jadi jika kita memilikinya, kita dapat dengan mudah menghitung yang lain hanya dengan membalikkan output. Kami membalikkan output hanya jika satu pin berubah dan bukan yang lain, kami dapat memilih satu secara sewenang-wenang.
2) grafik itu sendiri hanyalah XOR dari sinyal S1 dan S2. (bagan lainnya BUKAN dari ini).
Sekarang memahami kode itu sederhana.
// baca di PORT secara paralel // ingat pasangan yang berdekatan memiliki status encoder yang sama = PINB & 0x3f; // pin apa yang telah berubah jika ada diff = hold ^ state; // XOR sinyal S1 dan S2 yang berdekatan untuk mendapatkan tabel kebenaran // cara termudah adalah dengan membuat salinan status saat ini // dan menggesernya ke kanan satu bit lookup = state >> 1; // sekarang bit disejajarkan untuk XOR dir = lookup ^ state; // ingat, tabel perlu dibalik jika salah satu // input tetap, kita tidak memerlukan pernyataan IF // untuk ini. Saat ini bit arah yang diinginkan // adalah bit kanan dari setiap pasangan dalam variabel 'dir' // bit kiri tidak berarti // variabel 'diff' memiliki bit yang mengubah 'set' // jadi kita memiliki '01' atau '10' // XOR ini dengan byte 'dir' akan // membalikkan atau tidak bit yang berarti. dir ^= beda; // sekarang perbarui terus variabel tahan = status; // jika salah satu bit telah berubah untuk encoder ini if(diff & 0x03) { // tentukan arah if(dir & 0x01) { // berdasarkan hadware dan wiring Anda baik ++ atau -- --z; } lain { ++z; } } // sama untuk sisanya if(diff & 0x0c) { if(dir & 0x04) { ++y; } lain { --y; } } jika(beda & 0x30) { jika(dir & 0x10) { --x; } lain { ++x; } }
Ketika tombol ditekan, kami mengirim nilai XYZ saat ini ke program terminal.
Data serial lambat, tetapi selama operasi normal, posisi enkoder tidak akan berubah selama waktu ini.
Data dikirim sebagai jumlah mentah. Anda dapat menghitung dan mengirim data dalam mm atau inci dll. Saya menemukan nilai mentah sama baiknya karena kita dapat menskalakan objek nanti dalam perangkat lunak.
Langkah 5: Pemindaian Pertama
Mengumpulkan poin adalah proses yang lambat, saya meletakkan probe di sudut kiri atas dan mengatur ulang Arduino.
Ini nol posisi sebagai rumah.
Kemudian pindahkan probe ke lokasi pada target, tahan dengan stabil dan tekan tombol 'snapshot'.
Untuk potongan sampel yang agak besar ini saya hanya mengambil ~140 poin, jadi detailnya tidak terlalu bagus pada produk akhir.
Simpan data ke dalam file. PCD, dan tambahkan header
#. PCD v.7 - Format file Point Cloud DataVERSI.7 BIDANG x y z UKURAN 4 4 4 TYPE F F F COUNT 1 1 1 WIDTH (jumlah poin Anda) TINGGI 1 VIEWPOINT 0 0 0 1 0 0 0 POIN (jumlah poin Anda)
Tempatkan hitungan poin Anda di header, ini mudah di editor mana pun yang memberi Anda nomor baris.
Di atas titik-titik dapat dilihat di freeCad, mereka kemudian diekspor dari freeCad sebagai file. PLY.
Buka. PLY di MeshLab dan permukaan objek. Selesai!!
Direkomendasikan:
Tombol Volume USB Menggunakan DigiSpark dan Rotary Encoder: 3 Langkah
USB Volume Knob Menggunakan DigiSpark dan Rotary Encoder: Ini adalah USB Volume Control Knob yang super murah. Beberapa kali kenop tradisional lebih nyaman untuk mengontrol berbagai hal daripada mengklik mouse di mana-mana. Proyek ini menggunakan DigiSpark, Rotary Encoder dan Adafruit Trinket USB Library (https://github.c
Cara Menggunakan Motor Stepper Sebagai Rotary Encoder dan Tampilan OLED untuk Langkah: 6 Langkah
Cara Menggunakan Motor Stepper Sebagai Rotary Encoder dan Tampilan OLED untuk Langkah-Langkahnya: Dalam tutorial ini kita akan mempelajari cara melacak langkah motor stepper pada Tampilan OLED. Tonton video demonstrasi. Kredit untuk tutorial Asli diberikan kepada pengguna youtube "sky4fly"
Rotary Encoder Menggunakan Arduino Nano: 4 Langkah
Rotary Encoder Menggunakan Arduino Nano : Hai semuanya, Pada artikel kali ini saya akan membuat tutorial cara menggunakan rotary encoder menggunakan Arduino Nano. Untuk menggunakan encoder Rotary ini, Anda tidak memerlukan perpustakaan eksternal. Jadi kita bisa langsung membuat program tanpa menambah library terlebih dahulu. oke mari kita mulai
Rotary Encoder: Cara Kerja dan Cara Menggunakan Dengan Arduino: 7 Langkah
Rotary Encoder: Cara Kerja dan Cara Menggunakan Dengan Arduino: Anda dapat membaca ini dan tutorial menakjubkan lainnya di situs web resmi ElectroPeakOverviewDalam tutorial ini, Anda akan mengetahui cara menggunakan rotary encoder. Pertama, Anda akan melihat beberapa informasi tentang encoder rotasi, dan kemudian Anda akan belajar bagaimana
Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder: 6 Langkah (dengan Gambar)
Menu Arduino pada Nokia 5110 Lcd Menggunakan Rotary Encoder: Dear friends selamat datang di tutorial lainnya! Dalam video ini kita akan belajar bagaimana membuat menu kita sendiri untuk layar LCD Nokia 5110 yang populer, untuk membuat proyek kita lebih ramah pengguna dan lebih mumpuni. Mari kita mulai! Ini adalah proyek