Napravite mrežno sigurnosnu kameru za pomicanje i naginjanje s malinom Pi

  • William Charles
  • 0
  • 4067
  • 1186
Oglas

Naučite kako napraviti malu vidljivu tavu i nagnuti sigurnosnu kameru s Raspberry Pi. Ovaj se projekt može dovršiti ujutro, uz samo najjednostavnije dijelove. Evo krajnjeg rezultata:

Što trebaš

  • Raspberry Pi 2 ili 3 s Micro SD karticom
  • Arduino UNO ili slično
  • 2 x mikro ili mini hobi servo uređaji
  • USB web kamera
  • Muški do muški spoj
  • Žice za muško i žensko spajanje
  • Izvrsne kravate

Izgradnja sigurnosne kamere

Pričvrstite servo rog (malo plastike “oblika”) na svaki servo pomoću isporučenog vijka. Konkretni oblik zapravo nije važan, iako što je veći, to je bolji. Nemojte previše zategnuti vijak.

Sada koristite zip kravate da jedan servo pričvrstite na drugi pod pravim kutom. Jedna od njih bit će pomicana (slijeva udesno), dok će druga biti nagnuta (gore i dolje). Nije važno tko radi što, može se prilagoditi u kodu.

Na kraju, priložite svoju web kameru na jedan od servo uređaja. Možete upotrijebiti zip-kravate za to, iako je moja web kamera dolazila s kopčom zašiljenom na dnu - skinula sam je i pomoću vijaka držala za rog. Za stabilnost možda želite montirati cijelu opremu na kućište ili kutiju. Jednostavna kartonska kutija čini trik vrlo lijepo. Možete izrezati urednu kvadratnu rupu i montirati jedan servo prirubljivač na površinu, no spojnica sa zadrgom bit će dovoljna.

Riječ o web-kamerama

Nisu sve USB web kamere stvorene jednako. Spojite svoju web kameru na USB priključak vašeg Pi i pokrenite ovu naredbu:

lsusb

Ova naredba prikazuje podatke o svim USB uređajima koji su spojeni na Pi. Ako vaša web kamera nije ovdje navedena, možda biste trebali isprobati napajan USB čvorište i ponavljanje naredbe. Ako web kamera još uvijek nije prepoznata, možda ćete morati kupiti kompatibilnu web kameru.

Postavljanje servo

Iako servosupi izgledaju zastrašujuće i složeni, povezivanje ih je zaista vrlo jednostavno. Servovi djeluju na modulaciju širine impulsa (PWM), što je način da digitalni sustavi oponašaju analogne signale. PWM signali su u osnovi brz ON / OFF signal. Signal koji je uključen ili visok je opisan radnim ciklusom. Radni ciklus izražen je u postocima i opisuje koliko dugo je signal UKLJUČEN. PWM signal od 25% radnog ciklusa bit će UKLJUČEN 25% vremena, a OFF za preostalih 75%. Na početku signal nije UKLJUČEN, a zatim isključen zauvijek, redovito pulsira u vrlo kratkom vremenu.

Servovi slušaju ove pulseve i djeluju u skladu s tim. Korištenje radnog ciklusa od 100% bilo bi isto “redovan” 5v, a 0% bi bilo isto što i tlo. Ne brinite ako u potpunosti ne razumijete kako funkcionira PWM, još uvijek možete kontrolirati servo (Extreme Electronics je dobro mjesto za učenje više).

Postoje dva glavna načina korištenja PWM - hardverski ili softverski. Hardverski PWM često pruža niže latencije (koliko dugo između servoa koji primaju naredbu i kreće se) od softverskog PWM-a, no Pi ima samo jedan hardverski PWM pin. Vanjski sklopovi dostupni su za isporuku više kanala hardverskog PWM-a, no jednostavan Arduino se također može nositi sa zadatkom jer imaju više hardverskih PWM-a.

Evo kruga:

