Publicitate

Aflați cum puteți face o cameră de securitate panoramică pentru înclinare și înclinare cu un Raspberry Pi. Acest proiect poate fi finalizat într-o dimineață doar cu cele mai simple părți. Iată rezultatul final:

De ce ai nevoie

  • Zmeura Pi 2 sau 3 cu card Micro SD
  • Arduino UNO sau similar
  • 2 x servos micro sau mini hobby
  • Camera web USB
  • Cablurile de conectare de la mascul la bărbat
  • Sârmele de conectare de la mascul la feminin
  • Cravate asortate

Construirea camerei de securitate

Atașați un claxon servo (micile „forme” de plastic) la fiecare servo folosind șurubul furnizat. Forma particulară nu contează cu adevărat, deși cu cât este mai mare cu atât mai bine. Nu strângeți prea mult șurubul.

Acum folosiți legături cu fermoar pentru a atașa un servo la celălalt într-un unghi drept. Unul dintre acestea va fi pan (de la stânga la dreapta), în timp ce celălalt va fi înclinat (în sus și în jos). Nu contează care face ceea ce poate fi ajustat în cod.

Servo-hardware

În cele din urmă, atașați-vă camera web la unul dintre servos-uri. Puteți folosi legături cu fermoar pentru asta, deși camera web a venit cu o clemă înșurubată în partea de jos - am eliminat acest lucru și am folosit șurubul pentru a-l ține de claxon. Pentru stabilitate, poate doriți să montați întreaga platformă pe o cutie sau cutie. O cutie simplă de carton face trucul destul de frumos. Puteți tăia o gaură pătrată îngrijită și montați un singur serviciu la suprafață, însă o legătură cu fermoar va fi suficientă.

instagram viewer

Pi-Pan-Tilt-Camera

Un cuvânt despre webcam-uri

Nu toate camerele web USB sunt create în mod egal. Conectați camera web la portul USB al Pi și executați această comandă:

lsusb

Această comandă afișează informații despre toate dispozitivele USB conectate la Pi. Dacă camera dvs. web nu este listată aici, poate doriți să încercați un hub USB alimentat și să repetați comanda. Dacă camera web nu este încă recunoscută, este posibil să fie necesar să cumpărați o webcam compatibil.

Configurare servo

În timp ce servos-urile pot părea înfricoșătoare și complexe, acestea sunt foarte simple de conectat. Servosele funcționează cu modularea lățimii pulsului (PWM), care este o modalitate pentru sistemele digitale de a imita semnale analogice. Semnalele PWM sunt, în esență, un semnal rapid de pornire / oprire. Este descris un semnal de pornire sau de înaltă folosind ciclul de serviciu. Ciclul de serviciu este exprimat în procente și descrie pentru cât timp este pornit semnalul. Un semnal PWM de 25% ciclu de serviciu va fi pornit pentru 25% din timp, iar OFF pentru restul de 75%. Semnalul nu este pornit la început și apoi OFF pentru totdeauna, este pulsat regulat într-o perioadă de timp foarte scurtă.

Servosele ascultă aceste pulsiuni și acționează în consecință. Utilizarea unui ciclu de serviciu de 100% ar fi la fel ca 5v „obișnuit”, iar 0% ar fi la fel ca la sol. Nu vă faceți griji dacă nu înțelegeți în întregime modul de funcționare al PWM, puteți controla în continuare servos (Extreme Electronics este un loc bun pentru a afla mai multe).

Există două moduri principale de utilizare a PWM - hardware sau software. Hardware PWM oferă adesea latență mai mică (cât timp este între servo-recepționarea comenzii și mutarea) decât PWM-ul software, cu toate acestea, Pi are doar un pin hardware PWM capabil. Circuite externe sunt disponibile pentru a furniza mai multe canale de hardware PWM, cu toate acestea, un Arduino simplu se poate ocupa și de sarcină, deoarece au mai mulți pini hardware PWM.

