#topicpath

** 自作の Arduino を使う [#ddca75af]
*** なぜ自作の Arduino を使うのか [#dd0947b5]
++ 安い~
今時、ネットブックと呼ばれるノートパソコンが3万円程度でも買える。ノートパソコンではモニターできる環境、電源のバックアップ、ネットワークインターフェースにキーボード、等など、様々な装備が充実している。そんな中、マイコンボードが数万円してどうするのだろうか?数万円のマイコンボードで何かするくらいなら、パソコン自身を利用した方がよい。~
逆に、よりずっと安価なマイコンであれば使う意味がある。大量に展開できる可能性があるからだ。そして、可能な限り徹底的に安くすべきだ。秋月電子では、AVR マイコンで Arduino に利用できる ATmega 168P を 14 個以上購入すると、1個あたり 270円になる。
今時、ネットブックと呼ばれるノートパソコンが3万円程度でも買えます。ノートパソコンではモニターできる環境、電源のバックアップ、ネットワークインターフェースにキーボード、等など、様々な装備が充実しています。そんな中、マイコンボードが数万円してどうするのだろうか?と思います。数万円のマイコンボードで何かするくらいなら、パソコン自身を利用した方がよいのでは?。~
逆に、よりずっと安価なマイコンであれば使う意味があります。大量に展開できる可能性があるからです。そして、可能な限り徹底的に安くすべきだと思います。秋月電子では、AVR マイコンで Arduino に利用できる ATmega 168P を 14 個以上購入すると、1個あたり 270円になります。
~
~
++ USB ポートは必要ない~
標準的な市販品の Arduino では、USB ポート部分を持っていることで値段が高くなっている部分がある。~
ところが、実際にスタンドアローンで稼働させる場合、USB ポートをつけながら動かす必要はない。パソコンからプログラムを送る時だけあればいい。~
だから、USB 通信部分と本体部分は別々に作るべきだ。
標準的な市販品の Arduino では、USB ポート部分(シリアル変換機能)を持っていることで値段が高くなっている部分があります。~
ところが、実際にスタンドアローンで稼働させる場合、USB ポートをつけながら動かす必要はありません。パソコンからプログラムを送る時だけ接続していればいいのです。~
だから、USB 通信部分と本体部分は別々に作るべきです。
~
~
*** 自作の Arduino を使う [#g8dc9d66]
*** Arduino を自作する −Duemilanoveタイプ−[#g8dc9d66]
  ネットを見ると、Arduino を自作するにも様々な種類があります。ここでは、Duemilanoveと似たものと、USB直結タイプを作ります。
++ 部品~
1つずつ必要なもの~
|種別 |型番|価格|URL|
|AVRマイコン| ATmega168P | 300 | http://akizukidenshi.com/catalog/g/gI-03033/ |
|ブレッドボード| EIC-301 | 150 | http://akizukidenshi.com/catalog/g/gP-00313/|
~
複数個のためにまとめて買うもの~
|種別 |型番|価格|何個分?|URL|
|ワイヤ|KQE0.5mm 50m|1040 |いっぱい|http://www.sengoku.co.jp/mod/sgk_cart/search.php?code=4ASM-KMLX|
|水晶発振器|16MHz|500|10個|http://akizukidenshi.com/catalog/g/gP-00545/|
|コンデンサ|0.1μF|100|10個|http://akizukidenshi.com/catalog/g/gP-00090/|
|抵抗|10kΩ|100|100個|http://akizukidenshi.com/catalog/g/gR-25103/|
|タクトスイッチ| |700|100個|http://akizukidenshi.com/catalog/g/gP-01282/|
|ジャンパワイヤ| |300|いくつか|http://akizukidenshi.com/catalog/g/gP-02933/|
~
以下、シリアル変換部使うもの~
|種別 |型番|価格|何個分?|URL|
|USBシリアル変換モジュール|FT232RL|950|1個|http://akizukidenshi.com/catalog/g/gK-01977/|
|抵抗|1kΩ|100|50個|http://akizukidenshi.com/catalog/g/gR-25102/|
|コンデンサ|0.1μF|100|10個|http://akizukidenshi.com/catalog/g/gP-00090/|
~
~
ブートローダを仕込むために必要なもの
|種別|型番|価格|URL|
|マイコンライタ|AVRISP mkII|4000|http://akizukidenshi.com/catalog/g/gM-02582/|
++ 作る
+++ とりあえず、下記の URL を元に作ってみる。一応、配線は完了。~
しかし、ブートローダを仕込んでいないので動かない。2009-07-31 (金) 16:35:45
+++ 参考 URL :~
[[Duemilanoveの回路図>http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf]]~
[[秋月 FT232RL(AE-UM232R)のマニュアル>http://akizukidenshi.com/download/20090514ft245rlmodule_manual.pdf]]~
[[「はじめてのArduino」>http://isi.kicks-ass.net/blog/isi/bakilog-2.0/categories/arduino]]の写真~
[[「ブレッドボードでArduino」>http://zampoh.cocolog-nifty.com/blog/2008/04/arduino_b87f.html]]の写真
+++ ATmega168P にラベルを貼る。~
ラベルは、[[このサイト>http://todbot.com/blog/2009/05/23/arduino-chip-sticker-label/]]にある[[PDFファイル>http://todbot.com/blog/wp-content/uploads/2009/05/arduino-atmega-sticker.pdf]]をダウンロードし、使わせてもらう。~
貼らなくてもいいけど、貼った方が間違いが少ないと思う。~
~
なお、ICチップのルールとして、切り欠き(半月状に凹んだところ)を左側にしたときに、~
左下のピンを1番とし、反時計回りに番号をふっていくルールがある。この番号はここでも使うので確認しておきたい。~
また、1番ピンの近くには、丸いくぼみもある。これもルールとして覚えておきたい。
~
~
プリントされたくぼみの部分を合わせて合わせてラベルを貼るようにする。(つまり、1番のピンに rst 28番のピンに ai5 が対応する。)~
~
+++ 本体部分の構成~
写真のように配線する。左下の白いボタンは「タクトスイッチ」、左上は10kΩの抵抗。青い部品は0.1μFのコンデンサ。銀色のものは水晶発振器。~
銀色の水晶発振器は、9番ピン(xt1)と10番ピン(xt2)の間につなぐ。
 
 ここで、公開されている設計図との違いについて説明する。将来、動作が不安定になったらここを疑う。
   ○ 水晶発振器とグランド(GND)との間のコンデンサ(それぞれ22pFの)を省いた
   ○ 両側のGNDは内部で接続されているようなので両者の間の接続を省いた
 
+++ USBシリアル変換部~
パソコンからのUSBケーブルを接続する部分を写真のように組み立てる。~
基盤に書いてある文字はピンの間に書いてあって紛らわしい。下に当たるピンが該当する。~
抵抗はどちらも1kΩ、コンデンサは0.1μF。~
|変換モジュール側|間に挟むもの|Arduino 本体側|
|Vcc| | Vcc(7番)あるいは AVcc(20番)|
|DTR| コンデンサ 0.1μF| rst(1番)|
|TxD| 抵抗1kΩ|rxd(2番)|
|RxD| 抵抗1kΩ|txd(3番)|
|GND| |gnd(8番)|
++ ドライバ・開発環境~
[[Arduino のプログラミング環境を整える>../ArduinoIDE]]を参照してドライバとArduinoIDE(統合開発環境)を入れる。~
~
++ ブートローダ
+++ 準備1 : AVRISP mkII を購入する。~
+++ 準備1 : AVRISP mkII の接続~
これを Windows パソコンに接続して、ハードウエアを検出させてから付属の CD を入れる。~
ドライバが CD に入っているので、ここを指定してドライバを導入する。
+++ 準備2 : AVR Studio を CD から導入する。~
+++ 準備3 : AVR Studio を起動する。~
起動直後に立ち上がる Window は Cancel で消去する。~
小さなチップに"Con-"と書かれたアイコンをクリック。Platform-> AVRISP mkII と Port-> USB を設定して Connect。~
初回はいろいろと言われるが、適当に処理する。
+++ あとは、次の URL に従って書き込む。~
http://pc.watch.impress.co.jp/docs/column/musashino_proto/20090806_307235.html ~
ただし、上の記述は内臓のクロックを使うものである。~
ここでは、Duemilanove などと同じように外部の水晶発振を使って 16MHz で動かす。~
そこで、Fuse や Bootloader のファイルは次の URL に従って設定する。~
http://www.geocities.jp/arduino_diecimila/bootloader/index.html#mega8_328 ~
なお、未使用ビットの表し方が arduino と AVR Studio とで異なるという重大な事実がある。~
http://roshiago.blog.so-net.ne.jp/2009-08-23 ~
とりあえずうまく動いた。この辺は改めて整理する。2009-08-25 (火) 16:16:44
+++ 準備x : [[ここの追記3>http://www.geocities.jp/arduino_diecimila/bootloader/index.html]]の情報を基に、hardware/tools/avr/etc/avrdude.conf を編集し、末尾に 168P 情報を書き加える。~
必要あったのか?
// +++ 準備2 : [[ここ>http://isi.kicks-ass.net:8080/isi/bakilog-2.0/isiduino-168p]]を参照して、bootloader のソースに手を加える。→ コンパイルできなかったので、意味がなかった。2009-07-31 (金) 18:32:16
// +++ 準備3 : boards.txt も編集する。168p のエントリを作る。
// +++ ブートローダを仕込む方法 : 当面は、[[このページ>http://arms22.blog91.fc2.com/blog-entry-219.html]]に書いてある方法が一番楽。
// まず、スケッチをダウンロードする。そして編集。
//  enum { atunknown=0, atmega8=0x7, atmega48=0x5, atmega88=0xa, atmega168=0x6, atmega168p=0xb };
// ~
//  case atmega168: の後に続けて、case atmega168p を加える。
// ~
//  #define PULSE_SCK(level)  { *sckport |= sckbit; delayMicroseconds(10); *sckport &= ~sckbit; delayMicroseconds(10); }
// …うーむうまくいかない。なぜだろう。2009-07-31 (金) 18:32:16
++ プログラムを送り込む

+++ とりあえず、下記の URL を元に作ってみる。一応、配線は完了。~
しかし、ブートローダを仕込んでいないので動かない。2009-07-31 (金) 16:35:45
+++ 参考 URL :~
[[Duemilanoveの回路図>http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf]]~
[[秋月 FT232RL(AE-UM232R)のマニュアル>http://akizukidenshi.com/download/20090514ft245rlmodule_manual.pdf]]~
[[「はじめてのArduino」>http://isi.kicks-ass.net/blog/isi/bakilog-2.0/categories/arduino]]の写真~
[[「ブレッドボードでArduino」>http://zampoh.cocolog-nifty.com/blog/2008/04/arduino_b87f.html]]の写真


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