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

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

ArduinoUNOで1つのバスで複数のS.BUSサーボを動かす

  前回に引き続き、いまだに重い腰を上げてArduinoのスケッチ例を試してArduinoの使い方を学んでみる。今回は以前プロトコル解析したS.BUS通信をArduinoに実装して、1つのバスで複数のS.BUSサーボを動かしてみる。

 

f:id:kirikoshokunin:20210321172217j:plain:w300
ArduinoUNOとS.BUSサーボ

S.BUS通信 論理反転回路

 S.BUS通信は以前解析した通り、論理反転させる必要がある。しかし、ArduinoUNOにはRX220の拡張シリアルような機能がないので、外付け回路で論理反転させる必要がある。今回はNPNトランジスタの2SC1815をエミッタ接地して論理反転させた。ブレッドボードに構築した回路は下の回路図に示す。

 

f:id:kirikoshokunin:20210321173525p:plain:w300
S.BUS通信論理反転回路

S.BUSプロトコル解析に関する記事は下のリンクから飛べる kirikoshokunin.hatenablog.com

Arduino スケッチ

 ArduinoでS.BUS通信する際に重要なのはシリアル通信の初期設定で、100kbpsで偶数パリティ、1データ8ビット

Serial.begin(SBUS_SPEED, SERIAL_8E2);

RXマイコンのときと異なり、ストップビットを2bitにしないとうまく動作しなかったのでストップビットを2bitに設定してある。    複数(6個)のS.BUSサーボをArduinoUNOで動かすスケッチを下に示す。目標角度送信部分は今は無理やり作っているが、リングバッファで構築したらスマートだと思う。

使用したS.BUSサーボ

 今回使用したサーボは、S.BUS通信に対応している双葉電子工業製の”S-U300”と”HPS-H700” を使用した。

実行動画

 Arduinoと論理反転回路、電源分岐回路、S-U300×1、HPS-H700×4を接続して動作させた、動画を下に示す。


8周遅れのArduino ArduinoUNOでS.BUSサーボを動かす

前回記事

kirikoshokunin.hatenablog.com