對于渴望進入物聯(lián)網(wǎng)開發(fā)領域的初學者來說,LuatOS是一個理想的起點。本教程將通過由淺入深的教學方式,從搭建開發(fā)環(huán)境、理解核心API到編寫簡單應用,逐步引導你掌握LuatOS編程的核心技能,開啟智能設備開發(fā)之旅。
學習LuatOS的主要方法之一是“運行各個功能模塊的demo代碼”,本期特別分享——LuatOS編程起步相關內容。
注意:本文檔的讀者,默認都已經了解初步的Lua語法。
如果不懂Lua語法的話,可以參考下方鏈接:http://docs.openluat.com/air780epm/common/lua_lesson/
一、底層固件怎么啟動LuatOS腳本
1.1 腳本入口執(zhí)行文件
簡單來說,底層固件首先就是要找到main.lua這個文件,然后啟動它。所有的其他功能,都需要在main.lua發(fā)起。
如下圖Air780EPM模組demo的Camera示例:
1.2 LuatOS啟動腳本的詳細流程
進一步詳細的說,LuatOS的底層固件啟動腳本的流程如下:
啟動底層core:系統(tǒng)上電或者復位后,底層固件(core)首先啟動,進行硬件初始化、內存分配、文件系統(tǒng)掛載等系統(tǒng)底層的基礎操作。
加載Lua虛擬機:底層固件加載Lua虛擬機,為執(zhí)行 Lua腳本提供運行環(huán)境;
加載main.lua:自動查找并加載存儲在設備上的主腳本main.lua;
執(zhí)行腳本代碼:按順序執(zhí)行main.lua腳本中的代碼,通常包括任務創(chuàng)建(如 sys.taskInit)、功能初始化等。
進入任務調度:腳本最后通常調用sys.run(),進入事件循環(huán)和多任務調度,正式運行用戶邏輯。
1.3 怎么把固件和腳本燒錄到硬件:
使用官方LuatTools,將底層固件和用戶Lua腳本燒錄到合宙模組或者引擎硬件;上電后,底層固件自動完成上述啟動和腳本加載流程,無需手動干預。
Luatools下載及使用參見:https://docs.openluat.com/air780epm/common/Luatools/
二、main.lua需要包含哪些部分?
2.1 項目信息聲明
在main.lua的文件開頭,需要聲明項目名和版本號,便于管理和調試。后續(xù)的遠程升級,也需要用到項目名和版本號。
例如:
2.2 系統(tǒng)庫和必要模塊加載
在main.lua需要加載LuatOS的基礎庫和擴展庫(如zbuff、onewire等),用來實現(xiàn)具體的業(yè)務邏輯。
例如:
截止至當前發(fā)文,LuatOS已提供74個核心庫和55個擴展庫。
最新LuatOS庫函數(shù)開發(fā)手冊詳見:https://docs.openluat.com/osapi/
2.3 至少啟動一個任務
在main.lua里面,至少需要啟動一個任務,否則這個main就無所事事,是一個沒什么實際用處的主腳本了。
啟動一個任務的方法,分為2個步驟:
創(chuàng)建一個函數(shù),把要做的事情,放在這個函數(shù)里面使用。這個函數(shù)必須是無限循環(huán)的,防止很快結束生命,不妨把這個函數(shù)命名為task1()。
調用sys.taskInit(task1),啟動這個函數(shù),于是這個任務,就放在待運行的任務列表里面了。
2.4 初步理解sys.run()
sys.run() 是一個無限循環(huán)的函數(shù)。
main.lua的最后一行,只能是sys.run(),代表sys.run() 接管了LuatOS的所有的執(zhí)行調度工作。
如下圖Air780EPM模組demo的LED示例:
sys.run()是LuatOS的運行中樞,后續(xù)會詳細介紹。
三、LuatOS腳本編程的核心要點
3.1 LuatOS實現(xiàn)的典型功能
LuatOS腳本是利用了Lua的語法,以及基于LuatOS核心庫和擴展庫提供的API,進行簡便的編程,實現(xiàn)如下功能:
1)實現(xiàn)和云端服務器通信;
2)采集外設的數(shù)據(jù),控制外設設備;
3)實現(xiàn)人機交互,包括圖形交互和語音交互。
3.2 LuatOS的學習要點
要想寫好LuatOS的軟件,實現(xiàn)上述三個功能,除了逐漸掌握Lua的基本語法之外,還需要熟悉LuatOS的核心庫和擴展庫,這樣才能開發(fā)出優(yōu)質的基于LuatOS的物聯(lián)網(wǎng)設備軟件。
學習的主要方法有如下幾個:
1)運行各個功能模塊的demo代碼;
2)閱讀docs.openluat.com的教程文檔;
3)遇到不懂問AI;
4)在QQ大群和微信大群進行技術交流。
3.3 一個典型的LuatOS實現(xiàn)
一個典型的LuatOS實現(xiàn),包含main.lua入口文件和若干個功能模塊文件。
這里以Air780EPM開發(fā)板的蜂鳴器示例代碼為例,有兩個腳本文件以及一個管腳描述json文件。
- Air780EPM蜂鳴器應用示例 -
1)main.lua文件
作用是啟動一個任務,讓蜂鳴器響一秒鐘,再停頓一秒鐘,如此往復。
2)airbuzzer.lua
封裝了驅動蜂鳴器的功能實現(xiàn)。
3)pins_Air780EPM.json描述了本例使用到的管腳的功能,Air780EPM的26管腳,用作PWM4。
把上述幾個文件,連同Air780EPM最新的固件版本,用LuaTools建立一個工程,燒錄到Air780EPM開發(fā)板,就可以聽到蜂鳴器的播放聲音了。
在應用開發(fā)中,可根據(jù)實際需求靈活調整。
今天的內容就分享到這里了,歡迎感興趣的朋友加技術交流群一起探討。
審核編輯 黃宇
-
物聯(lián)網(wǎng)
+關注
關注
2927文章
45949瀏覽量
388593 -
編程
+關注
關注
88文章
3685瀏覽量
94908 -
LuatOS
+關注
關注
0文章
95瀏覽量
2182
發(fā)布評論請先 登錄
手把手教你如何調優(yōu)Linux網(wǎng)絡參數(shù)
【精選直播】手把手教你做星閃無人機第九課:無線通信編程之 SLE 專題

