Reklaam

Siit saate teada, kuidas teha Raspberry Pi abil eemalt vaadatavat panoraami ja kallutamise turvakaamerat. Selle projekti saab hommikul lõpule viia ainult kõige lihtsamatest osadest. Siin on lõpptulemus:

Mida sa vajad

  • Micro SD-kaardiga Vaarika Pi 2 või 3
  • Arduino UNO vms
  • 2 x mikro- või miniharrastusservosid
  • USB veebikaamera
  • Meeste ja meeste vahel haakimisjuhtmed
  • Meeste ja naiste vahel haakimisjuhtmed
  • Assortii lukuga

Turvakaamera ehitamine

Kinnitage iga servo külge kaasasoleva kruvi abil servo sarv (väikesed plastikujulised kujundid). Konkreetne kuju ei oma tegelikult tähtsust, ehkki mida suurem, seda parem. Ärge pingutage kruvi üle.

Nüüd kinnitage üks servo teise täisnurga all lukuga. Üks neist on panoraam (vasakult paremale), teine ​​aga kallutatav (üles ja alla). Pole vahet, kumb teeb, seda saab koodis reguleerida.

Servo-riistvara

Lõpuks kinnitage oma veebikaamera ühe servo külge. Selle jaoks võisite kasutada tõmblukke, ehkki minu veebikaameral oli põhja külge kruvitud klamber - eemaldasin selle ja hoidsin kruvi abil sarve külge kinni. Stabiilsuse tagamiseks võiksite paigaldada kogu tara korpusesse või kasti. Lihtne pappkast teeb triki üsna kenasti ära. Võite lõigata ilusa ruudukujulise augu ja paigaldada ühe servo pinnale, kuid lukuga piisab.

Pi-Pan-kallutuskaamera

Sõna veebikaamerate kohta

Kõik USB-veebikaamerad pole võrdselt loodud. Ühendage veebikaamera oma Pi USB-pordiga ja käivitage see käsk:

lsusb

See käsk kuvab teabe kõigi Pi-ga ühendatud USB-seadmete kohta. Kui teie veebikaamerat pole siin loetletud, võiksite proovida toitega USB-jaoturit ja käsu kordamist. Kui veebikaamerat ikka veel ei tuvastata, peate võib-olla ostma ühilduv veebikaamera.

Servo seadistamine

Kuigi servosid võib tunduda hirmutav ja keeruline, on neid ühendada üsna lihtne. Servod töötavad impulsslaiusmodulatsioonil (PWM), mis on digitaalsüsteemide jaoks viis analoogsignaalide jäljendamiseks. PWM-signaalid on sisuliselt kiire ON-OFF-signaal. Sisselülitatud või kõrge signaali kirjeldatakse töötsükli abil. Töötsüklit väljendatakse protsentides ja see kirjeldab, kui kaua signaal on sisse lülitatud. PWM-signaal 25% töötsükli kohta on sisse lülitatud 25% ajast ja OFF ülejäänud 75% ajast. Signaal ei ole alguses sisse lülitatud ega seejärel igavesti välja lülitatud, see lülitatakse regulaarselt väga lühikese aja jooksul sisse.

Servos kuulavad neid impulsse ja käituvad vastavalt. 100% töötsükli kasutamine oleks sama kui “tavalise” 5v korral ja 0% oleks sama kui maa peal. Ärge muretsege, kui te ei mõista täielikult PWM-i toimimist, saate ikkagi servosid juhtida (Extreme Electronics on hea koht lisateabe saamiseks).

PWMi kasutamiseks on kaks peamist viisi - riist- või tarkvara. Riistvara PWM pakub sageli madalamat latentsusaega (kui kaua käsu vastuvõtva servo ja teisaldamise vahel on) kui tarkvara PWM, kuid Pi-l on ainult üks riistvara PWM-i võimeline tihvt. Välised vooluahelad on saadaval riistvara PWM-i mitme kanali pakkumiseks, kuid ka lihtne Arduino saab selle ülesandega hakkama, kuna neil on mitu riistvara PWM-i tihvti.

Siin on vooluring:

Pi-servo-ühendus

