Nahlásit příspěvek Zveřejněno Listopad 9, 2018 Tento článek vás má provést softwarovou a z části taky hardwarovou částí projektu, který jsem ukazoval v tomto videu: Co jsem potřeboval: Nějaký jednodeskový počítač (Raspberry, TinkerBoard,...) Je potřeba, aby měl alespoň 3 USB porty a internetové připojení Video výstup není podstatný, ale někomu může ulehčit práci K SBC mít i ideálně příslušenství jako chladič, větrák, apod. (zpracovávání G-codu může bývá náročné) Wi-Fi relé (klidně i klasické, ale to si pak pohrajte s programováním sami) Volím ho z důvodu, že ovládací desku a napájení nemusím mít vždy u sebe, takže tohle vám ušetří natahování logických vodičů na delší vzdálenost. Z tohoto důvodu nemám ani napájecí adaptéry zapojené vnitřně do sítě, protože předpokládám tuto možnost. Navíc je to i z důvodu redundance. Webkamera Rozlišení stačí 720p Měla by být PnP nebo mít drivery pro Linux Jestli funguje poznáte tak, že v linuxové konzoli se podíváte do složky /dev/ a pokud tam uvidíte něco s název video*, tak se jedná o kameru. Pro z zajímanost vycházíme z pravidla, že v Linuxu je vše buďto složka nebo soubor. USB nebo na interní konektor Raspberry apod. 5V adaptér (nejspíše tedy nabíječka na mobil) Pro napájení SBC, pokud tedy používáte jiný typ než já, můžete mít i jiné napájecí napětí. 12V adaptér Pro napájení relé Můžeme využít i kombinovaný 12V a 5V adaptér Ulehčí práci a modularitu Z tohoto důvodu mám ve schématu zahrnuto veškeré napájení, protože zde máme (alespoň v mém případě) sběrnici v podobě MOLEXu, ze které beru těch 12V pro relé a 5V pro TB. Lépe se bude řešit redundance Jistič 10A Nechci si kvůli nějaký blbosti tady vyhodit zbytek bytu a navíc je to i pojistka, kdyby tiskárna nebo jakýkoliv jiný koncový spotřebič, začal žrát víc než předpokládám, takže v jistém smyslu je to také jedno ze zabezpečení. Koncovky zásuvek (pro náš region typu E, chceme i PE) Kabely a nějaké spojky na ně (klasická čokoláda nebo Wago, záleží co preferujete) No tak jako první by se asi hodilo nějaké schéma: Náš projekt byl rozdělen na tyto body: Živé sledování Dálkové ovládání Vypínání na dálku Živé sledování Pro živé sledování jsem nakonec využil software Motion. Celý tento "tutorial" budu předpokládat, že využíváte Debian stejně jako já, protože některé příkazy se v jiných distribucích mohou lišit a to třeba rovnou tento první. Jinak Motion je uzpůsobený pro detekci pohybu, takže je to trochu zneužití programu. Motion získáte tímto příkazem. sudo apt-get install motion Po nainstalování Motionu ho musíme nakonfigurovat. Konfigurační soubor najdeme v adresáři /etc/motion/motion.conf sudo nano /etc/motion/motion.conf Jako první by jsme měli umožnit Motionu, aby mohl jet v pozadí. Najdeme si tedy, v poměrně obsáhlém konfiguračním souboru, řádku, kde se nachází položka daemon. Tato položka je v základu vypnutá a zajišťuje nám, aby mohl Motion jet v pozadí a spouštěl se jako služba při startu Linuxu. Tohle mi tedy ne vždy fungovalo, takže pak si ukážeme jak jsem to dořešil daemon on Btw. GNU Nano editor vám umožňuje v textu hledat pomocí klávesové zkratky ^W Dále se nám bude hodit nastavit parametry obrazu. Pomocí hodnot width a height nastavujete rozlišení obrazu. Framerate se sice může zdát jako důležitý parametr, ale tento slouží pouze pro interní nahrávání. Pokud byste si přáli využívat zaznamenávání obrazu, resp. pohybu, bude se vám hodit nastavení threshold a zbytek pod ním. Threshold vám určuje, kolik pixelů se musí změnit, aby se to dalo považovat za pohyb. Co se týče těchto různých věcí, tak si doporučuji nastudovat jejich dokumentaci, protože to nastavení umí být fakt komplexní. Co nás ale zajímá všechny je nastavení output_pictures. To nám určuje, zda se mají fotky ukládat a když tak které. Myslím, že popisek v configu mluví za vše. Já osobně se přikloním k hodnotě off. Pro video streaming je také kritické nastavit hodnotu stream_localhost na off. Nad tímto nastavením můžeme najít právě framerate, který zajímá nás. Myslím si, že nemá nějak cenu ho měnit. Stejně tak je tady možnost plynulého obrazu při pohybu, ale to je celkem k ničemu, když pohyb je tu pořád. Pokud vám nevyhovuje defaultní port 8081, vřele si ho přenastavte. Uložíme tedy konfigurační soubor (^O) a odejdeme (^X). Při prvním spuštění budeme muset Motion nahodit manuálně. sudo motion Jak jsem ale říkal, tak se mi Motion nezapínal úplně dle představ. Nastavíme si tedy, aby se při startu systému spustili příkazy pro jeho zapnutí. Tyto příkazy se dávají do souboru /etc/rc.local sudo nano /etc/rc.local A přidáme příkazy: sudo service motion start sudo motion První příkaz slouží ke spuštění služby Motion. Soubor by tedy měl vypadat přibližně takto. Teď jen uložíme a vše by mělo fungovat. Dálkové ovládání Tento krok je celý velmi primitivní. Stáhnete si nejnovější server pro vaši platformu V terminálu se nasměrujete do vaší stahovací složky cd /home/lianro/Downloads Spustíte příkaz pro nainstalování balíku (postup pro debian) sudo dpkg -i {název souboru}.deb Vyzkoušejte server na portu 3344 (např: http://localhost:3344) U tohoto serveru se mi nestalo, že by blbnul při startu počítače, ale pokud by se tak stalo, zde jsou příkazy pro manuální spuštění. # Start server /etc/init.d/RepetierServer start # Stop server /etc/init.d/RepetierServer stop # Restart server /etc/init.d/RepetierServer restart Zbytek nastavení najdete v jejich dokumentaci. Wi-Fi Relé Myslím, že většinu věcí už jsem shrnul ve videu, takže se zaměřím pouze na tu část, kdy to ovládám s Linuxem. Co vám ale rozhodně ukážu je tato tabulka s těmi hodnotami pro ovládání relé. A00101A2 (A00110A2) - Otevři relé 1 A00100A1 (A00100A1) - Zavři relé 1 A00201A3 (A00200A3) - Otevři relé 2 A00200A2 (A00200A2) - Zavři relé 2 *Ta hodnota v závorce by se tam měla posílat pro udržení stálého stavu, ale nějak nevím, k čemu je to dobré, protože to drží i bez toho. To využijete při ovládání třeba přes ten mobil. Na Linuxu pro toto budeme využívat program NetCat. Ten získáme opět příkazem: sudo apt install netcat No a co teď. No stačí být připojen s relátkem na stejné síti a spustit řetězový příkaz pro otevření relé 1: echo "a00101a2" | xxd -r -p | nc -v 192.168.4.1 8080 | echo ^C Pro pochopení: echo "a00101a2" - Vypíše naší požadovanou hodnotu. Samozřejmě tuto hodnotu si změňte podle toho, jaký příkaz pro relé chcete. xxd -r -p - Převede vypsanou hexadecimální hodnotu do binární podoby. nc -v 192.168.4.1 8080 - Spustí TCP komunikaci mezi námi a relátkem a odvysílá předchozí hodnotu. Tu IP adresu si samozřejmě změňte na adresu toho vašeho konkrétního relé, protože nemusí být vždy stejná. Zjistíte ji například nějakým skenovacím nástrojem jako nmap nebo fing. echo ^C - Vzhledem k tomu, že TCP je stavový protokol, tak komunikace se nám neukončí bez toho, pokud ji k tomu nedáme povel. Tímto tedy ukončíme ten NetCat. Příkaz pro jeho uzavření by tedy vypadal takto: echo "a00100a1" | xxd -r -p | nc -v 192.168.4.1 8080 | echo ^C Bash skript Abysme ale nemuseli pokaždé psát celý tento příkaz, tak uděláme spuštění "na jeden klik", tedy bash file. Kdo s tím ještě na Linuxu nepracoval, tak nebuďte překvapeni, že některé věci jsou zde malinko jinak jak na Windowsu. Skript tedy vytvoříme příkazem nano {název skriptu} *Skripty jsou buďto bez přípony nebo s příponou .sh No a teď do skriptu stačí napsat váš příkaz: Aby skript mohl využívá systémové příkazy, tak je nutné mu pro to přidělit práva: chmod 755 {název skriptu} *755 dává skriptu práva na Read, Write a Execute. Pokud chcete pouze read a execute, použijte 700. Spusťte skript ./{název skriptu} To stejné opakujte pro uzavření relé. Pokud k něčemu máte otázky nebo výhrady, budu rád za zpětnou vazbu 3 Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatních sítích
Nahlásit příspěvek Zveřejněno Prosinec 3, 2018 Dobrá práce Já jsem rád, že vůbec spustím virtuální OS 1 Sdílet tento příspěvek Odkaz na příspěvek Sdílet na ostatních sítích