2013.03.17
昨日Arduinoクローンを作ったので2台体制となりました。
ここで以前から気になっていた、Arduinoでオシロスコープを動かすことを試してみました。
Arduinoで動くオシロをネットで検索してみると、
国立九州大学さんの「Arduino 簡易オシロスコープ」
Ichiro Marutaさんの「Arduinoで簡易オシロスコープ」
の2つが見つかりました。両方組んで試してみたのですが、Ichiroさんのオシロの方は追加部品も不要で簡単に作れます。
オシロを表示するプログラムは、Proccessingという実行環境を使用しますが、現在のバージョンではコンパイルが通らないので1.5.1を使います。
(ダウンロードページの下、Stable Releases 1.5.1)
Windows側は「Arduinoで簡易オシロスコープ」のソースをコピペして実行。
Arduino側はオシロのソース最後尾でコメント化されている「/* Arduino code」以下のコードをArduinoIDEにコピペしてコンパイル、1台目のArduinoにアップロード。
これで、オシロ側は完成!
続いて実験対象の作成ですが、2台目のArduinoに以下のプログラムを仕込みます。
int led = 13;void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
unsigned long prevMilli = millis();
int pls = 1;
void loop() {
unsigned long currentMilli = millis();
if (currentMilli - prevMilli > 1000) {
pls = pls < 10 ? pls+1: 1;
Serial.println(pls);
prevMilli = millis();
}
digitalWrite(led, HIGH);
delay(10);
digitalWrite(led, LOW);
delay(pls * 10);
}
サンプルソースのBlinkに手を入れてOn/Offの時間を切り替えるものです。
2台目のArduinoを接続すると、IDEのシリアルポートにCOM4が追加されるので、そちらを選択してアップロード。
13番ピン、抵抗とGNDにオシロから引いてきたアナログ0、1、GNDを接続して計測。
Windows側で以下の波形が確認できました。
(デューティ比50%)
(デューティ比10%)
やっぱり画面でリアルタイムに波形が変化するのは見ていて楽しいですね。
あと、Proccessingという開発環境にも興味を持ちました。ArduinoIDEと似たインターフェイスで使用言語もC/C++っぽくて入りやすいです。
秋月のオシロスコープキットを買おうか迷っていたのですが、しばらくはこれで遊べそうです。
にほんブログ村
タグ:Arduino 自作 オシロスコープ