覚え書きなページ

なぜsoftServoを使わないのか

さてRCサーボでも回してみるかと思って検索をかけるとsoftServo.hを用いた例が散見された。
そして、その中には今のWiringPiではコンパイルのときに生成されない(Make)に含まれないけど、こうやったら出来るよ!的なものもあり、最初はそれを試そうかと思っていた。
しかし、以前のバージョンにはあっていまなぜないのか。単に入れ忘れただけなのか。と疑問に思い調べてみた。するとこのWiringPi v2リリース時の質問の中にその答えがあった。他に正式にあるのかもしれないけど、見つからなかったので。つまり、「softServoは実験的に入れてみたけどジッターが多く、あまり良くなかった。ServoBlasterカーネルモジュールが一番だと聞いてるよ!」というニュアンスだと思う。Gordon氏がそう言っているんだからこれを強引に使うよりServoBlasterを使おうと思った次第。

ServoBlasterインストール

ServoBlasterはGithubのここにあるので、WiringPiと同様にGITからのインストールする。

GITからダウンロード

下記の通り。
pi@birth ~ $ git clone git://github.com/richardghirst/PiBits.git
Cloning into 'PiBits'...
remote: Reusing existing pack: 359, done.
remote: Total 359 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (359/359), 362.62 KiB | 164 KiB/s, done.
Resolving deltas: 100% (154/154), done.

ビルド

pi@birth ~ $ cd PiBits/ServoBlaster/user/
pi@birth ~/PiBits/ServoBlaster/user $ ls
Makefile  init-script  servod.c
makeはユーザーでも可能だけど、installは管理者権限が必要。
pi@birth ~/PiBits/ServoBlaster/user $ make servod
gcc -Wall -g -O2 -o servod servod.c -lm
pi@birth ~/PiBits/ServoBlaster/user $ sudo make install
[ "`id -u`" = "0" ] || { echo "Must be run as root"; exit 1; }
cp -f servod /usr/local/sbin
cp -f init-script /etc/init.d/servoblaster
chmod 755 /etc/init.d/servoblaster
update-rc.d servoblaster defaults 92 08
update-rc.d: using dependency based boot sequencing
/etc/init.d/servoblaster start
installまですると、このように起動時にservoblasterが起動する。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます