Contrôlez votre bras robot Arduino via une application Android dédiée
Composants nécessaires
- 1 × Kit bras robot LittleArm (ou équivalent 4 DOF avec servomoteurs)
- 1 × Arduino Uno
- 1 × Module Bluetooth HC-05 (configuré en esclave)
- 1 × Smartphone / tablette Android
- Alimentation 5V/2A pour l'Arduino et les servos (via shield ou UBEC)
Applications et logiciels
- Arduino IDE
- Application Android "LittleArm" (disponible sur le store ou via le lien du projet)
Principe de fonctionnement
Le bras robot LittleArm est habituellement piloté par une application PC (Windows/Linux) via USB. Ce projet ajoute une connexion Bluetooth (HC-05) pour permettre un contrôle sans fil depuis un smartphone Android. L'application Android envoie des commandes série (angles des 3 articulations + pince + délai) que l'Arduino interprète pour déplacer les servos en douceur. Le code Arduino est compatible avec les deux modes (USB ou Bluetooth) sans modification.
Câblage
- HC-05 : VCC → 5V, GND → GND, TX → RX (D0) Arduino, RX → TX (D1) via diviseur 1k/2kΩ
- Servos : Base → D9, Épaule → D10, Coude → D11, Pince → D6
- Alimentation servos : 5V externe (ne pas alimenter les servos via le régulateur de l'Arduino)
Code Arduino
#include
#include
#define PI 3.141
Servo baseServo, shoulderServo, elbowServo, gripperServo;
struct JointAngle { int base; int shoulder; int elbow; };
JointAngle desiredAngle;
int desiredGrip, desiredDelay;
int servoSpeed = 15;
int ready = 0;
void setup() {
Serial.begin(9600);
baseServo.attach(9);
shoulderServo.attach(10);
elbowServo.attach(11);
gripperServo.attach(6);
Serial.setTimeout(50);
Serial.println("started");
baseServo.write(90);
shoulderServo.write(150);
elbowServo.write(110);
ready = 0;
}
void loop() {
if (Serial.available()) {
ready = 1;
desiredAngle.base = Serial.parseInt();
desiredAngle.shoulder = Serial.parseInt();
desiredAngle.elbow = Serial.parseInt();
desiredGrip = Serial.parseInt();
desiredDelay = Serial.parseInt();
if (Serial.read() == '\n') {
Serial.flush();
Serial.print('d'); // acquittement
}
}
int status1 = 0, status2 = 0, status3 = 0, status4 = 0;
int done = 0;
while (done == 0 && ready == 1) {
status1 = servoParallelControl(desiredAngle.base, baseServo, desiredDelay);
status2 = servoParallelControl(desiredAngle.shoulder, shoulderServo, desiredDelay);
status3 = servoParallelControl(desiredAngle.elbow, elbowServo, desiredDelay);
status4 = servoParallelControl(desiredGrip, gripperServo, desiredDelay);
if (status1 && status2 && status3 && status4) done = 1;
}
}
int servoParallelControl(int thePos, Servo theServo, int theSpeed) {
int startPos = theServo.read();
int newPos = startPos;
if (startPos < (thePos - 5)) {
newPos++;
theServo.write(newPos);
delay(theSpeed);
return 0;
} else if (newPos > (thePos + 5)) {
newPos--;
theServo.write(newPos);
delay(theSpeed);
return 0;
}
return 1;
}
Application Android
L'application "LittleArm" (développée par Slant Concepts) permet :
- Contrôle manuel de chaque articulation (cursseurs ou joystick virtuel)
- Enregistrement et lecture de séquences de mouvements (macro)
- Connexion Bluetooth automatique au module HC-05 appairé
Téléchargez l'APK depuis la page du projet Hackster ou le site de Slant Concepts.
Schéma de câblage
Voir l'image du schéma dans la section "Schematics" du projet original.
Améliorations possibles
- Ajouter un retour de position (potentiomètres sur les axes) pour une boucle fermée.
- Implémenter la cinématique inverse pour contrôler le bras en coordonnées cartésiennes (X,Y,Z).
- Ajouter une caméra pour la vision artificielle (reconnaissance d'objets).
Processus de fabrication
- Construire une télécommande Android universelle avec Arduino, 1Sheeld et contrôle IR
- Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
- Contrôle IoT à Distance d'un Bras Robotique Personnalisé avec Arduino MKR1000
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Contrôlez votre Roomba Create 2 avec Arduino et Android – Guide pas à pas
- Bras robotique 6 DoF piloté par Nunchuk Wii – Kit Arduino Mega
- Contrôler 2 moteurs pas-à-pas avec Arduino Nano et joystick – Tutoriel Visuino
- LittleArm 2C : Bras Robot 3D Imprimé Arduino pour Éducation STEM