Dvaput provjerite pinout za vaš Pi, oni se malo razlikuju od modela. Morate shvatiti kako su vaši servovodi ožičeni. Za servose su potrebne tri žice za upravljanje, no boje se malo razlikuju:

  • Crvena je pozitivna, povežite je s Pi + 5v
  • Smeđa ili crna je negativna, povežite je s GND-om na Pi
  • Narančasta ili bijela je signal, spojite to na Arduino igle 9 i 10

Postavljanje Arduino-a

Novo ste za Arduino? Započnite ovdje Prvi koraci s Arduinom: Vodič za početnike Početak rada s Arduinom: Vodič za početnike Arduino je platforma za prototiranje elektronike otvorenog koda koja se temelji na fleksibilnom hardveru i softveru koji se lako koriste. Namijenjen je umjetnicima, dizajnerima, hobistima i svima koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja. .

Nakon što su servospojevi povezani, otvorite Arduino IDE na računalu i prenesite ovaj testni kôd. Ne zaboravite odabrati ispravnu ploču i priključak Alati> Ploča i Alati> Luka izbornici

#include // Uvezi biblioteku Servo servoPan, servoTilt; // Stvori servo objekte int servoMin = 20, servoMax = 160; // Definirajte granice servos void setup () // Postavljanje servosa na igle koje omogućuju PWM servoPan.attach (9); servoTilt.attach (10);  void petlje () for (int i = servoMin; i  servoMin; --i) // Premjestite servo s maksimalnog na minimalni servoPan.write (i); servoTilt.write (i); kašnjenja (100); // Pričekajte 100ms

Kad bi bilo dobro, trebali biste vidjeti kako se servovodi polako kreću naprijed-natrag. Primjetite kako “servoMin” i servoMax” definirani su kao 20 i 160 stupnjeva (umjesto 0 i 180). To je dijelom zato što ovi jeftini servo uređaji ne mogu precizno pomicati punih 180 stupnjeva, a također zbog fizičke veličine web kamere onemogućava korištenje cijelog raspona. Možda ćete ih trebati prilagoditi svojim postavkama.

Ako ne rade uopće, dvaput provjerite je li strujni kabel pravilno spojen. Paneli za kruh ponekad se mogu razlikovati i po kvaliteti, stoga razmislite o investiranju u multimetar.

Servovi su skoro prejaki da bi Arduino mogao napajati pa će ih napajati Pi. 5V šina na Pi ograničena je na 750mA koja je osigurana cijelom Pi, a Pi vuče približno 500mA, ostavljajući 250mA za servo uređaje. Ti mikro servoi izvlače oko 80mA, što znači da bi Pi trebao biti u stanju podnijeti dva od njih. Ako želite koristiti više servo-motora ili veće modele sa jačim pogonom, možda će vam trebati koristiti vanjski izvor napajanja.

Sada prenesite sljedeći kôd u Arduino. Ovo će slušati ulazne serijske podatke (serijski kao u Universal-u Serijski Bus ili USB). Pi će poslati ove podatke preko USB-a Arduinu, govoreći mu gdje treba prebaciti servo.

#include // Uvezi biblioteku Servo servoPan, servoTilt; // Stvori servo objekt String data = ""; // Spremanje dolaznih naredbi (međuspremnika) void setup () // Postavljanje servosa na igle koje omogućuju PWM servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Pokreni serijski brzinom od 9600 bps (brzina) void petlje () while (Serial.available ()> 0) // Ako postoje podaci char singleChar = Serial.read (); // Pročitajte svaki znak ako (singleChar == 'P') // Pomicanje pan servo servoPan.write (data.toInt ()); data = ""; // Izbriši međuspremnik else if (singleChar == 'T') // Premjesti nagib servo servoTilt.write (data.toInt ()); data = ""; // Izbriši međuspremnik else data + = singleChar; // Dodati nove podatke

Ovaj kôd možete testirati otvaranjem serijskog monitora (gore desno> Serijski monitor) i slanje nekih podataka o testiranju:

  • 90P
  • 0 p
  • 20T
  • 100t

