Roomba Create 2 per Arduino & Android steuern – Schritt-für-Schritt
Komponenten und Materialien
| Komponente | Anzahl |
|---|---|
| iRobot Roomba Create 2 | 1 |
| Arduino UNO | 1 |
| HC-06 Bluetooth-Modul | 1 |
| Taster (für Start) | 1 |
App
- MJRoBot BT Remote Control (Android, kostenlos, MIT App Inventor 2)
Projektbeschreibung
Hintergrund
Der Roomba Create 2 (ca. 200 $) ist eine günstige Robotik-Plattform. Dieses Tutorial zeigt die Ansteuerung über Arduino per Serial (Open Interface) und Bluetooth-Fernbedienung per App.
Roomba Create 2 – Grundlagen
- Differentialantrieb, max. 500 mm/s.
- 4× 7-Segment-Display, 5 LEDs (Clean, Spot, Dock, Warning, Dirt).
- Sensoren: Cliff (4× vorne), Bumper (2×), Rad-Encoder.
- Drei Modi: Passive (nur Sensoren), Safe (voller Control, Sicherheitsabschaltung), Full (alles, Sicherheitsfeatures aus).
Serielle Verbindung
Roomba Mini-DIN → Arduino (SoftwareSerial Pins 10/11). Baudrate von 115200 auf 19200 umstellen: Beim Einschalten Clean-Taste 10 s gedrückt halten (absteigender Ton) oder Baud-Rate-Change-Pin (Pin 5) dreimal low-pulsen.
Arduino-Code – Kernfunktionen
Aufwecken & Starten
void wakeUp() {
digitalWrite(ddPin, HIGH); delay(100);
digitalWrite(ddPin, LOW); delay(500);
digitalWrite(ddPin, HIGH); delay(2000);
}
void startSafe() {
Roomba.write(128); // START
Roomba.write(131); // SAFE MODE
delay(1000);
}
LEDs & Display steuern
void setPowerLED(byte color, byte intensity) { /* 139 + color + intensity */ }
void setDebrisLED(bool on) { /* 139 + Bitmaske */ }
void setDigitLEDs(byte d1, byte d2, byte d3, byte d4) { /* 163 + 4 Ziffern */ }
void writeLEDs(char a, char b, char c, char d) { /* 164 ASCII */ }
Fahrbefehle
void drive(int velocity, int radius) { /* 137 */ }
void driveWheels(int right, int left) { /* 145 */ }
void driveWheelsPWM(int rPWM, int lPWM) { /* 146 */ }
Hilfsfunktionen: turnCW(), turnCCW(), driveStop(), driveLeft(), driveRight().
Bluetooth-Steuerung per App
HC-06 auf 19200 Baud einstellen (AT+BAUD5). App sendet Zeichen:
wvor,szurück,alinks,drechts,fStoppmSafe-Mode neu starten (nach Klippe),pEin/Aus (reserviert)+/-Geschwindigkeit ±10
Arduino loop() prüft BT-Eingang und ruft manualCmd() auf.
Fazit & Ausblick
Kompletter Code & Doku auf GitHub. Basiert auf Create2-Library von Dom Amato. Geplant: Raspberry Pi für Internet-Anbindung, Sensoren auslesen.
Herstellungsprozess
- Sensor-gesteuerte Audio-Effekte mit dem Satellite CCRMA Kit bauen
- Schnelles, zuverlässiges Branderkennungssystem mit Samsung SAMI, Arduino UNO & Raspberry Pi
- Internet-gesteuerter Video-Streaming-Roboter mit Arduino & Raspberry Pi bauen
- Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
- Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
- DIY Günstiges Tragbares Thermometer mit Android-Anbindung
- Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
- Stufenlose LED-Helligkeitssteuerung mit Bolt IoT und Arduino UNO
- u-blox LEA-6H 02 GPS-Modul: Arduino & Python Integrationsanleitung
- Spracherkennung & Sprachsynthese auf Arduino Due meistern