〇Maker Pi RP2040と接続したGrove Ultrasonic Ranger
実行手順
1. Maker Pi RP2040をパソコンにUSBで接続して、Mu Editorを起動します。2. 以下のリポジトリからGrove Ultrasonic Rangerのドライバクラスを取得します。
https://github.com/derhexenmeister/GroveUltrasonicRanger
以下のpythonソースをダウンロードして、Maker Pi RP2040のlibディレクトリ以下にエクスプローラーなどを用いてコピーします。
https://github.com/derhexenmeister/GroveUltrasonicRanger/blob/master/grove_ultrasonic_ranger.py
3. code.pyを開いて、以下のプログラムを書き込みます。
超音波センサーの距離値を3で割った値を取得して、それに合わせてLEDバーの点灯・消灯をコントロールします。レベルの値が9より大きい場合は9に制限します。
※circuit python 7.2.5以降にアップグレードしてから実行してください。
※Mu Editorを使用せず、code.pyを直接エクスプローラーなどから保存する事も出来ます。
iimport board
import time
import digitalio
import grove_ultrasonic_ranger
import neopixel_write
pins = [
board.GP0,
board.GP1,
board.GP2,
board.GP3,
board.GP4,
board.GP5,
board.GP6,
board.GP7,
board.GP16,
board.GP17,
# board.GP26,
# board.GP27,
# board.GP28,
]
led_meter = []
# ピンの初期化
for pin in pins:
dio = digitalio.DigitalInOut(pin)
dio.direction = digitalio.Direction.OUTPUT
# LEDメーター用配列へ
led_meter.append(dio)
# RGB LEDを初期化
dio18 = digitalio.DigitalInOut(board.GP18)
dio18.direction = digitalio.Direction.OUTPUT
pixel_buf = bytearray([0, 0, 0, 0, 0, 0])
neopixel_write.neopixel_write(dio18, pixel_buf)
# Connector7にGrove Ultrasonic Sensorを接続
gur = grove_ultrasonic_ranger.GroveUltrasonicRanger(board.GP28, unit=1, timeout=1.5)
distance_level=0
while True:
try:
dt = gur.distance
distance_level = int(dt/3) if int(dt/3) < 10 else 9
except RuntimeError:
# タイムアウトエラーの場合は一瞬赤で表示
pixel_buf = bytearray([0, 128, 0, 0, 128, 0])
neopixel_write.neopixel_write(dio18, pixel_buf)
time.sleep(0.1)
pixel_buf = bytearray([0, 0, 0, 0, 0, 0])
neopixel_write.neopixel_write(dio18, pixel_buf)
# LEDバーをレベル値に応じて点灯・消灯
for li in range(0, 10):
if li <= distance_level:
led_meter[li].value = True
else:
led_meter[li].value = False
time.sleep(0.1)
関連情報
・Maker Pi RP2040に関する他の情報はこちらを参照してください。・Mu Editorに関する他の情報はこちらを参照してください。
0 件のコメント:
コメントを投稿