LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Raspberry π VIII. - Úvod do GPIO

Ale Raspberry Pi toho dokáže ještě víc. Můžeme jej využít i jako zázemí pro nízkoúrovňovou práci s hardwarem, tedy s různými blikátky, hejblátky a tlačítky. A kdo ví, třeba bude Raspberry jednou mozkem nového pána tvorstva - Robota.

10.10.2012 21:00 | Petr Horáček | Články autora | přečteno 52178×

Určitě jste si na destičce Raspberry všimli dvou řad pinů, ty slouží k nízko úrovňové komunikaci s hardwarem. Můžeme pomocí nich například rozsvítit LEDku, spustit servo motor, zobrazit čísla na displayi a podobně. Hardwarová část (tedy “zbastlené” zařízení připojené na ony piny) je poté ovládána pomocí softwaru běžícím v Raspberry. V této části seriálu se vymaníme z čistě softwarových záležitostí a krátce nahlédneme do světa hardwaru ač velice jednoduchého (přesto bude nutné znát alespoň elementární základy elektroniky).

V dnešním díle si představíme funkce jednotlivých pinů, možnosti zapojování a možnosti programování.

GPIO

GPIO nebo General Purpose Input/Output jsou piny, tedy jakési vývody, které lze programovat pomocí softwaru. Do těchto pinů lze posílat elektrický signál nebo jej z nich naopak přijímat, tím lze ve finále pracovat s připojeným hardware na té nejnižší úrovní.

Na Raspberry je takových vývodů celkem 26. GPIO vývodů je zde standardně 8, krom nich se zde nachází i dva piny pro UART, dva pro I2C a šest pro SPI, ty však jdou také přenastavit pro GPIO využití. Nesmíme zapomenout ani na dva výstupy s napětím (3,3V a 5V) a zem.

Při používání jakéhokoliv pinu dávejte veliky pozor, jsou totiž připojeny bez ochrany přímo na čip (narozdíl třeba od Arduina) a ten zvládá napětí nanejvíš 3,3V. Nikdy tedy nezapojujte do pinů napětí 5V, v opačném případě by mohlo dojít ke zničení polovodičového srdce Raspberry. Tak dvakrát měř a jednou řež.

Značení pinů

Co nás nožná bude z počátku mást, je značení jednotlivých pinů, jiná jména jsou jim přiřazena z pohledu značení Raspberry, jiná z pohledu procesoru a jiná z pohledu knihovny RPi.GPIO, kterou si ještě v dnešním článku představíme.

Dále předkládám obrázek se značením pinů, které platí pro značení Raspberry.

A zde je tabulka pro převody mezi značeními:

Číslo pinu Raspberry Pi RPi.GPIO Čip
P1-01 3V3 1
P1-02 5V0 2
P1-03 SDA0 3 GPIO0
P1-04 DNC 4
P1-05 SCL0 5 GPIO1
P1-06 GND (zem) 6
P1-07 GPIO7 7 GPIO4
P1-08 TXD 8 GPIO14
P1-09 DNC 9
P1-10 RXD 10 GPIO15
P1-11 GPIO0 11 GPIO17
P1-12 GPIO1 12 GPIO18
P1-13 GPIO2 13 GPIO21
P1-14 DNC 14
P1-15 GPIO3 15 GPIO22
P1-16 GPIO4 16 GPIO23
P1-17 DNC 17
P1-18 GPIO5 18 GPIO24
P1-19 SPI_MOSI 19 GPIO10
P1-20 DNC 20
P1-21 SPI_MISO 21 GPIO9
P1-22 GPIO6 22 GPIO25
P1-23 SPI_SCLK 23 GPIO11
P1-24 SPI_CE0_N 24 GPIO8
P1-25 DNC 25
P1-26 SPIO_CE1_N 26 GPIO7

Hardware

Co budeme krom samotného Raspberry potřebovat? Vystačíme si s málem, v dalších dílech budu k bastlení používat nepájivou propojovací desku na zkoušení obvodů, propojení mezi deskou a počítačem pak budu řešit jednoduchými drátky z ribbon kabelu. Krom toho použijeme odpory, LEDky, spínače apod., to si ale upřesníme v jednotlivých dílech tohoto seriálu v seriálu.

Pokud ale budete chtít víc než tento primitivní (avšak pro náš účel dostačující) základ, můžete si koupit jednu z již hotových desek (či stavebnici) se spoustou součástek, k dispozici je třeba deska Getboard nabízející spoustu funkcí a dovedností.

