Indholdsfortegnelse:

Hindbær SPy Robot: 8 trin (med billeder)
Hindbær SPy Robot: 8 trin (med billeder)

Video: Hindbær SPy Robot: 8 trin (med billeder)

Video: Hindbær SPy Robot: 8 trin (med billeder)
Video: У кого растут усы, как у проклятой лисы? ► 3 Прохождение Super Mario Galaxy 2 (Nintendo Wii) 2024, Juli
Anonim
Image
Image
Hindbær SPy Robot
Hindbær SPy Robot

Dette projekt giver dig mulighed for at køre en robot via en webside og se en livestream. Det kan bruges til at spionere efter kæledyr, sørg for at intet brænder i din ovn, og endda fugleture! DFRobot leverede Raspberry Pi 3 og Raspberry Pi kameramodul.

Trin 1: Robotelektronikken

Robotelektronikken
Robotelektronikken

Jeg begyndte med at samle 2WD MiniQ chassiset fra DFRobot. Jeg gled hjulene på motorakslerne, indsatte dem derefter i beslag og fastgjorde dem til chassiset. Endelig tilføjede jeg metalstøtterne. Nu var det tid til at bygge hovedtavlen. L293d -motorføreren blev loddet på plads sammen med ledninger, der løb til Raspberry Pi's GPIO -ben. Dernæst lodde jeg et stik til batteriet, da det vil levere hovedstrømmen. Efter at strømkilden blev tilføjet, installerede jeg en 5V regulator.

Trin 2: Opsætning af Pi

Opsætning af Pi
Opsætning af Pi

DFRobot nåede ud til mig og sendte deres Raspberry Pi 3 og Raspberry Pi kameramodul. Så efter at jeg havde åbnet æskerne, fik jeg ret til at arbejde ved at oprette SD -kortet. Først gik jeg til Raspberry Pi Downloads -siden og downloadede den seneste version af Raspbian. Jeg hentede derefter filen og lagde den i et praktisk bibliotek. Du kan ikke bare kopiere/indsætte en.img -fil til et SD -kort, du skal "brænde den" på kortet. Du kan downloade et brændende værktøj som Etcher.io for nemt at overføre OS -billedet. Efter at.img -filen var på mit SD -kort, indsatte jeg den i Raspberry Pi og gav den strøm. Efter cirka 50 sekunder tog jeg stikket ud og fjernede SD -kortet. Derefter satte jeg SD -kortet tilbage i min pc og gik til mappen "boot". Jeg åbnede notesblok og gemte det som en tom fil ved navn "ssh" uden INGEN udvidelse. Der var også en fil, jeg tilføjede, kaldet "wpa_supplicant.conf" og lagde denne tekst ind i den:

netværk = {ssid = psk =}

Derefter gemte jeg og skubbede kortet ud og satte det tilbage i Raspberry Pi 3. Dette skulle nu give mulighed for brug af SSH og forbindelse til WiFi.

Trin 3: Gør kameraet klar

Gør kameraet klar
Gør kameraet klar

Som standard er kameraet deaktiveret på Pi, så du skal åbne terminaltypen sudo raspi-config for at få vist menuen. Gå til "interfacemuligheder", og aktiver derefter kameraet. Vælg nu "Finish" og indsæt båndkablet på kameramodulet i det korrekte område af Pi.

Trin 4: Installation af software

Der er flere forskellige software, der kan streame video, såsom vlc og motion, men jeg besluttede at bruge mjpeg-streameren på grund af dens lave latenstid og nem installation. Ifølge instruktionerne på webstedet skal du lave en git-klon https://github.com/jacksonliam/mjpg-streamer.git i en mappe, og derefter skrive sudo apt-get install cmake libjpeg8-dev for at installere de nødvendige biblioteker. Skift dit bibliotek til den mappe, du downloadede, og skriv derefter make efterfulgt af sudo make install for at kompilere softwaren. Indtast endelig eksport LD_LIBRARY_PATH =. og for at køre den, skriv./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Du kan få adgang til strømmen ved at gå til https://: 8080/stream.html for at se strømmen.

Trin 5: Controller

Controller
Controller
Controller
Controller

Så kom delen om, hvordan man styrer en Raspberry Pi over WiFi, fordi Bluetooth har for lidt rækkevidde. Jeg besluttede at bruge en Flask -server, der kører på Raspberry PI og et ESP8266 ESP12E -modul til at sende data til den. ESP8266 har kun en analog indgang, hvilket betyder, at jeg ikke kunne bruge joysticket direkte, da det tager to analoge indgange. Den bedste mulighed var ADS1115, som er en I2C -enhed, der læser analoge signaler med 16 bit opløsning. Jeg tilsluttede simpelthen SDA til 4 og SCL til 5 sammen med VCC og GND. Joystick X -aksen opretter forbindelse til A0 på ADS1115, og Y -aksen opretter forbindelse til A1. MEN jeg brændte ADS1115 ved et uheld ud, så jeg måtte ty til det næstbedste: knapper! Så nu er mit setup et ESP8266 Sparkfun Thing Dev Board med 3 knapper- fremad, højre og venstre. Nu når der trykkes på en, sender den data for at dreje hjulene i den retning.

Trin 6: Koden til robotten

Koden til robotten
Koden til robotten

Jeg lavede et tidligere projekt, der udnyttede Pi's GPIO PWM-bibliotek til at styre motorer via json, så jeg har lige bestemt koden til at acceptere data via en Flask-app i stedet. Flask er et Python -bibliotek, der i det væsentlige gør din Pi til en webserver, der er i stand til at sende og modtage data. Ved at bruge PWM kan motorerne styres med større præcision i forhold til tankdrev. Dette betyder også, at robotten kan køre med variable hastigheder frem for en fast. Min kolbe -app er konfigureret til at ændre motorernes PWM, når den modtager data fra en GET -anmodning via http fra ESP12e. Det bruger også subprocess. Popen -biblioteket til at køre webstreaming -scriptet i baggrunden. Jeg har vedhæftet kode til projektsiden, så alt hvad der er nødvendigt er en download.

Trin 7: Controller -kode

Koden var ret enkel, tag bare aflæsninger fra de 3 ben, kør dem igennem nogle if -udsagn for at bestemme hjulretning, og send endelig disse værdier til Raspberry Pi. ESP8266 board -tilføjelsen til Arduino IDE leveres med HTTPClient -biblioteket, der håndterer headers og sender data. Flask -serveren skal modtage data via et POST -opkald, så koden starter en forbindelse med Raspberry Pi -webserveren og tilføjer derefter et overskrift til dataene, der angiver, at det er JSON -kodet, og til sidst sender det dataene i form af et JSON -objekt. Jeg tilføjede en forsinkelse på 40 ms for at forhindre, at Raspberry Pi blev overbelastet med data.

Trin 8: Kørsel af Raspberry SPy

Kører Raspberry SPy
Kører Raspberry SPy
Kører Raspberry SPy
Kører Raspberry SPy

Alt, hvad der kræves, er at skrive sudo python.py! Du skal se kameraet lyse op, og ved at gå til webadressen til pi'et med porten 8080 skal strømmen være synlig. Nu kan du bruge controlleren hvor som helst i huset og også have et live feed.

Anbefalede: