對于渴望進入物聯網開發領域的初學者來說,LuatOS是一個理想的起點。本教程將通過由淺入深的教學方式,從搭建開發環境、理解核心API到編寫簡單應用,逐步引導你掌握LuatOS編程的核心技能,開啟智能設備開發之旅。
學習LuatOS的主要方法之一是“運行各個功能模塊的demo代碼”,本期特別分享——LuatOS編程起步相關內容。
注意:本文檔的讀者,默認都已經了解初步的Lua語法。
如果不懂Lua語法的話,可以參考下方鏈接:http://docs.openluat.com/air780epm/common/lua_lesson/
一、底層固件怎么啟動LuatOS腳本
1.1 腳本入口執行文件
簡單來說,底層固件首先就是要找到main.lua這個文件,然后啟動它。所有的其他功能,都需要在main.lua發起。
如下圖Air780EPM模組demo的Camera示例:

1.2 LuatOS啟動腳本的詳細流程
進一步詳細的說,LuatOS的底層固件啟動腳本的流程如下:
啟動底層core:系統上電或者復位后,底層固件(core)首先啟動,進行硬件初始化、內存分配、文件系統掛載等系統底層的基礎操作。
加載Lua虛擬機:底層固件加載Lua虛擬機,為執行 Lua腳本提供運行環境;
加載main.lua:自動查找并加載存儲在設備上的主腳本main.lua;
執行腳本代碼:按順序執行main.lua腳本中的代碼,通常包括任務創建(如 sys.taskInit)、功能初始化等。
進入任務調度:腳本最后通常調用sys.run(),進入事件循環和多任務調度,正式運行用戶邏輯。
1.3 怎么把固件和腳本燒錄到硬件:
使用官方LuatTools,將底層固件和用戶Lua腳本燒錄到合宙模組或者引擎硬件;上電后,底層固件自動完成上述啟動和腳本加載流程,無需手動干預。
Luatools下載及使用參見:https://docs.openluat.com/air780epm/common/Luatools/
二、main.lua需要包含哪些部分?
2.1 項目信息聲明
在main.lua的文件開頭,需要聲明項目名和版本號,便于管理和調試。后續的遠程升級,也需要用到項目名和版本號。
例如:

2.2 系統庫和必要模塊加載
在main.lua需要加載LuatOS的基礎庫和擴展庫(如zbuff、onewire等),用來實現具體的業務邏輯。
例如:

截止至當前發文,LuatOS已提供74個核心庫和55個擴展庫。
最新LuatOS庫函數開發手冊詳見:https://docs.openluat.com/osapi/
2.3 至少啟動一個任務
在main.lua里面,至少需要啟動一個任務,否則這個main就無所事事,是一個沒什么實際用處的主腳本了。
啟動一個任務的方法,分為2個步驟:
創建一個函數,把要做的事情,放在這個函數里面使用。這個函數必須是無限循環的,防止很快結束生命,不妨把這個函數命名為task1()。
調用sys.taskInit(task1),啟動這個函數,于是這個任務,就放在待運行的任務列表里面了。
2.4 初步理解sys.run()
sys.run() 是一個無限循環的函數。
main.lua的最后一行,只能是sys.run(),代表sys.run() 接管了LuatOS的所有的執行調度工作。
如下圖Air780EPM模組demo的LED示例:

sys.run()是LuatOS的運行中樞,后續會詳細介紹。
三、LuatOS腳本編程的核心要點
3.1 LuatOS實現的典型功能
LuatOS腳本是利用了Lua的語法,以及基于LuatOS核心庫和擴展庫提供的API,進行簡便的編程,實現如下功能:
1)實現和云端服務器通信;
2)采集外設的數據,控制外設設備;
3)實現人機交互,包括圖形交互和語音交互。
3.2 LuatOS的學習要點
要想寫好LuatOS的軟件,實現上述三個功能,除了逐漸掌握Lua的基本語法之外,還需要熟悉LuatOS的核心庫和擴展庫,這樣才能開發出優質的基于LuatOS的物聯網設備軟件。
學習的主要方法有如下幾個:
1)運行各個功能模塊的demo代碼;
2)閱讀docs.openluat.com的教程文檔;
3)遇到不懂問AI;
4)在QQ大群和微信大群進行技術交流。
3.3 一個典型的LuatOS實現
一個典型的LuatOS實現,包含main.lua入口文件和若干個功能模塊文件。
這里以Air780EPM開發板的蜂鳴器示例代碼為例,有兩個腳本文件以及一個管腳描述json文件。
- Air780EPM蜂鳴器應用示例 -

1)main.lua文件
作用是啟動一個任務,讓蜂鳴器響一秒鐘,再停頓一秒鐘,如此往復。

2)airbuzzer.lua
封裝了驅動蜂鳴器的功能實現。

3)pins_Air780EPM.json描述了本例使用到的管腳的功能,Air780EPM的26管腳,用作PWM4。

把上述幾個文件,連同Air780EPM最新的固件版本,用LuaTools建立一個工程,燒錄到Air780EPM開發板,就可以聽到蜂鳴器的播放聲音了。
在應用開發中,可根據實際需求靈活調整。
今天的內容就分享到這里了,歡迎感興趣的朋友加技術交流群一起探討。
審核編輯 黃宇
-
物聯網
+關注
關注
2945文章
47820瀏覽量
414955 -
編程
+關注
關注
90文章
3716瀏覽量
97186 -
LuatOS
+關注
關注
0文章
156瀏覽量
2696
發布評論請先 登錄
手把手教你學51單片機-C語言版
從0到1,10+年資深LabVIEW專家,手把手教你攻克機器視覺+深度學習(5000分鐘實戰課)
【迅為RK3568開發板NPU實戰】別再閑置你的NPU!手把手教你玩轉RKNN-Toolkit2 的使用
【RK3568 NPU實戰】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測Demo,附完整流程與效果
手把手教您完成LuatOS GNSS定位調試:實用操作指南
RT-Thread Nano硬核移植指南:手把手實現VGLite圖形驅動適配 | 技術集結
手把手教你如何調優Linux網絡參數
【精選直播】手把手教你做星閃無人機第九課:無線通信編程之 SLE 專題
正點原子Linux系列全新視頻教程來啦!手把手教你MP257開發板,讓您輕松入門!
手把手教你!利用Air780EPM快速體驗LuatOS的入門
KiCad直播活動(三):在 Windows上編譯KiCad 手把手教您編譯/構建 KiCad 源碼
LuatOS編程基礎教程:手把手帶你入門物聯網開發!
評論