Arduino UNO Q - Actionneur
Dans ce guide, vous apprendrez à contrôler un actionneur linéaire avec Arduino UNO Q et le Motor Shield Rev3. Vous apprendrez :
- Comment fonctionne un actionneur linéaire
- Comment câbler l'actionneur avec le Motor Shield Rev3
- Comment étendre et rétracter l'actionneur depuis le code MCU
- Comment contrôler l'actionneur depuis Linux via le Bridge
- Comment contrôler l'actionneur à distance via Telegram
Ce tutoriel couvre les actionneurs linéaires sans retour de position. Pour le contrôle de position, voir Arduino UNO Q - Actionneur avec Retour de Position.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos de l'Actionneur Linéaire

Un actionneur linéaire convertit l'énergie électrique en mouvement linéaire. Il peut s'étendre et se rétracter, ce qui le rend utile pour pousser, tirer, soulever ou pincer.
Brochage de l'Actionneur Linéaire
Un actionneur linéaire possède deux fils :
- Fil positif (souvent rouge)
- Fil négatif (souvent noir)

Fonctionnement
Pour un actionneur linéaire 12V :
- Connectez 12V au positif, GND au négatif → l'actionneur s'étend complètement à pleine vitesse jusqu'à sa limite.
- Connectez 12V au négatif, GND au positif → l'actionneur se rétracte complètement à pleine vitesse jusqu'à sa limite.
- Connectez les deux fils à GND → l'actionneur s'arrête.
Le Motor Shield Rev3 gère ces inversions de polarité pour vous. La bibliothèque DIYables_DC_Motor contrôle la direction et la vitesse — utilisez motor.run(MOTOR_FORWARD, 255) pour étendre et motor.run(MOTOR_BACKWARD, 255) pour rétracter à pleine vitesse. Appelez motor.brake() pour arrêter.

※ Note:
Contrairement aux moteurs DC ordinaires, les actionneurs linéaires peuvent maintenir leur position même sans alimentation lorsqu'ils portent une charge.
Si vous n'êtes pas familier avec le Motor Shield Rev3 (brochage, fonctionnement et programmation), consultez d'abord le tutoriel Arduino UNO Q - Bouclier Moteur DC.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
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 étend l'actionneur pendant 20 secondes, puis le rétracte pendant 20 secondes, de manière répétée :
É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.
- Monter le bouclier : Emboîtez fermement le Motor Shield Rev3 sur les connecteurs de l'Arduino UNO Q. Connectez les fils de l'actionneur aux borniers à vis du canal A. Connectez l'alimentation 12V aux borniers 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_Actuator
- Cliquez sur Créer pour confirmer.
- Un ensemble de dossiers et de fichiers sera généré 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.
- Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser sur le STM32.

- Tester : L'actionneur devrait s'étendre complètement, faire une pause, puis se rétracter complètement, de manière répétée.
Programmation Bridge Linux + MCU
L'Arduino UNO Q dispose de deux processeurs fonctionnant 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 Rev3 et l'actionneur sont contrôlés par le MCU (STM32) — la bibliothèque DIYables_DC_Motor pilote l'actionneur via le canal A.
- Le MPU ne peut pas contrôler l'actionneur directement — il appelle Bridge.call("actuator_extend"), Bridge.call("actuator_retract") ou Bridge.call("actuator_stop") sur le MCU.
- Le MPU dispose du Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut accepter des commandes Telegram pour contrôler l'actionneur à 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 à l'actionneur → le MCU pilote le Motor Shield → l'actionneur s'étend ou se rétracte.
Programme MCU — contrôle de l'actionneur avec Bridge :
Script Python (Arduino App Lab) — cycle extension, pause, rétraction, pause :
- 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 Serial1 (sur MCU) dans votre code — ces ports sont réservés par le routeur Arduino et y accéder brisera le Bridge.
Étapes Rapides
- Téléversez 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, puis cliquez sur Exécuter.
- Ajoutez le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
- Exécutez l'application : Cliquez sur Exécuter — Python étend et rétracte l'actionneur en cycle.
- Vérifiez la console : Ouvrez l'onglet Console → sous-onglet Moniteur MCU pour voir l'état de l'actionneur.
Sortie de la Console App Lab
Intégration Telegram
Contrôlez l'actionneur à distance via Telegram avec les commandes /extend, /retract et /stop.
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 : Conservez 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 le contrôle de l'actionneur :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /extend, /retract ou /stop pour contrôler l'actionneur.
Étapes Rapides
- Téléversez le programme MCU : Utilisez le programme MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
- Collez le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
- Définissez votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
- Exécutez l'application : Cliquez sur Exécuter — le bot commence à écouter les messages Telegram.
- Testez : Envoyez /extend, /retract et /stop pour contrôler l'actionneur.
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
- Portail automatique : S'étend pour ouvrir et se rétracte pour fermer un portail physique
- Bureau à hauteur réglable : Contrôlez la hauteur du bureau avec des commandes Telegram
- Suiveur de panneau solaire : Inclinez un panneau solaire vers le soleil à l'aide d'un actionneur déclenché par le mouvement
- Rail de caméra : Faites glisser une caméra le long d'un rail linéaire pour des prises de vue vidéo fluides
Mettez-Vous au Défi
- Facile : Changez la durée d'extension et de rétraction de 20 secondes à 10 secondes
- Moyen : Ajoutez une commande Telegram /stop_after_extend qui étend l'actionneur, attend 10 secondes, puis s'arrête automatiquement
- Avancé : Combinez avec un fin de course pour détecter quand l'actionneur atteint son extension maximale