Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Cara menghubungkan Sensor Ultrasonik Lego Mindstorms NXT ke Raspberry Pi

Abstrak

Hubungkan langsung Sensor Ultrasonik Lego Mindstorms NXT ke Raspberry Pi. Buffer bus TCA9517 I2C dan pin GPIO tambahan untuk SCL diperlukan. Sebuah program C++ singkat untuk membaca jarak yang diukur disediakan.

Pengantar

Raspberry Pi (Pi), meskipun ada beberapa kekurangan, jelas merupakan SBC favorit saya. Sejauh ini komunitas terbesar dan setiap detail didokumentasikan dengan baik. Lego Mindstorms, di sisi lain, kit konstruksi robot favorit saya. Tidak seperti kit robot lainnya, ini memberikan kemungkinan tak terbatas untuk membuat robot. Hari ini bot mobil, besok bot terlacak, dan hari berikutnya lengan robot 6-sumbu – semuanya mungkin. Versi NXT dari kit ini memiliki mikrokontroler berbasis ARM yang kuat, yang cukup untuk sebagian besar aplikasi robot sederhana tetapi tidak cukup untuk proyek lanjutan seperti computer vision. Baru-baru ini Lego menerbitkan EV3, kit baru dengan otak yang jauh lebih kuat, seperti Raspberry Pi, yang digerakkan oleh Linux. Tapi tetap saja otak ini tidak mampu menghitung gambar beresolusi tinggi dengan kecepatan yang wajar. Oleh karena itu saya masih ingin menggabungkan kekuatan raspberry pi dengan kemungkinan tak terbatas dari Lego. Sejauh pengetahuan saya, ada satu proyek yang mencapai hal ini, yang disebut BrickPi. Meskipun cukup berhasil, saya pikir ini memiliki beberapa kekurangan, saya ingin membahasnya di artikel ini dan artikel berikutnya. Pertama-tama, ini hanya kompatibel dengan sensor NXT berbasis I2C yang lebih lama dan bukan sensor EV3 berbasis UART yang baru. Selain itu tidak langsung menghubungkan sensor ke pi, tetapi menggunakan dua mikrokontroler Atmega (kompatibel dengan Arduino) untuk berkomunikasi dengan sensor. Menambahkan sensor baru atau perubahan lainnya memerlukan firmware baru. Selanjutnya BrickPi menggunakan driver motor L293D yang hanya mampu mengalirkan arus sekitar 0,6 A sedangkan motor Lego NXT mengkonsumsi hingga 2 A saat macet [karakteristik Motor NXT]. Pada artikel ini saya ingin menunjukkan cara menghubungkan Lego Mindstorms secara langsung. Sensor Ultrasonik (US sensor) ke Pi tanpa menggunakan mikrokontroler tambahan.

Tantangan

Upaya pertama saya untuk menghubungkan sensor AS ke Pi itu sederhana. Cukup sambungkan kedua jalur sinyal I2C menggunakan shifter level sederhana dengan dua n-fet [AppNote]. Penggeser level harus diperlukan karena sensor AS menggunakan level logika 5 V dan pi hanya 3,3 V. Kemudian sambungkan 5V dan 9V ke sensor dan mulai program pengujian sederhana dan dapatkan – tidak ada. Setelah memeriksa kabel dan perangkat lunak dua kali, saya menghubungkan penganalisis logika dan menyadari bahwa sensor AS tidak dapat menjawab permintaan apa pun, bahkan tidak mengakui alamatnya sendiri. Tantangan pertama dan utama adalah koneksi perangkat keras antara Pi dan sensor. Protokol perangkat keras dan perangkat lunak dijelaskan dengan baik oleh Lego, termasuk skema [Lego HDK] dan meskipun menggunakan I2C, kami tidak dapat langsung menghubungkan sensor ke pi. Seperti yang Anda lihat di Skema 1 sensor memiliki resistor pullup yang sangat lemah (82 k) dan resistor seri yang sangat kuat (4,7 k) pada jalur I2C-nya. Resistor kedua adalah masalah utama kami. Seperti yang Anda ketahui, Pi menggunakan resistor pullup 1,8 k yang kuat pada jalur I2C-nya. Karena resistor seri, sensor tidak dapat menarik salah satu jalur I2C dan oleh karena itu tidak dapat menjawab permintaan master I2C. Gambar 1 menunjukkan simulasi kasar dari situasi ini. Garis biru menunjukkan data yang coba dikirim oleh sensor, garis hijau menunjukkan data yang diterima oleh Pi. Seperti yang Anda lihat, sensor tidak dapat menarik garis data simulasi ke rendah. Anda juga dapat mencatat, bahwa sirkuit pemindahan level apa pun tidak diperlukan pada kondisi ini karena, resistor pull-up yang kuat hingga 3,3 V mendominasi saluran juga pada level tinggi. Satu-satunya solusi untuk masalah ini, yang saya temukan sejauh ini, adalah menggunakan TCA9517, buffer 2 saluran, dua arah untuk I2C. Selain itu, chip ini menangani perubahan level. Tantangan kedua berasal dari bug firmware di sensor AS. Ini dijelaskan di sini di forum mbed, misalnya. Ada juga artikel yang menjelaskan cara menganalisis komunikasi antara Lego Mindstorms NXT dan sensor AS menggunakan penganalisis logika (Jerman). Singkatnya, siklus jam tambahan (beralih pada jalur SCL)  diperlukan antara menulis register ke sensor dan benar-benar membaca data dari sensor. Ini tentu saja tidak kompatibel dengan implementasi perangkat keras atau perangkat lunak I2C standar. Anda dapat menulis implementasi perangkat lunak I2C khusus menggunakan pasangan GPIO apa pun tetapi lebih mudah untuk hanya menghubungkan GPIO lain dari Pi ke jalur SCL dan beralih antara menulis register ke sensor dan membaca konten register.

Perangkat Keras

Perangkat keras yang diperlukan untuk prototipe sederhana: Untuk prototipe ini saya menggunakan papan roti dengan papan breakout sensor Lego Mindstorms kecil yang dibuat khusus. Board ini meniru kontrol 9V dan perlindungan port sensor dari Lego Mindstorms NXT [Lego HDK]. Untuk prototipe sederhana Anda tidak memerlukan rangkaian switching 9V (dua kaki) atau resistor seri tambahan dan dioda pada jalur I2C. Anda cukup menyambungkan kabel 9V ke pin 1, GND ke pin 2 dan 3, 5 V ke pin 4 (menghilangkan dioda D1), SCL_5V ke pin 5 dan SDA_5V ke pin 6.Untuk lebih jelasnya:Cara menyambungkan Lego Mindstorms NXT Sensor Ultrasonik ke Raspberry Pi

Proses manufaktur

  1. IoT Dasar – RaspberryPI HDC2010 cara
  2. Pencatat Suhu Raspberry Pi
  3. Pemantauan Suhu di Raspberry Pi
  4. Sensor Suhu Python dan Raspberry Pi
  5. Stasiun Cuaca Raspberry Pi
  6. Integrasi Data Sensor dengan Mikroprosesor Raspberry Pi
  7. Sensor Ultrasonik (HC-SR04) + Raspberry Pi
  8. Sensor Gerak menggunakan Raspberry Pi
  9. Sensor Kelembaban Tanah Raspberry Pi
  10. Sensor Suhu dan Cahaya Raspberry Pi