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 :

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.

Arduino UNO Q Actionneur

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Actionneur linéaire
1×Motor Shield for Arduino
1×Adaptateur secteur 12V
1×Connecteur d'alimentation DC
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos de l'Actionneur Linéaire

Actionneur linéaire extension rétraction

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)
Brochage de l'actionneur linéaire

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.

Comment contrôler un actionneur linéaire

※ 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

Schéma de câblage de l'Arduino UNO Q avec l'actionneur et le Motor Shield

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 :

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-actuator */ #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); void setup() { motor.begin(); } void loop() { // extend the actuator at full speed motor.run(MOTOR_FORWARD, 255); delay(20000); // actuator stops automatically at its limit // retract the actuator at full speed motor.run(MOTOR_BACKWARD, 255); delay(20000); // actuator stops automatically at its limit }

É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.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • 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.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le programme MCU.
  • Coller le programme : Copiez le code MCU ci-dessus et collez-le dans le fichier de programme. Laissez les autres fichiers par défaut.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for DIYables_DC_Motor created by DIYables.io and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    DIYables_DC_Motor DIYables.io

    Easy-to-use library for controlling DC motors via the Arduino Motor Shield Rev3 (L298P). Supports both Channel A and Channel B with direction control, PWM speed, brake, and current sensing. Custom pin assignments also supported.

    1.0.0
    Install
    More Info
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser sur le STM32.
    Cliquer sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
    • 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 :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-actuator */ #include "Arduino_RouterBridge.h" #include <DIYables_DC_Motor.h> DIYables_DC_Motor motor(MOTOR_CH_A); void actuator_extend() { motor.run(MOTOR_FORWARD, 255); Monitor.println("Actuator: EXTENDING"); } void actuator_retract() { motor.run(MOTOR_BACKWARD, 255); Monitor.println("Actuator: RETRACTING"); } void actuator_stop() { motor.brake(); Monitor.println("Actuator: STOPPED"); } void setup() { Bridge.begin(); Monitor.begin(); motor.begin(); motor.brake(); Bridge.provide_safe("actuator_extend", actuator_extend); Bridge.provide_safe("actuator_retract", actuator_retract); Bridge.provide_safe("actuator_stop", actuator_stop); Monitor.println("Actuator Bridge ready"); } void loop() {}

    Script Python (Arduino App Lab) — cycle extension, pause, rétraction, pause :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-actuator */ from arduino.app_utils import * import time def loop(): Bridge.call("actuator_extend") time.sleep(20) Bridge.call("actuator_stop") time.sleep(1) Bridge.call("actuator_retract") time.sleep(20) Bridge.call("actuator_stop") time.sleep(1) App.run(user_loop=loop)
    • 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

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Actuator Bridge ready Actuator: EXTENDING Actuator: STOPPED Actuator: RETRACTING Actuator: STOPPED

    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 :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-actuator */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/extend": Bridge.call("actuator_extend") send_message(chat_id, "Actuator is EXTENDING.") elif text == "/retract": Bridge.call("actuator_retract") send_message(chat_id, "Actuator is RETRACTING.") elif text == "/stop": Bridge.call("actuator_stop") send_message(chat_id, "Actuator STOPPED.") else: send_message(chat_id, "Commands:\n/extend — extend actuator\n/retract — retract actuator\n/stop — stop actuator") time.sleep(0.5) App.run(user_loop=loop)
    • 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

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /extend [2026-04-29 12:00:01] Actuator is EXTENDING. [2026-04-29 12:00:15] Telegram: /stop [2026-04-29 12:00:15] Actuator STOPPED. [2026-04-29 12:01:00] Telegram: /retract [2026-04-29 12:01:00] Actuator is RETRACTING.
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /extend
    10:15 AM ✓✓
    Actuator is EXTENDING.
    10:16 AM
    /stop
    10:17 AM ✓✓
    Actuator STOPPED.
    10:18 AM
    /retract
    10:19 AM ✓✓
    Actuator is RETRACTING.
    10:20 AM

    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

    Références des Fonctions

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !