#topicpath
 
 注意1:私は素人です。その上、記事の内容は更新中でまだまだ不完全です。間違いなど、どうぞ御指摘下さい。
  また、このサイトからリンクが張られている情報源によって内容を作っています。それらのサイトの作成者の情報は
  非常に有益でありがたいものでした。ぜひ、そうしたサイトを参考にしてください!

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

** 自作の Arduino を使う [#ddca75af]
*** なぜ自作の Arduino を使うのか [#dd0947b5]
 注意2 : 自作の場合、既製品に含まれている(?)ような各種安全回路を組んでいません。
 うっかり接続を間違えると、Arduino 側だけでなく、PCも損壊する可能性があります。
 この点はぜひ気をつけたいものです。(ちなみに私は責任を負いません。)
 
* 自作の Arduino互換(もどき)を使う [#ddca75af]
** なぜ自作の Arduino 互換を使うのか [#dd0947b5]
++ 安い~
今時、ネットブックと呼ばれるノートパソコンが3万円程度でも買えます。ノートパソコンではモニターできる環境、電源のバックアップ、ネットワークインターフェースにキーボード、等など、様々な装備が充実しています。そんな中、マイコンボードが数万円してどうするのだろうか?と思います。数万円のマイコンボードで何かするくらいなら、パソコン自身を利用した方がよいのでは?。~
逆に、よりずっと安価なマイコンであれば使う意味があります。大量に展開できる可能性があるからです。そして、可能な限り徹底的に安くすべきだと思います。秋月電子では、AVR マイコンで Arduino に利用できる ATmega 168P を 14 個以上購入すると、1個あたり 270円になります。
今時、ネットブックと呼ばれるノートパソコンが3万円程度でも買えます。ノートパッドなら、1万円しないで購入できます。これらにはモニターできる環境、電源の~
バックアップ、ネットワークインターフェースがあり、ノートパソコンにはキーボードなど、様々な装備が充実しています。そんな中、マイコンボードが数万円して~
どうするのだろうか?と思います。数万円のマイコンボードで何かするくらいなら、ノートパソコンやノートパッドを利用した方がよいのでは?~
逆に、よりずっと安価なマイコンであれば使う意味があります。一つには、大量に展開できる可能性があるからです。また、安ければ若い青少年が扱うことができるからです。~
そして、実際、安くすることが可能です。秋月電子では、AVR マイコンで Arduino に利用できる ATmega 168P を 14 個以上購入すると、1個あたり 210円になります。
~
~
++ USB ポートは必要ない~
標準的な市販品の Arduino では、USB ポート部分(シリアル変換機能)を持っていることで値段が高くなっている部分があります。~
ところが、実際にスタンドアローンで稼働させる場合、USB ポートをつけながら動かす必要はありません。パソコンからプログラムを送る時だけ接続していればいいのです。~
だから、USB 通信部分と本体部分は別々に作るべきです。
だから、USB 通信部分と本体部分は別々に作るべきです。自分で作れば、どのようにパソコンと接続するかを決めることもできます。
~
~
*** Arduino を自作する −Duemilanoveタイプ−[#g8dc9d66]
  ネットを見ると、Arduino を自作するにも様々な種類があります。ここでは、Duemilanoveと似たものと、USB直結タイプを作ります。
++ 部品~
+++1つずつ必要なもの~
|種別 |規格|価格|URL|
| | | | |
|AVRマイコン| ATmega168P | 230 | http://akizukidenshi.com/catalog/g/gI-03033/ |
|ブレッドボード| EIC-301 | 150 | http://akizukidenshi.com/catalog/g/gP-00313/|
++ デメリット(&color(red,注意事項);でもあります。)~
もちろんデメリットもあります。面倒だし、初期投資は結局お金がかかるし、パソコンに接続する際に間違うとハードウエアを破壊する可能性もあります。しかし、状況によってはデメリットを上回る利益があると思います。
~
+++ 複数個のためにまとめて買うもの~
|種別 |規格|価格|何個分?|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/|
|コンデンサ|22pF|1800|100個|http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=RPE2C1H220J2K1Z01B|
|抵抗|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|100個|http://akizukidenshi.com/catalog/g/gR-25102/|
|コンデンサ|0.1μF|100|10個|http://akizukidenshi.com/catalog/g/gP-00090/|
ネットを見ると、自作するArduinoにも様々な種類があります。ここでは、[[Duemilanoveと似たもの>./DuemilanoveTYPE]]と部品点数を減らした[[ミニマルタイプ>./MINIMAL]]、それに[[USB直結タイプ>./USBTYPE]]を作ります。それぞれ、ブートローダを仕込まなければなりません。その方法は「[[ブートローダを仕込む>./ブートローダを仕込む]]」を参照してください。
~
** [[Arduino 互換機を購入する>../Arduino 互換機の購入]] [#c5693817]
- 自作しないで購入する理由~
~
+++ ブートローダを仕込むために必要なもの
|種別|規格|価格|URL|
| | | | |
|マイコンライタ|AVRISP mkII|4000|http://akizukidenshi.com/catalog/g/gM-02582/|
++ 作る
+++ 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]]をダウンロードし、使わせてもらう。~
貼らなくてもいいけど、貼った方が間違いが少ないと思う。~
CENTER:&ref(ArduinoLabel.jpg,,400x300);~
流通が世界規模になりました。特に中国を拠点にした世界を相手にした商売が普通に行われるようになりました。~
まだまだ人件費などが安い中国で生産されたものが、世界の物品の価格をコントロールするような状態が実現して~
います。(是非はともかく。)~
Arduino の場合も、互換機が非常に安価に販売されています。マイコンを単体で買うのとそう違わない値段で購入~
できるので、手間の分だけ楽になります。(是非はともかく。)~
~
LEFT:なお、ICチップのルールとして、切り欠き(半月状に凹んだところ)を左側にしたときに、~
左下のピンを1番とし、反時計回りに番号をふっていくルールがある。この番号はここでも使うので確認しておきたい。~
また、1番ピンの近くには、丸いくぼみもある。これもルールとして覚えておきたい。
- ページへのポインタと注意~
~
安価な互換機の購入について、情報をまとめました。[[Arduino 互換機の購入>../Arduino 互換機の購入]]のページを参照。~
なお、情報の変化が激しいので、この情報はある時点のものと理解し、それらをベースに自分で探していただける~
といいと思います。~
~
プリントされたくぼみの部分を合わせて合わせてラベルを貼るようにする。(つまり、1番のピンに rst、 28番のピンに ai5 が対応する。)~
** Arduino 互換機を自作する [#b20ee15c]
*** Arduino 互換を自作する −[[USB直結タイプ>./USBTYPE]]− [#ecdb4a95]

++ USB直結タイプ について~
例えば複数人が同時に作業するとき、Arduino 本体とパソコンとを同時に接続するので、その人たちの間で USBシリアル変換の回路を含んだ部分(Duemilanoveに似たタイプで利用しているもの)を共有することができません。そして、その部品は1,000 円ぐらいするので、これを大量に購入すると、安さのメリットが半減します。~
ところが、USBシリアル変換を必要とせず、本体とパソコンとを USB ケーブルで直結する方法があります。いくつかの制約があるものの、こちらを使うと非常に安く仕上げることができます。~
~
+++ 本体部分の構成~
写真のように配線する。左下の白いボタンは「タクトスイッチ」、左上は10kΩの抵抗。青い部品は0.1μFのコンデンサ。銀色のものは水晶発振器。~
CENTER:&ref(ArduinoWired.jpg,,400x300);~
LEFT:銀色の水晶発振器は、9番ピン(xt1)と10番ピン(xt2)の間につなぐ。
 
 ここで、公開されている設計図との違いについて説明する。将来、動作が不安定になったらここを疑う。
   ○ 水晶発振器とグランド(GND)との間のコンデンサ(それぞれ22pFの)を省いた
   ○ 両側のGNDは内部で接続されているようなので両者の間の接続を省いた
 
+++ USBシリアル変換部~
パソコンからのUSBケーブルを接続する部分を写真のように組み立てる。~
CENTER:&ref(USB232.jpg,,400x300);~
LEFT:基盤に書いてある文字はピンの間に書いてあって紛らわしい。下に当たるピンが該当する。~
抵抗はどちらも1kΩ、コンデンサは0.1μF。~
CENTER:&ref(Arduino_USB.jpg,,400x300);
|変換モジュール側|間に挟むもの|Arduino 本体側|
|Vcc| | Vcc(7番)あるいは AVcc(20番)あるいは上段|
|DTR| コンデンサ 0.1μF| rst(1番)|
|TxD| 抵抗1kΩ|rxd(2番)|
|RxD| 抵抗1kΩ|txd(3番)|
|GND| |gnd(8番、22番)あるいは下段|
※ RS-232C のシリアル通信の場合、主従関係が無い。一方の RxD は他方の TxD につなぐ!
++ ドライバ・開発環境~
[[Arduino のプログラミング環境を整える>../ArduinoIDE]]を参照してドライバとArduinoIDE(統合開発環境)を入れる。~
どれもそうですが、こんなに素晴らしいものを作ってくれた方々(特に[[このページ>http://make.kosakalab.com/arduino/]]の Kimio Kosaka さん )に感謝。
~
※ Arduino IDE の変更について~
[[ここの追記3>http://www.geocities.jp/arduino_diecimila/bootloader/index.html]]のような情報はあるが、Arduino 017 では hardware/tools/avr/etc/avrdude.conf の変更は不用なようである。
~
++ ページを新設しました。「[[USB直結タイプ>./USBTYPE]]」を作るページを参照してください。

*** Arduino 互換を自作する −[[Duemilanoveタイプ>./DuemilanoveTYPE]]− [#g8dc9d66]

++ Duemilanove について~
最も標準的な Arduino として扱われているようです。実際、Arduino のホームページでも、初心者向けにこれを使って解説しています。PC に USB 経由で接続でき、他のデバイスへもジャンパワイヤなどで簡単に接続できます。~
ここでは、Duemilanove などと同様に、USBシリアル変換の回路を挟んで、マイコン( ATmega 168P ) とパソコンとを USB ケーブルで接続するタイプのものをブレッドボードで自作します。~
~
++ ページを新設しました。「[[Duemilanoveと似たもの>./DuemilanoveTYPE]]」を作るページを参照してください。

*** Arduino 互換を自作する −[[ミニマルタイプ>./MINIMAL]]− [#i3bd569b]
++ 上記のタイプとほとんど同じです。水晶発振器を用いず、マイコン内臓の RC 発振回路をクロックとして用います。~
3.3V 程度の低電圧で利用する場合には、16MHz で利用するのは規格外です。そこで、8MHz 程度で動かす必要があります。コンパクトで、低電圧で、安く仕上がります。~
~
++ ブートローダ
+++ 準備1 : AVRISP mkII の接続~
これを Windows パソコンに接続して、ハードウエアを検出させてから付属の CD を入れる。~
ドライバが CD に入っているので、ここを指定してドライバを導入する。
+++ 準備2 : AVR Studio を CD から導入する。~
+++ 準備3 : AVR Studio を起動する。~
起動直後に立ち上がる Window は Cancel で消去する。~
小さなチップに"Con-"と書かれたアイコンをクリック。Platform-> AVRISP mkII と Port-> USB を設定して Connect。~
初回はいろいろと言われるが、適当に処理する。
+++ 接続 : ~
[[武蔵野電波のデジタル式FMラジオ>http://pc.watch.impress.co.jp/docs/column/musashino_proto/20090806_307235.html]]を参照して、AVRISPmkIIと本体とを接続する。
|AVRISPmkII|Arduino本体|
|1番|d12 (18番)|
|2番|Vcc (7番あるいは上段)|
|3番|d13 (19番)|
|4番|d11 (17番)|
|5番|rst (1番)|
|6番|gnd (8番、22番あるいは上段)|
しかし、時間についての精度が下がり、PC との通信が困難になる場合もあるようです。イベントのために70個の ATmega168P についてブートローダとスケッチを書き込んだところ、一つだけスケッチを書き込めませんでした。
++ 詳しくは、[[ミニマルタイプ>./MINIMAL]]のページへ。

*** Arduino 互換(?)を自作する −[[ATTinyタイプ>./ATTiny]]− [#q9cdd3bb]
++ 上記のタイプとは全く違います。既に Arduino を持っていることを前提として、Arduino IDE で開発したスケッチを ATTiny に送り込みます。~
すべてのピンが動く訳でもなく、すべてのプログラムが動く訳でもなく、スケッチのサイズも限られます。しかし、小さなスケッチ、ピンの数が少なくていい場合には有効です。~
~
AVRISPmkIIとは別に電源を確保する必要がある。そこで、USBシリアル変換部をUSBケーブル経由でPCに接続する。
+++ ブートローダを書き込む~
再び[[武蔵野電波のデジタル式FMラジオ>http://pc.watch.impress.co.jp/docs/column/musashino_proto/20090806_307235.html]]を参照して、ブートローダを書き込む。~
ただし、上の記述は内臓のクロックを使うものである。そこで、
 Program   : ATmegaBOOT_168_diecimila.hex
 Fuses     : Extended 0xF8 High 0xDD Low 0xFF
 Lock bits : 0xEF
とする。(ちゃんと確かめていない…)~
※ なお、未使用ビットの表し方が arduino と AVR Studio とで異なるという重大な事実がある([[参考URLはこちら>http://roshiago.blog.so-net.ne.jp/2009-08-23]])。~
~
~
++ うまくいかないとき~
次のようなメッセージに随分悩んだ。(Windows の場合のエラーメッセージ)
 avrdude: stk500_getsync(): not in sync: resp=0x00
 avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
次のような対応を考えるべき。~
~
+++ シリアルポート~
Tools > Serial Port で指定するシリアルポートを正しく設定する。ケーブルを抜いて消えたデバイス名。
+++ ボード~
Tools > Board で指定するボードを確認。
+++ 配線~
よく確認する。特に、USBシリアル変換器 の (RxD, TxD) は、Arduino の (TxD, RxD) と、クロスして接続することに注意。
+++ Fuse Byte~
特に extended は、ブートローダの大きさを指定している。また、上書きされないように、Lock bit も正しく。
// +++ 準備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
~
*** 資料 [#ocadf2a0]
++ 履歴
+++ 配線は完了。2009-07-31 (金) 16:35:45~
しかし、ブートローダを仕込んでいないので動かない。
+++ とりあえず動く。2009-08-25 (火) 16:16:44~
とりあえずうまく動いた。この辺は改めて整理する。
+++ なんとかまとまる。2009-09-07 (月) 18:01: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]]の写真
++ まだ自分で試していないので、リンクだけ。
+++ Make ブログ~
http://blog.makezine.com/2011/10/10/how-to-shrinkify-your-arduino-projects/ ~
+++ 小坂さんのページ~
http://make.kosakalab.com/arduino/use/arduino_dev.html ~
※ Make の Youtube のビデオをみて、初めてこのようなこと手法を知りました。~
調べると、小坂さんのページに詳細に書いてありました。~
+++ ATTiny13 についての情報~
http://hello-world.blog.so-net.ne.jp/2012-02-19 ~
がんばればできるようです。~
その他の ATTiny13 についての工作例~
・ http://d.hatena.ne.jp/kyuuzyuu9yen/20110116/1295175422 ~
Arduino にこだわらず、直接プログラムを書き込んだ方が早いかもしれない。~
*** Arduino 互換を自作する −HIDaspx + dude-wrapng− [#l7f550e1]
   ……情報収集中……

*** Arduino を自作する −USB直結タイプ− [#ecdb4a95]
*** ブートローダを仕込む [#u65bd1de]

++ 部品~
+++1つずつ必要なもの~
|種別 |規格|価格|URL|
| | | | |
|AVRマイコン| ATmega168P | 300 | http://akizukidenshi.com/catalog/g/gI-03033/ |
|ブレッドボード| EIC-301 | 150 | http://akizukidenshi.com/catalog/g/gP-00313/|
++ ブートローダについて~
Arduino の特徴は、プログラム(スケッチ)を簡単にマイコンに流し込めることです。それを実現しているのがブートローダです。~
ところが、自分でマイコンを購入すると、このブートローダは入っていません。上記の二つのタイプの Arduino を自作する場合にも、それぞれ別種類のブートローダを入れなければなりません。ブートローダは1回だけ入れればいいので、気楽に考えたいところです。~
~
+++ 複数個のためにまとめて買うもの~
|種別 |規格|価格|何個分?|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/|
|コンデンサ|22pF|1800|100個|http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=RPE2C1H220J2K1Z01B|
|抵抗|10kΩ|100|100個|http://akizukidenshi.com/catalog/g/gR-25103/|
|抵抗|68Ω|105|100個|http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=RD25%2068&cond8=and|
|タクトスイッチ| |700|100個|http://akizukidenshi.com/catalog/g/gP-01282/|
|ジャンパワイヤ| |300|いくつか|http://akizukidenshi.com/catalog/g/gP-02933/|
| | | | | |
|コンデンサ|10μF|700|200個|http://akizukidenshi.com/catalog/g/gP-03117/|
|ツェナーダイオード|3.5-3.7V|630|100個|http://www.sengoku.co.jp/mod/sgk_cart/search.php?multi=HZ4A%202%20E&x=0&y=0&cond8=and|
しかし、実際に自作する場合には、これがネックになることはあるだろうと思います。可能性の一つは、電子工作仲間のネットワークを広げておいて、書き込み手段を持っている人にやってもらうということです。私が選んだ選択肢は、ブートローダを書き込むために、4000円程度の追加投資をし、AVRISP mkII を購入することでした。他にも[[市販の既製品である Arduino Duemilanove などを使って書き込む方法>http://make.kosakalab.com/arduino/bootloader/index.html#top]](これまた Kimio Kosakaさん)もあります。ただし、これは最初に選ぶ選択肢ではないように思います。~
~
++ 配線~
結論の一つは「Arduino を一つだけ使いたい」というような場合には、やはり「市販の既製品を購入すべきだ」ということです。~
~
~
~
~
++ ブートローダ~
+++ 資源:~
[[ここ>http://www.obdev.at/products/vusb/usbasploader.html]]の [[USBaspLoader>http://www.obdev.at/products/vusb/usbasploader.html]] を用いる。~
最新版は[[2009年03月20日版>http://www.obdev.at/downloads/vusb/USBaspLoader.2009-03-20.zip]]
*** 資料 [#ocadf2a0]
++ 履歴
+++ 2010-05-21 (金) 17:38:40 配線してみる
+++ 2010-05-21 (金) 19:46:45 ブートローダを入れてみる。+接続してみる。
++ 参考 URL :~
+++ [[Make / USBasp (USB直結)>http://www.geocities.jp/arduino_diecimila/make/usbasp/index.html]]
+++ [[O'Baka / Arduino Skelton>http://www.geocities.jp/arduino_diecimila/obaka/project-7/index.html]]
++  ページを新設しました。AVRISP mkII を利用してブートローダを書き込む方法は、「[[ブートローダを仕込む>./ブートローダを仕込む]]」を参照してください。


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