Robot yang Dikontrol Gestur dengan Raspberry Pi
Bosannya kontrol berbasis tombol? Bayangkan mengarahkan robot dengan gerakan tangan sederhana sambil bersantai di sofa Anda. Tutorial ini menunjukkan cara membangun robot dua motor yang merespons gerakan tangan menggunakan Raspberry Pi, akselerometer, dan komunikasi RF.
Ringkasan
Kami menggunakan Raspberry Pi 3 pada pemancar untuk membaca data akselerometer, mengenkodenya dengan modul HT12E, dan mentransmisikan sinyal melalui pasang RF 434 MHz. Di sisi robot, baterai 12 V menyediakan daya pada dekoder HT12D dan driver motor L293D, yang mengemudi dua motor DC berdasarkan perintah gestur yang diterima.
Komponen
| Komponen | Spesifikasi | Qty |
| Raspberry Pi | Model 3 | 1 |
| Kartu MicroSD | ≥ 8 GB | 1 |
| Akselerometer | ADXL345 atau MPU6050 | 1 |
| Modul RF | TX & RX 434 MHz | 1 |
| Sumber Daya | 5 V USB untuk Pi; baterai 12 V untuk robot | 1 |
| Kawat | Female‑to‑male & male‑to‑female | 10 masing-masing |
| Encoder | HT12E (modul disarankan) | 1 |
| Decoder | HT12D (modul disarankan) | 1 |
| Driver Motor | L293D (modul disarankan) | 1 |
Diagram Blok
Sisi Pemancar
Akselerometer memberi data gerakan mentah ke Pi. Python memproses bacaan, memetakan ke perintah gerakan, dan mengirim kode 4‑bit ke encoder HT12E melalui GPIO. Encoder menyelaraskan kode, dan transmisi RF menyiarkannya.
Sisi Penerima
Penerima RF menangkap sinyal dan meneruskan ke dekoder HT12D. Kode 4‑bit yang didekode mengemudi driver motor L293D, yang mengontrol motor kiri dan kanan robot untuk mencapai gerakan maju, mundur, kiri, kanan, atau berhenti.
Dasar Akselerometer
Akselerometer mengukur percepatan sepanjang tiga sumbu. Percepatan statis (gravitasi) mengungkapkan kemiringan; percepatan dinamis mendeteksi gerakan. Model digital seperti ADXL345 atau MPU6050 berkomunikasi melalui I²C, menyediakan data yang rendah kebisingan dan andal. MPU6050 juga menyertakan giroskop, berguna untuk deteksi gerakan yang lebih kompleks.
Menghubungkan Akselerometer ke Raspberry Pi
Gunakan bus I²C: sambungkan pin SDA dan SCL pada Pi ke SDA dan SCL sensor, dan sediakan daya sensor dengan 3,3 V dan GND. Aktifkan I²C di Raspbian: sudo raspi-config → Interface Options → I²C. Instal utilitas SMBus:
sudo apt-get install python-smbus i2c-tools
Deteksi perangkat:
sudo i2c-detect -y 1 – ADXL345 muncul pada 0x53; MPU6050 pada 0x68 atau 0x69.
Kloning pustaka dan jalankan contoh:
git clone https://github.com/pimoroni/adxl345-python cd adxl345-python sudo python example.py
Untuk MPU6050, gunakan
pip install mpu6050-raspberrypi dan uji dengan:
from mpu6050 import mpu6050 sensor = mpu6050(0x69) print(sensor.get_accel_data())
Mengkalibrasi Ambang Gestur
Letakkan sensor dalam setiap pose yang diinginkan (maju, kiri, kanan, mundur, berhenti) dan catat nilai X, Y, Z mentah. Hitung rata-rata dan tetapkan band toleransi; saat bacaan langsung jatuh dalam band, picu perintah motor yang sesuai. Simpan ambang ini dalam skrip Python Anda untuk pengambilan keputusan waktu nyata.
Dengan pengaturan ini Anda akan memiliki robot yang dikontrol gestur secara nirkabel yang andal dengan Raspberry Pi.
Sumber Daya Tambahan