はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。この記事では本来は測定器を制御するSequence Makerを使って、Arduinoを制御する方法を解説します。Sequence Makerについての詳細は以下の記事を参照ください。
お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
最初にやる設定
Arduinoを接続する
Arduinoの開発環境一式は事前にインストールされているものとします。ArduinoとパソコンをUSBケーブルで接続したら、デバイスマネージャーを起動して、ポート(COMとLPT)の項目を確認して正常に認識されているか確認します。ついでにCOM番号も確認しておきましょう。ここではCOM3として認識されていました。
Sequence Makerのインターフェイス設定
Excelを起動し、Sequence Makerのインターフェイスを設定します。COMは「RS-232C/USB」として認識しますので、更新ボタンを押して先ほど確認したCOM3を選択します。スピードはとりあえず9600のままで良いです。
さて、ここでSequence MakerからArduinoと通信する上で、重要な設定がもう一つあります。インターフェース #1の右側の矢印をクリックして、詳細設定画面を表示します。「RS-232C/USB」の詳細設定の中の 「DSR/DTR」のチェックを外すのです。
「DSR/DTR」はRS-232C通信において相手の機器がつながっているかを確認するために使用される信号線ですが、実はArduinoではこの信号線がリセットpinに接続されているのです。そのため、チェックを入れておくと、Sequence Makerで制御を開始する際にArduinoがリセットしてしまい、思った動きをしてくれません。チェックを外したらOKを押してウィンドウを閉じます。
注意
Sequence Makerは「DSR/DTR」にチェックが入っているとArduinoがリセットしてしまうので、チェックを外す。
Arduinoのスケッチ
今回はSequence MakerからArduinoに送った文字をそのままオウム返し(ECHO)するスケッチを書き込みました。
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()) { // 受信の確認
char c = Serial.read(); // データを読み取る
Serial.write(c); // 読み取ったデータをそのまま書き込む
}
}
動作確認
Arduinoにスケッチを書き込んで、実行したら、Sequence Makerからデータを送信してみます。C列に送信データを書いて「コマンド送受信」を押します。Sequence Makerは送信データに「?」が含まれていないと受信動作をしないので「?」を付けておきます。Sequence MakerからArduinoに送ったデータがオウム返しされてD列に表示されました!!
まとめ
今回はSequence MakerとArduinoの通信について解説してみました。Arduinoと通信できると、IOボードとして使用する事ができるので、リレーを制御したり、サーボモーターを動かしたりなんかもできると思います。各種センサー類と組み合わせて、データ取りをしてみるのも面白いかもしれませんね。いろいろ工夫してみてください。