第3回までで基板の組み立てが完了し、Ubuntu上の環境構築もできました。
現在の状態ではArduino互換基板上のATmega168/328はbootloaderが書き込まれていません。当然、Arduinoとしては動作しませんので、bootloaderの書込みを行う必要があります。bootloaderの書込みには、専用のライター(書込み器)が必要で、自分はAVRISP mkIIを使いました。有名なChaNさんのAVRライタ4種を始めとして、様々なキットや自作のライターもありますが、純正のAVRISP mkIIも秋月電子で3300円と比較的安価なので購入した方がいいかと思います。以降の説明ではAVRISP mkIIを使うものとして記載します。
(1)Arduino互換基板とAVRISP mkIIの接続、Arduino IDEの起動
Arduino互換基板をAVRISP mkIIと接続したら、互換基板およびAVRISP mkIIからのUSBケーブルをそれぞれホストPC(Ubuntuマシン)に接続します。自分はUSB HUB経由で接続しましたが問題はありませんでした。
接続したら、コンソールから「./arduino」でArduino IDEを起動します。
~$ cd arduino-0022/~/arduino-0022$ ./arduinoExperimental: JNI_OnLoad called.Stable Library=========================================Native lib Version = RXTX-2.1-7Java lib Version = RXTX-2.1-7
(2)ターゲットボードの設定
起動したら、まず「Tools」→「Borad」でターゲットボードを設定します。どんなものがあるかについては、Arduinoのガイドに記載があります。今回は ATmega328を使用し、クリスタルは16MHz、ATmegaへの供給電圧は5Vですから、
- Arduino Duemilanove or Nano w/ ATmega328
- Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
が候補ということになります。自分は後者を選定しました。
(3)bootloaderの書込み
次に、bootloader書込みを行います。「Tools」→「Burn Bootloader」→「w/ AVRISP mkII」を選択すると、数秒でbootloaderの書込みが完了します。書込みが完了したら、一旦USBの接続を外し、AVRISP mkIIを外して、Arduinoだけを再度USB接続します。
ブートローダの書込み操作
(4)Arduino IDEとArduino互換基板の通信
次に、Arduino IDEとArduino基板の通信を成立させます。「Tools」→「Serial Port」→「/dev/ttyUSB0」を選択して、シリアルポートを選択します。(環境によって ttyUSB1だったりttyUSB2だったりするかもしれません)
シリアルポートの設定
(5)Exampleスケッチによる動作確認
次に、Exampleスケッチによる動作確認を行います。「File」→「Examples」→「1.Basics」→「AnalogReadSerial」を選択し、サンプルスケッチを開きます。
サンプルプログラムの読み込み
次に右矢印の付いたアイコン(Upload)を押すと、Arduino互換ボードへの転送が行われます。「Done uploading」という表示が出たら、もう一つ右の「Serial Monitor」というアイコンを押しますと、Arduino互換ボードから転送されてくる Analog in 0 のA/D変換値が延々と表示されます。Analog in 0 の端子を触ってみると、値が変化するので確かにどうさしていることが確認できます。