Innholdsfortegnelse:

Raspberry SPy Robot: 8 trinn (med bilder)
Raspberry SPy Robot: 8 trinn (med bilder)

Video: Raspberry SPy Robot: 8 trinn (med bilder)

Video: Raspberry SPy Robot: 8 trinn (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Image
Image
Bringebær SPy Robot
Bringebær SPy Robot

Dette prosjektet lar deg kjøre en robot via en webside og se en livestream. Den kan brukes til å spionere på kjæledyr, sørge for at ingenting brenner i ovnen din, og til og med fugletitting! DFRobot leverte Raspberry Pi 3 og Raspberry Pi kameramodul.

Trinn 1: Robotelektronikken

Robotelektronikken
Robotelektronikken

Jeg begynte med å montere 2WD MiniQ -chassiset fra DFRobot. Jeg satte hjulene på motorakslene, satte dem deretter inn i braketter og festet dem til chassiset. Til slutt la jeg til metallstøttene. Nå var det på tide å bygge hovedstyret. L293d -motorføreren ble loddet på plass, sammen med ledninger som kjørte til Raspberry Pi's GPIO -pinner. Deretter loddet jeg en kontakt for batteriet, da det vil gi hovedstrømmen. Etter at strømkilden ble lagt til, installerte jeg en 5V regulator.

Trinn 2: Sette opp Pi

Sette opp Pi
Sette opp Pi

DFRobot nådde ut til meg og sendte deres Raspberry Pi 3 og Raspberry Pi kameramodul. Så etter at jeg åpnet boksene, fikk jeg rett til å jobbe ved å sette opp SD -kortet. Først gikk jeg til Raspberry Pi Downloads -siden og lastet ned den nyeste versjonen av Raspbian. Jeg hentet deretter ut filen og la den i en praktisk katalog. Du kan ikke bare kopiere/lime inn en.img -fil til et SD -kort, du må "brenne den" på kortet. Du kan laste ned et brennende verktøy som Etcher.io for enkelt å overføre OS -bildet. Etter at.img -filen var på SD -kortet mitt, satte jeg den inn i Raspberry Pi og ga den strøm. Etter omtrent 50 sekunder koblet jeg ut ledningen og fjernet SD -kortet. Deretter satte jeg SD -kortet tilbake i PC -en og gikk til "boot" -katalogen. Jeg åpnet notisblokken og lagret den som en tom fil som heter "ssh" uten utvidelse. Det var også en fil jeg la til som heter "wpa_supplicant.conf" og la denne teksten inn i den:

nettverk = {ssid = psk =}

Så lagret og kastet jeg ut kortet og satte det tilbake i Raspberry Pi 3. Dette skal nå tillate bruk av SSH og tilkobling til WiFi.

Trinn 3: Gjør kameraet klart

Gjør kameraet klart
Gjør kameraet klart

Som standard er kameraet deaktivert på Pi, så du må åpne terminaltypen sudo raspi-config for å åpne menyen. Gå til "grensesnittalternativer" og aktiver deretter kameraet. Bare velg "Fullfør" og sett båndkabelen til kameramodulen inn i det riktige området på Pi.

Trinn 4: Installere programvare

Det er flere forskjellige programvarer som kan streame video, for eksempel vlc og motion, men jeg bestemte meg for å bruke mjpeg-streameren på grunn av den lave ventetiden og enkel installasjon. I henhold til instruksjonene på nettstedet, gjør en git-klon https://github.com/jacksonliam/mjpg-streamer.git i en mappe, og skriv deretter sudo apt-get install cmake libjpeg8-dev for å installere de nødvendige bibliotekene. Endre katalogen til mappen du lastet ned, og skriv deretter make etterfulgt av sudo make install for å kompilere programvaren. Til slutt skriver du inn eksport LD_LIBRARY_PATH =. og for å kjøre den, skriv./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Du får tilgang til strømmen ved å gå til https://: 8080/stream.html for å se strømmen.

Trinn 5: Kontroller

Kontroller
Kontroller
Kontroller
Kontroller

Så kom delen om hvordan du kan kontrollere en Raspberry Pi over WiFi, fordi Bluetooth har for lite rekkevidde. Jeg bestemte meg for å bruke en Flask -server som kjører på Raspberry PI og en ESP8266 ESP12E -modul for å sende data til den. ESP8266 har bare en analog inngang, noe som betyr at jeg ikke kunne bruke styrespaken direkte, da den tar to analoge innganger. Det beste alternativet var ADS1115, som er en I2C -enhet som leser analoge signaler med 16 bits oppløsning. Jeg koblet ganske enkelt SDA til 4 og SCL til 5, sammen med VCC og GND. Joystick X -aksen kobles til A0 på ADS1115, og Y -aksen kobles til A1. MEN, jeg brente ut ADS1115 ved et uhell, så jeg måtte ty til det nest beste: knapper! Så nå er oppsettet mitt et ESP8266 Sparkfun Thing Dev Board med 3 knapper- fremover, høyre og venstre. Nå når en trykkes, sender den data for å snu hjulene i den retningen.

Trinn 6: Koden for roboten

Koden for roboten
Koden for roboten

Jeg lagde et tidligere prosjekt som brukte Pi's GPIO PWM-bibliotek for å kontrollere motorer via json, så jeg bestemte bare koden for å godta data via en Flask-app i stedet. Flask er et Python -bibliotek som i hovedsak gjør Pi til en webserver som er i stand til å sende og motta data. Ved å bruke PWM kan motorene styres med større presisjon sammenlignet med tankdrift. Dette betyr også at roboten kan gå med variable hastigheter i stedet for en fast. Kolbe -appen min er konfigurert til å endre motorens PWM når den mottar data fra en GET -forespørsel via http fra ESP12e. Det bruker også delprosessen. Popen -biblioteket til å kjøre webstreaming -skriptet i bakgrunnen. Jeg har lagt ved kode til projektsiden, så alt som er nødvendig er en nedlasting.

Trinn 7: Kontrollerkode

Koden var ganske enkel, bare ta avlesninger fra de 3 pinnene, kjør dem gjennom noen if -setninger for å bestemme hjulretningen, og til slutt send disse verdiene til Raspberry Pi. ESP8266 -korttillegget for Arduino IDE kommer med HTTPClient -biblioteket, som håndterer overskrifter og sender data. Flask -serveren må motta data via et POST -anrop, så koden starter en forbindelse med Raspberry Pi -webserveren, og legger deretter til en overskrift til dataene som angir at den er JSON -kodet, og til slutt sender den dataene i form av et JSON -objekt. Jeg la til en forsinkelse på 40 ms for å forhindre at Raspberry Pi ble overbelastet med data.

Trinn 8: Kjører bringebær -spionen

Kjører Raspberry SPy
Kjører Raspberry SPy
Kjører Raspberry SPy
Kjører Raspberry SPy

Alt som kreves er å skrive sudo python.py! Du bør se kameraet lyse, og ved å gå til webadressen til pi med port 8080 skal strømmen være synlig. Nå kan du bruke kontrolleren hvor som helst i huset og også ha en live feed.

Anbefalt: