Zápisník experimentátora
Hierarchy: Orange Pi
WiringOP je modifikácia knižnice WiringPi pre Orange Pi. Umožňuje ovládať GPIO vývody na doske. Vývody na doske sa nachádzaju na 26-pinovom konektore. Orange Pi Zero sa predáva bez prispájkovaného konektora. Ten je potrebné prispájkovať, aby sa dalo s vývodmi pracovať. Je na vašom rozhodnutí, aký konektor prispájkujete. Ja som dal prednosť samčej verzii, pretože na doske už je prispájkovaný jeden takýto konektor.
Budeme potrebovať tieto komponenty:
Zdrojový kód knižnice sa nachádza na stránke https://github.com/zhaolei/WiringOP. Presuňte sa do svojho domovského adresára a použite git
na vytvorenie kópie adresára. Nie je to preklep, vo vzdialenom repozitári je naozaj vetva h3
. Potom zmeňte oprávnenie na súbore build
a nainštalujte knižnicu.
git clone https://github.com/zhaolei/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build
Po inštalácii spustite príkaz gpio readall
. Získate tabuľku aktuálneho nastavenia GPIO pinov. Tabuľka sa môže zdať na prvý pohľad neprehľadná, ale pre vás je podstatný iba stĺpec wPi
, Mode
a V
. Mätúco pôsobí aj to, že v tabuľke máte 40 pinov a na doske iba 26. Pre vás to znamená to, že ignorujete piny s číslom väčším ako 26.
Nasledujúce príklady sú nastavené pre pin 7. Jeho číslo nájdete v stĺpci wPi
v riadku GPIO.7
. Ak pripojíte na pin 7 modrú LED diódu a rezistor 4k7, budete vidieť aj výsledok. Ak necháte piny nezapojené, môžete si výsledok skontrolovať príkazom gpio readall
.
gpio mode 7 out
- Nastaví pin ako výstupný.gpio write 7 on
- Nastaví na pine logickú jednotku.gpio write 7 off
- Nastaví na pine logickú nulu.Program gpio
má veľa rôznych parametrov. Tieto poslúžili iba na ukážku možností.
Knižnicu môžeme využiť vo svojich programoch. Napríklad program Blink v C++ vyzerá takto. V programe sa nezaprie inšpirácia vo vývojovom prostredí 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;
}
Skompilujeme ho pomocou príkazu.
gcc -o blink blink.c -lwiringPi
Spustíme ho pomocou príkazu.
sudo ./blink
Program musíme spustiť s právami superužívateľa, pretože ovláda GPIO porty.
Zdrojový kód sa nachádza na serveri GitHub.
02.10.2017