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

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

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

Teraz ładnie widać gdzie jaki mamy pin i dlaczego


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

więc starczy

pamiętając by nie przeciążyć pinów

Oto charakterystyka :

Moje podłączenia ...

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

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

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

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
Kod: Zaznacz cały
0

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

filmik obrazujący działanie opisanych tu komend ...
https://youtu.be/w_VjfM1ness
Miłej zabawy
