Pine A64 -- Obsługa GPIO

Programowanie, Dostęp do GPIO, Systemy, Modyfikacje
Wszystko o Pine64
ODPOWIEDZ
Awatar użytkownika
SunRiver
Administrator
Posty: 494
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Opole
Kontakt:

Pine A64 -- Obsługa GPIO

Post autor: SunRiver » 10 lut 2018, 15:24

Pine A64 To ciekawy mini Komputerek posiada na swoim pokładzie sporo portów i pinów
w tym EulerBUS, EXP i oczywiście to co nas zainteresuje PI2-BUS

W sumie zapalenie diody nie powinno nam sprawić kłopotu zatem do dzieła :P

Identyfikacja PINÓW złącza Pi2-BUS :

Obrazek

żeby było jaśniej tu mamy interesujący nas fragment Pi-2 Bus :

Obrazek

Teraz ładnie widać gdzie jaki mamy pin i dlaczego :) co nam zdecydowanie znacząco ułatwi życie :)
W tym przykładzie posłużymy się też chaOSem w postaci obrazu jebuntu ... do pobrania tutaj:

Xubuntu-xenial-mate

obraz wymaga karty SD co najmniej 8GB -- zalecam 16 /32 GB ....
Tylko dlatego użyjemy tego obrazu gdyż ma zaimplementowane już klasy GPIO wiec unikniemy kłopotliwego instalowania w chaOS-ie :)

No dobra więc weźmy się do roboty ,,...

Sprzęt .....


-- ja użyję sobie 2 relay Module dla Arduino ... dla ciekawszego efektu wizualnego :) mam diodę i PK
więc starczy :) Oczywiście możecie sobie użyć np diody LED czy cokolwiek wam się podoba ,
pamiętając by nie przeciążyć pinów :)

Oto charakterystyka :
Obrazek

Moje podłączenia ...

Obrazek


Zdaniem grupy linuxowej sunXi można port GPIO zidentyfikować wg wzoru :

(pozycja litery portu w alfabecie - 1) * 32 + numer pinu

całkiem ciekawa sprawa zatem ok ... weźmy sobie port GPIO PC7 ... , który to jest na złączu Pi-2 jako PIN11 co można sobie policzyć korzystając ze w/w wzoru ...
czyli liczymy tak ...

- C jest na 3 pozycji alfabetu , 7 jest numerem portu GPIO zatem łatwo policzyć sobie parametry podstawiając dane do wzoru ...

(3-1)*32+7 = 71


hmm... sprawdźmy zatem czy uzyskany numer GPIO jest prawidłowy .... dla kanału w ChaOSie ...

Obrazek

Zgadza się ... musimy obsłużyć kanał 71 dla PC7

I w tym celu ładnie posłużymy się powłoką by sprawdzić ... czy jest ok ... w tym celu wpiszemy kilka magicznych komend :)

Odpalamy terminal pod X np mate czy też wciskamy CTRL+ALT+TAB+F3 (np) by uzyskać dostęp do konsoli na naszym PINE ...
 ! Wiadomość z: SunDUINO INFO
CTRL+ALT+TAB+Fxx umożliwia łatwe przełączanie się miedzy konsolami :
F1 - F6 to konsole Textowe tty1 ... tty6
F7 - konsola z powłoką graficzną

Niekiedy działa tez CTRL+ALT+Fxx
Zatem wpisujemy magiczne komendy na wybranej konsoli ... każdy wiersz potwierdzając enterem :)

Kod: Zaznacz cały

 
sudo -i     // będzie wymagało podania hasła użytkownika root i umożliwi uruchamianie 
               // komend z prawami
               
cd /sys/class/gpio    //uzyskujemy dostęp do klas gpio (w sumie to ich folderu)
echo 71 > export       // tworzymy sobie uchwyt powłoki dla naszego portu 71
cd /gpio71                // otwieramy " utworzony" uchwyt dla GPIO

echo "out" > direction   // ustawiamy kierunek pinu jako wyjście  -- powinna się teraz zaświecić
                                   // podłączona do pinu dioda :)
// ---------------------------------------------------------------------------------------

echo 1 > value     // ustawia stan Hi na pinie
echo 0 > value     // ustawia stan Lo na pinie



Obrazek

Jak widać nasza dioda zapala się i gaśnie poprzez komendy powłoki ....

Obrazek

No dobrze .... jak fajnie że nam działa więc cel osiągnięty , a spróbujmy więc po wydawać magiczne komendy i sprawdzić jaki jest poziom pinu ustawiony ...

Kod: Zaznacz cały


echo "in" >  direction
cat value



uzyskamy informację :
co oznacza że mamy ustawiony stan Lo na pinie w moim wypadku włączony PK i LED :)

No to teraz możemy sobie pomigać ledem pisząc prosty skrypt powłoki :)

Kod: Zaznacz cały


!/bin/sh
GPIO_PORT=/sys/class/gpio/gpio71
GPIO_VALUE=$GPIO_PORT/value

while true
do
        echo Ustaw Hi dla  $GPIO_PORT
        echo 1 > $GPIO_VALUE
        sleep 1
        echo Ustaw Lo dla  $GPIO_PORT
        echo 0 > $GPIO_VALUE
        sleep 1
done

Po uruchomieniu naszego skryptu ... port zmienia stan co ok 1sek :)

filmik obrazujący działanie opisanych tu komend ...

https://youtu.be/w_VjfM1ness

Miłej zabawy :)
.... z każdym bitem serca ....
💫SunDUINO
💦Google+
💦Kanał Youtube
💦Sotton

Awatar użytkownika
l3n1n
Moderator
Posty: 189
Rejestracja: 28 paź 2017, 8:46
Lokalizacja: 3M

Re: Pine A64 -- Obsługa GPIO

Post autor: l3n1n » 10 lut 2018, 16:46

No to naprawdę fajny art :)

Awatar użytkownika
SunRiver
Administrator
Posty: 494
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Opole
Kontakt:

Re: Pine A64 -- Obsługa GPIO

Post autor: SunRiver » 11 lut 2018, 15:07

Czy ja wiem .... czy fajny ??
Ale mam nadzieję że kogoś natchnie i tym sposobem powstanie coś
ciekawego :) mamy tu też tzw ... shitów (linuxowa wersja Sitha) , którzy mam nadzieję
się przyłączą jak nie na pine64 to może odroid , bigglebone czy przycisk do papieru rPi nie ważne
=====

ze swojej strony niebawem zapodam to samo ale pod Win IoT :)
w zasadzie wszystko jest do siebie podobne i każdą drogą którą pójdziemy można osiągnąć cel ...
:P
.... z każdym bitem serca ....
💫SunDUINO
💦Google+
💦Kanał Youtube
💦Sotton

ODPOWIEDZ