SunuLab
Notre savoir
Tous les projets
Intermédiaire60 minKit Robotique

Bras articulé qui salue

Un petit bras avec deux servos qui salue, pointe, ou suit la position d'un potentiomètre que tu tournes. Premier pas vers la robotique.

Vidéo du tutoriel — à venir
Bras articulé qui salue
Tu auras besoin du

SunuMake Robotique

Donne vie à des machines qui bougent7 composants inclus.

25 000 FCFAVoir le kit
Pas à pas

Les étapes

  1. 1

    Matériel

    2 servomoteurs SG90, du carton rigide ou des bâtonnets pour fabriquer le bras, du scotch, 6 fils.

  2. 2

    Fabrique le bras

    Servo n°1 = épaule, fixé sur ta table. Sur sa palette, colle un premier bâtonnet (l'avant-bras). Au bout de ce bâtonnet, fixe le servo n°2 = coude. Sur la palette du servo n°2, colle un second bâtonnet (la main). Tu peux dessiner une main au bout pour le style.

  3. 3

    Câble les deux servos

    Servo n°1 (épaule) → signal sur broche 9. Servo n°2 (coude) → signal sur broche 10. Les VCC sur 5 V, les GND sur GND. ⚠️ Si tu vois la carte redémarrer pendant les mouvements, alimente les servos avec une pile externe (4 piles AA en série, 6 V, le − relié au GND Arduino).

  4. 4

    Téléverse le code « salut auto »

    Téléverse. Le bras lève l'épaule, agite la main 3 fois (salut !), puis baisse l'épaule. Toutes les 2 secondes, il recommence.

  5. 5

    Variante : suit un potentiomètre

    Branche un potentiomètre sur A0 (les 3 broches : 5 V, A0, GND). Remplace la routine `salut()` par une lecture continue : `epaule.write(map(analogRead(A0), 0, 1023, 0, 180));`. Tourne le potentiomètre — l'épaule suit ton geste en temps réel.

Code Arduino

Le programme à téléverser

Copie ce code dans l'IDE Arduino, branche ta carte en USB et clique sur le bouton « Téléverser » (la flèche en haut à gauche).

sketch.ino
// Bras articulé qui salue
#include <Servo.h>
Servo epaule; // broche 9
Servo main; // broche 10
void salut() {
// Lève l'épaule progressivement
for (int a = 0; a <= 90; a++) {
epaule.write(a);
delay(15);
}
// Agite la main 3 fois
for (int i = 0; i < 3; i++) {
main.write(45);
delay(300);
main.write(135);
delay(300);
}
main.write(90); // main au repos
// Baisse l'épaule
for (int a = 90; a >= 0; a--) {
epaule.write(a);
delay(15);
}
}
void setup() {
epaule.attach(9);
main.attach(10);
epaule.write(0);
main.write(90);
delay(1000);
}
void loop() {
salut();
delay(2000);
}
Mini-cours

Comment ça marche ?

Chaque servomoteur correspond à un degré de liberté dans la mécanique : un pivot autour duquel une partie peut tourner. Un bras humain en a 7 (épaule × 3, coude × 1, poignet × 3) — notre robot en a 2, suffisant pour saluer.

La boucle for (int a = 0; a <= 90; a++) qui incrémente l'angle d'un degré toutes les 15 ms produit un mouvement fluide (≈ 60°/seconde). Si tu écrivais directement epaule.write(90), le servo irait à fond, brutalement — moins joli, moins humain.

Limite à connaître : delay() bloque tout le programme pendant le mouvement. Pour faire deux servos qui bougent en même temps de manière indépendante, il faut utiliser millis() à la place — sujet plus avancé qu'on verra dans les projets niveau Connecté.

Continuer

D'autres projets à essayer