在图1.4.1所示的图片中,有5个可以操作的LED灯,我们首先运行官方提供的一个MicroPython关于走马灯的LED测试程序。在命令行输入“python /data/python-apps/driver/led/main.py”(如图1.4.9所示)。
● 图1.4.9 led走马灯程序测试
如果程序执行成功,则不仅可以看到如图1.4.9所示的输出,也可以看到开发板上5个LED灯开始依次闪烁。
阿里云HaaS系列的Python轻应用,官方提供了GPIO驱动库,支持如下几个主要函数:
1)GPIO.open(type):打开GPIO对象,type =为对象类型,在board.json文件中定义。
2)GPIO.write(value):设置GPIO状态(GPIO输出模式有效),value =要写入的数据,一般设置低电平为0或高电平为1。
3)GPIO.read():返回GPIO的状态,一般为0或1。
4)GPIO.close():关闭GPIO对象,返回0成功,非0失败。
5)GPIO.enableIrq(cb)激活GPIO对象的中断事件cb=事件函数
6)GPIO.disableIrq(cb):禁用GPIO对象的中断事件cb=事件函数。
7)GPIO.clearIrq(cb):清除GPIO对象的中断事件cb=事件函数。
在GPIO操作之前,需要在编译固件包的时候,配置hardware/chip/haas1000/prebuild/data/python-apps/driver/board.json文件,比如GPIO相关的配置如下:
其中led1、led2、led3、led4、led5分别对应图1.4.1所示的5个LED灯,其对应的MCU上的pin脚号由port指定,并且这5个led对象也是GPIO.open要打开的对象。比如LED走马灯的程序如下:
图1.4.1所示的配网键是一个功能按键,其对应的pin脚号为26,在board.json文件中我们增加如下的定义声明:
通过GPIO.open打开该对象,通过GPIO.read()即可读取button当前状态(抬起还是按下)。相关代码如下:
程序部署到设备执行后,按下或抬起功能按键,可观察按键的输出状态是否同步变化(如图1.4.10所示)。
针对button输入,我们还有中断回调方式,不需要循环判断button的状态,不过目前仅能捕捉到按键这个事件,不支持按键按下和抬起。相关程序如下:
● 图1.4.10 按键输入
注意
如何执行用户编写的Python程序,HaaS100如何开机自运行?
1)HaaS100支持SD卡操作,可以把编写完毕的Python程序复制到SD卡,输入如下指令即可执行python /sdcard/main.py。如果定义了额外的接口,需要把board.json文件复制到SD卡根目录。
2)HaaS100开机启动的时候,会自动运行SD卡根目录中名称为main.py的程序。
3)阿里发布了amp-python的Visual Studio Code插件,可以直接编写和部署Python轻应用(和固件刻录方式类似),不过目前还不支持在线调试。