Arduino UNO Q - Bouclier Moteur DC
Le Motor Shield Rev3 se branche directement sur les connecteurs de l'Arduino UNO Q — même disposition de broches que l'Uno classique. Dans ce guide, vous allez :
- Empiler le Motor Shield Rev3 sur une carte Arduino UNO Q.
- Câbler un moteur DC et une alimentation externe.
- Écrire du code qui fait tourner le moteur en avant et en arrière.
- Régler la vitesse du moteur via des valeurs PWM (0–255).
- Appliquer et relâcher le frein électronique.
- Faire fonctionner deux moteurs en même temps sur le Canal A et le Canal B.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Vue d'Ensemble du Motor Shield Rev3
Au cœur du Motor Shield Rev3 se trouve le pilote double pont complet L298P. Cette puce vous donne un contrôle indépendant sur deux moteurs DC — chacun avec sa propre ligne de direction, ligne de vitesse PWM, ligne de frein et entrée analogique de détection de courant.
Voici ce que fait chaque ligne de contrôle :
- Direction — une sortie numérique qui définit le sens de rotation. Mettre HIGH fait tourner dans un sens ; LOW dans l'autre.
- PWM — une sortie analogique (PWM) qui définit le rapport cyclique. Les valeurs vont de 0 (arrêté) à 255 (pleine vitesse).
- Frein — une sortie numérique. La mettre à HIGH bloque l'arbre du moteur ; à LOW le moteur tourne librement.
- Détection de courant — une entrée analogique qui indique combien de courant le moteur consomme.
Comme l'Arduino UNO Q conserve les mêmes positions de connecteurs que l'Uno classique, chaque broche s'aligne automatiquement :
| Fonction | Canal A | Canal B |
|---|---|---|
| Direction | D12 | D13 |
| PWM (Vitesse) | D3 | D11 |
| Frein | D9 | D8 |
| Détection courant | A0 | A1 |
Alimentation des Moteurs
Les moteurs ont besoin de plus de courant que ce que l'USB peut fournir. Connectez une alimentation externe 6–12 V aux bornes à vis d'alimentation du bouclier. L'Arduino UNO Q lui-même continue de fonctionner depuis l'USB.
Schéma de Câblage
Placez le Motor Shield Rev3 sur les connecteurs de l'Arduino UNO Q en vous assurant que chaque broche s'insère correctement. Fixez les fils du moteur DC aux bornes à vis du Canal A. Connectez l'alimentation externe aux bornes à vis d'alimentation.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Moteur Unique sur le Canal A
Code MCU
L'Arduino UNO Q dispose 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 ci-dessous alterne la direction du moteur toutes les 2 secondes avec freinage intermédiaire :
Étapes Rapides
- Première utilisation de l'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Empiler le bouclier : Pressez fermement le Motor Shield Rev3 sur les connecteurs de l'Arduino UNO Q.
- Câblez le moteur : Connectez votre moteur DC aux bornes à vis du Canal A.
- Connectez l'alimentation : Fixez l'alimentation externe aux bornes d'alimentation du bouclier.
- Connecter : Branchez l'Arduino UNO Q sur 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_DCMotorShield
- Cliquez sur Créer pour confirmer.
- Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle application.

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

