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

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

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

审核编辑 黄宇

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

    关注

    2950

    文章

    48121

    浏览量

    418274
  • 编程
    +关注

    关注

    90

    文章

    3723

    浏览量

    97434
  • LuatOS
    +关注

    关注

    0

    文章

    171

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    手把手教你学51单片机-C语言版

    ,没有专业的人员带领大家入门。 基于这些原因,我们编写了这本《手把手教你学51单片机-C语言版》(第3版),并且配套了相关的视频教程、电子教案、源代码和实验开发板(详情浏览青岛金思特电子有限公司网站获取
    发表于 03-05 11:47

    从0到1,10+年资深LabVIEW专家,手把手教你攻克机器视觉+深度学习(5000分钟实战课)

    “告别检测系统能力缺陷!10+年LabVIEW视觉资深专家手把手教你:5000+分钟高清教程(含工具、算法原理、实战操作、项目优化全流程讲解)”——从传统视觉算法→深度学习建模→工业级部署"
    的头像 发表于 12-02 08:07 746次阅读
    从0到1,10+年资深LabVIEW专家,<b class='flag-5'>手把手</b>教你攻克机器视觉+深度学习(5000分钟实战课)

    明晚:睿擎联网实战:从传感器采集到MQTT上云全流程解析|问学直播

    核心研发工程师手把手带你掌握从硬件外设到云端通信的完整开发流程!直播预告▎直播主题睿擎平台联网实战:从外设
    的头像 发表于 11-25 18:31 537次阅读
    明晚:睿擎<b class='flag-5'>物</b><b class='flag-5'>联网</b>实战:从传感器采集到MQTT上云全流程解析|问学直播

    【直播预告】下周三晚8点|睿擎联网实战:从传感器采集到MQTT上云全流程解析

    核心研发工程师手把手带你掌握从硬件外设到云端通信的完整开发流程!直播预告▎直播主题睿擎平台联网实战:从外设
    的头像 发表于 11-21 17:07 2186次阅读
    【直播预告】下周三晚8点|睿擎<b class='flag-5'>物</b><b class='flag-5'>联网</b>实战:从传感器采集到MQTT上云全流程解析

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!

    迅为Hi3403开发板极速启航 | 手把手带你玩转核心例程,轻松上手AI视觉!
    的头像 发表于 11-19 13:56 1841次阅读
    迅为Hi3403<b class='flag-5'>开发</b>板极速启航 | <b class='flag-5'>手把手</b><b class='flag-5'>带你</b>玩转核心例程,轻松上手AI视觉!

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用

    【迅为RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用
    的头像 发表于 11-11 14:21 1511次阅读
    【迅为RK3568<b class='flag-5'>开发</b>板NPU实战】别再闲置你的NPU!<b class='flag-5'>手把手</b>教你玩转RKNN-Toolkit2 的使用

    【RK3568 NPU实战】别再闲置你的NPU!手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果

    【RK3568 NPU实战】别再闲置你的NPU!手把手带你用迅为资料跑通Android AI检测Demo,附完整流程与效果
    的头像 发表于 11-10 15:58 1242次阅读
    【RK3568 NPU实战】别再闲置你的NPU!<b class='flag-5'>手把手</b><b class='flag-5'>带你</b>用迅为资料跑通Android AI检测Demo,附完整流程与效果

    手把手教您完成LuatOS GNSS定位调试:实用操作指南

    想要快速掌握LuatOS GNSS定位调试?本文将以手把手的方式,带领您一步步完成调试流程。无论您是初学者还是有一定经验的开发者,这份实用操作指南都能帮助您有效提升调试效率,确保定位功能稳定可靠
    的头像 发表于 11-04 18:30 2242次阅读
    <b class='flag-5'>手把手</b>教您完成<b class='flag-5'>LuatOS</b> GNSS定位调试:实用操作指南

    学习联网怎么入门?

    景等。同时,学习联网的基本技术,如传感器技术、通信技术、云计算等,也是非常重要的。 其次,选择适合自己的学习方式也是入门学习联网的重
    发表于 10-14 10:34

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

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

    【教程】零基础!手把手教你使用STM32F4进行E22-400T22S编程通信

    零基础搭建本次实验将会使用到的软件是Keil和STM32CubeMX,没有这两个软件没有请在网上自行下载。本章节零基础手把手教会你搭建最快捷、最简单的STM32代码
    的头像 发表于 07-03 19:32 1809次阅读
    【教程】零基础!<b class='flag-5'>手把手</b>教你使用STM32F4进行E22-400T22S<b class='flag-5'>编程</b>通信

    【精选直播】手把手教你做PC第十二课:WIFI 驱动框架适配

    手把手教你做PC》系列直播课再度开播!《KaihongOS笔记本电脑开发实战第十二课:WIFI驱动框架适配》将于07月02日19:00开播↑扫码入群,领课程讲义资料包↑深开鸿资深工程师亲临直播间
    的头像 发表于 07-01 08:08 701次阅读
    【精选直播】<b class='flag-5'>手把手</b>教你做PC第十二课:WIFI 驱动框架适配

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

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

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

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

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

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