Med utlösningen av Raspberry Pi-kameramodulen tar du bilder av hög kvalitet, eller video, med Pi har blivit väldigt enkelt.
I den här handledningen visar jag dig hur du kopplar Pi-kameramodulen till din Pi och styr trådlöst en pan-plattform. I processen kommer jag att täcka ämnen som inkluderar anslutning av Pi-kameramodulen, anslutning och styrning av servos med din Pi, kommandoradsstyrning av kameran och vissa lågnivåvideoströmkommandon.
Ställ in och montera de grundläggande Pi-komponenterna med följande steg.
Vid start kommer Pi att springa genom den första startuppsättningen av raspi-config. Det finns många alternativ om SD-kortpartition, region, tangentbord mm som inte omfattas här. Välj de alternativ som är lämpliga för din inställning och betala specialnotering till följande alternativ:
När Pi omstartar på ett skrivbord följer du instruktionerna om hur du använder GUI-verktyget för att konfigurera ditt Wi-Fi-nätverk. Se till att du skriver ner den IP-adress som din Pi har tilldelats för senare användning när du SSH till den för fjärrkontroll. Slutligen följ stegen nedan för att omkonfigurera Pi för att starta till en textkonsol. Den grafiska skrivbordsmiljön behöver inte användas.
sudo raspi-config
Kamerahållaren levereras med små plastfästen som passar genom de fyra hålen med muttrar som skruvas på dem från baksidan. Se produktbilderna på leverantörens hemsida för att se närbilder på hur dessa komponenter passar ihop.
Fästet levereras med tre metalldelar och en uppsättning skruvar och brickor. Följ monteringsguiden för att fästa konsolen ihop. Jag kommer att erbjuda några förslag att överväga när du följer anvisningarna.
Konsolen kommer inte att stå upp på egen hand eftersom den endast stöds av den lilla servot. Vilken som helst metod för att fästa bottenaxeln eller pan servo är acceptabel. Lego kan användas för att skapa en snabb och enkel bas. Ta dig tid att bygga en bas för botten servo som håller den ordentligt på plats och låta fästet vrida sig fritt.
Fäst servo i basen innan du ansluter kamerafäste till basen. Detta gör det enklare att ansluta kameran till Pi. Du kan se på bilden nedan att jag kunde bygga en enkel basstöd genom att använda en uppsättning platt Lego och två tegelhöga väggar med en tvåhöga breda lucka. Hingst är den officiella termen för stötarna på en Lego-tegel enligt Lego-webbplatsen. Exakt ordförråd är viktigt här.
Processen att ansluta kameramodulen är mycket enkel. Det finns en detaljerad video med anvisningar på den officiella Raspberry Pi Camera Module-sidan. Jag sammanfattar stegen här:
Använd 6-32 skruven genom att skruva fast monteringshålet i kamerafästet i konsolen. Använd den mindre luckan i konsolen för att fästa kameran nära framsidan snarare än det stora mitthålet. Jag använde 6-32 eftersom jag upptäckte att jag inte hade en mutter / bult-kombination tillräckligt liten och i en sista grävansträng för att undvika en resa till hårdvaruaffären försökte jag ut några PC-chassisskruvar som jag hade lagt runt . Det hände att tråden trådte in i fästet och inte krävde en bult. Så gör vad som fungerar för dig.
Servos har tre ledningar för anslutning till en kontroller. Röd, svart och vit ledningar är för anslutning av kraft, mark och signal respektive. För dessa anvisningar kommer jag att referera till botten- eller pan-styrande servo som servo 0 och topp- eller tilt-styrservo som servo 1. Denna distinktion är viktig och kommer att bli tydligare i Servoblaster-sektionen i handledningen. Pinout-diagrammet på elinux.org har fin detalj på stiften och deras syften. Bilden nedan visar de färgade M / F-hopparna anslutna till rätt stift för denna handledning.
För montering koppla man ihop den manliga änden av bygeln till honkabelnätet för respektive tre färger. Eftersom min jumperpaket inte hade vit, använde jag gult. Använd en konsekvent färg i ditt system för att se till att du inte blandar funktionerna.
Nu när hårdvaran är monterad och kopplad till programvaran för att styra servo krävs. Servoblaster Github-webbplatsen har bra dokumentation om programvaran om du vill läsa mer.
I huvudsak lägger servoblaster-installationen ett init-script för att starta servoblaster-processen vid start. Servoblaster-processen skapar en / Dev / servoblaster
inmatning som när den adresseras korrekt styr PWM-signalen som styr servomotorns position. Från Pi-konsolen eller från och SSH-sessionen, utför kommandona nedan för att ladda ner och installera programvaran.
wget https://github.com/richardghirst/PiBits/zipball/master mv master pibits.zip unzip pibits.zip #unzip koden cd richardghirst-PiBits-ab34d81 / ServoBlaster / användar sudo make install #install programvaran #change timeout från 2000 till 500 /etc/init.d/servoblaster sudo pico /etc/init.d/servoblaster sudo omstart
När Pi har startat med servoblaster-processen nu, kan du prova några kommandon för att flytta fästet runt. SSH i din Pi och prova kommandona nedan.
Följande kommando kommer att flytta panelen eller vänster / höger axel servo, servo 0. Byt ut X med ett värde mellan 60 och 240. Detta kommer att flytta servot runt. Prova några olika värden.
echo 0 = X> / dev / servoblaster
Följande kommando kommer att flytta vipp- eller upp / neraxeln servo, servo 1. Ersätt Y med ett värde mellan 60 och 240. Detta kommer att flytta servot runt. Prova några olika värden.
eko 1 = Y> / dev / servoblaster
Att ta bilder med Pi är väldigt enkelt. Testa kommandot nedan för att snäppa en bild till filen med namnet output.jpg. Du måste scp filen från Pi till din dator för att se detta, men du får bilden.
raspistill -o output.jpg
För att ta en video är det grundläggande kommandot också ganska enkelt. Följande skapar en h264-kodad videofil som är 10000 millisekunder eller 10 sekunder lång. Återigen måste SCP kopiera detta från Pi och visa det.
raspivid -o video.h264 -t 10000
Nu när du har grunderna för att flytta kameran via panelen / tilt-fästet och servona samt kommandona för att snäppa bilder, är det ganska enkelt att skriva ett skript som flyttar kameran till fördefinierade vinklar och och tar bilder eller bilder. Om du installerar apache på Pi kan du släppa dessa bilder eller videoklipp i / Var / www /
katalog för senare visning.
En cron-uppgift kan också skapas för att utföra manuset med periodiska intervaller. Du har alla grunderna för ett natur- eller djurprojekt. Nedan finns ett exempel manus för att testa projektet och en video av systemet i aktion.
#! / bin / bash #go till startposition echo 0 = 60> / dev / servoblaster sov 1 echo 1 = 135> / dev / servoblaster sova 1 raspistill -o step1.jpg echo 0 = 240> / dev / servoblaster sova 1 raspistill -o step2.jpg echo 0 = 130> / dev / servoblaster sova 1 raspistill -o step3.jpg echo 0 = 60> / dev / servoblaster sov 1 echo 1 = 60> / dev / servoblaster sova 1 raspistill -o step4. jpg echo 1 = 140> / dev / servoblaster sova 1 raspistill -o step5.jpg echo 1 = 220> / dev / servoblaster sova 1 raspistill -o step6.jpg echo 1 = 135> / dev / servoblaster sova 1 raspistill -o step7 .jpg
Videon visar pan / tilt-fästet som svarar på skriptet ovan:
Stillbilder är roliga, men i nästa experiment kan du strömma video från kameran till din dator över nätverket. Beroende på hastigheten på din WiFi-kvalitet kan variera. Jag använde en Linux-dator som mål- eller videomottagare. Mplayer och Netcat existerar för både Windows och OS X, men vissa syntax kan variera för de operativsystemen. Använd ifconfig, ipconfig eller ipconfig för att bestämma din IP-adress på Linux, Windows eller OS X. I det här exemplet är 192.168.1.100 adressen till mål-bärbar dator.
Kommandot nedan kommer att lyssna på måldatorn för inkommande video på port 5001 och visa den:
nc-k-l 192.168.1.100 5001 | mplayer-fps 31-cache 1024 -
Kommandot nedan kommer att börja spela in video på Pi och strömma den till måldisplaydatorn:
raspivid -t 100000 -o - | nc 192.168.1.100 5001 &
& I slutet av kommandot på Pi faller anvisningarna i bakgrunden så att du kan använda din öppna terminal för att utfärda rörelsekommandon. Prova några servokommandon som de nedan och titta på hur videon svarar.
echo 0 = 60> / dev / servoblaster echo 1 = 60> / dev / servoblaster echo 1 = 140> / dev / servoblasterTips: Utfärda kommandon till servona som får dem att fungera samtidigt orsakade en viss nätverksinstabilitet för mig. För bättre resultat behövs en extern 5V-strömförsörjning för att inte övertaxa Pi.
grattis! Du har nu en trådlös pan / tilt-kamera som du kan skriva och hacka för dina specifika behov. Som ett nästa steg kan du försöka förbättra det genom att bygga ett helt lego-fodral för Pi och konsolen tillsammans. En annan övning kan vara att ställa in ett cronjobb för att ta bilder vid vissa tider och riktningar och maila dem till dig.
Denna handledning lärde dig grunderna om hur man kopplar och ställer in Pi-kameramodulen, hur man ansluter och styr flera servrar, hur man tar kontrollen över kamerans kommandon för stillbilder och videor och äntligen hur man testar inställningen med lite låg nivå video strömmande kommandon. Med dessa grundläggande verktyg kan du nu lägga till en mångsidig kameraplattform för dina framtida projekt.