- 最終更新日
- 記事公開日
【ラズパイPico】テーブルサッカーに「ゴォォーーール!」の音声を付けてみた
DFPlayer miniとCDS(光センサ)を使って、テーブルサッカーに音声を付けてみました。
ボールがゴールに入ると、「ゴォォーーール!」という声が鳴ります。
配線・回路図
使用パーツ
プログラム(MicroPython)
# ハードウェア関連のライブラリを読み込み
import machine
# 時間関連のライブラリを読み込み
import utime
# UART初期設定(UART番号,クロックレート,TXピン:GP4/6Pin,RXピン:GP5/7Pin)
uart = machine.UART(1,baudrate=9600,tx = machine.Pin(4),rx = machine.Pin(5))
# GP17(22Pin)を出力ピンに設定、プルダウン(初期値):0
led = machine.Pin(17, machine.Pin.OUT,machine.Pin.PULL_DOWN)
# ADC0(31Pin)・ADC1(32Pin)をADC変換ピンに設定
cds1 = machine.ADC(0)
cds2 = machine.ADC(1)
# 永久リピート
while True:
# read_u16() ・・・アナログ値を読込み[0-65535]の整数を返す関数
# 16bit・2進数の最大値:1111111111111111 ⇒ 10進数の最大値:65535
# 3.3/65535の意味:電圧の最大値3.3Vを、65535という数値にあてはめるための計算
adc1 = cds1.read_u16() * (3.3 / 65535)
adc2 = cds2.read_u16() * (3.3 / 65535)
# 0.3V以下のとき実行
if adc1 < 0.3 or adc2 < 0.3:
# シリアルデータの作成(一曲だけを再生)
sdata = bytearray([0x7E,0xFF,0x06,0x03,0x00,0x00,0x02,0xEF])
# シリアルデータの送信
uart.write(sdata)
# 6秒wait
utime.sleep(6)
技術解説
各パーツの基本解説は、過去記事をご覧ください。
光センサーは直列2個ずつ繋ぎ、合計4個使用しています。。
直列に繋いだ光センサーのどちらかにボールが当たると、電圧が下がります。
それが音声を発するトリガーとなっています。