Med utgivelsen av Raspberry Pi kameramodulen, tar bilder av høy kvalitet eller video, med Pi har blitt veldig enkelt.
I denne opplæringen vil jeg vise deg hvordan du kobler Pi-kameramodulen til Pi og styrer en panelløsningsplattform på en trådløs måte. I prosessen vil jeg dekke emner som inkluderer vedlegg av Pi-kameramodulen, tilkobling og styring av servoer med Pi, kommandolinjekontroll av kameraet, og noen lavt nivå video streaming kommandoer.
Sett opp og monter de grunnleggende Pi-komponentene med følgende trinn.
Ved oppstart vil Pi løpe gjennom første oppstartsoppsett av raspi-config. Det er mange alternativer for SD-kortpartisjon, region, tastatur, osv. Som ikke er dekket her. Velg alternativene som passer for oppsettet ditt og betal spesialnotat til følgende alternativer:
Etter at Pi har startet opp på et skrivebord, følg disse instruksjonene om hvordan du bruker GUI-verktøyet til å konfigurere Wi-Fi-nettverket. Pass på å skrive ned IP-adressen din Pi er tildelt for senere bruk når du SSH til den for fjernkontroll. Endelig følg trinnene nedenfor for å omkonfigurere Pi for å starte opp i en tekstkonsoll. Det grafiske skrivebordsmiljøet vil ikke være nødvendig.
sudo raspi-config
Kameraholderen kommer med små plastfester som passer gjennom de fire hullene med muttere som skruer på dem fra baksiden. Se produktbilder på leverandørens nettsted for å se nærmere bilder av hvordan disse komponentene passer sammen.
Braketten leveres med tre metalldeler og et sett med skruer og skiver. Følg monteringsveiledningen for å sette sammen braketten. Jeg gir noen forslag til å vurdere når du følger instruksjonene.
Braketten vil ikke stå opp selv fordi den bare støttes av den lille servoen. Enhver metode for sikring av bunnakse eller panservis er akseptabel. Lego kan brukes til å lage en rask og enkel base. Ta deg tid til å bygge en base for bunnservo som holder den sikkert på plass og gjør at braketten kan svinge fritt.
Fest servoen i basen før du kobler kameraholderen til basen. Dette vil gjøre det enklere å koble kameraet til Pi. Du kan se på bildet nedenfor at jeg var i stand til å konstruere en enkel base støtte ved hjelp av et sett med flat Lego og to murstein høye vegger med en to-stud bred spalte. Stud er det offisielle uttrykket for støtene på en Lego murstein ifølge Lego nettsiden. Nøyaktig ordforråd er viktig her.
Prosessen for å koble kameramodulen er veldig enkel. Det er en detaljert video med instruksjoner på den offisielle Raspberry Pi Camera Module-siden. Jeg oppsummerer trinnene her:
Ved hjelp av 6-32 skruen, skru gjennom monteringshullet i kameraholderen i braketten. Bruk den mindre sporet i braketten for å feste kameraet nær fronten i stedet for det store senterhullet. Jeg brukte 6-32 fordi etter mye forsøk og feil oppdaget jeg at jeg ikke hadde en mutter / boltkombinasjon liten nok, og i en siste grøftforsøk for å unngå en tur til maskinvarebutikken prøvde jeg ut noen PC-chassisskruer jeg hadde liggende rundt . Det skjedde å tråne helt inn i brakettoppe og krevde ikke en bolt. Så gjør det som fungerer for deg.
Servoer har tre ledninger for tilkobling til en kontroller. Røde, svarte og hvite ledninger er for tilkobling av kraft, jord og signal henholdsvis. For disse instruksjonene vil jeg referere til den nederste eller pan-styrende servo som servo 0 og den øverste eller tiltende servo som servo 1. Denne skillingen er viktig og blir tydeligere i Servoblaster-delen av opplæringen. Pinout-diagrammet på elinux.org har fin detalj på pinnene og deres formål. Bildet nedenfor viser de fargede M / F-jumpers som er koblet til de riktige pinnene for denne opplæringen.
For montering, koble den mannlige enden av jumperen til den kvinnelige servo ledningsnettet for hver av de tre fargene henholdsvis. Da min jumperpakke ikke hadde hvit, brukte jeg gul. Bruk en konsekvent farge i ordningen din for å sikre at du ikke blander opp funksjonene.
Nå som maskinvaren er samlet og koblet til programvaren for å kontrollere, er servoen nødvendig. Servoblaster github-nettstedet har god dokumentasjon om programvaren hvis du vil lese mer.
I hovedsak legger servoblaster-installasjonen et init-skript for å starte servoblaster-prosessen ved oppstart. Servoblaster-prosessen oppretter en / Dev / servoblaster
inngang som når korrekt adressert, styrer PWM-signalet som styrer posisjonen til servomotoren. Fra Pi-konsollen eller fra og SSH-økten, utfør kommandoene under for å laste ned og installere programvaren.
wget https://github.com/richardghirst/PiBits/zipball/master mv master pibits.zip unzip pibits.zip #unzip koden cd richardghirst-PiBits-ab34d81 / ServoBlaster / bruker sudo make install #install programvaren #change timeout fra 2000 til 500 /etc/init.d/servoblaster sudo pico /etc/init.d/servoblaster sudo reboot
Etter at Pi har startet på nytt med servoblaster-prosessen, kjører du nå, kan du prøve noen få kommandoer for å flytte braketten rundt. SSH inn i Pi og prøv kommandoene under.
Følgende kommando vil flytte pannen eller venstre / høyre akse servo, servo 0. Erstatt X med en verdi mellom 60 og 240. Dette vil flytte servoen rundt. Prøv noen forskjellige verdier.
ekko 0 = X> / dev / servoblaster
Følgende kommando vil bevege tilt- eller opp / nedaksel servo, servo 1. Erstatt Y med en verdi mellom 60 og 240. Dette vil flytte servoen rundt. Prøv noen forskjellige verdier.
ekko 1 = Y> / dev / servoblaster
Å ta bilder med Pi er veldig enkelt. Prøv kommandoen nedenfor for å få et bilde til filen med navnet output.jpg. Du må scp filen av Pi til datamaskinen for å se dette, men du får bildet.
raspistill -o output.jpg
For å ta en video, er den grunnleggende kommandoen også ganske enkel. Følgende oppretter en h264-kodet videofil som er 10000 millisekunder eller 10 sekunder lang. Igjen, scp er nødvendig for å kopiere dette av Pi og vise det.
raspivid -o video.h264 -t 10000
Nå som du har grunnleggende for å flytte kameraet via pan / tilt-braketten og servoene, så vel som kommandoene for å snap bilder, er det ganske enkelt å skrive et skript som vil flytte kameraet til forhåndsdefinerte vinkler og og ta bilder eller bilder. Hvis du konfigurerer apache på Pi, kan du slippe disse bildene eller videoene inn i / Var / www /
katalog for senere visning.
En cron-oppgave kan også opprettes for å utføre scriptet med periodiske intervaller. Du har alt grunnleggende for et natur- eller kjæledyrprosjekt. Nedenfor er et eksempelskript jeg skrev for å teste ut prosjektet og en video av systemet i aksjon.
#! / bin / bash #go til startposisjon echo 0 = 60> / dev / servoblaster søvn 1 ekko 1 = 135> / dev / servoblaster søvn 1 raspistill -o step1.jpg echo 0 = 240> / dev / servoblaster søvn 1 raspistill -o step2.jpg echo 0 = 130> / dev / servoblaster søvn 1 raspistill -o step3.jpg echo 0 = 60> / dev / servoblaster sove 1 echo 1 = 60> / dev / servoblaster søvn 1 raspistill -o step4. jpg ekko 1 = 140> / dev / servoblaster sove 1 raspistill -o step5.jpg echo 1 = 220> / dev / servoblaster søvn 1 raspistill -o step6.jpg echo 1 = 135> / dev / servoblaster søvn 1 raspistill -o step7 .jpg
Videoen viser pan / tilt-braketten som svarer på skriptet ovenfor:
Stillbilder er morsomme, men i det neste eksperimentet vil du kunne streame video fra kameraet til datamaskinen din på tvers av nettverket. Avhengig av hastigheten på Wi-Fi-kvaliteten kan variere. Jeg brukte en Linux-datamaskin som mål- eller videomottaker. Mplayer og Netcat eksisterer for både Windows og OS X, men noen syntaks kan variere for de operativsystemene. Bruk ifconfig, ipconfig eller ipconfig til å bestemme din IP-adresse på henholdsvis Linux, Windows eller OS X. I dette eksemplet er 192.168.1.100 adressen til målbiblioteket.
Kommandoen nedenfor vil lytte på måldatamaskinen for innkommende video på port 5001 og vise den:
nc-k-l 192.168.1.100 5001 | mplayer-fps 31-cache 1024 -
Kommandoen nedenfor vil starte opptak av video på Pi og strømme den til måldisplaydatamaskinen:
raspivid -t 100000 -o - | nc 192.168.1.100 5001 &
& I slutten av kommandoen på Pi faller instruksjonen i bakgrunnen, slik at du kan bruke den åpne terminalen til å utstede bevegelseskommandoer. Prøv noen servokommandoer som de nedenfor og se hvordan videoen reagerer.
ekko 0 = 60> / dev / servoblaster echo 1 = 60> / dev / servoblaster echo 1 = 140> / dev / servoblasterTips: Utstedelse av kommandoer til servoene som får dem til å operere samtidig forårsaket noe nettverksstabilitet for meg. For bedre resultater kan det være nødvendig med en ekstern 5V strømforsyning for å ikke overtaxere Pi.
Gratulerer! Du har nå et trådløst, pan / tilt-kamera som du kan skanne og hacke for dine spesifikke behov. Som et neste skritt kan du prøve å forbedre det ved å bygge en full lego sak for Pi og braketten sammen. En annen øvelse kan være å sette opp en cron jobb for å ta bilder på bestemte tider og retninger og sende dem til deg.
Denne opplæringen lærte deg grunnleggende om hvordan du kobler til og konfigurerer Pi-kameramodulen, hvordan du kobler til og styrer flere servoer, hvordan du tar kommandolinjestyring av kameraet for stillbilder og videoer og til slutt hvordan du teste ut oppsettet ditt med litt lavt nivå video streaming kommandoer. Med disse grunnleggende verktøyene kan du nå legge til en allsidig kameraplatform til fremtidige prosjekter.