Annuncio pubblicitario

Scopri come realizzare una telecamera di sicurezza panoramica e inclinazione visualizzabile in remoto con un Raspberry Pi. Questo progetto può essere completato in una mattina con solo le parti più semplici. Ecco il risultato finale:

Quello di cui hai bisogno

  • Raspberry Pi 2 o 3 con scheda Micro SD
  • Arduino UNO o simile
  • 2 x micro o mini servi per hobby
  • Webcam USB
  • Fili di collegamento da maschio a maschio
  • Fili di collegamento da maschio a femmina
  • Cravatte con zip assortite

Costruire la telecamera di sicurezza

Attaccare un servo corno (le piccole "forme" di plastica) a ciascun servo usando la vite fornita. La forma particolare non ha importanza, anche se più grande è, meglio è. Non stringere eccessivamente la vite.

Ora usa le fascette per fissare un servo all'altro ad angolo retto. Uno di questi sarà una panoramica (da sinistra a destra), mentre l'altro sarà inclinazione (su e giù). Non importa chi fa cosa, può essere regolato nel codice.

Servo-Hardware

Infine, collega la tua webcam a uno dei servi. Per questo potresti usare le fascette, anche se la mia webcam è stata fornita con una clip avvitata sul fondo: l'ho rimossa e ho usato la vite per tenerla sul corno. Per stabilità, potresti voler montare l'intero rig su una custodia o una scatola. Una semplice scatola di cartone fa il trucco abbastanza bene. Potresti tagliare un buco quadrato pulito e montare un servo a filo sulla superficie, tuttavia sarà sufficiente una fascetta.

instagram viewer

Pi-Pan-Tilt-Camera

Una parola sulle webcam

Non tutte le webcam USB sono create allo stesso modo. Collega la tua webcam alla porta USB del tuo Pi ed esegui questo comando:

lsusb

Questo comando visualizza informazioni su tutti i dispositivi USB collegati al Pi. Se la tua webcam non è elencata qui, potresti provare un hub USB alimentato e ripetere il comando. Se la webcam non viene ancora riconosciuta, potrebbe essere necessario acquistare a webcam compatibile.

Servo Setup

Mentre i servi possono sembrare spaventosi e complessi, sono davvero abbastanza semplici da collegare. I servi funzionano su Pulse Width Modulation (PWM), che è un modo per i sistemi digitali di imitare i segnali analogici. I segnali PWM sono essenzialmente un segnale ON - OFF rapido. Un segnale che è ON o HIGH è descritto usando il duty cycle. Il duty cycle è espresso in percentuale e descrive per quanto tempo il segnale è attivo. Un segnale PWM del duty cycle del 25% sarà ON per il 25% delle volte e OFF per il restante 75%. Il segnale non è acceso all'inizio e quindi spento per sempre, viene pulsato regolarmente per un periodo di tempo molto breve.

I servi ascoltano questi impulsi e agiscono di conseguenza. L'uso di un ciclo di lavoro del 100% sarebbe lo stesso di 5v “normale” e lo 0% sarebbe lo stesso del terreno. Non preoccuparti se non capisci come funziona PWM, puoi comunque controllare i servi (Extreme Electronics è un buon posto per saperne di più).

Esistono due modi principali per utilizzare PWM: hardware o software. L'hardware PWM spesso fornisce una latenza inferiore (per quanto tempo tra il servo riceve il comando e si sposta) rispetto al software PWM, tuttavia il Pi ha un solo pin hardware PWM. Circuiti esterni sono disponibili per fornire più canali di PWM hardware, tuttavia un semplice Arduino può anche gestire l'attività, poiché hanno più pin PWM hardware.

Ecco il circuito:

Pi-Servo-Connection

Ricontrolla il pinout per il tuo Pi, variano leggermente tra i modelli. Devi capire come sono cablati i tuoi servi. I servi richiedono tre fili per controllarli, tuttavia i colori variano leggermente:

  • Il rosso è positivo, collegalo a Pi + 5v
  • Marrone o nero è negativo, collegalo a GND sul Pi
  • Arancione o bianco è segnale, collegalo ai pin Arduino 9 e 10

Installazione di Arduino

Nuovo su Arduino? Inizia qui Introduzione ad Arduino: una guida per principiantiArduino è una piattaforma di prototipazione elettronica open source basata su hardware e software flessibili e di facile utilizzo. È destinato ad artisti, designer, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi. Leggi di più .

Una volta collegati i servi, apri l'IDE Arduino sul tuo computer e carica questo codice di prova. Non dimenticare di selezionare la scheda e la porta corrette da Strumenti> Scheda e Strumenti> Porta menu

#includere // Importa la libreria Servo servoPan, servoTilt; // Crea oggetti servo. int servoMin = 20, servoMax = 160; // Definisce i limiti di servos void setup () {// Setup servos su pin compatibili con PWM servoPan.attach (9); servoTilt.attach (10); } void loop () {for (int i = servoMin; i  servoMin; --i) {// Sposta i servi dal massimo al minimo servoPan.write (i); servoTilt.write (i); ritardo (100); // Attendi 100 ms} }

