みなさん,こんにちは
おかしょです.
以前からレーダー探知機を作成しているのですが,センサーには赤外線センサーを使用していました.
しかし,赤外線センサーは精度が低いため超音波センサーに変えてみました.
この記事を読むと以下のようなことがわかる・できるようになります.
- レーダー探知機の作り方
- 超音波センサーの活用方法
この記事を読む前に
赤外線センサーを使ったレーダー探知機作成の記事は以下の記事から読めます.
また,今回使用するセンサーの超音波センサーの使い方は以下の記事で解説しています.
レーダー探知機の電子回路
電子回路は以下のようになります.超音波センサーはデータシートに5Vを供給するように書かれているので5Vに接続する必要がありますが,サーボモータは3.3Vでも問題ないです.
プログラムの問題点と解決方法
プログラムはProcessingに関しては何も変更していません.
Arduinoのプログラムは赤外線センサーから超音波センサーに変更したので,超音波センサーを使うために必要なプログラムを移植しました.
ただ,上記のようなプログラムでは問題がありました.
超音波センサーを使う際はパルス幅を測定するために,Arduinoの関数のpulseInという関数を使用します.この関数内では繰り返し計算を行うため,関数の計算を終了するにはある程度の時間を要します.
前回の赤外線センサーを使用したレーダー探知機ではサーボの角度を1ループごとに1度ずつ足して動かしていたのですが,pulseIn関数である程度の時間を要するため1ループに時間がかかり,1度ずつサーボを動かすと角速度が非常に遅くなってしまいます.
サーボの角速度が遅すぎると周囲の状況が変化したときに,すぐにその情報を知ることができません.
そこで,1ループごとに足していく角度を1度から3度にしました.
サーボの角度を1ループで3度ずつ足していく
動作確認
以上のようなプログラムを実行したところ以下のようになりました.
Arduino一つで超音波センサーverの
— おかしょ (@okasho_engineer) January 5, 2021
レーダー探知機できました.サーボの角度の解像度を落とすことでこの角速度で実行できています. pic.twitter.com/IvBsEYCF56
ここでは,まだ超音波センサーをサーボには取り付けていません.
前回は赤外線センサーをサーボに取り付けるためにアルミの板を加工したのですが,アルミの加工は結構大変なので今回は行っていません.
動画ではサーボを回転させながら,超音波センサーの前で手を前後に動かしています.
ところどころデータが飛んではいますが,おおむね良好な結果です.
まとめ
今回はレーダー探知機のセンサーを超音波センサーに変更しました.
超音波センサーを使用するためのプログラムは赤外線センサーよりも複雑になってしまうため,サーボを回転させる解像度が低くなってしまいましたが,理想のレーダー探知機の許容範囲だと思います.
続けて読む
ここでは超音波センサーをサーボに取り付けていませんが,レーダー探知機として完成させるには取り付ける必要があります.
そこで,レーダー探知機の機体を設計・製作したいと思っています.
その記事は現在作成中なので少々お待ちください.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント