reklama

Naučte se, jak vytvořit vzdálenou viditelnou bezpečnostní kameru pro naklápění a naklápění pomocí Raspberry Pi. Tento projekt lze dokončit ráno jen s nejjednoduššími částmi. Zde je konečný výsledek:

Co potřebuješ

  • Raspberry Pi 2 nebo 3 s kartou Micro SD
  • Arduino UNO nebo podobné
  • 2 x mikro nebo mini hobby serva
  • Webová kamera USB
  • Samčí až mužské vodiče
  • Samičí až samičí vodiče
  • Různé vázanky na zip

Vytvoření bezpečnostní kamery

Připevněte ke každému servu servopohon (malé plastové „tvary“) pomocí přiloženého šroubu. Konkrétní tvar nezáleží, i když čím větší, tím lepší. Šroub příliš neutahujte.

Nyní použijte stahovací pásky k připojení jednoho serva k druhému v pravém úhlu. Jeden z nich bude posouvat (zleva doprava), zatímco druhý bude nakloněn (nahoru a dolů). Nezáleží na tom, kdo dělá co, v kódu je možné jej upravit.

Servo-hardware

Nakonec připojte webkameru k jednomu z serv. K tomu byste mohli použít zipové vázanky, ačkoli moje webová kamera přišla se sponou připevněnou ke dnu - odstranil jsem ji a pomocí šroubu ji přidržel k rohu. Z důvodu stability může být vhodné namontovat celou soupravu do kufru nebo krabice. Jednoduchá lepenková krabička dělá tento trik docela pěkně. Dalo by se vyříznout úhlednou čtvercovou díru a připevnit jedno servopohonové splachování k povrchu, postačí však vázanka na zip.

instagram viewer

Pi-Pan-Tilt-Camera

Slovo o webových kamerách

Ne všechny webové kamery USB jsou vytvořeny stejně. Připojte webovou kameru k USB portu vašeho Pi a spusťte tento příkaz:

lsusb

Tento příkaz zobrazí informace o všech USB zařízeních připojených k Pi. Pokud zde není uvedena vaše webová kamera, můžete zkusit napájený rozbočovač USB a zopakovat příkaz. Pokud webová kamera stále není rozpoznána, možná budete muset zakoupit kompatibilní webová kamera.

Nastavení servo

I když se sera mohou jevit jako děsivá a složitá, jejich připojení je opravdu jednoduché. Sera pracují na modulaci šířky pulsu (PWM), což je způsob, jakým digitální systémy napodobují analogové signály. Signály PWM jsou v podstatě rychlým signálem ON - OFF. Signál, který je ZAPNUTÝ nebo VYSOKÝ, je popsán pomocí pracovního cyklu. Pracovní cyklus je vyjádřen v procentech a popisuje, jak dlouho je signál zapnutý. PWM signál 25% pracovního cyklu bude ZAPNUTÝ po dobu 25% času a vypnutý pro zbývajících 75%. Signál není na začátku zapnutý a potom navždy vypnutý, je pravidelně pulsován po velmi krátkou dobu.

Serva tyto impulsy poslouchají a podle toho jednají. Použití pracovního cyklu 100% by bylo stejné jako u „běžného“ 5v a 0% by bylo stejné jako u země. Nebojte se, pokud plně nerozumíte tomu, jak PWM funguje, stále můžete ovládat serva (Extreme Electronics je dobré místo, kde se dozvíte více).

Existují dva hlavní způsoby použití PWM - hardware nebo software. Hardware PWM často poskytuje nižší latenci (jak dlouho mezi servem přijímajícím příkaz a pohybujícím se) než software PWM, ale Pi má pouze jeden hardwarový PWM schopný pin. Vnější obvody jsou k dispozici pro poskytování více kanálů hardwarového PWM, ale jednoduché Arduino může také zvládnout úkol, protože mají více hardwarových PWM pinů.

