Cuprins:

Raspberry SPy Robot: 8 pași (cu imagini)
Raspberry SPy Robot: 8 pași (cu imagini)

Video: Raspberry SPy Robot: 8 pași (cu imagini)

Video: Raspberry SPy Robot: 8 pași (cu imagini)
Video: Treaba mea este să observ pădurea și aici se întâmplă ceva ciudat. 2024, Noiembrie
Anonim
Image
Image
Raspberry SPy Robot
Raspberry SPy Robot

Acest proiect vă permite să conduceți un robot printr-o pagină web și să vizualizați un flux live. Poate fi folosit pentru a spiona animalele de companie, pentru a vă asigura că nu arde nimic în cuptor și chiar pentru păsări! DFRobot a furnizat Raspberry Pi 3 și modulul de cameră Raspberry Pi.

Pasul 1: Robot Electronics

Robot Electronics
Robot Electronics

Am început prin asamblarea kitului de șasiu 2WD MiniQ de la DFRobot. Am alunecat roțile pe arborele motorului, apoi le-am introdus în paranteze și le-am atașat la șasiu. În cele din urmă, am adăugat suporturile metalice. Acum era timpul să construim placa principală. Șoferul motorului L293d a fost lipit la locul său, împreună cu fire care rulează către pinii GPIO ai Raspberry Pi. Apoi, am lipit un conector pentru baterie, deoarece acesta va furniza puterea principală. După ce s-a adăugat sursa de alimentare, am instalat un regulator de 5V.

Pasul 2: Configurarea Pi

Configurarea Pi
Configurarea Pi

DFRobot a ajuns la mine și le-a trimis modulul Raspberry Pi 3 și Raspberry Pi Camera. Așa că, după ce am deschis cutiile, am ajuns să lucrez prin configurarea cardului SD. Mai întâi am mers pe pagina de descărcări Raspberry Pi și am descărcat cea mai recentă versiune a Raspbian. Am extras apoi fișierul și l-am pus într-un director convenabil. Nu puteți copia / lipi un fișier.img pe un card SD, trebuie să îl „ardeți” pe card. Puteți descărca un utilitar de ardere precum Etcher.io pentru a transfera cu ușurință imaginea sistemului de operare. După ce fișierul.img a fost pe cardul meu SD, l-am introdus în Raspberry Pi și i-am dat putere. După aproximativ 50 de secunde am deconectat cablul și am scos cardul SD. Apoi am pus din nou cardul SD în computer și am intrat în directorul „boot”. Am deschis blocnotesul și l-am salvat ca un fișier gol numit „ssh” fără extensie. A fost, de asemenea, un fișier pe care l-am adăugat numit „wpa_supplicant.conf” și am pus acest text în el:

network = {ssid = psk =}

Apoi am salvat și am expulzat cardul și l-am pus din nou în Raspberry Pi 3. Acest lucru ar trebui să permită acum utilizarea SSH și conectarea la WiFi.

Pasul 3: Pregătirea camerei foto

Pregătirea camerei foto
Pregătirea camerei foto

În mod implicit, camera este dezactivată pe Pi, deci trebuie să deschideți tipul de terminal sudo raspi-config pentru a afișa meniul. Mergeți la „Opțiuni de interfață” și apoi activați camera. Acum trebuie doar să selectați „Finish” și să introduceți cablul panglică al modulului camerei în zona corectă a dispozitivului Pi.

Pasul 4: Instalarea software-ului

Există mai multe software-uri diferite care pot transmite în flux videoclipuri, cum ar fi vlc și motion, dar am decis să folosesc mjpeg-streamer datorită latenței sale reduse și instalării ușoare. Conform instrucțiunilor de pe site, faceți o clonă git https://github.com/jacksonliam/mjpg-streamer.git într-un folder, apoi tastați sudo apt-get install cmake libjpeg8-dev pentru a instala bibliotecile necesare. Schimbați directorul în folderul pe care l-ați descărcat și apoi tastați make urmat de sudo make install pentru a compila software-ul. În cele din urmă, introduceți exportul LD_LIBRARY_PATH =. și pentru al rula tastați./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Puteți accesa fluxul accesând https://: 8080 / stream.html pentru a vizualiza fluxul.

Pasul 5: Controler

Controlor
Controlor
Controlor
Controlor

Apoi a venit partea de a controla un Raspberry Pi prin WiFi, deoarece Bluetooth are o rază de acțiune prea mică. Am decis să folosesc un server Flask care rulează pe Raspberry PI și un modul ESP8266 ESP12E pentru a-i trimite date. ESP8266 are o singură intrare analogică, ceea ce înseamnă că nu am putut folosi joystick-ul direct, deoarece are nevoie de două intrări analogice. Cea mai bună opțiune a fost ADS1115, care este un dispozitiv I2C care citește semnale analogice la 16 biți de rezoluție. Pur și simplu am conectat SDA la 4 și SCL la 5, împreună cu VCC și GND. Axa X a joystick-ului se conectează la A0 pe ADS1115, iar axa Y se conectează la A1. DAR, am ars accidental ADS1115, așa că a trebuit să apelez la următorul lucru: butoanele! Așadar, acum configurarea mea este un ESP8266 Sparkfun Thing Dev Board cu 3 butoane - înainte, dreapta și stânga. Acum, ori de câte ori este apăsat unul, acesta trimite date pentru a roti roțile în acea direcție.

Pasul 6: Codul pentru robot

Codul pentru robot
Codul pentru robot

Am făcut un proiect anterior care utilizează biblioteca GPIO PWM a lui Pi pentru a controla motoarele prin json, așa că am re-propus codul pentru a accepta date prin intermediul unei aplicații Flask. Flask este o bibliotecă Python care transformă în esență Pi-ul dvs. într-un server web capabil să trimită și să primească date. Prin utilizarea PWM, motoarele pot fi controlate cu o precizie mai mare comparativ cu acționarea rezervorului. Aceasta înseamnă, de asemenea, că robotul poate merge cu viteze variabile, mai degrabă decât cu o viteză fixă. Aplicația mea din balon este configurată pentru a schimba PWM-ul motoarelor odată ce primește date de la o solicitare GET prin http de la ESP12e. De asemenea, folosește biblioteca subproces. Popen pentru a rula scriptul de streaming web în fundal. Am atașat codul la pagina proiectului, deci tot ceea ce este necesar este o descărcare.

Pasul 7: Codul controlerului

Codul a fost destul de simplu, trebuie doar să luați citiri de pe cei 3 pini, să le parcurgeți prin unele instrucțiuni if pentru a determina direcția roții și, în cele din urmă, să trimiteți aceste valori către Raspberry Pi. Adăugarea plăcii ESP8266 pentru Arduino IDE vine cu biblioteca HTTPClient, care gestionează anteturile și trimiterea datelor. Serverul Flask trebuie să primească date printr-un apel POST, astfel încât codul începe o conexiune cu serverul web Raspberry Pi, apoi adaugă un antet la datele care denotă că este codificat JSON și, în cele din urmă, trimite datele sub forma unui obiect JSON. Am adăugat o întârziere de 40 ms pentru a preveni supraîncărcarea Raspberry Pi cu date.

Pasul 8: Rularea Raspberry SPy

Rularea Raspberry SPy
Rularea Raspberry SPy
Rularea Raspberry SPy
Rularea Raspberry SPy

Tot ce este necesar este să tastați sudo python.py! Ar trebui să vedeți camera luminându-se și mergând la adresa web a pi cu portul 8080 fluxul ar trebui să fie vizibil. Acum puteți utiliza controlerul oriunde în casă și puteți avea și un flux live.

Recomandat: