晁建楠-2020011174-2021A-M08-92-WW8
来自iCenter Wiki
Week8
1、在智能公元网站上创建产品,设置输出控制信号以及语言控制命令等,并下载了SDK
2、学习树莓派的使用,利用Python编写了声音传感器的控制程序,并利用其和树莓派检测是否有声音
import PCF8591 as ADC import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) def msetup(): ADC.setup(0x48) def loop(): count=0; while True: voiceValue=ADC.read(0) if voiceValue: print("Sound Value:",voiceValue) if voiceValue<80: print("Voice detected!",count) count+=1 time.sleep(0.2) if __name__=='__main__': try: msetup() loop() except KeyboardInterrupt: pass
3、将下载的SDK烧录到硬件上,并编写新的控制程序完成语音控制,并尝试在程序中加入了对蜂鸣器的控制
import RPi.GPIO as GPIO #import PCF8591 as ADC import time Buzzer=17 Tone_CL=[0,131,147,165,175,196,211,248] Tone_CM=[0,262,294,330,350,393,441,495] Tone_CH=[0,525,589,661,700,786,882,990] song1=[Tone_CM[3],Tone_CM[5],Tone_CM[6],Tone_CM[3],Tone_CM[2],Tone_CM[3],Tone_CM[5],Tone_CM[6],Tone_CH[1],Tone_CM[6],Tone_CM[5],Tone_CM[1],Tone_CM[3],Tone_CM[2],Tone_CM[2],Tone_CM[3],Tone_CM[5],Tone_CM[2],Tone_CM[3],Tone_CM[3],Tone_CL[6],Tone_CL[6],Tone_CL[6],Tone_CM[1],Tone_CM[2],Tone_CM[3],Tone_CM[2],Tone_CL[7],Tone_CL[6],Tone_CM[1],Tone_CL[5]] beat1=[1,1,3,1,1,3,1,1,1,1,1,1,1,1,3,1,1,3,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,3] def setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(25,GPIO.IN) GPIO.setup(26,GPIO.IN) GPIO.setup(5,GPIO.OUT) GPIO.setup(6,GPIO.OUT) #GPIO.setup(22,GPIO.OUT) #ADC.setup(0x48) GPIO.setwarnings(False) GPIO.setup(Buzzer,GPIO.OUT) global Buzz Buzz=GPIO.PWM(Buzzer,440) Buzz.start(50) def loop(): while(True): input1=GPIO.input(25) input2=GPIO.input(26) if(input1==True): GPIO.output(5,GPIO.HIGH) Buzz.start(50) for i in range(1,len(song1)): Buzz.ChangeFrequency(song1[i]) time.sleep(beat1[i]*0.5) time.sleep(1) else: GPIO.output(5,GPIO.LOW) Buzz.stop() if(input2==True): GPIO.output(6,GPIO.HIGH) else: GPIO.output(6,GPIO.LOW) #voiceValue=ADC.read(0) #if voiceValue: # print("Sound Value:",voiceValue) # if voiceValue>=20: # print("Voice detected!",count) # count+=1 # time.sleep(0.2)# if __name__=='__main__': try: setup() loop() except KeyboardInterrupt: GPIO.cleanup() pass