树莓派笔记08—Python流水灯

RP​I.GPIO「raspberry-gpio-python」是Python的一个模块,允许你在执行Python脚本的时候轻松访问和控制GPIO,最新发布的树莓派系统已经内置安装了这个库,但是目前还没有支持SPI、IIC、硬件PWM和串口等接口。

1. 树莓派中安装python及GPIO库
  • 先安装python-dev,输入如下指令:
sudo apt-get install python-dev

安装python-dev

  • 由于不可描述的原因,GPIO库每次下载都会连接超时。文末提供了目前官网最新代码压缩包,后续直接解压安装即可。

  • 解压我们下载好的压缩包。

tar xvzf RPI.GPIO-0.7.0.tar.gz

如下图:

解压

  • 进入解压缩后的目录「cd RPi.GPIO-0.7.0/」,输入如下命令进行启动安装。
sudo python setup.py install

如下图:

安装

2. 硬件连接

LED发光二极管的负极连接到树莓派的GND,LED的正极连接一个220欧的限流电阻分别连接到树莓派的11,13,15,19引脚。

电路连接图如下图所示:

电路连接图

3. 编写Python代码实现流水灯

新建一个名为leds.py的文件,内容如下所示:

# encoding: utf-8
import RPi.GPIO as GPIO
import time

#BOAED编号方式,基于排针引脚编号
pins = [11, 13, 15, 19];

GPIO.setmode(GPIO.BOARD)

for pin in pins:
	GPIO.setup(pin, GPIO.OUT)
	GPIO.output(pin, GPIO.LOW)

while True:
	for pin in pins:
		GPIO.output(pin, GPIO.HIGH)
		time.sleep(0.2)
		GPIO.output(pin, GPIO.LOW)
		time.sleep(0.2)

若是在windows中编写,需要将文件下载到树莓派中。接着输入如下命令来执行程序:

sudo python leds.py

可以看到LED流动闪烁。通过「Ctrl+C」结束程序。

流水灯

RPI库下载链接
百度云链接:https://pan.baidu.com/s/1BYTwaTDG3SK2pv8smUVFFQ
提取码:jojf

关注微信公众号:TonyCode
Arduino学习交流群:868283450

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
扫码加入微信公众号:TonyCode

### 适合硬件工程师初学者的入门级项目实例 对于希望进入嵌入式领域并积累实践经验的新手来说,选择合适的入门项目至关重要。推荐从简单易上手的小型项目入手,在实践中逐步掌握基础技能。 #### LED控制电路设计 通过GPIO接口实现LED灯闪烁功能是最经典的入门实验之一[^1]。此项目可以帮助理解基本输入输出操作以及编程逻辑的应用。可以进一步扩展到多盏LED流水灯效果展示,甚至加入按钮开关来改变灯光模式。 #### 温湿度传感器数据采集与显示 利用DHT系列温湿度模块连接至单片机或微控制器单元(MCU),编写程序读取环境参数并通过LCD屏幕或其他方式呈现给用户查看。这不仅涉及到了模拟信号处理的知识点,还能够锻炼通信协议的学习能力。 #### 基于超声波测距仪的距离测量装置 采用HC-SR04等型号的超声波传感器构建简易距离检测设备。该项目涉及到脉冲回响原理及时差计算方法等内容,有助于加深对物理概念的理解;同时也能熟悉串口通讯技术用于传输测量结果。 ```python import RPi.GPIO as GPIO import time TRIG_PIN = 23 ECHO_PIN = 24 def setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(TRIG_PIN, GPIO.OUT) GPIO.setup(ECHO_PIN, GPIO.IN) def measure_distance(): GPIO.output(TRIG_PIN, True) time.sleep(0.00001) GPIO.output(TRIG_PIN, False) while GPIO.input(ECHO_PIN) == 0: pulse_start = time.time() while GPIO.input(ECHO_PIN) == 1: pulse_end = time.time() pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 return round(distance, 2) setup() try: while True: dist = measure_distance() print(f"Distance: {dist} cm") time.sleep(1) finally: GPIO.cleanup() ``` #### 使用OLED显示屏制作电子钟表 选用SSD1306驱动IC配合I2C总线接口的小尺寸有机发光二极管(OLED)屏完成时间显示应用开发工作。此类实践既有趣味性又能有效提高图形界面绘制技巧。 以上列举了一些较为常见的初级阶段练习题目供参考,建议优先考虑基于树莓派这类易于获取支持资源丰富的平台开展探索活动。随着经验的增长和技术水平的进步,再逐渐尝试更复杂有趣的挑战也不迟。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值