Table des matières:

Robot espion Raspberry : 8 étapes (avec photos)
Robot espion Raspberry : 8 étapes (avec photos)

Vidéo: Robot espion Raspberry : 8 étapes (avec photos)

Vidéo: Robot espion Raspberry : 8 étapes (avec photos)
Vidéo: Comment construire un mini robot camera 2024, Novembre
Anonim
Image
Image
Robot espion framboise
Robot espion framboise

Ce projet vous permet de piloter un robot via une page Web et de visionner un livestream. Il peut être utilisé pour espionner les animaux domestiques, s'assurer que rien ne brûle dans votre four et même observer les oiseaux ! DFRobot a fourni le Raspberry Pi 3 et le module caméra Raspberry Pi.

Étape 1: L'électronique du robot

L'électronique du robot
L'électronique du robot

J'ai commencé par assembler le kit châssis 2WD MiniQ de DFRobot. J'ai glissé les roues sur les arbres du moteur, puis je les ai insérées dans des supports et je les ai fixées au châssis. Enfin, j'ai ajouté les supports métalliques. Il était maintenant temps de construire la carte principale. Le pilote du moteur L293d a été soudé en place, ainsi que les fils allant aux broches GPIO du Raspberry Pi. Ensuite, j'ai soudé un connecteur pour la batterie, car cela fournira l'alimentation principale. Une fois la source d'alimentation ajoutée, j'ai installé un régulateur 5V.

Étape 2: Configuration du Pi

Configuration du Pi
Configuration du Pi

DFRobot m'a contacté et m'a envoyé son module de caméra Raspberry Pi 3 et Raspberry Pi. Donc, après avoir ouvert les boîtes, je me suis mis au travail en configurant la carte SD. Je suis d'abord allé sur la page de téléchargement de Raspberry Pi et j'ai téléchargé la version la plus récente de Raspbian. J'ai ensuite extrait le fichier et l'ai placé dans un répertoire pratique. Vous ne pouvez pas simplement copier/coller un fichier.img sur une carte SD, vous devez le "graver" sur la carte. Vous pouvez télécharger un utilitaire de gravure comme Etcher.io pour transférer facilement l'image du système d'exploitation. Une fois le fichier.img sur ma carte SD, je l'ai inséré dans le Raspberry Pi et lui ai donné le pouvoir. Après environ 50 secondes, j'ai débranché le cordon et retiré la carte SD. Ensuite, j'ai remis la carte SD dans mon PC et suis allé dans le répertoire "boot". J'ai ouvert le bloc-notes et l'ai enregistré en tant que fichier vierge nommé "ssh" sans extension. Il y avait aussi un fichier que j'ai ajouté appelé "wpa_supplicant.conf" et j'y ai mis ce texte:

réseau={ ssid= psk= }

Ensuite, j'ai sauvegardé et éjecté la carte et je l'ai remise dans le Raspberry Pi 3. Cela devrait maintenant permettre l'utilisation de SSH et la connexion au WiFi.

Étape 3: Préparation de l'appareil photo

Préparation de l'appareil photo
Préparation de l'appareil photo

Par défaut, la caméra est désactivée sur le Pi, vous devez donc ouvrir le terminal de type sudo raspi-config pour faire apparaître le menu. Allez dans "options d'interfaçage", puis activez la caméra. Maintenant, sélectionnez simplement "Terminer" et insérez le câble plat du module de caméra dans la zone correcte du Pi.

Étape 4: Installation du logiciel

Il existe plusieurs logiciels différents qui peuvent diffuser de la vidéo, tels que vlc et motion, mais j'ai décidé d'utiliser le mjpeg-streamer en raison de sa faible latence et de sa facilité d'installation. Selon les instructions sur le site, faites un clone git https://github.com/jacksonliam/mjpg-streamer.git dans un dossier, puis tapez sudo apt-get install cmake libjpeg8-dev pour installer les bibliothèques nécessaires. Changez votre répertoire dans le dossier que vous avez téléchargé, puis tapez make suivi de sudo make install pour compiler le logiciel. Enfin, entrez export LD_LIBRARY_PATH=. et pour l'exécuter, tapez./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Vous pouvez accéder au flux en vous rendant sur https://:8080/stream.html pour afficher le flux.

