前回まで超音波測距センサーを3個使う3チャネルの測距モジュールを作り、使い勝手を良くするためにトレーニング機能を追加した。さらにトレーニングを起動するためにプッシュボタンを追加した。その成果を踏まえ今回新たに超音波測距センサーを5個まで使える5チャネルのモジュールを作った。というのは超音波センサーの半値幅が30度なので3個でカバーできる範囲は90度にしかならたいため、これをもっと広範囲まで拡張したかったからである。超音波測距センサーを5個使うことで150度までカバーできる。3チャネルモジュールのPICには14ピンの18326を使ったが5チャンネルでは信号線(足の数)が足りないため20ピンの18346を使った。
ソフトは3チャネル用の物を少し改造した。トレーニング時にセンサーの付いていないチャネルを検知してOFFにするようにした。
US Ranging346-2.036.48
Copyright(C) 2025 myname.
*** Start Training.
+++ Trained Max Range(raw) - A:167 B:500 C:41 D:500 E:119
*** US Sensing parameters:
Ch-A: ON : 010 - 162
Ch-B: OFF
Ch-C: ON : 010 - 036
Ch-D: OFF
Ch-E: ON : 010 - 114
MODE = Range Data with Zero Suppress.
_00,--,34,--,00
_00,--,31,--,00
_00,--,30,--,00
_00,--,29,--,00
_00,--,30,--,00
_00,--,29,--,00
_00,--,29,--,00
_00,--,30,--,00
_00,--,30,--,00
_00,--,33,--,00
_00,--,00,--,00
ここで1文字目の'_'は表示モード、またOFFのチャネルの測定結果は'--'で、範囲外のデータは'00'で表示している。このモードでは対象物がある時だけ表示する(反射が無くなると反射ゼロを1回だけ表示)。
表示モードにはこのほか、生データ表示モード、
#00b2:0000:0063:0000:001f
#00b2:0000:0063:0000:0021
#00b2:0000:0063:0000:0022
#00b2:0000:0064:0000:001f
連続データ(1秒に2回程度)表示モード、
>00,--,00,--,00
>00,--,00,--,00
>00,--,31,--,00
>00,--,31,--,00
>00,--,28,--,00
最も近い反射物のデータを表示するモード、
=C13
=C15
=E16
=E13
=E12
等が可能で、目的別に使い分けできる。
このほか記号'!'を送ると(改行不要)直ぐにIDを返すようにしている。
$$$346.2036+-+-+
これはホストからの生存確認を簡単にするためであり、最初の3文字で'!'に対するレスポンス'$$$'を、その後バージョン、超音波センサーの稼働状態を表している。
今後、対象物の大まかな移動ベクトルを算出する事も考えている。
(続く)