Projekt Arduino Havlobot
Stránka projektu na předmět Open Hardware, LS 2017/18
Obsah
Členové týmu
Aneta Martínková, Ondřej Sliš, Tomáš Titěra
Motivace projektu a jeho význam
Prvotním impulsem k vytvoření prototypu, který vyústil ve vznik Havlobota, byla snaha napodobit model Chapadlo ozbrojené nožem. S postupujícím sestavováním jsme se však od svojí inspirace rozhodli oprostit, překročit ji. Jednak jsme upustili od násilného charakteru modelu (a zvolili jsme jako jeho motiv naopak symbol něžné revoluce v roce 1989 – Václava Havla), jednak jsme začali konstruovat přístroj komplexnější. Projekt tak ve finále přibližuje osobnost prvního českého prezidenta s pomocí zvukových, obrazových a pohybových prostředků. Výsledné dílo je tak studií, jak lze s pomocí jednoduchých součástek expresivně vyjádřit ideu či osobu; a zároveň zprávou o možné přirozenosti propojení umění a techniky.
Použitý materiál a hardware
- Arduino Uno
- Arduino Tinkerkit
- Servo s kontinuální rotací
- Tlačítkový spínač
- LED dioda 5mm bílá čirá
- Záznamník se světelným senzorem ve tvaru srdce
- LCD displej 16x2 znaků
- Gumové chapadlo
- Svazek klíčů
- Schrána - dekorovaná krabice
Použité Arduino knihovny a zdrojový kód
Při vývoji jsme využívali následující Arduino knihovny:
Anotovaný zdrojový kód jsme pro zachování formátování a vyšší přehlednost umístili na GitHub.
Popis vývoje a konečné verze produktu
Na počátku bylo chapadlo a snaha jej rozhýbat. To se nám podařilo za pomoci servo motoru, který umožňoval kontinuální pohyb - přes TinkerKit jsme do serva zapisovali polohu, na kterou se má nastavit - 5° - 180°. Při rychlém střídání těchto pokynů vznikal kmitavý pohyb (až v pozdější fázi jsme zjistili, že by bylo vhodnější servo krokové, ale Havlobot fungoval i takto).
Dalším krokem bylo navázat spouštění serva na tlačítko. Bylo nutné zajistit, aby Arduino kontrolovalo stav tlačítka a v případě, že přejde z polohy off do polohy on, tak spustilo pohyb serva. Zde jsme narazili na výpočetní limity Arduina a obecně procesorové architektury, která neumožňuje ryzí multitasking - namísto toho je nutné jednotlivé úkoly vykonávat postupně v předem alokovaném čase. Pro tyto účely bylo nutné do kódu implementovat plánovač úloh (scheduler). Funkčnost scheduleru je dobře vysvětlena například na tomto odkazu. Scheduler nám pomocí ve smyčce se opakujících úkolů umožnil, aby v dostatečně krátkém časovém intervalu Arduino kontrolovalo stavy všech připojených periferií a pomocí podmíněných příkazů jejich stav měnilo. Bylo tak možné v případě změny stavu tlačítka změnit stav serva. V tuto chvíli se tak po stisku tlačítka rozhýbalo chapadlo a začalo cinkat klíči.
Dále jsme implementovali zvukovou složku pomníku. Ta byla tvořena plastovým srdíčkem, které v sobě obsahovalo záznamník, který spouštěl nahranou zvukovou stopu prostřednictvím fotosenzoru. Do srdce jsme nahráli větu “naše země nevzkvétá” ze záznamu novoročního projevu V. Havla z roku 1990. Bylo nutné zajistit ovladatelnou změnu světelných podmínek, aby srdce přehrálo nahrávku. Srdce jsme se rozhodli umístit do krabice, která tvořila schránu pomníku, společně s LED diodou. Po stisku tlačítka se dioda rozsvítila a po dobu tří sekund svítila. Poté, co zhasla, se srdce rozmluvilo. Při experimentálním ověření jsme zjistili, že základní dioda z TinkerKitu nemá dostatečnou svítivost, aby byla zaznamenána fotosenzorem, přistoupili jsme tedy k použití silnější 5mm LED.
V neposlední řadě jsme krabici osadili LCD displejem. Jeho funkčnost jsme taktéž navázali na stisk tlačítka. Po spuštění se displej podsvítil a zobrazil se na něm text “Pravda a láska musí zvítězit” - zde jsme byli limitováni kapacitou 2x16 znaků použitého displeje. Bohužel již nezbyl čas na sofistikovanější zužitkování displeje, například formou běžícího textu či náhodného zobrazování různých Havlových výroků.
Konečná verze zdrojového kódu je tvořena především schedulerem, který v nekonečné smyčce opakuje úkoly, v rámci kterých Arduino 50x za vteřinu kontroluje stav připojeného tlačítka. Pokud je tlačítko stisknuto, dojde ke spuštění serva (rozhýbe chapadlo cinkající klíči), rozsvícení LED na 3 sekundy (po zhasnutí srdce spustí nahrávku), a spuštění LED displeje (zobrazuje podsvícené Havlovo motto). Všechny tyto periferie jsou umístěny vně krabice, která tvoří schránu pomníku. V závěrečné fázi jsme křídla víka krabice ozdobili Havlovým portrétem. Vznikl tak interaktivní oltářní triptych oslavující pravdu, lásku a přidružené hodnoty.
Závěrečné zhodnocení
Nejproblematičtějšími kroky při tvorbě Havlobota bylo programování správného pohybu chapadla a následně hledání optimálního provozu LED diody, která měla spouštět hlasový záznam v plastovém srdíčku. Obojí bylo dáno především naší malou orientací v možnostech Arduino součástek a limitovanými programovacími zkušenostmi. I přesto jsme ale do práce s Arduino knihovnami pronikli za pomoci logického uvažování a dovedli si poradit. Stavba Havlobota pro nás tak byla jakýmsi iniciačním rituálem do kutilství nového tisíciletí a ačkoliv bychom pravděpodobně dosáhli impresivnějších výsledků, kdybychom měli v týmu pokročilejší programátory, jsme i tak spokojeni. Robotická inkarnace prvního českého prezidenta v krabici se pro nás stala symbolem odhodlání překračovat naše vlastní limitované znalosti a zkoušet nevyzkoušené i za cenu jisté neohrabanosti – stejně tak jako byl právě Václav Havel symbolem takového konání pro rodící se československou demokracii.
Vytyčené cíle jsme splnili beze zbytku – fúzi DIY makerství a absurdního dramatu jsme v rámci workshopu zhmotnili uspokojivě.
Po skončení workshopu jsme přístroj rozložili, protože jsme nevěděli, co s ním máme dělat.*
Nevyužitelné komponenty jsme odnesli do tříděného odpadu.
*i v tom lze nakonec najít určité paralely s demokratickým státním uspořádáním
Fotodokumentace
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
- Chyba při vytváření náhledu: Soubor s rozměry většími než 12,5 MP
Související články
Klíčová slova
Arduino, Havlobot, Václav Havel, scheduler