Papírový adventní kalendář s Arduino UNO

Adventní kalendář s Arduino UNO
Adventní kalendář s Arduino UNO

Adventní kalendář s Arduino UNO a stručný návod na stavbu chytrého adventního kalendáře s časovačem v podobě zimní vánoční vesničky řízený Arduinem.

Přináším druhou evoluci loňského „hloupého“ adventního kalendáře, který jen nečinně stál na skříňce a svítil pouze tehdy, když byl ručně sepnut obvod s několika LED zakoupený v KIKu. Pro letošní rok jsem tedy naplánoval razantní změnu a celkovou automatizaci postavenou na Arduino UNO, tímto je adventní kalendář mnohem více „fancy“ !! a vo to jde 😀

Původní papírový kalendář

Před rokem, tedy advent 2019 jsem pomocí vyřezávacího plotru vyrobil adventní kalendář v podobě jednoduché zimní vesničky. Každá chaloupka má své číslo, velmi překvapivě, od jedné do dvaceti tří. Kostelík má výsadu honosit se dvacet čtverkou. Chaloupky jsou velké tak akorát na pytlík čaje, či kostičku ledové čokolády. Filozofie je jednoduchá, každý den si najdete chaloupku s překvapením (nakonec jsme se ustálili na různých druzích čaje). Kostelík je větší, tam se vešly i náušnice 🙂

Slepení jednotlivých domečků byl víceméně relax, protože jsou opravdu jednoduché. Vyďobávání vyřezaných okýnek z lepivé řezací podložky už bylo horší 😀 Lepení domečků je snadné. Nejprve se slepí obvodové zdivo a potom postupně na každou stranu při lepí střechy. Lepidlem není třeba jakkoli plýtvat a promáčet jim papír. Stačí párátkem rozetřít pár kapek.

Zde je k dispozici zdrojová grafika v dxf pro chaloupky. Jsou tam tři tipy chaloupek, střecha pro každou z nich a kostel. Nemají na sobě čísla, to si musíte dle potřeby dokreslit a nakopírovat podle toho jak budete tisknout, nebo plotrovat.

>>DXF ke stažení zde<<

Výsledek „hloupého“ kalendáře vypadá takto.

Elektrifikace do každého omu!

Jelikož žijeme v 21. století, což dnes zarytě ignorují už jen úřady a Česká Pošta, je potřeba jít s dobou a kalendář trochu vyšperkovat. Zadání je jednoduché. Každý dům bude mít vlastní LED, které se budou rozsvěcet dle různých podmínek. Pro tento projekt jsem zvolil jako nejvhodnější adresovatelné LED, takže jsem dostal nekonečně mnoho řešení. Nakonec jsem se ustálil na čtyřech funkčních režimech:

  1. Ráno 6:00 – 6:15 svítí celá vesnička bílou barvou a chaloupka s datem svítí modře (Červená se bila s barvou střech a špatně se hledala). Ten čas není náhodný, v 6h totiž vstávám do práce a nemusím po chodbě tápat podél zdi jako nebožáci ze sci-fi románu Den Trifidů 🙂
  2. Dopoledne a přes den zhasnuto, svítí jen chaloupka s datem. Pro změnu červeně (mám k dispozici 255 barev, tak proč se nerozšoupnout).
  3. Večer od 17:00 do 22:00 svítí opět celá vesnice jako ráno. Tedy chaloupky bílou, datum modrou.
  4. A konečně poslední je režim nočního klidu. Vše je zhasnuto od 22:00 až do 6:00 ráno.
Program a hardware

Nápad je velmi jednoduchý, řešení už bylo horší. Jelikož jsem věčný programátorský začátečník, tak jsem musel zase načíst tuny internetů, ale nějak jsem to slepil ze všech možných příkladů + samozřejmě doprogramoval k obrazu svému.

Použité komponenty
Program

Jak už bylo zmíněno, nějak jsem to slepil dohromady, ale nakonec to funguje. Bylo třeba si trochu pohrát s tím, že se kalendář sem tam odpojí ze zásuvky. Popíšu jen pár bodů které bych vyzdvihl, zbytek je okomentován v kódu.

První úskalí je v hardwaru. Můj LED pásek měl v datasheetu frekvenci 800KHz, která se nastavuje v parametrech knihovny. Nakonce po hodině laborování jsem zkusil dát 400KhHz ….. a voila problém vyřešen. Pokud tedy LEDky jen poblikávají a chovají se velmi „divně“ i s nahraným vzorovým demo koódem  – problém bude ve frekvenci 400/800

Nastavení RTC je zakomentováno, aby se neprovádělo po každém připojení Arduina k napětí. Nastaví se tedy jednou, nahraje do desky a poté zakomentuje a zase nahraje do desky. Tím je RTC nastaven a pomocí interní baterky si drží čas.

Druhá zvláštnost oproti jednoduchému řešení je použití pole pro identifikaci rozsvícené LED. Důvod je jednoduchý. Domečky nejsou poskládány popořadě, ale data jsou rozházená různě po podložce. Abych nemusel tahat kilometry kabelu, spájel jsem co nejkratšího LED hada a propojil chaloupky nejkratší cestou. Tím pádem ID led diody už se nerovná číslu dne podle RTC. Zdroj data z hodin RTC tedy určuje pouze pořadí v poli LED ID.

příklad:

je 4.12.  proměnná a[ now.day()]  se tedy rovná hodnotě s pořadovým číslem čtyři (počítá se od nuly) tedy hodnota a=15, do proměnné „den“ se tedy načte číslo „a“ tedy 15 a v programu potom rozsvítí patnáctou LED v pořadí nad kterou je chaloupka číslo 4

Je nutné si samozřejmě toto rozvrhnou dopředu, kde bude která chaloupka stát. Pokud chcete rozsvěcet LED postupně, tak odpadnou hrátky s polem a dáte že jednoduše „den=now.day() “ a tím pádem šestého se rozsvítí LED v pořadí šestá..

Zbytek už jsou jen příkazy pro ovládání LED pásku a podmínky pro časovač, tam už není co vysvětlovat.

Stavba

Neměl jsem po ruce moc kartonu, takže místo řešení „za pomoci trojúhelníku“ jsem zvolil kombinaci tvrdého výkresu a 3×3 smrkových nosníčků. Do škaredého kartonu jsem připevnil LEDky které jsem nastříhal a propojil mezi sebou do jednoho hada. A nahoru jsem pomocí oboustranné pásky přilepil dva „rámy“ ve kterých drží chaloupky. Šlo o to aby domečky byly do podložky zapuštěny a držely i když se bude s podložkou hýbat, nebo odněkud foukne.

Podstavec jsem šmiknul z velké kartonové krabice. Zůstaly defacto boky a asi 1cm okraj, zbytek dna je vyříznutý. Zde platí, že fotky jsou více než tisíc slov.

Závěr

Blbinka dobrá, hlavně se člověk naučí pracovat s adresovatelnými LED a RTC a lze tak vytvořit jakékoli variace svíticích kalendářů, časomíry a tak podobně. Už se mi rodí v hlavě nápad na kalendář v3.0 🙂

 

 

Total Page Visits: 2893 - Today Page Visits: 25

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*

code