Gebaren-gecontroleerde Robot Aangedreven door Raspberry Pi
Ben je het zat om knop-gebaseerde besturing te gebruiken? Stel je voor een robot te sturen met simpele handgebaren terwijl je op je bank uitbuit. Deze tutorial laat zien hoe je een dual-motor-robot bouwt die reageert op handbewegingen met een Raspberry Pi, accelerometer en RF-communicatie.
Overzicht
We gebruiken een Raspberry Pi 3 aan de zenderkant om accelerometerdata te lezen, te coderen met een HT12E-module, en het signaal te verzenden via een 434 MHz RF-paar. Aan de robot-kant voedt een 12 V-batterij een HT12D-decoder en een L293D-motordriver, wat twee DC-motoren aanstuurt op basis van de ontvangen gebarencommando's.
Componenten
| Component | Specificatie | Aantal |
|---|---|---|
| Raspberry Pi | Model 3 | 1 |
| MicroSD-kaart | ≥ 8 GB | 1 |
| Accelerometer | ADXL345 of MPU6050 | 1 |
| RF-module | TX & RX 434 MHz | 1 |
| Voeding | 5 V USB voor Pi; 12 V batterij voor robot | 1 |
| Draden | Female-to-male & male-to-female | 10 elk |
| Encoder | HT12E (module bevorzugt) | 1 |
| Decoder | HT12D (module bevorzugt) | 1 |
| Motordriver | L293D (module bevorzugt) | 1 |
Blokdiagram
Zenderkant
De accelerometer voedt rauwe beweegingsdata naar de Pi. Python verwerkt de metingen, mapt ze naar beweegingscommando's, en stuurt een 4-bit-code naar de HT12E-encoder via GPIO. De encoder serialiseert de code, en de RF-zender zendt het uit.
Ontvangerkant
De RF-ontvanger vangt het signaal op en stuurt het door naar de HT12D-decoder. Het gedecodeerde 4-bit-code stuurt de L293D-motordriver aan, wat de linker- en rechtermotor van de robot bestuurt om vooruit, achteruit, links, rechts of stop-bewegingen te bereiken.
Accelerometer-basis
Een accelerometer meet versnelling langs drie assen. Statische versnelling (zwaartekracht) onthult kanteling; dynamische versnelling detecteert beweging. Digitale modellen zoals ADXL345 of MPU6050 communiceren via I²C, wat lage-ruis, betrouwbare data levert. De MPU6050 bevat ook een gyroscoop, nuttig voor complexere bewegingdetectie.
De Accelerometer Verbinden met Raspberry Pi
Gebruik de I²C-bus: verbind SDA en SCL-pinnen op de Pi met de sensor's SDA en SCL, en voed de sensor met 3,3 V en GND. Schakel I²C in Raspbian in: sudo raspi-config → Interface Options → I²C. Installeer de SMBus-utilities:
sudo apt-get install python-smbus i2c-toolsDetecteer het apparaat:
sudo i2c-detect -y 1 – ADXL345 verschijnt op 0x53; MPU6050 op 0x68 of 0x69. Kloon de bibliotheek en voer het voorbeeld uit:
git clone https://github.com/pimoroni/adxl345-python cd adxl345-python sudo python example.pyVoor MPU6050, gebruik
pip install mpu6050-raspberrypi en test met: from mpu6050 import mpu6050 sensor = mpu6050(0x69) print(sensor.get_accel_data())
Gebaren-drempels Kalibreren
Plaats de sensor in elke gewenste houding (vooruit, links, rechts, achteruit, stop) en noteer de rauwe X, Y, Z-waarden. Bereken het gemiddelde en stel een tolerantieband in; wanneer live-metingen binnen een band vallen, trigger het corresponderende motorcommando. Sla deze drempels op in je Python-script voor real-time besluitvorming.
Met deze setup heb je een robuuste, draadloze gebaren-gecontroleerde robot aangedreven door Raspberry Pi.
Aanvullende Bronnen
Productieproces
- Nauwkeurige Raspberry Pi Temperatuurprofielering Met Python, SQLite En LabVIEW
- Raspberry Pi-gestuurd Aquaponica Systeem: Bouwgids & Code
- Een Multikanaal Datalogger Bouwen Met Raspberry Pi – Deel 1: Vereisten & Architectuur
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- Externe weerbewaking met Raspberry Pi 3 en PubNub
- TI SensorTag integreren met Blynk via Node-RED op Raspberry Pi Zero
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Bouw een Slimme Robot met de Bridge Shield – Raspberry Pi & Arduino Integratie
- DIY Wall-E Geïnspireerde Raspberry Pi CD-Doos Robot
- Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
- Bouw een Internet-gecontroleerde Video-streamende Robot met Arduino & Raspberry Pi