R2D2head-servo-drive

参考動画

目的

Hasbro社 R2D2頭部分のDCモータ+独自ロータリエンコーダシステムをサーボモータ化する

Before

After

購入したもの

  • サーボモータ RB995b (金属ギア)
  • 3mmシャフトセット (タミヤ)
  • 3mmネジシャフトセット (タミヤ)

サーボモータ RB995b (金属ギア)

若松にて1,500円程でした

シャフトセット

すべてタミヤの工作シリーズの物で 3mmの物を購入しました
通常のシャフトセットに加えて、ネジシャフトセットも購入しました

実施した事

元々の頭の台座にかなり手を加えました

  • ニッパにてサーボモータ取り付け口を作成
  • サーボ固定のため無理やり土台作り
  • サーボモータ付属のプラスチックプロペラ?加工
    3mmシャフトが入るようにドリルで穴あけしました
  • R2D2の頭側にも3mmシャフトが入るようにドリルで穴広げ

RaspberryPiより制御

自前で制御を試みたのですが、パルスの乱れと不安定なサーボ動作となってしまったので
Servoblasterを利用しました、非常に簡単に制御できましたのでおすすめです。
https://github.com/richardghirst/PiBits/tree/master/ServoBlaster

RaspiRobotを利用しているため、標準のピンで動作させるとモータが延々とまわってしまうため
下記のような設定で利用しています

servoをP1-16のみで利用できるようにする

/etc/init.d/servoblaster

...
OPTS="--p1pins=16 --idle-timeout=2000"  
...

chkconfig

自動起動を行うと再起動後に正常動作しなくなったため周りくどいですが rc.local で叩いています

root@r2d2 ~ # chkconfig servoblaster  
servoblaster  off  

/etc/rc.local

...
# Init R2D2 NeckServo
/etc/init.d/servoblaster start && echo 0=50% > /dev/servoblaster
...

動作確認中 0%を指定した際のパルス
100%を指定した際のパルス

こうして無事に先頭ムービのような首振りが実現できました

takashi