SketchWriterの使い方
ここでは, SketchWriterの基本的な使い方を説明します. 説明項目は以下のとおりです.
- SketchWriterのしくみ
- HexFileの入手
- スケッチの送信
SketchWriterのしくみ
緑色字:変数 黄色字: 関数
HexFileの入手
ここでは、HexFileを入手する方法を説明します。HexFileを手に入れるには設定をする必要があります。
ArduinoIDEの上のバー"ツール"→"ボード"→"Arduino UNO"を選択
optibootが書き込まれているArduinoを選ぶ必要があります。ここではArduinoUNOにしました。
ArduinoIDEの上のバー"ファイル"→"環境設定"→"preferences.txt"をクリック→"preferences.txt"を開く
これはより詳しい設定をする場合に使用します。
ArduinoIDEを閉じる
これをしないと設定が変更されません。
"preferences.txt"の末尾に次の一行を追加
build.path=C:\Users\UserName\Documents\WorkSpace\Arduino\temp
"="以下の絶対パスは各自で設定してください。
スケッチを開く→コンパイルボタンをおす
これで上で設定したディレクトリにHexFileが作成されます。
スケッチの送信
それではさっそくスケッチをパソコンを使わずに書き込んでみましょう!
ArduinoIDEにあるスケッチの例"Blink"をHexFileにしてSDカードに保存します。そのHexFileを用いてArduinoでArduinoにスケッチ"Blink"を書き込んでみます。
手順
ここからはスケッチを書き込むほうのArduinoをArduinoA, スケッチを書き込まれるほうのArduinoをArduinoBとします。
スケッチBlink"―LEDが点滅するプログラム―をHexFileにします
ArduinoAとArudinoBを接続します
ArduinoAとSDカードを接続します
ArduinoAにプログラムを書き込みます
以下のプログラムをArduinoAに書き込んでください。ここはさすがにパソコンを使います
#include <SD.h> #include <SPI.h> #include "SketchWriter.h" //インスタンス生成 SketchWriter sketchWriter; void setup() { //SketchWriterを開始します*7_1 sketchWriter.Begin(10); sketchWriter.SetResetPin(6); //HexFileをロードします*7_2 sketchWriter.SketchLoad("Blink.hex"); } void loop() { //10秒待機 delay(10000); //ArduinoBにリセットをかけます; optibootが起動します. sketchWriter.ResetArduino(6); //optibootが起動しているか確認します.*7_3 sketchWriter.GetSync(); //読み込んだHexFileのデータをoptibootに送信します; スケッチが書き込まれます. sketchWriter.SketchWrite(); //optibootにプログラムを実行するよう命令します. sketchWriter.AppStart(); //開いていたHexFileを閉じます.*7_4 sketchWriter.SketchClose(); while(1); }
説明
*7_1
ここでは,SDカードのチップセレクトピンを10番ピンに設定, ArduinoBにリセット信号を送信するピンを6番ピンに設定しています. ArduinoBのリセットピンとこのピンをつなぐことになります.
*7_2
ファイル名は6文字+"."+3文字である必要があります;SDライブラリの仕様上. 詳しくは"Arduino日本語リファレンス"を参照してください.
*7_3
ArduinoBにリセットをかけた後に一回実行するとよいでしょう. optibootが起動していない―命令を受け付けていない―ときにHexFileのデータを送ることはできません.
*7_4
開いていたHexFileを閉じたあと別のHexFileを開くことができます.