Według mnie najwygodniejsze jest wykorzystanie biblioteki Servoblaster.
Biblioteka jest częścią pakietu PiBits, hostowanego na GitHub'ie.
Aby pobrać kod na Raspberry PI wykonujemy polecenie:
git clone https://github.com/richardghirst/PiBits/
Następnie przechodzimy do katalogu Servoblaster poleceniem:
cd PiBits/ServoBlaster/
Są dwie metody wykorzystania biblioteki. Może ona działać jako moduł jądra Linuksa, lub jako demon w przestrzeni użytkownika. Druga opcja jest według mnie zdecydowanie wygodniejsza i prostsza do wykorzystania, zatem zajmiemy się nią.
Na początek należy skompilować bibliotekę:
cd user/
make
Po chwili będziemy mieli wykonywalny plik servod, którego opcje możemy wyświetlić poleceniem:
./servod --help
Możemy teraz przetestować działanie biblioteki uruchamiając ją poleceniem:
sudo ./servod
W tym momencie powinien być dostępny plik
/dev/servoblaster
do którego będziemy wysyłać polecenia sterujące serwomechanizmami
Podłączmy zatem servo do Raspberry Pi
Pobór prądu serwomechanizmu jest zdecydowanie większy niż to co jest w stanie dostarczyć Raspberry PI, zatem w tym przypadku również konieczne jest wykorzystanie zewnętrznego źródła zasilania. Schemat podłączenia na płytce prototypowej wygląda następująco:
Bardzo ważne jest podłączenie servo i Raspberry PI do wspólnej masy.
Biblioteka servoblaster potrafi sterować maksymalnie ośmioma serwomechanizmami.
Mapowanie numerów silniczków na piny GPIO wygląda następująco:
0 on P1-7 GPIO-4
1 on P1-11 GPIO-17
2 on P1-12 GPIO-18
3 on P1-13 GPIO-21
4 on P1-15 GPIO-22
5 on P1-16 GPIO-23
6 on P1-18 GPIO-24
7 on P1-22 GPIO-25
Po podłączeniu serwomechanizmu możemy sprawdzić jego działanie.
Wydanie polecenia:
echo 0=50% > /dev/servoblaster
ustawi zerowe serwo - czyli to podłączone do pinu GPIO-4 (P1-7) w pozycję 50%.
Polecenie:
echo 1=10% > /dev/servoblaster
ustawi serwo nr 1 (pin GPIO-14) w pozycję 10%.
Można również podać komendę w postaci:
co spowoduje przesunięcie serwo nr 0 w pozycję 150 kroków.
Jeśli chcemy przesunąć serwomechanizm o względną wartość (czyli np o 20 kroków względem aktualnej pozycji), możemy wydać polecenie:
echo 0=+20 > /dev/servoblaster
Biblioteka ma dużo większe możliwości konfiguracji. Szczegóły można znaleźć w bardzo przejrzystej dokumentacji.
Do konfiguracji pozostała jeszcze jedna bardzo istotna rzecz - uruchamianie demona ./servod przy starcie Raspberry PI.
Aby to zrobić wydajemy polecenia:
cd /home/pi/PiBits/ServoBlaster/user/
sudo make install
Odpowiednie skrypty zostaną skopiowane do /etc/init.d i po restarcie komputera demon servod powinien wystartować automatycznie.
Działanie całego układu można zobaczyć na poniższym filmie:
Bardzo podoba mi się Twój blog, który prowadzisz;). Ja z kolei zajmuję się prowadzeniem bloga-agregatora, który promuje najlepsze moim zdaniem blogi prawne. Będę wdzięczny, jeśli zechcesz zagościć na mojej liście, pozdrawiam
OdpowiedzUsuńMam problem z pobraniem biblotek z githuba, podczas pobierania wyskakuje prośba o podanie nicku po czym podanie hasła. Nie da się nic wpisać, jakieś propozycje?
OdpowiedzUsuń