Missing Alternate TagMissing Alternate TagMissing Alternate TagMissing Alternate TagMissing Alternate TagMissing Alternate TagMissing Alternate TagMissing Alternate Tag

Studuinoブロックプログラミング環境で超音波距離センサーHC-SR04を使う

阿部 和広 <abee at squeakland dot jp>

Studuinoブロックプログラミング環境で超音波距離センサー HC-SR04を使う方法を説明します。ライセンスはCC BY-SA 3.0とします。
使用に際して、Studuinoやブロックプログラミング環境の改造は不要ですが、テストモードでは使えず(処理速度の問題でトリガーがかからない)、必ずプログラム転送を行う必要があります。

配線と入出力設定

StuduinoのArduino互換端子とHC-SR04を以下の様に配線します。

StuduinoHC-SR04
VIN 5V*Vcc
A4Trig
A5Echo
GNDGnd
* Studuinoの5V端子の電源は、電池ボックスではなくUSBから供給されます。USBをつながずに使う場合、5V電源を別に用意する必要があります(100均の乾電池USB充電器が便利です)。VINから5Vの電源を取ることができます。

また、動作確認のためにLEDブロックをA0に取り付けておきます。

ブロックプログラミング環境を起動し、「編集」メニューの「入出力設定…」を選んで以下の様に設定します。つまり、LEDへの信号をトリガーとして、エコーをタッチセンサーとして受けます。

A0LED(動作確認用)
A4LED
A5タッチセンサー

スクリプト例

以下はスクリプト例です。関数distanceを呼び出すと変数distanceに距離の値が入ります。この距離に単位はなく、実際の距離との関係は実験で求めてください。本来はエコーの時間をタイマーで測るべきですが、測定値が安定しないため、ループで変数をインクリメントしています。
この例では、distanceが20未満のときにA0のLEDを点灯します。

Uploaded Image: HC-SR04.gif

この例のbpdファイルを以下に置きます。

HC-SR04.bpd

応用例

これを使った迷路抜けロボットです。

Uploaded Image: B4 BNk1CIAE04RH.jpg

その動画です。前方に障害物があると、後退して左に約90度回ります。