- Search for DIYables_DC_Motor created by DIYables.io 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 moteur alterne entre avant et arrière toutes les 2 secondes, avec un freinage de 2 secondes entre chaque changement de direction.
Référence Rapide des Méthodes
| Méthode | Ce qu'elle fait | Utilisation |
|---|---|---|
| run(dir, speed) | Fait tourner le moteur dans la direction donnée à la vitesse donnée | motor.run(MOTOR_FORWARD, 100) |
| setSpeed(speed) | Change la vitesse sans toucher à la direction ou au frein | motor.setSpeed(200) |
| setDirection(dir) | Change la direction sans toucher à la vitesse ou au frein | motor.setDirection(MOTOR_BACKWARD) |
| brake() | Engage le frein et réduit la vitesse à zéro | motor.brake() |
| release() | Désengage le frein | motor.release() |
| readCurrent() | Retourne la valeur ADC brute de la broche de détection de courant | motor.readCurrent() |
Moteur Unique sur le Canal B
Comportement identique au Canal A, mais sur le Canal B — changez simplement la constante du canal.
Étapes Rapides
- Câblez le moteur aux bornes à vis du Canal B.
- Suivez les mêmes étapes rapides que la section Canal A ci-dessus (créer l'application, coller le programme, installer les bibliothèques, téléverser).
- Le moteur alterne de direction et freine de la même façon — seules les broches sous-jacentes diffèrent.
Deux Moteurs — Les Deux Canaux
Contrôlez deux moteurs indépendamment : tous les deux en avant, tous les deux en arrière, et dans des directions opposées.
Étapes Rapides
- Fixez un moteur aux bornes à vis du Canal A et un autre au Canal B.
- Suivez les mêmes étapes rapides que la section Canal A ci-dessus (créer l'application, coller le programme, installer les bibliothèques, téléverser).
- Le programme enchaîne les séquences les deux en avant, les deux en arrière, et directions opposées.
Programmation Bridge Linux + MCU
L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre programme Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- Le Motor Shield est connecté au MCU (STM32) — les broches de direction, PWM et frein sont toutes sur le connecteur Arduino UNO Q, pilotées par le STM32.
- Le MPU ne peut pas contrôler le motor shield directement — il doit appeler une fonction sur le MCU via Bridge.call() pour faire tourner en avant, en arrière ou freiner.
- Le MPU a le Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et contrôler le moteur à distance.
- Communication : Bridge.call() côté Linux invoque Bridge.provide_safe() côté MCU (car motor.run() et motor.brake() utilisent des API matérielles)
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement
En résumé : Le MPU envoie la commande → le MCU pilote le Motor Shield → le Motor Shield contrôle le moteur DC.
Programme MCU — contrôle du Motor Shield avec Bridge et sortie Moniteur :
Script Python (Arduino App Lab) — contrôle du moteur depuis Linux :
- Remarque : Assurez-vous que Bridge.begin() est appelé dans le programme MCU et que le programme 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 ressources sont réservées par le routeur Arduino et y accéder briserait le Bridge.
Étapes Rapides
- Téléverser le programme MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le programme MCU Bridge dans sketch/sketch.ino, installez les bibliothèques DIYables_DC_Motor 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 tourner le moteur en avant, freine, en arrière, freine automatiquement.
- Vérifier la console : Ouvrez l'onglet Console → sous-onglet Moniteur MCU pour voir les messages d'état du moteur.
Sortie de la Console App Lab
Intégration Telegram
Contrôlez le moteur DC à 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.
Programme MCU : Gardez le même programme 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 contrôler le bouclier moteur :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /forward pour faire tourner le moteur en avant.
- Envoyez /backward pour faire tourner le moteur en arrière.
- Envoyez /brake pour freiner le moteur.
Étapes Rapides
- Téléverser le programme MCU : Utilisez le programme MCU Bridge de la section précédente (téléversez-le d'abord si ce n'est pas encore 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 vrai token de bot.
- Exécuter l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram.
- Tester : Envoyez /forward — le moteur tourne. Envoyez /brake — il s'arrête brutalement. Envoyez /backward — il fait marche arrière.
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 et de Projets
- Robot télécommandé : Utilisez le Canal A et le Canal B ensemble pour construire un robot à entraînement différentiel à deux moteurs contrôlé via Telegram
- Convoyeur automatisé : Faites avancer ou reculer un moteur Canal A selon un planning en utilisant le cron Linux du MPU
- Curseur de caméra motorisé : Utilisez le contrôle précis de la vitesse PWM pour déplacer une caméra en douceur le long d'un rail
- Plateau tournant à deux axes : Contrôlez deux moteurs simultanément pour des mouvements panoramique et inclinaison via des commandes Telegram
- Contrôleur de ventilateur intelligent : Ajustez la vitesse du ventilateur à distance — définissez vitesse lente, moyenne ou maximale depuis Telegram
Mettez-Vous au Défi
- Facile : Ajoutez une commande Telegram /statut qui rapporte l'état actuel du moteur (avant, arrière ou freinage)
- Moyen : Ajoutez une commande Telegram /vitesse <0-255> pour régler la vitesse PWM avant de faire tourner
- Avancé : Contrôlez le Canal A et le Canal B indépendamment depuis Telegram en utilisant des commandes comme /a avant, /b arriere, /a frein
Arduino UNO Q Bouclier Moteur DC - Démonstration Complète
Voici un tutoriel vidéo étape par étape démontrant tous les exemples du bouclier moteur DC :