0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

零基础学习LuatOS编程:快速上手开发实战教程!

青山老竹农 ? 来源:jf_82863998 ? 作者:jf_82863998 ? 2025-06-13 17:27 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

无论你是刚接触物联网编程的新手,还是希望拓展技能的技术爱好者,本教程将为零基础的读者提供一条清晰的LuatOS学习路径。从安装开发工具到编写第一个程序,我们将通过实例讲解核心概念,助你快速实现从理论到实践的跨越。

学习LuatOS的主要方法之一是“运行各个功能模块的demo代码”,本期特别分享——LuatOS编程起步相关内容。

注意:本文档的读者,默认都已经了解初步的Lua语法。

如果不懂Lua语法的话,可以参考下方链接:http://docs.openluat.com/air780epm/common/lua_lesson/

一、底层固件怎么启动LuatOS脚本

1.1 脚本入口执行文件

简单来说,底层固件首先就是要找到main.lua这个文件,然后启动它。所有的其他功能,都需要在main.lua发起。

如下图Air780EPM模组demo的Camera示例:

wKgZO2hJCJWAB2m_AACFiWL506I554.png

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的文件开头,需要声明项目名和版本号,便于管理和调试。后续的远程升级,也需要用到项目名和版本号。

例如:

wKgZO2hJCO6AGpBwAABa3PJ0zms141.png

2.2 系统库和必要模块加载

在main.lua需要加载LuatOS的基础库和扩展库(如zbuff、onewire等),用来实现具体的业务逻辑。

例如:

wKgZPGhJCRyAeRW7AABncp6EczM176.png

截止至当前发文,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示例:

wKgZO2hJCWGAftryAAK_5I9m_rI940.png

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蜂鸣器应用示例 -

wKgZO2hJCamANEpmAAofWEk9Hdk698.png

1)main.lua文件

作用是启动一个任务,让蜂鸣器响一秒钟,再停顿一秒钟,如此往复。

wKgZO2hJCjKAFo9FAAGeRNeSo8E891.png


2)airbuzzer.lua

封装了驱动蜂鸣器的功能实现。

wKgZO2hJCleAWtbSAAFJNgsJPcg641.png

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

wKgZPGhJCo-AIj2zAACJJEMmhyU066.png


把上述几个文件,连同Air780EPM最新的固件版本,用LuaTools建立一个工程,烧录到Air780EPM开发板,就可以听到蜂鸣器的播放声音了。

在应用开发中,可根据实际需求灵活调整。

今天的内容就分享到这里了,欢迎感兴趣的朋友加技术交流群一起探讨。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2933

    文章

    46463

    浏览量

    395598
  • LuatOS
    +关注

    关注

    0

    文章

    104

    浏览量

    2338
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LuatOS编程基础教程:手把手带你入门物联网开发

    设备开发之旅。 学习LuatOS的主要方法之一是“运行各个功能模块的demo代码”,本期特别分享——LuatOS编程起步相关内容。 ? 注意
    的头像 发表于 06-11 13:03 ?340次阅读
    <b class='flag-5'>LuatOS</b><b class='flag-5'>编程</b>基础教程:手把手带你入门物联网<b class='flag-5'>开发</b>!

    快速入门——LuatOS:sys库多任务管理实战攻略!

    在嵌入式开发中,多任务管理是提升系统效率的关键。本教程专为快速入门设计,聚焦LuatOS的sys库,通过实战案例带你快速掌握多任务创建、调度
    的头像 发表于 05-29 14:36 ?312次阅读
    <b class='flag-5'>快速</b>入门——<b class='flag-5'>LuatOS</b>:sys库多任务管理<b class='flag-5'>实战</b>攻略!

    【「零基开发AI Agent」阅读体验】+读《零基开发AI Agent》掌握扣子平台开发智能体方法

    收到发烧友网站寄来的《零基开发AI Agent》这本书已经有好些天了,这段时间有幸拜读了一下全书,掌握了一个开发智能体的方法。 该书充分从零基础入手,先阐述了Agent是什么,它的基
    发表于 05-14 19:51

    【「零基开发AI Agent」阅读体验】+ 入门篇学习

    很高兴又有机会学习ai技术,这次试读的是「零基开发AI Agent」,作者叶涛、管锴、张心雨。 大模型的普及是近三年来的一件大事,万物皆可大模型已成为趋势。作为大模型开发应用中重要组
    发表于 05-02 09:26

    请求赠阅《零基开发AI Agent——手把手教你用扣子做智能体》

    博主好!致敬叶涛 管锴 张心雨三位AI具身智能-智能体方面的专家、导师! 《零基开发AI Agent——手把手教你用扣子做智能体》一不懂编程的多数大众也可以开发Agent,这意义深远
    发表于 04-10 12:16

    零基学习一阶RC低通滤波器(从原理到实践)

    *附件:零基学习一阶RC低通滤波器(从原理到实践).docx
    发表于 03-26 14:35

    零基开发AI Agent——手把手教你用扣子做智能体》

    零基开发AI Agent——手把手教你用扣子做智能体》是一本为普通人量身打造的AI开发指南。它不仅深入浅出地讲解了Agent的概念和发展,还通过详细的工具介绍和实战案例,帮助读者
    发表于 03-18 12:03

    Vivado Tcl零基础入门与案例实战【高亚军编著】

    Vivado Tcl零基础入门与案例实战-高亚军编写
    发表于 01-14 11:13

    Open开发新方法!Lua语言快速学习

    很多朋友都问我不会Lua又想open开发,怎么办?我的答复是Lua先学起来,再看LuatOS具体应用示例,上手极快,感兴趣的朋友们,可以参照本文一起学。
    的头像 发表于 12-11 09:31 ?627次阅读
    Open<b class='flag-5'>开发</b>新方法!Lua语言<b class='flag-5'>快速</b><b class='flag-5'>学习</b>

    Air780E模组LuatOS开发实战 —— 手把手教你搞定数据打包解包

    本文要说的是低功耗4G模组Air780E的LuatOS开发实战,我将手把手教你搞定数据打包解包。
    的头像 发表于 12-03 11:17 ?691次阅读
    Air780E模组<b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b> —— 手把手教你搞定数据打包解包

    LuatOS开发之4G模组随机数(random)|实战指南

    本次学习实战是关于4G模组LuatOS开发的随机数示例指南,希望大家有所收获。
    的头像 发表于 11-30 09:51 ?864次阅读
    <b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>之4G模组随机数(random)|<b class='flag-5'>实战</b>指南

    零基础入门PCB工程师

    各位前辈大家好,零基础入门PCB工程师,有什么学习资料推荐吗?
    发表于 11-27 16:54

    Air780E模组的ADC之旅 LuatOS开发实例

    今天学习一个新的示例,关于Air780E模组LuatOS开发的ADC应用实例,希望大家有所收获。
    的头像 发表于 11-11 09:33 ?679次阅读
    Air780E模组的ADC之旅  <b class='flag-5'>LuatOS</b><b class='flag-5'>开发</b>实例

    零基础嵌入式开发学习路线

    “嵌入式开发”没有接触过的同学可能会不明觉厉,但是只要你了解了,感兴趣并且有一个正确的学习路线的话,零基础也能入门。给大家介绍一个简单易懂的学习路线,让你能够从
    发表于 10-25 15:55

    【「仓颉编程快速上手」阅读体验】+壹读后感

    了不同的应用场景,让你在学习的过程中能够了解到编程在实际生活中的广泛用途。 总的来说,《仓颉编程快速上手》是一本非常实用的
    发表于 09-06 20:12