Zápisník experimentátora
Hierarchy: Orange Pi
WiringOP je modifikace knihovny WiringPi pro Orange Pi. Umožňuje ovládat GPIO vývody na desce. Vývody na desce se nacházejí na 26-pinovém konektoru. Orange Pi Zero se prodává bez připájeného konektoru. Ten je třeba připájet, aby se dalo s vývody pracovat. Je na vašem rozhodnutí, jaký konektor připájíte. Já jsem dal přednost samčí verzi, protože na desce už je připájen jeden takový konektor.
Budeme potřebovat tyto komponenty:
Zdrojový kód knihovny se nachází na stránce https://github.com/zhaolei/WiringOP. Přesuňte se do svého domovského adresáře a použijte git
k vytvoření kopie adresáře. Není to překlep, ve vzdáleném repozitáři je opravdu větev h3
. Potom změňte oprávnění na souboru build
a nainstalujte knihovnu.
git clone https://github.com/zhaolei/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build
Po instalaci spusťte příkaz gpio readall
. Získáte tabulku aktuálního nastavení GPIO pinů. Tabulka se může zdát na první pohled nepřehledná, ale pro vás je podstatný pouze sloupec wPI
, Mode
a V
. Nejasně působí i to, že v tabulce máte 40 pinů a na desce pouze 26. Pro vás to znamená to, že ignorujete piny s číslem větším než 26.
Následující příklady jsou nastaveny pro pin 7. Jeho číslo naleznete ve sloupci wPI v řádku GPIO.7
. Pokud připojíte na pin 7 modrou LED diodu a rezistor 4k7, budete vidět i výsledek. Pokud necháte piny nezapojené, můžete si výsledek zkontrolovat příkazem gpio readall
.
gpio mode 7 out
- Nastaví pin jako výstupní.gpio write 7 on
- Nastaví na pinu logickou jednotku.gpio write 7 off
- Nastaví na pinu logickou nulu.Program gpio má mnoho různých parametrů. Tyto posloužily pouze na ukázku možností.
Knihovnu můžeme využít ve svých programech. Například program Blink v C++ vypadá takto. V programu se nezapře inspirace ve vývojovém prostředí Arduina.
#include <stdio.h>
#include <wiringPi.h>
#define LED 7
int main (void)
{
printf ("Orange Pi Zero blink\n");
wiringPiSetup();
pinMode(LED, OUTPUT);
for (;;)
{
digitalWrite(LED, HIGH); // On
delay(500); // mS
digitalWrite(LED, LOW); // Off
delay(500);
}
return 0;
}
Zkompilujeme jej pomocí příkazu.
gcc -o blink blink.c -lwiringPi
Spustíme jej pomocí příkazu.
sudo ./blink
Program musíme spustit s právy superuživatele, protože ovládá GPIO porty.
Zdrojový kód se nachází na serveru GitHub.
03.10.2017