Skocz do zawartości
Komentator

Kurs Raspberry Pi - #12 - podstawy GPIO, skrypty

Pomocna odpowiedź

(edytowany)

Ostatnio sprawdzałem czy kurs jest aktualny dla nowego Raspberry Pi 4 i niestety program Wiring Pi nie jest dopracowany i posiada pewne błędy. Jeden z nich to niedziałająca funkcja pullup, której wykorzystanie można spotkać w przykładach z kursu.

W internecie nie ma o tym wzmianki, dlatego napisałem do autora biblioteki, który zwięźle odpisał, że funkcja ta faktycznie nie działa. Zapytany kiedy planuje ją dodać odpisał, że nie wie, następnie dodał, że biblioteka nie jest w najlepszym stanie i sugeruje przejść na inną. Zaproponował pigpio.

Możliwe, że Wiring Pi niedługo zostanie zaaktualizowany. Jeżeli tak się jednak nie stanie, można rozważyć przejście na pigpio. Możliwe jest też dodanie rezystora pullup we własnym zakresie lub skorzystanie z wbudowanych rezystorów znajdujących się na liniach I2C (GPIO 2 i 3). W tym ostatnim należy uważać żeby nie mieć włączonej alternatywnej funkcji (najczęściej I2C). W tym celu sprawdzamy poleceniem:

gpio readall

image.thumb.png.08c74698eb770c3e62d4ee255fd9ba16.png

Jak widać po włączeniu I2C w kolumnie mode zmieniła się funkcja alternatywna. Mając wyłączone I2C można korzystać z wbudowanego pullup.

Co do innych programów to w wersji full raspbiana zainstalowany jest już pigpio. Można też skorzystać z raspi-gpio. Wszystkie maja podobną konstrukcję poleceń:

Wiring Pi:

gpio -g mode 26 up

pigpio:

pigs pud 26 u

raspi-gpio:

raspi-gpio set 26 pu

Ten ostatni działa out-of-box, można sprawdzić poprawność poleceniem jak wyżej, lub tym z raspi-gpio:

raspi-gpio get

Jak widać działa:

image.thumb.png.8d49be3a42ee635bccfad0c5ca00ef9f.png

Edit:

gpiozero też radzi sobie dobrze. Biblioteka jest mniej elastyczna ale funkcjinalna.

 

Edytowano przez Gieneq
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Niedawno na blogu autora WiringPi pojawił się informacyjny wpis.

Wynika z niego, że wersja w pełni kompatybilna z RPi 4 niedługo się pojawi, a wraz z nią kod źródłowy do dalszego rozwoju.

Ogół newsa jest jednak negatywny i widać w nim rozgoryczenie autora (które również zauważyłem w prywatnym w mailu) - kradzież oprogramowania, niekontrolowane użytkowanie ostatecznie liczne skargi na brak wsparcia (użytkowników niekoniecznie produktów Raspberry). Jak można przeczytać w podsumowaniu, jest to najpewniej koniec tej biblioteki i nawet jeżeli autor będzie ją dalej rozwijał to nie będzie ona udostępniana i warto rozważyć przejście na inną.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites


#RPi 4
Cześć, do tego momentu wszystkie poprzednie rozdziały kursu przechodziłem bez problemów (udało się nawet bez większych problemów podpiąć do monitora z VGA 🙂 ), jednak przy tej części pojawił się problem z buzerem. Podpiąłem wszystko jak należy, niestety buzzer nie wydaje z siebie żadnego dźwięku. Myślałem, że jest to może spowodowane tym, że nie ma jeszcze aktualizacji (post wyżej) ale jak sprawdziłem voltomierzem na pinach buzzera pokazuje 3,3 V, wiec powinno wszystko działać. Czy jest możliwość żeby nowo-otwarty element był uszkodzony? Albo jak można inaczej sprawdzić jaki może być problem? Podepnę go jeszcze do Arduino, ale to chyba nic nie pomoże 😛 

Udostępnij ten post


Link to post
Share on other sites
12 minut temu, krzym2 napisał:

Czy jest możliwość żeby nowo-otwarty element był uszkodzony?

Wszystko jest możliwe, ale to raczej mało prawdopodobne 😉 Możesz spróbować podłączyć moduł buzzera do Arduino lub zwyczajnie podłączyć sygnał sterujący do masy. Buzzer powinien wtedy wydawać ciągły dźwięk (oczywiście, jeśli doprowadzisz do modułu dodatkowo zasilanie).

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@Treker Buzer działa. Będę próbował z biblioteką pigpio 😉 Dam znać jak coś wyjdzie.

#EDIT Wszystko działa ale w pigpio

 

Edytowano przez krzym2
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Miałem dokładnie ten sam problem z Raspberry Pi 4 B 4GB.

Ćwiczenie z buzzerem sterowanym przez stan pinu 32 (IO12) nie działało przy wykorzystaniu polecenia gpio z biblioteki wiringPi, jednak nie było żadnego problemu ze sterowaniem w buzzerem w sposób podany w ćwiczeniu ze sterowaniem diodą, tzn. poprzez polecenie echo:
 

echo 12 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio12/direction

i dalej w zależności od potrzeb:

włączenie:

echo 0 > /sys/class/gpio/gpio12/value

wyłączenie:

echo 1 > /sys/class/gpio/gpio12/value

Wniosek: buzzer jest sprawny, a problem jest gdzie indziej...

Pomogło uaktualnienie do wiringPi 2.52:

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

Niestety, jak można doczytać http://wiringpi.com/wiringpi-deprecated/ - biblioteka ta raczej nie będzie już rozwijana... 😞

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@PrzPrz cieszę się, że udało Ci się rozwiązać problem 🙂 Mamy świadomość, że ta biblioteka nie będzie już rozwijana, więc będziemy wymieniać ją we wszystkich naszych materiałach. Czekamy jednak specjalnie "jak najdłużej", aby cała sytuacja z RPi4 się ustabilizowała.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...