Arduino を使うと書いたプログラムで外部装置を動かすことができます。いくらJava/C++/Android でプログラムを書いても所詮ソフトウエアってだけです。家電、LED やセンサーを動かすことはできないですよね。Arduinoなら可能です。USBでつないで外部装置をつなぎ、アップロードすると動きます。このスムーズな流れが「よく考えられたシステム」であるArduinoの特徴です。
このArduino、つないで動くというだけではありません。使える装置を作る方向へ発展させることができます。プログラムの書き込まれたCPUを取り出して使えばいい。
本家Arduino のボードのCPUは取り換えがききます。取り出せばそのまま同じ回路を独立して使うことができます。素晴らしいと思います。
このCPUですが、Atmega328のチップを使っています。ebayなど覗くとこのチップがまとめていい値段で販売されています。ありがたいです。
http://www.ebay.com
これらのチップはブートローダーが書き込まれていない場合があります。自分で書き込む必要があるわけですね。書き込みができると安いチップが使えます。挑戦する価値ありますよね。
どうやって書き込むのか、ですが、ネットではブレッドボードで回路を組む、専用のシールドを作る、専用ライターを使うなどいう手間のかかる方法が語られています。
でもですね、Arduino Unoを使うと手間いらずです。手間いらずということはつまり成功率が高いということです。是非お勧めしたい方法です。
どうするかというと、プログラムしたいチップを載せたArduino UnoとArduino本体をつなぎます。
では焼き込みの手順です。まず ArduinoISPをアップロード。
ArduinoISPをアップロード |
そしてArduino Uno をつなぎます。電源5VとGNDをそれぞれ接続し、ピン11, 12, 13をArduino本体と接続します。あとはピン10とリセットとつなぎます。
新しいAtmega328Pチップを載せて、Board, Port, Programmerを設定します。それぞれArduino UnoとUSBポート(ポート番号は環境で異なります)、Arduino as ISPを選択します。
ボード Board の設定 |
ポート Port の設定 |
プログラマ Programmer の設定 |
そして Burn Bootloader を選択してブートローダーを焼きます。
いよいよ書き込み |
この方法でなんの問題もなくブートローダーを焼き込むことができました。チップをとりかえてLチカとかアップロードすると動くわけですね。これでArduinoマシンを量産できます。なんだろうこの安心感は(笑
#Arduino 基板を使わない場合はクリスタルで外部からクロックを供給してやる必要があります。
写真は自作のAVR-ISP・シールドです。