![見出し画像](https://assets.st-note.com/production/uploads/images/118706035/rectangle_large_type_2_160d121c338b1ef63d57c601761d0819.png?width=1200)
micro:bitで超音波センサーを使用する
こんにちはロック204チャンネルです。
今回はマイクロビット応用講座
マイクロビットで超音波センサーを使用するをお送りします。
今回の記事の内容は
マイクロビットに超音波センサーHC-SR04を接続し拡張機能ソナーを使用しプログラムを作成しました。
またソナーの出力値の出力値と実際の距離との関係も測定し分析したので紹介します。
マイクロビットと超音波センサーの接続をこちらに示します。
マイクロビットの ポート0はタクトスイッチに、ポート1は 超音波センサーのエコー端子へ
ポート2は超音波センサーのトリガー端子に接続、3.3ボルトには超音波センサーのvccとタクトスイッチに接続しました。
![](https://assets.st-note.com/img/1697102915926-L3zfmbMbNQ.png?width=1200)
こちらがMicro:bitと超音波センサーを接続した状態を示します。
![](https://assets.st-note.com/img/1697102950449-EDBJ9rpO18.png?width=1200)
マイクロビットのプログラムでは、拡張機能よりSonarを取り込みました。
![](https://assets.st-note.com/img/1697102990459-ZOfI5yfkz1.png?width=1200)
こちらはプログラムを示します。
最初だけブロックに端子0をプルダウンにします。これにより出力を安定化させます。
そしてシリアル通信一行書き出しで、文字を出力しコンソールが使用できるようにしました。
またボタンBでは、 センサーの値を再表示するよう設定を行ないました。
![](https://assets.st-note.com/img/1697103027198-DsKwBgRywv.png?width=1200)
こちらはずっとブロックの中に 「もし」ブロックを配置し タクトスイッチの押されたときのプログラムを書いています。
変数Pに、ソナーからの出力を入力しコンソールに出力し
それとともに、 マイクロビットのディスプレイに出力するようにしています。
この時、左のコードではソナーブロックの設定はユニットをセンチメートルに右のプログラムではユニットをマイクロセカンド に設定し両者を比較しました。
![](https://assets.st-note.com/img/1697103068031-e5YOl8Ti4F.png?width=1200)
こちらは 実際の距離と ソナーから得られた表示値を示しています。
左の図はソナーブロックのユニットをセンチメートルに 設定した場合です。
x軸が実際の距離を表し y軸がソナーブロックより 得られた値となっています。
右の図は、ソナーブロックのユニットを マイクロセカンドに合わせた場合の出力を示しています。
両者を比較すると 右の 図の方が滑らかな勾配を示しています。
左の図では階段状に値が変化していることがわかります。
重決定係数も右のマイクロセカンドで設定した方がより回帰直線にフィットした値となっていることが分かりました。
![](https://assets.st-note.com/img/1697103106836-Pc6I081nSW.png?width=1200)
こちらは 実際の距離と ソナーから得られた表示値を示しています。
左の図はソナーブロックのユニットをセンチメートルに 設定した場合です。
x軸が実際の距離を表し y軸がソナーブロックより 得られた値となっています。
右の図は、ソナーブロックのユニットを マイクロセカンドに合わせた場合の出力を示しています。
両者を比較すると 右の 図の方が滑らかな勾配を示しています。
左の図では階段状に値が変化していることがわかります。
重決定係数も右のマイクロセカンドで設定した方がより回帰直線にフィットした値となっていることが分かりました。
この記事が気に入ったらサポートをしてみませんか?