Hoe een draadloos Pi-camerapaneel en tiltplatform te bouwen

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..


Verzamel de componenten

  • Raspberry Pi Model B
  • Stroomvoorziening
  • SD-kaart
  • Raspberry Pi cameramodule
  • Pan / tilt beugel
  • Twee servo's
  • Man-vrouw-vrouw draad ophangen
  • Pi-camerabevestiging
  • USB-wifi-module
  • 6-32 schroef om de houder aan de beugel te bevestigen (of wat dan ook voor u werkt, zie de instructies hieronder.)
  • Lego blokjes
  • USB-toetsenbord / muis (voor installatie.Er is slechts één USB voor beide beschikbaar.Dus wordt een combinatie van een USB-hub of een toetsenbord / muis voorgesteld.)
  • HDMI-monitor (voor instellen)

Stel het Pi-platform in

Stel de basiselementen van Pi in en installeer deze met de volgende stappen.

  • Brand de nieuwste Raspbian-afbeelding op de SD-kaart volgens de instructies in de handleiding Hoe een SD-kaart flashen voor Raspberry Pi
  • Sluit de USB-muis / het toetsenbord aan op de onderste USB-poort
  • Sluit de USB Wifi-adapter aan op de USB-poort. De antenne kan worden geplaatst om te buigen.
  • Sluit de HDMI-monitor aan op de HDMI-poort
  • Sluit de voeding van de Pi aan

Configureer de Pi en schakel Camera-ondersteuning in

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:

  • Kies ervoor om voor nu op te starten naar een desktop omdat het later wifi-instellingen eenvoudiger maakt
  • kiezen Camera inschakelen om deze optie in te schakelen
  • kiezen Geavanceerde opties> SSH om toegang tot de opdrachtregel in het netwerk in te schakelen
  • Selecteer finish en laat de Pi opnieuw opstarten

Stel Wifi in en configureer opstartvoorkeuren opnieuw

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.

  • Open een terminalvenster door te dubbelklikken op het LXTerminal-pictogram.
  • Voer het commando uit sudo raspi-config
  • Selecteer de Zet Boot to Desktop / Scratch> Console Text console aan, waarbij inloggen is vereist (standaard) keuze
  • kiezen Af hebben en laat de Pi niet opnieuw opstarten
  • Schakel de Pi uit en haal de stekker uit het stopcontact voordat u doorgaat met de volgende stappen

Monteer de camerabehuizing

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.

  • Bevestig de cameramodule op de voorplaat van de camera-houder met behulp van de bevestigingen door de vier gaten. Ik ontdekte dat het gebruik van een help-rig de eenvoudigste manier was om de steun vast te houden en genoeg vingers vrij te laten om deze kleine componenten op een rij te krijgen. Draai de moeren niet helemaal vast tijdens het aansluiten. Als ze alle vier op hun plaats zitten, kun je ze vastdraaien als dat nodig is.
  • Klik de twee delen van de camerabehuizing op 90 graden zodat ze op de productfoto's lijken. De delen klikken voorzichtig in elkaar.

Monteer de Pan Tilt Bracket

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.

  • Terwijl u de beugels aan elkaar bevestigt, draait u de bouten en schroeven niet helemaal vast totdat alle onderdelen losjes zijn gemonteerd. Als u het los houdt, kunt u het gemakkelijker aanpassen.
  • Draai de schroeven waarmee de servohoorn (wiel) is bevestigd niet te vast aan de beugel. Deze hoorns zijn gemaakt van zacht plastic en kunnen gemakkelijk worden verwijderd. Draai deze schroeven voorzichtig vast.
  • Ik ontdekte dat drie ringen tussen de twee beugels aan de linkerkant van stap vier in de instructies het best geschikt waren voor mijn montage. Deze extra vulringen vulden de ruimte en lieten de steunen beter uitlijnen dan een enkele ring. Extra ringen zijn in de set aanwezig.

Bouw de basis

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.


Legobasis close-up

Verbind de camera met de Pi

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:

  • Lokaliseer de connector direct achter de ethernetpoort op de Pi
  • Til de plastic lipjes aan beide kanten van de connector voorzichtig op met twee vingers
  • Oriënteer de lintkabel zodanig dat de onbedekte tinleidingen van de ethernetconnector op het bord wijzen
  • Schuif de kabel voorzichtig in de connector zodat deze stevig en recht op het bord past
  • Schuif de plastic connector gesloten met behulp van twee vingers

Bevestig de camerabehuizing op de beugel

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.


Bevestig de camerabevestiging aan deze sleuf

Verbind de Servo's met de Pi

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.

  • Verbind de servo 0 rode stroomdraad met pin 2 (+ 5v), bovenste rechter pin in de onderstaande afbeelding
  • Sluit de servo 0 zwarte aardingsdraad aan op pin 6 (aarde), derde pin vanaf de bovenkant op de rechterkolom
  • Sluit de servo 0 wit / gele signaaldraad aan op pin 7 (GPIO 4), 4e pin lager op de linkerkolom
  • Verbind de servo 1 rode stroomdraad met pin 4 (+ 5v), tweede pin rechts onderaan
  • Sluit de zwarte servo 1-aarddraad aan op pin 14 (aarde), 7e pin op de rechter kolom
  • Verbind de wit / gele signaaldraad van servo 1 met pin 11 (GPIO17), 6e pin omlaag in de linkerkolom

Verbonden pinnen
Voltooide vergadering

Installeer Servoblaster

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

Stuur commando's naar de Servo's

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

Maak foto's en video met de camera

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

Scripting-bewegingen en afbeeldingen

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:


Hoe een draadloos Pi-camerapaneel en tiltplatform te bouwen

Streaming videovoorbeeld

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

Samenvatting

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.