2012年6月27日水曜日

AVR と Arduino  (2)


 さて前回にひきつづき、今回はArduino IDE 統合開発環境Integrated Development Environment)を主体に話を進めます。AVRのプログラム開発のためにArduino IDEを導入する事は多くのライブラリを活用し、プログラミングの時間を短縮できるメリットがあると判断しました。
 ただAVRのメモリ使用効率は下がる事が予想できますが、AVRチップのメモリ容量増大、クロックのハイスピード化などで十分フォローできるものと思われます。ちなみにいま私が使用しているチップの主体は Atmega328 ですが、メモリが32kbyteもあり、かつArduino効果で(多く使われている)@250と信じられないくらい廉価です。

 ということで、AVRプログラム開発のためのベンチを作ってみました。これまで私が適当に机の上でごちゃごちゃとやっていたものを少し整理したのが左上写真です。 120X150mm の透明アクリルの上半分にユーティリティー部分が固定設置してあり、下半分にはブレッドボードが取り替え可能なように両面テープで仮付けしてあります。
 そして接続するときに便利なように、ピン接続を紙に書いたものを貼り付けました。(右写真)

 上半分のユーティリティー部分には、202液晶キヤラクタディスプレイ(LCD)、8個の独立したLED(制限抵抗入り)、パソコンとの接続用RS232Cコネクタ(コンバータ内臓)、AVR書き込み用端子(ISP)を組み込み、これまでの経験を生かし便利に使えるように工夫しました。


 上のブレッドボードに乗っているのは AVR(Atmega328)、16MHzのクリスタル発振子、リセット用のタクトスイッチです。
これに、さらに配線を(といってもリード線をピンに差し込むだけで半田付け作業はありません)し、先回紹介したHIDaspxと呼ばれるAVRプログラマーを左上に接続したのが右写真です。そしてArduino言語(C言語に近い)で作製したスケッチ(プログラム)が左写真です。スケッチの中味は最初に動作を確認する、お定まりのLCDに "Hellow,world!"ですがここはさらに下行に "My nama is Arduino" と表示させてみました。


このベンチは下の写真のように、ブレッドボードを追加していく事によって、かなり大規模な回路も実験する事が出来るのが自慢です。ここではDDSボードをコントロールするシンセサイズド信号発生器の実験をしていますが、機会がありましたらアップします。

 ところでAdruinoIDEは本来Arduino基板に乗っているAVRをプログラムするものですので、さらに巧妙かつ興味深い部分があります(ブートローダのこと)。
 私はAVR毎に独立させて使用しますので、この機能は不要ですし、ブートローダのためにメモリ領域を割くと attiny シリーズや atmega48,8 などは自由に使用できるメモリが極めて少なくなってしまいますので、このブートローダ機能を削除しています。
 いろいろ方法はあると思いますが、私は board.txt の中に私専用のボード情報を記述し、そのなかでブートローダの記述を fuse 以外を削除し、upload.maximum_size=8192 (atmega8の例)のようにメモリサイズを目いっぱいにしています。またattiny シリーズの記述と追加ファイルもネットからいろいろ情報をいただき整備する事が出来ました。
  これらのことで私の電子工作の世界が飛躍的に開けていく事と思います。

0 件のコメント: