Projekt Arduino Havlobot: Porovnání verzí

(Založena nová stránka s textem „Stránka projektu na předmět Open Hardware, LS 2017/18 == Členové týmu == Aneta Martínková, Ondřej Sliš, Tomáš Titěra == Motivace projektu a …“)
 
Řádek 19: Řádek 19:
  
 
== Použité Arduino knihovny a zdrojový kód ==
 
== Použité Arduino knihovny a zdrojový kód ==
 +
'''Při vývoji jsme využívali následující Arduino knihovny:'''
 +
* [https://www.arduino.cc/en/reference/wire Wire]
 +
* [https://github.com/TinkerKit/TinkerKit TinkerKit]
 +
* [https://github.com/arkhipenko/TaskScheduler TaskScheduler]
 +
* [https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library LiquidCrystal_I2C]
 +
* [https://github.com/arduino-libraries/Servo Servo]
 +
 +
'''Anotovaný zdrojový kód jsme pro zachování formátování a vyšší přehlednost umístili na [https://gist.github.com/tomastitera/a73261259a7c1933ad6cefbfd90252c3 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 [https://www.cyphar.com/blog/post/20150112-making-a-simple-scheduler-for-arduino 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ů.
 +
 +
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.

Verze z 17. 6. 2018, 18:46

Stránka projektu na předmět Open Hardware, LS 2017/18

Členové týmu

Aneta Martínková, Ondřej Sliš, Tomáš Titěra

Motivace projektu a jeho význam

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ů.

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.