てきとうなさいと べぇたばん

ATmega 168/328マイコンボードキットをMacでArduinoにする

今回作ったもの。Arduinoをつくろう!

Arduinoを作る

Arduinoは公式のでは3000円ちょっとなので、複数必要になるとちょっとたかいとかんじてしまいます。4個買ったら1万円こえますしね。

そこで、ATmega 168/328マイコンボードキットを量産しようと考えました。そのまま購入すると2100円ですが、バラで必要なパーツをそろえれば、もっと安く済ませられます。

材料

秋月電子さんのページから引用させていただくと、以下のようになっております。

  • ATMEGA168/328用マイコンボード(AE-ATmega P-04399)
  • AVRマイコン(ATmega168P I-03033)x1
  • USBシリアル変換モジュール(AE-UM232R K-01977)x1
  • 5V三端子レギュレータ(7805 I-00161 x1
  • ブリッジダイオード(DF06M I-01046 x1
  • 水晶振動子16MHz x1,20MHz x1
  • 電解コンデンサ 100μF25V x2
  • 積層セラミックコンデンサ0.1μF x4
  • セラミックコンデンサ22pF x2
  • 1x40ピンヘッダC-00167 x1
  • 2x7ピンヘッダC-00166 x1
  • 抵抗1kΩ x6
  • 抵抗10kΩ x1
  • 赤色タクトスイッチ x1
  • 赤色ジャンパピン x4
  • 白色3mmLED x5
  • 1x6ピンソケットC-03784 x2
  • 1x8ピンソケットC-03785 x2
  • 丸ピンICソケット28ピン(300mil)P-01339 x1
  • DCジャック x1

となっております。さて、コレをすべてバラバラで買うといくらになるでしょう?ということで計算しました。 ただし、ピンソケットは1×42のものを購入する購入するといった単価を下げる工夫をしています。

  • 1437円
  • USBシリアル変換モジュールなしでは637円

となりました。他に、AVRISP mkIIというAVRライタか、Arduino本体が必要ではありますが書き込むならばAVRISP mkIIがいいと個人的に思います。将来的にはAVRの勉強もしたいし。

後述しますが、もう少しだけ安くなると思います。多分、極められる人はもっと。

ハンダ付け

ハンダ付けはhttp://tekitoh-memdhoi.info/views/620のほうがくわしいです。

よしなに。5mmのLEDだったので3つ並んでいる部分がぶつかりますが、足を曲げるなどして位置を調整してなんとかがんばりました。3mmのLEDのほうが安かったことに気が付きました

Arduinoのブートローダーの書き込み

使用しているAVRマイコンがATmega 168Pであるがゆえに、Arduino IDE上の「ブートローダーを書き込む」がそのまま使えませんでした。というわけですこし設定ファイルをいじります。

なんでなのかわからないのはぼくのスキル不足なのでわかるようにしないと。

/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/boards.txt

以下を追記。

##############################################################

diecimila168P.name=Arduino Diecimila or Duemilanove w/ ATmega168P

diecimila168P.upload.maximum_size=14336
diecimila168P.upload.speed=19200
diecimila168P.upload.tool=avrdude
diecimila168P.upload.protocol=arduino

diecimila168P.bootloader.low_fuses=0xff
diecimila168P.bootloader.high_fuses=0xdd
diecimila168P.bootloader.extended_fuses=0x00
diecimila168P.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex
diecimila168P.bootloader.unlock_bits=0x3F
diecimila168P.bootloader.lock_bits=0x0F
diecimila168P.bootloader.tool=avrdude

diecimila168P.build.mcu=atmega168p
diecimila168P.build.f_cpu=16000000L
diecimila168P.build.core=arduino
diecimila168P.build.variant=standard

/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf

http://make.kosakalab.com/arduino/bootloader/files/avrdude.confを参考に、末尾の以下から始まる行から最後まで追記。

#------------------------------------------------------------
# ATmega168P
#------------------------------------------------------------

7627行目あたりにある部分をコメントアウト。

#part parent "m168"
#    id              = "m168p";
#    desc            = "ATmega168P";
#    signature       = 0x1e 0x94 0x0b;
#
#    ocdrev              = 1;
#;

この部分はコメントアウトしなくてもいいんだけど警告が出でてキモイので。。

書き込む

書き込む際には、「ツール」「ボード」から「Arduino Diecimila or Duemilanove w/ ATmega168P」を選択して「ブートローダを書き込む」です。

書き込む前にリセットのタクトスイッチ押してくださいね。

スケッチをマイコンボードに書き込む

じっさいにスケッチを送る際には「Arduino Duemilanove or Diecimila」でマイコンボードに書き込みます。ここが少しややこしい。

Arduino IDEが便利になってた

ブートローダが書き込めるようになってたのはびっくりしました。すごく便利ですね。とはいえ、AVRをMacで開発してみたいのでAVRISP mkIIでの書き込みもマスターしたいなと思いました。