Jump to content
milanfon

Dálkové ovládání 3D tiskárny

Recommended Posts

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: 

obvod.png

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

image.png

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.

image.png

Pro video streaming je také kritické nastavit hodnotu stream_localhost na off.

image.png

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.

image.png

Dálkové ovládání

Tento krok je celý velmi primitivní. 

  1. Stáhnete si nejnovější server pro vaši platformu
  2. V terminálu se nasměrujete do vaší stahovací složky
    cd /home/lianro/Downloads

     

  3. Spustíte příkaz pro nainstalování balíku (postup pro debian)
    sudo dpkg -i {název souboru}.deb

     

  4. Vyzkoušejte server na portu 3344 (např: http://localhost:3344)

image.png

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:

image.png

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  :)

  • Like 3

Sdílet tento příspěvek


Odkaz na příspěvek
Sdílet na ostatních sítích

Ke komentování se musíte přihlásit nebo si vytvořit účet

K zanechání komentáře musíte být člen

Vytvořit účet

Vytvořte si nový účet v naší komunitě.

Zaregistrovat se

Přihlásit se

Už máte účet? Přihlašte se zde.

Přihlásit se teď

×
×
  • Create New...