Zde je okruh:

Pi-Servo-připojení

Znovu zkontrolujte pinout pro váš Pi, mezi modely se mírně liší. Musíte přijít na to, jak jsou vaše serva zapojena. Serva vyžadují tři dráty pro jejich ovládání, ale barvy se mírně liší:

  • Červená je pozitivní, připojte ji k Pi + 5v
  • Hnědá nebo černá je negativní, připojte to k GND na Pi
  • Oranžová nebo bílá je signál, připojte je k Arduino pinům 9 a 10

Nastavení Arduino

Jste novým Arduino? Začněte zde Začínáme s Arduino: Příručka pro začátečníkyArduino je platforma s otevřeným zdrojovým kódem elektroniky založená na flexibilním, snadno použitelném hardwaru a softwaru. Je určen pro umělce, designéry, fandy a kohokoli, kdo má zájem o vytváření interaktivních objektů nebo prostředí. Přečtěte si více .

Po připojení serva otevřete Arduino IDE v počítači a nahrajte tento testovací kód. Nezapomeňte vybrat správný panel a port z Nástroje> Deska a Nástroje> Port menu

#zahrnout // Import knihovny Servo servoPan, servoTilt; // Vytváření servo objektů. int servoMin = 20, servoMax = 160; // Definujte limity nastavení servo void setup () {// Nastavení serv na pinech schopných piny servoPan.attach (9); servoTilt.attach (10); } void loop () {for (int i = servoMin; i  servoMin; --i) {// Přesun serv z maxima na minimum servoPan.write (i); servoTilt.write (i); zpoždění (100); // Počkejte 100ms} }

Když je vše v pořádku, měli byste vidět, jak se obě serva pomalu pohybují tam a zpět. Všimněte si, jak jsou „servoMin“ a servoMax definovány jako 20 a 160 stupňů (místo 0 a 180). Důvodem je částečně to, že tato levná serva nejsou schopna přesně se pohybovat o celých 180 stupňů a také kvůli fyzické velikosti webové kamery brání použití celého rozsahu. Možná bude nutné je upravit pro vaše nastavení.

Pokud vůbec nefungují, zkontrolujte, zda je obvod správně zapojen. Celozrnné desky se někdy mohou lišit v kvalitě, proto o investování do multimetru ověřte.

Serva jsou téměř příliš silný na to, aby Arduino pohánělo, takže budou poháněny Pi. 5V zábradlí na Pi je omezeno na 750 mA poskytnutých celému Pi a Pi čerpá přibližně 500 mA, takže 250 mA zůstává na serva. Tato mikro serva čerpají přibližně 80 mA, což znamená, že Pi by měli být schopni zvládnout dvě z nich. Pokud chcete použít více serv nebo větších modelů s vyšším výkonem, možná budete muset použít externí zdroj napájení.

Nyní nahrajte následující kód do Arduina. To poslouchá příchozí sériová data (sériová jako v Universal Seriál Sběrnice nebo USB). Pi odešle tato data přes USB do Arduina a řekne mu, kam přesunout serva.

#zahrnout // Import knihovny Servo servoPan, servoTilt; // Vytvoření objektu serva. String data = ""; // Uložení příchozích příkazů (buffer) void setup () {// Instalační serva na piny podporující piny servoPan.attach (9); servoTilt.attach (10); Serial.egegin (9600); // Začněte sériovou rychlostí 9600 bps (rychlost) } void loop () {while (Serial.available ()> 0) {// Pokud existují data char singleChar = Serial.read (); // Přečíst každý znak, pokud (singleChar == 'P') {// Přesunout pan servo servoPan.write (data.toInt ()); data = ""; // Vymazat vyrovnávací paměť} else if (singleChar == 'T') {// Přesunout servo naklápění servoTilt.write (data.toInt ()); data = ""; // Vymazat vyrovnávací paměť} else {data + = singleChar; // Připojit nová data}} }

Tento kód můžete vyzkoušet otevřením sériového monitoru (vpravo nahoře> Sériový monitor) a zaslání některých testovacích údajů:

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

Všimněte si formátu příkazů - hodnoty a pak písmene. Hodnota je pozice serva a písmeno (v velká písmena) určuje posuvné nebo naklápěcí servo. Protože tato data jsou přenášena z Pi sériově, každá postava prochází jednou po druhé. Arduino je musí „uložit“, dokud nebude vyslán celý příkaz. Poslední písmeno nejen specifikuje servo, ale také informuje Arduino, že v tomto příkazu již nejsou žádná data.

Nakonec odpojte Arduino od počítače a zapojte jej do Raspberry Pi pomocí obvyklého připojení USB portu.

Nastavení pí

Nyní je čas nastavit Pi. První, nainstalovat operační systém Jak nainstalovat operační systém na Raspberry PiZde je návod, jak nainstalovat operační systém na Raspberry Pi a jak klonovat vaše perfektní nastavení pro rychlé zotavení po havárii. Přečtěte si více . Připojte webovou kameru a Arduino k Pi USB.

Aktualizujte Pi:

aktualizace sudo apt-get. sudo apt-get upgrade

Instalovat pohyb:

sudo apt-get install motion

Motion je program vytvořený pro zpracování streamování webové kamery. Zvládá všechny těžké zvedání a může dokonce provádět záznam a detekci pohybu (zkuste budování bezpečnostního systému pro snímání pohybu Vytvořte zabezpečovací systém Motion Capture pomocí Raspberry PiZ mnoha projektů, které můžete s Raspberry Pi stavět, je jedním z nejzajímavějších a trvale užitečných systém zabezpečení pohybu. Přečtěte si více ). Otevřete konfigurační soubor Motion:

sudo nano /etc/motion/motion.conf

Tento soubor poskytuje mnoho možností pro konfiguraci Motion. Nastavení následovně:

  • daemon on - Spusťte program
  • framerate: 100 - Kolik snímků nebo obrázků za sekundu streamovat
  • stream_localhost off - Povoluje přístup v síti
  • width 640 - Šířka videa, úprava pro webovou kameru
  • height 320 - Výška videa, upravte webovou kameru
  • stream_port 8081 - Port pro výstup videa
  • output_picture off - Neukládejte žádné obrázky

Toto je docela velký soubor, takže jej můžete použít CTRL + W hledat řádky. Po dokončení stiskněte CTRL + X a poté potvrďte uložení a ukončení.

Nyní upravte ještě jeden soubor:

sudo nano / etc / default / motion

Nastavte „start_motion_daemon = yes“. To je nutné k zajištění pohybu.

Nyní zjistěte svou IP adresu:

ifconfig

Tento příkaz zobrazí podrobnosti o síťovém připojení pro Pi. Podívejte se na druhý řádek, inet addr. Možná budete chtít nastavit statickou IP adresu (co je statická IP? Co je statická IP adresa? Zde je důvod, proč ho nepotřebujeteStatická adresa IP je adresa, která se nikdy nemění. Dynamické adresy IP se mění. Vysvětlíme vám, proč nepotřebujete statickou IP adresu. Přečtěte si více ), ale prozatím si poznamenejte toto číslo.

Nyní spusťte pohyb:

spuštění pohybu sudo služby

Motion můžete zastavit nebo restartovat změnou „start“ na „stop“ nebo „restart“.

Přepněte se do svého počítače a přejděte do Pi z webového prohlížeče:

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

Kde xxx.xxx.x.xx je IP adresa Pi. Dvojtečka následovaná číslem je port, který byl nastaven dříve. Všechno je v pořádku, měli byste vidět stream z vaší webové kamery! Zkuste se pohybovat a uvidíte, jak to vypadá. Možná budete muset upravit nastavení jasu a kontrastu v konfiguračním souboru. Možná budete muset zaostřit na webovou kameru - některé modely mají kolem objektivu malý zaostřovací kroužek. Otáčejte, dokud není obraz nejostřejší.

