参考動画
目的
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%を指定した際のパルス
こうして無事に先頭ムービのような首振りが実現できました