SAÉ6.IOM.01 — Sujet n°10 · Projet intégrateur BUT3

RoboTank — Robot de surveillance et de mesure WiFi

Un robot mobile connecté, conçu et réalisé de A à Z : navigation autonome ou télécommandée en Zigbee, détection d'obstacles, capture d'images et cartographie de la couverture WiFi sous forme de heatmap. De l'analyse fonctionnelle à la démonstration physique.

Contexte et objectifs

La SAÉ6.IOM.01 est le projet intégrateur de fin de BUT R&T parcours IOM : elle mobilise l'ensemble des compétences de la formation — systèmes embarqués, réseaux sans fil, programmation, électronique et gestion de projet.

Le sujet n°10, « Robot de surveillance et de mesure », impose la réalisation d'un système autonome capable de naviguer dans un environnement intérieur, de détecter des obstacles, de capturer des images et de produire une cartographie de la qualité du signal WiFi.

Fonctionnalités réalisées :

  • Navigation — mode autonome (exploration) et mode télécommandé via manette Zigbee
  • Détection d'obstacles — capteur ultrason HC-SR04, arrêt automatique à 20 cm
  • Vision — caméra PiCamera IR 1080p, capture horodatée sur événement
  • Mesure WiFi — RSSI mesuré en continu, stocké en CSV/JSON
  • Cartographie — heatmap exportable (PNG) par dead reckoning
  • Feedback — écran OLED I2C + LEDs d'état
  • Interface web — tableau de bord Flask accessible en WiFi

Contraintes imposées

Usage indoor · tension max 12 V · autonomie minimale de 20 minutes · matériel prioritairement issu du stock IUT · solution présentable, proche d'un produit commercialisable.

RoboTank assemblé, vue complète
Preuve — Le RoboTank final assemblé : châssis imprimé 3D, capteur ultrason, écran OLED et caméra intégrés.

Architecture matérielle

Une architecture hybride : le Raspberry Pi 4 assure l'intelligence (serveur, caméra, cartographie), le module XIAO ESP32-C6 gère la liaison radio Zigbee avec la manette.

Raspberry Pi 4

Serveur Flask, caméra CSI, GPIO moteurs, mesure RSSI WiFi

2 × XIAO ESP32-C6

Liaison Zigbee 802.15.4 : coordinator (manette) + end device (robot)

HC-SR04

Détection d'obstacles par ultrasons, arrêt automatique

PiCamera IR 1080p

Streaming MJPEG et capture horodatée sur événement

Steppers 28BYJ-48

Motorisation pas à pas, base du dead reckoning

Powerbank USB 5 V

Alimentation stable, autonomie théorique de 39 minutes

Routage du PCB sous Fritzing
Preuve — Routage du PCB conçu sous Fritzing pour le câblage électronique.
Platine XIAO ESP32-C6 sous Fritzing
Preuve — Platine d'intégration du module XIAO ESP32-C6 (liaison Zigbee).

Une évolution assumée : de l'Esplora/Bluetooth au Zigbee

