Met de release van de Raspberry Pi-cameramodule, het maken van hoge kwaliteit foto's of video, is de Pi heel eenvoudig geworden.
In deze zelfstudie laat ik u zien hoe u de Pi-cameramodule op uw Pi aansluit en een kantelplatform draadloos bedient. Tijdens dit proces zal ik onderwerpen behandelen zoals het bevestigen van de Pi-cameramodule, het aansluiten en besturen van servo's met uw Pi, opdrachtregelbesturing van de camera en enkele videostreamingsopdrachten op laag niveau..
Stel de basiselementen van Pi in en installeer deze met de volgende stappen.
Na het opstarten doorloopt de Pi de eerste opstartconfiguratie van raspi-config. Er zijn veel opties met betrekking tot SD-kaartpartitie, regio, toetsenbord, enz. Die hier niet worden behandeld. Selecteer de opties die geschikt zijn voor uw opstelling en betaal speciale aandacht voor de volgende opties:
Nadat de Pi opnieuw op een bureaublad is opgestart, volgt u deze instructies voor het gebruik van de GUI-tool om uw wifi-netwerk te configureren. Noteer het IP-adres dat je Pi is toegewezen voor later gebruik wanneer je er SSH voor gebruikt voor afstandsbediening. Volg ten slotte de onderstaande stappen om de Pi opnieuw te configureren voor het opstarten van een tekstconsole. De grafische bureaubladomgeving is niet nodig.
sudo raspi-config
De camerabevestiging wordt geleverd met kleine plastic bevestigingsmiddelen die door de vier gaten passen met moeren die er vanaf de achterkant op schroeven. Raadpleeg de productfoto's op de website van de leverancier voor een close-up van hoe deze componenten in elkaar passen.
De beugel wordt geleverd met drie metalen onderdelen en een set schroeven en sluitringen. Volg de montagehandleiding om de beugel aan elkaar te bevestigen. Ik zal een paar suggesties geven om te overwegen terwijl je de instructies opvolgt.
De beugel staat niet alleen omdat deze alleen wordt ondersteund door de kleine servo. Elke methode voor het beveiligen van de onderste as of panservo is acceptabel. Lego kan worden gebruikt om een snelle en eenvoudige basis te maken. Neem de tijd om een basis te bouwen voor de onderste servo die hem stevig op zijn plaats houdt en laat de beugel vrij draaien.
Bevestig de servo in de basis voordat u de camerabevestiging op de basis aansluit. Dit maakt het veel eenvoudiger om de camera op de Pi aan te sluiten. Je ziet op de foto hieronder dat ik in staat was om een eenvoudige basissteun te maken met behulp van een set platte Lego en twee bakstenen hoge muren met een opening van twee spikes. stoeterij is de officiële term voor de hobbels op een Legoblokje volgens de Lego-website. Een accuraat vocabulaire is hier belangrijk.
Het proces om de cameramodule aan te sluiten is heel eenvoudig. Er is een gedetailleerde video met instructies over de officiële Raspberry Pi-cameramodule-pagina. Ik zal de stappen hier samenvatten:
Draai met behulp van de 6-32 schroef het montagegat in de camerabevestiging in de beugel. Gebruik de kleinere sleuf in de beugel om de camera aan de voorkant te bevestigen in plaats van het grote centrale gat. Ik gebruikte de 6-32 omdat ik na veel vallen en opstaan ontdekte dat ik geen moer / bout-combinatie had die klein genoeg was en in een laatste poging om een bezoek aan de ijzerhandel te vermijden, probeerde ik wat pc-chassisschroeven die ik had liggen . Het ging toevallig perfect in de bovenkant van de beugel en er was geen bout voor nodig. Dus doe wat voor u werkt.
Servo's hebben drie draden om verbinding te maken met een controller. Rode, zwarte en witte draden dienen voor het aansluiten van vermogen, aarde en signaal respectievelijk. Voor deze instructies verwijs ik naar de onderste of pan-controlerende servo als servo 0 en de servo servo boven of tilt als servo 1. Dit onderscheid is belangrijk en zal duidelijker worden in het Servoblaster-gedeelte van de tutorial. Het pinout-diagram op elinux.org bevat leuke details over de pinnen en hun doelen. Op de onderstaande afbeelding ziet u de gekleurde M / F-jumpers die voor deze zelfstudie op de juiste pinnen zijn aangesloten.
Voor de montage verbindt u het mannelijke uiteinde van de jumper met de vrouwelijke servoverbinding voor elk van de drie kleuren. Omdat mijn springerpak geen wit had, gebruikte ik geel. Gebruik een consistente kleur in uw schema om ervoor te zorgen dat u de functies niet door elkaar haalt.
Nu de hardware volledig is geassembleerd en aangesloten, is de software nodig om de servo te besturen. De servoblaster github-site bevat goede documentatie over de software als u meer wilt lezen.
In wezen voegt de servoblaster-installatie een init-script toe om het servoblaster-proces tijdens het opstarten te starten. Het servoblasterproces creëert een / Dev / servoblaster
invoer die, wanneer geadresseerd, het PWM-signaal dat de positie van de servomotor regelt correct bestuurt. Start vanuit de Pi-console of vanuit en de SSH-sessie de onderstaande opdrachten om de software te downloaden en te installeren.
wget https://github.com/richardghirst/PiBits/zipball/master mv master pibits.zip unzip pibits.zip #unzip de code cd richardghirst-PiBits-ab34d81 / ServoBlaster / user sudo make install # installeer de software #change timeout van 2000 tot 500 /etc/init.d/servoblaster sudo pico /etc/init.d/servoblaster sudo reboot
Nadat de Pi opnieuw is opgestart met het servoblasterproces dat nu wordt uitgevoerd, kunt u enkele opdrachten uitproberen om de haak rond te bewegen. SSH in je Pi en probeer de onderstaande commando's uit.
Met de volgende opdracht verplaatst u de pan of de linker / rechter as-servo, servo 0. Vervang X door een waarde tussen 60 en 240. Hierdoor wordt de servo verplaatst. Probeer een paar verschillende waarden.
echo 0 = X> / dev / servoblaster
Met de volgende opdracht verplaatst u de servo voor kantelen of op / neer / omlaag, servo 1. Vervang Y met een waarde tussen 60 en 240. Hiermee wordt de servo verplaatst. Probeer een paar verschillende waarden.
echo 1 = Y> / dev / servoblaster
Het maken van foto's met de Pi is heel eenvoudig. Probeer de onderstaande opdracht om een foto te maken naar het bestand met de naam uitvoer.jpg. U moet het bestand van de Pi naar uw computer scpppen om dit te zien, maar u krijgt de afbeelding.
raspistill -o output.jpg
Om een video te nemen, is de basisopdracht ook vrij eenvoudig. Het volgende maakt een h264 gecodeerd videobestand dat 10000 milliseconden of 10 seconden lang is. Nogmaals, scp is vereist om dit van de Pi te kopiëren en het te bekijken.
raspivid -o video.h264 -t 10000
Nu je de basis hebt om de camera via de draai- / kantelbeugel en servo's te bewegen, evenals de opdrachten om foto's te maken, is het vrij eenvoudig om een script te schrijven dat de camera naar vooraf gedefinieerde hoeken verplaatst en foto's of afbeeldingen maakt. Als u apache instelt op de Pi, kunt u deze afbeeldingen of video's in de / Var / www /
map om later te bekijken.
Een cron-taak kan ook worden gemaakt om het script met periodieke intervallen uit te voeren. Je hebt alle basisprincipes voor een natuur- of huisdierobservatieproject. Hieronder staat een voorbeeldscript dat ik heb geschreven om het project en een video van het systeem in actie uit te testen.
#! / bin / bash #go naar startpositie echo 0 = 60> / dev / servoblaster slaap 1 echo 1 = 135> / dev / servoblaster slaap 1 raspistill -o step1.jpg echo 0 = 240> / dev / servoblaster slaap 1 raspistill -o step2.jpg echo 0 = 130> / dev / servoblaster slaap 1 raspistill -o stap3.jpg echo 0 = 60> / dev / servoblaster slaap 1 echo 1 = 60> / dev / servoblaster slaap 1 raspistill -o stap4. jpg echo 1 = 140> / dev / servoblaster slaap 1 raspistill -o step5.jpg echo 1 = 220> / dev / servoblaster slaap 1 raspistill -o step6.jpg echo 1 = 135> / dev / servoblaster slaap 1 raspistill -o stap7 .jpg
De video toont de pan / tilt-beugel die reageert op het bovenstaande script:
Foto's zijn leuk, maar in het volgende experiment kun je live video van de camera naar je computer streamen via het netwerk. Afhankelijk van de snelheid van uw wifi-kwaliteit kan variëren. Ik gebruikte een Linux-computer als doel- of video-ontvanger. Mplayer en Netcat bestaan voor zowel Windows als OS X, maar sommige syntaxis kan voor die besturingssystemen variëren. Gebruik ifconfig, ipconfig of ipconfig om uw IP-adres te bepalen op respectievelijk Linux, Windows of OS X. In dit voorbeeld is 192.168.1.100 het adres van de doel-laptop.
De onderstaande opdracht zal op de doelcomputer luisteren naar inkomende video op poort 5001 en deze weergeven:
nc -k -l 192.168.1.100 5001 | mplayer -fps 31 -cache 1024 -
De onderstaande opdracht begint met het opnemen van video op de Pi en streamt deze naar de doelschermcomputer:
raspivid -t 100000 -o - | nc 192.168.1.100 5001 &
Met de & aan het einde van de opdracht op de Pi wordt de instructie op de achtergrond geplaatst, zodat u uw open terminal kunt gebruiken om bewegingscommando's uit te geven. Probeer enkele servobevelen zoals die hieronder en bekijk hoe de video reageert.
echo 0 = 60> / dev / servoblaster echo 1 = 60> / dev / servoblaster echo 1 = 140> / dev / servoblasterTip: Het geven van commando's aan de servo's die ervoor zorgen dat ze allebei tegelijk werken, veroorzaakte enige netwerkinstabiliteit voor mij. Voor betere resultaten kan een externe 5V-voeding nodig zijn om de Pi niet te zwaar te belasten.
Gefeliciteerd! U hebt nu een draadloze pan / tilt-camera die u kunt scripten en hacken voor uw specifieke behoeften. Als volgende stap kunt u proberen het te verbeteren door een lego-case voor de pi en de beugel samen te bouwen. Een andere oefening zou kunnen zijn om een cron-taak in te stellen om op bepaalde tijden en op verschillende manieren foto's te maken en deze naar u te e-mailen.
In deze tutorial leerden je de basisprincipes van het bevestigen en instellen van de Pi-cameramodule, hoe je meerdere servo's kunt aansluiten en bedienen, hoe je de besturing van de camera op de opdrachtregel kunt gebruiken voor foto's en video's en hoe je je setup uiteindelijk kunt testen met een paar lage niveau video-streaming-commando's. Met deze basisgereedschappen kunt u nu een veelzijdig cameraplatform toevoegen aan uw toekomstige projecten.