树莓派学习笔记1:python控制双色LED灯

树莓派学习笔记1:python控制双色LED灯

@2018年12月23日

  • 最早接触嵌入式系统,还是大学的Z80,后来考虑过学习单片机,学过一阵STM32。后来又了解了一些Raspberry和 arduino,人生苦短,如果只是玩玩,顺便引导孩子学习编程和机器人,不如学习树莓派。

  • 简单说下软硬件:
    1.硬件:Raspberry 3B+,从某宝上买了配套的sd卡、配套电子元件等。
    2.OS:raspbian,一种简化Linux
    3.开发环境:raspbian 预装了Python,需额外安装C(暂时没用)。需要额外说明一下,还预装了Scratch(一款面向儿童编程入门语言),孩子再大点,可以用Scratch 控制硬件啦。
    4.个人客户端工具:
    1)串口(驱动ch340)+putty 软件(波特率11520)
    2)配置wifi后,通过VNC Viewer、File Zilla Client 进行远程控制和传输文件。

  • 再简单说下电路
    买树莓派时,套餐中含了双色LED的模块,电路已实现。附原理图,第一次使用Fritzing绘制。
    树莓派学习笔记1:python控制双色LED灯_第1张图片
    简单是:
    GPIO 输出——电阻——LED——地
    注:GPIO 输出High 电平为3.3v。

- Python 程序
一种简单跑马灯实现

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time

pins = {'pin_R':11, 'pin_G':12}  # pins is a dict
sleep_time =0.5

GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
for i in pins:
	GPIO.setup(pins[i], GPIO.OUT)   # Set pins' mode is output
	GPIO.output(pins[i], GPIO.LOW) # Set pins to low(0V) to off led
	print("i is ",i,pins[i])

def loop():	
	while True:
            GPIO.output(pins['pin_R'], GPIO.HIGH)   # Set pins to high(+3.3V) to on led
            print(pins['pin_R']," Red Led is On...")
            time.sleep(sleep_time)
            
            GPIO.output(pins['pin_R'], GPIO.LOW)
            print(pins['pin_R']," Red Led is off...")
            time.sleep(sleep_time)
            
            GPIO.output(pins['pin_G'], GPIO.HIGH)
            print(pins['pin_G']," Green Led is On...")
            time.sleep(sleep_time)
            
            GPIO.output(pins['pin_G'], GPIO.LOW)
            print(pins['pin_G']," Green Led is off...")
            time.sleep(sleep_time)

def destroy():

	for i in pins:
		GPIO.output(pins[i], GPIO.LOW)    # Turn off all leds
	GPIO.cleanup()

if __name__ == "__main__":
	try:
		loop()
	except KeyboardInterrupt:
		destroy()
  • 以上程序比较简单,实现红绿LED 灯交替闪亮,并间隔0.5秒。C语言实现就不用说了,还可用图形化的scratch实现,等以后孩子感兴趣再学吧。程序中print() 为临时调试用,可注释掉。

你可能感兴趣的:(Raspberry,硬件)