Hvordan bygge en trådløs Pi-kamera Pan og Tilt Platform

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.


Samle komponentene

  • Raspberry Pi Modell B
  • Strømforsyning
  • SD kort
  • Raspberry Pi kameramodul
  • Pan / tilt brakett
  • To servos
  • Mann til kvinne koble opp ledninger
  • Pi kamera mount
  • USB Wifi-modul
  • 6-32 skrue for å koble festet til braketten (eller det som fungerer for deg. Se instruksjonene nedenfor.)
  • Lego murstein
  • USB-tastatur / mus (for oppsett. Bare en USB er tilgjengelig for begge disse. Så en USB-hub eller et tastatur / muskombinasjon er foreslått.)
  • HDMI-skjerm (for oppsett)

Sett opp Pi-plattformen

Sett opp og monter de grunnleggende Pi-komponentene med følgende trinn.

  • Brenn det siste Raspbian-bildet til SD-kortet som følger instruksjonene i veiledningen Slik blar du et SD-kort for Raspberry Pi
  • Sett inn USB-musen / tastaturet i den nedre USB-porten
  • Sett inn USB Wifi-adapteren i USB-porten. Antennen kan plasseres for å bøye seg.
  • Plugg inn HDMI-skjermen til HDMI-porten
  • Sett inn strømmen til Pi

Konfigurer Pi og Aktiver kamerastøtte

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:

  • Velg å starte opp på et skrivebord for øyeblikket, da det gjør det enklere å installere wifi senere
  • Å velge Aktiver kamera for å aktivere dette alternativet
  • Å velge Avanserte alternativer> SSH for å aktivere nettverkskommandolinjens tilgang
  • Velg ferdig og la Pi starte på nytt

Oppsett Wifi og Konfigurer Boot Preference

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.

  • Åpne et terminalvindu ved å dobbeltklikke på LXTerminal-ikonet.
  • Kjør kommandoen sudo raspi-config
  • Velg Aktiver Boot to Desktop / Scratch> Konsolltekstkonsoll, som krever innlogging (standard) alternativ
  • Å velge Bli ferdig og ikke la Pi starte på nytt
  • Slå av Pi og trekk ut strømforsyningen før du fortsetter til de neste trinnene

Monter kameramonten

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.

  • Fest kameramodulen til frontmonteringsplaten for kameraet ved hjelp av festene gjennom de fire hullene. Jeg oppdaget at det var den enkleste måten å holde fjellet og bruke nok fingre til å få disse små komponentene til å stå opp med hjelp av en hjelpende håndgir. Ikke stram mutterne helt mens du kobler dem. Når alle fire er på plass, kan du stramme etter behov.
  • Fest de to delene av kameraholderen sammen på 90 grader slik at de ser ut som produktbilder. Delene snap sammen forsiktig.

Monter Pan Tilt Bracket

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.

  • Når du fester brakene sammen, må du ikke skru boltene og skruene helt til alle delene er løst montert. Å holde den løs vil gjøre det enklere å justere.
  • Ikke skru opp skruene som kobler servohornet (hjulet) til braketten. Disse hornene er laget av myk plast, og de kan enkelt stripe ut. Stram disse skruene forsiktig.
  • Jeg fant ut at tre skiver mellom de to parentesene sett på venstre side av trinn fire i instruksjonene var den beste passformen for min montering. Disse ekstra vaskemaskinene fylte rommet og la brakettene justere seg bedre enn en enkelt vaskemaskin. Ekstra skiver leveres i settet.

Bygg basen

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.


Lego Base Close Up

Koble kameraet til Pi

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:

  • Finn kontakten direkte bak Ethernet-porten på Pi
  • Løft plastflatene på begge sider av kontakten forsiktig med to fingre
  • Øv båndkabelen slik at de eksponerte tinnledningene peker bort fra Ethernet-kontakten på brettet
  • Skyv kabelen til kontakten forsiktig slik at den passer godt og tett med brettet
  • Bruk to fingre til å skyve plastkontakten lukket

Fest kameraholderen til braketten

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.


Fest kameraholderen til dette sporet

Koble servosene til Pi

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.

  • Koble servo 0 rød strømledning til pin 2 (+ 5v), øverste høyre pinne i bildet under
  • Koble servo 0 svart jordledning til pin 6 (jord), tredje pin fra toppen i høyre kolonne
  • Koble servo 0 hvit / gul signaltråd til pin 7 (GPIO 4), 4. pin ned på venstre kolonne
  • Koble servo 1 rød strømledning til pin 4 (+ 5v), andre pin nede til høyre
  • Koble servo 1 svart jordledning til pin 14 (jord), 7. pin ned i høyre kolonne
  • Koble servo 1 hvit / gul signalledning til pin 11 (GPIO17), 6. pin ned på venstre kolonne

Connected Pins
Fullført forsamling

Installer Servoblaster

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

Send kommandoer til serverne

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 og video med kameraet

Å 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

Skriptende bevegelser og bilder

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:


Hvordan bygge en trådløs Pi-kamera Pan og Tilt Platform

Streaming Video Eksempel

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

Sammendrag

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.