Kontrollige uuesti oma Pi jaoks pinout, erinevad need mudelite vahel pisut. Peate välja mõtlema, kuidas teie servosid juhtmega ühendatakse. Servod vajavad nende juhtimiseks kolme juhtmest, kuid värvid varieeruvad pisut:

  • Punane on positiivne, ühendage see Pi + 5v-ga
  • Pruun või must on negatiivne, ühendage see Pi-ga GND-ga
  • Oranž või valge on signaal, ühendage see Arduino tihvtide 9 ja 10 külge

Arduino seadistamine

Kas olete uus Arduino? Alusta siit Arduino kasutamise alustamine: Algajate juhendArduino on avatud lähtekoodiga elektroonika prototüüpide platvorm, mis põhineb paindlikul, hõlpsasti kasutataval riist- ja tarkvaral. See on mõeldud kunstnikele, disaineritele, harrastajatele ja kõigile, kes on huvitatud interaktiivsete objektide või keskkondade loomisest. Loe rohkem .

Kui servosid on ühendatud, avage arvutis Arduino IDE ja laadige see testkood üles. Ärge unustage kaustast õige plaat ja port valida Tööriistad> Laud ja Tööriistad> Pordi menüüd

# kaasata // Impordi teek Servo servoPan, servoTilt; // Loo servoobjekte. int servoMin = 20, servoMax = 160; // Määratlege servo void setup piirid () {// Seadistage servosid PWM-i võimelistel tihvtidel servoPan.attach (9); servoTilt.attach (10); } void loop () {jaoks (int i = servoMin; i  servoMin; --i) {// Liiguta servosid maksimumist servoPan.write (i); servoTilt.write (i); viivitus (100); // Oodake 100ms} }

Kui kõik hästi läheb, peaksite nägema, et mõlemad servosid liiguvad aeglaselt edasi-tagasi. Pange tähele, kuidas servoMin ja servoMax on määratletud kui 20 ja 160 kraadi (0 ja 180 asemel). Osaliselt on selle põhjuseks asjaolu, et need odavad servod ei suuda täpselt 180 kraadi täis liikuda ning ka veebikaamera füüsilise suuruse tõttu takistab kogu ulatuse kasutamist. Võimalik, et peate neid oma seadistamiseks kohandama.

Kui need üldse ei tööta, kontrollige vooluringi õigesti. Leivalaudade kvaliteet võib mõnikord ka erineda, seega kaaluge kinnitamiseks multimeetrisse investeerimist.

Servosid on peaaegu liiga võimas Arduino võimu jaoks, nii et neid toidab Pi. 5v rööbas Pi peal on piiratud tervele Pi-le 750 mA-ga ja Pi tõmbab umbes 500 mA, jättes 250 mA-le servosid. Need mikroseervad tõmbavad umbes 80 mA, mis tähendab, et Pi peaks saama hakkama kahega neist. Kui soovite kasutada rohkem servosid või suuremaid suurema võimsusega mudeleid, peate võib-olla kasutama välist toiteallikat.

Laadige järgmine kood Arduinosse üles. See kuulab sissetulevaid seeriaandmeid (jadamisi nagu universaalses) Seriaal Bus või USB). Pi saadab need andmed USB kaudu Arduinole, teatades, kuhu servosid teisaldada.

# kaasata // Impordi teek Servo servoPan, servoTilt; // Loo servoobjekt. Stringi andmed = ""; // Salvesta sissetulevad käsud (puhver) void setup () {// Seadista servosid PWM-i võimelistele tihvtidele servoPan.attach (9); servoTilt.attach (10); Serial.begin (9600); // Alustage seeriat kiirusega 9600 bps } void loop () {while (Serial.avable ()> 0) {// Kui on andmeid, char singleChar = Serial.read (); // Loe iga märki, kui (singleChar == 'P') {// Teisalda servo servoPan.write (data.toInt ()); andmed = ""; // Kustuta puhver} muidu, kui (singleChar == 'T') {// Teisalda servo servoTilt.write (data.toInt ()); andmed = ""; // Puhver puhver} else {data + = singleChar; // Lisage uued andmed}} }