Programování

Pro samotné programování jsem použil nejnovější verzi distribuce Raspbianu (z 18. září), v jeho nastavení je mimochodem vestavěná nová možnost - přetaktování, té jsem hned využil, a tak mi Raspberry běží s frekvencí celého gigahertze.

Aplikace pro ovládání GPIO můžeme psát v C, Javě, Pythonu, Perlu, Shellu a dalších jazycích, příklady skriptů si můžete prohlédnout na webu elinux.org. Já pro tento seriál zvolil Python, práce v něm je jednoduchá, kód je jaksi “malý” a navíc je programovačně-jazyčnou vlajkovou lodí Raspberry Pi. Pro editaci kódu budu používát vestavěné Python IDLE.

Pro práci s GPIO si doinstalujeme jednu malou pythonovskou knihovnu, díky které budeme moci k pinům přistupovat bez zbytečné námahy, rychle a krátce. Například rozsvícení LEDky se vejde na pouhé tři řádky kódu. Pro instalaci této knihovny vložte do terminálu (LXTerminalu) následující příkazy:

wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.1.0.tar.gz
tar zxf RPi.GPIO-0.1.0.tar.gz
cd RPi.GPIO-0.1.0
sudo python setup.py install

Po úspěšné instalaci by měl být počítač připraven ke GPIO programování, to si ale předvedeme až v dalším díle - sestavíme si obvod s LED, kterou rozblikáme pomocí Pythonu.

Závěr

A to je vše, doufám, že vás tento úvod do nízkoúrovňového programování hardwaru na Raspberry Pi zaujal.

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

4.9.2016 20:13 /Pavel `Goldenfish' Kysilka
PR: Dne 22.9.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, provozování ERP v cloudu, o hostování různých typů softwaru, ale třeba i o zálohování dat nabízeném podnikům formou služby.
Přidat komentář

1.9.2016 11:27 /Honza Javorek
Česká konference o Pythonu, PyCon CZ, stále hledá přednášející skrz dobrovolné přihlášky. Máte-li zajímavé téma, neváhejte a zkuste jej přihlásit, uzávěrka je již 12. září. Konference letos přijímá i přednášky v češtině a nabízí pomoc s přípravou začínajícím speakerům. Řečníci mají navíc vstup zadarmo! Více na webu.
Přidat komentář

27.8.2016 8:55 /Delujek
Dnes po 4 letech komunitního vývoje vyšla diaspora 0.6.0.0
diaspora* je open-source, distribuovaná sociální síť s důrazem na soukromý
Více v oficiálním blog-postu
Přidat komentář

24.8.2016 6:44 /Ondřej Čečák
Poslední týden CFP LinuxDays 2016; pokud byste rádi přednášeli na LinuxDays 2016 8. a 9. října v Praze, můžete svůj příspěvek přihlásit, následovat bude veřejné hlasování.
Přidat komentář

9.8.2016 22:56 /Petr Ježek
Zařazení souborového systému reiser4 do jádra 4.7 znamená konečně konec patchování jádra jen kvůli možnosti použít reiser4.
Přidat komentář

12.7.2016 13:14 /František Kučera
Spolek OpenAlt zve na 130. distribuovaný sraz příznivců svobodného softwaru a otevřených technologií (hardware, 3D tisk, SDR, DIY, makers…), který se bude konat ve čtvrtek 21. července od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

11.7.2016 16:53 /Redakce Linuxsoft.cz
Konference LinuxDays hledá přednášející. Přihlášky poběží do konce prázdnin, v září bude hlasování a program. Více na https://www.linuxdays.cz/2016/cfp/.
Přidat komentář

8.5.2016 17:19 /Redakce Linuxsoft.cz
PR: Dne 26.5.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, cloudové služby, infrastruktura cloudu, efektivní využití cloudu, možné nástrahy cloudů a jak se jim vyhnout
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

19.9.2016 21:04 / Marek Schoř
Poděkování

1.9.2016 13:07 / Walker
hardwood floor refinishing

12.8.2016 11:51 / Josef Zapletal
Jak udělat HTML/Javascript swiping gallery do mobilu?

8.8.2016 14:58 / Adams
fairies for hire

28.7.2016 15:51 / pepan
Re: NetBeans vs Eclipse

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2016) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze