酒と薔薇の日々(その2)

好きなことだけ求めて生きるアスペ気味のINTJ人

足の腫れが酷い

2024年03月11日 23時39分49秒 | 病気


足の腫れが酷い。
調べてみたら10年前にも同様の症状で悩んでいる。
以前は仕事のストレスだが、今回は「甲状腺機能低下症」の症状だ。

やれやれ。


HC-SR04のお勉強

2024年03月11日 17時47分40秒 | マイコン(ESP32・Arduino等)
7月の講座のプレ勉強会が今月末に開催
今回は超音波測距を行うのだが、



Tiny:bitの場合は「距離(cm)」ブロックを入れるだけで勝手に計測してくれるという状況
講師としてはその背景を知っておかないと情けないので、真面目にお勉強してみた。



Tiny:bitに搭載されている超音波センサーは有名な「HC-SR04」
ググったところ、
①向かって左の「T」がトリガーを発射する
 10μ秒のHighをかけると発射
②向かって左の「R」が反射を受信する
 距離に応じた長さのパルスが入ってくるので
 パルス長を計測する「pulseIn(echoPin, HIGH);」関数で長さを取得する。

ーーーー Arduinoプログラム例 ーーーー
double 音速 = 331.5 + 0.6 * 25;
void loop() {
 digitalWrite(TRIG, LOW);
 delayMicroseconds(2);
 digitalWrite( TRIG, HIGH );
 delayMicroseconds( 10 );
 digitalWrite( TRIG, LOW );
 往復時間 = pulseIn( ECHO, HIGH );

 if ( 往復時間 > 0) {
  往復時間 = 往復時間 / 2;
  距離 = 往復時間 * 音速 * 100 / 1000000;
  Serial.print("距離:");
  Serial.print(距離);
  Serial.println(" cm");
}
delay(200);
}
みたいな感じだった。

40KHzパルスの発射と受信までの時間計測の作業はすべて基盤上のプログラムがやってるんでしょう。
パルス発生から受信までをこなす大昔のPic上の超音波測距のプログラムは結構面倒だった。