Arduino UNO Q - Capteur Éviteur d'Obstacles

Le capteur IR d'évitement d'obstacles utilise la lumière infrarouge pour détecter les objets devant lui. Il signale un signal numérique LOW lorsqu'un obstacle est présent et HIGH lorsque le chemin est libre. Avec Bridge et Telegram, votre Arduino UNO Q peut envoyer des alertes instantanées lorsqu'un objet entre dans la zone de détection.

Dans ce tutoriel, vous apprendrez :

Capteur Éviteur d'Obstacles Arduino UNO Q

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Capteur d'évitement d'obstacle IR
1×Alternativement: TCRT5000 Obstacle Avoidance Sensor
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 du Capteur IR d'Évitement d'Obstacles

Le capteur infrarouge d'évitement d'obstacles détecte les objets à l'aide d'un émetteur et d'un récepteur IR. L'émetteur émet un faisceau IR ; lorsqu'un objet réfléchit le faisceau en retour, le récepteur le détecte et la broche OUT passe à LOW.

Brochage du Capteur IR d'Évitement d'Obstacles

Brochage

  • Broche VCC : Connecter à VCC (3,3V ou 5V)
  • Broche GND : Connecter à GND (0V)
  • Broche OUT : Sortie numérique — LOW = obstacle détecté, HIGH = aucun obstacle

Fonctionnement

  • Lorsqu'un obstacle est devant le capteur : broche OUT = LOW
  • Lorsque le chemin est libre : broche OUT = HIGH
  • Portée de détection : 2 cm à 30 cm — ajustable via le potentiomètre intégré
  • Angle de détection : environ 35°

※ Note:

Pendant l'expédition, l'émetteur et le récepteur IR peuvent se désaligner. Si le capteur ne répond pas correctement, pliez-les doucement pour les rendre parallèles l'un à l'autre.

Schéma de Câblage

Schéma de Câblage Capteur IR d'Évitement d'Obstacles Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Broche Capteur Obstacle IR MCU Arduino UNO Q
VCC 3.3V
GND GND
OUT D8

Comment Programmer le Capteur IR d'Évitement d'Obstacles

  • Configurez la broche du capteur comme entrée numérique :
pinMode(SENSOR_PIN, INPUT);
  • Lisez la sortie — LOW signifie obstacle détecté, HIGH signifie libre :
int state = digitalRead(SENSOR_PIN); if (state == LOW) Serial.println("Obstacle detected!"); else Serial.println("No obstacle.");

Code Arduino UNO Q

L'Arduino UNO Q dispose de deux processeurs fonctionnant ensemble :

  • Le STM32 MCU lit le capteur toutes les 100 ms et rapporte le résultat via Serial
  • Le Qualcomm MPU exécute Debian Linux avec Wi-Fi — dans cette section, seul le MCU est programmé. Une section ultérieure montre comment les deux processeurs fonctionnent ensemble via 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-obstacle-avoidance-sensor */ // IR Obstacle Avoidance Sensor: // OUT pin: LOW = obstacle detected, HIGH = no obstacle #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to OUT of the IR obstacle sensor void setup() { Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); Serial.println("Arduino UNO Q IR Obstacle Avoidance Sensor ready"); } void loop() { int state = digitalRead(SENSOR_PIN); // LOW = obstacle, HIGH = clear if (state == LOW) Serial.println("Obstacle detected!"); else Serial.println("No obstacle."); delay(100); }

Étapes Rapides

Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.

  • Connectez : Câblez le capteur IR d'obstacles à l'Arduino UNO Q MCU comme indiqué dans le schéma de câblage.
  • Ouvrez Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créez une nouvelle App : Cliquez sur le bouton Create New App.
Créer une Nouvelle App dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'App, par exemple : ObstacleSensor
  • Cliquez sur Create pour confirmer.
Dossiers et fichiers de l'App Arduino App Lab sur Arduino UNO Q
  • Collez le sketch : Copiez le code MCU ci-dessus et collez-le dans sketch/sketch.ino.
  • Téléversez : Cliquez sur le bouton Run dans Arduino App Lab.
Cliquer sur le bouton Run dans Arduino App Lab sur Arduino UNO Q
  • Placez votre main devant le capteur et observez le Moniteur Série.
  • Ajustez le potentiomètre pour modifier la portée de détection.

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
[2026-04-29 09:00:01] Arduino UNO Q IR Obstacle Avoidance Sensor ready [2026-04-29 09:00:02] No obstacle. [2026-04-29 09:00:03] No obstacle. [2026-04-29 09:00:04] Obstacle detected! [2026-04-29 09:00:05] Obstacle detected! [2026-04-29 09:00:06] No obstacle.

Bridge : Linux + MCU

Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse lire l'état des obstacles et recevoir des événements via Bridge :

  • Le capteur d'obstacles est connecté au MCU — le MCU lit le capteur toutes les 100 ms
  • Le MPU ne peut pas lire la broche du capteur directement — il appelle des fonctions Bridge pour obtenir l'état actuel ou recevoir des événements
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut envoyer des alertes Telegram instantanées lorsqu'un obstacle est détecté
  • Arduino_RouterBridge permet la communication RPC entre les deux processeurs
  • ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le router — ne les ouvrez jamais dans le code utilisateur

Code MCU (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-obstacle-avoidance-sensor */ #include "Arduino_RouterBridge.h" #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to OUT of the IR obstacle sensor bool cached_obstacle = false; bool obstacle_event = false; bool prev_obstacle = false; unsigned long last_read_ms = 0; const unsigned long READ_INTERVAL = 100; String get_state(String arg) { return cached_obstacle ? "obstacle" : "clear"; } String get_event(String arg) { if (obstacle_event) { obstacle_event = false; return "obstacle_detected"; } return "none"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(SENSOR_PIN, INPUT); Bridge.provide("get_state", get_state); Bridge.provide("get_event", get_event); Monitor.println("Arduino UNO Q IR Obstacle Avoidance Sensor Bridge ready"); } void loop() { unsigned long now = millis(); if (now - last_read_ms >= READ_INTERVAL) { last_read_ms = now; int state = digitalRead(SENSOR_PIN); // LOW = obstacle cached_obstacle = (state == LOW); if (cached_obstacle && !prev_obstacle) { obstacle_event = true; Monitor.println("Obstacle detected!"); } else if (!cached_obstacle && prev_obstacle) { Monitor.println("Obstacle cleared."); } prev_obstacle = cached_obstacle; } }

Code Python (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-obstacle-avoidance-sensor */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Obstacle state: {state}") time.sleep(0.2) App.run(user_loop=loop)

Étapes Rapides

  • Connectez : Câblez le capteur IR d'obstacles à l'Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrez Arduino App Lab et créez une nouvelle App nommée ObstacleSensorBridge.
  • Collez le sketch MCU dans sketch/sketch.ino.
  • Collez le code Python dans le fichier Python.
  • 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 Arduino_RouterBridge created by Arduino 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
Arduino_RouterBridge Arduino

This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

0.4.1
Install
More Info
  • Téléversez : Cliquez sur le bouton Run.
Cliquer sur le bouton Run dans Arduino App Lab sur Arduino UNO Q
  • Placez un objet devant le capteur et observez les deux consoles.

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
[2026-04-29 09:00:01] Arduino UNO Q IR Obstacle Avoidance Sensor Bridge ready [2026-04-29 09:00:04] Obstacle detected! [2026-04-29 09:00:06] Obstacle cleared.
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Obstacle state: clear [2026-04-29 09:00:03] Obstacle state: clear [2026-04-29 09:00:04] Obstacle state: obstacle [2026-04-29 09:00:05] Obstacle state: obstacle [2026-04-29 09:00:06] Obstacle state: clear

Telegram

Recevez des alertes Telegram instantanées lorsqu'un obstacle est détecté devant le capteur, et interrogez son état à distance.

Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.

Code Python (Telegram)

/* * 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-obstacle-avoidance-sensor */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): # Auto-alert on obstacle detected event = Bridge.call("get_event") if event == "obstacle_detected": print("Obstacle detected!") send_message(CHAT_ID, "🚧 Obstacle detected in front of the sensor!") # Handle Telegram commands updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q Obstacle Sensor Bot\n" "/state - Current obstacle state (obstacle / clear)\n" "Automatic alert when an obstacle is detected!") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Obstacle state: {result}") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(0.1) App.run(user_loop=loop)

Étapes Rapides

  • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre token de bot réel obtenu depuis BotFather.
  • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
  • Collez ce code Python dans le fichier Python de votre App (conservez le même sketch MCU).
  • Cliquez sur le bouton Run — placez un objet devant le capteur pour déclencher l'alerte Telegram.

Sortie de la Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:10:01] Waiting for Telegram messages... [2026-04-29 09:10:04] Obstacle detected! [2026-04-29 09:10:10] Received: /state
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
🚧 Obstacle detected in front of the sensor!
10:15 AM
/state
10:16 AM ✓✓
Obstacle state: clear
10:17 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 de Projets

Vous pouvez construire de nombreux projets utiles avec le capteur IR d'évitement d'obstacles et Arduino UNO Q :

  • Compteur de visiteurs d'entrée : Montez le capteur à une entrée — chaque fois qu'un obstacle (personne) franchit, le compteur d'événements s'incrémente ; le MPU envoie un résumé Telegram avec le comptage journalier quand vous envoyez /count
  • Notificateur de livraison de colis : Placez le capteur face à une boîte aux lettres ou une zone de livraison — quand un colis est déposé et détecté, Python envoie une alerte Telegram "Colis livré !" à votre téléphone
  • Arrêt d'obstacle pour robot : Connectez le capteur à un robot motorisé — quand le MCU détecte un obstacle, il arrête les moteurs immédiatement ; le MPU envoie une notification Telegram avec l'heure de l'événement
  • Déclenchement de portail automatique : Utilisez le capteur pour détecter un véhicule approchant — quand un obstacle est détecté pendant plus de 200 ms, le MCU déclenche un relais pour ouvrir un portail, et Python envoie une entrée de journal Telegram
  • Compteur de pièces industrielles : Montez le capteur sur un convoyeur d'assemblage — comptez combien de pièces passent par minute et envoyez le comptage à Telegram toutes les 5 minutes avec un minuteur Python

Défiez-vous

Prêt à aller plus loin avec le capteur IR d'évitement d'obstacles sur Arduino UNO Q ? Essayez ces défis :

  • Facile : Ajoutez une commande Telegram /count qui retourne combien d'événements de détection d'obstacles se sont produits depuis le démarrage du programme, suivis comme un compteur dans le code Python.
  • Moyen : Implémentez un filtre anti-rebond : un obstacle doit être continuellement détecté pendant au moins 300 ms avant que l'événement soit enregistré et que l'alerte Telegram soit envoyée — cela élimine les faux déclenchements dus aux vibrations ou aux réflexions instables.
  • Avancé : Construisez un compteur de personnes bidirectionnel : utilisez deux capteurs IR d'obstacles espacés de quelques centimètres à une entrée — déterminez la direction d'entrée ou de sortie selon quel capteur se déclenche en premier, et envoyez une mise à jour Telegram avec le comptage d'occupation actuel.

Tutoriels connexes

※ 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 !