V této kapitole se budeme zabývat základními skicami, které vám pomohou postavit se na nohy v práci s Arduino. Pokryjeme širokou škálu vstupů a výstupů s využitím senzorů, které najdete ve vašem startovacím kitu. Pokud ještě žádný kit nemáte, doporučuji prozkoumat kapitolu 2, kde najdete doporučené sady. Skica „Blink“ (popisovaná v kapitole 4) poskytuje základ pro Arduino skicu, ale v této kapitole ji rozšíříme přidáním dalších obvodů k vašemu Arduinu.

Začneme tím, že si ukážeme, jak nahrát správnou skicu do Arduino desky. Tento postup se vám bude hodit během celé knihy, protože většina příkladů bude vyžadovat nahrání skic na Arduino. Před tím, než se pustíme do skic, si projdeme tento jednoduchý proces, který byste měli zvládnout a který budete moci použít opakovaně.

Nahrání skici do Arduino

  1. Připojte své Arduino pomocí USB kabelu.
    Konektor čtvercového tvaru zapojte do Arduino a plochý konektor do USB portu počítače.

  2. Vyberte správnou desku v menu Arduino: Tools → Board → Arduino Uno.
    Většina příkladů v této knize předpokládá použití desky Arduino Uno, ale pomocí tohoto menu můžete vybrat i jiné desky, jako je Arduino MEGA 2560 nebo Arduino Leonardo.

  3. Vyberte správný sériový port pro vaši desku.
    V seznamu dostupných sériových portů najdete svůj port pod Tools → Serial Port → comX nebo /dev/tty.usbmodemXXXXX. X značí číslo, které může být sekvenčně nebo náhodně přiřazeno. Na Windows bude obvykle nejvyšší číslo portu, například COM3 nebo COM15. Na Mac OS X může číslo portu vypadat různě, například /dev/tty.usbmodem1421.

  4. Klikněte na tlačítko „Upload“ (nahraj) v prostředí Arduino.
    Tlačítko je vyobrazeno jako šipka směřující doprava. Pokud používáte klávesovou zkratku, na Windows to bude Ctrl+U a na Mac OS X Cmd+U.

Tento proces je základem pro nahrávání jakýchkoli skic na Arduino a budete se k němu vracet i v dalších kapitolách. Nyní, když víte, jak nahrát skicu, můžeme se vrhnout na skicu, která vám umožní „vypustit“ LED diodu.

Použití modulace šířky pulzu (PWM)

Modulace šířky pulzu (PWM) je technika, která umožňuje Arduinu, což je digitální zařízení, chovat se jako analogové. Díky tomu lze například plynule stmívat LED diodu místo toho, aby pouze blikala. Jak to funguje? Digitální výstupy jsou buď zapnuté, nebo vypnuté. Avšak díky vysoké rychlosti přepínání, kterou umožňují křemíkové čipy, může být výstup velmi rychle zapínán a vypínán.

Pokud je výstup zapnutý polovinu času a vypnutý druhou polovinu, mluvíme o tzv. „duty cycle“ (pracovní cyklus), který činí 50 %. Tento cyklus znamená, že výstup je aktivní pouze polovinu času, ale jeho účinek je vnímán jako poloviční intenzita, například u LED diody to znamená poloviční jas. Podobně u DC motoru tento cyklus znamená, že motor běží na polovinu rychlosti.

Ačkoli PWM je digitální funkce, je označována jako „analogWrite“ kvůli efektnímu analogovému výsledku, který vytváří na připojených komponentách. Tato technika tedy umožňuje plynulé ovládání jasnosti LED diody nebo rychlosti motoru.

Skica pro stmívání LED diody

V této skice se zaměříme na fade efekt LED diody. Na rozdíl od skici pro blikající LED diodu z kapitoly 4, zde budete potřebovat další komponenty k tomu, abyste LED diodu plynule rozsvítili a zhasli. K realizaci tohoto projektu budete potřebovat:

  • Arduino Uno

  • Prototypovou desku (breadboard)

  • LED diodu

  • Rezistor (minimálně 120 ohmů)

  • Propojovací dráty

Před zahájením práce je důležité se ujistit, že obvod není napájen, aby se předešlo možným chybám při připojování komponent. Před začátkem si vždy odpojte Arduino od počítače nebo jakéhokoli externího napájení.

Obvod zapojíte podobně jako u skici pro blikající LED diodu v kapitole 4, jen místo pinu 13 použijete pin 9. Důvodem je to, že pin 9 podporuje PWM, což je nezbytné pro plynulé stmívání LED. Dále je nutné použít rezistor, aby se omezil proud, který prochází LED diodou. Na pinu 13 je již rezistor integrovaný přímo na desce Arduino, takže u tohoto pinu není potřeba rezistor připojovat externě.

Pokud jde o výběr správného rezistoru, vždy je dobré mít na paměti bezpečnou hodnotu pro daný obvod. Pokud použijete nižší hodnotu rezistoru, může se stát, že LED dostane příliš vysoký proud a poškodí se. Pokud nemáte k dispozici přesně vypočítaný rezistor, můžete zvolit hodnotu, která je o něco vyšší než požadovaná, například 220 ohmů nebo 330 ohmů.

Odpor a jeho význam

Při práci s LED diodami je klíčové správně nastavit odpor v obvodu, protože špatně zvolený rezistor může vést k poškození komponent nebo neoptimálnímu výkonu. Například LED diody mají maximální napětí zhruba 2.1 V, a pokud by byla napájena příliš vysokým napětím, mohlo by to vést k jejímu zničení. Pro bezpečné použití je nutné vždy správně vypočítat rezistor, který omezuje proud.

