2017年8月30日水曜日

RS304MDを動かしてみる。

モーターはまずなんでもいいから動かしてみることが大事ですよね(笑)
ということで、RS304MDを深く考えずに動かしてみましょう!

今回はFutabaのホームページから下記の場所にアクセスするとサンプルプログラムがあるので、それを使用して動かしてみたいと思います。
ホーム>ロボット・無人機用機能部品>システム構成/接続例
ここにリンクしておきます。)

接続方法

今回私はRS304MDとArduinoの接続を下の回路図のようにしました。
(ブレットボート図では電源を5V出力のACアダプタから供給している例を示しています。)




モーターの電源はArduinoの5V端子から供給するのではなく、別の電源から供給することをお薦めします(Arduinoの5V端子から供給する方法でも実際に稼働しますが、ArduinoやArduinoに電力を供給するUSBポートを壊す恐れがあります。
※Futabaさんの接続例ではRXが接続されていますが、今回のプログラムでは使わないため接続してもしなくても問題ありません。

プログラム

謎のPDF仕様のサンプルプログラムをArduinoIDEに貼り付けマイコンボードに書き込み!!
・・・・あれ・・・・動かないぞ??(・・?
まあサンプルは大抵動かないですよね(笑)


原因はサンプルプログラムの66行目にあり、この行にある配列数を10から12にするだけで治ります。

unsigned char TxData[10];
から↓
unsigned char TxData[12];
にするだけです。

動かない原因

サンプルプログラムで動かなかった原因を私なりに考察したものです。
簡単な内容なので、読み飛ばした方がいいかもです(笑)

サンプルプログラムの66行目では、

unsigned char TxData[10]; //送信データバッファ [10byte]

と書かれており、配列が10byteまでの領域を割り当てています。
しかし、実際のサンプルプログラムの85行目では

TxData[11] = CheckSum; //Sum

となっており、必要な配列数は12byteとなっています。
したがって、TxData[10] 、TxData[11] 文の領域が割り当てがないためプログラムが正常に機能していなかったものと思われます。

終わりに

きちんと動いたでしょうか?
次回は送るコマンドを意識してモーターを動かしていきたいと思います!

0 件のコメント:

コメントを投稿