超音波距離計 – 開発編

車の車庫入れの時に、あまりにも車を助手席側に寄せすぎて壁を擦って車のボディを傷付けたことで頭に来て、超音波距離計を設置して壁に寄せすぎないようにしようとして前回電源装置を組み上げ始めた、その続き。いよいよ本体にとりかかる

2. 組み立て

部品を基板に配置してはんだ付けした

上の写真で左上 : 前回組み上げた電源装置、左下 : 006P積層乾電池ホルダー、中央下 : ブザー、中央 : 超音波センサー、中央上 : 超音波センサーのEcho信号の分圧抵抗、右下 : Raspberry Pi PICOのピンソケット

自分にしてはなかなかよく出来た。裏面はあまり見ないで欲しい

ご本人の、車を擦って頭にきている様子が良く現れている絵柄ですね(ニコッ)。お陰で裏の抵抗廻りの配線が入り組んでハンダ付けもちょっと大変だった

ついでに実体配線図

3. ソースコード

プログラムはMicro Python環境で組んだ。ミソは”time_pulse_us()”と言う関数を使ってtriggerからecho受信までの時間をマイクロ秒単位で計り、音速と合わせて計算して距離をはじき出すところ。音速は確か温度で変動するはずだが、私の使い方はある一定距離(数十cm)以下になればブザーを鳴らすというもので、精度は要しないので、定数と考えて差し支えない

4. 動作確認

出来上がったものの動作

着目して欲しいのが、PicoのLEDの点滅周期だ。超音波を発射する度に点滅するようにしているのだが、何もない時には1秒に1回発射しており、物体がある程度近くになった時に1秒間に10回発射してモニタリングを強化し(今回計ったら42cmまで接近した時点で警戒体制になった)、そして危険水域になった(26cm)時にブザーを鳴らすという形になっている。プログラム上では25cmと設定しているが、1cm程度の違いはどうでもよろしい、素晴らしい。ドイツ語だとwunderbar、はい、皆さんご一緒に、

ぶんだばー!

5. パッケージング

動作の確認ができたので、次は実際の設置環境に適応したパッケージングだ。ほぼ屋外の環境なので、雨は大丈夫だができるだけ埃が入って来ない対策が必要である。100円均一ショップで段ボールシートを見つけたので、これを切り貼りしてエンクロージャを作ったのがこれ

超音波センサとブザーは露出せざるを得ない。右の四角い穴はPicoのLEDの点滅で動作を確認するため。ハンダ付けもそうだが、こういう工作物は手先の不器用さと雑さが如実に露呈して、当方としては居直るしかない

動けばいいんだ、動けば…

6. コスト計算

金額を積算して見ると、2,509円は、自分の思っていた金額より高い気がしたが、一つ一つ見て見るとそれほど高いものではないので、これが積み重なると案外嵩が増すものだと。何か人生に通ずるものがあるような気がするが、ここではこれ以上踏み込まないことにする。超音波センサーのピンの接続を間違えて1個オシャカにした分は入れていない。もしコストを下げるとしたら、PICOをESP32-C 3-WROOM-02-N4とかいうマイコン(340円)に置き換えるかだが、この開発環境の構築にかかる費用、また開発、実装の手間を考えると、私にはハードルが高過ぎる

今回の教訓

車庫が狭いと辛いね
細工の雑さかげんは 一生直らないね
プログラミングで自分ではできないことを実現できるのは素晴らしいよね

2025/06/07
んねぞう

About The Author

nnezou

Other posts by

Author his web site

Your Comment