Seda koodi saate testida jadamonitori avamisega (paremal üleval> Serial Monitor) ja katseandmete saatmine:

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

Pange tähele käskude vormingut - väärtus ja seejärel täht. Väärtus on servo asukoht ja täht (suurtähtedega) tähistab paanilist või kallutatavat servot. Kuna neid andmeid edastatakse Pi-st järjestikku, tuleb iga märk läbi ühe korraga. Arduino peab neid "salvestama", kuni kogu käsk on edastatud. Viimane täht ei täpsusta mitte ainult servot, vaid annab Arduinole teada ka seda, et selles käsus pole rohkem andmeid.

Lõpuks ühendage oma Arduino arvutist lahti ja Ühendage see tavalise USB-pordi kaudu Raspberry Pi-ga.

Pi seadistamine

Nüüd on aeg Pi seadistada. Esiteks installige opsüsteem Kuidas installida opsüsteemi Raspberry Pi-leSiit saate teada, kuidas installida operatsioonisüsteem oma Raspberry Pi-le ja kuidas kloonida oma täiuslik seadistus kiireks taastamiseks. Loe rohkem . Ühendage veebikaamera ja Arduino Pi USB-ga.

Värskendage Pi:

sudo apt-get update. sudo apt-get upgrade

Installi liikumine:

sudo apt-get install liikumine

Motion on veebikaamera voogesituse haldamiseks loodud programm. See tegeleb kõigi raskete tõstetega ning võib isegi salvestusi ja liikumise tuvastamist teostada (proovida liikumisharude turvasüsteemi ehitamine Looge vaarikapi abil liikumissuvandi turvasüsteemPaljudest projektidest, mida saate koos Raspberry Pi-ga ehitada, on üks huvitavamaid ja püsivalt kasulikke liikumise püüdmise turvasüsteem. Loe rohkem ). Avage liikumiskonfiguratsioonifail:

sudo nano /etc/motion/motion.conf

See fail pakub Motioni konfigureerimiseks palju võimalusi. Seadistamine järgmiselt:

  • deemon sees - programmi käivitamine
  • kaadrisagedus: 100 - mitu kaadrit või pilti sekundis voogesitada
  • stream_localhost off - juurdepääsu lubamine kogu võrgus
  • laius 640 - video laius, kohandage oma veebikaamera jaoks
  • kõrgus 320 - video kõrgus, kohandage oma veebikaamera jaoks
  • stream_port 8081 - video väljundport
  • output_picture väljas - ärge salvestage ühtegi pilti

See on üsna suur fail, nii et võiksite seda kasutada CTRL + W ridade otsimiseks. Kui olete lõpetanud, vajutage nuppu CTRL + X ja kinnitage siis salvestamiseks ja väljumiseks.

Muutke nüüd veel ühte faili:

sudo nano / etc / default / motion

Valige „start_motion_daemon = jah”. See on vajalik Motioni kulgemise tagamiseks.

Nüüd saate teada oma IP-aadressi:

ifconfig

See käsk näitab Pi võrguühenduse üksikasju. Vaata teist rida, inet addr. Võib-olla soovite seada staatilise IP-aadressi (mis on staatiline IP? Mis on staatiline IP-aadress? Siit saate teada, miks te seda ei vajaStaatiline IP-aadress on see, mis kunagi ei muutu. Dünaamilised IP-aadressid muutuvad. Selgitame, miks te ei vaja staatilist IP-aadressi. Loe rohkem ), kuid tehke see number nüüd üles.

Nüüd alustage liikumist:

sudo teenuse liikumise algus

Liikumise saate peatada või taaskäivitada, muutes “start” asendisse “stop” või “restart”.

Lülitage oma arvuti ümber ja liikuge veebibrauserilt Pi-le:

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

Kus xxx.xxx.x.xx on Pi IP-aadress. Käärsool, millele järgneb arv, on port, mis oli varem seadistatud. Kuna kõik on hästi, peaksite oma veebikaamera voogu nägema! Proovige ringi liikuda ja vaadake, kuidas asjad välja näevad. Võimalik, et peate heleduse ja kontrasti sätteid kohandama konfiguratsioonifailis. Võimalik, et peate veebikaamera fokuseerima - mõnel mudelil on objektiivi ümber väike fookusrõngas. Pöörake seda, kuni pilt on kõige teravam.

