今日は、一日、NXTとArduinoをRS485でつなぐ実験をしていました。
これまでの準備で
NXT ⇒ Arduino
Arduino ⇒ NXT
は、それぞれできてました。
だから・・・その2つを組み合わせれば
NXT ⇒ Arduino ⇒ NXT
ができるハズ!
しかし・・・そう簡単ではありませんでした。
どうも、受信から送信、送信から受信に切り替わるときに、通信中のデータが残っていたり・・・
よく判んないけど、組み合わせると通信できなくなりました。
もう、諦めようかと何回も思いましたが・・・とにかく、今日一日は頑張ろうと・・・
結局・・・なんだかよく判らないうちに・・・通信できるようになりました。
やっぱり、受信と送信の切り替えの時のタイミングの問題のようです。
NXTから1バイトのデータをArduinoに送信し、そのデータを折り返してNXTに戻します。
それを1000回繰り返して大体4秒くらいでした。
と、いうことは、1往復の通信に4msということですね。
で、確かにとりあえず双方向の通信ができたことはできたのですが・・・
まだまだ、謎があります。
NXTの電源を一回切ってしまうと・・・通信ができなくなるのです。
もう一度通信をするためには・・・何でか判らないけど・・・NXT側で受信だけのプログラムを一回動かします。(勿論何も受信できない)
それを中断して、通信プログラムを動かすと、なぜか双方向の通信ができます。
何故?
注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・