Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

AVRねた その42 NXTとの接続

2009-09-07 | AVRねた

だんだんAVRの工作についても先が見えてきたので、いよいよNXTの自作センサーを接続する実験をしたいと思います。

とはいえ、以前にYが作成した自作センサーのキット(NICO SENSOR)があるので、それを大いに参考に(別名「パクる」)しようと思います。

これまで、ATmega88を中心に使っていたのですが、アナログポート数が多いという理由で、ATTiny26Lを使うことにします。


ブレッドボードに、部品を挿して行き、ハードはすぐにできました。


ソフトウェアは、NICO SENSORのものを改造(というか、不要のものを削除して簡略化したもの)を入れてみると・・・NXTとの通信はうまくいくのですが、ADC0ポートの値が「0」となってしまいます。 どうも、アナログポートの読み込みが全然できていないようです。

プログラムの中で、NXTに送る値を適当に埋め込むと、ちゃんとその数字が「NXT側」に表示されるので、通信は問題無いようです。

何で、アナログポートを読んでくれないの?


AREFやAVCCを+5Vに接続しても、変わりませんねぇ。

いろいろ試しても一向にアナログポートからの読み込みはできません。

きっと、このAVRマイコンが壊れているんだ! (すぐに他人のせいにする悪いクセ)

などと、現実逃避をしてみても、時間が過ぎるだけです。

実は、adc.c がATmega88用に書かれていた(修正されていた)ことをすっかり忘れていました。

adc.cの中の ADCSRA の記述を ADCSR に変更したら、何事も無かったように動作しました!


しかし、レジスタの名前が(ATTiny26用でなく)間違っていたにも関わらず、なぜコンパイルエラーが表示されなかったのか? それが不思議です。

後から考えると・・・単にコンパイルエラーを見過ごしていただけらしい・・・シッカリしろ俺


とにかく、上の修正をしたら、やっとアナログポートに接続した光センサーの値をNXT上に表示することができました。 (長い道のりであった)



これで、スペインチームのロボットのようにたくさんのセンサーを搭載できる・・・かもね。

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする