Orange Pi Zero - WiringOP

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.

Použité součástky

Budeme potřebovat tyto komponenty:

  • Orange Pi Zero (link) - Používám verzi s 512 MB RAM.
  • SD karta - Je třeba používat SD kartu Class 10. Stačí vám velikost 8 - 16 GB. Na SD kartě musí být nainstalován operační systém Armbian. Já jsem použil verzi Armbian 5.30, Debian Jessie 3.4.113.
  • Zdroj s koncovkou micro USB - Doma určitě budete mít nabíječku pro mobilní telefon. K napájení Orange Pi Zero nepotřebujete kupovat speciální. Jen si třeba zkontrolovat, zda je schopná dodat 1,5 - 2 A.
  • Ethernet kabel anebo Wi-Fi - Toto závisí na tom, jak jste si Orange Pi Zero nastavili. Pokud vám nevadí, že musí být připojeno k routeru přes Ethernet kabel, je to nejjednodušší způsob. Pokud jste si nastavili Wi-Fi, můžete mít své Orange Pi Zero umístěno kdekoliv v bytě.
  • Mini breadboard (link) - Nepájivé pole.
  • Rezistor 4k7
  • Modrá LED dioda

Instalace knihovny WiringOP

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

Zjištění stavu GPIO pinů

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.

Nastavenie GPIO pinu

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í.

Blink v C++

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

Zdrojový kód se nachází na serveru GitHub.


03.10.2017


Menu