- 'Motion' installeren en configureren om een videofeed te krijgen:
- Flask Setup in Raspberry Pi voor het besturen van de robot via webpagina:
- HTML-code voor webpagina:
- Bewakingsrobot
- Schakelschema en opstelling:
- Hoe te bedienen:
In deze doe-het-zelf-sessie bouwen we een webgestuurde robotautobewaking met framboos pi en een webcam. Dit kan een handig en goedkoop hulpprogramma voor beveiliging en spionage zijn, dat veel configureerbare opties heeft en binnen enkele uren kan worden gebouwd. In dit IoT-project gebruiken we voornamelijk Raspberry Pi, USB-webcamera en twee DC-motoren met robotchassis om deze robotauto te bouwen.
Er is een webcamera overheen gemonteerd, waardoor we live videobeelden krijgen en het interessante hier is dat we deze robot kunnen besturen en verplaatsen vanuit een webbrowser via internet. Omdat het kan worden beheerd via een webpagina, kan het ook worden beheerd via een webpagina in Mobile. We hebben een webpagina in HTML gebouwd met links, rechts, vooruit en achteruit links, waarop we klikken waarop we de robot in elke richting kunnen bewegen. Hier gebruikten we "Motion" om live videofeed van een USB-camera te krijgen en gebruikten we "Flask" voor het verzenden van opdrachten van webpagina naar Raspberry Pi met behulp van pythonom de robot te verplaatsen, die in het volgende deel van deze tutorial in detail worden uitgelegd. We hebben Raspbian Jessie OS geïnstalleerd op ons Raspberry Pi-bord. U kunt dit artikel raadplegen om het Raspbian-besturingssysteem te installeren en aan de slag te gaan met Raspberry Pi.
'Motion' installeren en configureren om een videofeed te krijgen:
Motion (Surveillance Software) is gratis, open source CCTV-software voor bewegingsdetectoren, ontwikkeld voor Linux. Het detecteert de beweging en begint er video van op te nemen. Met 'Motion' geïnstalleerd in uw Raspberry Pi, kunt u uw Raspberry Pi op magische wijze in een beveiligingscamera veranderen. Het wordt gebruikt voor het verkrijgen van live videofeed, het maken van timelapse-video's en het maken van snapshots met regelmatige tussenpozen. Het neemt de video op en slaat deze op wanneer het beweging of enige storing in het weergavegebied detecteert. Live videofeed kan in de webbrowser worden bekeken door het IP-adres van Pi samen met de poort in te voeren.
We hebben een gedetailleerde zelfstudie gemaakt over het gebruik van beweging met Raspberry Pi en USB-camera, hier leggen we kort de installatie uit op Raspberry Pi zodat onze robot live videostreaming naar de webpagina kan sturen.
Hier hoeft u slechts een paar opdrachten uit te voeren om uw eerste videofeed via het netwerk te krijgen. Controleer daarvoor eerst of uw Raspberry Pi is verbonden met internet, via LAN of Wi-Fi, en volg de onderstaande stappen:
Stap 1: Voer eerst de onderstaande opdracht uit om het Raspbian-besturingssysteem op Raspberry Pi bij te werken:
sudo apt-get update
Stap 2: Vervolgens installeer Library 'Motion' met behulp van de onderstaande commando:
sudo apt-get install motion
Stap 3: Nu zetten Motion daemon ja door bewerken van het bestand: / etc / default / beweging , zodat het altijd zal worden uitgevoerd. Bewerk dit bestand met de 'nano'-editor met' sudo 'zoals hieronder weergegeven:
sudo nano / etc / default / motion
Sla vervolgens het bestand op door op 'CTRL + X', vervolgens op 'Y' en Enter te drukken.
Stap 4: Nu moeten we de toestemming instellen voor de doeldirectory (/ var / lib / motion /), waarin Motion alle video-opnamen en fotobestanden opslaat. We moeten 'Motion' instellen als eigenaar van deze map door het onderstaande commando te geven:
sudo chown motion: motion / var / lib / motion /
Deze toestemming is nodig, anders krijgt u een foutmelding wanneer u Motion service Status controleert.
U kunt de servicestatus controleren met behulp van deze opdracht: sudo service motion status
Stap 5: Nu zijn we bijna klaar, we hoeven alleen nog maar één configuratieoptie in het Motion-configuratiebestand (/etc/motion/motion.conf ) te wijzigen, namelijk stream_localhost uit. We moeten deze lokale host-streaming uitschakelen, anders hebben we geen toegang tot de videofeed op ons netwerk en is deze alleen toegankelijk vanaf de Raspberry Pi zelf. Bewerk hiervoor het Motion Configuration-bestand met de 'nano'-editor en schakel het uit, zoals hieronder weergegeven:
sudo nano /etc/motion/motion.conf
Nu zijn we klaar en klaar om onze live feed te krijgen van de USB-webcamera die op Pi is aangesloten. Start (of herstart) de Motion-service met de onderstaande opdracht en open het IP-adres van uw Raspberry Pi, met poort 8081, in uw browser (zoals 192.168.43.199:8081). In dit project hebben we dit IP-adres in onze HTML-code ingesloten in de img src- tag.
sudo /etc/init.d/motion herstart
En je ziet de live feed van je webcamera. Hier hebben we een goedkope USB-webcamera gebruikt die soepel werkte met onze Raspberry Pi, maar je kunt verder een camera van goede kwaliteit gebruiken voor een betere resolutie. Zoals het in de browser zal laten zien, kunt u elk apparaat gebruiken om de feed te bekijken, die webbrowser ondersteunt, zoals mobiel, tablet enz.
Probeer indien nodig de Raspberry Pi opnieuw op te starten als stap voor probleemoplossing:
sudo opnieuw opstarten
Dit gaat allemaal over het gebruik van Motion voor onze Surveillance Robot, afgezien daarvan heeft het verschillende configuratie-opties die we al hebben besproken in onze vorige tutorial.
Opmerking: als u een Raspberry Pi-model onder de versie 3 bent, hebt u mogelijk een Wi-Fi-dongle nodig om de Raspberry Pi draadloos met de router te verbinden.
Flask Setup in Raspberry Pi voor het besturen van de robot via webpagina:
Hier hebben we een webserver gemaakt met Flask, die een manier biedt om de commando's van de webpagina naar Raspberry Pi te sturen om de robot via het netwerk te besturen. Met Flask kunnen we onze python-scripts via een webpagina uitvoeren en kunnen we gegevens van Raspberry Pi naar een webbrowser verzenden en ontvangen en vice versa. Flask is een microframework voor Python. Deze tool is gebaseerd op Unicode met een ingebouwde ontwikkelserver en debugger, geïntegreerde ondersteuning voor het testen van eenheden, ondersteuning voor veilige cookies en het is gemakkelijk te gebruiken, deze dingen maken het nuttig voor de hobbyist.
Installeer een fles-ondersteuningspakket in de Raspberry Pi met behulp van de gegeven opdracht:
$ pip installeer Flask
Dan kunnen we de Flask gebruiken door het gewoon in ons programma te importeren, zoals we de volgende pakketten flask hebben geïmporteerd voor dit project:
from flask import Flask from flask import Flask, render_template, request
Je kunt hier meer leren over het programmeren met Flask, bekijk ook onze eerdere projecten waar we Flask hebben gebruikt om het bericht van webpagina naar Raspberry Pi te verzenden en gewichtswaarde naar Raspberry Pi in Smart Container te sturen.
HTML-code voor webpagina:
We hebben een webpagina gemaakt met HTML-taal voor het weergeven van besturingskoppelingen (links, rechts, vooruit, achteruit) om de robot vanuit de webbrowser te verplaatsen. We hebben jQuery-script gebruikt om de functies in ons Python-programma aan te roepen. Er zijn vijf functies in Python Code om de robot naar links, rechts, vooruit, achteruit te bewegen en te stoppen. Aan het einde is de volledige Python-code gegeven. Deze functies worden uitgevoerd door op de Control Links op de webpagina te klikken en de motoren zullen bewegen afhankelijk van de link waarop wordt geklikt. Hier hebben we de code zo geschreven dat de Robot in een bepaalde richting beweegt terwijl je op de link klikt en deze vasthoudt, en zodra we de muisknop loslaten stopt de Robot. Hieronder staat de HTML-code voor de webpagina inclusief de jQuery:
Hier kun je zien dat we het IP-adres, waarop de video wordt gestreamd, in de webpagina hebben ingesloten met behulp van de img src- tag. Wijzig het IP-adres volgens uw Raspberry Pi, maar houd dezelfde poort.
De gebruiker moet de bovenstaande HTML-code kopiëren en plakken in een teksteditor (kladblok) en het bestand opslaan met de extensie.HTML (robot.html). Dan zet dit HTML-bestand in de / templates map met betrekking tot uw python script locatie. Dit betekent dat u een map met de naam sjablonen moet maken, waarin u uw Python- codebestand voor deze Raspberry Surveillance Robot hebt geplaatst, en vervolgens het bestand robot.html in deze map met sjablonen. Deze stap is belangrijk, anders werkt ons project niet. U kunt het bestand robot.html direct openen door erop te dubbelklikken om te zien hoe uw besturingslinks eruit zullen zien. Bekijk het hele proces verder in Demonstratievideo aan het einde. Nadat we klaar zijn met programmeren en zo, kunnen we de Python-code gewoon in Raspberry Pi uitvoeren en het IP_address_of_your_Pi: 5010 openen in de webbrowser (zoals
U kunt het IP-adres van uw Raspberry Pi controleren met de opdracht ifconfig :
ifconfig
Schakelschema en opstelling:
Na het testen van de Live Video-feed en HTML-code, moeten we een robot bouwen met behulp van handgemaakte of kant-en-klare robotchassis, wielen en moerbouten. Plaats vervolgens de Powerbank erover om de Raspberry Pi van stroom te voorzien en plaats vervolgens de Raspberry Pi en webcamera over de powerbank en bevestig de opstelling met cello-tape of rubberen strips, verbind de USB-camera met Raspberry Pi.
In dit IoT-project hoeven we niet veel verbindingen te maken, we hoeven alleen enkele draden aan te sluiten voor Motor Driver IC L293D en DC-motoren. Aansluitingen zijn weergegeven in het onderstaande schakelschema. Hier hebben we een General Purpose PCB gebruikt voor het monteren van de L293D IC om de ruimte te verkleinen, maar je kunt ook een klein Breadboard gebruiken om DC-motoren aan te sluiten op L293D.
Hoe te bedienen:
Bediening en werking van deze Surveillance Robot is heel eenvoudig. Maak een python-bestand (.py-extensie) en kopieer de onderstaande code erin en sla deze op je Raspberry Pi op. Plaats vervolgens het HTML-bestand in de map met sjablonen , zoals hierboven uitgelegd. Vergeet niet om het IP-adres in HTML-bestand te wijzigen.
Voer vervolgens de Python-code uit door de onderstaande opdracht in te voeren:
python naam_van_bestand.py
Open vervolgens uw Raspberry Pi IP-adres met poort 5010 zoals http://192.168.43.199:5010 (vervang opnieuw IP-adres door uw adres). Nu zul je de webpagina zien met vier robotbesturingslinks en live streaming video. De gebruiker kan de robot besturen door op de links te klikken en deze vast te houden. Als de gebruiker op de links klikt en deze vasthoudt, beweegt de robot zich volgens de aangeklikte link en wanneer zal de gebruiker de link loslaten, dan stopt de robot automatisch.
De volledige Python-code wordt hieronder gegeven, waar we verschillende functies hebben geschreven om de robot te besturen door op de links op de webpagina te klikken. Je kunt ze gemakkelijk begrijpen, of als je een beginner bent, bekijk dan onze eerdere Raspberry Pi-zelfstudies. Bezoek ook onze sectie Robotica voor meer interessante en eenvoudig te bouwen robots.