Iată circuitul:

Pi-Servo-Connection

Verificați dublu identificarea pentru Pi, acestea variază ușor între modele. Trebuie să vă dați seama cum sunt cablurile servos. Servosele necesită trei fire pentru a le controla, însă culorile variază ușor:

  • Roșul este pozitiv, conectați-l la Pi + 5v
  • Maro sau negru este negativ, conectați-l la GND pe Pi
  • Portocaliu sau alb este semnal, conectați-l la pinii Arduino 9 și 10

Configurare Arduino

Nou pentru Arduino? Începeți aici Noțiuni introductive cu Arduino: Ghid pentru începătoriArduino este o platformă de prototipare electronică open-source bazată pe hardware și software flexibile, ușor de utilizat. Este destinat artiștilor, designerilor, pasionaților și oricui este interesat să creeze obiecte sau medii interactive. Citeste mai mult .

După ce serverele sunt conectate, deschideți ID-ul Arduino pe computer și încărcați acest cod de testare. Nu uitați să selectați placa și portul corecte din Instrumente> placă și Instrumente> Port meniuri

#include // Importați biblioteca Servo servoPan, servoTilt; // Creați obiecte servo. int servoMin = 20, servoMax = 160; // Definiți limitele servos void setup () {// Servosurile de configurare pe pinii capabili PWM servoPan.attach (9); servoTilt.attach (10); } loop void () {for (int i = servoMin; i  servoMin; --i) {// Mutați servosele de la maxim la servoPan.write minim (i); servoTilt.write (i); întârziere (100); // Așteptați 100ms} }

Toate fiind bine, ar trebui să vezi că ambele servos se deplasează încet și înapoi. Observați cum sunt definite „servoMin” și servoMax ca 20 și 160 de grade (în loc de 0 și 180). Acest lucru se datorează parțial faptului că aceste servos ieftine nu sunt capabile să miște cu exactitate cele 180 de grade complete și, de asemenea, din cauza dimensiunii fizice a camerei web împiedică utilizarea întregii game. Este posibil să fie nevoie să le ajustați pentru configurarea dvs.

Dacă nu funcționează deloc, verificați că circuitul este conectat corect. Uneori, panourile de panou pot varia, de asemenea, ca și calitate, așa că luați în considerare investițiile într-un multimetru pentru a verifica

Servosele sunt aproape prea puternic pentru Arduino la putere, astfel încât vor fi alimentate de Pi. Șina de 5v de pe Pi este limitat la 750mA furnizat întregului Pi, iar Pi-ul trage aproximativ 500mA, lăsând 250mA pentru servomecanisme. Aceste micro-servos atrag aproximativ 80mA, ceea ce înseamnă că Pi ar trebui să poată face față două dintre ele. Dacă doriți să utilizați mai multe servos sau modele mai mari, cu putere mai mare, este posibil să fie necesar să utilizați o sursă de alimentare externă.

Acum încărcați următorul cod pe Arduino. Aceasta va asculta datele seriale primite (serial ca în Universal Serial Autobuz sau USB). Pi va trimite aceste date prin USB către Arduino, spunându-i unde să mute servos-urile.

#include // Importați biblioteca Servo servoPan, servoTilt; // Creați un obiect servo. String data = ""; // Stocați comenzile de intrare (buffer) void setup () {// Servosurile de configurare pe pinii capabili PWM servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Porniți serialul la 9600 bps (viteză) } void loop () {while (Serial.available ()> 0) {// Dacă există date char singleChar = Serial.read (); // Citiți fiecare caracter dacă (singleChar == 'P') {// Move pan servo servoPan.write (data.toInt ()); date = ""; // Ștergeți tamponul} altceva dacă (singleChar == 'T') {// Mutați înclinarea servo servoTilt.write (data.toInt ()); date = ""; // Șterge buffer} else {data + = singleChar; // Adăugați date noi}} }

