Programmation d'un servomoteur RC 360°
Objectif :
Comprendre le fonctionnement des servomoteurs et apprendre à les programmer avec mBlock et Arduino IDE.
1. Introduction aux Servomoteurs RC 360°
Qu’est-ce qu’un servomoteur RC 360° ?
Un servomoteur RC 360° (ou « continu ») est un petit moteur qui peut tourner en continu dans les deux sens (comme une roue), contrairement aux servos classiques qui ne tournent que sur un angle limité (en général 180° maximum).
⚙️ À quoi ça sert dans un robot comme le LittleBot ?
Dans le LittleBot, ces servos sont utilisés pour faire tourner les roues du robot. En envoyant des signaux différents, on peut :
-
Faire avancer le robot (les deux roues tournent en avant),
-
Faire reculer le robot (les deux roues tournent en arrière),
-
Faire tourner (une roue avance, l’autre recule ou reste fixe).
2. Configuration et Programmation avec mBlock
Présentation des blocs spécifiques à la gestion des servomoteurs
Pour un servomoteur RC 360° on va utiliser le bloc ci-dessous que l'on peut trouver dans l'extensions "Servo360" ou ici "servo.mext" à télécharger et faire un glisser-déposer sur Mblock.
Numéro de broche vitesse du servomoteur (dans un sens entre [-100 et 0[ et dans l'autre entre ]0 et 100]). A 0 on est donc à l'arrêt
Branchement d'un servomoteur à un Arduino Nano
Un servomoteur possède trois câbles :
-
Noir ou Marron → GND (Masse)
-
Rouge → 5V (Alimentation)
-
Jaune ou Orange → Signal (Entre les broches 2 et 13 du Nano)
Exercice sur Mblock
Consigne : Programmer un servomoteur RC 360° pour qu'il effectue en boucle un changement de sens de rotation à vitesse maximale et cela toute les 2 secondes.
3. Configuration et Programmation avec Arduino IDE
Exercice sur Arduino IDE
Consigne : Programmer un servomoteur 360 pour qu'il effectue en boucle un changement de sens de rotation à vitesse maximale et cela toute les 2 secondes.
Correction :
#include <Servo.h>
Servo monServo; // Création de l'objet Servo
void setup() {
monServo.attach(9); // Connexion du servomoteur sur la broche D9
}
void loop() {
monServo.writeMicroseconds(2000); // Vitesse maximale dans un sens
delay(2000); // Tourne pendant 2 secondes
monServo.writeMicroseconds(1000); // Vitesse maximale dans l'autre sens
delay(2000); // Tourne pendant 2 secondes
}
4. Discussion et Applications
Applications pratiques
-
🤖 Bras robotisé
-
🗑️ Poubelle connectée
-
🤖 Little Bot
Questions et suggestions d’amélioration
✅ Ajouter un potentiomètre pour contrôler l’angle du servomoteur.
✅ Utiliser un bouton poussoir pour déclencher le mouvement.
✅ Remplacer le servomoteur 180° par un servomoteur à rotation continue.