レーダーシステムは高価で複雑だ。しかし超音波センサーを使えば、低コストで実現できる。製作者はArduino、「HC-SR04」超音波センサー、サーボモーターで周囲の物体を検出するレーダーを製作した。Processing 3で緑色のレーダー画面に検出結果を表示する。
システムの構成はシンプルだ。サーボモーターはArduinoのピン9に、HC-SR04のトリガーピンはピン2に、エコーピンはピン3に接続する。電源は5Vを供給する。
サーボモーターは15度から165度まで150度の範囲で回転する。各角度でHC-SR04が超音波パルスを送信し、反射波を受信する。超音波は秒速340mで伝播するため、パルスの往復時間を測定すれば距離を計算できる。計算式は「距離 = 持続時間 × 0.034 / 2」だ。0.034は音速(cm/マイクロ秒)で、2で割るのは往復距離を片道に変換するためだ。
測定結果はシリアル通信(9600bps)でProcessingに送信される。データフォーマットは「角度,距離.」で、ドット文字を区切りとして使用する。サーボは各角度で30ミリ秒の遅延を入れて移動し、センサーの測定が安定するまで待つ。この遅延がないと、サーボの振動でセンサー値が不安定になる。
Processing側では1920×1080ピクセルのウィンドウに4つの同心円弧を描画する。各円弧は10cm、20cm、30cm、40cmの距離に対応し、角度線は30度刻みで表示される。座標系の原点は画面下部中央に配置され、極座標から直交座標への変換で描画位置を計算する。
緑色の掃引線がサーボの角度に応じて回転し、レーダーの走査を視覚化する。背景を半透明の黒(アルファ値4)で塗りつぶすことで、前フレームの描画が徐々に消え、モーションブラーのような残像効果を作り出す。この演出がレーダー特有の視覚効果を生み出している。
物体検出時は40cm以内にある物体を赤色の線で表示する。距離をピクセル数に変換する際は、係数22.5を乗算する。画面下部には検出状態、現在の角度、距離がテキストで表示され、フォントは「OCRAExtended」を使用してレーダー風の雰囲気を演出する。
検出範囲は初期設定で40cmだが、コードを変更すれば最大400cmまで拡張可能だ。