杨晨-2018013294-2021A-M08-92-WW8

20211102

1. 快速利用树莓派创建智能硬件的网站:http://www.smartpi.cn/#/SdkVersionList

2. Win-SCP可以把写好的程序导入树莓派的板子(记得提前与树莓派连接同一个wifi)

3. RGB LED三色灯的程序(书52页)经过漫长debug后终于成功运行,主要的问题有:小括号中括号不分,大小写不分,缺失关键语句等等。运行的语句为:python RGB-yc.py。最终成功的程序如下:

  • Python版本
import RPi.GPIO as GPIO
import time
colors = [0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF]
makerobo_R = 11
makerobo_G = 12
makerobo_B = 13
def makerobo_setup (Rpin, Gpin, Bpin):
    global pins
    global p_R, p_G, p_B
    pins = {'pin_R':Rpin, 'pin_G':Gpin,'pin_B':Bpin}
    GPIO.setmode(GPIO.BOARD)
    GPIO.setwarnings(False)
    for i in pins:
        GPIO.setup(pins[i], GPIO.OUT)
        GPIO.output(pins[i], GPIO.LOW)
    p_R = GPIO.PWM(pins['pin_R'],2000)
    p_G = GPIO.PWM(pins['pin_G'],1999)
    p_B = GPIO.PWM(pins['pin_B'],5000)
    p_R.start(0)
    p_G.start(0)
    p_B.start(0)
def makerobo_pwm_map(x, in_min, in_max, out_min, out_max):
    return (x-in_min)*(out_max - out_min) / (in_max -in_min) + out_min
def makerobo_off():
    GPIO.setmode (GPIO.BOARD)
    for i in pins:
        GPIO.setup(pins[i], GPIO.OUT)
        GPIO.output(pins[i], GPIO.LOW)
def makerobo_set_Color(col):
    R_val = (col & 0xff0000) >> 16
    G_val = (col & 0x00ff00) >> 8
    B_val = (col & 0x0000ff) >> 0
    R_val = makerobo_pwm_map (R_val, 0, 255, 0, 100)
    G_val = makerobo_pwm_map (G_val, 0, 255, 0, 100)
    B_val = makerobo_pwm_map (B_val, 0, 255, 0, 100)
    p_R.ChangeDutyCycle(100-R_val)
    p_G.ChangeDutyCycle(100-G_val)
    p_B.ChangeDutyCycle(100-B_val)
def makerobo_loop():
    while True:
        for col in colors:
            makerobo_set_Color(col)
            time.sleep(1)
def makerobo_destoy():
    p_R.stop()
    p_G.stop()
    p_B.stop()
    makerobo_off()
    GPIO.cleanup()
if __name__ == "__main__":
    try:
        makerobo_setup(makerobo_R, makerobo_G, makerobo_B)
        makerobo_loop()
    except KeyboardInterrupt:
        makerobo_destroy()

4. 智能台灯:在网站上设计后把SDK文件下载解压,烧入智能台灯的语音识别板块。以下文件需要先导入树莓派才能正常使用:

  • Python版本的程序
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.IN)
GPIO.setup(26,GPIO.IN)
GPIO.setup(5,GPIO.OUT)
GPIO.setup(6,GPIO.OUT)
while True:
    input1 = GPIO.input(25)
    input2 = GPIO.input(26)
    if(input1 == True):
        GPIO.output(5,GPIO.HIGH)
    else:
        GPIO.output(5,GPIO.LOW)
    if(input2 == True):
        GPIO.output(6,GPIO.HIGH)
    else:
        GPIO.output(6,GPIO.LOW)
最后修改于2021年11月2日 (星期二) 05:34