ubuntu 13.04をBeagleBoneに入れたらkernelが3.8になったせいか
/sys/devicesの構成が変わってpwm出力の方法が今までのと変わってたのでメモ
下ごしらえ
以下のコマンドで/sys/devices/ocp.2/pwm_test_P9_21.14にP9の21番ピンにPWM出力するためのファイルが出来上がる
/sys/devices/ocp.2/pwm_test_P9_21.14は環境で数字が違うかも
- 要root
SLOTS=/sys/devices/bone_capemgr.7/slots
echo am33xx_pwm > $SLOTS
echo bone_pwm_P9_21 > $SLOTS
cd /sys/devices/ocp.2/pwm_test_P9_21.14
PWM出力
10ms周期で2ms間オンにする
echo 10000000 > period
echo 2000000 > duty
echo 1 > run
runに1を書くと出力開始、0を書くと出力停止
サーボへの出力
サーボは大抵10〜20ms周期で1.5msで中立点
echo 2000000 > period
echo 150000 > duty
echo 0 > polarity
echo 1 > run
polarityは極性の設定。
初期値だと1になっていて、dutyで1.5msと設定としたら、1.5msオンで18.5msオフとなる。
それだとサーボが動かなかったので逆転しておく。
これで、dutyが100000〜200000くらいでサーボが動く