python硬件交互_用Python控制硬件2-点亮LED

上一篇提到的跑在单片机里的交互终端到底长什么样?先来看看下面这条命令:

=>led -i 0 -s

=>

解释一下:“=>”是提示符,说明单片机等着你的输入,此时串口终端输入led命令,带上参数“-i 0”,表示编号0的LED,“-s”表示设置点亮,整个个命令就是将0号LED点亮。然后输入回车,单片机执行完后返回新的提示符,等待下一个命令。

是不是很好理解?这就是明文调试的好处:直观。相应的灭灯命令呢?把“-s”换成“-c”就行。还有其它的参数吗?敲“led --help”试试,打印出整个用法说明:

=>led --help

usage: led [-s] [-t] [-c] [-i ] [-n] [-T]

options:

-s/--set on

-t/--toggle invert

-c/--clr off

-i/--index index from 0

-n/--number query

-T/--test blink all

=>

看到了没?还支持长变量名:“-s”和“--set”是等价的,这一点和LINUX下的命令行习惯一致。

上面这套Shell因为跑在MCU上,我给它命名MCUSH(MCU Shell的缩写),有兴趣的朋友可以参考我的Github代码库(已经以开源形式公开):pengshulin/mcush​github.comv2-9f63358c601aeab52380404680751c55_ipico.jpg

下面开始用Python重新表演一遍,首先用pip下载安装mcush库:

$ sudo pip install mcush

打开Python解释器(这里用的版本是V2.7),输入脚本:

$ python

Python 2.7.12 (default, Aug 22 2019, 16:36:40)

[GCC 5.4.0 20160609] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> from mcush import *

>>> m=Mcush.Mcush("/dev/ttyUSB0")

>>> m.ledSet(0)

>>>

上面的Python代码将位于串口“/dev/ttyUSB0”的设备抽象成一个对象m,调用方法ledSet(0)会组装相应命令发送给单片机执行,因为是阻塞的调用方式,当单片机返回新的提示符后,函数调用才会返回。

假如这个设备的0号灯是蓝色,1号灯是红色,下面的脚本让它们闪出警灯的效果:

import time

from mcush import *

s = Mcush.Mcush("/dev/ttyUSB0")

while True:

for i in range(3):

s.ledSet(0) # blue led on

time.sleep(0.1)

s.ledClr(0) # blue led off

time.sleep(0.1)

for i in range(3):

s.ledSet(1) # red led on

time.sleep(0.1)

s.ledClr(1) # red led off

time.sleep(0.1)

是不是很简单直接?下一篇讲一讲GPIO的控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值