Hur man bygger en trådlös Pi-kamera Pan och Tilt Platform

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.


Samla komponenterna

  • Raspberry Pi Modell B
  • Strömförsörjning
  • SD-kort
  • Raspberry Pi kameramodul
  • Pan / tilt-fästet
  • Två servos
  • Man-till-kvinnliga krok upp ledningar
  • Pi kamerafäste
  • USB Wifi-modul
  • 6-32 skruv för att ansluta fästet till konsolen (eller vad som helst för dig. Se anvisningarna nedan.)
  • Lego tegelstenar
  • USB-tangentbord / mus (för installation. Endast en USB är tillgänglig för båda dessa. Så en USB-hubb eller tangentbord / muskombination rekommenderas.)
  • HDMI-bildskärm (för inställning)

Ställ in Pi-plattformen

Ställ in och montera de grundläggande Pi-komponenterna med följande steg.

  • Bränn den senaste Raspbian-bilden till SD-kortet enligt instruktionerna i handledningen Hur man bläddrar ett SD-kort för Raspberry Pi
  • Anslut USB-musen / tangentbordet till den nedre USB-porten
  • Anslut USB Wifi-adaptern till USB-porten. Antennen kan placeras för att böjas upp.
  • Anslut HDMI-skärmen till HDMI-porten
  • Anslut strömmen till Pi

Konfigurera Pi och aktivera kamerastöd

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:

  • Välj att starta till ett skrivbord för tillfället eftersom det gör det enklare att installera wifi senare
  • Välj Aktivera kameran för att aktivera det här alternativet
  • Välj Avancerade alternativ> SSH för att aktivera åtkomstkommandon för nätverkskommandon
  • Välj finish och låt Pi starta om

Installera Wi-Fi och återkonfigurera start-preferens

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.

  • Öppna ett terminalfönster genom att dubbelklicka på ikonen LXTerminal.
  • Kör kommandot sudo raspi-config
  • Välj Aktivera uppstart till skrivbord / skrapa> Console Text Console, som kräver inloggning (standard) alternativ
  • Välj Avsluta och låt inte Pi starta om
  • Kör ner Pi och koppla ur strömförsörjningen innan du fortsätter till nästa steg

Montera kamerans montering

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äst kameramodulen på kamerans monteringsplatta med fästarna genom de fyra hålen. Jag upptäckte att det var det enklaste sättet att hålla berget med hjälp av en hjälpande rigg och lämna tillräckligt med fingrar för att få dessa små komponenter att ställa upp. Dra inte åt muttrarna helt medan du ansluter dem. När alla fyra är på plats kan du strama efter behov.
  • Knappa de två delarna av kamerafästet tillsammans vid 90 grader så att de ser ut som produktbilderna. Sektionerna klarar sig försiktigt.

Montera panellänkfästet

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.

  • När du sätter fast konsolerna, dra inte åt bultarna och skruvarna helt tills alla delar är löst monterade. Att hålla den lös kommer att göra det enklare att justera.
  • Dra inte åt skruvarna som kopplar servohornet (hjulet) till konsolen. Dessa horn är gjorda av mjuk plast och de kan enkelt lossna. Dra åt dessa skruvar försiktigt.
  • Jag fann att tre brickor mellan de två parenteserna som ses på vänster sida av steg fyra i anvisningarna var den bästa passformen för min montering. Dessa extra brickor fyllde utrymmet och lät parenteserna passa bättre än en enda bricka. Extra skivor finns i satsen.

Bygga basen

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.


Lego Base Close Up

Anslut kameran till Pi

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:

  • Leta reda på kontakten direkt bakom Ethernet-porten på Pi
  • Lyft plastflikarna på vardera sidan av kontakten försiktigt med två fingrar
  • Orientera bandkabeln så att de exponerade tennledningarna pekar bort från Ethernet-kontakten på kortet
  • Skjut in kabeln i kontakten försiktigt så att den passar ordentligt och rätt i brädet
  • Använd två fingrar för att stänga plastkontakten

Fäst kamerafäste på fästet

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.


Fäst kamerafäste till den här luckan

Anslut servonerna till Pi

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.

  • Anslut servo 0 röd strömkabel till stift 2 (+ 5v), översta höger stift på bilden nedan
  • Anslut servo 0 svart jordledning till stift 6 (jord), tredje stift från toppen i högra kolumnen
  • Anslut servo 0 vit / gul signaltråd till stift 7 (GPIO 4), 4 stift ner i den vänstra kolumnen
  • Anslut servo 1 röd strömkabel till stift 4 (+ 5v), andra stift ner till höger
  • Anslut servo 1 svart jordledning till stift 14 (jord), 7 stift ner i högra kolumnen
  • Anslut servo 1 vit / gul signaltråd till stift 11 (GPIO17), 6: e stift ner till vänster kolumn

Anslutna stift
Färdigmontering

Installera Servoblaster

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

Skicka kommandon till servrarna

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

Ta bilder och video med kameran

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

Skriptrörelser och bilder

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:


Hur man bygger en trådlös Pi-kamera Pan och Tilt Platform

Streaming video exempel

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 / servoblaster
Tips: 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.

Sammanfattning

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.