Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Gesteuerter Roboter selbst bauen: Arduino, MPU-6050 & Bluetooth

Komponenten & Materialien

Software & Bibliotheken

Projektbeschreibung

Ein Roboter-Auto wird durch Handbewegungen gesteuert. Der MPU-6050 an der Fernbedienung (Nano) erfasst Neigung (Pitch/Roll) und sendet die Befehle per Bluetooth an das Fahrzeug (UNO mit L293D). Zwei HC-05 Module werden so konfiguriert, dass sie sich automatisch verbinden (Master ↔ Slave).

Bluetooth-Konfiguration (AT-Befehle)

Beide Module zunächst in AT-Modus versetzen (Taster gedrückt halten beim Einschalten → langsames Blinken). Baudrate 38400, Both NL & CR.

Slave (Fahrzeug-Empfänger)

AT+ORGL        // Werkseinstellungen
AT+RMAAD       // Alte Pairings löschen
AT+UART=38400,0,0
AT+ROLE=0      // Slave
AT+ADDR?       // Adresse notieren (z. B. 98d3:31:fc5a7b)

Master (Fernbedienung-Sender)

AT+ORGL
AT+RMAAD
AT+UART=38400,0,0
AT+ROLE=1      // Master
AT+CMODE=0     // Nur ein Gerät verbinden
AT+BIND="98d3,31,fc5a7b"  // Adresse des Slaves (Doppelpunkte durch Kommas ersetzen!)

Nach Neustart verbinden sich beide automatisch (schnelles Blinken = verbunden).

Verkabelung

Fahrzeug (UNO):

Fernbedienung (Nano):

Code: Fahrzeug-Einheit (UNO)


// Gesture_controled_Robot__car_unit_
int lm1=8, lm2=9, rm1=10, rm2=11;
char d=0;

void setup() {
  pinMode(lm1,OUTPUT); pinMode(lm2,OUTPUT);
  pinMode(rm1,OUTPUT); pinMode(rm2,OUTPUT);
  Serial.begin(38400);
  sTOP();
}

void loop() {
  if(Serial.available()>0) {
    d=Serial.read();
    if(d=='F') ForWard();
    else if(d=='B') BackWard();
    else if(d=='L') Left();
    else if(d=='R') Right();
    else if(d=='S') sTOP();
  }
}

void ForWard()  { digitalWrite(lm1,HIGH); digitalWrite(lm2,LOW); digitalWrite(rm1,HIGH); digitalWrite(rm2,LOW); }
void BackWard() { digitalWrite(lm1,LOW); digitalWrite(lm2,HIGH); digitalWrite(rm1,LOW); digitalWrite(rm2,HIGH); }
void Left()     { digitalWrite(lm1,LOW); digitalWrite(lm2,HIGH); digitalWrite(rm1,HIGH); digitalWrite(rm2,LOW); }
void Right()    { digitalWrite(lm1,HIGH); digitalWrite(lm2,LOW); digitalWrite(rm1,LOW); digitalWrite(rm2,HIGH); }
void sTOP()     { digitalWrite(lm1,LOW); digitalWrite(lm2,LOW); digitalWrite(rm1,LOW); digitalWrite(rm2,LOW); }

Code: Fernbedienung (Nano) – Auszug


// Hauptloop: DMP-Daten lesen, Yaw/Pitch/Roll berechnen
if((ypr[1]*180/M_PI) <= -25) BTSerial.write('F');   // Vorwärts
else if((ypr[1]*180/M_PI) >= 25) BTSerial.write('B'); // Rückwärts
else if((ypr[2]*180/M_PI) <= -25) BTSerial.write('L'); // Links
else if((ypr[2]*180/M_PI) >= 20) BTSerial.write('R');  // Rechts
else BTSerial.write('S'); // Stopp

Der komplette Code nutzt die DMP (Digital Motion Processor) des MPU-6050 für stabile Orientierungsdaten. Gyro-Offsets müssen kalibriert werden (setXGyroOffset etc.).

Aufbau & Test

  1. Beide Arduinos per USB programmieren (Bluetooth-Module dabei abgesteckt lassen!).
  2. Slave-Modul auf Fahrzeug, Master-Modul auf Fernbedienung stecken.
  3. Batterien anschließen, einschalten.
  4. Fernbedienung: Taster drücken → Aktivierung (x toggelt). Hand neigen → Roboter fährt.

Tipps & Tricks

Herstellungsprozess

  1. Arduino-Roboter mit Raspberry Pi bauen: Schritt-für-Schritt-Anleitung
  2. DIY Hausaufgaben-Schreibmaschine zu Hause bauen
  3. Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
  4. Autonomer Linienfolger-Roboter mit Arduino UNO
  5. Selbstbau: Schlagbare, anpassbare Tasten mit Arduino und Piezo-Element
  6. Autonomer Hausassistent-Roboter bauen: Komplette Teileliste & Setup-Anleitung
  7. Musikalische Töne mit Arduino erzeugen: Schritt-für-Schritt-Anleitung
  8. Automatische Tür mit Arduino & Ultraschallsensor bauen
  9. Arduino Roboterarm per Android-App & Bluetooth steuern
  10. Smartes Indoor-Navigations-Roboter-Kit für Arduino-Projekte