Orange Pi Zero - WiringOP

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.

Použité súčiastky

Budeme potrebovať tieto komponenty:

  • Orange Pi Zero (link) - Používam verziu s 512 MB RAM.
  • SD karta - Je potrebné používať SD kartu Class 10. Stačí vám veľkosť 8 - 16 GB. Na SD karte musí byť nainštalovaný operačný systém Armbian. Ja som použil verziu Armbian 5.30, Debian Jessie 3.4.113.
  • Zdroj s koncovkou micro USB - Doma určite budete mať nabíjačku pre mobilný telefón. Na napájanie Orange Pi Zero nepotrebujete kupovať špeciálnu. Len si treba skontrolovať, či je schopná dodať 1,5 - 2 A.
  • Ethernet kábel alebo Wi-Fi - Toto závisí od toho, ako ste si Orange Pi Zero nastavili. Pokiaľ vám neprekáža, že musí byť pripojené k routeru cez Ethernet kábel, je to najjednoduchší spôsob. Ak ste si nastavili Wi-Fi, môžete mať svoje Orange Pi Zero umiestnené kdekoľvek v byte.
  • Mini breadboard (link)
  • Rezistor 4k7
  • Modrá LED dióda

Inštalácia knižnice WiringOP

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

Zistenie stavu GPIO pinov

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.

Nastavenie GPIO pinu

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

Blink v C++

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

Zdrojový kód sa nachádza na serveri GitHub.


02.10.2017


Menu