« AVR - 最初のライタ製作(MINI-EZUSB) | トップページ | AVR - MMLでPSG音源 »

Arduino - ブレッドボードでArduino

AVRについていろいろ見ていたら

Arduino

というフィジカルコンピューティングを手軽に実験できるものを発見

フィジカルコンピューティングといえばGainerがあるが、AVRでもそういうプラットフォームがあるのは嬉しい

Arduinodiecimila1

最近では国内でもメカロボショップ が取り扱いを開始して、しかもお安いのでいつかはモノが欲しい・・・Gainerも

で、ArduinoのHPをくまなく見ていると、Arduino Diecimila互換ボードをブレッドボードで作ってしまおうという製作記事があったので、なにはともあれコレでしょう

USBモジュールは秋月のFT232RLを使用したAE-UM232Rをそのまま利用

Avrimg0006

こんな感じになりました
レギュレータは省略

説明には載ってないけど、リセットラインを追加しています

AVR-Wikiによると、リセット端子にはコンデンサ直結はしなうよう書かれていたような気がするけど、Arduinoの回路図を見ると直結していたので、FT232RLのDTR端子からATmega168のリセットに 0.1u のコンデンサ経由で接続している

後にわかるのだが、プログラムをロードする際、これが接続されてないとうまく転送出来ない

本来の手順はリセットしてから転送となっているけど、Arduinoの開発環境(0011Alpha)は必ずコンパイルしてから転送しているようだ

つまり、コンパイルが終了し、転送する直前にリセットが掛からないとうまくいかないので、そのタイミングが全くつかめず、失敗に終わるという繰り返し
転送直前にメッセージでも出れば分かるのだが、転送終了まで何も表示されない

悶々としていたところ、DTR# からリセットに接続していることを発見し、試しに接続してみたら成功した(Arduinoの回路図より)

どうやら転送直前に開発環境がリセット信号を出しているみたいで、この接続さえしていれば、リセットを押さなくても自動的にリセット掛けてくれるようになった・・・いけず

 

Avrimg0007

話戻って、Arduinoはライタを使わずにプログラムをロードすることが出来るが、そのためにはATmega168にブートローダを書き込まなければならないので、自作の場合はこの場合だけライタを使う必要がある

ソフトウェアを解凍したフォルダにある hardware\bootloaders\atmega168 フォルダにある ATmegaBOOT_168_diecimila.hex を焼いて終わり
Arduino互換機を作成する場合は、必ずライター環境が必須です

 

2009.3.7追記
Arduino - ArduinoによるAVRライターとATmega328P再換装」で、本家ArduinoによるAVRライターの記事を書きました。
この方法でATmega328Pにブートローダーを書き込むという内容ですが、ATmega168だろうとAVRなら書き込み可能です。
互換機を作るのに本来のArduinoを使っていたら本末転倒な気がしますが、スイッチサイエンスさんではFlash容量が32Kと大容量となったATmega328P搭載の最新Duemilanoveが\2835とお値段据え置きで大変お安いので、1台は持っておいて損はありません。

 

今度はArduinoの開発環境の設定(0011 Alpha)

この開発環境は Processing がベースとなっているので、使ったことがある人はすぐに馴染むはず

ArduinoボードをUSBに接続するとドライバの組み込み作業になるので、ソフトウェアを解凍したフォルダにある drivers\FTDI USB Drivers フォルダを選択してインストール

デバイスマネージャでCOMポートの確認をして、ソフトウェアを起動(気に入らなければ任意のポートに割り当てる)

メニューの Tools - Board から Arduino Diecimila を選択し、Serial Port をドライバで設定したCOMポートに合わせる

後はサンプルなどから作った回路に合わせて書き換え

完成したら Upload ボタンを押すだけで、後はしばらくしたら勝手に動いてくれるはず

サンプルは File - Sketchbook - Examples に一通り揃っていて、更にHPの方にはそれらを実践ガイド的に写真付きで説明されているから親切

 

今回はPWMを使ったLED制御に挑戦

まずサンプルの Analog にある Fading を拝借しベースにしてみる

LEDを6個接続しただけのシンプルな回路で、ナイトライダーもどきをやってみようかと・・・

 

Avrimg0008

なんだか異様に長くなってしまったけど、取り敢えずこれで尾を引きながらLEDが左右に移動していきます(点灯消灯ではなくフェードしていく)

写真では分かり難いけど、ちゃんとフェードアウトしている・・・単なる残像だったりして

 

関連記事
AVR - Arduino 2009とEthernetShield

|

« AVR - 最初のライタ製作(MINI-EZUSB) | トップページ | AVR - MMLでPSG音源 »

電子工作」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/204580/41098765

この記事へのトラックバック一覧です: Arduino - ブレッドボードでArduino:

» てきとう/Arduinoの自作 [なんかいろいろ (PukiWiki/TrackBack 0.3)]
88pでArduinoクローンをつくる /work/Arduino_firmware88 make flashしたら次のようなエラーが出た $ make flash avrdude -c usbasp -p atmega88 -P /dev/usb/ttyUSB0 -U flash:w:main.hex avrdude: AVR device initialized and ready to accept instructions Reading |... [続きを読む]

受信: 2009-05-23 21:54

« AVR - 最初のライタ製作(MINI-EZUSB) | トップページ | AVR - MMLでPSG音源 »