暇人の技術備忘録

ハサミの技術備忘録

趣味でやっている電子工作の備忘録です。

Teensy4.0でS.BUSを使う

はじめに

以下の記事でドローンを製作した時にTeensyでS.BUSを使用したのでそれについて書いていきたいと思います。

sbasami-tech.hatenablog.com

S.BUSとは

S.BUSを簡単に説明するとフタバが開発した独自のシリアル通信規格です。詳細については以下のブログがとても参考になります。

blog.rikei-tawamure.com

TeensyでS.BUSを使う

使用部品

今回使用した部品は以下の通りです。

www.switch-science.com

www.rc.futaba.co.jp

www.rc.futaba.co.jp

回路図

実験の回路図は以下のようになります。S.BUSは信号をそのままマイコンのRXピンに入力することが出来ず、信号を反転させてやる必要があります。回路図のトランジスタ回路はこの為にあります。

f:id:sbasami:20200814202508p:plain
回路図

R3206SBMは以下の画像に示すように赤、黒、白の線が出ています(緑はアンテナです)。

f:id:sbasami:20200814203107p:plain
R3206SBMの外観(https://www.rc.futaba.co.jp/reciever/air04/r3206sbm.html)

それぞれの線は以下の通り、信号線をトランジスタ回路を通してTeensyのRXピンに繋いでください。

  • 赤:3.2~8.4V
  • 黒:GND
  • 白:信号線

使用プログラム

実験で使用したのソースコードを以下に示します。

TeensyでSBUSを受信するためのプログラム

以下の画像はS.BUSを受信した時のシリアルモニタです。T6L Sportは6chしかないのでその部分だけが変化しています。

f:id:sbasami:20200814210650p:plain
シリアルモニタの様子

おわりに

今回はTeensy4.0でS.BUSを使用する方法について書きました。今回示したプログラムでは1~16chの信号しか見てませんが、実はデジタルチャンネルの17ch, 18ch、通信がロストしたことが分かるFrame lostやFailsafeに関する信号も送られてきています。

この辺りも取り出して確認したい場合は以下のGitHubのコードが参考になります(SBUS.cppの73行目辺り)。

github.com