ESP32を用いて超音波センサを実装したので、そのやり方について紹介したいと思います。
この記事を読むことで、話題のマイコンであるESP32で超音波センサが実装できるようになります。
超音波センサは以前も安価なものを実装しました。
超音波センサを使うことで、センサから障害物までの距離が計測できるので、ロボットの自動運転ができるようになります。これを組み合わせることで最近流行りのSLAMなども実装できるようになる。
前回実装した超音波センサ (HC-SR04)はアナログ観測のみの観測範囲が4mまでで、分解能も荒かったのに対し、今回のMB1013はアナログ、パルス、シリアルでの通信が可能なのに加え、5mの観測範囲、観測角度90°、パルス計測では高分解能を有しています。
自動運転にはできるだけ高性能なものを利用することで、安全性を担保できるので、このように性能にこだわる必要もありそうです。
Arduino Nano版はこちら
ESP32,MB1013の簡単な説明
ESP32
ESP32の大きな特徴はWifi, Bluetoothを搭載しているところです。そのうえでArduinoよりも安価に購入でき、ArduinoコードやC++などいくつかの言語の互換性があります。そのため、1つのマイコンでいろいろなことを試したい方には大変おすすめなマイコンです。
超音波センサ
実験構成
- ESP32
- 超音波センサ (MB1013)
- ジャンパ線多数
ESP32、超音波センサは上記のものを使用しています。
ジャンパ線は何を使用してもいいですが、一応リンクを張っておきます。
実験
配線
まず配線は以下のようにします。
配線ができると以下のような画像のようになります。
実行コード
ここまで出来たら以下のコードを実行することで動作確認ができます。
今回は超音波センサの数値をシリアルモニタで確認できるようにしています。
今回はパルス入力で実装してます。アナログでの実装の場合、ESP32のAnalogReadでは12bitになっており、MB1013は10bitなのでここを合わせる処理が必要になります。
パルスを使った方が精度が高く、処理も早いので今回はこちらを使いました。
まとめ
今回は、ESP32で超音波センサを動かすために必要なものの紹介と、サンプルプログラムの紹介をしました。