Zpět na Pi, vytvořte složku a přejděte do ní:

mkdir security-cam. cd security-cam /

Nyní nainstalujte Twisted:

sudo apt-get install python-twisted

Twisted je webový server napsaný v Pythonu, který bude poslouchat příkazy a poté podle toho jednat.

Po instalaci vytvořte skript Python pro provádění příkazů (přesuňte serva).

sudo nano servos.rpy

Všimněte si, jak je přípona souboru „.rpy“ místo „py“. Zde je kód:

# Importovat potřebné soubory. import seriálu. from twisted.web.resource import Resource # Setup Arduino správnou rychlostí. try: arduino = serial. Sériové číslo ('/ dev / ttyUSB0', 9600) kromě: arduino = sériové. Sériová ('/ dev / ttyUSB1', 9600) třída MoveServo (Resource): isLeaf = True def render_GET (self, request): try: # Odeslat hodnotu přes serial do Arduino arduino.write (request.args ['value'] [0]) return 'Success' s výjimkou: return 'Failure' resource = MoveServo ()

Nyní spusťte webový server:

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

Umožňuje rozdělit - „-p 80“ určuje port (80). Toto je výchozí port pro webové stránky. “–Path / home / pi / security-cam /” říká Twisted, aby spustil server v zadaném adresáři. Pokud provedete jakékoli změny skriptů uvnitř složky „security-cam“, budete muset restartovat server (CTRL + X zavřete a znovu spusťte příkaz).

Nyní vytvořte webovou stránku:

sudo nano index.html

Zde je kód webové stránky:

Využijte DIY bezpečnostní kamery


Změňte „PI_IP_ADDRESS“ (používá se dvakrát) na skutečnou IP adresu vašeho Pi (raspberrypi.local by také mělo fungovat, pokud používáte nejnovější Raspian). Restartujte webový server a poté z počítače přejděte na počítač Pi, není třeba zadávat port. Měli byste být schopni posouvat doleva a doprava a vidět stream videa:

Pi-Pan-Tilt-Camera-Web-View

Tady to máš. Vaše vlastní síťová kamera Pan a Tilt. Pokud chcete webovou kameru vystavit na internetu, nezapomeňte zvažte nebezpečí 5 nebezpečí, která je třeba zvážit při nasměrování vašich domácích bezpečnostních kamerJe důležité pečlivě zvážit, kam umístíte kamery a na které části vašeho domova je zaměřujete. Udržovat věci v bezpečí je důležité, ale také zachovává vaše soukromí. Přečtěte si více - pak se podívej do předávání portů Co je předávání portů a jak mi může pomoci? [MakeUseOf vysvětluje]Trochu pláčete uvnitř, když vám někdo řekne, že existuje problém s přesměrováním portů, a proto vaše nová lesklá aplikace nebude fungovat? Váš Xbox vám nedovolí hrát hry, vaše stahování torrentů odmítne ... Přečtěte si více , takže váš router ví, kam mají odesílat příchozí požadavky. Dalo by se přidat externí napájení 3 baterie Raspberry Pi pro přenosné projektyBaterie Raspberry Pi dokáže z běžného Pi vytvořit přenosný počítač. Chcete-li začít, budete potřebovat jedno z těchto bateriových řešení. Přečtěte si více a adaptér Wi-Fi pro skutečně přenosnou soupravu.

Udělali jste něco skvělého s webovou kamerou a Pi? Dejte mi vědět v komentářích, ráda bych to viděla!

Joe je absolventem informatiky na University of Lincoln ve Velké Británii. Je to profesionální softwarový vývojář, a když nelétá dronů nebo píše hudbu, často ho najde, když fotografuje nebo produkuje videa.