La télécommande initiale reposait sur une Arduino Esplora et un module Bluetooth HC-05. Les limites rencontrées (portée, fiabilité de l'appairage) m'ont conduit à faire évoluer l'architecture vers une liaison Zigbee 802.15.4 entre deux XIAO ESP32-C6 : latence plus faible, portée suffisante et consommation réduite. Savoir remettre en cause un choix technique en cours de projet a été l'un des apprentissages majeurs.

Conception mécanique & impression 3D

Le châssis et l'ensemble des supports ont été entièrement modélisés en CAO (Shapr3D) puis imprimés en 3D : une solution originale, légère et modulable.

Architecture logicielle & interface web

Un serveur Flask multi-threadé sur le Raspberry Pi expose une API REST et un tableau de bord web complet, accessible depuis n'importe quel navigateur du réseau.

Côté serveur (Python) :

  • Serveur Flask multi-threadé : moteurs, capteurs, caméra et scan WiFi tournent en parallèle sans se bloquer
  • API REST : commande des moteurs, état du robot, scan RSSI, génération de la carte
  • Dead reckoning : estimation de la position par comptage des pas moteurs, pour associer chaque mesure RSSI à une position
  • Heatmap WiFi : rendu de la cartographie sur canvas HTML5 et export PNG
  • Streaming vidéo MJPEG de la caméra IR

Côté interface web : 4 modes de contrôle — joystick virtuel, D-PAD, mode autonome et mode scan WiFi — avec retour vidéo en direct et panneau d'état (RSSI, distance obstacle, mode actif).

Côté radio : protocole de commande maison sur Zigbee entre la manette (coordinator) et le robot (end device), programmé en C++ sur les deux ESP32-C6.

Interface web — mode joystick
Preuve — Interface web, mode joystick : pilotage temps réel avec retour vidéo.
Interface web — mode scan WiFi
Preuve — Mode SCAN : mesure RSSI et construction de la heatmap WiFi.
Interface web — mode D-PAD
Preuve — Mode D-PAD : commande directionnelle simple.
Interface web — mode autonome
Preuve — Mode autonome : exploration avec évitement d'obstacles automatique.

Exigences & validation

Chaque exigence du cahier des charges a été formulée de manière testable, avec un critère d'acceptation mesurable — puis validée lors du plan de tests.

IDExigenceCritère d'acceptationPriorité
EX-01Autonomie ≥ 20 minChronométrage ≥ 20 min (39 min théoriques atteintes)MUST
EX-02Pilotage manuel via manette ZigbeeTéléopération 5 min sans coupureMUST
EX-03Évitement d'obstacle à 20 cm0 collision sur 10 essaisMUST
EX-04RSSI mesuré toutes les 2 sAPI /api/scan/status ≤ 2 sSHOULD
EX-05Stockage hors-ligne si perte WiFiLogs CSV/JSON présents hors connexionMUST
EX-06Heatmap rendue en HTML5 canvasAPI /api/map + visualisation webSHOULD
EX-07Photo horodatée sur événementImage avec timestampSHOULD
EX-08Arrêt d'urgence logicielSTOP immédiatMUST

Le plan de tests complet, l'analyse des risques et la notice d'utilisation figurent dans le rapport technique.

Bilan et analyse réflexive

Compétences mobilisées :

  • Systèmes embarqués — Raspberry Pi OS, Python, GPIO, I2C, CSI, threads
  • Réseaux sans fil — WiFi, Zigbee 802.15.4, RSSI, cartographie de couverture
  • Programmation — Python (Flask, Picamera2, threading), HTML5/CSS3/JS, C++
  • Électronique — câblage, bilan de puissance, PCB Fritzing
  • Conception mécanique — CAO Shapr3D, impression 3D FDM
  • Gestion de projet — planification, BOM, devis, documentation, rapport

Points forts du résultat : architecture logicielle robuste, interface web complète, châssis 100 % imprimé 3D, communication Zigbee fiable, autonomie de 39 minutes (presque le double du minimum requis), et une documentation exhaustive : CAO, BOM, schémas, cahier des charges, rapport.

Analyse réflexive

La principale difficulté a été l'intégration de la chaîne complète : faire coopérer simultanément le Zigbee, le Raspberry Pi, les moteurs pas à pas, la caméra IR et l'interface web sans instabilité. J'ai commis des erreurs — sous-estimer la fiabilité du Bluetooth initial, par exemple — mais chacune a débouché sur une solution mieux pensée. Si je devais refaire ce projet, j'intégrerais des encodeurs dès le départ pour fiabiliser l'odométrie plutôt que de compter uniquement sur le dead reckoning.

Perspectives d'évolution

Court terme : heatmap temps réel, mode waypoints, export CSV depuis l'interface. Moyen terme : encodeurs magnétiques (AS5600) et centrale inertielle (BNO055) pour une odométrie fusionnée. Long terme : LiDAR 2D et SLAM sous ROS2 pour une cartographie précise à 360°.

Traces & preuves

Photographies du robot réalisé et documents produits au cours du projet.

Documents du projet