・当ブログはアフィリエイト広告を利用しています。

arduinoで距離を測定

PC
この記事は約2分で読めます。
記事内には広告が含まれています。
arduinoを買ってお勉強ちゅう!
サンプルプログラムをPCで読み込んでPCからUSB経由でarduino本体のフラッシュメモリな書き込む。

というところは、何度か試しているうちにわかった。

でも、全く、プログラムが書けず、値をちょっと変えてみたりする程度。

超音波センサーHC-SR04を使った距離の測定を試してみた。

測定値はPCの画面の右上あたりのアイコンを押すとシリアルポート(おっさんの場合はCOM4ポート)の内容が表示される仕組みだ。

いろいろ試しているうちに疑問、気になるところが出てきた。

・センサーのどの部分が0cmの基準になるのか。
・表示値と実測値に1~2cm程度の誤差があるようにみえる。
・数値だけでは面白くない。
スポンサーリンク

・センサーのどの部分が0cmの基準になるのか。

下記の誤差も考慮すべきかと思うが、感覚的には、超音波センサーの先端から測った方がよさそうだ。

・表示値と実測値に1~2cm程度の誤差があるようにみえる。

超音波センサーの精度は3mmと記述されていたが20cmの測定で1~2cmくらいずれている感じだ。
ずれの原因の一つに、温度による音速のちがいがあるようだ。本センサーは、音速340m/秒で計算しているようだ。

実験した日は26℃で音速は347.1m/sなので、実際の距離は計算上は1.0209倍(2.09%増し)になる。
20x1.0209=20.42cmで約4mmの誤差。

その他にも誤差には色んな要素があると思われるので、誤差としてはこんなものかもしれない。
ただ、人間様からみたら、単純に誤差が大きいと思ってしまうかもしれない。

・数値だけでは面白くない。

距離測定プログラム(スケッチ)

COM4ポートの値をグラフ化

 

Serial.print(a);で測定距離をCOMの画面に数字で出力するだけなので、なんかさみしく、面白くない。

グラフで表示できないのか?

と色々しらべてみると、COMポートの画面にグラフで出力できるらしい。

方法は、

Serial.print(a); ⇒ Serial.println(a); のように「 ln を追加する。たったこれだけで簡単なグラフが表示できる。すごく便利だ。

グラフで表示すると、例えば、物は止まっているのに、測定値が20cmと21cmを行ったり来たりしている。距離は閾値(しきいち)的な領域(場所)の確認が容易なのも、グラフ表示の恩恵である。

 

コメント

タイトルとURLをコピーしました