ホーム‎ > ‎

激安Arduino

  • Arduinoでプロトタイプ(試作品)を作っても作品を残すごとにArduinoが必要になります。そんなニーズのための組み込み用 Arduino Pro mini でも1台1800円くらい。だったら ATmega168 だけを買ってArdunioを作ろうという話です。ついでに電池で動くように3.3V仕様にします。さらにさらに、LilyPadモードでまったり起動していたものを高速で起動するため、電源ONですぐに動作するようにしました。

  1. 必要なもの
    AVRライターとして使うための Ardunio Duemilanove (持っていますよね?)
    ATmega168 秋月で230円
    動作確認用用ブレッドボードとジャンプワイヤ
  2. 仕様
    内蔵RC発振8MHz (LilyPadと同じ)
    電源は5V~3V(電池利用を想定)
  3. ブートローダーの作成
    1. 高速起動化
      \arduino-0017\hardware\bootloaders\atmega にある make ファイルを書き換え。MAX_TIME_COUNTは起動時の待ち時間で数値が大きいほうが待ち時間が短い。初期値は1で、待ってられないので普通の Arduinoと同じように4に変更。NUM_LED_FLASHSは起動時のLED点滅数。Digital13を他のデバイスに割り当てた時に信号を送 信してしまうので0にして点滅させないようにした。Ardunio Hacksでは電源ON→app_start() を呼ぶhackを公開しているが、必要があってウエイトを入れている気がするので当分は»4でがまんする。将来的にはMAX_TIME_COUNT=100 といか、直接数値を記入すればいいと思う。
      変更した Makefile を添付しておきます
    2. Make
      HEXのビルドに必要なツールは Arduino フォルダの中にあるから、あらかじめここを見てパスを通しておく(パスを通すバッチファイルを setup.zip として添付)。atmegaに入ってmake lilypad すると ATmegaBOOT_168_lilypad.hex が出来る。これをリネームしたものをATmegaBOOT_168_lilypad8MHz.hex , 1MHz駆動にしたものをATmegaBOOT_168_lilypad1MHz.hex として添付しておきます。
      ちなみに LilyPad フォルダ内の Make だと下図のエラーが出てしまいます。

  4. HEX書き込み

    ここでファイルを集めて、avrdude_GUIで書き込み。Lock Bitは関係なし。PICと違ってコンフィギュレーションをHEXに埋め込めない。面倒だし、間違えやすいのに・・・
    初めて HEX を書き込む場合は、 Fuse を Read して、E2を書込み、高速モードにしてから書き込むと速い。そうしないと3~5分も待たされる。1MHz版のHEXは lFuse のbit7 を 0 にした62 を書込んでおく。ここで1MHzになってしまうので Command line Option に低速モードスイッチ -b 4800 を書かなくてはならない。1MHz版は Arduino IDE でスケッチをアップロードできないので注意(調査中) 1MHzだと9600bpsでも誤差が±7% もあるのでダメかも
  5. Arduino IDE でボードを選択

    Arduinoでは Board で LilyPad Arduino w/ ATmega168 で選べばOK 。この方法で LilyPad互換機を作ってしまえばこちらのように delay の速度が変わってしまって board.txt に追加設定する必要もなくなる。添付した board.txt を使うと1MHz版を選べるようになるが、まだ動いていない。
  • 動作確認
    Arduino Duemilanova から +3.3V , GND だけをもらってくると便利です


    配線はGND,Vcc,AD変換を使うのであればAVcc,rstとVcc間に10kΩ程度の抵抗,Vcc-GND間に0.1uFのパスコンを入れれば Blink で確認できると思います。ATmega168には2つのGNDがありますが、どちらか一方だけでOKです。


    3.3Vはここから取り出します




Č
ċ
ď
ATmegaBOOT_168_lilypad1MHz.hex
(5k)
webmaster .,
2010/01/04 18:25
ċ
ď
ATmegaBOOT_168_lilypad8MHz.hex
(5k)
webmaster .,
2010/01/04 18:25
ċ
ď
Makefile
(6k)
webmaster .,
2010/01/04 17:24
ċ
ď
boards.txt
(6k)
webmaster .,
2010/01/04 18:42
ċ
ď
webmaster .,
2010/01/04 18:28