Tento výpočet provedeme podle Ohmova zákona: R = (VS - VL) / I, kde VS je napětí (5 V), VL je napětí LED diody (2.1 V) a I je maximální povolený proud (25 mA). Tento výpočet vám dá hodnotu odporu přibližně 116 ohmů, což znamená, že můžete použít nejbližší standardní hodnotu 120 ohmů.

Význam barevného kódování obvodů

Dalším důležitým krokem je barevné kódování obvodů, což pomáhá snadno identifikovat různé druhy obvodů a jejich propojení. Tímto způsobem lze přehledněji sledovat spojení mezi jednotlivými komponenty a zjednodušit diagnostiku při hledání chyb v obvodu. Doporučuje se používat různé barvy pro různé typy vedení (například červenou pro napájení, černou pro zem), což usnadňuje orientaci a identifikaci v komplexních schématech.

Jak začít s Processing: První kroky a základy kreslení

Processing je skvělý nástroj pro začátečníky, kteří se chtějí seznámit s programováním a grafikou. Na rozdíl od Arduina nevyžaduje žádné další hardware, což znamená, že můžete začít psát kód okamžitě. Základní principy, které se zde naučíte, jsou přímo aplikovatelné na tvorbu vizuálních efektů a interaktivních aplikací. Krok za krokem si ukážeme, jak napsat svůj první kód v Processing a pochopit, jak funguje kreslení základních tvarů.

Prvním krokem je otevření nového projektu. Pokud používáte Windows, stiskněte Ctrl+N, na Macu pak Cmd+N. Otevře se textový editor, do kterého můžete začít psát svůj první kód. Například, zadáním příkazu ellipse(50, 50, 10, 10); vykreslíte elipsu, která bude mít stejnou šířku a výšku, čímž vznikne kruh. Tento kód vykreslí malý kruh v horním levém rohu okna, přičemž souřadnice (50, 50) určují pozici středu elipsy na obrazovce.

Představme si však, že chcete upravit velikost okna, ve kterém se tento tvar zobrazuje. Stačí přidat příkaz size(300, 200); těsně nad příkaz pro kreslení elipsy. Tento příkaz nastaví šířku okna na 300 pixelů a výšku na 200 pixelů. Když nyní spustíte kód, okno bude mít nové rozměry a elipsa bude umístěna v levém horním rohu tohoto okna.

Tento základní princip fungování kódu v Processing ukazuje, jak důležité je pořadí příkazů. Pokud byste příkaz size() umístili až za kreslení elipsy, okno by nebylo správně vykresleno, protože kód se čte odshora dolů a první vykreslení by přepsalo vše ostatní.

Chcete-li získat lepší přehled o souřadnicovém systému, ve kterém se objekty vykreslují, je důležité pochopit, jak fungují souřadnice v 2D prostoru. V Processing je původní bod (0,0) umístěn v levém horním rohu okna, přičemž souřadnice na ose X rostou směrem doprava a souřadnice na ose Y rostou směrem dolů. Tento systém je založen na kartézské souřadnicové soustavě, kterou jste možná studovali ve škole.

Pokud začneme pracovat s různými tvary, jako jsou body, čáry a obdélníky, uvidíme, jak se dá kód přizpůsobit pro kreslení těchto tvarů. Například k vykreslení bodu použijete příkaz point(x, y), kde x a y jsou souřadnice bodu na obrazovce. Čára se nakreslí pomocí příkazu line(x1, y1, x2, y2), kde první dva parametry určují počáteční bod čáry a druhé dva její konec.

Pro vykreslení obdélníku použijete příkaz rect(x, y, width, height). Tento příkaz vykreslí obdélník, jehož levý horní roh bude na souřadnicích (x, y) a jeho šířka a výška budou odpovídat hodnotám width a height. Když chcete, aby obdélník byl vykreslen kolem svého středu, použijete příkaz rectMode(CENTER) a obdélník se vykreslí tak, že jeho střed bude na zadaných souřadnicích.

Dalším důležitým tvarem je elipsa, kterou lze vykreslit pomocí příkazu ellipse(x, y, width, height). Tento příkaz vykreslí elipsu nebo kruh, pokud jsou šířka a výška stejné. Stejně jako u obdélníku, můžete také změnit způsob, jakým je elipsa vykreslována, pomocí příkazu ellipseMode(). Pokud použijete ellipseMode(CORNER), elipsa se vykreslí od levého horního rohu, nikoli od středu.

Základní tvary jako body, čáry a obdélníky vám dávají solidní základy pro začátek, ale když se chcete pustit do složitějších projektů, budete muset naučit se pracovat s těmito tvary v různých režimech a kombinovat je pro dosažení pokročilých efektů. Pochopení základního souřadnicového systému a schopnost správně manipulovat s těmito objekty vám otevře cestu k tvorbě vlastních vizuálních aplikací a her.

Důležité je si uvědomit, že vše, co v Processing děláte, je jenom vizualizace kódu na obrazovce. Za každým tvarem, každou čarou a každým efektem se skrývá dobře strukturovaný kód, který říká počítači, jak má vykreslit každý pixel. To znamená, že i když pracujete s velmi jednoduchými objekty, musíte chápat, jak ovlivňují výsledný výstup. Dále je důležité si pamatovat, že správné pořadí příkazů je klíčové pro dosažení očekávaného výsledku.