ESP8266 (ESP-WROOM-02)에 거리 센서(HC-SR04)를 연결하여 LPF로 부드러운 값 출력으로 해 보았다
※최종적으로, 이 센서&ESP8266은 자택 차고 셔터의 개폐 상태를 Slack에 통지하는 용도에 사용할 예정
부품 정보
HC-SR04는 200~400엔 정도로 살 수 있는 초음파를 이용한 거리 센서입니다.
싸다! ⇒ 아마존(HC-SR04)
ESP8266은 그래서 M구 ぅ아 그림 SP8266 CH340이라는 개발 보드를 사용합니다.
중국에서 도착하는 데 시간이 걸립니다만, ¥ 480으로 염가입니다.
회로 정보
먼저 GPIO와 센서를 직결하여 움직이지 않고, 조사해 보면 이 센서는 전원에 5V가 필요한 것 같습니다.
개발 보드의 USB 5V를 이용하기로 합니다.
센서의 출력(Echo)도 5V이므로, 3.3V의 ESP8266에 연결하려면 분압 회로라고 하는 것이 필요하다는 것으로, 넷의 정보를 참고로 하면서, 보자 보면서 짜 보았습니다.
사진의 좌측에 있는 3연 저항의 부분으로, 5V를 3.3V에 떨어뜨리고 있는 느낌입니다.
* 첫 번째 저항과 두 번째 저항 사이에서 신호를 받으면
5V * 2/3 ≒ 3.3V
회로도 같은 것
출력을 부드럽게
거리의 float값을 시리얼에 내보내 Arduino IDE의 시리얼 플로터로 보면, 출력이 편차된 느낌이 되었기 때문에, 이전에 스마트폰의 가속도 센서의 값을 정돈하는데 사용한 로우 패스 필터의 식을 넣어 부드럽게 해 보았습니다.
出力値 = a * 前回の出力値 + (1-a) * センサの値
※ aは係数で0.8~0.95とかを指定します。小さいほど反応が良くなり、大きいほど滑らかになります。相反します。
그래프 1장째가 로우 패스 필터 없음, 2매째가 로우 패스 필터 있습니다. 부드러워졌습니다.
로우 패스 필터 없음
로우 패스 필터 있음
소스 코드
스케치는 다음과 같습니다.
HC-SR04.ino
int Echo = 14; // Echoピン
int Trig = 15; // Trigピン
float dstCMb = 0; // 一回前の距離値
void setup() {
// シリアル通信を開始
Serial.begin(115200);
Serial.println("Serial start.");
// ピン設定
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
}
void loop() {
// trigger
digitalWrite(Trig, HIGH);
delay(20); // msec
digitalWrite(Trig, LOW);
// echo
int intervalUS = pulseIn(Echo, HIGH) / 2; // 超音波の往復の時間を2で割って片道の時間(単位:μsec)にする
// 時間を距離に変換
float dstM = (float)intervalUS * 340.0 / 1000.0 / 1000.0; // センサー出力の値(単位:m) 音速:340m/s(15℃)
float dstCMs = dstM * 100.0; // センサー出力の値(単位:cm)
float dstCM;
// ローパスフィルターで滑らかにする / 外れ値を除外する
if (dstCMs <= 300.0) { // 3mを超えたら外れ値とする
dstCM = 0.95 * dstCMb + 0.05 * dstCMs; // ローパスフィルター適用
dstCMb = dstCM; // 前回値の保存
Serial.println(dstCM); // 距離を出力(単位:cm)
}else{
Serial.println(dstCMb); // 外れ値の場合は前回値を出力
}
}
참고 URL
ESP8266 (ESP-WROOM-02)에서 거리 센서 (HC-SR04) 사용 (온도 센서와 함께)
ぃ tp // 코 m / 에우 gs / ms / 088f3f9229674 99436
센서 입력 등에 사용하는 디지털 필터
htp // // hbtj. 코 m / 에 ct 로에 cs / 전단 r ぢ 기한 l
※매우 참고가 되었습니다. 고마워요.
Reference
이 문제에 관하여(ESP8266 (ESP-WROOM-02)에 거리 센서(HC-SR04)를 연결하여 LPF로 부드러운 값 출력으로 해 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yukitter/items/e242010204f7387e107e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)