Lekce 4 - Raspberry Pi - Blikání diody
V předchozí lekci, Raspberry Pi - Piny a protokoly, jsme se naučili, co dělají jednotlivé piny Raspberry Pi a na co je využít.
V dnešním Python tutoriálu si ukážeme, jak piny můžeme využívat v praxi a ovládat je pomocí programovacího jazyka Python. Ke svému Raspberry Pi si připojíme LED diodu, kterou rozblikáme a následně, aby to nebylo tak jednoduché, připojíme další dvě diody a vytvoříme si semafor.
V dnešní lekci si ukážeme dva styly řešení: jak jsem projekty vytvořil já jen s drátky a pro větší přehlednost i jejich návrh pomocí nepájivého pole v Raspberry simulátoru Fritzing.
Fritzing je aplikace, která se dá v základní verzi zdarma stáhnout na všechny operační systémy. Tato aplikace je určena k tvoření plošných spojů, nebo právě k vytvoření jednoduchého schématu pro váš projekt.
Potřebné součástky
K realizaci dnešního projektu budeme potřebovat:
- 3x různobarevné LED diody
- 3x rezistor (odpor 300 ohmů nebo trochu více)
- Raspberry Pi
- při nejlepším nepájivé pole a několik drátků, kterými spojíme naše diody s Raspberry Pi
LED dioda
LED dioda je označení pro diodu, která vyzařuje světlo (ze zkratky Light-Emitting Diode). LED diod je mnoho druhů různých barev, tvarů a velikostí. Dioda sama o sobě ne vždy svítí, jak by si lidé mohli myslet. Je velká spousta typů diod, avšak jedno mají všechny společné a to, že jsou to součástky, které propouštějí proud jen jedním směrem. Další věcí, co mají všechny diody společné, je, že mají tyto dva vývody (nožičky):
- Jedna se jmenuje katoda, která se zapojuje vždy do záporného pólu zdroje (lidově řečeno do mínusu). Pokud jste nožičky neštípali, je to ta kratší nožička, jinak je často označena ploškou jinak kruhového tvaru spodní části diody.
- Anoda se zapojuje vždy na kladný pól (tím pádem do plusu). Tato nožička je u nových diod delší.
Rezistor
Rezistor (hovorově "odpor") je elektrotechnická součástka, která představuje odpor pro elektrický proud, který tím snižuje. Jeho odpor se udává v ohmech (čím více ohmů, tím více odporu). My budeme tento odpor potřebovat pro náš obvod z důvodu, že napětí (5 V), které pošle naše Raspberry Pi do diody, by dioda nemusela unést (LED diody jsou většinou na 2 V). Proto mezi ní a Raspberry zapojíme resistor, který nám ochrání diodu před tím, aby se poškodila.
Odpor jsme spočítali přes vztah R = U / I. V našem případě se U = 5 V na Raspberry a I = 0.02 A, což je přibližně proud, který běžná LED dioda za svého provozního napětí odebírá. Výsledná hodnota je 250 ohmů, což můžeme klidně zaokrouhlit na 300.
Zjištění GPIO portů
V minulé lekci jsme si řekli vše, co o GPIO portech potřebujeme vědět a ukázali jsme si jak zjistit jaký pin na našem Raspberry Pi co dělá. Toho dnes využijeme. Do terminálu našeho Raspberry pi zadáme příkaz:
pinout
Již víme, že příkaz nám vypíše, jaké číslo a funkci má jaký pin na našem Raspberry Pi.
Zapojení součástek
Upozorňuji, že všechny součástky k Raspberry Pi připojujeme, když je vypnuté! Jinak by se mohlo Raspberry Pi poškodit.
Zapojení rezistoru
Rezistor připojíme těsně před diodu, je jedno na který vývod. Pokud máme nepájivé pole, můžeme rezistor zapojit podle obrázku výše. Pokud ne, napájíme jej páječkou před diodu, jako jsem to udělal já.
Pokud nemáte ani páječku, musíte být kreativní a použít např. pevně obtočenou izolační pásku. Nicméně takové spoje nejsou příliš trvanlivé a když vám z nich drátek vyskočí, můžete si i něco odpálit.
Máme tedy diodu s rezistorem.
Zapojení diody s rezistorem do Raspberry Pi
Diodu zapojíme tímto způsobem:
- katodu, záporný pól diody, zapojíme do
GND
- anodu do nějakého GPIO pinu (v mém případě do pinu
číslo
14
). GPIO port budeme ovládat pomocí Raspberry Pi a Pythonu a tím i rozsvěcet a zhasínat onu diodu.
Python a piny u Raspberry Pi
Protože v našich lekcích budeme k programování používat Python, řekneme si o něm dnes něco málo a podíváme se, co vše s piny umí.
Programovací jazyk Python
Python je víceúčelový programovací jazyk. Dá se využít k tvorbě webových služeb i desktopových aplikací a například se také velmi často používá pro výuku programování. Nenechte se ale zmást. Python je sice velmi dostupný programovací jazyk pro nováčky, ale plně se vyrovná jazykům jako jsou C#, C++ nebo Javě. Je rovněž multiplatformní, takže ho nebudeme mít problém používat jak na Windows, tak na Linuxu i na Mac OS.
Knihovny
Python podporuje standardní objektově orientované programování a jeho
velmi důležitou součástí jsou knihovny. Ty budeme hojně využívat při
našem programování. Jedná se o balíčky, které někdo vytvořil,
například balíček time
, který si importujeme a pomocí něj
pak můžeme pracovat s aktuálním časem. Python je vlastně základní
prostředí a my pro jeho vylepšení (protože neumí vše) používáme
knihovny. Je to jako, když máme mobil, ale mobil v základu třeba nemá
nainstalovaný Messenger, tak si ho prostě stáhneme.
K tomuto stahování se u Pythonu používá program pip
. Pip je
takový Google Play pro náš Python. Najdeme si na internetu knihovnu, kterou
chceme stáhnout a pak jen v cmd nebo terminálu zadáme např:
pip install time
Pip nám poté tuto knihovnu stáhne a my si jí pouze na začátku našeho Python programu importujeme. Více se můžete případně dozvědět ve zdejších kurzech zaměřených přímo na Python.
Python a knihovna GPIO
Už víme, že v Pythonu používáme knihovny. Hlavní knihovnou pro nás bude GPIO knihovna, protože s její pomocí budeme jednoduše ovládat GPIO porty. Co tato knihovna například umí?
- zapnout a vypnout nějaký GPIO pin
- nastavuje, jestli budeme používat číslování BCM nebo board
- nastavuje, jaký pin používáme
- dokáže "vyčistit" piny (smaže všechno nastavení pinů)
A to je jen malý seznam věcí, které budeme používat.
V příští lekci, Raspberry Pi - Jednoduchý semafor, si ukážeme, jak vytvořit jednoduchý semafor.