家で過去買った部品物色してたら、PCからもぎ取ったブザー発見(KC-1206)
型番調べると、パッシブブザーらしいのでラズパイのPWMで音階奏でてみました。
回路?良く分からんのと、ソケットがPWM1(33PIN)、GND(39PIN)で丁度いいので
そのままぶっ刺しました。
色々難ありですが、目で見るより音聞いた方が効果わかりやすいですね。
ソースはこちら。
#
import RPi.GPIO as GPIO
import time
C4 = 261.626
D4 = 293.665
E4 = 329.628
F4 = 349.228
G4 = 391.995
A4 = 440.000
B4 = 493.883
C5 = C4 * 2
D5 = D4 * 2
TEMPO = 70
T4 = 60 / TEMPO
T2 = T4 * 2
T8 = T4 / 2
T6 = T4 + T8
melody = [ D4,C4,D4,E4, G4,E4,D4, E4,G4,A4,G4,A4, D5,B4,A4,G4,
E4,G4,A4, D5,C5,D5, E4,G4,A4,G4, E4,G4,D4,
A4,C5,D5, C5,D5,A4,G4, A4,G4,E4,D4,
]
tempo = [ T4,T4,T4,T4, T4,T4,T2, T4,T4,T4,T8,T8, T4,T4,T4,T4,
T4,T4,T2, T4,T4,T2, T4,T4,T4,T4, T6,T8,T2,
T4,T4,T2, T4,T4,T4,T4, T4,T8,T8,T2,
]
print("start")
PWM_PIN = 33 # PWM0 12 or 32 / PWM1 33
GPIO.setmode(GPIO.BOARD)
GPIO.setup (PWM_PIN,GPIO.OUT)
GPIO.output(PWM_PIN,GPIO.LOW)
pwm = GPIO.PWM(PWM_PIN,melody[0])
pwm.start(50)
#pwm.ChangeDutyCycle(50)
for i in range(len(melody)):
pwm.ChangeFrequency(melody[i])
time.sleep(tempo[i])
pwm.stop()
GPIO.cleanup()
print("end")
#EOF


コメント