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开发板,就可以听到蜂鸣器的播放声音了。

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

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

审核编辑 黄宇

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

    关注

    2939

    文章

    47312

    浏览量

    407569
  • LuatOS
    +关注

    关注

    0

    文章

    134

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LuatOS中PWM实现LED亮度调节与呼吸灯的实战教程

    PWM在LED亮度调节和呼吸灯效果实现方面有着广泛应用。在LuatOS环境中,如何高效运用PWM功能是开发者需要掌握的关键。本实战教程将通过具体案例,引导开发
    的头像 发表于 11-11 19:05 7058次阅读
    <b class='flag-5'>LuatOS</b>中PWM实现LED亮度调节与呼吸灯的<b class='flag-5'>实战</b>教程

    LuatOS AGPS 辅助定位开发实战教程

    、数据解析、定位模块调优等实战环节,附带完整代码与调试技巧,助开发快速上手。   一、AGPS 概述   AGPS(Assisted GPS,辅助全球卫星定位系统)通过移动网络预先获
    的头像 发表于 10-31 17:34 1002次阅读
    <b class='flag-5'>LuatOS</b> AGPS 辅助定位<b class='flag-5'>开发</b><b class='flag-5'>实战</b>教程

    零基础也能玩转TCP/IP?LuatOS上手全攻略

    TCP/IP看似复杂,但借助LuatOS的简化开发模式,即使没有网络编程经验,也能在短时间内轻松实现通信功能。本指南将带你一步步用LuatOS快速
    的头像 发表于 10-15 17:28 253次阅读
    <b class='flag-5'>零基</b>础也能玩转TCP/IP?<b class='flag-5'>LuatOS</b><b class='flag-5'>上手</b>全攻略

    快速掌握TCP/IP?LuatOS新手入门指南

    快速上手TCP/IP通信却不知从何开始?LuatOS开发者提供了简洁高效的开发路径。通过本指南的实操步骤,你将发现,实现网络连接其实比想
    的头像 发表于 10-15 17:27 443次阅读
    <b class='flag-5'>快速</b>掌握TCP/IP?<b class='flag-5'>LuatOS</b>新手入门指南

    无需硬件,LuatOS模拟器释放开发无限可能

    LuatOS PC模拟器以创新技术打破硬件限制,开发者无需购置专用设备,仅凭PC即可完成全流程开发。高效模拟内核确保运行稳定性,让创意不受硬件制约,加速技术落地进程。 ▼  PC模拟器快速
    的头像 发表于 09-18 13:57 344次阅读
    无需硬件,<b class='flag-5'>LuatOS</b>模拟器释放<b class='flag-5'>开发</b>无限可能

    告别硬件负担,LuatOS模拟器重塑开发成本与效率

     LuatOS PC模拟器以“硬件依赖”为核心优势,显著降低开发成本与时间消耗。开发者无需为设备兼容性发愁,即可在模拟环境中高效完成项目开发
    的头像 发表于 09-15 17:18 573次阅读
    告别硬件负担,<b class='flag-5'>LuatOS</b>模拟器重塑<b class='flag-5'>开发</b>成本与效率

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

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

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

    在嵌入式开发中,多任务管理是提升系统效率的关键。本教程专为快速入门设计,聚焦LuatOS的sys库,通过实战案例带你快速掌握多任务创建、调度
    的头像 发表于 05-29 14:36 586次阅读
    <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 894次阅读
    Open<b class='flag-5'>开发</b>新方法!Lua语言<b class='flag-5'>快速</b><b class='flag-5'>学习</b>