Tagasi Pi peal looge kaust ja liikuge selles:

mkdir turvakaamera. cd turvakaamera /

Nüüd installige Twisted:

sudo apt-get install python-twisted

Twisted on Pythonis kirjutatud veebiserver, mis kuulab käske ja tegutseb vastavalt.

Pärast installimist looge käskude täitmiseks Pythoni skript (liigutage servosid).

sudo nano servos.rpy

Pange tähele, kuidas faililaiend on "py" asemel ".rpy". Siin on kood:

# Importige vajalikud failid. impordi seeria. saidilt twisted.web.resource import Allikas # Arduino seadistamine õige kiirusega. proovige: arduino = jada. Seriaal ('/ dev / ttyUSB0', 9600) välja arvatud: arduino = seeriaviisiline. Järjestikune ('/ dev / ttyUSB1', 9600) klass MoveServo (ressurss): isLeaf = True def render_GET (ise, taotlus): proovige: # Saada väärtus üle seeria Arduinole arduino.write (request.args ['väärtus'] [0]) tagastab 'Edu', välja arvatud: tagastama 'Rike' ressurss = MoveServo ()

Nüüd käivitage veebiserver:

sudo twistd -n web -p 80 - tee / kodu / pi / turvakaamera /

Võimaldab selle murda - “-p 80” määrab pordi (80). See on veebilehtede vaikimisi port. “–Path / home / pi / security-cam /” käsib Twistedil käivitada server määratud kataloogis. Kui teete muudatusi skriptides kaustas „security-cam”, peate serveri taaskäivitama (CTRL + X sulgemiseks, siis käivitage käsk uuesti).

Nüüd looge veebileht:

sudo nano index.html

Siin on veebilehe kood:

Kasutage DIY turvakaamerat


Muutke „PI_IP_ADDRESS” (kaks korda kasutatud) oma Pi tegelikuks IP-aadressiks (vaarikaspi.lokaalne peaks töötama ka siis, kui kasutate uusimat Raspianit). Taaskäivitage veebiserver ja liikuge seejärel arvutist Pi-le, pole vaja pordi täpsustada. Teil peaks olema võimalik vasakule ja paremale panoraamida ning videovoogu näha:

Pi-Pan-kallutage-kaamera-veebivaade

Seal sul see on. Teie enda Pan-Tilt võrgukaamera. Kui soovite oma veebikaamera Internetti eksponeerida, pidage meeles arvestage ohtudega 5 ohtu, mida tuleb koduturbekaamerate näitamisel arvestadaOluline on hoolikalt läbi mõelda, kuhu oma kaamerad paigutate ja millistes koduosades neid suunate. Asjade turvalisena hoidmine on oluline, kuid samas ka privaatsuse säilitamine. Loe rohkem - siis uurima sadama ekspedeerimine Mis on sadamate edastamine ja kuidas see mind aidata saab? [MakeUseOf selgitab]Kas nutad natuke sees, kui keegi ütleb sulle, et teil on pordi edastamise probleem ja sellepärast teie läikiv uus rakendus ei tööta? Teie Xbox ei lase teil mänge mängida, torrentide allalaadimine keeldub ... Loe rohkem , nii et teie ruuter teab kuhu sissetulevaid taotlusi saata. Võiksite lisada väline toiteallikas 3 Raspberry Pi akut kaasaskantavate projektide jaoksRaspberry Pi aku abil saab tavalise Pi kaasaskantavaks arvutiks muuta. Alustamiseks vajate ühte neist akulahendustest. Loe rohkem ja WiFi-adapter tõeliselt kaasaskantava seadme jaoks.

Kas olete teinud veebikaamera ja Pi abil midagi lahedat? Andke mulle kommentaarides teada, ma tahaksin seda näha!

Joe on lõpetanud Ühendkuningriigi Lincolni ülikooli arvutiteaduse. Ta on professionaalne tarkvaraarendaja ja kui ta ei lenda droonidega ega kirjuta muusikat, võib teda sageli leida pildistamas või videot tootmas.