Primijetite format naredbi - vrijednost, a zatim slovo. Vrijednost je položaj servo-a, a slovo (u velikim slovima) određuje servo s nagibom ili nagibom. Kako se ovi podaci serijski prenose s Pi-a, svaki znak dolazi jedan po jedan. Arduino mora “dućan” ove dok se ne prenese cijela naredba. Završno pismo ne samo da precizira servo, već daje i Arduinu do znanja da u ovoj naredbi nema više podataka.

Konačno, odspojite Arduino od računala i priključite ga u Raspberry Pi putem uobičajene USB priključnice.

Postavljanje Pi

Sada je vrijeme za postavljanje Pi-a. Prvo, instalirajte operativni sustav Kako instalirati operativni sustav na Raspberry Pi Kako instalirati operativni sustav na Raspberry Pi Evo kako instalirati OS na svoj Raspberry Pi i kako klonirati savršenu postavku za brzi oporavak od katastrofe. , Spojite web kameru i Arduino na Pi USB.

Ažurirajte Pi:

sudo apt-get update nadograditi sudo apt-get nadogradnju

Instalirajte pokret:

sudo apt-get instalacija pokreta

Motion je program napravljen za obradu web streaminga. Upravlja svim teškim podizanjem, pa čak može izvoditi snimanje i otkrivanje pokreta (pokušajte izgraditi sigurnosni sustav za snimanje pokreta Izgradite sigurnosni sustav za snimanje pokreta pomoću Raspberry Pi Izgradite sigurnosni sustav za snimanje pokreta pomoću Raspberry Pi-a od mnogih projekata koje možete graditi s malinom Pi, jedan od najzanimljivijih i trajno korisnih je sigurnosni sustav za snimanje pokreta.). Otvorite datoteku za konfiguraciju pokreta:

sudo nano /etc/motion/motion.conf

Ova datoteka nudi puno opcija za konfiguriranje pokreta. Postavljanje na sljedeći način:

  • daemon on - Pokrenite program
  • Brzina slike: 100 - Koliko okvira ili slika u sekundi
  • stream_localhost isključen - Omogućuje pristup putem mreže
  • širina 640 - širina videozapisa, prilagodite za svoju web kameru
  • visina 320 - visina videozapisa, podesite za svoju web kameru
  • stream_port 8081 - Luka za izlaz video zapisa u
  • output_picture off - Ne spremajte nijednu sliku

Ovo je prilično velika datoteka, pa je možda želite koristiti CTRL + W za traženje linija. Nakon završetka pritisnite CTRL + X a zatim potvrdite za spremanje i izlaz.

Sada uredite još jednu datoteku:

sudo nano / itd. / zadani / pokret

Set “start_motion_daemon = yes”. Ovo je potrebno za osiguravanje pokretanja pokreta.

Sada saznajte svoju IP adresu:

ifconfig

Ova naredba pokazat će detalje mrežne veze za Pi. Pogledajte drugi redak, inet adr. Možda želite postaviti statičku IP adresu (što je statički IP? Što je statična IP adresa? Evo zašto vam ne treba jedna Što je statična IP adresa? Evo zašto vam ne treba jedan ruter dodijeljen IP adrese se povremeno mijenjaju, dok statičke IP adrese to ne čine. Evo zašto vam ih zaista ne treba.), ali za sada upišite ovaj broj.

Sada pokrenite Motion:

sudo usluga pokreta pokreta

Možete zaustaviti ili ponovo pokrenuti Motion promjenom “početak” do “Stop” ili “ponovno pokretanje”.

Prebacite se na računalo i od web preglednika prijeđite na pi:

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

