Skocz do zawartości

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
  • 4 tygodnie później...

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
  • 3 tygodnie później...


#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 😛 

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
(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
  • 1 miesiąc później...
  • 10 miesiące później...
pi@raspberrypi:~ $ sudo echo 1 > /sys/class/gpio/gpio21/vaule
bash: /sys/class/gpio/gpio21/vaule: Brak dostępu

Przy próbie zaświecenia diody pokazało mi się takie coś. Może ktoś pomóc? Robiłem wszystko zgodnie z opisem.

14 minut temu, Gieneq napisał:

jak dopiszesz na początku komendy sudo to działa?

A z ciekawości: czemu by miało zadziałać?

Polecenie "sudo echo cośtam > gdzieśtam" wykona się tak:

  • zostanie wykonane polecenie "sudo echo"
  • polecenie "echo" wykona się jako root
  • wynik polecenia echo zostaje skierowany do "gdzieśtam", ale już nie jako root tylko jako normalny użytkownik.

Polecenie sudo sudo echo cośtam > gdzieśtam wykona się podobnie:

  • zostanie wykonane polecenie "sudo sudo"
  • w związku z tym polecenie "sudo echo" zostanie wykonane jako root
  • a dalej polecenie "echo" również jako root
  • a wynik polecenia echo zostaje skierowany do "gdzieśtam", ale już nie jako root tylko jako normalny użytkownik.

Gdyby jednak usunąć literówkę z polecenia i zamiast "vaule" napisać "value", jest duża szansa że zadziała 😉

 

 

  • Lubię! 1
4 godziny temu, ethanak napisał:

A z ciekawości: czemu by miało zadziałać?

Polecenie "sudo echo cośtam > gdzieśtam" wykona się tak:

  • zostanie wykonane polecenie "sudo echo"
  • polecenie "echo" wykona się jako root
  • wynik polecenia echo zostaje skierowany do "gdzieśtam", ale już nie jako root tylko jako normalny użytkownik.

Polecenie sudo sudo echo cośtam > gdzieśtam wykona się podobnie:

  • zostanie wykonane polecenie "sudo sudo"
  • w związku z tym polecenie "sudo echo" zostanie wykonane jako root
  • a dalej polecenie "echo" również jako root
  • a wynik polecenia echo zostaje skierowany do "gdzieśtam", ale już nie jako root tylko jako normalny użytkownik.

Gdyby jednak usunąć literówkę z polecenia i zamiast "vaule" napisać "value", jest duża szansa że zadziała 😉

 

 

Dzięki

  • 2 miesiące później...
  • 1 miesiąc później...

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...