- Instalace a konfigurace aplikace „Motion“ pro získání zdroje videa:
- Nastavení baňky v Raspberry Pi pro ovládání robota prostřednictvím webové stránky:
- HTML kód pro webovou stránku:
- Kontrolní robot
- Schéma zapojení a nastavení:
- Jak pracovat:
V této DIY relaci stavíme webově řízený sledovací robotický vůz pomocí maliny pi a webové kamery. Může to být užitečný a levný bezpečnostní a špionážní nástroj, který má mnoho konfigurovatelných možností a může být postaven za pár hodin. V tomto projektu IoT používáme k výrobě tohoto robotického vozu hlavně Raspberry Pi, USB webovou kameru a dva stejnosměrné motory se šasi Robot.
Má nad sebou namontovanou webovou kameru, prostřednictvím které získáváme živé video, a zajímavou částí je, že můžeme tohoto robota ovládat a přesouvat z webového prohlížeče přes internet. Protože jej lze ovládat pomocí webové stránky, znamená to, že jej lze ovládat také pomocí webové stránky v mobilu. Vytvořili jsme webovou stránku v HTML, která obsahuje odkazy Vlevo, Vpravo, Vpřed, Zpět, kliknutím na které můžeme robotem pohybovat jakýmkoli směrem. Zde jsme použili „Motion“ pro získání živého videa z USB kamery a „Flask“ pro odesílání příkazů z webové stránky na Raspberry Pi pomocí pythonupřesunout robota, které jsou podrobně vysvětleny v následující části tohoto tutoriálu. Na naší desce Raspberry Pi máme nainstalovaný OS Raspbian Jessie. Tento článek můžete zkontrolovat a nainstalovat Raspbian OS a začít s Raspberry Pi.
Instalace a konfigurace aplikace „Motion“ pro získání zdroje videa:
Motion (Surveillance Software) je bezplatný CCTV software s detektorem pohybu s otevřeným zdrojem vyvinutý pro Linux. Detekuje pohyb a zahájí jeho nahrávání. Když je ve vašem Raspberry Pi nainstalován program „Motion“, můžete ze svého Raspberry Pi magicky udělat bezpečnostní kameru. Používá se pro získávání živého videa, vytváření časosběrných videí a pořizování snímků v pravidelných intervalech. Zaznamenává a ukládá video, kdykoli detekuje pohyb nebo jakékoli narušení v oblasti pohledu. Živý video kanál lze sledovat ve webovém prohlížeči zadáním IP adresy Pi spolu s portem.
Vytvořili jsme podrobný Výukový program o používání pohybu s Raspberry Pi a USB kamerou, zde stručně vysvětlujeme jeho instalaci na Raspberry pi pro našeho robota, aby odesílal živé video streamování na webovou stránku.
Zde musíte spustit jen několik příkazů, abyste mohli začít získávat první video v síti. Před tím řádně zkontrolujte, zda je váš Raspberry Pi připojen k internetu, a to buď pomocí LAN nebo Wi-Fi, a poté postupujte podle následujících kroků:
Krok 1: Nejprve spusťte následující příkaz a aktualizujte Raspbian OS na Raspberry Pi:
sudo apt-get aktualizace
Krok 2: Poté nainstalujte knihovnu „Motion“ pomocí následujícího příkazu:
sudo apt-get instalační pohyb
Krok 3: Nyní nastavte démona pohybu na ano úpravou souboru: / etc / default / motion tak, aby byl vždy spuštěný. Upravte tento soubor pomocí editoru 'nano' s 'sudo', jak je uvedeno níže:
sudo nano / etc / default / motion
Poté soubor uložte stisknutím kláves „CTRL + X“, poté „Y“ a Enter.
Krok 4: Nyní musíme nastavit oprávnění pro cílový adresář (/ var / lib / motion /), do kterého Motion ukládá všechny videozáznamy a obrazové soubory. Musíme nastavit „Motion“ jako vlastníka tohoto adresáře vydáním níže uvedeného příkazu:
pohyb sudo chown: pohyb / var / lib / pohyb /
Toto oprávnění je nutné, jinak se při kontrole stavu služby Motion zobrazí chyba.
Stav služby můžete zkontrolovat pomocí tohoto příkazu: sudo service motion status
Krok 5: Nyní jsme téměř hotoví, pouze musíme změnit jednu možnost konfigurace v konfiguračním souboru Motion (/etc/motion/motion.conf ), který je vypnutý stream_localhost. Musíme vypnout tuto místního hostitele streaming, jinak nebudeme moci získat přístup k zdroj videa v naší síti a bude přístupná pouze z Raspberry Pi sám. Chcete-li to provést, upravte soubor Motion Configuration pomocí editoru „nano“ a vypněte jej, jak je znázorněno níže:
sudo nano /etc/motion/motion.conf
Nyní jsme hotovi a připraveni získat živý přenos z webové kamery USB připojené k Pi. Stačí spustit (nebo restartovat) službu Motion pomocí níže uvedeného příkazu a otevřít ve svém prohlížeči IP Raspberry Pi s portem 8081 (například 192.168.43.199:8081). V tomto projektu jsme vložili tuto IP do našeho HTML kódu ve značce img src .
sudo /etc/init.d/motion restart
Uvidíte živý přenos z vaší webové kamery. Zde jsme použili levnou webovou kameru USB, která hladce fungovala s naší Raspberry Pi, ale pro lepší rozlišení můžete dále použít kvalitní kameru. Jak se ukáže v prohlížeči, ke sledování kanálu můžete použít jakékoli zařízení, které podporuje webový prohlížeč, jako je mobilní zařízení, tablet atd.
V případě potřeby zkuste restartovat Raspberry Pi jako krok při řešení potíží:
sudo restart
Jedná se o používání Motion pro našeho Surveillance Robot, kromě toho má několik možností konfigurace, které jsme již probrali v našem předchozím tutoriálu.
Poznámka: Pokud jste model Raspberry Pi pod verzí 3, možná budete potřebovat klíč Wi-Fi pro bezdrátové připojení Raspberry Pi k routeru.
Nastavení baňky v Raspberry Pi pro ovládání robota prostřednictvím webové stránky:
Tady jsme vytvořili webový server pomocí Flask, který poskytuje způsob, jak posílat příkazy z webové stránky na Raspberry Pi a ovládat robota po síti. Flask nám umožňuje spouštět naše pythonovské skripty přes webovou stránku a my můžeme odesílat a přijímat data z Raspberry Pi do webového prohlížeče a naopak. Flask je pro Python mikrorámcem. Tento nástroj je založen na Unicode s vestavěným vývojovým serverem a debuggerem, integrovanou podporou testování jednotek, podporou zabezpečených cookies a jeho snadným používáním, díky těmto věcem je to pro fandy užitečné.
Nainstalujte balíček podpory baňky do Raspberry Pi pomocí daného příkazu:
$ pip nainstalovat baňku
Potom můžeme použít baňku pouhým importem do našeho programu, jako bychom importovali následující balíčky baňky pro tento projekt:
z baňky import Baňky z baňky import baňky, render_template, požadavek
Můžete se dozvědět více o programování pomocí Flask zde, podívejte se také na naše předchozí projekty, kde jsme použili Flask k odeslání zprávy z webové stránky na Raspberry Pi a odeslání hodnoty hmotnosti na Raspberry Pi ve Smart Container.
HTML kód pro webovou stránku:
Vytvořili jsme webovou stránku používající jazyk HTML pro zobrazování ovládacích odkazů (vlevo, vpravo, vpřed, vzad) pro přesun robota z webového prohlížeče. Skript jQuery jsme použili k volání funkcí v našem Pythonovém programu. Python Code obsahuje pět funkcí pro pohyb robota doleva, doprava, dopředu, dozadu a jeho zastavení. Na konci byl uveden kompletní kód Pythonu. Tyto funkce se provedou kliknutím na ovládací odkazy na webové stránce a motory se budou pohybovat v závislosti na kliknutí na odkaz. Zde jsme napsali kód takovým způsobem, že se Robot bude pohybovat určitým směrem, zatímco klikne a přidrží odkaz, a jakmile uvolníme tlačítko myši, Robot se zastaví. Níže je uveden HTML kód pro webovou stránku včetně jQuery:
Zde můžete vidět, že jsme pomocí značky img src vložili adresu IP, na které video streamuje, na webovou stránku. Změňte IP adresu podle svého Raspberry Pi, ale udržujte port stejný.
Uživatel musí zkopírovat a vložit výše uvedený kód HTML do nějakého textového editoru (poznámkového bloku) a uložit soubor s příponou.HTML (robot.html). Poté vložte tento soubor HTML do složky / templates s ohledem na umístění skriptu v pythonu. Znamená to, že musíte vytvořit složku s názvem šablony, kam jste vložili soubor Python Code pro tento Raspberry Surveillance Robot a poté do této složky šablon vložte soubor robot.html. Tento krok je důležitý, jinak náš projekt nebude fungovat. Soubor robot.html můžete otevřít přímo poklepáním na něj, abyste viděli, jak budou vypadat vaše ovládací odkazy. Dále zkontrolujte celý proces v ukázkovém videu na konci. Poté, co jsme dokončili programování a vše ostatní, můžeme spustit pouze kód Pythonu v Raspberry Pi a otevřít IP_address_of_your_Pi: 5010 ve webovém prohlížeči (jako
IP adresu vašeho Raspberry Pi můžete zkontrolovat pomocí příkazu ifconfig :
ifconfig
Schéma zapojení a nastavení:
Po testování živého videa a kódu HTML musíme postavit robota pomocí ručně vyrobeného nebo hotového šasi robota, kol a maticových šroubů. Poté na něj umístěte powerbanku pro napájení Raspberry pi a poté umístěte Raspberry Pi a webovou kameru přes powerbanku a opravte nastavení pomocí pásky na cello nebo gumových pásků, připojte USB kameru k Raspberry Pi.
V tomto projektu IoT nepotřebujeme provádět mnoho připojení, stačí pouze připojit některé vodiče pro motorový ovladač IC L293D a stejnosměrné motory. Zapojení jsou uvedena v schématu zapojení níže. Zde jsme použili univerzální desku plošných spojů pro montáž integrovaného obvodu L293D ke zmenšení prostoru, ale můžete také použít malou prkénko pro připojení stejnosměrných motorů k L293D.
Jak pracovat:
Provoz a práce s tímto sledovacím robotem je velmi snadný. Vytvořte soubor pythonu (přípona.py) a zkopírujte do něj níže uvedený kód a poté jej uložte na svůj Raspberry Pi. Poté vložte soubor HTML do složky šablon, jak je vysvětleno výše. Nezapomeňte změnit adresu IP v souboru HTML.
Poté spusťte kód Pythonu zadáním následujícího příkazu:
python name_of_file.py
Poté otevřete svou IP adresu Raspberry Pi s portem 5010, jako je http://192.168.43.199:5010 (znovu nahraďte IP adresu vaší adresou). Nyní uvidíte webovou stránku se čtyřmi odkazy na ovládání robota a živým přenosem videa. Uživatel může robota ovládat kliknutím a podržením odkazů. Pokud uživatel klikne a přidrží odkazy, robot se bude pohybovat podle klikaného odkazu a kdy uživatel odkaz uvolní, robot se automaticky zastaví.
Kompletní kód Pythonu je uveden níže, kde jsme napsali různé funkce pro ovládání robota po kliknutí na odkazy na webové stránce. Můžete jim snadno porozumět, nebo pokud jste začátečník, podívejte se na naše předchozí návody Raspberry Pi. Navštěvuje také naši sekci robotiky, kde najdete další zajímavé a snadno sestavitelné roboty.