Arduino UNO Q - Servomoteur
Ce tutoriel vous montre comment contrôler un servomoteur avec un Arduino UNO Q. Plus précisément, vous apprendrez :
- Comment programmer Arduino UNO Q pour contrôler un servomoteur
- Comment contrôler la vitesse d'un servomoteur
- Comment utiliser une alimentation externe pour les servomoteurs

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Note d'achat: Si vous utilisez plusieurs servomoteurs, nous recommandons d'utiliser le PCA9685 16 Channel PWM Servo Driver Module pour économiser les broches du MCU et faciliter le câblage.
À Propos du Servomoteur
Un servomoteur est un composant qui peut faire tourner sa poignée, généralement de 0 à 180 degrés. Il est utilisé pour contrôler l'angle d'un objet.
Brochage
Cet exemple utilise un servomoteur à trois broches :
- Broche VCC : Connectez le fil rouge au VCC (5 volts).
- Broche GND : Connectez le fil noir ou marron au GND (0 volt).
- Broche Signal : Connectez le fil jaune ou orange pour recevoir le signal de contrôle PWM depuis une broche de l'Arduino UNO Q.

Schéma de Câblage
Parfois, vous pouvez voir en ligne des schémas de câblage montrant le VCC du servo connecté directement à la broche 5V de l'Arduino. Il est préférable d'éviter cette méthode car elle pourrait endommager la carte Arduino UNO Q.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Pour protéger votre carte Arduino UNO Q, il est préférable d'utiliser une alimentation externe pour le servomoteur. Le schéma de câblage ci-dessous montre comment connecter le servomoteur à une source d'alimentation externe.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Assurez-vous de connecter le GND de l'alimentation externe au GND de la carte Arduino UNO Q. Cette étape est très importante pour que tout fonctionne correctement.
Comment Programmer pour le Servomoteur
- Inclure la bibliothèque :
- Créer un objet Servo :
Si vous gérez plusieurs servomoteurs, déclarez simplement des objets Servo supplémentaires.
- Connectez la broche de contrôle de l'Arduino UNO Q à la broche signal du servomoteur, par exemple la broche 9.
- Enfin, faites tourner le servomoteur à l'angle souhaité, par exemple 90 degrés.
Code MCU
L'Arduino UNO Q possède deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.
Le code fait tourner le servomoteur doucement de 0° à 180° puis retour, en répétant continuellement :
Étapes Rapides
- Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Câbler les composants : Connectez le fil signal du servo à la broche 9, VCC à l'alimentation externe 5V, et GND à la fois à l'alimentation externe et au GND de l'Arduino UNO Q.
- Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
- Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
- Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.

- Donnez un nom à l'application, par exemple : DIYables_ServoMotor
- Cliquez sur Créer pour confirmer.
- Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.

- Trouvez le fichier sketch/sketch.ino — c'est ici que vous collerez le sketch MCU.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Servo created by Michael Margolis, Arduino and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser vers le STM32.

- Observer : Le servomoteur tourne lentement de 0° à 180°, puis revient lentement de 180° à 0°, en répétant continuellement.
Comment Contrôler la Vitesse du Servomoteur
L'utilisation des fonctions map() et millis() vous permet d'ajuster doucement la vitesse d'un servomoteur tout en permettant à d'autre code de s'exécuter sans interruption.
Programmation Bridge Linux + MCU
L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- Le servo est connecté au MCU (STM32) — le fil signal est câblé à la broche 9. Le MCU génère le signal PWM du servo.
- Le MPU ne peut pas contrôler le servo directement — il doit appeler une fonction sur le MCU via Bridge.call() pour déplacer le servo à une position spécifique.
- Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et positionner le servo à distance.
- Communication : Bridge.call() côté Linux invoque les fonctions Bridge.provide_safe() côté MCU (puisque servo.write() est une API matérielle)
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement
En bref : Le MPU envoie la commande d'angle → Le MCU pilote le servo → Le servo se déplace à la position.
Sketch MCU — contrôle de servomoteur avec Bridge et sortie Monitor :
Script Python (Arduino App Lab) — contrôler le servo depuis Linux :
- Remarque : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
- ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sous Linux) ou n'utilisez pas Serial1 (sur MCU) dans votre code — ces ports sont réservés par le routeur Arduino et y accéder cassera le Bridge.
Étapes Rapides
- Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge dans sketch/sketch.ino, installez les bibliothèques Servo et Arduino_RouterBridge, et cliquez sur Exécuter.
- Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
- Exécuter l'application : Cliquez sur Exécuter — Python fait cycler le servo entre les positions gauche, centre, droite, centre automatiquement.
- Vérifier la console : Ouvrez l'onglet Console → sous-onglet MCU Monitor pour voir les messages de position du servo.
Sortie de la Console App Lab
Intégration Telegram
Contrôlez le servomoteur à distance depuis n'importe où via Telegram.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
Sketch MCU : Gardez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.
Script Python (Arduino App Lab) — bot Telegram pour le contrôle du servomoteur :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu auprès de @BotFather sur Telegram.
- Envoyez /left pour déplacer le servo à 0°.
- Envoyez /center pour déplacer le servo à 90°.
- Envoyez /right pour déplacer le servo à 180°.
Étapes Rapides
- Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord si ce n'est pas déjà fait).
- Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
- Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre token de bot réel.
- Exécuter l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram.
- Testez : Envoyez /left — le servo se déplace à 0°. Envoyez /center — il va à 90°. Envoyez /right — il va à 180°.
Sortie de la Console App Lab
ArduinoBot
Intégration d'OpenClaw
Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.
Idées d'Applications/Projets
- Panoramique de caméra à distance : Monter une caméra sur un servo et la diriger avec des commandes Telegram
- Vanne automatisée : Utiliser un servo pour ouvrir ou fermer une vanne d'eau déclenché par un message Telegram
- Mécanisme de serrure de porte : Faire tourner un servo pour verrouiller ou déverrouiller une porte à distance
- Suiveur solaire : Utiliser la lecture d'un capteur de lumière depuis le MPU pour maintenir un panneau solaire orienté vers le soleil
- Articulation de bras robotique : Construire un bras robotique multi-servo et contrôler chaque articulation via Telegram
Défiez-vous
- Facile : Ajouter une commande Telegram /status qui indique l'angle actuel du servo (gauche, centre ou droite)
- Moyen : Implémenter un mouvement fluide entre les positions en avançant degré par degré dans le callback Bridge
- Avancé : Ajouter plusieurs positions prédéfinies (/pos1, /pos2, etc.) configurables via des commandes Telegram