Raspberry Pi je deska založená na procesoru architektury ARM určená pro elektronické inženýry a fandy. PI je jednou z nejdůvěryhodnějších platforem pro vývoj projektů. Díky vyšší rychlosti procesoru a 1 GB RAM lze PI použít pro mnoho vysoce profilovaných projektů, jako je zpracování obrazu a IoT.
Při provádění některého z vysoce profilovaných projektů je třeba porozumět základním funkcím PI. V těchto cvičeních se budeme věnovat všem základním funkcím Raspberry Pi. V každém tutoriálu probereme jednu z funkcí PI. Na konci této série tutoriálů Raspberry Pi se budete moci naučit Raspberry Pi a dělat dobré projekty sami. Projděte si níže výukové programy:
- Začínáme s Raspberry Pi
- Konfigurace Raspberry Pi
- LED Blinky
- Rozhraní tlačítek
- Generace PWM Raspberry Pi
- Rozhraní LCD s Raspberry Pi
- Ovládání stejnosměrného motoru
- Ovládání krokového motoru
- Propojení posuvného registru
- Výukový program ADC pro Raspberry Pi
- Ovládání servomotoru
- Kapacitní dotyková podložka
V tomto tutoriálu provedeme rozhraní segmentového zobrazení Raspberry Pi 7. Sedmisegmentové displeje jsou nejlevnější pro zobrazovací jednotku. Několik těchto segmentů naskládaných dohromady by mohlo být použito k zobrazení teploty, hodnoty čítače atd. Připojíme 7segmentovou zobrazovací jednotku k GPIO PI a budeme je řídit odpovídajícím způsobem. Poté napíšeme program v PYTHONU pro zobrazení sedmi segmentů na počty 0-9 a resetujeme se na nulu.
Sedmisegmentový displej:
Existují různé typy a velikosti 7 segmentových displejů. Sedm segmentům jsme podrobně popsali práci. V zásadě existují dva typy 7 segmentů, typ běžné anody (společný pozitivní nebo společný VCC) a typ společný katoda (společný negativní nebo společný základ).
Společná anoda (CA): V tomto jsou všechny záporné svorky (katoda) všech 8 LED spojeny dohromady (viz obrázek níže), pojmenované jako COM. A všechny kladné svorky zůstávají samy.
Společná katoda (CC): V tomto jsou všechny kladné svorky (anody) všech 8 LED spojeny dohromady, pojmenovaných jako COM. A všechny negativní termiky zůstávají samy.
Tyto sedmisegmentové displeje CC a CA přicházejí velmi vhod při multiplexování několika buněk dohromady. V našem tutoriálu použijeme CC nebo Common Cathode Seven Segment Display.
Už jsme propojili 7 segmentů s 8051, s Arduino a s AVR. V mnoha našich projektech jsme také použili sedmisegmentový displej.
Než půjdeme dále, probereme něco o Raspberry Pi GPIO, V Raspberry Pi 2 je 40 výstupních pinů GPIO. Ale ze 40 lze naprogramovat pouze 26 pinů GPIO (GPIO2 až GPIO27), viz obrázek níže. Některé z těchto pinů plní některé speciální funkce. Se speciálním GPIO odloženým stranou nám zbývá 17 GPIO.
Signál GPIO (pin 1 nebo 17) +3,3 V stačí k ovládání 7segmentového displeje. Abychom poskytli proudový limit, použijeme pro každý segment rezistor 1KΩ, jak je znázorněno v schématu zapojení.
Chcete-li se dozvědět více o pinech GPIO a jejich aktuálních výstupech, projděte si: LED bliká s Raspberry Pi
Požadované komponenty:
Zde používáme Raspberry Pi 2 Model B s Raspbian Jessie OS. Všechny základní požadavky na hardware a software jsou dříve diskutovány, můžete si je vyhledat v úvodu k Raspberry Pi, kromě toho, co potřebujeme:
- Spojovací kolíky
- Společný sedmidílný displej Cathode (LT543)
- 1KΩ rezistor (8 kusů)
- Nepájivá deska
Vysvětlení obvodu a práce:
Níže jsou uvedena připojení, která se provádějí pro zobrazení segmentového rozhraní 7 na Raspberry Pi. Zde jsme použili segment Common Cathode 7:
PIN1 nebo e ------------------ GPIO21
PIN2 nebo d ------------------ GPIO20
PIN4 nebo c ------------------ GPIO16
PIN5 nebo h nebo DP ---------- GPIO 12 // není povinné, protože nepoužíváme desetinnou čárku
PIN6 nebo b ------------------ GPIO6
PIN7 nebo ------------------ GPIO13
PIN9 nebo f ------------------ GPIO19
PIN10 nebo g ---------------- GPIO26
PIN3 nebo PIN8 ------------- připojeno k uzemnění
Budeme tedy používat 8 GPIO pinů PI jako 8bitový PORT. Zde GPIO13 je LSB (nejméně významný bit) a GPIO 12 je MSB (nejvýznamnější bit).
Nyní, pokud chceme zobrazit číslem „1“, je třeba, aby napájecí segmentů B a C. K napájení segmentu B a C musíme napájet GPIO6 a GPIO16. Bajt pro funkci „PORT“ bude tedy 0b00000110 a hexadecimální hodnota „PORT“ bude 0x06. Když jsou oba piny vysoké, zobrazí se „1“.
Napsali jsme hodnoty pro každou číslici, které se mají zobrazit, a tyto hodnoty jsme uložili do řetězce znaků s názvem „DISPLAY“ (viz část Kód níže). Pak jsme tyto hodnoty zavolali jednu po druhé, abychom pomocí funkce „PORT“ zobrazili na displeji odpovídající číslici.
Vysvětlení programování:
Jakmile je vše připojeno podle schématu zapojení, můžeme zapnout PI pro zápis programu do PYHTONU.
Budeme mluvit o několika příkazech, které budeme používat v programu PYHTON, Chystáme se importovat soubor GPIO z knihovny, níže uvedená funkce nám umožňuje programovat GPIO piny PI. Přejmenováváme také „GPIO“ na „IO“, takže v programu, kdykoli budeme chtít odkazovat na piny GPIO, použijeme slovo „IO“.
importovat RPi.GPIO jako IO
Někdy, když piny GPIO, které se snažíme použít, mohou dělat nějaké další funkce. V takovém případě obdržíme varování při provádění programu. Níže uvedený příkaz říká PI, aby ignoroval varování a pokračoval v programu.
IO.setwarnings (False)
Můžeme označit GPIO piny PI, buď číslem kolíku na desce, nebo jejich číslem funkce. Jako „PIN 29“ na desce je „GPIO5“. Řekneme tedy, že zde buď budeme reprezentovat špendlík číslem '29' nebo '5'.
IO.setmode (IO.BCM)
Nastavujeme 8 pinů GPIO jako výstupní piny pro Data a Control piny na LCD.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
V případě, že je podmínka ve složených závorkách pravdivá, budou příkazy uvnitř smyčky provedeny jednou. Pokud je tedy bit0 8bitového „kolíku“ pravdivý, bude PIN13 HIGH, jinak bude PIN13 LOW. Pro bit0 až bit7 máme osm podmínek „if else“, takže příslušná LED dioda uvnitř 7segmentového displeje může být nastavena na High nebo Low pro zobrazení odpovídajícího čísla.
if (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Tento příkaz provede smyčku 10krát, x se zvýší od 0 do 9.
pro x v rozsahu (10):
Níže uvedený příkaz se používá jako navždy smyčka, s tímto příkazem budou příkazy uvnitř této smyčky prováděny nepřetržitě.
Zatímco 1:
Všechny ostatní funkce a příkazy byly vysvětleny v sekci „Kód“ pomocí „Komentáře“.
Po napsání programu a jeho spuštění spustí Raspberry Pi odpovídající GPIO, aby zobrazil číslici na 7segmentovém displeji. Program je zapsán tak, aby se na displeji neustále počítalo od 0 do 9.