Parcours de constructionDébutantUn après-midi

Construire un robot piloté au téléphone en Bluetooth ou Wi-Fi

Une voiture robot que vous pilotez depuis votre téléphone en Bluetooth ou Wi-Fi, qui s'arrête seule dès que la liaison tombe au lieu de s'échapper.

Schéma technique : Construire un robot piloté au téléphone en Bluetooth ou Wi-FiCLEARANCE FIELD

Ce que vous construisez

Une voiture robot que vous pilotez depuis votre téléphone — en Bluetooth avec un HC-05, ou en Wi-Fi avec un ESP32 servant sa propre page de commande.

C’est le robot le plus abordable de ce site : pas de théorie de commande, pas d’algorithme à régler, et des modes de panne visibles plutôt que mathématiques. C’est aussi celui qui enseigne une leçon dont tous les autres robots ont besoin — que faire quand vous cessez d’être aux commandes.

Les deux radios

HC-05 (Bluetooth) ESP32 (Wi-Fi)
Matériel en plus Un module, plus un pont sur RX Aucun — la radio est sur le contrôleur
Sur le téléphone Une application série Bluetooth Tout navigateur
Portée Environ 10 m 30 m+ en extérieur
Le téléphone garde internet Oui Non, en mode point d’accès
Idéal pour Une première construction sans fil Tout ce que vous voulez confier à quelqu’un

Ni l’un ni l’autre n’a tort. Le HC-05 est le chemin le plus court vers un robot qui bouge ; l’ESP32 est la meilleure expérience une fois que ça marche, car « connectez-vous à ce Wi-Fi et ouvrez un navigateur » n’exige aucune explication.

Nomenclature

Deux voies, et il n’en faut qu’une. Construisez la version Bluetooth si vous possédez déjà un Arduino ; la version Wi-Fi si vous achetez les pièces aujourd’hui.

Pièce Voie Bluetooth Voie Wi-Fi Coût approx.
Contrôleur Arduino Uno ESP32 $5–8
Radio Module HC-05 Intégrée $4 / $0
Adaptation de niveau 1 kΩ + 2 kΩ sur le RX du module Requise sur toute entrée capteur 5 V $0.10
Pilote moteur 1 1 $2–4
Motoréducteur TT 2 2 $4
Châssis 2 roues motrices 1 1 $6–10
Pack batterie 1 1 $6
Application téléphone requise Oui — un terminal série Bluetooth Non — tout navigateur —

Total : environ $25–35 dans les deux cas.

La différence décisive n’est pas le coût, c’est l’interface de commande. Un HC-05 donne un flux d’octets, donc le téléphone a besoin d’une application capable d’envoyer des octets. Un ESP32 sert sa propre page web, donc le téléphone a besoin d’un navigateur — ce qui signifie que quiconque peut piloter le robot en ouvrant une URL, sans rien installer. Pour un robot à confier à quelqu’un, c’est une grande différence pour pas d’argent en plus.

La voie Bluetooth mérite sa place quand vous avez déjà un Arduino, ou quand vous voulez la liaison la plus simple possible sans aucune notion réseau. Un octet dedans, un octet dehors.

Ordre de montage

1 — Faites-le rouler sur l’établi. Moteurs, pilote, batterie, roues décollées, aucune radio. Suivez piloter des moteurs CC en PWM et confirmez avant, arrière et chaque virage avec des commandes en dur. Déboguer une radio et un pilote moteur simultanément est la façon de perdre des après-midis.

2 — Ajoutez la radio et l’écho. Câblez le HC-05 ou montez le point d’accès de l’ESP32, et faites circuler du texte dans les deux sens avant de le relier à quoi que ce soit qui tourne.

3 — Joignez-les avec un protocole. Une lettre plus une valeur, terminée par un saut de ligne. Lisez jusqu’au terminateur plutôt que d’agir sur chaque octet, car « quelques octets arrivés » n’est pas « le message est arrivé ».

