Table des matières:
- Fournitures
- Étape 1: programmer la caméra ESP32
- Étape 2: Construisez le robot
- Étape 3: HÉ ! Attends une seconde! Pourquoi ai-je besoin d'un Arduino Nano ?
- Étape 4: câblez le joystick USB (facultatif)
- Étape 5: ALLONS ROULER
- Étape 6: Détails sur la façon de modifier le code HTML/Javascript pour le serveur Web
Vidéo: Robot caméra ESP32 - FPV : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Le module caméra ESP32 est un automate peu coûteux et puissant. Il inclut même la reconnaissance faciale !
Construisons un robot First Person Viewpoint que vous conduisez via une interface Web intégrée !
Ce projet utilise le module Geekcreit ESP32 avec la caméra OV2640. Il est basé sur le module AIThinker.
Il existe de nombreux clones de caméra ESP32 différents. Certains fonctionnent, d'autres non. Je vous suggère d'utiliser le même module que moi afin que vous ayez une bonne chance de réussir.
Le robot fonctionne comme suit.
L'ESP32 diffuse une URL Web vers votre réseau qui présente le flux vidéo en direct avec quelques cases à cocher pour utiliser certaines fonctions de la caméra. Il reçoit également les pressions de touches envoyées à la page Web à partir du clavier qui sont des commandes directionnelles pour le robot. Vous souhaiterez peut-être créer le bouclier du joystick USB afin de pouvoir piloter le robot avec le joystick plutôt que de taper des commandes au clavier.
Lorsque l'ESP32 reçoit des touches, il transmet ces octets à l'Arduino Nano qui entraîne ensuite les moteurs pour faire bouger le robot.
Ce projet est de difficulté moyenne à élevée. Veuillez prendre votre temps.
Commençons!
Fournitures
- Module caméra ESP-32 avec caméra OV2640 - Je recommanderais le produit Geekcreit
- Antenne externe encliquetable pour l'ESP-32 afin de maximiser la force du signal
- Arduino Nano
- Arduino Leonardo pour le module Joystick (nous avons besoin d'une émulation de clavier USB fournie par le Leonardo)
- Module Joystick générique
- Puce L293D Quad pont en H
- DC-DC Buck Coverter avec sortie 5V pour alimenter l'ESP32
- Adaptateur série FTDI pour programmer l'ESP32
- Un châssis de robot générique avec deux motoréducteurs - n'importe quel châssis fonctionnera. Les moteurs 3 à 6V sont recommandés
- 2 batteries LiPo 7.4V 1300mAh (ou similaire) pour alimenter l'ESP32 et les moteurs
- 1 pile 9V pour alimenter l'Arduino Nano
Étape 1: programmer la caméra ESP32
À l'aide d'une maquette, connectez votre caméra ESP32 à l'adaptateur FTDI comme suit:
FTDI ESP32
3.3V ----------- 3.3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
De plus, connectez la broche IO0 ("eye-oh-zero") à GND. Vous devez faire cela pour mettre l'ESP32 en mode programmation.
Décompressez le fichier esp32CameraWebRobotforInstructable.zip.
Il y a 4 fichiers dans ce projet:
esp32CameraWebRobotforInstructable.ino est l'esquisse Arduino.
ap_httpd.cpp est le code qui gère le serveur Web et gère la configuration des fonctionnalités de la caméra à partir de la page Web et la réception des touches de la page Web.
camera_index.h contient le code HTML/JavaScript pour l'application Web sous forme de tableaux d'octets. La modification de l'application Web dépasse largement le cadre de ce projet. J'inclurai un lien pour savoir comment modifier le HTML/JavaScript plus tard.
camera_pins.h est le fichier d'en-tête relatif à la configuration des broches de la caméra ESP32.
Pour mettre l'ESP32 en mode programmation, vous devez connecter IO0 ("eye-oh-zero") à la terre.
Lancez votre IDE Arduino et accédez à Tools/Boards/Boards Manager. Recherchez esp32 et installez la bibliothèque esp32.
Ouvrez le projet dans votre IDE Arduino.
Mettez l'ID de réseau de VOTRE routeur et VOTRE mot de passe dans les lignes mises en évidence dans l'image ci-dessus. Enregistrez le projet.
Allez dans le menu Outils et effectuez les sélections comme indiqué dans l'image ci-dessus.
Carte: ESP32 Wrover
Vitesse de téléchargement: 115 200
Schéma de partition: « Énorme application (3 Mo sans OTA) »
et choisissez le port auquel votre adaptateur FTDI est connecté.
Cliquez sur le bouton "Télécharger".
Maintenant, parfois, l'ESP32 ne démarre pas le téléchargement. Soyez donc prêt à appuyer sur le bouton RESET à l'arrière de l'ESP32 lorsque vous commencez à voir les caractères …---… apparaître dans la console pendant le téléchargement. Il commencera alors à télécharger.
Lorsque vous voyez « appuyez sur RST » sur la console, le téléchargement est terminé.
DÉBRANCHEZ IO0 de la terre. Déconnectez la ligne 3.3V entre l'adaptateur FTDI et l'ESP32.
La caméra ESP32 nécessite beaucoup de courant pour bien fonctionner. Connectez un adaptateur secteur 5V 2A aux broches 5V et GND de l'ESP32.
Ouvrez le moniteur série, réglez le débit en bauds sur 115200, puis observez le redémarrage de l'ESP32. Finalement, vous verrez l'URL du serveur.
Accédez à votre navigateur et entrez l'URL. Lorsque le site Web se charge, cliquez sur le bouton « Démarrer la diffusion » et le flux vidéo en direct devrait commencer. Si vous cochez la case « Floodlight », la LED du flash intégré doit s'allumer. Fais attention! C'EST LUMINEUX !
Étape 2: Construisez le robot
Vous avez besoin d'un châssis de robot à deux roues. N'importe qui fera l'affaire. Assemblez le châssis selon les instructions du fabricant.
Branchez ensuite le robot selon le schéma. Laissez les connexions de la batterie pour l'instant.
Le L293D est utilisé pour contrôler les moteurs. Notez que la demi-encoche sur la puce est VERS l'ESP32.
En règle générale, 6 broches sont nécessaires sur l'Arduino pour contrôler deux moteurs.
Ce robot ne nécessite que 4 broches et fonctionne toujours pleinement.
Les broches 1 et 9 sont connectées à la source 5V de l'Arduino, elles sont donc en permanence à l'état HAUT. Câblage du robot de cette façon signifie que nous avons besoin de deux broches de moins sur l'Arduino pour contrôler les moteurs.
Dans les directions directes, les broches INPUT sont définies sur LOW et les broches de modulation d'onde d'impulsion du moteur sont définies sur des valeurs comprises entre 0 et 255, 0 signifiant OFF et 255 signifiant la vitesse maximale.
Dans les directions inverses, les broches INPUT sont réglées sur HIGH et les valeurs PWM sont inversées. 0 signifie vitesse maximale et 255 signifie arrêt.
Décompressez et téléchargez l'esquisse ArduinoMotorControl sur l'Arduino Nano.
Étape 3: HÉ ! Attends une seconde! Pourquoi ai-je besoin d'un Arduino Nano ?
Vous vous dites probablement: « Hé ! Il y a au moins 4 broches IO disponibles sur la caméra ESP32. Pourquoi ne puis-je pas les utiliser pour contrôler les moteurs ?
Bon, c'est vrai, il y a des broches sur l'ESP32 comme suit:
IO0 - nécessaire pour mettre l'ESP32 en mode programmation
IO2 - disponible
IO4 - la LED Flash
IO12, IO13, IO14, IO15, IO16 - broches GPIO supplémentaires.
Si vous chargez simplement une esquisse de base sur l'ESP32 pour contrôler les broches avec des commandes PWM, elles fonctionnent.
CEPENDANT, une fois que vous avez activé les bibliothèques CAMERA dans vos croquis, ces broches ne sont plus disponibles.
La chose la plus simple à faire est donc d'utiliser simplement un Nano pour contrôler les moteurs via PWM et d'envoyer les commandes de l'ESP32 par communications série sur un fil (ESP32 U0T vers Arduino Rx0) et GND. Très simple.
Étape 4: câblez le joystick USB (facultatif)
Vous pouvez conduire le robot en envoyant des pressions de touche sur la page Web comme suit:
8 - En avant
9 - Avant droit
7 - Avant gauche
4 - Rotation à gauche
5 - Arrêter
1 - Inverser à gauche
2 - Inverser
3 - Inverser à droite.
L'esquisse du joystick USB traduit les entrées du joystick en touches et les envoie à l'interface Web qui les transmet à l'Arduino pour piloter le robot.
Connectez le joystick à l'Arduino LEONARDO comme suit:
Joystick de Léonard
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Ouvrez le croquis usbJoyStick, sélectionnez Arduino Leonardo comme tableau et téléchargez-le sur le Leonardo.
Si vous voulez le tester, ouvrez simplement un éditeur de texte sur votre ordinateur, cliquez sur la souris dans la fenêtre et commencez à déplacer le joystick. Vous devriez voir les valeurs de 1 à 9 s'afficher dans la fenêtre
Étape 5: ALLONS ROULER
Prenez le temps de revoir votre câblage pour vous assurer que tout est correct.
Ensuite, connectez vos batteries comme suit.
1. Mettez la caméra ESP32 sous tension. Il faut quelques secondes pour démarrer le serveur Web.
2. Mettez l'Arduino Nano sous tension.
3. Mettez les moteurs sous tension.
Lancez votre navigateur et accédez à l'URL de l'ESP32.
Cliquez sur le bouton Démarrer la diffusion.
Cliquez avec votre souris quelque part dans l'écran du navigateur pour que l'écran soit maintenant le focus.
Commencez à conduire votre robot avec le joystick (ou le clavier).
J'ai trouvé que la taille d'image par défaut fonctionne bien pour diffuser la vidéo en direct de manière assez réactive via WiFi. Cependant, à mesure que vous augmentez la taille du cadre, le flux deviendra plus saccadé car vous essayez de diffuser des images plus grandes.
Il s'agit d'un projet stimulant qui vous donne l'opportunité de commencer à travailler avec le streaming vidéo en direct et à conduire un robot via WiFi. J'espère que vous l'avez trouvé amusant !
ALLEZ MAINTENANT ET FAITES QUELQUE CHOSE DE MERVEILLEUX !
Mise à jour de janvier 2020 - Les dernières photos montrent la version finale du robot, soudée et solidement montée sur le châssis.
Les trois commutateurs montés en façade sont les suivants:
Gauche - Batterie d'alimentation du moteur
Centre - Batterie Arduino
Droite - Batterie de l'appareil photo ESP32
Je pourrais utiliser une grosse batterie avec des transformateurs buck-boost (j'en utilise un pour l'ESP32 - c'est en bas à droite de la photo de face), mais par souci de simplicité, je ne garde que les 3 batteries.
Robot maintenant sur Access Point
Je trouve fastidieux de faire la démonstration de ce robot à l'extérieur de chez moi car mon réseau d'entreprise scolaire ne me permet pas d'y connecter le serveur web du robot. Comme solution, j'ai fait des recherches sur l'utilisation de la fonction de point d'accès du serveur Web ESP32. Cela demande un peu de travail, mais nécessite des modifications assez minimes de l'esquisse du robot principal pour que l'ESP32 diffuse sa propre adresse IP. Ce n'est pas aussi puissant qu'un hub wifi haut débit dédié (se bloque parfois si vous vous déplacez trop vite), mais cela fonctionne assez bien et maintenant je peux démontrer le robot où je veux sans avoir à le connecter à un réseau ! Une fois que le robot fonctionne, essayez de le convertir vous-même en point d'accès !
Étape 6: Détails sur la façon de modifier le code HTML/Javascript pour le serveur Web
Ce n'est pas nécessaire, mais j'ai eu quelques demandes.
J'ai fourni à ce document Google des détails sur l'utilisation de CyberChef pour effectuer des conversions entre HTML/Javascript et les représentations de tableau d'octets dans le fichier camera_index.h.
Conseillé:
Boîtier en acrylique découpé au laser pour caméra ESP32 : 3 étapes (avec photos)
Boîtier en acrylique découpé au laser pour caméra ESP32 : je suis récemment tombé amoureux de la carte ESP32-cam. C'est vraiment une machine à merveille ! Une caméra, WiFi, Bluetooth, support de carte SD, une LED lumineuse (pour flash) et Arduino programmable. Le prix varie entre 5 $ et 10 $. Vérifiez https://randomnerdtutorials.com
Caméra de vidéosurveillance avec NodeMCU + module de caméra pour ancien ordinateur portable (avec et sans utilisation de Blynk): 5 étapes
Caméra de vidéosurveillance avec NodeMCU + module de caméra de l'ancien ordinateur portable (avec et sans utiliser Blynk) : Salut les gars ! Dans ce instructable, je vais vous montrer comment j'ai utilisé le module de caméra d'un ancien ordinateur portable et nodeMCU pour faire quelque chose de similaire à CCTV
Premiers pas avec ESP32 CAM - Streaming vidéo en utilisant ESP CAM sur Wifi - Projet de caméra de sécurité ESP32 : 8 étapes
Premiers pas avec ESP32 CAM | Streaming vidéo en utilisant ESP CAM sur Wifi | Projet de caméra de sécurité ESP32 : aujourd'hui, nous allons apprendre à utiliser cette nouvelle carte ESP32 CAM et comment nous pouvons la coder et l'utiliser comme caméra de sécurité et obtenir une vidéo en streaming via wifi
Premiers pas avec ESP32 - Installation de cartes ESP32 dans Arduino IDE - Code de clignotement ESP32 : 3 étapes
Premiers pas avec ESP32 | Installation de cartes ESP32 dans Arduino IDE | ESP32 Blink Code: Dans ces instructables, nous verrons comment commencer à travailler avec esp32 et comment installer des cartes esp32 dans Arduino IDE et nous programmerons esp 32 pour exécuter le code clignotant en utilisant arduino ide
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP Construction de la caméra : 7 étapes (avec photos)
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP Camera Build: Pi Zero W NoIR 8MP Camera BuildThis Instructable a été créé pour aider tous ceux qui veulent une caméra infrarouge ou une caméra portable vraiment cool ou une caméra portable Raspberry Pi ou veut juste s'amuser, heheh . C'est le plus abordable et le plus configurable