本次课程中,老师教我们使用python和Linux语法,进行语音控制的编程。查找资料后,在课程中实现了语音控制的LED灯管和使用蜂鸣器播放“两只老虎”的音乐。
树莓派——无源蜂鸣器
"#!/usr/bin/env python3############################import RPi.GPIO as GPIOimport timemakerobo_Buzzer = 11"
Tong_CL = [0,131,147,165,175,196,211,248] import RPi.GPIO as GPIOTong_CM = [0,262,294,330,350,393,441,495] import timeTong_CH makerobo_Buzzer = [0,525,589,661,700,786,882,990]11
makerobo_song_1 Tong_CL = [Tong_CM[1]0,Tong_CM[2]131,Tong_CM[3]147,Tong_CM[1]165,Tong_CM[3]175,Tong_CM[5]196,Tong_CM[5]211,Tong_CM[3248], Tong_CM= [6]0,Tong_CM[6]262,Tong_CM[6]294,Tong_CM[5]330,Tong_CM[5]350,Tong_CM[3]393,441,495]makerobo_beat_1 Tong_CH =[10,1525,1589,1,1,1,2,1,0.5,0.5661,1700,1786,1882,1990]
makerobo_song_1 = [Tong_CM[1],Tong_CM[2],Tong_CM[3],Tong_CM[1],Tong_CM[3],Tong_CM[5],Tong_CM[5],Tong_CM[3],Tong_CM[6],Tong_CM[6],Tong_CM[6],Tong_CM[5],Tong_CM[5],Tong_CM[3]] makerobo_beat_1=[1,1,1,1,1,1,2,1,0.5,0.5,1,1,1,1] def makerobo_setup(): GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GPIO.setup(11,GPIO.OUT)
global makerobo_Buzz
makerobo_Buzz = GPIO.PWM(11, 440)
#loop
def makerobo_loop(): while True: for i in range(1,len(makerobo_song_1)): makerobo_Buzz.ChangeFrequency(makerobo_song_1[i]) time.sleep(makerobo_beat_1[i]*0.5) time.sleep(1)
def makerobo_destory(): makerobo_Buzz.stop() GPIO.output(makerobo_Buzzer,1) GPIO.cleanup()
if __name__=='__main__': makerobo_setup() try: makerobo_loop() except KeyboardInterrupt: makerobo_destory() "12.py" import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(25,GPIO.IN) GPIO.setup(5,GPIO.OUT) Tong_CL = [0,131,147,165,175,196,211,248] Tong_CM = [0,262,294,330,350,393,441,495] Tong_CH = [0,525,589,661,700,786,882,990] GPIO.setwarnings(False) GPIO.setup(17,GPIO.OUT) global makerobo_Buzz makerobo_Buzz = GPIO.PWM(17, 440) makerobo_song_1 = [Tong_CM[1],Tong_CM[2],Tong_CM[3],Tong_CM[1],Tong_CM[3],Tong_CM[5],Tong_CM[5],Tong_CM[3],Tong_CM[6],Tong_CM[6],Tong_CM[6],Tong_CM[5],Tong_CM[5],Tong_CM[3]] makerobo_beat_1=[1,1,1,1,1,1,2,1,0.5,0.5,1,1,1,1] while True: input1=GPIO.input(25) if(input1 == True): GPIO.output(5,GPIO.HIGH) else: GPIO.output(5,GPIO.LOW)