Reklama
Naučte sa, ako vytvoriť vzdialene viditeľnú bezpečnostnú kameru s otočným a nakloniteľným rámom pomocou Raspberry Pi. Tento projekt môže byť dokončený ráno len s najjednoduchšími časťami. Tu je konečný výsledok:
Čo potrebuješ
- Raspberry Pi 2 alebo 3 s kartou Micro SD
- Arduino UNO alebo podobné
- 2 x mikro alebo mini hobby servá
- Webová kamera USB
- Samčie až mužské vodiče
- Samčie až ženské vodiče
- Rozmanité zipsy
Vytvorenie bezpečnostnej kamery
Pripojte ku každému servopohonu pomocou priloženej skrutky roh serva (malé plastové „tvary“). Konkrétny tvar v skutočnosti nezáleží, hoci čím väčší, tým lepší. Skrutku príliš neutiahnite.
Teraz pomocou zipsov pripevnite jedno servo k druhému v pravom uhle. Jeden z nich bude posunutý (zľava doprava), zatiaľ čo druhý bude naklonený (hore a dole). Nezáleží na tom, kto robí čo, v kóde sa dá upraviť.
Nakoniec pripojte webovú kameru k jednému zo serv. Na tento účel by ste mohli použiť zipsy, aj keď moja webová kamera prišla so sponou pripevnenou k spodnej časti - odstránil som ju a pomocou skrutky som ju držal za roh. Kvôli stabilite možno budete chcieť namontovať celú súpravu do kufra alebo skrinky. Jednoduchá kartónová krabica to zvládne celkom pekne. Mohli by ste vyrezať úhľadnú štvorcovú dieru a namontovať jedno servopohon splachovacie na povrch, postačuje však zips.
Slovo o webových kamerách
Nie všetky webkamery USB sú vytvorené rovnako. Pripojte webkameru k USB portu vášho Pi a spustite tento príkaz:
lsusb
Tento príkaz zobrazí informácie o všetkých zariadeniach USB pripojených k zariadeniu Pi. Ak tu nie je uvedená vaša webová kamera, môžete skúsiť napájaný rozbočovač USB a zopakovať príkaz. Ak webová kamera stále nie je rozpoznaná, pravdepodobne budete musieť kúpiť kompatibilná webová kamera.
Nastavenie servo
Zatiaľ čo servá sa môžu zdať strašidelné a zložité, je ich pripojenie veľmi jednoduché. Servá pracujú na modulácii šírky impulzu (PWM), čo digitálnym systémom umožňuje napodobňovať analógové signály. PWM signály sú v podstate rýchly signál ON - OFF. Signál, ktorý je ZAPNUTÝ alebo VYSOKÝ, je opísaný pomocou pracovného cyklu. Pracovný cyklus je vyjadrený v percentách a opisuje, ako dlho je signál ZAPNUTÝ. Signál PWM s 25% pracovným cyklom bude ZAPNUTÝ po dobu 25% času a pre zostávajúcich 75% VYPNUTÝ. Signál nie je na začiatku zapnutý a potom vypnutý navždy, pravidelne sa vysiela vo veľmi krátkom čase.
Servá tieto impulzy počúvajú a podľa toho konajú. Použitie pracovného cyklu 100% by bolo rovnaké ako pri „bežnom“ 5v a 0% by bolo rovnaké ako pri zemi. Nebojte sa, ak úplne nerozumiete tomu, ako PWM funguje, stále môžete ovládať servá (Extreme Electronics je dobré miesto, kde sa dozviete viac).
Existujú dva hlavné spôsoby použitia PWM - hardvér alebo softvér. Hardvérové PWM často poskytujú nižšiu latenciu (ako dlho medzi servom prijímajúcim príkaz a pohybujú sa) ako softvérové PWM, avšak Pi má iba jeden hardvérový PWM schopný pin. Vonkajšie obvody sú k dispozícii na poskytovanie viacerých kanálov hardvéru PWM, avšak úlohu môže zvládnuť aj jednoduchý Arduino, pretože majú viac hardvérových kolíkov PWM.
Tu je okruh:
Dvakrát začiarknite políčko pinout pre váš Pi, medzi modelmi sa mierne líšia. Musíte zistiť, ako sú vaše servá zapojené. Na ich ovládanie sú potrebné tri drôty, farby sa však mierne líšia:
- Červená je pozitívna, pripojte ju k Pi + 5v
- Hnedá alebo čierna je negatívna, pripojte ju k GND na Pi
- Signalizuje oranžovú alebo bielu farbu, pripojte ju k pinom 9 a 10 Arduino
Nastavenie Arduino
Ste novým používateľom Arduino? Začnite tu Začíname s Arduino: Príručka pre začiatočníkovArduino je otvorená prototypová platforma elektroniky založená na flexibilnom, ľahko použiteľnom hardvéri a softvéri. Je určený pre umelcov, dizajnérov, fandov a kohokoľvek, kto má záujem vytvárať interaktívne objekty alebo prostredia. Čítaj viac .
Po pripojení servov otvorte Arduino IDE vo svojom počítači a odošlite tento testovací kód. Nezabudnite si vybrať správnu dosku a port z Nástroje> Doska a Nástroje> Port ponuky
#include // Importujte knižnicu Servo servoPan, servoTilt; // Vytvorenie servo objektov. int servoMin = 20, servoMax = 160; // Definujte limity nastavenia servo void setup () {// Nastavenie serv na pinoch servoPan.attach (9) schopných PWM; servoTilt.attach (10); } void loop () {for (int i = servoMin; i servoMin; --i) {// Presun serva z maxima na minimum servoPan.write (i); servoTilt.write (i); oneskorenie (100); // Počkajte 100 ms} }
Keď je všetko v poriadku, mali by ste vidieť, ako sa obe serva pomaly pohybujú tam a späť. Všimnite si, ako sú „servoMin“ a servoMax definované ako 20 a 160 stupňov (namiesto 0 a 180). Je to čiastočne preto, že tieto lacné servá nie sú schopné presne posúvať celých 180 stupňov a tiež kvôli fyzickej veľkosti webovej kamery bráni použitiu celého rozsahu. Možno bude potrebné tieto nastavenia upraviť.
Ak vôbec nefungujú, skontrolujte správne zapojenie obvodu. Cukrovinky sa niekedy môžu líšiť v kvalite, preto si overte investíciu do multimetra.
Servá sú takmer príliš silný na to, aby Arduino poháňal, takže ich bude poháňať počítač Pi. 5V koľajnica na Pi je obmedzená na 750 mA poskytovaná celému Pi a Pi čerpá približne 500 mA, takže 250 mA zostáva serva. Tieto mikro servá čerpajú približne 80 mA, čo znamená, že Pi by mali byť schopné zvládnuť dve z nich. Ak chcete používať viac serv alebo väčšie modely s vyšším výkonom, možno budete musieť použiť externý zdroj napájania.
Teraz nahrajte nasledujúci kód do Arduina. Týmto sa budú počúvať prichádzajúce sériové údaje (sériové ako v Universal sériový Zbernica alebo USB). Pi odošle tieto dáta cez USB do Arduina a oznámi mu, kam presunúť servá.
#include // Importujte knižnicu Servo servoPan, servoTilt; // Vytvorenie servo objektu. String data = ""; // Uloženie prichádzajúcich príkazov (buffer) void setup () {// Inštalačné servá na piny podporujúce pWM servoPan.attach (9); servoTilt.attach (10); Serial.egegin (9600); // Začiatok sériového prenosu rýchlosťou 9600 bps (rýchlosť) } void loop () {while (Serial.available ()> 0) {// Ak existujú údaje char singleChar = Serial.read (); // Čítať každý znak, ak (singleChar == 'P') {// Presunúť serv servoPan.write (data.toInt ()); data = ""; // Vymazať vyrovnávaciu pamäť} else if (singleChar == 'T') {// Presunúť servo servoTilt.write tilt (data.toInt ()); data = ""; // Clear buffer} else {data + = singleChar; // Pripojiť nové údaje}} }
Tento kód môžete otestovať otvorením sériového monitora (hore vpravo> Sériový monitor) a odosielanie niektorých testovacích údajov:
- 90P
- 0P
- 20T
- 100T
Všimnite si formát príkazov - hodnota a potom písmeno. Hodnota je poloha servopohonu a písmeno (veľkými písmenami) určuje servopohon naklápania alebo naklápania. Pretože sa tieto dáta prenášajú z Pi sériovo, každá postava prechádza cez jednu po druhej. Arduino ich musí „ukladať“, kým sa neodošle celý príkaz. Posledné písmeno nielen špecifikuje servo, ale tiež informuje Arduina, že v tomto príkaze nie sú žiadne ďalšie údaje.
Nakoniec odpojte Arduino od počítača a zapojte ho do Raspberry Pi pomocou zvyčajného pripojenia USB.
Nastavenie pí
Teraz je čas nastaviť Pi. Najprv, nainštalovať operačný systém Ako nainštalovať operačný systém na Raspberry PiTu je návod, ako nainštalovať operačný systém na Raspberry Pi a ako naklonovať vaše dokonalé nastavenie na rýchle obnovenie po katastrofe. Čítaj viac . Pripojte webovú kameru a Arduino k Pi USB.
Aktualizujte súbor Pi:
aktualizácia sudo apt-get. sudo apt-get upgrade
Inštalovať pohyb:
sudo apt-get install motion
Pohyb je program určený na spracovanie streamovania webovej kamery. Zvláda všetky ťažké zdvíhanie a môže dokonca vykonávať záznam a detekciu pohybu (skúste vybudovanie bezpečnostného systému snímania pohybu Zostavte bezpečnostný systém Motion Capture pomocou Raspberry PiJedným z najzaujímavejších a trvalo užitočných projektov z radov projektov Raspberry Pi je bezpečnostný systém na zachytenie pohybu. Čítaj viac ). Otvorte konfiguračný súbor Motion:
sudo nano /etc/motion/motion.conf
Tento súbor poskytuje veľa možností na konfiguráciu programu Motion. Nastavenie nasledovne:
- daemon on - Spustenie programu
- framerate: 100 - Koľko snímok alebo obrázkov za sekundu streamovať
- stream_localhost off - Povoľuje prístup v celej sieti
- width 640 - Šírka videa, prispôsobenie webovej kamere
- height 320 - Výška videa, nastavenie pre webovú kameru
- stream_port 8081 - Port na výstup videa
- output_picture off - Neukladajte žiadne obrázky
Toto je pomerne veľký súbor, takže ho môžete použiť CTRL + W hľadať riadky. Po dokončení stlačte CTRL + X a potom potvrďte uloženie a ukončenie.
Teraz upravte ešte jeden súbor:
sudo nano / etc / default / motion
Nastavte „start_motion_daemon = yes“. Toto je potrebné na zabezpečenie pohybu.
Teraz zistite svoju IP adresu:
ifconfig
Tento príkaz zobrazí podrobnosti o sieťovom pripojení pre Pi. Pozrite sa na druhý riadok, Inet addr. Možno budete chcieť nastaviť statickú adresu IP (čo je statická IP? Čo je statická adresa IP? Tu je dôvod, prečo ho nepotrebujeteStatická adresa IP je adresa, ktorá sa nikdy nemení. Dynamické adresy IP sa menia. Vysvetľujeme, prečo nepotrebujete statickú IP adresu. Čítaj viac ), ale zatiaľ si toto číslo poznamenajte.
Teraz spustite pohyb:
spustenie pohybu sudo služby
Motion môžete zastaviť alebo reštartovať zmenou „start“ na „stop“ alebo „restart“.
Prepnite sa do svojho počítača a prejdite na Pi z webového prehliadača:
http://xxx.xxx.x.xx: 8081
Kde xxx.xxx.x.xx je adresa IP Pi. Dvojbodka nasledovaná číslom je port, ktorý bol nastavený skôr. Všetko v poriadku, mali by ste vidieť stream z webovej kamery! Skúste sa pohybovať a uvidíte, ako to vyzerá. Možno bude potrebné upraviť nastavenia jasu a kontrastu v konfiguračnom súbore. Možno bude potrebné zaostriť webovú kameru - niektoré modely majú okolo objektívu malý krúžok na zaostrenie. Otáčajte to, kým nie je obraz najostrejší.
Späť na Pi, vytvorte priečinok a prejdite do neho:
mkdir security-cam. cd security-cam /
Teraz nainštalujte Twisted:
sudo apt-get install python-twisted
Twisted je webový server napísaný v Pythone, ktorý bude počúvať príkazy a potom podľa toho konať.
Po inštalácii vytvorte skript Python na vykonávanie príkazov (presúvajte servá).
sudo nano servos.rpy
Všimnite si, ako je prípona súboru „.rpy“ namiesto „py“. Tu je kód:
# Importovať potrebné súbory. importovať sériové číslo. z twisted.web.resource importu Resource # Setup Arduino správnou rýchlosťou. try: arduino = sériové. Sériové číslo ('/ dev / ttyUSB0', 9600) okrem: arduino = sériové. Sériová ('/ dev / ttyUSB1', 9600) trieda MoveServo (Resource): isLeaf = True def render_GET (self, request): try: # Poslať hodnotu nad seriál Arduino arduino.write (request.args ['value'] [0]) return 'Success' s výnimkou: return 'Failure' resource = MoveServo ()
Teraz spustite webový server:
sudo twistd -n web -p 80 - cesta / domov / pi / security-cam /
Umožňuje rozobrať to - „-p 80“ určuje port (80). Toto je predvolený port pre webové stránky. “–Path / home / pi / security-cam /” hovorí Twisted, aby spustil server v určenom adresári. Ak vykonáte akékoľvek zmeny skriptov v priečinku „security-cam“, budete musieť reštartovať server (CTRL + X zatvorte a znova spustite príkaz).
Teraz vytvorte webovú stránku:
sudo nano index.html
Tu je kód webovej stránky:
Využite bezpečnostnú kameru pre domácich majstrov
Zmeňte „PI_IP_ADDRESS“ (použité dvakrát) na skutočnú IP adresu vášho Pi (raspberrypi.local by malo fungovať aj v prípade, že používate najnovší Raspian). Reštartujte webový server a potom z počítača prejdite na počítač Pi, nie je potrebné zadávať port. Mali by ste byť schopní posúvať sa doľava a doprava a vidieť stream videa:
Tam to máte. Vaša vlastná sieťová kamera Pan a Tilt. Ak chcete webovú kameru vystaviť na internete, nezabudnite zvážte nebezpečenstvo 5 nebezpečenstiev, ktoré je potrebné zvážiť pri nasmerovaní vašich domácich bezpečnostných kamierJe dôležité starostlivo zvážiť, kam umiestnite svoje fotoaparáty a na ktoré časti vášho domova ich zameriavate. Udržiavanie vecí v bezpečí je dôležité, ale zachováva sa aj vaše súkromie. Čítaj viac - potom sa pozri do presmerovanie portov Čo je to Port Forwarding a ako mi to môže pomôcť? [MakeUseOf vysvetľuje]Trochu plačete vo vnútri, keď vám niekto povie, že existuje problém s presmerovaním portov, a preto vaša nová lesklá aplikácia nebude fungovať? Váš Xbox vám nedovolí hrať hry, vaše sťahovanie torrentov odmietne ... Čítaj viac , aby smerovač vedel, kam sa majú odosielať prichádzajúce žiadosti. Dalo by sa pridať externé napájanie 3 batérie Raspberry Pi pre prenosné projektyBatéria Raspberry Pi dokáže z bežného počítača Pi urobiť prenosný počítač. Na začatie budete potrebovať jedno z týchto batériových riešení. Čítaj viac a adaptér Wi-Fi pre skutočne prenosnú súpravu.
Urobili ste niečo v pohode s webovou kamerou a počítačom Pi? Dajte mi vedieť v komentároch, rád by som to videl!
Joe je absolventom informatiky na University of Lincoln vo Veľkej Británii. Je to profesionálny vývojár softvéru a keď nelieta bezpilotných lietadiel alebo píše hudbu, často ho nájdu pri fotografovaní alebo výrobe videa.