Tutto bene dovresti vedere entrambi i servi che si muovono lentamente avanti e indietro. Notare come "servoMin" e servoMax "sono definiti come 20 e 160 gradi (anziché 0 e 180). Ciò è in parte dovuto al fatto che questi servi economici non sono in grado di spostarsi con precisione di 180 gradi, e anche a causa delle dimensioni fisiche della webcam impedisce l'utilizzo dell'intera gamma. Potrebbe essere necessario modificarli per la configurazione.

Se non funzionano affatto, ricontrollare che il circuito sia cablato correttamente. A volte anche le breadboard possono variare in termini di qualità, quindi verifica di investire in un multimetro.

I servi lo sono quasi troppo potente per essere alimentato da Arduino, quindi saranno alimentati dal Pi. La rotaia 5v sul Pi è limitato a 750mA fornito all'intero Pi e il Pi assorbe circa 500mA, lasciando 250mA per il servi. Questi micro servi assorbono circa 80 mA, il che significa che Pi dovrebbe essere in grado di gestirne due. Se si desidera utilizzare più servi o modelli più grandi e di potenza superiore, potrebbe essere necessario utilizzare un alimentatore esterno.

Ora carica il seguente codice su Arduino. Questo ascolterà i dati seriali in arrivo (seriale come in Universal Seriale Bus o USB). Il Pi invierà questi dati tramite USB ad Arduino, indicandogli dove spostare i servi.

#includere // Importa la libreria Servo servoPan, servoTilt; // Crea oggetto servo. String data = ""; // Memorizza i comandi in entrata (buffer) void setup () {// Setup servos su pin abilitati PWM servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Avvia seriale a 9600 bps (velocità) } void loop () {while (Serial.available ()> 0) {// Se sono presenti dati char singleChar = Serial.read (); // Leggi ogni carattere if (singleChar == 'P') {// Sposta pan servo servoPan.write (data.toInt ()); data = ""; // Cancella buffer} else if (singleChar == 'T') {// Sposta servoTilt.write tilt (data.toInt ()); data = ""; // Cancella buffer} else {data + = singleChar; // Aggiungi nuovi dati}} }

Puoi testare questo codice aprendo il monitor seriale (in alto a destra> Monitor seriale) e l'invio di alcuni dati di prova:

  • 90P
  • 0P
  • 20T
  • 100T

Notare il formato dei comandi: un valore e quindi una lettera. Il valore è la posizione del servo e la lettera (in maiuscolo) specifica il servo pan o tilt. Poiché questi dati vengono trasmessi dal Pi in serie, ogni personaggio ne arriva uno alla volta. L'Arduino deve "immagazzinarli" fino a quando l'intero comando non viene trasmesso. La lettera finale non specifica solo il servo, ma fa anche sapere ad Arduino che non ci sono più dati in questo comando.

Infine, disconnetti Arduino dal computer e collegalo al Raspberry Pi tramite la solita porta USB.

Pi Setup

Ora è il momento di configurare il Pi. Primo, installa un sistema operativo Come installare un sistema operativo su un Raspberry PiEcco come installare un sistema operativo sul tuo Raspberry Pi e come clonare la configurazione perfetta per un rapido ripristino di emergenza. Leggi di più . Collega la webcam e Arduino a Pi USB.

Aggiorna il Pi:

sudo apt-get update. sudo apt-get upgrade

Installa movimento:

sudo apt-get install motion

Motion è un programma creato per gestire lo streaming della webcam. Gestisce tutto il sollevamento pesante e può persino eseguire la registrazione e il rilevamento del movimento (provare costruzione di un sistema di sicurezza motion capture Costruisci un sistema di sicurezza Motion Capture usando un Raspberry PiTra i numerosi progetti che è possibile realizzare con Raspberry Pi, uno dei più interessanti e permanentemente utili è il sistema di sicurezza motion capture. Leggi di più ). Apri il file di configurazione Motion:

sudo nano /etc/motion/motion.conf

Questo file offre molte opzioni per configurare Motion. Configurare come segue:

  • daemon on - Esegue il programma
  • framerate: 100 - Quanti frame o immagini / secondo trasmettere
  • stream_localhost disattivato: consente l'accesso attraverso la rete
  • larghezza 640 - Larghezza del video, regola per la tua webcam
  • altezza 320 - Altezza del video, regola per la tua webcam
  • stream_port 8081 - La porta su cui inviare il video
  • output_picture off - Non salvare alcuna immagine

Questo è un file abbastanza grande, quindi potresti voler usarlo CTRL + W per cercare le linee. Al termine, premere CTRL + X e quindi confermare per salvare ed uscire.

Ora modifica un altro file:

sudo nano / etc / default / motion

Impostare "start_motion_daemon = yes". Ciò è necessario per garantire l'esecuzione del movimento.