Puteți testa acest cod prin deschiderea monitorului serial (sus dreapta> Monitor serial) și trimiterea unor date de testare:

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

Observați formatul comenzilor - o valoare și apoi o scrisoare. Valoarea este poziția servo, iar litera (în capace) specifică servo pan sau înclinare. Pe măsură ce aceste date sunt transmise din seria Pi, fiecare personaj trece printr-o dată. Arduino trebuie să „stocheze” acestea până când întreaga comandă a fost transmisă. Scrisoarea finală nu numai că specifică servo, ci și Arduino știe că nu există mai multe date în această comandă.

În cele din urmă, deconectați-vă Arduino de la computer și conectați-l la Raspberry Pi prin conexiunea obișnuită a portului USB.

Configurare Pi

Acum este timpul să configurați Pi. Primul, instalați un sistem de operare Cum se instalează un sistem de operare pe un Raspberry PiIată cum să instalați un sistem de operare pe Raspberry Pi și cum să clonați configurarea perfectă pentru recuperarea rapidă în caz de dezastru. Citeste mai mult . Conectați camera web și Arduino la Pi USB.

Actualizați Pi:

Actualizare sudo apt-get. upgrade sudo apt-get

Instalare mișcare:

sudo apt-get motion de instalare

Motion este un program realizat pentru a gestiona streamingul de webcam. Acesta se ocupă de ridicarea grea și poate efectua chiar și înregistrarea și detectarea mișcării (încercați construirea unui sistem de securitate pentru captarea mișcărilor Construiți un sistem de securitate Motion Capture utilizând un Raspberry PiDintre numeroasele proiecte pe care le puteți construi cu Raspberry Pi, unul dintre cele mai interesante și utile în permanență este sistemul de securitate pentru captura de mișcare. Citeste mai mult ). Deschideți fișierul de configurare Motion:

sudo nano /etc/motion/motion.conf

Acest fișier oferă o mulțime de opțiuni pentru a configura Motion. Configurați după cum urmează:

  • daemon on - Rulați programul
  • framerate: 100 - Câte cadre sau imagini / secundă în flux
  • stream_localhost off - Permite accesul în rețea
  • lățime 640 - Lățimea videoclipului, ajustați pentru camera dvs. web
  • înălțime 320 - Înălțimea videoclipului, ajustați pentru camera dvs. web
  • stream_port 8081 - Portul de ieșire video la
  • output_picture off - Nu salvați nicio imagine

Acesta este un fișier destul de mare, așa că poate doriți să îl utilizați CTRL + W să caute linii. Odată terminat, apăsați CTRL + X apoi confirmați să salvați și să ieșiți.

Acum editați încă un fișier:

sudo nano / etc / default / motion

Setați „start_motion_daemon = da”. Acest lucru este necesar pentru a asigura rularea mișcării.

Aflați acum adresa dvs. IP:

ifconfig

Această comandă va arăta detaliile conexiunii de rețea pentru Pi. Uită-te la a doua linie, inet addr. Poate doriți să setați o adresă IP statică (ce este un IP static? Ce este o adresă IP statică? Iată de ce nu ai nevoie de unulO adresă IP statică este una care nu se schimbă niciodată. Adresele IP dinamice se schimbă. Vă explicăm de ce nu aveți nevoie de o adresă IP statică. Citeste mai mult ), dar deocamdată faceți o notă a acestui număr.

Acum începeți Moțiunea:

pornire mișcare serviciu sudo

Puteți opri sau reporni Motion prin schimbarea „start” în „stop” sau „repornire”.

Comutați pe computer și navigați la Pi dintr-un browser web:

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

Unde xxx.xxx.x.xx este adresa IP Pi. Punctul urmat de un număr este portul care a fost configurat mai devreme. Toate fiind bine, ar trebui să vezi fluxul de pe camera ta web! Încercați să vă deplasați și să vedeți cum arată lucrurile. Este posibil să fie nevoie să ajustați setările de luminozitate și contrast în fișierul de configurare. Este posibil să fie nevoie să focalizați camera web - unele modele au un mic inel de focalizare în jurul obiectivului. Rotiți acest lucru până când imaginea este cea mai accentuată.

