# Programmation d'un servomoteur RC 360°

### <span style="text-decoration: underline;">**Objectif :**</span>

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](https://innovation.iha.unistra.fr/attachments/54)" à télécharger et faire un glisser-déposer sur Mblock.

[![image.png](https://innovation.iha.unistra.fr/uploads/images/gallery/2025-04/scaled-1680-/Couimage.png)](https://innovation.iha.unistra.fr/uploads/images/gallery/2025-04/Couimage.png)

 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)
- [![Capture d’écran 2025-03-21 142828.png](https://innovation.iha.unistra.fr/uploads/images/gallery/2025-03/scaled-1680-/capture-decran-2025-03-21-142828.png)](https://innovation.iha.unistra.fr/uploads/images/gallery/2025-03/capture-decran-2025-03-21-142828.png)


#### **Exercice sur Mblock**

<span style="text-decoration: underline;">**Consigne :**</span> 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**

**<span style="text-decoration: underline;">Consigne :</span>** Programmer un **servomoteur 360** pour qu'il effectue en boucle un changement de **sens de rotation** à **vitesse maximale** et cela toute les **2 secondes**.

#### <span style="text-decoration: underline;">**Correction :**</span>

```
#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**.