4 — Rendez-le sans risque. C’est l’étape qu’on saute, et c’est celle qui compte.

Le timeout de sécurité

Un robot sans fil continue la dernière chose ordonnée. Si c’était « avant toute » et que vous venez de sortir de portée, le robot ne s’arrête pas — il s’engage.

Un chronogramme. Une rangée d'impulsions de commande arrive toutes les 100 millisecondes tant qu'un bouton est tenu, puis s'arrête à une ligne pointillée marquée signal perdu. En dessous, une barre sans timeout reste rouge et roule hors de contrôle indéfiniment après la perte du signal. Une seconde barre avec un timeout de sécurité de 400 millisecondes passe à arrêté peu après la dernière commande.
Le flux de commandes s'arrête quand la liaison tombe, pas quand l'utilisateur lâche — c'est pourquoi le robot doit lui-même passer en timeout. Télécharger le SVG

Le correctif a deux moitiés et exige les deux :

  • Le contrôleur répète. Le téléphone envoie la commande tenue toutes les 100 ms, pas une fois à l’appui.
  • Le robot s’y attend. Si rien n’est arrivé depuis ~400 ms, arrêt.
if (millis() - lastCommandAt > 400) stop();

Alors un bouton relâché, une application fermée, une batterie de téléphone vide et une sortie de portée produisent tous le même résultat. Vous ne comptez jamais sur un message d’arrêt qui peut n’être jamais envoyé.

Utilisez millis() plutôt que delay() pour cela. Un delay(200) quelque part dans la boucle fait 200 ms pendant lesquelles le robot ne lit rien et ne vérifie rien.

Notes matérielles

Donnez à la radio une alimentation propre. Les deux modules tirent du courant par brusques rafales en émission. Partager un rail affaissé avec les moteurs cause des resets qui ressemblent exactement à des crashs logiciels — le robot cesse de répondre en pleine route et revient une seconde plus tard. Alimentez les moteurs depuis le pack batterie via le pilote, et gardez l’alimentation logique séparée.

Un schéma de câblage. Un Arduino Uno ou Nano relie sa ligne TXD directement à la broche D10 d'un module HC-05, marqué sûr car 3,3 volts en sortie se lit HAUT sur une entrée 5 volts. Le retour de la broche D11 vers la broche RXD du module passe par un pont diviseur 2 kilohms et 3,3 kilohms, avec un avertissement que 5 volts direct dans RXD endommage lentement le module qui s'appaire encore mais corrompt ce qu'on lui envoie.
Trois des quatre fils sont triviaux. Le quatrième exige un pont, car 5 V dans le RXD du module l'endommage lentement plutôt que franchement. Télécharger le SVG

Attention aux broches 3,3 V. Le RX du HC-05 et chaque GPIO d’ESP32 sont des pièces 3,3 V. Un Arduino 5 V qui émet dedans exige un pont. Le dommage est graduel et partiel, ce qui le rend dur à diagnostiquer.

Un L298N suffit ici. Sa chute de tension compte sur un robot qui chasse une ligne à vitesse ; sur une voiture pilotée manuellement vous compensez simplement avec les gaz, donc le pilote moins cher et plus courant est le choix sensé.

À quoi ressemble un bon résultat

Mesure Bluetooth (HC-05) Wi-Fi (ESP32)
Latence de commande 20–60 ms 30–100 ms sur réseau local
Portée, en vue directe ~10 m ~50 m, ou partout sur le réseau
Portée à travers un mur intérieur 3–5 m 15–25 m
Délai avant premier contrôle après mise sous tension ~2 s une fois appairé ~5 s pour joindre le Wi-Fi
Reconnexion après coupure Manuelle, généralement Automatique
Timeout de sécurité agréable 300–500 ms 300–500 ms

Le timeout de sécurité est le nombre à régler soigneusement, et les deux radios en ont besoin. Trop long et le robot continue de rouler un moment visible après la chute de liaison — ce qui à 0,3 m/s et un timeout d’1 s fait 30 cm de route sans surveillance. Trop court et la gigue normale des paquets arrête le robot sans cesse, ce qui semble cassé.

