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

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

Raspberry Pi Pico でFutabaコマンドサーボRS304MDを動かす(VSC + C言語)

f:id:kirikoshokunin:20210420225819p:plain:w300

 RaspberryPi PicoでPWMサーボを動かせるようになったので、コマンド通信でフタバコマンドサーボのRS304MDを動かしてみる。

 RS304MDは、通常のRCサーボと異なりホビーロボット用のサーボモータで板金部品に取り付けやすい、コマンド通信でIDを指定して一つのバスで複数のサーボモータを動作させることができるという特徴がある。

今回はこのRS304MDのコマンド通信をRaspberryPi Picoに実装して、ID変更、トルクON、角度指令を行う。コマンドサーボからの受信は行っていない。

フタバのコマンドサーボはプロトコル

 フタバのコマンドサーボはプロトコルが共通なので、今回のソースはRS304MDでも他のサーボでも使用できる。ただし、RS485通信のサーボの場合は外部でRS485ドライバを接続してEnable端子をGPIOに接続する必要がある。

詳細のプロトコルは公式のHPからダウンロードすればよい。コマンドサーボの取扱説明書の中に記述してある。

取扱説明書|ダウンロード|ロボット・無人機用機能部品|双葉電子工業株式会社


配線

 配線は以下のようにする。

  • RS304MDの信号線:GPIO16
  • PWMサーボの信号線:GPIO1
  • アナログ入力:GPIO26

ソースコード

 まずCMakeLists.txtでプロジェクトで使用するヘッダやCファイルを設定する。

 今回は見辛くなるので、フタバのコマンドサーボ用のCファイルとヘッダファイルを別で作成した。なのでそれらもプロジェクトに含める必要がある。

 Githubへのリンクの方が良かったかもしれないが、Githubをあまり使わない人がいたのでとりあえずここに全て書く。

CMakeLists.txt

Futabaコマンドサーボ用Cファイル

 Gist用にファイル名を変更しているが、MakeLists.txtでは futaba_rs_servo.cとなっているソースコード

futaba_rs_servo.c

Futabaコマンドサーボ用ヘッダファイル

futaba_rs_servo.h

mainソースコード

 Gist用にファイル名を変更しているが、MakeLists.txtではmain.cとなっているソースコード

main.c

動作


www.youtube.com