Arduino UNO Q - Capteur Ultrasonique
Ce tutoriel vous montre comment utiliser un Arduino UNO Q avec un capteur ultrasonique HC-SR04 pour mesurer la distance d'un objet. Vous apprendrez :
- Comment connecter un capteur ultrasonique à un Arduino UNO Q
- Comment programmer le MCU pour lire les valeurs de distance
- Comment filtrer le bruit des mesures de distance
- Comment utiliser le Bridge pour lire la distance depuis Linux et l'afficher via le Monitor
- Comment lire la distance à distance via Telegram

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Capteur Ultrasonique
Le capteur ultrasonique HC-SR04 mesure la distance aux objets en utilisant des ondes sonores. Il émet une onde sonore que les humains ne peuvent pas entendre, puis écoute l'écho lorsque le son rebondit. En mesurant le temps de trajet aller-retour, le capteur calcule la distance.
Brochage
Le HC-SR04 possède quatre broches :
- Broche VCC : Connecter à VCC (5V).
- Broche GND : Connecter à GND (0V).
- Broche TRIG : Connecter à une broche de sortie MCU pour déclencher une impulsion de mesure.
- Broche ECHO : Connecter à une broche d'entrée MCU pour recevoir la durée de l'impulsion d'écho.

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.
É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.
- Câblez les composants : Connectez VCC → 5V, GND → GND, TRIG → broche 9, ECHO → broche 8.
- Connectez : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
- Ouvrez Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
- Créez une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.

- Donnez un nom à l'application, par exemple : DIYables_Ultrasonic
- 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 là que vous collerez le code MCU.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

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

- Testez : Agitez la main devant le capteur. Utilisez la section Bridge ci-dessous pour voir les lectures de distance via le Monitor.
Comment Filtrer le Bruit des Mesures Ultrasoniques
Les lectures de distance du HC-SR04 contiennent du bruit. Dans certaines applications, des données bruitées peuvent provoquer un comportement incorrect. Utilisez cette méthode pour le filtrer :
- Effectuer 20 mesures et les stocker dans un tableau.
- Trier le tableau du plus petit au plus grand.
- Supprimer les 5 valeurs les plus petites et les 5 plus grandes (traitées comme du bruit).
- Faire la moyenne des 10 valeurs médianes restantes.
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 sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- Le capteur ultrasonique est connecté au MCU (STM32) — TRIG sur la broche 9, ECHO sur la broche 8.
- Le MPU ne peut pas lire le capteur directement — il appelle Bridge.call("read_distance") sur le MCU, qui déclenche une mesure et imprime le résultat sur le Monitor.
- Le MPU dispose du Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et envoyer des lectures à distance.
- Communication : Bridge.call() du côté Linux invoque Bridge.provide_safe() du côté MCU (car digitalWrite() est utilisé pour déclencher l'impulsion TRIG)
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement
En résumé : Le MPU demande une lecture → le MCU mesure la distance → le MCU imprime le résultat sur le Monitor.
Code MCU — capteur ultrasonique avec Bridge et sortie Monitor :
Script Python (Arduino App Lab) — demander une lecture de distance depuis Linux toutes les secondes :
- 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 du côté Linux.
- ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sous Linux) ni n'utilisez Serial1 (sur MCU) dans votre code — ils sont réservés par l'Arduino Router et y accéder brisera le Bridge.
Étapes Rapides
- Téléversez le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge dans sketch/sketch.ino, installez la bibliothèque Arduino_RouterBridge, et 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 demande une lecture de distance toutes les secondes.
- Vérifiez la console : Ouvrez l'onglet Console → sous-onglet MCU Monitor pour voir les valeurs de distance.
Sortie Console App Lab
Intégration Telegram
Lisez le capteur ultrasonique à 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 : Conservez 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 la lecture de distance ultrasonique :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu auprès de @BotFather sur Telegram.
- Envoyez /read — le MCU mesure la distance et le bot répond avec la valeur en cm.
Étapes Rapides
- Téléversez 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).
- Collez le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
- Configurez 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 /read — le bot répond avec la distance mesurée en cm.
Sortie 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.
Applications du Capteur Ultrasonique
- Évitement de collision
- Détection de niveau (réservoir d'eau, silo à grains)
- Détection de proximité
- Comptage d'objets sur un convoyeur
- Assistant de distance de stationnement
Relevez le Défi
- Facile : Ajouter un seuil — afficher « Objet proche ! » lorsque la distance descend en dessous de 10 cm
- Moyen : Envoyer la valeur réelle de la distance (en cm) directement à l'utilisateur Telegram
- Avancé : Implémenter le filtre anti-bruit de la section ci-dessus dans le sketch MCU Bridge et comparer les lectures filtrées et brutes via le Monitor