広告

Arduinoを自作する

Arduinoはオープンハードなので回路図やプリント基板パターンが公開されている。 ということは自分でも作れるということ。
自作する利点は買うより安いということよりも、自分の使いたいように作れるところだろう。センサなどの部品もモジュールとして組み合わせるのではなく同一基板上に付けることもできる。

ボードの作製

今回は部品点数の少ない「Arduino Nano」を作ってみた。
CPU(ATmega328P)やUSBシリアル変換IC(FT232RL)、USBコネクタなどの主要部品は秋月電子にて格安で入手可能なのでかなり安く仕上がる(総額で2千円以下?)。

Arduino Nanoのページで公開されている回路図どおりプリント基板を作製すればいい。Eagleを使うならプリント基板パターンも公開されている。

僕自身はKiCADを使っているので回路図を元に作製した。

bootloaderの書き込み

ボードが出来上がったらbootloaderを書き込む。
AVRに書き込む方法と同じなのでbootloaderファイルを取ってきてavrdudeなどで書き込む。
といってもbootloaderファイルを見つけるのが面倒。
でもArduino IDEからも書き込む事ができるので今回はこの方法を採用。

  • Arduino IDEのTools→Boardでボードの種類を選ぶ。
    • 今回は「ATmega328」
  • 作製したボードとライタを接続する。
    • 今回はやっぱり秋月で売っている純正ライターAVRISPmkIIを使った。
    • AVRISPmkIIからは電源が供給されないので、USBか外部電源をつなげる
    • AVRISPmkIIのLEDが緑ならOK。
      • 赤の場合はボードにちゃんとつながっていないか電源が供給されていない。
      • オレンジ点滅の場合はボードのどっか(リセット周辺など)がおかしい。
  • そしてTools→Burn Bootloaderで使用するライタを選ぶ。選ぶと書き込みを始める
    • パーミッションによってはlibusbと同様にroot権限でArduino IDEを動かす必要があるかも
  • 正常に書き込みが終わるとCPUの17ピン(D13/SCK)につながっているLEDが点滅する。

bootloaderを作る

Arduino@wikiの記事を参照。

  • ソースはGoogle codeからsubversionでcheckoutして取ってくる。
    svn checkout http://arduino.googlecode.com/svn/trunk/ arduino-read-only
  • ダウンロードしたディレクトリの下の「hardware/bootloaders/atmega/」へ移動
  • Makefileを自分用に変更「hardware/bootloaders/atmega/
    • 周波数など
  • make
    • 「error: ‘EEWE’ undeclared」というエラーがでたらstastaka's Blogの記事の通りソースの上の方に「#define EEWE 1」という行を追加する
  • avrdudeで書き込む
    • パーミッションによってはroot権限が必要。下の例は20MHzバージョンを作ったときのもの
      avrdude -c avrispmkII -P usb -p m328p -U flash:w:ATmegaBOOT_168_atmega328p_20M.hex
  • 正常に書き込みが終わるとCPUの17ピン(D13/SCK)につながっているLEDが点滅する。

その他

Arduinoではクロックが16MHzだが20MHzの発振子を付けても動く。ただしシリアル通信やタイミングなどが狂うので20MHzの発振子を使う場合は20MHz用のbootloaderを使う必要がある。


広告

リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS