Top/Arduino/Arduino の自作
注意:私は素人です。また、本務に追われ、なかなか内容を更新できず、記事の内容はまだまだ不完全です。
他のサイトを参考にしてください!

自作の Arduino を使う

なぜ自作の Arduino を使うのか

  1. 安い
    今時、ネットブックと呼ばれるノートパソコンが3万円程度でも買えます。ノートパソコンではモニターできる環境、電源のバックアップ、ネットワークインターフェースにキーボード、等など、様々な装備が充実しています。そんな中、マイコンボードが数万円してどうするのだろうか?と思います。数万円のマイコンボードで何かするくらいなら、パソコン自身を利用した方がよいのでは?。
    逆に、よりずっと安価なマイコンであれば使う意味があります。大量に展開できる可能性があるからです。そして、可能な限り徹底的に安くすべきだと思います。秋月電子では、AVR マイコンで Arduino に利用できる ATmega 168P を 14 個以上購入すると、1個あたり 210円になります。

  2. USB ポートは必要ない
    標準的な市販品の Arduino では、USB ポート部分(シリアル変換機能)を持っていることで値段が高くなっている部分があります。
    ところが、実際にスタンドアローンで稼働させる場合、USB ポートをつけながら動かす必要はありません。パソコンからプログラムを送る時だけ接続していればいいのです。
    だから、USB 通信部分と本体部分は別々に作るべきです。
      ネットを見ると、Arduino を自作するにも様々な種類があります。ここでは、Duemilanoveと似たものと、USB直結タイプを作ります。

