Studuinoブロックプログラミング環境で超音波距離センサーHC-SR04を使う
阿部 和広 <abee at squeakland dot jp>
Studuinoブロックプログラミング環境で超音波距離センサー HC-SR04を使う方法を説明します。ライセンスはCC BY-SA 3.0とします。
使用に際して、Studuinoやブロックプログラミング環境の改造は不要ですが、テストモードでは使えず(処理速度の問題でトリガーがかからない)、必ずプログラム転送を行う必要があります。
配線と入出力設定
StuduinoのArduino互換端子とHC-SR04を以下の様に配線します。
Studuino | HC-SR04 |
VIN 5V* | Vcc |
A4 | Trig |
A5 | Echo |
GND | Gnd |
* Studuinoの5V端子の電源は、電池ボックスではなくUSBから供給されます。USBをつながずに使う場合、5V電源を別に用意する必要があります(100均の乾電池USB充電器が便利です)。VINから5Vの電源を取ることができます。
また、動作確認のためにLEDブロックをA0に取り付けておきます。
ブロックプログラミング環境を起動し、「編集」メニューの「入出力設定…」を選んで以下の様に設定します。つまり、LEDへの信号をトリガーとして、エコーをタッチセンサーとして受けます。
A0 | LED(動作確認用) |
A4 | LED |
A5 | タッチセンサー |
スクリプト例
以下はスクリプト例です。関数distanceを呼び出すと変数distanceに距離の値が入ります。この距離に単位はなく、実際の距離との関係は実験で求めてください。本来はエコーの時間をタイマーで測るべきですが、測定値が安定しないため、ループで変数をインクリメントしています。
この例では、distanceが20未満のときにA0のLEDを点灯します。
この例のbpdファイルを以下に置きます。
HC-SR04.bpd
応用例
これを使った迷路抜けロボットです。
その動画です。前方に障害物があると、後退して左に約90度回ります。