Raspberry PI でサーボを動かす

※2018/2/2 追記
マザーボード H61M-VG3 で Wake On Lan が動くことを ISOさんがコメントをくれました。ありがとうございます。

※2015/5/5 追記
Raspberry Pi2 では ServoBlaster は正常に機能しません。公式フォーラム「Pi2 B and Pi-Pan (ServoBlaster)」に添付されているServoBlaster-20150219.tgzを使うことで機能することを確認しています。

Chinachu 録画システムをマザーボード H61M-VG3 を使って構築したのですが、残念なことに Wake-On-LAN が使えない。だけど、サスペンド後に USB キーボード を触ると復帰することが確認出来たので「Raspberry PIでキーボードを触ればいいじゃん」と言うことで、Raspberry PI でサーボを動かすことにした。

servo & keyboard

Raspberry PI でサーボを動かすには幾つか方法があるみたいですが、私的には ServoBlaster が簡単でお勧めです。

$ git clone git://github.com/richardghirst/PiBits.git
$ cd PiBits/ServoBlaster/user
$ make servod
$ sudo make install

make install することでサービス起動時にオプションとして –idle-timeout=2000 が指定されて、2秒間何も動作が無かった場合にパルスの発生が停止されます。これでサーボの寿命が延びるのでしょうか。

$ # 動作確認 echo サーボ番号=周波数 > /dev/servoblaster
$ echo 0=140 > /dev/servoblaster # 水平にする
$ echo 0=60  > /dev/servoblaster # 下げる
$ echo 0=240 > /dev/servoblaster # 上げる

サーボ番号とPin番号、GPIOの対応は次の表の通り。

Servo number GPIO number Pin in P1 header
0 4 P1-7
1 17 P1-11
2 18 P1-12
3 21/27 P1-13
4 22 P1-15
5 23 P1-16
6 24 P1-18
7 25 P1-22

以上、これで Raspberry PI からサーボを使うことが出来ました。

Raspberry PI でサーボを動かす」への8件のコメント

  1. こんばんは。
    録画サーバー用にH61M-VG3を検討している者です。
    ASRockのホームページからマニュアルをダウンロードしてみましたが、BIOSに”Boot From Onboard LAN”という項目があると書いてあり、これがWake-On-LAN設定の項目と理解しておりました。
    しかし、「残念なことに Wake-On-LAN が使えない」とのことで、実際のBIOSにはこの項目が存在しないのでしょうか?

    1. andoさん、こんばんは。BIOS上にその項目があり、私の時はENABLEにしてもWOLが効きませんでした。
      ちなみにその時のOSは、LinuxのCentOsやUbuntuでした。あまりにも困ったのでサーボで代用した次第です。
      こちらのブログの記事ではメーカ提供のドライバーで可能になった旨の掲載がありますので参考になるかと思います。
      H61M-VG3で使われている Realtek RTL8111E は他でもWOLに問題があるケースが報告されていますね。
      andoさんの方でも何かわかったらお知らせくださると助かります。

      1. airwhiteさん。おはようございます。
        返信ありがとうございました。
        Realtek RTL8111Eが問題のあるチップだということがよく分かりました。
        H61M-VG3の購入は見送ろうと思っていますが、あまりに安いため、もしかしたらダメもとで買ってしまうかもしれません。その場合にはいろいろ試してみてご報告致します。
        ありがとうございました。

    1. fumahさん、お早うございます。
      C言語は詳しくないのですが、system関数で外部コマンドとしてservoBlastを呼び出すか
      servoBlastのソースコードが公開されていますので、ご自分のプログラムに取り込むか
      いずれかの方法になるかと思われますが、がんばってください。

  2. かなり古い記事への返信で恐縮なのですが・・・

    こんにちは。PT3録画サーバーにヤフオクで落札した
    H61M-VG3 を使おうとして辿り着きました。
    当方の環境で、この板での Wake on LAN 動作しました。

    結論から言えば、UEFIのデフォルト設定から2つの項目の設定変更、
    “Advanced\ACPI Configration\PCIE device Power On” と
    “Advanced\ACPI Configration\USB Keyboard/Remote Power On” を
    共に Enabled に設定するだけで、スリープ(S3)・ハイバネーション(S4)
    ・及び電源切(S5)状態からオンボLANでWOLが動作するようになります。

    環境は BIOS_v1.90、Debian Stretch(9.3) NICドライバーは
    http://www.sssg.org/blogs/hiro345/archives/11184.html
    ↑こちらの記事にあるRealtekの最新ドライバに更新済みでしたが、
    Stretchのデフォルトドライバでも動きそうな気がします。

    「USB Keyboard/Remote Power On」なんて設定名がWOLに関わってるとは
    気づき難くスルーしてしまいますね・・・

    失礼しました。それでは!

    1. ISOさん、こんばんは。
      Wake On Lanだけがネックなマザボでしたがこれで助かります。
      貴重な情報を教えてくださり、ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください