Taula de continguts:

Robot espia Raspberry: 8 passos (amb imatges)
Robot espia Raspberry: 8 passos (amb imatges)

Vídeo: Robot espia Raspberry: 8 passos (amb imatges)

Vídeo: Robot espia Raspberry: 8 passos (amb imatges)
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, De novembre
Anonim
Image
Image
Robot espia Raspberry
Robot espia Raspberry

Aquest projecte us permet conduir un robot a través d’una pàgina web i veure una transmissió en directe. Es pot utilitzar per espiar mascotes, assegurar-se que no es cremi res al forn i, fins i tot, observar ocells. DFRobot va proporcionar el mòdul de càmera Raspberry Pi 3 i Raspberry Pi.

Pas 1: l'electrònica del robot

El robot electrònic
El robot electrònic

Vaig començar muntant el kit de xassís 2WD MiniQ de DFRobot. Vaig lliscar les rodes sobre els eixos del motor, després les vaig inserir en mènsules i les vaig fixar al xassís. Finalment, he afegit els suports metàl·lics. Ara era el moment de construir la placa principal. El controlador del motor L293d es va soldar al seu lloc, juntament amb cables que passaven als pins GPIO del Raspberry Pi. A continuació, vaig soldar un connector per a la bateria, ja que proporcionaria l’alimentació principal. Després d'afegir la font d'alimentació, vaig instal·lar un regulador de 5V.

Pas 2: Configuració del Pi

Configuració del Pi
Configuració del Pi

DFRobot va contactar amb mi i va enviar el seu mòdul de càmera Raspberry Pi 3 i Raspberry Pi. Així que, després d’obrir les caixes, vaig treballar directament configurant la targeta SD. Primer vaig anar a la pàgina de descàrregues de Raspberry Pi i vaig descarregar la versió més recent de Raspbian. Després vaig extreure el fitxer i el vaig posar en un directori convenient. No podeu copiar / enganxar un fitxer.img a una targeta SD, sinó que heu de "gravar-lo" a la targeta. Podeu descarregar una utilitat de gravació com Etcher.io per transferir fàcilment la imatge del sistema operatiu. Després que el fitxer.img fos a la meva targeta SD, el vaig inserir al Raspberry Pi i li vaig donar poder. Al cap d’uns 50 segons, vaig desconnectar el cable i vaig treure la targeta SD. A continuació, vaig tornar a posar la targeta SD al meu PC i vaig anar al directori "boot". Vaig obrir el bloc de notes i el vaig desar com a fitxer en blanc anomenat "ssh" sense cap extensió. També hi vaig afegir un fitxer anomenat "wpa_supplicant.conf" i hi vaig posar aquest text:

xarxa = {ssid = psk =}

Després vaig desar i expulsar la targeta i la vaig tornar a col·locar al Raspberry Pi 3. Ara hauria de permetre l’ús de SSH i la connexió a WiFi.

Pas 3: Preparació de la càmera

Preparació de la càmera
Preparació de la càmera

Per defecte, la càmera està desactivada al Pi, de manera que heu d'obrir el terminal tipus sudo raspi-config per obrir el menú. Aneu a "Opcions d'interfície" i, a continuació, activeu la càmera. Ara només cal que seleccioneu "Finalitza" i inseriu el cable de cinta del mòdul de la càmera a la zona correcta del Pi.

Pas 4: Instal·lació del programari

Hi ha diversos programes diferents que poden transmetre vídeo, com ara vlc i motion, però vaig decidir utilitzar el mjpeg-streamer a causa de la seva baixa latència i la seva fàcil instal·lació. Segons les instruccions del lloc, feu un clon git https://github.com/jacksonliam/mjpg-streamer.git en una carpeta i, a continuació, escriviu sudo apt-get install cmake libjpeg8-dev per instal·lar les biblioteques necessàries. Canvieu el directori a la carpeta que heu descarregat i, a continuació, escriviu make seguit de sudo make install per compilar el programari. Finalment introduïu exportació LD_LIBRARY_PATH =. i per executar-lo escriviu./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Podeu accedir al flux dirigint-vos a https://: 8080 / stream.html per veure el flux.

Pas 5: controlador

Controlador
Controlador
Controlador
Controlador

Després va venir la part de com controlar un Raspberry Pi mitjançant WiFi, perquè el Bluetooth té massa poc abast. Vaig decidir utilitzar un servidor Flask que s’executava al Raspberry PI i un mòdul ESP8266 ESP12E per enviar-hi dades. L'ESP8266 només té una entrada analògica, el que significa que no podria utilitzar el joystick directament, ja que necessita dues entrades analògiques. La millor opció va ser l'ADS1115, que és un dispositiu I2C que llegeix senyals analògics a 16 bits de resolució. Simplement he connectat SDA a 4 i SCL a 5, juntament amb VCC i GND. L'eix X del joystick es connecta a A0 a l'ADS1115 i l'eix Y es connecta a A1. PERUT, accidentalment vaig cremar l'ADS1115, de manera que vaig haver de recórrer al següent millor: els botons. Ara la meva configuració és un ESP8266 Sparkfun Thing Dev Board amb 3 botons: endavant, dret i esquerre. Ara, sempre que es prem un, envia dades per fer girar les rodes en aquesta direcció.

Pas 6: el codi del robot

El codi per al robot
El codi per al robot

Vaig fer un projecte anterior que utilitzava la biblioteca GPIO PWM del Pi per controlar motors mitjançant json, de manera que només vaig tornar a proposar el codi per acceptar dades mitjançant una aplicació Flask. Flask és una biblioteca Python que converteix bàsicament el vostre Pi en un servidor web capaç d’enviar i rebre dades. Mitjançant l'ús de PWM, els motors es poden controlar amb més precisió en comparació amb l'accionament del tanc. Això també significa que el robot pot anar a velocitats variables en lloc de fixes. L'aplicació My Flask està configurada per canviar el PWM dels motors un cop rep dades d'una sol·licitud GET mitjançant http des de l'ESP12e. També utilitza la biblioteca subprocess. Popen per executar l'script de transmissió en segon pla. He adjuntat un codi a la pàgina del projecte, de manera que tot el que cal és descarregar-lo.

Pas 7: Codi del controlador

El codi era bastant senzill, només cal fer lectures dels 3 pins, fer-les passar per algunes sentències if per determinar la direcció de la roda i, finalment, enviar aquests valors al Raspberry Pi. L'addició de placa ESP8266 per a l'IDE Arduino ve amb la biblioteca HTTPClient, que gestiona les capçaleres i l'enviament de dades. El servidor Flask necessita rebre dades mitjançant una trucada POST, de manera que el codi inicia una connexió amb el servidor web Raspberry Pi i, a continuació, afegeix una capçalera a les dades que indiquen que està codificat JSON i, finalment, envia les dades en forma d’objecte JSON. He afegit un retard de 40 ms per evitar que el Raspberry Pi es sobrecarregui de dades.

Pas 8: Execució de Raspberry SPy

Executant el Raspberry SPy
Executant el Raspberry SPy
Executant el Raspberry SPy
Executant el Raspberry SPy

Tot el que cal és escriure sudo python.py! Hauríeu de veure la càmera il·luminada i, anant a l’adreça web del pi amb el port 8080, el flux hauria de ser visible. Ara podeu utilitzar el controlador a qualsevol lloc de la casa i també tenir un feed en directe.

Recomanat: