W ostaniej części przybliżyłem bibliotekę Wiring Pi i jej narzędzie gpio. Dziś zajmiemy sie inną ciekawa biblioteke Pigpio i narzędziem pigs, które daje większe możliwości sterowania pinami gpio w Raspberry Pi. Narzędzie pigs pozwoli nam tak samo jak w przypadku narzędzia gpio z Wiring Pi w prosty sposób ustawiać wartości i stany pinów, a nawet pozwoli na bardziej rozszerzone operacje m.in. programowy PWM i sterowanie serwami.

Instalacja biblioteki Pigpio

wget abyz.co.uk/rpi/pigpio/pigpio.zip
unzip pigpio.zip
cd PIGPIO
make
make install

W przeciwieństwie do biblioteki Wiring Pi, Pigpio wymaga uruchomienia demona pigpiod: sudo pigpiod. Aby demon startował przy każdym uruchomieniu systemu, możemy dodać owo polecenie do pliku /etc/rc.local na końcu linijki przed znacznikiem exit 0.

#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %sn" "$_IP"
fi
sudo pigpiod
exit 0

Po zapisaniu pliku i wyjściu, po każdym uruchomieniu systemu demon pigpiod będzie uruchamiany. Gdy mamy już zainstalowaną bibliotekę i uruchomiony jej demon, możemy zabrać się za użycie narzędzia pigs.

Odczyt i ustawienie stanu

Ustawienie pinu na stan wysoki lub niski wykonujemy z użyciem opcji w (write)
pigs w nr_pinu 1/0

Gdy chcemy odczytac stan danego pinu używamy wtedy opcji r (read)
pigs r nr_pinu

Ustawienie trybu in i out

Jeśli chcemy ustawic pin jako wyjściowy (out) lub wejściowy (in) możemy użyć narzędzia pigs z opcją m (mode)
pigs m nr_pinu r/w
r – oznacza tryb in
w – oznacza tryb out

PWM i Serwo

Aby sterować pasmem PWM np do sterowania obrotami silników lub jasnościa diody używamy opcji p (pwm)
pigs p nr_pinu wartość
Gdzie wartośc wypełnienia powinna być z przedziału 0-255

Sterowanie serwem możliwe jest dzięki opcji s (servo)
pigs s nr_pinu wartość
Gdzie wartośc powinna być z przedziału 500 do 2500

Pull Up i Down

Opcja pud pozwala podciągnąć pin pod stan wysoki lub niski.
pigs pud nr_pinu u/d
u – oznacza wysoki stan
d – oznacza niski stan

Narzędzie pigs posiada wiele inny opcji. My będziemy póki co używać głównie write, read, pwm, pud i servo, które wystarczą nam do następnych części naszego kursu. Dużą ilość przykładów dla biblioteki Pigpio i jej narzędzi, możemy znaleźć na stronie biblioteki.

Schemat z filmu

Start z Raspberry Pi - schemat III
Uwaga: Użytkownicy Raspberry Pi B lub A mogą skorzystać z innych pinów.

W kolejnej części zajmiemy się sterownikiem silników oraz sterowaniem obrotami silników za pomocą PWM.

  • KyRol

    Bardzo fajna inicjatywa, właśnie takiego majsterkowania przed kamerą mi brakowało. Oby w tego rodzaju inicjatywy picoboard.pl było obfite;) Na koniec dodam od siebie, że fajne kolorki dla diody RGB można uzyskać odwiedzając serwis https://color.adobe.com/pl/explore/most-popular/?time=all

    • Cyryl

      Dzięki za fajna stronkę. Ten model diody nie daje takich fajnych kolorów (przynajmniej patrząc z bliska) jak małe diody rgb gdzie tam anody i katody są mniejsze i lepiej się światło w nich zlewa.

  • KyRol

    Bardzo fajna inicjatywa, właśnie takiego majsterkowania przed kamerą mi brakowało. Oby w tego rodzaju inicjatywy picoboard.pl było obfite;) Na koniec dodam od siebie, że fajne kolorki dla diody RGB można uzyskać odwiedzając serwis https://color.adobe.com/pl/explore/most-popular/?time=all

    • Cyryl

      Dzięki za fajna stronkę. Ten model diody nie daje takich fajnych kolorów (przynajmniej patrząc z bliska) jak małe diody rgb gdzie tam anody i katody są mniejsze i lepiej się światło w nich zlewa.

  • #R2D2#

    Super wytłumaczone, czekam na więcej filmików z Raspberry Pi.

  • #R2D2#

    Super wytłumaczone, czekam na więcej filmików z Raspberry Pi.

  • Maciek

    Witam,

    Powstanie zestawu prototypowego i bazujących na nim poradników uważam za świetną inicjatywę!

    Czy i kiedy można spodziewać się kolejnych wpisów w kategorii Start z Raspberry Pi?

  • Maciek

    Witam,

    Powstanie zestawu prototypowego i bazujących na nim poradników uważam za świetną inicjatywę!

    Czy i kiedy można spodziewać się kolejnych wpisów w kategorii Start z Raspberry Pi?

  • anyz

    Witam, przyłączam się do pytań kiedy można się spodziewać następnych części? Zakupiłem zestaw prototypowy rozszerzony i liczę, że nauczę się z niego korzystać :)

  • anyz

    Witam, przyłączam się do pytań kiedy można się spodziewać następnych części? Zakupiłem zestaw prototypowy rozszerzony i liczę, że nauczę się z niego korzystać :)

  • zelmerman

    witam :) zaczynam swoją przygodę z raspberry Pi i mam mały problem aczkolwiek wszystko działa lecz gdy chcę dodać demona pigpiod do /etc/rc.local dostaję informację “Brak dostępu” a przy włączeniu edytora jest napisane “Ostrzeżenie: brak pozwolenia na zapis” czym może to być spowodowane? Próbowalem zmienić prawa dostępu ale też nie mogę tego zrobić gdyż jest to u mnie operacja niedozowlona. Pozdrawiam i czekam na jakieś informacje :)

    • zelmerman

      już sobie poradziłem :)

  • zelmerman

    witam :) zaczynam swoją przygodę z raspberry Pi i mam mały problem aczkolwiek wszystko działa lecz gdy chcę dodać demona pigpiod do /etc/rc.local dostaję informację “Brak dostępu” a przy włączeniu edytora jest napisane “Ostrzeżenie: brak pozwolenia na zapis” czym może to być spowodowane? Próbowalem zmienić prawa dostępu ale też nie mogę tego zrobić gdyż jest to u mnie operacja niedozowlona. Pozdrawiam i czekam na jakieś informacje :)

    • zelmerman

      już sobie poradziłem :)