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.