明日は我が身の備忘録(あすびぼ)

自分向け備忘録です。頻繁に更新は難しいでしょうね

Arduino RCサーボを動かす(サンプル:Servo→Sweep )

 前回に引き続き、いまだに重い腰を上げてArduinoのスケッチ例を試してArduinoの使い方を学んでみる。今回はServoのスケッチ例:Sweep を動かしてみる。SweepはPWMを利用してRCサーボを動かすサンプルプログラム。

スケッチ例:Servo→Sweepの起動

 今回は内蔵の「スケッチ例」からではなく、「あらゆるボード用のスケッチ例」を使用する。このあらゆるボード用のスケッチ例はArduinoUNO以外のArduinoボードやmbedとの共通のサンプルプログラム。どのボードに対応しているかはスケッチ例ごとに微妙に異なるらしいので使用する前には確認が必要。下に、今回使うServo→Sweepの場所をしめす。

f:id:kirikoshokunin:20210320144437p:plain:w300
スケッチ例:Servo->Sweep の起動

 Sweepを開いたら下の様な画面が開く。Sweepはこれまでになかったヘッダファイルのインクルードがあることがわかる。このヘッダファイルが

f:id:kirikoshokunin:20210320144927p:plain:w300
Servo→Sweepを開いた画面

配線

 Sweepを実行して試してみるためにはRCサーボを用意する必要がある。これはPWMで動作するサーボであればなんでもよい。ただし、今後もマイコンで使用したいならば、ドキュメントにPWMのON時間と動作角度が明記されているものを購入したほうが良い。中華製の廉価なものを購入すると、同じサーボで同じ信号を送っても動作角度が異なることがあるの注意が必要だ。

今回はS.BUS解析のときにしようした、双葉電子工業製のS-U300 を使用した。このサーボはS.BUSとPWM信号を自動認識しているのでPWM信号でも動作させることが出来る。

 ArduinoとRCサーボ(S-U300)を配線した写真を下に示す。サンプルプログラムのドキュメントにはRCサーボの電源もArduinoからジャンパピンを通してとると書かれていたが、電流的にあまりArduinoから電源を取りたくなかったのでS.BUS解析の際の電源供給用の基板を流用した。

 このように別電源を用意するときに、RCサーボのコネクタの真ん中の端子とArduinoの+5Vピンを接続しないように注意が必要。RCサーボを動作させるときには電流が必要で、逆にRCサーボを手で回したときにサーボの中のモータが発電してしまい、+5V以上の電圧になってしまうことがある。そのため、別電源と電源分岐回路を用意することを強くお勧めする。

f:id:kirikoshokunin:20210320145256p:plain:w300
配線後の写真

 Sweepの実行

ArduinoとS-U300を接続して、Seepを実行した結果を下に示す。

https://youtu.be/3HmjKZI9_1o


重い腰を上げて8周遅れのArduino RCサーボを動かす

 まとめ

 今回は、スケッチ例:Servo→Sweepを使用したみた。このサンプルプログラムはよくできていて、Arduinoとmbed共通でつかえて、RCサーボごとに最小パルス幅、最大パルス幅を設定できるので色々のRCサーボやボードで使えそう。

 前回記事

kirikoshokunin.hatenablog.com