サーボモータ『SG90』をPicoから動作させる。PWMで-90°⇒0°⇒+90°に相当するパルス幅を指示して、サーボモータがその通りに動くことを確認。とりあえず動かすまでは問題ないが、同じように指令を出してもモータの機差があるのか動作がズレることがあるのがちょっと納得いかない。何かものを作った際には気になりそう。
整理せずにどんどん部品を追加していったので、混とんとした状態に。 写真では配線を追いきれない… |
使用した機材等
- Raspberry Pi Pico
- Thonny
- Micro Servo
- 型式: SG90
- 180degの動作範囲をもつ小型サーボ
- 秋月電子通商
- その他
- 乾電池
- ブレッドボード
- 配線類
配線
SG90は手持ちで3個持っていたので、ひとまず全部繋げてみる。
SG90 データシート (秋月電子通商より) https://akizukidenshi.com/catalog/g/gM-08761/ |
コード
- GPIO
- GP6, GP7, GP8をPWMに割り当て
- PWM周波数
- 50Hz /20ms
- max_duty
- 16bit = 65,536
- 指令位置に対応したDuty比 (データシートより)
- -90°: 0.5ms/20ms = 2.5%
- 0°: 1.45ms/20ms = 7.25%
- +90°: 2.4ms/20ms = 12.0%
結果
過去にRaspberry Pi 3Bで試した際は、理由は覚えていないが思いのほかうまくいかなかった記憶があるが、今回は悩むことはほとんどなく進められた。
参考にしたサイト
- メタエレ実験室
- 【Raspberry Pi Pico】サーボモーターをPWMで動かす【MicroPython】
- https://hellobreak.net/raspberry-pi-pico-pwm-servo-0211/
- 秋月電子通商
- マイクロサーボ9g SG-90
- データシートが置いてある
- https://akizukidenshi.com/catalog/g/gM-08761/