Con il rilascio del modulo della fotocamera Raspberry Pi, scattare foto di alta qualità o video, con il Pi è diventato molto semplice.
In questo tutorial, ti mostrerò come collegare il modulo fotocamera Pi al tuo Pi e controllare in modalità wireless una piattaforma pan tilt. Nel processo, tratterò argomenti che includono il collegamento del modulo fotocamera Pi, il collegamento e il controllo dei servi con il Pi, il controllo della riga di comando della telecamera e alcuni comandi di streaming video di basso livello.
Impostare e assemblare i componenti Pi di base con i seguenti passaggi.
Al momento dell'avvio, il Pi eseguirà la prima configurazione di avvio di raspi-config. Ci sono molte opzioni riguardanti la partizione della scheda SD, la regione, la tastiera, ecc. Che non sono trattate qui. Seleziona le opzioni appropriate per la tua configurazione e paga una nota speciale alle seguenti opzioni:
Dopo il riavvio di Pi su un desktop, seguire queste istruzioni su come utilizzare lo strumento GUI per configurare la rete Wi-Fi. Assicurati di annotare l'indirizzo IP che il tuo Pi è assegnato per un uso futuro quando si usa SSH per il controllo remoto. Infine, segui i passaggi seguenti per riconfigurare il Pi per avviare una console di testo. L'ambiente grafico grafico non sarà necessario.
sudo raspi-config
Il supporto per videocamera è dotato di minuscoli elementi di fissaggio in plastica che si inseriscono attraverso i quattro fori con i dadi che si avvitano su di essi dal retro. Fare riferimento alle immagini del prodotto sul sito Web del fornitore per vedere da vicino le immagini di come questi componenti combaciano.
La staffa è dotata di tre parti metalliche e un set di viti e rondelle. Seguire la guida di assemblaggio per mettere insieme la staffa. Ti offrirò alcuni suggerimenti da considerare mentre segui le istruzioni.
La staffa non si regge da sola perché è supportata solo dal piccolo servo. Qualsiasi metodo per fissare l'asse inferiore o il servo di panoramica è accettabile. Lego può essere utilizzato per creare una base facile e veloce. Prenditi del tempo per costruire una base per il servo in basso che la manterrà saldamente in posizione e consentire alla staffa di girare liberamente.
Fissare il servo nella base prima di collegare il supporto della videocamera alla base. Ciò renderà molto più semplice il collegamento della fotocamera al Pi. Puoi vedere nella foto qui sotto che sono stato in grado di costruire un semplice supporto di base usando un set di Lego piatto e due alte pareti in mattoni con uno spacco largo a due prigioni. Perno è il termine ufficiale per i dossi su un mattoncino Lego secondo il sito web di Lego. Il vocabolario accurato è importante qui.
Il processo per connettere il modulo della videocamera è molto semplice. C'è un video dettagliato con le istruzioni sulla pagina ufficiale del modulo fotocamera Raspberry Pi. Riassumerò i passaggi qui:
Usando la vite 6-32, avvitare il foro di montaggio nel supporto della telecamera nella staffa. Utilizzare la fessura più piccola nella staffa per fissare la fotocamera vicino alla parte anteriore piuttosto che al grande foro centrale. Ho usato il 6-32 perché dopo molte prove ed errori ho scoperto che non avevo una combinazione di dadi / bulloni abbastanza piccola e in un ultimo sforzo per evitare un viaggio nel negozio di ferramenta ho provato alcune viti del telaio del PC che avevo messo in giro . È successo infilarsi perfettamente nella parte superiore della staffa e non ha richiesto un bullone. Quindi fai ciò che funziona per te.
I servi hanno tre fili per il collegamento a un controller. I fili rosso, nero e bianco servono per collegare rispettivamente potenza, massa e segnale. Per queste istruzioni farò riferimento al servo di controllo in basso o in pan come servo 0 e al servo di controllo in alto o tilt come servo 1. Questa distinzione è importante e diventerà più chiara nella sezione Servoblaster del tutorial. Il diagramma di pinout su elinux.org ha dei dettagli sui perni e sui loro scopi. L'immagine sotto mostra i ponticelli M / F colorati collegati ai pin corretti per questo tutorial.
Per il montaggio, collegare l'estremità maschio del ponticello al cablaggio del servo femmina per ciascuno dei tre colori, rispettivamente. Dato che il mio jumper pack non aveva il bianco, usavo il giallo. Usa un colore coerente nel tuo schema per assicurarti di non confondere le funzioni.
Ora che l'hardware è tutto assemblato e connesso, è necessario il software per controllare il servo. Il sito github di servoblaster ha una buona documentazione sul software se vuoi saperne di più.
In sostanza, l'installazione di servoblaster aggiunge uno script init per avviare il processo servoblaster all'avvio. Il processo servoblaster crea a / Dev / servoblaster
entrata che quando indirizzata controlla correttamente il segnale PWM che controlla la posizione del servomotore. Dalla console Pi o dalla sessione SSH, eseguire i comandi seguenti per scaricare e installare il software.
wget https://github.com/richardghirst/PiBits/zipball/master mv master pibits.zip unzip pibits.zip #unzip il codice cd richardghirst-PiBits-ab34d81 / ServoBlaster / utente sudo make install #install il software #change timeout da Da 2000 a 500 /etc/init.d/servoblaster sudo pico /etc/init.d/servoblaster sudo reboot
Dopo che il Pi è stato riavviato con il processo servoblaster ora in esecuzione, è possibile provare alcuni comandi per spostare la parentesi. SSH nel tuo Pi e prova i comandi sottostanti.
Il seguente comando sposta il pan o il servo dell'asse sinistro / destro, servo 0. Sostituisci X con un valore compreso tra 60 e 240. Questo farà muovere il servo in giro. Prova alcuni valori diversi.
echo 0 = X> / dev / servoblaster
Il seguente comando sposterà il servo di inclinazione o su / giù, servo 1. Sostituisci Y con un valore compreso tra 60 e 240. Questo farà muovere il servo in giro. Prova alcuni valori diversi.
echo 1 = Y> / dev / servoblaster
Fotografare con il Pi è molto semplice. Prova il comando seguente per scattare una foto sul file denominato output.jpg. Dovrai scpare il file dal Pi al tuo computer per vederlo, ma ottieni l'immagine.
raspistill -o output.jpg
Per fare un video, il comando di base è anche abbastanza semplice. Di seguito viene creato un file video con codifica h264 della durata di 10000 millisecondi o 10 secondi. Ancora una volta, è necessario scp per copiare questo dal Pi e visualizzarlo.
raspivido -o video.h264 -t 10000
Ora che hai le basi per spostare la videocamera tramite la staffa di panoramica / inclinazione e i servi così come i comandi per scattare le foto, è piuttosto semplice scrivere uno script che sposterà la fotocamera su angoli predefiniti e catturerà immagini o immagini. Se si imposta apache sul Pi, è possibile rilasciare queste immagini o video nel / Var / www /
directory per la visione successiva.
È anche possibile creare un'attività cron per eseguire lo script a intervalli periodici. Hai tutte le basi per un progetto di osservazione di animali o natura. Di seguito è riportato uno script di esempio che ho scritto per testare il progetto e un video del sistema in azione.
#! / bin / bash #go per avviare possition echo 0 = 60> / dev / servoblaster sleep 1 echo 1 = 135> / dev / servoblaster sleep 1 raspistill -o step1.jpg echo 0 = 240> / dev / servoblaster sleep 1 raspistill -o step2.jpg echo 0 = 130> / dev / servoblaster sleep 1 raspistill -o step3.jpg echo 0 = 60> / dev / servoblaster sleep 1 echo 1 = 60> / dev / servoblaster sleep 1 raspistill -o step4. jpg echo 1 = 140> / dev / servoblaster sleep 1 raspistill -o step5.jpg echo 1 = 220> / dev / servoblaster sleep 1 raspistill -o step6.jpg echo 1 = 135> / dev / servoblaster sleep 1 raspistill -o step7 .jpg
Il video mostra la staffa di panoramica / inclinazione che risponde allo script sopra:
Le immagini fisse sono divertenti, ma nel prossimo esperimento sarai in grado di riprodurre video in streaming dalla videocamera al tuo computer attraverso la rete. A seconda della velocità della tua rete Wi-Fi, la qualità può variare. Ho usato un computer Linux come destinazione o ricevitore video. Mplayer e Netcat esistono sia per Windows che per OS X, tuttavia alcune sintassi possono variare a seconda dei sistemi operativi. Usa ifconfig, ipconfig o ipconfig per determinare il tuo indirizzo IP su Linux, Windows o OS X rispettivamente. In questo esempio 192.168.1.100 è l'indirizzo del portatile di destinazione.
Il comando seguente ascolterà sul computer di destinazione per il video in arrivo sulla porta 5001 e lo visualizzerà:
nc -k -l 192.168.1.100 5001 | mplayer -fps 31 -cache 1024 -
Il comando seguente inizierà a registrare video sul Pi e lo trasmetterà al computer di visualizzazione di destinazione:
raspivid -t 100000 -o - | nc 192.168.1.100 5001 &
Il & al termine del comando sul Pi rilascia le istruzioni sullo sfondo in modo da poter utilizzare il terminale aperto per impartire comandi di movimento. Prova alcuni comandi servo come quelli qui sotto e guarda come risponde il video.
echo 0 = 60> / dev / servoblaster echo 1 = 60> / dev / servoblaster echo 1 = 140> / dev / servoblasterMancia: L'emissione di comandi ai servo che li facessero funzionare entrambi allo stesso tempo ha causato qualche instabilità della rete per me. Per risultati migliori, potrebbe essere necessario un alimentatore esterno da 5 V per non sovraccaricare il Pi.
Congratulazioni! Ora disponi di una fotocamera wireless, panoramica / inclinabile che puoi scrivere e modificare per le tue esigenze specifiche. Come passo successivo, potresti provare ad ottimizzarlo costruendo un case full lego per Pi e la staffa insieme. Un altro esercizio potrebbe essere quello di impostare un cron job per scattare foto in determinati orari e indicazioni e inviarle via email.
Questo tutorial ti ha insegnato le basi su come collegare e configurare il modulo fotocamera Pi, come connettere e controllare più servi, come prendere il controllo da riga di comando della fotocamera per immagini fisse e video e infine come testare la tua configurazione con alcuni bassi comandi di streaming video di livello. Con questi strumenti di base ora puoi aggiungere una versatile piattaforma per fotocamera ai tuoi progetti futuri.