要查看更多树莓派相关文章,请点击这里。
很多年前我刚开始玩树莓派的时候,Python还是个“很不火”的编程语言,而如今Python借着深度学习(Deep Learning)的东风,已经毫无疑问地成了世界上最耀眼的明日之星;想当年我刚开始玩树莓派的时候,使用WiringPi开发库、在C++下开发GPIO应用是一个比较明智的选择,而如今树莓派上的Pyhton GPIO库已经百花齐放,并且多个树莓派的OS都已经内置了一或多个Python GPIO开发包,真正做到了:你只要装好系统,就马上能用Python写程序操作GPIO,立等可用。
C++编译一个简单的GPIO程序都要写Makefile,修改一点东西也得重新编译;而Python直接在交互模式下就可以测试GPIO,方便得让你想哭。相比之下,对一般的GPIO应用而言,我真的找不到什么理由再去用C++ & WiringPi来做。此外还有最重要的一点:树莓派在教育领域的广泛应用,使得Python成为了最合适的教育工具。儿童是祖国的花朵,如果让小孩子们在树莓派上用C++,这花朵还能好好成长吗?
文章来源:https://www.codelast.com/
下面就来看看,在Ubuntu MATE 18.04 系统下,用Python来开发一个GPIO应用有多么简单。
▶▶ 选择哪个GPIO库
之前我已经装好了Miniconda环境,而知名Python GPIO库 RPi.GPIO 在Anaconda上没有Python 3.6的版本,因此我安装了另一个pigpio库:
conda install -c cbetters pigpio
文章来源:https://www.codelast.com/
▶▶ 启动 pigpio 的daemon进程
这是基于 pigpio 的Python程序能work的必要条件:
sudo pigpiod
Can't connect to pigpio at localhost(8888)Did you start the pigpio daemon? E.g. sudo pigpiodDid you specify the correct Pi host/port in the environmentvariables PIGPIO_ADDR/PIGPIO_PORT?E.g. export PIGPIO_ADDR=soft, export PIGPIO_PORT=8888Did you specify the correct Pi host/port in thepigpio.pi() function? E.g. pigpio.pi('soft', 8888)
文章来源:https://www.codelast.com/
▶▶ 树莓派硬件接线
这里做一个最简单的实验:用树莓派的GPIO口点亮LED。
文章来源:https://www.codelast.com/
▶▶ Python程序
程序这么简单我还能说什么:
import pigpio
pi = pigpio.pi()
pi.set_mode(17, pigpio.OUTPUT) # 把GPIO 17设置成输出模式
pi.write(17, 1) # 把GPIO 17设置成高电平
这代码完全不用做任何解释。
文章来源:https://www.codelast.com/
▶▶ 效果实拍
为了兼容性,MP4视频被我转成了体积巨大的gif(我容易吗我),且看且珍惜:
文章来源:https://www.codelast.com/
▶▶ 总结
对树莓派来说:
☞ 人生苦短,请你用Python!
☞ 在树莓派上折腾GPIO,用Python!
☞ For kids,毫无疑问地选Python!
☞ 这个世界是你们的,是我们的,但终究是Python的!
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):