Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Contrôlez votre Roomba Create 2 avec Arduino et Android – Guide pas à pas

Composants et fournitures

ComposantQuantité
iRobot Roomba Create 21
Arduino UNO1
Module Bluetooth HC-061
Bouton poussoir1

Application Android

À propos du projet

Projet lauréat Instructables Robotics Contest 2016. Le Roomba Create 2 (~200 $) est une plateforme robotique abordable et programmable. Ce tutoriel couvre : connexion série Arduino↔Roomba, commande moteurs, LEDs, sons, contrôle Bluetooth via application Android. Prochaines étapes prévues : capteurs, Raspberry Pi + IoT.

Étape 1 : Matériel

Voir tableau. Le Create 2 est un robot à entraînement différentiel (2 roues + roue libre), vitesse max 500 mm/s.

Étape 2 : Le Roomba Create 2 – Interface ouverte (OI)

Document de référence : iRobot® Create® 2 Open Interface (OI).

ModeDescription
PassifLecture capteurs seulement, pas de contrôle actionneurs
Sûr (Safe)Contrôle complet sauf sécurités : chargeur branché, roue levée, falaise détectée en avant → stop + retour Passif
Plein (Full)Contrôle total, toutes sécurités désactivées (prudence !)

Étape 3 : Connexion série

Roomba communique par défaut à **115 200 bauds** – trop rapide pour SoftwareSerial fiable. Deux méthodes pour le passer à **19 200 bauds** :

  1. Hors tension, maintenez **Clean/Power** 10 s après extinction → tune descendante = 19 200 bauds jusqu'à perte alimentation.
  2. Pulsez 3 fois la broche **Baud Rate Change (broche 5 Mini-DIN)** : 50–500 ms par pulse, 2 s après mise sous tension.

Câblage Mini-DIN (vue broches) :

Étape 4 : Réveil et démarrage

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);
}

Étape 5 : Contrôle LEDs et afficheur 7 segments

// Mode numérique brut (code 163)
void setDigitLEDs(byte d1, byte d2, byte d3, byte d4) {
  Roomba.write(163); Roomba.write(d1); Roomba.write(d2); Roomba.write(d3); Roomba.write(d4);
}
// Mode ASCII approx (code 164)
void writeLEDs(char a, char b, char c, char d) { /* ... */ }
// Ex: writeLEDs('s','t','o','p') → "STOP"

Étape 6 : Mouvement

Trois commandes principales :

void driveWheels(int right, int left) {
  clamp(right, -500, 500); clamp(left, -500, 500);
  Roomba.write(145);
  Roomba.write(highByte(right)); Roomba.write(lowByte(right));
  Roomba.write(highByte(left));  Roomba.write(lowByte(left));
}
// Fonctions dérivées : forward, backward, left, right, stop, turnCW, turnCCW

Étape 7 : Contrôle Bluetooth (HC-06 + App Android)

Commandes envoyées par l'app (1 caractère par bouton) :

ToucheAction
wAvant
sArrière
aGauche
dDroite
fStop
mRedémarrage Safe Mode (après sécurité)
+ / -Vitesse + / - (mode avant seulement)

Boucle principale Arduino :

void loop() {
  checkBTcmd();   // Lit commande Bluetooth
  manualCmd();    // Exécute action
}
void checkBTcmd() {
  if (BT1.available()) { command = BT1.read(); BT1.flush(); }
}
void manualCmd() {
  switch(command) {
    case 'm': startSafe(); BT1.println("Roomba BT Ctrl OK - Safe mode"); command='f'; playSound(3); break;
    case 'f': driveStop(); writeLEDs('s','t','o','p'); break;
    case 'w': drive(motorSpeed, 0); writeLEDs(' ','g','o',' '); break;
    case 'd': driveRight(motorSpeed); writeLEDs('r','i','g','h'); break;
    case 'a': driveLeft(motorSpeed);  writeLEDs('l','e','f','t'); break;
    case 's': drive(-motorSpeed, 0); writeLEDs('b','a','c','k'); break;
    case '+': if(motorSpeedMIN) motorSpeed-=10; command=state; break;
  }
}

Étape 8 : Conclusion

Code complet et documents sur GitHub : github.com/Mjrovai/Roomba_BT_Ctrl. Basé en partie sur la bibliothèque Create2 de Dom Amato (brinnLabs/Create2). Projet base pour futures extensions (Raspberry Pi, capteurs, IoT).

Blog de l'auteur (portugais) : MJRoBot.org.

Processus de fabrication

  1. Créer des effets audio pilotés par capteurs avec le kit Satellite CCRMA
  2. Construire un système de détection d'incendie rapide et fiable avec Samsung SAMI, Arduino UNO et Raspberry Pi
  3. Construire un robot piloté par Internet avec streaming vidéo Arduino & Raspberry Pi
  4. Construire une télécommande Android universelle avec Arduino, 1Sheeld et contrôle IR
  5. Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
  6. Thermomètre portable DIY low-cost avec intégration Android
  7. Arduino et MPU6050 : Contrôle précis de servo-moteur avec SG90 et MG996R
  8. Contrôle fluide de la luminosité LED avec Bolt IoT et Arduino UNO
  9. Module GPS u-blox LEA‑6H 02 : guide d'intégration Arduino et Python