300–500 ms est la plage utilisable pour les deux. Sous environ 250 ms, la gigue Wi-Fi ordinaire commence à le déclencher ; au-dessus d’environ 700 ms, une liaison tombée est visiblement un emballement.

Où cela mène ensuite

La couche de commande construite est indépendante de toute couche de comportement, ce qui en fait exactement une bonne fondation. Ajoutez un capteur à ultrasons et le robot peut refuser de foncer dans un mur même pendant que vous tenez l’avant — le début du robot éviteur d’obstacles.

Cette combinaison, un robot pilotable et capable de vous contredire, est aussi la façon la plus facile de développer l’autonomie : vous pouvez placer le robot exactement où un bug arrive sans marcher le ramasser.

Parcours du projet

Le parcours de construction

Suivez l'arbre technologique, des pièces jusqu'à un robot qui fonctionne. Chaque nœud se débloque quand ses prérequis sont terminés, et votre progression est enregistrée sur cet appareil.

0 / 14 terminés

100%
Réalisation

Le rendre sans risque

Montage

Objectif

Le piloter depuis votre téléphone

Objectif

Composants

Tutoriels de ce parcours

Questions fréquentes

Faut-il utiliser Bluetooth ou Wi-Fi pour une voiture robot ?

Le Bluetooth avec un HC-05 est plus simple à faire marcher et s'appaire une fois, mais il faut une application de terminal série et la portée est d'environ dix mètres. Un ESP32 en Wi-Fi n'exige aucune application — il sert sa propre page de commande à tout navigateur — et porte plus loin, mais le téléphone perd sa connexion internet joint au réseau du robot. Pour un premier montage, le Bluetooth est le chemin le plus court ; pour tout ce que vous prévoyez de montrer, la page de commande sans application de l'ESP32 vaut l'heure de plus.

Pourquoi mon robot Bluetooth continue-t-il après que j'ai lâché le bouton ?

Parce qu'il n'a jamais entendu le relâchement. Un robot filaire s'arrête quand on lâche ; un sans-fil continue la dernière chose ordonnée. Le correctif est des deux côtés : le téléphone répète la commande courante toutes les 100 ms tant qu'un bouton est tenu, et le robot s'arrête automatiquement si rien n'est arrivé depuis quelques centaines de millisecondes. Alors un bouton relâché et un signal perdu produisent le même résultat sûr, et vous ne dépendez jamais d'un message d'arrêt qui peut ne jamais arriver.

Puis-je endommager le HC-05 en le câblant direct à un Arduino ?

Oui, sur une broche. La logique du module est en 3,3 V et sa broche RX ne tolère pas le 5 V, donc un Arduino qui émet droit dedans agresse cette entrée. Ce qui rend fou est que le dommage est généralement partiel — le module s'appaire et émet toujours, mais corrompt ou ignore silencieusement ce que vous lui envoyez. Deux résistances en pont sur cette ligne l'évitent.

Faut-il une application pour piloter le robot depuis mon téléphone ?

Seulement pour le Bluetooth. Un HC-05 exige un terminal série Bluetooth sur le téléphone pour ouvrir le port. Un ESP32 n'exige rien : il crée son propre réseau Wi-Fi et sert une page HTML, donc vous vous connectez et ouvrez un navigateur. C'est l'argument pratique le plus fort pour l'ESP32 sur un robot que vous voulez faire conduire à d'autres.

Un robot piloté au téléphone peut-il aussi rouler seul ?

Oui, et c'est l'étape suivante naturelle. La couche de commande construite ici est séparée de la couche de comportement, donc ajouter des capteurs permet au robot de vous contredire — refusant de foncer dans un mur même quand vous tenez l'avant. Construisez d'abord la couche manuelle : il est bien plus facile de déboguer un capteur quand on peut positionner le robot à la main depuis l'autre bout de la pièce.