“徐于涵-2019012610-2021A-M08-91-WW8”版本间的差异

Xu-yh19讨论 | 贡献
(以“学习笔记 * 无序列表项”为内容创建页面)
 
Xu-yh19讨论 | 贡献
 
第1行: 第1行:
 
学习笔记
 
学习笔记
* 无序列表项
+
* RGB LED灯实验
 +
编码颜色、变化频率、亮度制造闪烁五彩灯的效果
 +
    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.setuo(pins[i], GPIO.OUT)
 +
        GPIO.putput(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(0.1)
 +
       
 +
    def makerobo_destroy():
 +
    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()
 +
 
 +
* 轻触按键模块
 +
轻触按键模块内部有一个轻触拨盘,当按下轻触按键的时候输出低电平,当松开轻触按键的时候保持高电平,通过LED的颜色判断轻触按键的工作状态
 +
    import RPi.GPIO as GPIO
 +
    makerobo_BtnPin=11
 +
    makerobo_Rpin=12
 +
    makerobo_Gpin=13
 +
    def makerobo_setup():
 +
    GPIO.setmode(GPIO.BOARD)
 +
    GPIO.setwarnings(False)
 +
    GPIO.setup(makerobo_Rpin,GPIO.OUT)
 +
    GPIO.setup(makerobo_Gpin,GPIO.OUT)
 +
    GPIO.setup(makerobo_BtnPin,GPIO.IN,pull_up_down=GPIO.PUD_UP)
 +
    GPIO.add_event_detect(makerobo_BtnPin,GPIO.BOTH,callback=makerobo_detect,bouncetime=200)
 +
   
 +
    def double_colorLED(x):
 +
    if x==0:
 +
        GPIO.output(makerobo_Rpin,1)
 +
        GPIO.output(makerobo_Gpin,0)
 +
    if x==1:
 +
        GPIO.output(makerobo_Rpin,0)
 +
        GPIO.output(makerobo_Gpin,1)
 +
 
 +
    def makerobo_Print(x):
 +
    if x==0:
 +
        print('HELLO WORLD')
 +
       
 +
    def makerobo_detect(chn):
 +
    double_colorLED(GPIO.input(makerobo_BtnPin))
 +
    makerobo_Print(GPIO.input(makerobo_BtnPin))
 +
                       
 +
    def makerobo_loop():
 +
    while True:
 +
        pass
 +
       
 +
    def makerobo_destroy():
 +
    GPIO.output(makerobo_Gpin,GPIO.LOW)
 +
    GPIO.output(makerobo_Rpin,GPIO.LOW)
 +
    GPIO.cleanup()
 +
 
 +
    if __name__=="__main__":
 +
  makerobo_setup()
 +
  try:
 +
      makerobo_loop()
 +
  except KeyboardInterrupt:
 +
      makerobo_destroy()
 +
 
 +
*声控台灯
 +
通过快速产品化平台http://www.smartpi.cn/#/SdkVersionList制作语音SDK,实现声控台灯。
 +
    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月1日 (一) 06:49的最后版本

学习笔记

  • RGB LED灯实验

编码颜色、变化频率、亮度制造闪烁五彩灯的效果

   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.setuo(pins[i], GPIO.OUT)
       GPIO.putput(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(0.1)
       
   def makerobo_destroy():
   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() 
  • 轻触按键模块

轻触按键模块内部有一个轻触拨盘,当按下轻触按键的时候输出低电平,当松开轻触按键的时候保持高电平,通过LED的颜色判断轻触按键的工作状态

   import RPi.GPIO as GPIO
   makerobo_BtnPin=11
   makerobo_Rpin=12
   makerobo_Gpin=13
   def makerobo_setup():
   GPIO.setmode(GPIO.BOARD)
   GPIO.setwarnings(False)
   GPIO.setup(makerobo_Rpin,GPIO.OUT)
   GPIO.setup(makerobo_Gpin,GPIO.OUT)
   GPIO.setup(makerobo_BtnPin,GPIO.IN,pull_up_down=GPIO.PUD_UP)
   GPIO.add_event_detect(makerobo_BtnPin,GPIO.BOTH,callback=makerobo_detect,bouncetime=200)
   
   def double_colorLED(x):
   if x==0:
       GPIO.output(makerobo_Rpin,1)
       GPIO.output(makerobo_Gpin,0)
   if x==1:
       GPIO.output(makerobo_Rpin,0)
       GPIO.output(makerobo_Gpin,1)
   def makerobo_Print(x):
   if x==0:
       print('HELLO WORLD')
       
   def makerobo_detect(chn):
   double_colorLED(GPIO.input(makerobo_BtnPin))
   makerobo_Print(GPIO.input(makerobo_BtnPin))
                       
   def makerobo_loop():
   while True:
       pass
       
   def makerobo_destroy():
   GPIO.output(makerobo_Gpin,GPIO.LOW)
   GPIO.output(makerobo_Rpin,GPIO.LOW)
   GPIO.cleanup()
   if __name__=="__main__":
  makerobo_setup()
  try:
     makerobo_loop()
  except KeyboardInterrupt:
     makerobo_destroy()
  • 声控台灯

通过快速产品化平台http://www.smartpi.cn/#/SdkVersionList制作语音SDK,实现声控台灯。

    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月1日 (星期一) 06:49