Teensy4.0でS.BUSを使う
はじめに
以下の記事でドローンを製作した時にTeensyでS.BUSを使用したのでそれについて書いていきたいと思います。
S.BUSとは
S.BUSを簡単に説明するとフタバが開発した独自のシリアル通信規格です。詳細については以下のブログがとても参考になります。
TeensyでS.BUSを使う
使用部品
今回使用した部品は以下の通りです。
回路図
実験の回路図は以下のようになります。S.BUSは信号をそのままマイコンのRXピンに入力することが出来ず、信号を反転させてやる必要があります。回路図のトランジスタ回路はこの為にあります。
R3206SBMは以下の画像に示すように赤、黒、白の線が出ています(緑はアンテナです)。
それぞれの線は以下の通り、信号線をトランジスタ回路を通してTeensyのRXピンに繋いでください。
- 赤:3.2~8.4V
- 黒:GND
- 白:信号線
使用プログラム
実験で使用したのソースコードを以下に示します。
以下の画像はS.BUSを受信した時のシリアルモニタです。T6L Sportは6chしかないのでその部分だけが変化しています。
おわりに
今回はTeensy4.0でS.BUSを使用する方法について書きました。今回示したプログラムでは1~16chの信号しか見てませんが、実はデジタルチャンネルの17ch, 18ch、通信がロストしたことが分かるFrame lostやFailsafeに関する信号も送られてきています。
この辺りも取り出して確認したい場合は以下のGitHubのコードが参考になります(SBUS.cppの73行目辺り)。