W poprzednim wpisie o BeagleBone Black pisaliśmy o złączach GPIO oraz dostępnych bibliotekach do zarządzania IO. W tej części przedstawimy jak za pomocą BBBlack oraz biblioteki do Pythona sterować diodami, a żeby nie było nudno zrobimy efekt świetlny, który posiadał na przedniej masce samochód “Nieustraszony” David’a Hasselhoff’a.

A oto jak prezentuje się nasza praca:

Lista zakupów

Do przygotowania efektu potrzebować będziemy następujące komponenty:

Instalacja biblioteki w systemie Ångström

Po uruchomieniu BeagleBone Black musimy pobrać i zainstalować biblioteki dla Pythona do obsługi IO BBBlack. Otwieramy przeglądarkę i wpisujemy:

http://beaglebone.local

Abyśmy mogli zalogować się do naszego BBB, wpisujemy następujące polecenia (zakładając użytkownika root w świeżej instalacji systemu):

Host/IP lub SSH URL [localhost]: beaglebone.local
Port [22]: (wystarczy wcisnąć Enter)
User: root
Connecting to <code>ssh://root@beaglebone.local:22</code>

Możemy także podłączyć się zdalnie do naszego BBB poprzez SSH (użytkownik: root, hasło: puste). Aktualizujemy czas zegara, aby nie było problemów z łącznością z repozytoriami:

/usr/bin/ntpdate -b -s -u pool.ntp.org

następnie instalujemy potrzebne pakiety oraz instalujemy bibliotekę.

opkg update && opkg install python-pip python-setuptools python-smbus
pip install Adafruit_BBIO

Po instalacji sprawdzimy czy biblioteki zainstalowały się poprawnie wpisując w konsoli

python -c "import Adafruit_BBIO.GPIO as GPIO; print GPIO"

Powinniśmy wtedy zobaczyć mniej więcej taką odpowiedź

<module 'Adafruit_BBIO.GPIO' from '/usr/local/lib/python2.7/dist-packages/Adafruit_BBIO/GPIO.so'>

Jeśli otrzymaliśmy taką odpowiedź możemy już brać się za pisanie programów.

Montaż układu

Poniżej znajduje się schemat układu jaki musimy zbudować do naszych testów. Podpinamy diody do pinów w rzędzie P8  od 7 do 15, zaś GDN podłączamy do pinu 2. (schemat złącz GPIO w BeagleBone Black).

Sterowanie diodami w BeagleBone Black - schemat podłączenia diód

Pierwszy program

Po zmontowaniu układu napiszemy prosty program za pomocą, którego pierwsza dioda z układu podłączona do portu GPIO66 na P8 (pin7) będzie migać.

W konsoli wpisujemy:

# nano dioda.py

I piszemy taki program:

import Adafruit_BBIO.GPIO as GPIO
import time

GPIO.setup("P8_7", GPIO.OUT)

while True:
    GPIO.output("P8_7", GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output("P8_7", GPIO.LOW)
    time.sleep(0.5)

zapisujemy plik (CTRL-x) i uruchamiamy program:

# python dioda.py

Po uruchomieniu nasza dioda powinna zacząć migać.
Gdy już nam się znudzi miganie diody zatrzymujemy program CTRL-c.

Efekt świetlny

Teraz zabieramy się za projekt efektu świetlnego z “Nieustraszonego”.
W konsoli wpisujemy

# nano nieustraszony.py

I piszemy taki program:

import Adafruit_BBIO.GPIO as GPIO
import time

GPIO.setup("P8_7", GPIO.OUT)
GPIO.setup("P8_8", GPIO.OUT)
GPIO.setup("P8_9", GPIO.OUT)
GPIO.setup("P8_10", GPIO.OUT)
GPIO.setup("P8_11", GPIO.OUT)
GPIO.setup("P8_12", GPIO.OUT)
GPIO.setup("P8_13", GPIO.OUT)
GPIO.setup("P8_14", GPIO.OUT)
GPIO.setup("P8_15", GPIO.OUT)

while True:
    for i in range(7, 15):
        GPIO.output("P8_%i" % (i), GPIO.HIGH)
        time.sleep(0.05)
        GPIO.output("P8_%i" % (i+1), GPIO.HIGH)
        time.sleep(0.05)
        GPIO.output("P8_%i" % (i), GPIO.LOW)
        time.sleep(0.05)

    for i in range(15, 7, -1):
        GPIO.output("P8_%i" % (i), GPIO.HIGH)
        time.sleep(0.05)
        GPIO.output("P8_%i" % (i-1), GPIO.HIGH)
        time.sleep(0.05)
        GPIO.output("P8_%i" % (i), GPIO.LOW)
        time.sleep(0.05)

zapisujemy plik (CTRL-x) i uruchamiamy program:

# python nieustraszony.py

Po uruchomieniu nasze diody powinny zachowywać się podobnie jak diody na samochodzie “Nieustraszonego”. Gdy już nam się znudzi miganie zatrzymujemy program Ctrl+c.

Artykuł ten jest częścią serii o BeagleBone Black. Za dostarczenie płytki dziękujemy BOTLAND.com.pl