正點原子Linux系列全新視頻教程來啦!手把手教你MP257開發(fā)板,讓您輕松入門!
手把手教你!利用Air780EPM快速體驗LuatOS的入門

KiCad直播活動(三):在 Windows上編譯KiCad 手把手教您編譯/構建 KiCad 源碼

《零基礎開發(fā)AI Agent——手把手教你用扣子做智能體》
《手把手教你做星閃無人機—KaihongOS星閃無人機開發(fā)實戰(zhàn)》系列課程課件匯總
《手把手教你做PC-KaihongOS筆記本電腦開發(fā)實戰(zhàn)》課件匯總
手把手帶你入門AWStudio運動控制編程

《手把手教你做星閃無人機》即將開播,鎖定15日晚七點!

《手把手教你做PC》課程即將啟動!深開鴻引領探索KaihongOS筆記本電腦開發(fā)實戰(zhàn)

Air780E模組LuatOS開發(fā)實戰(zhàn) —— 手把手教你搞定數(shù)據(jù)打包解包

【全新課程資料】正點原子《ESP32物聯(lián)網(wǎng)項目實戰(zhàn)》培訓課程資料上線!
手把手教你通過宏集物聯(lián)網(wǎng)工控屏&網(wǎng)關進行協(xié)議轉換,將底層PLC/傳感器的數(shù)據(jù)轉換為TCP協(xié)議并傳輸?shù)接脩?/a>

評論