Arduino(クローン)を自作してみる

ブレッドボードでも組んでいるのだが,固定していないのが不安定なので,ちゃんとハンダ付けしてみる.ユニバーサル基板で十分だが,電源とかアースのラインもあって,手間が減らせるかなと思い,サンハヤトの基板ICB-86を使ってみる.ピンの位置は純正と異なるが,ほぼ互換である.
回路図は以下で公開されている.
http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf


(追記)こちらは秋月のブレッドボード配線パターンタイプのユニバーサル基板\80と
FTDI USBシリアルケーブル 5V\1340の組み合わせ

部品リスト

部品 品番 個数 価格
IC1 ATmega328p 1 ¥250
Q1 16MHz crystal clock 1 ¥50
C1,C2 22pF capacitor 2 ¥10
C3 0.1uF(104) capacitor 1 ¥10
C4 10uF 1 ¥10
SW1 tact switch 1 ¥20
R1,R2 1k ohm resistor 2 ¥2
R3 10k ohm resistor 1 ¥1
R4,R5 330 ohm 2 ¥1
LED1,LED2 LED 2 ¥10
J1 3×2 pin header 1 ¥50
J2 6×1 pin header 1 ¥50
board ICB-86 1 ¥105
case アクリル板透明 2mm 20cmx30cm 1 ¥290
knots&bolts プラネジ,スペーサ 1 ¥150

ほとんど秋月で買えて,¥1000位で収まる.(ただし,抵抗とかの安いパーツはまとめ買いを単価に換算してあるが,店舗では一本買いも可)
電源周り(regulator)とかFTDIとかはサボっているので,
USB接続のために
FTDI Basicもしくは秋月のUSBシリアル変換
などが必要だがArduino pro/miniなどでも使い回しができる.

ISPはArduinoにはなくてもいいが,普通にAVRとして使うときに必要なので付けた.pocket programmerやAVRISPmkIIなども
AVR一般に使い回しが効くので,一つあるとよい.

AVRのピンは
http://tinkerlog.com/2009/06/18/microcontroller-cheat-sheet/
http://todbot.com/blog/2009/05/23/arduino-chip-sticker-label/
を参照.

Share photos on twitter with Twitpic
ケースを作るのは意外に面倒で気合を入れないとなかなか腰が上らない.
アクリルを切るにはPカッターという尖った専用のカッターでキズを付けて,適当な深さまで削った後に力を入れて割る.
ホームセンターとかで買える安いドリルで3mmの穴を開ける.最初は怖いが慣れるとすごく簡単にできる.いきなり3mmでなく小さめの穴を開けておいた方がよい.
タカチとかのケースに穴を開けるのもいいが,小さい箱だと固定が難しいので板の方が穴開けは楽.アンプのケースとか作るとボリュームの穴が大きいので苦労した.
スペーサで柱を作ると一応ケースみたいになる.密閉が必要だと側面も作って,接着する必要があるが,アクリサンデーというアクリル専用の接着剤がある.

回路を組んだ後、Arduinoとして動かすためにはブートローダを書き込む必要がある。
IDEをダウンロードするとブートローダが同梱されているので、チップに応じたブートロードを書き込む。hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex
書き込むためには他のArduinoまたはISPプログラマでavrdudeを使う。
ソースコードとMakefileも用意されているので、自分でコンパイルすることも可能である。
なお、FUSE設定については
hardware/arduino/board.txt に

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05

とあるので、

avrdude -c usbtiny -p atmega328p -U lfuse:w:0xff:m -U hfuse:w:0xda:m -U efuse:w:0x05:m

などとする。

[ちょっと補足]このページにアクセスする方が多くなってきたので、補足しておきます。
AVRを最低限動かすのに必要なのはVCC(7,20),GND(8,22)は当然として、
RESET回路(1),水晶発振子(9,10)位です。(Arduinoでなければ水晶も省けますが)
後はプログラムを書き換えるためのICSP端子にMISO(18),SCK(19),MOSI(17)とVCC,GND,RESETを接続すれば、AVRとしては動きます。ただそのままでは動いているかどうかわからないので、LEDをD13=PB5=19に接続しておきます。
ここまで接続した段階でavrispなどの書き込みツールを使ってavrdudeを起動すれば、接続が正しいかのチェックができるので、複雑になる前にやってみてもいいのではと思います。動作確認できたら、この時点でarduinoのブートローダを書き込んでしまいます。
後はピンヘッダにそれぞれの足を引き出すこととUART関係を追加すればArduinoになります。組立ての手順としては背の低いものからというのが定石ですが、プリント基板ではないので、動作を確実にAVRも理解したいという人はこのような手順でもいいかと思います。
もっとお手軽にという向きにはブレッドボードでも試せます。
http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard
http://www.oomlout.co.uk/breadboard-arduino-compatible-kit-bbac-p-211.html
http://arduino.cc/en/Tutorial/ArduinoISP
http://arduino.cc/en/Tutorial/ArduinoToBreadboard

カテゴリー: Arduino

コメントを残す

カテゴリー
2010年3月
1234567
891011121314
15161718192021
22232425262728
293031