Skydroid T12のS.BUSをArduinoで受信。
Skydroid T12の受信機はS.BUS信号を出してくれるのでフライトコントローラにつなぐにはいいんですが、今作ってる水上ドローンはフライトコントローラのカスタム設定ではできそうもないのでArduinoで制御することにしました。
以前もどこかのサイトからサンプルをコピペしてS.BUS受信はやったことあったんですがどこだったか探してみると、以下のサイトでした。
ほいほい堂blog さん(実はご近所)。
http://www.hoihoido.com/blog/wp/?p=2677
最後の方に修正があるのでそのリンクも。
http://www.hoihoido.com/blog/wp/?p=3133
使用したのはArduino MEGAです。シリアルポートが複数使えるので。
直接シリアルポートのRX2にS.BUSを入れて信号を読み取るとこんな値がでてきました。
どうもおかしいです。
T12のS.BUS信号もやっぱり反転してるようなので、トランジスタ1個使って反転回路を作ってArduinoで受信。
(ベース、コレクタに1kオームの抵抗でエミッタ接地反転増幅回路を入れただけ)
すると正常に読み取れました。中心は1500のつもりで設定したのですが、なぜか1002.
でもプロポのスティックを動かすとちゃんと変化してくれるのでまあOK.プログラムでどうにでもなります。
プロポの方のチャンネル設定は、Androidスマホのアプリで設定します。
メーカーのサイトから、Device Helper.apk をダウンロードして許可を与えてインストール。
Blutoothで接続して、ADJUST PARAMETERSを選択すると以下の画面がでます。
ここで、チャンネルと振れ幅を入力してSAVEすればよいです。
慣れている右スティックスロットルのモード1の設定にしました。
ArduinoでS.BUSを受信して読み取った値をプロットしながら写真撮ったのがこちら。
次は、スティックと水上ドローンのスラストの回転をどう割り当てるかをプログラミング。
以前もどこかのサイトからサンプルをコピペしてS.BUS受信はやったことあったんですがどこだったか探してみると、以下のサイトでした。
ほいほい堂blog さん(実はご近所)。
http://www.hoihoido.com/blog/wp/?p=2677
最後の方に修正があるのでそのリンクも。
http://www.hoihoido.com/blog/wp/?p=3133
使用したのはArduino MEGAです。シリアルポートが複数使えるので。
直接シリアルポートのRX2にS.BUSを入れて信号を読み取るとこんな値がでてきました。
どうもおかしいです。
T12のS.BUS信号もやっぱり反転してるようなので、トランジスタ1個使って反転回路を作ってArduinoで受信。
(ベース、コレクタに1kオームの抵抗でエミッタ接地反転増幅回路を入れただけ)
すると正常に読み取れました。中心は1500のつもりで設定したのですが、なぜか1002.
でもプロポのスティックを動かすとちゃんと変化してくれるのでまあOK.プログラムでどうにでもなります。
プロポの方のチャンネル設定は、Androidスマホのアプリで設定します。
メーカーのサイトから、Device Helper.apk をダウンロードして許可を与えてインストール。
Blutoothで接続して、ADJUST PARAMETERSを選択すると以下の画面がでます。
ここで、チャンネルと振れ幅を入力してSAVEすればよいです。
慣れている右スティックスロットルのモード1の設定にしました。
ArduinoでS.BUSを受信して読み取った値をプロットしながら写真撮ったのがこちら。
次は、スティックと水上ドローンのスラストの回転をどう割り当てるかをプログラミング。