Înapoi la Pi, creați un folder și navigați în acesta:

mkdir security-cam. CD de securitate-cam /

Acum instalați Twisted:

sudo apt-get install python-twisted

Twisted este un server web scris în Python, care va asculta comenzile și apoi va acționa în consecință.

Odată instalat, creați un script Python pentru a executa comenzi (mutați serverele).

sudo nano servos.rpy

Observați cum extensia fișierului este „.rpy” în loc de „py”. Iată codul:

# Importați fișierele necesare. import serial. din twisted.web.resource import Resource # Setup Arduino la viteză corectă. try: arduino = serial. Serial ('/ dev / ttyUSB0', 9600) cu excepția: arduino = serial. Serial ('/ dev / ttyUSB1', 9600) clasa MoveServo (Resource): isLeaf = True def render_GET (self, request): try: # Send value over serial la Arduino arduino.write (request.args ['valoare'] [0]) return 'Succes', cu excepția: returnare 'Eșec' resursă = MoveServo ()

Acum porniți webserver-ul:

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

Vă permite să o descompunem - „-p 80” specifică portul (80). Acesta este portul implicit pentru paginile web. „–Path / home / pi / security-cam /” îi spune lui Twisted să pornească serverul în directorul specificat. Dacă faceți modificări la scripturile din folderul „cameră de securitate”, va trebui să reporniți serverul (CTRL + X pentru a închide, apoi executați din nou comanda).

Acum creați pagina web:

sudo nano index.html

Iată codul paginii web:

Utilizați camera de securitate DIY


Schimbați „PI_IP_ADDRESS” (folosit de două ori) pe adresa IP reală a Pi-ului dvs. (raspberrypi.local ar trebui să funcționeze și dacă executați cel mai recent Raspian). Reporniți webserver-ul și apoi navigați către Pi de pe computer, fără a fi nevoie să specificați portul. Ar trebui să fiți capabil să parcurgeți stânga și dreapta și să vedeți fluxul video:

Pi-Pan-Tilt-Camera Web-View

Acolo îl ai. Camera dvs. de rețea Pan și Tilt. Dacă doriți să expuneți camera web la internet, nu uitați să ia în considerare pericolele 5 Pericol de luat în considerare atunci când îți îndreptați camerele de securitate pentru locuințeEste important să iei în considerare cu atenție locul în care îți poziționezi camerele și la ce părți ale casei tale le îndrepți. Păstrarea lucrurilor în siguranță este importantă, dar la fel este menținerea vieții private. Citeste mai mult - apoi uită-te port forwarding Ce este Port Forwarding și cum mă poate ajuta? [FaceUseOf Explică]Plângi puțin înăuntru când cineva îți spune că există o problemă de redirecționare a porturilor și de aceea aplicația ta strălucitoare nu va funcționa? Xbox-ul dvs. nu vă va permite să jucați jocuri, descărcările de torrent refuză ... Citeste mai mult , deci routerul dvs. știe unde să trimiteți cereri primite. Ai putea adăuga o sursă de alimentare externă 3 pachete de baterii Raspberry Pi pentru proiecte portabileO baterie Raspberry Pi poate transforma un Pi obișnuit într-un computer portabil. Veți avea nevoie de una dintre aceste soluții pentru baterii pentru a începe. Citeste mai mult și adaptor Wi-Fi pentru o platformă cu adevărat portabilă.

Ai făcut ceva fain cu o cameră web și un Pi? Lasă-mă să știu în comentarii, mi-ar plăcea să văd!

Joe este absolvent în informatică de la Universitatea din Lincoln, Marea Britanie. Este un dezvoltator de software profesionist, iar atunci când nu zboară drone sau scrie muzică, poate fi găsit adesea făcând fotografii sau producând videoclipuri.