晁建楠-2020011174-2021A-M08-92-WW8

2021年11月2日 (二) 09:56Chaojiannan讨论 | 贡献的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

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

 
最后修改于2021年11月2日 (星期二) 09:56