〇Maker Pi RP2040と接続したGrove Sound Sensor
実行手順
1. Maker Pi RP2040をパソコンにUSBで接続して、Mu Editorを起動します。2. code.pyを開いて、以下のプログラムを書き込みます。
アナログ入力の初期化はanalogio.AnalogInで行います。アナログ値を取得して、10段階の数値に変換し、それに合わせてLEDバーの点灯・消灯をコントロールします。また、音が大きいほど255に近い値となるように計算した値をRGB LEDに設定して明るさを変えます。
※circuit python 7.2.5以降にアップグレードしてから実行してください。
※Mu Editorを使用せず、code.pyを直接エクスプローラーなどから保存する事も出来ます。
import board
import time
import digitalio
import analogio
import neopixel_write
# RGB LEDを初期化
dio18 = digitalio.DigitalInOut(board.GP18)
dio18.direction = digitalio.Direction.OUTPUT
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)
# Groveアナログコネクタと対応するピンは以下になります。
# Grove5コネクタ -> GP26
# Grove6コネクタ -> GP27
# Grove7コネクタ -> GP28
adc = analogio.AnalogIn(board.GP26)
while True:
# アナログ値を取得して0-9のレベル値
meter_level = int(adc.value/65536*10)
# LEDバーをレベル値に応じて点灯・消灯
for li in range(0, 10):
if li <= meter_level:
led_meter[li].value = True
else:
led_meter[li].value = False
# アナログ値を取得して、音が大きいほど255に近い値となるように計算する
lv = int(adc.value/65535*255)
pixel_buf = bytearray([lv, lv, lv, lv, lv, lv])
neopixel_write.neopixel_write(dio18, pixel_buf)
time.sleep(0.2)
関連情報
・Maker Pi RP2040に関する他の情報はこちらを参照してください。・Mu Editorに関する他の情報はこちらを参照してください。
0 件のコメント:
コメントを投稿