Ora scopri il tuo indirizzo IP:

ifconfig

Questo comando mostrerà i dettagli della connessione di rete per il Pi. Guarda la seconda riga, inet addr. Potresti voler impostare un indirizzo IP statico (che cos'è un IP statico? Che cos'è un indirizzo IP statico? Ecco perché non ne hai bisognoUn indirizzo IP statico è uno che non cambia mai. Gli indirizzi IP dinamici cambiano. Spieghiamo perché non è necessario un indirizzo IP statico. Leggi di più ), ma per ora prendi nota di questo numero.

Ora avvia Motion:

sudo service motion start

È possibile interrompere o riavviare Motion modificando "start" in "stop" o "restart".

Passa al tuo computer e vai al Pi da un browser web:

http://xxx.xxx.x.xx: 8081

Dove xxx.xxx.x.xx è l'indirizzo IP Pi. I due punti seguiti da un numero sono la porta che è stata configurata in precedenza. Tutto bene, dovresti vedere il flusso dalla tua webcam! Prova a spostarti e guarda come appaiono le cose. Potrebbe essere necessario regolare le impostazioni di luminosità e contrasto nel file di configurazione. Potrebbe essere necessario mettere a fuoco la webcam: alcuni modelli hanno un piccolo anello di messa a fuoco attorno all'obiettivo. Ruota questo fino a quando l'immagine è più nitida.

Torna sul Pi, crea una cartella e naviga all'interno:

mkdir security-cam. cd security-cam /

Ora installa Twisted:

sudo apt-get install python-twisted

Twisted è un server web scritto in Python, che ascolterà i comandi e quindi agirà di conseguenza.

Una volta installato, crea uno script Python per eseguire i comandi (sposta i servi).

sudo nano servos.rpy

Notare come l'estensione del file è ".rpy" anziché "py". Ecco il codice:

# Importa i file necessari. seriale di importazione. da twisted.web.resource import Risorsa # Configura Arduino alla velocità corretta. prova: arduino = seriale. Seriale ('/ dev / ttyUSB0', 9600) tranne: arduino = seriale. Classe seriale ('/ dev / ttyUSB1', 9600) MoveServo (risorsa): isLeaf = True def render_GET (self, request): try: # Invia valore su seriale su Arduino arduino.write (request.args ['value'] [0]) return 'Success' tranne: return 'Failure' resource = MoveServo ()

Ora avvia il webserver:

sudo twistd -n web -p 80 --path / home / pi / security-cam /

Consente di scomporlo: "-p 80" specifica la porta (80). Questa è la porta predefinita per le pagine Web. “–Path / home / pi / security-cam /” dice a Twisted di avviare il server nella directory specificata. Se si apportano modifiche agli script all'interno della cartella "security-cam", sarà necessario riavviare il server (CTRL + X per chiudere, quindi eseguire nuovamente il comando).

Ora crea la pagina web:

sudo nano index.html

Ecco il codice della pagina web:

Utilizzare la videocamera di sicurezza fai-da-te


Cambia "PI_IP_ADDRESS" (usato due volte) nell'indirizzo IP reale del tuo Pi (raspberrypi.local dovrebbe funzionare anche se stai eseguendo l'ultimo Raspian). Riavvia il server web e poi vai al Pi dal tuo computer, non è necessario specificare la porta. Dovresti essere in grado di eseguire la panoramica a sinistra e a destra e vedere lo streaming video:

Pi-Pan-Tilt-Camera-web-View

Ecco qui. La tua videocamera di rete Pan e Tilt personale. Se vuoi esporre la tua webcam a Internet, ricordati di considerare i pericoli 5 pericoli da considerare quando si puntano le telecamere di sicurezza domesticheÈ importante considerare attentamente dove posizioni le telecamere e in quali parti della tua casa le indichi. Mantenere le cose sicure è importante, ma lo è anche mantenere la tua privacy. Leggi di più - poi guarda dentro Port forwarding Che cos'è il port forwarding e come può aiutarmi? [MakeUseOf Explains]Piangi un po 'dentro quando qualcuno ti dice che c'è un problema di port forwarding ed è per questo che la tua nuova brillante app non funzionerà? La tua Xbox non ti consente di giocare, i tuoi download torrent si rifiutano ... Leggi di più , quindi il tuo router sa dove inviare le richieste in arrivo. Potresti aggiungere un alimentatore esterno 3 pacchi batteria Raspberry Pi per progetti portatiliUna batteria Raspberry Pi può trasformare un normale Pi in un computer portatile. Per iniziare, avrai bisogno di una di queste soluzioni batteria. Leggi di più e adattatore Wi-Fi per un impianto portatile.

Hai fatto qualcosa di bello con una webcam e un Pi? Fammi sapere nei commenti, mi piacerebbe vedere!

Joe è laureato in Informatica presso l'Università di Lincoln, nel Regno Unito. È uno sviluppatore di software professionale e quando non pilota droni o scrive musica, spesso si trova a scattare foto o a produrre video.