Gdje je xxx.xxx.x.xx Pi Pi adresa. Dvotočka iza koje slijedi broj je priključak koji je postavljen ranije. Da ste dobro, trebali biste vidjeti i stream sa vaše web kamere! Pokušajte se kretati i vidjeti kako stvari izgledaju. Možda ćete trebati prilagoditi postavke svjetline i kontrasta u config datoteci. Možda ćete trebati fokusirati web kameru - neki modeli imaju mali prsten za fokus oko objektiva. Okrećite dok slika nije najoštrija.

Natrag na Pi, stvorite mapu i pomaknite se u nju:

mkdir sigurnost-cam cd sigurnosna kamera /

Sada instalirajte Twisted:

sudo apt-get install python-upletena

Twisted je web poslužitelj napisan na Pythonu, koji će slušati naredbe i tada djelovati u skladu s tim.

Nakon instaliranja, stvorite Python skriptu za izvršavanje naredbi (premjestite servo).

sudo nano servos.rpy

Uočite kako je proširenje datoteke “.rpy” umjesto “py”. Evo koda:

# Uvoz potrebnih datoteka uvozi serijski s twisted.web.resource uvoz Resursa # Postavljanje Arduino ispravnom brzinom probajte: arduino = serial.Serial ('/ dev / ttyUSB0', 9600) osim: arduino = serial.Serial ('/ dev / ttyUSB1 ', 9600) klasa MoveServo (Resurs): isLeaf = Istina def render_GET (samo, zahtjev): probajte: # pošaljite vrijednost serijski Arduino arduino.write (request.args [' value '] [0]) return' Uspjeh 'osim: vrati izvor' Failure '= MoveServo ()

Sada pokrenite webserver:

sudo twistd -n web -p 80 - put / kuća / pi / sigurnosna kamera /

Ostavimo ga da razbije - “-p 80” određuje port (80). Ovo je zadani ulaz za web stranice. “-staza / dom / pi / sigurnosna kamera /” kaže Twistedu da pokrene poslužitelj u specificiranom direktoriju. Ako unesete bilo kakve promjene u skripte unutar “sigurnost-cam” mapu koja će vam trebati za ponovno pokretanje poslužitelja (CTRL + X zatvoriti, a zatim ponovo pokrenuti naredbu).

Sada napravite web stranicu:

sudo nano index.html

Evo koda web stranice:

   Iskoristite DIY sigurnosnu kameru #container / * usredsredite sadržaj * / margin: 0 auto; poravnavanje teksta: središte;      

Eno ga. Vaš vlastiti mrežni fotoaparat za pomicanje i nagibanje. Ako želite svoju web kameru izložiti internetu, ne zaboravite uzeti u obzir opasnosti 5 opasnosti koje treba razmotriti prilikom usmjeravanja kućnih sigurnosnih kamera 5 opasnosti koje treba razmotriti prilikom usmjeravanja vaših kućnih sigurnosnih kamera Važno je pažljivo razmotriti mjesto na kojem postavljate svoje kamere i što dijelove svog doma na koje ih upućujete. Čuvanje stvari je važno, ali isto tako i održavanje vaše privatnosti. - a zatim pogledajte u prosljeđivanje luka Što je prosljeđivanje porta i kako mi može pomoći? [MakeUseOf objašnjava] Što je prosljeđivanje porta i kako mi može pomoći? [MakeUseOf objašnjava] Plačete li malo unutra kad vam netko kaže da postoji problem s prosljeđivanjem luka i da zbog toga vaša sjajna nova aplikacija neće raditi? Xbox vam neće dopuštati igranje igrica, torrent vas odbija ... pa vaš usmjerivač zna kamo poslati dolazne zahtjeve. Možete dodati vanjsko napajanje 3 baterije baterije Raspberry Pi za prijenosne projekte 3 Baterije Raspberry Pi za prijenosne projekte Raspberry Pi baterija može napraviti obični Pi u prijenosnom računalu. Za početak će vam trebati jedno od ovih baterijskih rješenja. i Wi-Fi adapter za stvarno prijenosni uređaj.

Jeste li napravili nešto cool s web kameru i pi? Javite mi u komentarima, volio bih vidjeti!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.