Inhoudsopgave:
- Stap 1: De robotelektronica
- Stap 2: De Pi. instellen
- Stap 3: De camera gereed maken
- Stap 4: Software installeren
- Stap 5: Controller
- Stap 6: De code voor de robot
- Stap 7: Controllercode
- Stap 8: De Raspberry SPy uitvoeren
Video: Raspberry SPy Robot - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Met dit project kun je een robot besturen via een webpagina en een livestream bekijken. Het kan worden gebruikt om huisdieren te bespioneren, ervoor te zorgen dat er niets in uw oven brandt en zelfs om vogels te spotten! DFRobot leverde de Raspberry Pi 3 en de Raspberry Pi cameramodule.
Stap 1: De robotelektronica
Ik begon met het monteren van de 2WD MiniQ-chassiskit van DFRobot. Ik schoof de wielen op de motorassen, plaatste ze in beugels en bevestigde ze aan het chassis. Als laatste heb ik de metalen steunen toegevoegd. Nu was het tijd om het moederbord te bouwen. De L293d-motordriver werd op zijn plaats gesoldeerd, samen met draden die naar de GPIO-pinnen van de Raspberry Pi liepen. Vervolgens heb ik een connector voor de batterij gesoldeerd, want die zal de hoofdstroom leveren. Nadat de stroombron was toegevoegd, installeerde ik een 5V-regelaar.
Stap 2: De Pi. instellen
DFRobot nam contact met me op en stuurde hun Raspberry Pi 3 en Raspberry Pi Camera Module. Dus nadat ik de dozen had geopend, ging ik meteen aan de slag door de SD-kaart in te stellen. Eerst ging ik naar de Raspberry Pi Downloads-pagina en downloadde de meest recente versie van Raspbian. Vervolgens heb ik het bestand uitgepakt en in een handige map geplaatst. Je kunt een.img-bestand niet zomaar naar een SD-kaart kopiëren/plakken, je moet het op de kaart "branden". U kunt een brandprogramma zoals Etcher.io downloaden om de OS-image eenvoudig over te zetten. Nadat het.img-bestand op mijn SD-kaart stond, stopte ik het in de Raspberry Pi en gaf het stroom. Na ongeveer 50 seconden heb ik het snoer losgekoppeld en de SD-kaart verwijderd. Vervolgens plaatste ik de SD-kaart terug in mijn pc en ging naar de "boot" -map. Ik opende Kladblok en bewaarde het als een leeg bestand met de naam "ssh" zonder extensie. Er was ook een bestand dat ik heb toegevoegd met de naam "wpa_supplicant.conf" en deze tekst erin heb gestopt:
netwerk={ ssid=psk= }
Daarna heb ik de kaart opgeslagen en uitgeworpen en terug in de Raspberry Pi 3 gestopt. Dit zou nu het gebruik van SSH en verbinding met wifi mogelijk moeten maken.
Stap 3: De camera gereed maken
Standaard is de camera uitgeschakeld op de Pi, dus je moet het terminaltype sudo raspi-config openen om het menu te openen. Ga naar "interface-opties" en schakel vervolgens de camera in. Selecteer nu gewoon "Voltooien" en steek de lintkabel van de cameramodule in het juiste gebied van de Pi.
Stap 4: Software installeren
Er zijn verschillende software die video kan streamen, zoals vlc en motion, maar ik besloot de mjpeg-streamer te gebruiken vanwege de lage latentie en eenvoudige installatie. Voer volgens de instructies op de site een git-kloon https://github.com/jacksonliam/mjpg-streamer.git uit in een map en typ vervolgens sudo apt-get install cmake libjpeg8-dev om de benodigde bibliotheken te installeren. Wijzig uw map in de map die u hebt gedownload en typ vervolgens make gevolgd door sudo make install om de software te compileren. Voer ten slotte export LD_LIBRARY_PATH= in. en om het uit te voeren typt u./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" U kunt toegang krijgen tot de stream door naar https://:8080/stream.html te gaan om de stream te bekijken.
Stap 5: Controller
Toen kwam het gedeelte over het besturen van een Raspberry Pi via wifi, omdat Bluetooth te weinig bereik heeft. Ik besloot een Flask-server te gebruiken die op de Raspberry PI draait en een ESP8266 ESP12E-module om er gegevens naar te verzenden. De ESP8266 heeft slechts één analoge ingang, wat betekent dat ik de joystick niet rechtstreeks kon gebruiken, omdat er twee analoge ingangen nodig zijn. De beste optie was de ADS1115, een I2C-apparaat dat analoge signalen leest met een resolutie van 16 bits. Ik heb eenvoudig SDA op 4 en SCL op 5 aangesloten, samen met VCC en GND. De X-as van de joystick wordt aangesloten op A0 op de ADS1115 en de Y-as wordt aangesloten op A1. MAAR, ik heb per ongeluk de ADS1115 doorgebrand, dus ik moest mijn toevlucht nemen tot het op één na beste: knoppen! Dus nu is mijn setup een ESP8266 Sparkfun Thing Dev Board met 3 knoppen: vooruit, rechts en links. Wanneer er nu op wordt gedrukt, verzendt het gegevens om de wielen in die richting te draaien.
Stap 6: De code voor de robot
Ik heb een eerder project gemaakt dat de GPIO PWM-bibliotheek van de Pi gebruikte om motoren via json te besturen, dus ik heb de code opnieuw gebruikt om gegevens via een Flask-app te accepteren. Flask is een Python-bibliotheek die je Pi in wezen verandert in een webserver die gegevens kan verzenden en ontvangen. Door gebruik te maken van PWM kunnen de motoren nauwkeuriger worden aangestuurd in vergelijking met tankaandrijving. Dit betekent ook dat de robot met variabele snelheden kan gaan in plaats van met een vaste snelheid. Mijn flask-app is geconfigureerd om de PWM van de motoren te wijzigen zodra deze gegevens ontvangt van een GET-verzoek via http van de ESP12e. Het gebruikt ook de subproces. Popen-bibliotheek om het webstreaming-script op de achtergrond uit te voeren. Ik heb code aan de projectpagina toegevoegd, dus het enige dat nodig is, is een download.
Stap 7: Controllercode
De code was vrij eenvoudig, meet gewoon de 3 pinnen, voer ze door enkele if-statements om de wielrichting te bepalen en stuur die waarden uiteindelijk naar de Raspberry Pi. De toevoeging van de ESP8266-kaart voor de Arduino IDE wordt geleverd met de HTTPClient-bibliotheek, die headers verwerkt en gegevens verzendt. De Flask-server moet gegevens ontvangen via een POST-aanroep, dus de code start een verbinding met de Raspberry Pi-webserver, voegt vervolgens een header toe aan de gegevens om aan te geven dat het JSON-gecodeerd is, en ten slotte verzendt het de gegevens in de vorm van een JSON-object. Ik heb een vertraging van 40 ms toegevoegd om te voorkomen dat de Raspberry Pi overbelast raakt met gegevens.
Stap 8: De Raspberry SPy uitvoeren
Het enige dat nodig is, is sudo python.py typen! Je zou de camera moeten zien oplichten en door naar het webadres van de pi te gaan met de poort 8080 zou de stream zichtbaar moeten zijn. Nu kun je de controller overal in huis gebruiken en heb je ook een live feed.
Aanbevolen:
Maak je eigen Spy Bug (Arduino Voice Recorder): 5 stappen (met afbeeldingen)
Maak je eigen Spy Bug (Arduino Voice Recorder): In dit project laat ik je zien hoe ik een Arduino Pro Mini combineerde met een aantal complementaire componenten om een voicerecorder te maken die ook misbruikt kan worden als spionagebug. Het heeft een looptijd van ongeveer 9 uur, is klein en supergemakkelijk te
Pocket Spy-Robot: 5 stappen (met afbeeldingen)
Pocket Spy-Robot: Verveeld tijdens lockdown? Wil je het donkere rijk onder de bank in de woonkamer verkennen? Dan is de spionagerobot in zakformaat iets voor jou! Met een hoogte van slechts 25 mm kan deze kleine robot zich wagen op plaatsen die veel te klein zijn voor mensen om te gaan, en voedt hij alle
Hoe maak je een SPY RADIO BUG: 8 stappen
Hoe maak je een SPY RADIO BUG: Als je ooit een spion of actiefilm hebt gezien waarin mensen die 'surveillance bugs' in hun huis krijgen, ben je misschien benieuwd hoe ze worden gemaakt. Die spionage-apparaten zijn zenders die radiosignalen uitzenden die vervolgens worden opgepikt door een r
Door beweging geactiveerde Spy Cam: 5 stappen (met afbeeldingen)
Motion Triggered Spy Cam: Nu kunt u geheime bewaking uitvoeren met deze "betrapt-in-beweging" spionage-videocamera die geheime video en audio opneemt. Zie het in actie en de testresultaten
Auto Spy Remote: 8 stappen (met afbeeldingen)
Auto Spy Remote: Natuurlijk was de originele Thinkgeek Micro Spy Remote een tijdje leuk, maar er was een groot nadeel. Om een ravage aan te richten op de tv van iemand anders, moest je binnen visueel bereik zijn. Na een tijdje zou je prooi beseffen dat je er iets mee te maken had