Menghubungkan Sensor Ultrasonik Lego Mindstorms NXT Langsung ke Raspberry Pi
Abstrak
Hubungkan sensor ultrasonik Lego Mindstorms NXT langsung ke Raspberry Pi. Solusi menggunakan buffer I²C TCA9517 dan GPIO tambahan untuk SCL, serta cuplikan C++ ringkas untuk membaca jarak.
Pendahuluan
Sementara Raspberry Dipuji karena komunitas dan dokumentasi yang luas, kit Lego Mindstorms tetap menjadi platform pilihan untuk prototipe robot cepat. Seri NXT berisi mikrokontroler berbasis ARM yang cukup untuk robotika dasar, namun kurang untuk tugas canggih seperti visi komputer. Seri EV3 yang lebih baru menawarkan otak berbasis Linux yang lebih kuat, namun masih kesulitan dalam pemrosesan citra resolusi tinggi dengan kecepatan wajar.
Integrasi kemampuan komputasi Pi dengan hardware fleksibel Lego menjanjikan sistem hibrida yang kuat. Jembatan yang ada seperti BrickPi bekerja namun terbatas pada sensor I²C lama, bergantung pada mikrokontroler perantara, dan kesulitan menggerakkan motor dengan arus tinggi. Artikel ini menunjukkan metode bersih tanpa mikrokontroler untuk menghubungkan sensor ultrasonik NXT langsung ke Pi.
Tantangan
Hambatan pertama adalah hardware: penggeser level sederhana menggunakan dua n-FET tidak dapat menyelesaikan ketidakcocokan antara logika 5 V sensor dan bus I²C 3,3 V Pi. Datasheet sensor menunjukkan pull-up lemah 82 kΩ dan resistor seri kuat 4,7 kΩ, yang mencegah pull-up 1,8 kΩ Pi menarik garis ke bawah. Akibatnya sensor tidak pernah mengakui Pi.
Untuk mengatasi ini, buffer I²C dua arah TCA9517 digunakan. Ini menyediakan penggeseran level yang tepat dan menghilangkan masalah resistansi seri.
Masalah tingkat firmware kedua memerlukan satu siklus clock tambahan antara menulis register sensor dan membaca data. Driver I²C Linux standar tidak dapat memasukkan siklus ini, jadi GPIO tambahan diaktifkan pada garis SCL untuk memenuhi keunikansi waktu sensor.
Hardware
Prototipe membutuhkan:
- Sensor Ultrasonik Lego Mindstorms NXT
- Kabel Mindstorms (dipotong atau dengan soket)
- TCA9517 dan adaptor SO-8 ke DIP-8 (atau breakout custom)
- Raspberry Pi (model apa pun; saya menggunakan Pi A)
- Breadboard dasar, kabel jumper, dan kit solder
Papan breakout minimal menyuplai kontrol 9 V, daya 5 V, dan sinyal I²C tanpa opsi pemutusan 9 V atau resistor seri, menyederhanakan koneksi. Lihat Lego HDK untuk detail penout pin.