快速上手

Python轻应用以MicroPython作为运行引擎,它继承了python优美简洁的语法特点,同时提供了便捷的嵌入式硬件操作库,极大的降低了嵌入式开发的门槛。Python轻应用目前主要部署在阿里云Iot推出的HaaS系统开发板上,以HaaS100为例,它不仅提供了各种丰富的硬件操作接口,同时提供了阿里云物联网平台的连接控制以及云/端AI相关的能力。通过Python轻应用,我们可以轻松便捷的搭建各种功能丰富案例和产品,让Iot应用开发轻松实现跨平台热更新。

环境搭建

环境搭建可以有两种方法:基于源码编译烧录和基于官方固件直接烧录

建议开发者基于官方固件快速搭建python开发环境,具体步骤如下:

  • Mac环境搭建

    第一步:下载官方固件包,并解压到当前目录

    <<Mac固件下载链接>>

    固件包中包含需要烧录的两个bin文件,两个烧录py文件和一个.config_burn配置文件,具体见下图:

    固件包文件列表

    第二步: 机器连接电源,并通过usb连接到电脑

    通常情况下,连接成功以后,设备上会多出来一个/dev/cu.SLAB_USBtoUART(不同的电脑,串口设备路径不一样)设备

    第三步: 设置串口,执行烧录命令

    进入mac_burn目录,执行以下命令烧录:

    python flash_program.py --bin=./py_engine_demo@haas100.bin --bin=./littlefs.bin#0xB32000
    

    如果是第一次烧录,脚本会查询系统所有的串口节点,并要求用户自己输入当前HaaS100设备的节点路径,烧录完成以后,串口路径就被记录到了当前目录的.config 文件中,内容如下:

    {
      "chip_haas1000": {
      "baudrate": "1500000",
      "binfile": [
          "./py_engine_demo@haas100.bin"
      ],
      "serialport": "/dev/cu.SLAB_USBtoUART"
    }
    

    特别注意serialport 字段的路径为实际HaaS100的串口路径,如果串口路径改变了,需要手动删除.config_burn中的”serialport”字段,或者serialport字段的值修改为实际路径之后再进行烧录

    如果烧录过程中出现如下提示:

    "Please reboot the board manually"
    

    请按下板子上远离电源的(最外侧)的黑色按钮,继续烧录。

    Mac电脑烧录请确保电脑安装pserial,安装命令如下:

    brew install python
    pip install pserial
    
  • Windows环境搭建

    第一步:下载官方固件包,并解压到当前目录

    <<Windows固件下载链接>>

    刷机包解压后,具体见下图:

    固件包文件列表

    第二步: 机器连接电源,并通过usb连接到电脑

    第三步:进入write_flash_gui目录,双击运行haas1000_write_flash_main,出现如下烧录软件的主界面

    固件包文件列表

    第四步:Port Config,选择对应的串口设备后,点击开始按钮烧录即可

源码固件编译方法,可以参考: <<HaaS100快速开始>> ,将编译工程名从helloworld_demo 改成 py_engine_demo

快速验证

开机默认会启动之前烧录进去的程序,打开串口工具,选择对应的串口设备,设置波特率为1500000 并连接。 Python轻应用默认支持两种运行模式: 交互式 和 文件执行,在串口下输入不同的命令进入不同的模式

  • 命令行输入python进入交互模式,在交互模式输入python代码,就能看到执行结果。键盘按下ctrl+d 退出交互模式

python
Python轻应用交互式运行结果
  • 命令行输入python /data/python/driver/led.py,执行led.py文件

python /data/python/driver/led.py
Python跑马灯运行结果

以下是跑马灯的代码示例,更多示例请参考主页的参考案例界面

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# -*- coding: UTF-8 -*-
import utime
from driver import GPIO
# 初始化GPIO 类
gpio = GPIO()

leds=("led1", "led2", "led3", "led4", "led5")
for i in range(5):
    for led in leds:
        #open 函数支持的参数列表: led1, led2, led3, led4, led5
        gpio.open(led)
        #点亮led
        gpio.write(0)
        utime.sleep_ms(200)
        #熄灭led
        gpio.write(1)
        utime.sleep_ms(200)
        gpio.close()

data目录的文件默认内容在: platform/mcu/haas1000/prebuild/data/, 这里的文件和目录默认会编译打包到littlefs.bin.如果有更新,需要烧录littlefs.bin文件. 除了/data目录之外,还支持执行/sdcard 目录python程序. 文件在pc上面编辑,保存到sdcard目录,然后将sdcard插入机器,重启机器,执行如下命令

python /sdcard/led_test.py