天天看點

如何基于AliOS Things 3.3編譯Python固件

來源 | HaaS技術社群

1、案例簡介

AliOS Things 3.3 中自帶了一個py_engine 解決方案(solution), 該解決方案就是在AliOS Things 3.3 運作Python環境。

py_engine (Python輕應用引擎) 以MicroPython為基礎打造而成, 基于py_engine可以快速實作IoT場景連雲、控端、AI等最常見功能。快速上手文檔和程式設計接口請參考

Python輕應用快速上手
  • 連雲:支援基于linkit連接配接阿裡雲物聯網平台
  • 控端:支援PWD、UART、SPI、I2C、ADC、DAC、GPIO等基本硬體接口控制
  • AI:支援端上AI和雲端AI能力,覆寫人臉、人體、視訊、文字等150+場景

py_engine 預設作為一個元件存在于AliOS Things 3.3 中。

py_engine_demo 依賴了py_engine 元件,主要功能如下:

  • 注冊python指令
  • 啟動python虛拟機

py_engine_demo 隻有一個appdemo.c,注冊了python cli 指令後就退出了,等待使用者指令啟動python虛拟機。

2、基礎知識

2.1、元件依賴方法

在package.yaml 中增加py_engine元件依賴

depends:
 
- py_engine: master           

增加頭檔案

#include "mpy_main.h"           

調用初始化方法

mpy_init();
 
mpy_run(argc, argv);           

3、物料清單

3.1、HaaS EDU K1 硬體

HaaS EDU K1硬體介紹
如何基于AliOS Things 3.3編譯Python固件

4、案例實作

4.1、硬體連接配接

該案例隻需要使用Type-c的資料線将HaaS EDU K1連接配接電腦就可以,如下圖所示:

如何基于AliOS Things 3.3編譯Python固件

4.2、軟體實作

  • AliOS Things開發環境搭建

開發環境的搭建請參考

《aos-studio使用說明之搭建開發環境》

,其中詳細的介紹了AliOS Things 3.3的IDE內建開發環境的搭建流程。

選擇開發闆: haaseduk1
  • 編譯

參考

《aos-studio使用說明之編譯固件》

  • 燒錄

由于該demo的資源檔案位于/data,分區,是以燒錄的時候需要燒錄littlefs.bin,方法如下:

将hardware/chip/haas1000/package.yaml檔案中以下代碼段的注釋打開

program_data_files:
 
- filename: release/write_flash_tool/ota_bin/littlefs.bin
 
address: 0xB32000           
《aos-studio使用說明之燒錄固件》

4.3、驗證Python功能

連接配接序列槽,通過python指令進入python repl模式

# python
# python on HaaS100 by 2021-03-17, press ctrl+d to exit!
>>> print("hello-world")
 
hello-world           

5、總結

該demo隻依賴AliOS Things 3.3,不依賴具體的硬體,通過這個demo ,預設可以将py_engine 按照兩種不同的方式運作。

開發者支援

如需更多技術支援,可加入釘釘開發者群,或者關注微信公衆号。

如何基于AliOS Things 3.3編譯Python固件

更多技術與解決方案介紹,請通路HaaS官方網站

https://haas.iot.aliyun.com

繼續閱讀