Étape 5: Contrôleur

Manette
Manette
Manette
Manette

Puis vint la partie sur la façon de contrôler un Raspberry Pi via WiFi, car Bluetooth a trop peu de portée. J'ai décidé d'utiliser un serveur Flask fonctionnant sur le Raspberry PI et un module ESP8266 ESP12E pour lui envoyer des données. L'ESP8266 n'a qu'une seule entrée analogique, ce qui signifie que je ne pouvais pas utiliser le joystick directement, car il prend deux entrées analogiques. La meilleure option était l'ADS1115, qui est un appareil I2C qui lit les signaux analogiques à 16 bits de résolution. J'ai simplement connecté SDA à 4 et SCL à 5, ainsi que VCC et GND. L'axe X du joystick se connecte à A0 sur l'ADS1115 et l'axe Y se connecte à A1. MAIS, j'ai accidentellement grillé l'ADS1115, j'ai donc dû recourir à la meilleure chose: les boutons ! Alors maintenant, ma configuration est une carte de développement Sparkfun Thing ESP8266 avec 3 boutons - avant, droite et gauche. Désormais, chaque fois que l'on appuie sur un bouton, il envoie des données pour faire tourner les roues dans cette direction.

Étape 6: Le code du robot

Le code du robot
Le code du robot

J'ai fait un projet précédent qui utilisait la bibliothèque GPIO PWM du Pi pour contrôler les moteurs via json, j'ai donc simplement réutilisé le code pour accepter les données via une application Flask à la place. Flask est une bibliothèque Python qui transforme essentiellement votre Pi en un serveur Web capable d'envoyer et de recevoir des données. En utilisant PWM, les moteurs peuvent être contrôlés avec une plus grande précision par rapport à l'entraînement du réservoir. Cela signifie également que le robot peut aller à des vitesses variables plutôt qu'à une vitesse fixe. Mon application de flacon est configurée pour modifier le PWM des moteurs une fois qu'elle reçoit les données d'une requête GET via http de l'ESP12e. Il utilise également la bibliothèque subprocess. Popen pour exécuter le script de diffusion Web en arrière-plan. J'ai joint le code à la page du projet, donc tout ce qui est nécessaire est un téléchargement.

Étape 7: Code du contrôleur

Le code était assez simple, il suffit de prendre les lectures des 3 broches, de les exécuter à travers certaines instructions if pour déterminer la direction de la roue, et enfin d'envoyer ces valeurs au Raspberry Pi. L'ajout de la carte ESP8266 pour l'IDE Arduino est fourni avec la bibliothèque HTTPClient, qui gère les en-têtes et l'envoi de données. Le serveur Flask doit recevoir des données via un appel POST, donc le code démarre une connexion avec le serveur Web Raspberry Pi, puis ajoute un en-tête aux données indiquant qu'elles sont encodées JSON, et enfin il envoie les données sous la forme d'un objet JSON. J'ai ajouté un délai de 40 ms pour éviter que le Raspberry Pi ne soit surchargé de données.

Étape 8: Exécuter le Raspberry SPy

Exécuter le Raspberry SPy
Exécuter le Raspberry SPy
Exécuter le Raspberry SPy
Exécuter le Raspberry SPy

Il suffit de taper sudo python.py ! Vous devriez voir la caméra s'allumer, et en allant à l'adresse web du pi avec le port 8080 le flux devrait être visible. Maintenant, vous pouvez utiliser le contrôleur n'importe où dans la maison et avoir également un flux en direct.

Conseillé: