Arduinoを自作したいと思ったことはありませんか。
自分だけのオリジナルArduinoを自作したい思ったときの第一歩は、Arduinoのブートローダーの書込です。
自作のArduinoを作るためには、次のハードルをクリアする必要があります。
1.AVRマイコンチップへのブートローダーの書き込み
2.Arduino化した、AVRマイコンチップを動かすための回路基盤の作成
3.ArduinoUNOと同様にするには、USBシリアル変換回路の作成
3.のUSBシリアル変換回路は、必ずしも必要ではなく、スケッチを書き込んだAVRマイコンチップを基盤に乗せるのあれば不要です。
今回取り上げるのは、1.のAVRマイコンチップへのブートローダーの書き込みです。
電子部品を売っているお店で、ArduinoUNOに使われているの同じAVRマイコンチップATmega328P-PUを購入してきても、Arduinoとしては使用できません。
なぜなら、ブートローダーといわれるソフトが入っていないからです。
ふだん、プログラムを書いているスケッチとは別物です。
ArduinoUNOは、AVRマイコンチップにArduinoのブートローダーが書き込まれていて、その上で動くスケッチがあって初めて、Arduinoになるんです。
ブートローダーの役割が分かったところで、どうやって、ブートローダーを書き込むかです。
手段は様々あるようですが、できれば、いろいろ購入せずに手持ちの部材で済ませたいです。
いちばん、お手軽なのは、手持ちのArduinoUNOを使う方法だと思います。
必要な材料は、以下のとおり。
・ArduinoUNO本体
・AVRマイコンチップ ATmega328P-PU (ArduinoUNOに使われているチップです)
・ブレッドボードとジャンプケーブル
・ブートローダーを書き込み用のファイル
・ArduinoIDEがインストールされているPC
実際に、WindowsPCでブートローダーを書き込んで実験してみたので、ブートローダーを書き込んでみたいという方は参考にしてください。
1.必要な材料をそろえましょう。
AVRマイコンチップのATmega328には、いくつかの型番があります。
購入の際には表面の記載を必ず見て、ATmega328P-PUであることを確認しましょう。
それ以外は、普段Arduinoを使ってスケッチを作っている方なら持っていると思います。
足りなかったら購入しましょう。
2.ブートローダーを書き込むためのファイルをダウンロードします。
http://arduino.cc/forum/index.php/topic,28733.0.html
必要なファイルは、上のページにある、optifix.zip です。
3.ダウンロードしたZIPファイルを解凍して、ArduinoIDEがインストールされているフォルダへコピーします。
私の環境での例です。
コピーしたフォルダは、optifixフォルダです。
4.optiLoader.h ファイルだけ、内容を変更します。
解凍した、optifixフォルダ内には、2つのファイルがあります。
optifix.pde と、 optiLoader.h です。
optiLoader.hをメモ帳で開きます。
1行目の#include <WProgram.h> を #include <Arduino.h>へ変更し保存します。
5.ブートローダーを書き込むための配線をブレッドボードに組み上げます。
http://arduino.cc/en/Tutorial/ArduinoISP から引用
注意点は、
AVRマイコンチップの向きを間違えないこと。
この図だと、緑のケーブルでつないでいる左下が1番ピンです。
チップの表面に丸ポチの目印があります。
赤のケーブルと黒のケーブルは電源とGNDなので、配線間違いでチップが破損します。
もうひとつの注意点は、
Arduino側の5Vピンに接続しているケーブルを、5V側で外しておくことです。
こうすることで、ArduinoをUSBでPCへ接続した際に、AVRチップへの通電が
されない状態にしておくことができます。チップへの通電タイミングが重要です。
6.念には念をいれて配線をチェックし、5V側の赤いケーブルが外れていることを確認します。
次に、ArduinoUNOとPCをUSBケーブルで接続します。
ArduinoIDEを起動します。
7.シリアルモニターを開きます。
右下の通信速度を 19200bpsへ変更します。この変更をしないと、文字化けします。
8.optifixフォルダ内のoptifix.pdeを開きます。
9.開いたoptifix.pdeをArduinoへ転送します。普段と同じ操作です。
10.シリアルモニターを開きます。19200bpsになっていれば、次のように表示されているはずです。
Bad value:0 は、AVRチップの通電がまだなので、ターゲットになるAVRチップが無いという意味なので心配要りません。
OptiFix Bootstrap programmer.
2011 by Bill Westfield (WestfW)
Starting Program Mode [OK]
Reading signature: Bad value: 0
(no target attached?)
Type 'G' or hit RESET for next chip
11..いよいよAVRチップへ通電します。5Vピンを接続します。
10.書き込みの操作します。シリアルモニターの指示通り、G を入力してArduinoへ送ります。
この G は、実際に大文字で入力です。
11.書き込みが開始されます。成功したときの画面ショットです。
12.私の環境では、30秒もかからず、あっという間に完了します。
13.書き込まれた結果を確認するために、ArduinoをUSBとともに、いったん外します。
14.AVRマイコンチップの通電も、ArduinoUNOの通電も無い状態を確認します。
15.書き込んだAVRマイコンチップと、ArduinoUNOに乗っているAVRマイコンチップを取替えっこします。
ピンが曲がりやすいので、慎重に慎重に行いましょう。結構、硬くがっちり刺さっています。
ArduinoUNOに、AVRマイコンチップを刺すときは、チップの向きに注意しましょう。
反対向きに刺すと、最悪、すべてが水の泡です。
16.取替えっこができたら、PCとArduinoUNO(チップは自作)を接続し、LED点滅のスケッチを転送してみましょう。[ファイル]-[スケッチの例]-[BASICS]-[BLINK]にあります。
17.ArduinoUNO上の13番LEDがチカチカしたら、大成功です。
今回、ArduinoUNOを壊してしまったらどうしようと、びくびくしながら作業しましたが、無事にできました。(@_-)v
0 件のコメント:
コメントを投稿