article

Bras articulé avec Arduino phase 1

Par  Benjamin

Publié le 3 novembre 2021

Voici le premier tutoriel à base d'Arduino, et l'on commence fort avec un petit projet de bras articulé. Vous me direz, il en existe des milliers sur le web déjà tous faits, mais ici je vais expérimenter, faire des erreurs, et tout partager en retour. Bref, de quoi se casser les dents tous ensemble !

Trop de bras de levier, on va passer par des axes et vis sans fin.

Étape 1 : Le matériel Il vous faut pour cette recette, 4 servomoteurs (180°), 4 potentiomètres (non linéaires), 1 Arduino UNO, une breadboard (planche à pain, mais pourquoi ?) et pas mal de câbles. Pour passer commande, il y a AliExpress. C'est pas très bon niveau empreinte carbone, mais pour démarrer c'est parfait pour les petits budgets. Sinon vous avez l'autre diable avec Amazon mais aux tarifs européens. Après, si vous trouvez un shop en ligne pas trop loin de chez vous c'est mieux, et pour peu qu'ils aient une boutique c'est top. Mais je suppose que tout le monde n'habite pas forcément dans une grande métropole. Le budget : environ 20€ - Servomoteurs 9€ - Arduino UNO 5€ (avec le câble USB c'est mieux) - Câble 3€ (mâle vers mâle) - Potentiomètres 10K ohm 2€ - Breadboard 2€ Étape 2 : Le montage Je vous ai fait un petit schéma, où pour alimentation je n'utilise pas la partie latérale. Cela aurait simplifié les choses. Mais elles ne fonctionnent plus chez moi, gros fail !

Vous pouvez faire un clic droit et ouvrir l'image en grand dans un nouvel onglet.

En attendant vous pourrez vous amuser à optimiser le schéma de montage pour les plus curieux. Étape 3 : Le code Sûrement la partie la plus chiante, mais la plus intéressante pour beaucoup. Nous allons donner vie finalement au montage que nous venons de faire ci-dessus. Pour ça je me suis librement inspiré d'une vidéo sur Youtube. J'ai simplement multiplié les servomoteurs et les potentiomètres. Donc avec quelques notions de code et un peu de logique, internet vous ouvre les bras !


# include < Servo.h >

Servo myServo1;
char AN_POTENTIOMETRE1 = A0;
char PWN_SERVO1 = 13;

Servo myServo2;
char AN_POTENTIOMETRE2 = A1;
char PWN_SERVO2 = 12;

Servo myServo3;
char AN_POTENTIOMETRE3 = A2;
char PWN_SERVO3 = 11;

Servo myServo4;
char AN_POTENTIOMETRE4 = A3;
char PWN_SERVO4 = 10;

int positionDuServo1 = 0;
int positionDuServo2 = 0;
int positionDuServo3 = 0;
int positionDuServo4 = 0;

void setup() {
myServo1.attach(PWN_SERVO1);
myServo1.write(positionDuServo1);

myServo2.attach(PWN_SERVO2);
myServo2.write(positionDuServo2);

myServo3.attach(PWN_SERVO3);
myServo3.write(positionDuServo3);

myServo4.attach(PWN_SERVO4);
myServo4.write(positionDuServo4);
}

void loop() {
positionDuServo1 = analogRead(AN_POTENTIOMETRE1);
positionDuServo1 = map(positionDuServo1,0,1023,0,180);
myServo1.write(positionDuServo1);
delay(15);

positionDuServo2=analogRead(AN_POTENTIOMETRE2);
positionDuServo2=map(positionDuServo2,0,1023,0,180);
myServo2.write(positionDuServo2);
delay(15);

positionDuServo3=analogRead(AN_POTENTIOMETRE3);
positionDuServo3=map(positionDuServo3,0,1023,0,180);
myServo3.write(positionDuServo3);
delay(15);

positionDuServo4=analogRead(AN_POTENTIOMETRE4);
positionDuServo4=map(positionDuServo4,0,1023,0,180);
myServo4.write(positionDuServo4);
delay(15);

}

Télécharger le ficher : sketchArm.ino.zip Étape 4 : Mettre en route Normalement à cette étape vous devez brancher votre Arduino UNO sur votre ordinateur. N'oubliez pas de sélectionner dans le menu "Outils" / "Type" de carte, votre carte Arduino UNO. Si vous en avez une autre, il suffit de changer par le modèle correspondant. Pour le port USB c'est la même démarche, il faudra sélectionner la bonne entrée, toujours dans le menu "Outils" / "Port". Maintenant vous pouvez vérifier votre code, et le téléverser dans votre Arduino. Prochainement : Nous mettrons en place les différentes impressions 3D pour articuler votre bras, pour le moment je suis encore en phase de test. Mais aussi actionner le bras avec des Joysticks, mais après mes premiers essais c'est un peu chaud. ^_^
Crédits : KernelDesign.net
comments powered by Disqus