Gesten-gesteuerter Roboter mit Raspberry Pi
Sind Sie müde von Knopf-basierten Steuerungen? Stellen Sie sich vor, einen Roboter mit einfachen Handgesten zu steuern, während Sie auf dem Sofa entspannen. Dieses Tutorial zeigt, wie man einen Zwei-Motor-Roboter baut, der auf Handbewegungen reagiert – mit Raspberry Pi, Beschleunigungssensor und Funkkommunikation.
Überblick
Wir nutzen einen Raspberry Pi 3 am Sender, um Beschleunigungsdaten zu lesen, mit HT12E-Modul zu kodieren und via 434-MHz-Funkpaar zu senden. Auf der Roboterseite versorgt eine 12-V-Batterie HT12D-Dekoder und L293D-Motortreiber, der zwei DC-Motoren basierend auf empfangenen Gestenbefehlen ansteuert.
Komponenten
| Komponente | Spezifikation | Anzahl |
|---|---|---|
| Raspberry Pi | Model 3 | 1 |
| MicroSD-Karte | ≥ 8 GB | 1 |
| Beschleunigungssensor | ADXL345 oder MPU6050 | 1 |
| Funkmodul | TX & RX 434 MHz | 1 |
| Stromversorgung | 5 V USB für Pi; 12 V Batterie für Roboter | 1 |
| Kabel | Female-to-Male & Male-to-Female | je 10 |
| Encoder | HT12E (Modul bevorzugt) | 1 |
| Decoder | HT12D (Modul bevorzugt) | 1 |
| Motortreiber | L293D (Modul bevorzugt) | 1 |
Blockdiagramm
Sender-Seite
Beschleunigungssensor liefert Roh-Bewegungsdaten an Pi. Python verarbeitet Messwerte, mapt sie auf Bewegungsbefehle und sendet 4-Bit-Code an HT12E-Encoder via GPIO. Encoder serialisiert Code, RF-Sender strahlt ihn ab.
Empfänger-Seite
RF-Empfänger fängt Signal ein, leitet an HT12D-Dekoder weiter. Dekodierter 4-Bit-Code steuert L293D-Motortreiber, der Roboter-Links- und Rechtsmotoren für Vorwärts, Rückwärts, Links, Rechts oder Stopp ansteuert.
Beschleunigungssensor-Grundlagen
Ein Beschleunigungssensor misst Beschleunigung entlang drei Achsen. Statische Beschleunigung (Schwerkraft) offenbart Neigung; dynamische Beschleunigung detektiert Bewegung. Digitale Modelle wie ADXL345 oder MPU6050 kommunizieren via I²C, liefern rauscharmes, zuverlässiges Daten. MPU6050 beinhaltet auch Gyroskop, nützlich für komplexere Bewegungserkennung.
Beschleunigungssensor an Raspberry Pi anschließen
I²C-Bus nutzen: Pi's SDA und SCL Pins mit Sensors SDA und SCL verbinden, Sensor mit 3,3 V und GND versorgen. I²C in Raspbian aktivieren: sudo raspi-config → Interface Options → I²C. SMBus-Utilities installieren:
sudo apt-get install python-smbus i2c-toolsGerät detektieren:
sudo i2c-detect -y 1 – ADXL345 bei 0x53; MPU6050 bei 0x68 oder 0x69.
Bibliothek klonen und Beispiel ausführen:
git clone https://github.com/pimoroni/adxl345-python cd adxl345-python sudo python example.pyFür MPU6050
pip install mpu6050-raspberrypi nutzen und testen mit: from mpu6050 import mpu6050 sensor = mpu6050(0x69) print(sensor.get_accel_data())
Gesten-Schwellenwerte kalibrieren
Sensor in jede gewünschte Pose (vorwärts, links, rechts, rückwärts, stopp) bringen und rohe X, Y, Z Werte aufzeichnen. Durchschnitt berechnen und Toleranzband festlegen; wenn Live-Messungen in Band fallen, entsprechenden Motorbefehl triggern. Schwellenwerte in Python-Skript für Echtzeit-Entscheidung speichern.
Mit diesem Setup haben Sie einen robusten, kabellosen gesten-gesteuerten Roboter, angetrieben von Raspberry Pi.
Zusätzliche Ressourcen
Herstellungsprozess
- Präzises Raspberry Pi Temperaturprofiling mit Python, SQLite und LabVIEW
- Raspberry Pi-gesteuertes Aquaponik-System: Bauanleitung & Code
- Multichannel-Datenlogger mit Raspberry Pi bauen – Teil 1: Anforderungen & Architektur
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Remote-Wetterüberwachung mit Raspberry Pi 3 & PubNub
- TI SensorTag mit Blynk via Node-RED auf Raspberry Pi Zero integrieren
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Intelligenten Roboter mit Bridge Shield bauen – Raspberry Pi & Arduino Integration
- DIY Wall-E-inspirierter Raspberry Pi CD-Box-Roboter
- Bluetooth-gesteuerter Raspberry Pi Roboter mit Audio-Feedback bauen