Arduino を自作する −Duemilanoveタイプ−

  1. 部品
    1. 1つずつ必要なもの
      種別規格価格URL
      AVRマイコンATmega168P210(14個以上で)http://akizukidenshi.com/catalog/g/gI-03033/
      ブレッドボードEIC-301150http://akizukidenshi.com/catalog/g/gP-00313/

    2. 複数個のためにまとめて買うもの
      種別規格価格何個分?URL
      ワイヤKQE0.5mm 50m1040いっぱいhttp://www.sengoku.co.jp/mod/sgk_cart/search.php?code=4ASM-KMLX
      水晶発振器16MHz50010個http://akizukidenshi.com/catalog/g/gP-00545/
      コンデンサ0.1μF10010個http://akizukidenshi.com/catalog/g/gP-00090/
      コンデンサ22pF1800100個http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=RPE2C1H220J2K1Z01B
      抵抗10kΩ100100個http://akizukidenshi.com/catalog/g/gR-25103/
      タクトスイッチ700100個http://akizukidenshi.com/catalog/g/gP-01282/
      ジャンパワイヤ300いくつかhttp://akizukidenshi.com/catalog/g/gP-02933/

    3. シリアル変換部で使うもの
      種別規格価格何個分?URL
      USBシリアル変換モジュールFT232RL9501個http://akizukidenshi.com/catalog/g/gK-01977/
      抵抗1kΩ100100個http://akizukidenshi.com/catalog/g/gR-25102/
      コンデンサ0.1μF10010個http://akizukidenshi.com/catalog/g/gP-00090/


    4. ブートローダを仕込むために必要なもの
      種別規格価格URL
      マイコンライタAVRISP mkII4000http://akizukidenshi.com/catalog/g/gM-02582/
  2. 作る
    1. ATmega168P にラベルを貼る。
      ラベルは、このサイトにあるPDFファイルをダウンロードし、使わせてもらう。
      貼らなくてもいいけど、貼った方が間違いが少ないと思う。
      ArduinoLabel.jpg

      なお、ICチップのルールとして、切り欠き(半月状に凹んだところ)を左側にしたときに、
      左下のピンを1番とし、反時計回りに番号をふっていくルールがある。この番号はここでも使うので確認しておきたい。
      また、1番ピンの近くには、丸いくぼみもある。これもルールとして覚えておきたい。

      プリントされたくぼみの部分を合わせて合わせてラベルを貼るようにする。(つまり、1番のピンに rst、 28番のピンに ai5 が対応する。)

    2. 本体部分の構成
      写真のように配線する。左下の白いボタンは「タクトスイッチ」、左上は10kΩの抵抗。青い部品は0.1μFのコンデンサ。銀色のものは水晶発振器。
      ArduinoWired.jpg
      銀色の水晶発振器は、9番ピン(xt1)と10番ピン(xt2)の間につなぐ。
      ここで、公開されている設計図との違いについて説明する。将来、動作が不安定になったらここを疑う。
        ○ 水晶発振器とグランド(GND)との間のコンデンサ(それぞれ22pFの)を省いた
        ○ 両側のGNDは内部で接続されているようなので両者の間の接続を省いた
      
    3. USBシリアル変換部
      パソコンからのUSBケーブルを接続する部分を写真のように組み立てる。
      USB232.jpg
      基盤に書いてある文字はピンの間に書いてあって紛らわしい。下に当たるピンが該当する。
      抵抗はどちらも1kΩ、コンデンサは0.1μF。
      Arduino_USB.jpg
      変換モジュール側間に挟むものArduino 本体側
      VccVcc(7番)あるいは AVcc(20番)あるいは上段
      DTRコンデンサ 0.1μFrst(1番)
      TxD抵抗1kΩrxd(2番)
      RxD抵抗1kΩtxd(3番)
      GNDgnd(8番、22番)あるいは下段
      ※ RS-232C のシリアル通信の場合、主従関係が無い。一方の RxD は他方の TxD につなぐ!
  3. ドライバ・開発環境
    Arduino のプログラミング環境を整えるを参照してドライバとArduinoIDE(統合開発環境)を入れる。

    ※ Arduino IDE の変更について
    ここの追記3のような情報はあるが、Arduino 017 では hardware/tools/avr/etc/avrdude.conf の変更は不用なようである。


  4. ブートローダ
    1. 準備1 : AVRISP mkII の接続
      これを Windows パソコンに接続して、ハードウエアを検出させてから付属の CD を入れる。
      ドライバが CD に入っているので、ここを指定してドライバを導入する。
    2. 準備2 : AVR Studio を CD から導入する。
    3. 準備3 : AVR Studio を起動する。
      起動直後に立ち上がる Window は Cancel で消去する。
      小さなチップに"Con-"と書かれたアイコンをクリック。Platform-> AVRISP mkII と Port-> USB を設定して Connect。
      初回はいろいろと言われるが、適当に処理する。
    4. 接続 :
      武蔵野電波のデジタル式FMラジオを参照して、AVRISPmkIIと本体とを接続する。
      AVRISPmkIIArduino本体
      1番d12 (18番)
      2番Vcc (7番あるいは上段)
      3番d13 (19番)
      4番d11 (17番)
      5番rst (1番)
      6番gnd (8番、22番あるいは上段)

      AVRISPmkIIとは別に電源を確保する必要がある。そこで、USBシリアル変換部をUSBケーブル経由でPCに接続する。
    5. ブートローダを書き込む
      再び武蔵野電波のデジタル式FMラジオを参照して、ブートローダを書き込む。
      ただし、上の記述は内臓のクロックを使うものである。そこで、
      Program   : ATmegaBOOT_168_diecimila.hex
      Fuses     : Extended 0xF8 High 0xDD Low 0xFF
      Lock bits : 0xEF
      とする。(ちゃんと確かめていない…)
      ※ なお、未使用ビットの表し方が arduino と AVR Studio とで異なるという重大な事実がある(参考URLはこちら)。


  5. うまくいかないとき
    次のようなメッセージに随分悩んだ。(Windows の場合のエラーメッセージ)
    avrdude: stk500_getsync(): not in sync: resp=0x00
    avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
    次のような対応を考えるべき。

    1. シリアルポート
      Tools > Serial Port で指定するシリアルポートを正しく設定する。ケーブルを抜いて消えたデバイス名。
    2. ボード
      Tools > Board で指定するボードを確認。
    3. 配線
      よく確認する。特に、USBシリアル変換器 の (RxD, TxD) は、Arduino の (TxD, RxD) と、クロスして接続することに注意。
    4. Fuse Byte
      特に extended は、ブートローダの大きさを指定している。また、上書きされないように、Lock bit も正しく。

資料

  1. 履歴
    1. 配線は完了。2009-07-31 (金) 16:35:45
      しかし、ブートローダを仕込んでいないので動かない。
    2. とりあえず動く。2009-08-25 (火) 16:16:44
      とりあえずうまく動いた。この辺は改めて整理する。
    3. なんとかまとまる。2009-09-07 (月) 18:01:45
  2. 参考 URL :

Arduino を自作する −USB直結タイプ−

  1. 部品
    1. 1つずつ必要なもの
      種別規格価格URL
      AVRマイコンATmega168P300http://akizukidenshi.com/catalog/g/gI-03033/
      ブレッドボードEIC-301150http://akizukidenshi.com/catalog/g/gP-00313/

    2. 複数個のためにまとめて買うもの

  2. 配線




  3. ブートローダ
    1. 資源:
      ここUSBaspLoader を用いる。
      最新版は2009年03月20日版

資料

  1. 履歴
    1. 2010-05-21 (金) 17:38:40 配線してみる
    2. 2010-05-21 (金) 19:46:45 ブートローダを入れてみる。+接続してみる。
  2. 参考 URL :
    1. Make / USBasp (USB直結)
    2. O'Baka / Arduino Skelton

トップ   新規 検索 最終更新   ヘルプ   最終更新のRSS