一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LuatOS編程基礎(chǔ)教程:手把手帶你入門物聯(lián)網(wǎng)開發(fā)!

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2025-06-11 13:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對于渴望進入物聯(lián)網(wǎng)開發(fā)領(lǐng)域的初學(xué)者來說,LuatOS是一個理想的起點。本教程將通過由淺入深的教學(xué)方式,從搭建開發(fā)環(huán)境、理解核心API到編寫簡單應(yīng)用,逐步引導(dǎo)你掌握LuatOS編程的核心技能,開啟智能設(shè)備開發(fā)之旅。

學(xué)習(xí)LuatOS的主要方法之一是“運行各個功能模塊的demo代碼”,本期特別分享——LuatOS編程起步相關(guān)內(nèi)容。

注意:本文檔的讀者,默認(rèn)都已經(jīng)了解初步的Lua語法。

如果不懂Lua語法的話,可以參考下方鏈接:http://docs.openluat.com/air780epm/common/lua_lesson/

一、底層固件怎么啟動LuatOS腳本

1.1 腳本入口執(zhí)行文件

簡單來說,底層固件首先就是要找到main.lua這個文件,然后啟動它。所有的其他功能,都需要在main.lua發(fā)起。

如下圖Air780EPM模組demo的Camera示例:

wKgZO2hJCJWAB2m_AACFiWL506I554.png

1.2 LuatOS啟動腳本的詳細流程

進一步詳細的說,LuatOS的底層固件啟動腳本的流程如下:

啟動底層core:系統(tǒng)上電或者復(fù)位后,底層固件(core)首先啟動,進行硬件初始化、內(nèi)存分配、文件系統(tǒng)掛載等系統(tǒng)底層的基礎(chǔ)操作。

加載Lua虛擬機:底層固件加載Lua虛擬機,為執(zhí)行 Lua腳本提供運行環(huán)境;

加載main.lua:自動查找并加載存儲在設(shè)備上的主腳本main.lua;

執(zhí)行腳本代碼:按順序執(zhí)行main.lua腳本中的代碼,通常包括任務(wù)創(chuàng)建(如 sys.taskInit)、功能初始化等。

進入任務(wù)調(diào)度:腳本最后通常調(diào)用sys.run(),進入事件循環(huán)和多任務(wù)調(diào)度,正式運行用戶邏輯。

1.3 怎么把固件和腳本燒錄到硬件:

使用官方LuatTools,將底層固件和用戶Lua腳本燒錄到合宙模組或者引擎硬件;上電后,底層固件自動完成上述啟動和腳本加載流程,無需手動干預(yù)。

Luatools下載及使用參見:https://docs.openluat.com/air780epm/common/Luatools/

二、main.lua需要包含哪些部分?

2.1 項目信息聲明

在main.lua的文件開頭,需要聲明項目名和版本號,便于管理和調(diào)試。后續(xù)的遠程升級,也需要用到項目名和版本號。

例如:

wKgZO2hJCO6AGpBwAABa3PJ0zms141.png

2.2 系統(tǒng)庫和必要模塊加載

在main.lua需要加載LuatOS的基礎(chǔ)庫和擴展庫(如zbuff、onewire等),用來實現(xiàn)具體的業(yè)務(wù)邏輯。

例如:

wKgZPGhJCRyAeRW7AABncp6EczM176.png

截止至當(dāng)前發(fā)文,LuatOS已提供74個核心庫和55個擴展庫。

最新LuatOS庫函數(shù)開發(fā)手冊詳見:https://docs.openluat.com/osapi/

2.3 至少啟動一個任務(wù)

在main.lua里面,至少需要啟動一個任務(wù),否則這個main就無所事事,是一個沒什么實際用處的主腳本了。

啟動一個任務(wù)的方法,分為2個步驟:

創(chuàng)建一個函數(shù),把要做的事情,放在這個函數(shù)里面使用。這個函數(shù)必須是無限循環(huán)的,防止很快結(jié)束生命,不妨把這個函數(shù)命名為task1()。

調(diào)用sys.taskInit(task1),啟動這個函數(shù),于是這個任務(wù),就放在待運行的任務(wù)列表里面了。


2.4 初步理解sys.run()

sys.run() 是一個無限循環(huán)的函數(shù)。

main.lua的最后一行,只能是sys.run(),代表sys.run() 接管了LuatOS的所有的執(zhí)行調(diào)度工作。

如下圖Air780EPM模組demo的LED示例:

wKgZO2hJCWGAftryAAK_5I9m_rI940.png

sys.run()是LuatOS的運行中樞,后續(xù)會詳細介紹。

三、LuatOS腳本編程的核心要點

3.1 LuatOS實現(xiàn)的典型功能

LuatOS腳本是利用了Lua的語法,以及基于LuatOS核心庫和擴展庫提供的API,進行簡便的編程,實現(xiàn)如下功能:

1)實現(xiàn)和云端服務(wù)器通信

2)采集外設(shè)的數(shù)據(jù),控制外設(shè)設(shè)備;

3)實現(xiàn)人機交互,包括圖形交互和語音交互。

3.2 LuatOS的學(xué)習(xí)要點

要想寫好LuatOS的軟件,實現(xiàn)上述三個功能,除了逐漸掌握Lua的基本語法之外,還需要熟悉LuatOS的核心庫和擴展庫,這樣才能開發(fā)出優(yōu)質(zhì)的基于LuatOS的物聯(lián)網(wǎng)設(shè)備軟件。

學(xué)習(xí)的主要方法有如下幾個:

1)運行各個功能模塊的demo代碼;

2)閱讀docs.openluat.com的教程文檔;

3)遇到不懂問AI;

4)在QQ大群和微信大群進行技術(shù)交流。

3.3 一個典型的LuatOS實現(xiàn)

一個典型的LuatOS實現(xiàn),包含main.lua入口文件和若干個功能模塊文件。

這里以Air780EPM開發(fā)板的蜂鳴器示例代碼為例,有兩個腳本文件以及一個管腳描述json文件。

- Air780EPM蜂鳴器應(yīng)用示例 -

wKgZO2hJCamANEpmAAofWEk9Hdk698.png

1)main.lua文件

作用是啟動一個任務(wù),讓蜂鳴器響一秒鐘,再停頓一秒鐘,如此往復(fù)。

wKgZO2hJCjKAFo9FAAGeRNeSo8E891.png


2)airbuzzer.lua

封裝了驅(qū)動蜂鳴器的功能實現(xiàn)。

wKgZO2hJCleAWtbSAAFJNgsJPcg641.png

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

wKgZPGhJCo-AIj2zAACJJEMmhyU066.png


把上述幾個文件,連同Air780EPM最新的固件版本,用LuaTools建立一個工程,燒錄到Air780EPM開發(fā)板,就可以聽到蜂鳴器的播放聲音了。

在應(yīng)用開發(fā)中,可根據(jù)實際需求靈活調(diào)整。

今天的內(nèi)容就分享到這里了,歡迎感興趣的朋友加技術(shù)交流群一起探討。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2931

    文章

    46264

    瀏覽量

    392929
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95289
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    2279
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    RT-Thread Nano硬核移植指南:手把手實現(xiàn)VGLite圖形驅(qū)動適配 | 技術(shù)集結(jié)

    VGLite是NXP提供的輕量級2D圖形API,本文將手把手帶你實現(xiàn)VGLite圖形驅(qū)動適配RT-Thread。文章分為上、下兩篇,將手把手教您移植。上篇對RT-ThreadNano內(nèi)核與Finsh組件進行移植,下篇則教您改寫S
    的頭像 發(fā)表于 07-17 14:40 ?1020次閱讀
    RT-Thread Nano硬核移植指南:<b class='flag-5'>手把手</b>實現(xiàn)VGLite圖形驅(qū)動適配 | 技術(shù)集結(jié)

    手把手教你如何調(diào)優(yōu)Linux網(wǎng)絡(luò)參數(shù)

    在高并發(fā)網(wǎng)絡(luò)服務(wù)場景中,Linux內(nèi)核的默認(rèn)網(wǎng)絡(luò)參數(shù)往往無法滿足需求,導(dǎo)致性能瓶頸、連接超時甚至服務(wù)崩潰。本文基于真實案例分析,從參數(shù)解讀、問題診斷到優(yōu)化實踐,手把手教你如何調(diào)優(yōu)Linux網(wǎng)絡(luò)參數(shù),支撐百萬級并發(fā)連接。
    的頭像 發(fā)表于 05-29 09:21 ?222次閱讀

    【精選直播】手把手教你做星閃無人機第九課:無線通信編程之 SLE 專題

    手把手教你做星閃無人機》系列直播課再度開播!《KaihongOS星閃無人機開發(fā)實戰(zhàn)⑨:無線通信編程之SLE專題》↑掃碼入群,領(lǐng)課程講義資料包↑深開鴻資深工程師親臨直播間依托筆電實戰(zhàn)產(chǎn)品案例細致剖析
    的頭像 發(fā)表于 05-27 08:05 ?161次閱讀
    【精選直播】<b class='flag-5'>手把手</b>教你做星閃無人機第九課:無線通信<b class='flag-5'>編程</b>之 SLE 專題

    正點原子Linux系列全新視頻教程來啦!手把手教你MP257開發(fā)板,讓您輕松入門!

    正點原子Linux系列全新視頻教程來啦!手把手教你MP257開發(fā)板,讓您輕松入門! 一、視頻觀看 正點原子手把手教你學(xué)STM32MP257-第1期:https://www.bilib
    發(fā)表于 05-16 10:42

    手把手教你!利用Air780EPM快速體驗LuatOS入門

    聯(lián)網(wǎng)開發(fā)領(lǐng)域,選擇合適的硬件平臺與操作系統(tǒng)是項目成功的關(guān)鍵。本文將帶領(lǐng)你從零開始,通過詳細的步驟與示例代碼,掌握Air780EPM與LuatOS
    的頭像 發(fā)表于 03-25 16:38 ?258次閱讀
    <b class='flag-5'>手把手</b>教你!利用Air780EPM快速體驗<b class='flag-5'>LuatOS</b>的<b class='flag-5'>入門</b>

    《零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》

    《零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》是一本為普通人量身打造的AI開發(fā)指南。它不僅深入淺出地講解了Agent的概念和發(fā)展,還通過詳細的工具介紹和實戰(zhàn)案例,幫助讀者快速掌握
    發(fā)表于 03-18 12:03

    手把手教你做星閃無人機—KaihongOS星閃無人機開發(fā)實戰(zhàn)》系列課程課件匯總

    為助力開發(fā)者迅速掌握『KaihongOS輕量系統(tǒng)開發(fā)技術(shù)』與『星閃無線通信技術(shù)』,實現(xiàn)快速上手與深度體驗,“開鴻Developer社區(qū)”攜手“電子發(fā)燒友”再次聯(lián)合推出《手把手教你做星閃無人機
    發(fā)表于 03-18 10:33

    手把手教你做PC-KaihongOS筆記本電腦開發(fā)實戰(zhàn)》課件匯總

    ”攜手“電子發(fā)燒友”聯(lián)合推出了 《KaihongOS手把手系列直播課程》,該系列課程以實際產(chǎn)品為案例,詳細講解每個產(chǎn)品的開發(fā)全流程。 此次首發(fā)內(nèi)容是《手把手教你做PC-KaihongOS筆記本電腦
    發(fā)表于 03-18 10:25

    開發(fā)者集結(jié)!《手把手教你做星閃無人機》第二課開講啦!

    開發(fā)者集結(jié)!《手把手教你做星閃無人機》第二課開講啦!
    的頭像 發(fā)表于 02-17 19:40 ?375次閱讀
    <b class='flag-5'>開發(fā)</b>者集結(jié)!《<b class='flag-5'>手把手</b>教你做星閃無人機》第二課開講啦!

    手把手帶你入門AWStudio運動控制編程

    導(dǎo)讀面對一臺ZMC600E運動控制器與多臺伺服電機,我們該怎樣讓它工作起來?本文帶你了解PLCOPen,并詳細講解如何使用AWStudio控制電機運動。在自動化領(lǐng)域,運動控制是一件很復(fù)雜的事情,包含
    的頭像 發(fā)表于 02-10 11:38 ?698次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>帶你</b><b class='flag-5'>入門</b>AWStudio運動控制<b class='flag-5'>編程</b>

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

    KaihongOS手把手系列直播課再度來襲為助力開發(fā)者迅速掌握『KaihongOS輕量系統(tǒng)開發(fā)技術(shù)』與『星閃無線通信技術(shù)』,實現(xiàn)快速上手與深度體驗,“開鴻Developer社區(qū)”攜手“手電子發(fā)燒友
    的頭像 發(fā)表于 01-13 19:42 ?527次閱讀
    《<b class='flag-5'>手把手</b>教你做星閃無人機》即將開播,鎖定15日晚七點!

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

    ”攜手“電子發(fā)燒友”聯(lián)合推出了《KaihongOS手把手系列直播課程》,該系列課程以實際產(chǎn)品為案例,詳細講解每個產(chǎn)品的開發(fā)全流程。此次首發(fā)內(nèi)容是《手把手教你做PC-
    的頭像 發(fā)表于 01-06 20:46 ?588次閱讀
    《<b class='flag-5'>手把手</b>教你做PC》課程即將啟動!深開鴻引領(lǐng)探索KaihongOS筆記本電腦<b class='flag-5'>開發(fā)</b>實戰(zhàn)

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

    本文要說的是低功耗4G模組Air780E的LuatOS開發(fā)實戰(zhàn),我將手把手教你搞定數(shù)據(jù)打包解包。
    的頭像 發(fā)表于 12-03 11:17 ?642次閱讀
    Air780E模組<b class='flag-5'>LuatOS</b><b class='flag-5'>開發(fā)</b>實戰(zhàn) —— <b class='flag-5'>手把手</b>教你搞定數(shù)據(jù)打包解包

    【全新課程資料】正點原子《ESP32聯(lián)網(wǎng)項目實戰(zhàn)》培訓(xùn)課程資料上線!

    正點原子《ESP32聯(lián)網(wǎng)項目實戰(zhàn)》全新培訓(xùn)課程上線啦!正點原子工程師手把手教你學(xué)!通過多個項目實戰(zhàn),掌握ESP32聯(lián)網(wǎng)項目的
    發(fā)表于 09-24 17:05

    手把手教你通過宏集聯(lián)網(wǎng)工控屏&amp;網(wǎng)關(guān)進行協(xié)議轉(zhuǎn)換,將底層PLC/傳感器的數(shù)據(jù)轉(zhuǎn)換為TCP協(xié)議并傳輸?shù)接脩?/a>

    手把手教你通過宏集聯(lián)網(wǎng)工控屏&網(wǎng)關(guān)進行協(xié)議轉(zhuǎn)換,將底層PLC/傳感器的數(shù)據(jù)轉(zhuǎn)換為TCP協(xié)議并傳輸?shù)接脩艚K端
    的頭像 發(fā)表于 08-15 13:29 ?1120次閱讀
    <b class='flag-5'>手把手</b>教你通過宏集<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>工控屏&amp;網(wǎng)關(guān)進行協(xié)議轉(zhuǎn)換,將底層PLC/傳感器的數(shù)據(jù)轉(zhuǎn)換為TCP協(xié)議并傳輸?shù)接脩? />    </a>
</div>                    </div>
                    <div   id=