Arduino - ブレッドボードでArduino
こんな感じになりました
レギュレータは省略
説明には載ってないけど、リセットラインを追加しています
AVR-Wikiによると、リセット端子にはコンデンサ直結はしなうよう書かれていたような気がするけど、Arduinoの回路図を見ると直結していたので、FT232RLのDTR端子からATmega168のリセットに 0.1u のコンデンサ経由で接続している
後にわかるのだが、プログラムをロードする際、これが接続されてないとうまく転送出来ない
本来の手順はリセットしてから転送となっているけど、Arduinoの開発環境(0011Alpha)は必ずコンパイルしてから転送しているようだ
つまり、コンパイルが終了し、転送する直前にリセットが掛からないとうまくいかないので、そのタイミングが全くつかめず、失敗に終わるという繰り返し
転送直前にメッセージでも出れば分かるのだが、転送終了まで何も表示されない
悶々としていたところ、DTR# からリセットに接続していることを発見し、試しに接続してみたら成功した(Arduinoの回路図より)
どうやら転送直前に開発環境がリセット信号を出しているみたいで、この接続さえしていれば、リセットを押さなくても自動的にリセット掛けてくれるようになった・・・いけず
話戻って、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個接続しただけのシンプルな回路で、ナイトライダーもどきをやってみようかと・・・
なんだか異様に長くなってしまったけど、取り敢えずこれで尾を引きながらLEDが左右に移動していきます(点灯消灯ではなくフェードしていく)
写真では分かり難いけど、ちゃんとフェードアウトしている・・・単なる残像だったりして
| 固定リンク
「電子工作」カテゴリの記事
- Arduino - ArduinoによるAVRライターとATmega328P再換装(2009.03.07)
- Arduino - SparkFun マイク・モジュール(2009.02.15)
- Arduino - Arduino用容量倍化ATmega328P到着(2009.01.07)
- Arduino - ブレッドボードでArduino(2008.04.05)
- Arduino - モノホンTENGUとECM再考(2009.02.06)






コメント