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

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

3天内不再提示

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

合宙LuatOS ? 来源:合宙LuatOS ? 作者:合宙LuatOS ? 2025-06-11 13:03 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对于渴望进入物联网开发领域的初学者来说,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示例:

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

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

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

审核编辑 黄宇

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

    关注

    2932

    文章

    46349

    浏览量

    394235
  • 编程
    +关注

    关注

    88

    文章

    3689

    浏览量

    95389
  • LuatOS
    +关注

    关注

    0

    文章

    104

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内核与Finsh组件进行移植,下篇则教您改写S
    的头像 发表于 07-17 14:40 ?2228次阅读
    RT-Thread Nano硬核移植指南:<b class='flag-5'>手把手</b>实现VGLite图形驱动适配 | 技术集结

    手把手教你如何调优Linux网络参数

    在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何调优Linux网络参数,支撑百万级并发连接。
    的头像 发表于 05-29 09:21 ?264次阅读

    【精选直播】手把手教你做星闪无人机第九课:无线通信编程之 SLE 专题

    手把手教你做星闪无人机》系列直播课再度开播!《KaihongOS星闪无人机开发实战⑨:无线通信编程之SLE专题》↑扫码入群,领课程讲义资料包↑深开鸿资深工程师亲临直播间依托笔电实战产品案例细致剖析
    的头像 发表于 05-27 08:05 ?195次阅读
    【精选直播】<b class='flag-5'>手把手</b>教你做星闪无人机第九课:无线通信<b class='flag-5'>编程</b>之 SLE 专题

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门

    正点原子Linux系列全新视频教程来啦!手把手教你MP257开发板,让您轻松入门! 一、视频观看 正点原子手把手教你学STM32MP257-第1期:https://www.bilib
    发表于 05-16 10:42

    手把手教你!利用Air780EPM快速体验LuatOS入门

    联网开发领域,选择合适的硬件平台与操作系统是项目成功的关键。本文将带领你从零开始,通过详细的步骤与示例代码,掌握Air780EPM与LuatOS
    的头像 发表于 03-25 16:38 ?281次阅读
    <b class='flag-5'>手把手</b>教你!利用Air780EPM快速体验<b class='flag-5'>LuatOS</b>的<b class='flag-5'>入门</b>

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

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

    手把手教你做星闪无人机—KaihongOS星闪无人机开发实战》系列课程课件汇总

    为助力开发者迅速掌握『KaihongOS轻量系统开发技术』与『星闪无线通信技术』,实现快速上手与深度体验,“开鸿Developer社区”携手“电子发烧友”再次联合推出《手把手教你做星闪无人机
    发表于 03-18 10:33

    手把手教你做PC-KaihongOS笔记本电脑开发实战》课件汇总

    ”携手“电子发烧友”联合推出了 《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。 此次首发内容是《手把手教你做PC-KaihongOS笔记本电脑
    发表于 03-18 10:25

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!

    开发者集结!《手把手教你做星闪无人机》第二课开讲啦!
    的头像 发表于 02-17 19:40 ?405次阅读
    <b class='flag-5'>开发</b>者集结!《<b class='flag-5'>手把手</b>教你做星闪无人机》第二课开讲啦!

    手把手带你入门AWStudio运动控制编程

    导读面对一台ZMC600E运动控制器与多台伺服电机,我们该怎样让它工作起来?本文带你了解PLCOPen,并详细讲解如何使用AWStudio控制电机运动。在自动化领域,运动控制是一件很复杂的事情,包含
    的头像 发表于 02-10 11:38 ?720次阅读
    <b class='flag-5'>手把手</b><b class='flag-5'>带你</b><b class='flag-5'>入门</b>AWStudio运动控制<b class='flag-5'>编程</b>

    手把手教你做星闪无人机》即将开播,锁定15日晚七点!

    KaihongOS手把手系列直播课再度来袭为助力开发者迅速掌握『KaihongOS轻量系统开发技术』与『星闪无线通信技术』,实现快速上手与深度体验,“开鸿Developer社区”携手“手电子发烧友
    的头像 发表于 01-13 19:42 ?560次阅读
    《<b class='flag-5'>手把手</b>教你做星闪无人机》即将开播,锁定15日晚七点!

    手把手教你做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑开发实战

    ”携手“电子发烧友”联合推出了《KaihongOS手把手系列直播课程》,该系列课程以实际产品为案例,详细讲解每个产品的开发全流程。此次首发内容是《手把手教你做PC-
    的头像 发表于 01-06 20:46 ?604次阅读
    《<b class='flag-5'>手把手</b>教你做PC》课程即将启动!深开鸿引领探索KaihongOS笔记本电脑<b class='flag-5'>开发</b>实战

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

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

    【全新课程资料】正点原子《ESP32联网项目实战》培训课程资料上线!

    正点原子《ESP32联网项目实战》全新培训课程上线啦!正点原子工程师手把手教你学!通过多个项目实战,掌握ESP32联网项目的
    发表于 09-24 17:05

    手把手教你通过宏集联网工控屏&amp;网关进行协议转换,将底层PLC/传感器的数据转换为TCP协议并传输到用户

    手把手教你通过宏集联网工控屏&网关进行协议转换,将底层PLC/传感器的数据转换为TCP协议并传输到用户终端
    的头像 发表于 08-15 13:29 ?1166次阅读
    <b class='flag-5'>手把手</b>教你通过宏集<b class='flag-5'>物</b><b class='flag-5'>联网</b>工控屏&amp;网关进行协议转换,将底层PLC/传感器的数据转换为TCP协议并传输到用户