方法
- 0-1Vの電圧をAD取込する
- AD取込値(10bit: 1024)のLSBが0か1かで{Doko, Zun}の判別
- Zunが4つ続いた後にDokoが来たらKIYOSHI!
道具
- Analog Discovery 2 (以下AD2)
- Wavegenで0-1Vのノイズ電圧を発生させる > Qiita記事
- ESP8266 (WiFi搭載マイコン)
- AD取込をする
- 方法に記載の処理を行いKIYOSHI判定をする
code v0.1
esp8266_160313_zundoko.ino
// AD取り込みのためのおまじない
extern "C" {
#include "user_interface.h"
}
static const String msg[2] = {
"Doko",
"Zun",
};
static int s_zunCount = 0;
static bool s_stopCondition = false;
static int s_totalTime_sec = 0;
void setup() {
Serial.begin(115200); // 結果出力用シリアルの設定
Serial.println(""); // to separate line
}
void loop() {
if (s_stopCondition) {
return;
}
uint ADvalue;
ADvalue = system_adc_read(); // 0..1024 のAD取込
int rnd = (ADvalue % 2);
Serial.println(msg[rnd]);
if (rnd == 1) {
s_zunCount++;
} else {
if (s_zunCount == 4) {
Serial.println("KIYOSHI!");
s_stopCondition = true;
Serial.print("Total time(sec):");
Serial.println(s_totalTime_sec);
return;
}
s_zunCount = 0;
}
s_totalTime_sec++;
delay(1000); // msec
}
結果
結果
(略)
Doko
Zun
Zun
Doko
Zun
Zun
Doko
Zun
Doko
Zun
Zun
Zun
Zun
Doko
KIYOSHI!
Total time(sec):46
写真
- 黄色: AD取込の電圧
- 黒: GND