合宙Air724UG二次开发(1):搭建开发环境


文章目录

  • 合宙Air724UG二次开发(1):搭建开发环境
  • 1. 系统环境
  • 2. 嵌入式4G发展现状
  • 3. 合宙Air724UG支持Lua开发实现原理
  • 4. 合宙Air724UG二次开发环境搭建
  • 4.1 资料下载
  • 4.2 安装USB驱动
  • 4.3 编辑器工具安装
  • 4.4 下载调试工具安装和使用
  • 4.4.1 Luat IDE
  • 4.4.2 LuaTools工具
  • 4.3 烧录底层core固件的选择
  • 5.Lua脚本开发


1. 系统环境

  • 系统:win10
  • 使用板卡:EVB_Air724UG_A13
  • 下载工具:
  • 开发语言:类似LUA的Luat语言
  • 本文编辑时间:20220422

2. 嵌入式4G发展现状

  1. 随着2G网络逐渐退出市场,现在开发移动网络通信只能选4G网络模块。
  2. 常见的移动网络通信的方式有:
  • MCU利用串口+AT网络模块实现移动网络开发。优缺点:MCU+AT开发周期短,但是相对pcb设计面积、硬件成本、运行功耗都比较大。
  • ARM(支持USB HOME)+USB接口网络模块。优缺点:4G速度可以较快传输,4G模块一般都采用Mini PCIE接口,具有较好的通用性,但是要求ARM处理器带USB HOME功能,程序编写比较复杂,这种接口4G模块比较贵。
  • 直接在网络模块上二次开发。优缺点:最省硬件成本,功耗和pcb体积也最小,但是由于移动网络通信芯片厂商不是主流MCU厂商,这导致二次开发往往需要学习新的语言和开发方式,开发周期较长,开发出来的产品,需要较长时间的测试,提防出现bug。

对于支持AT的网络模块,现在可选择的型号非常多,基本除了最基本的命令外,每家的AT标准个不相同,需要对照相应的手册去开发。

USB网络模块,大部分都会选择Mini PCIE接口,通过MCU的USB HOME功能,来实现数据较快传输。

二次开发需借助芯片官方的固件,截止到20220422现在当属合宙移远两家最为火爆。合宙使用类似LUA语言的开发方式,移远使用类似MicroPython语言的方式开发,都需要学习成本,但学习后会发现,使用这类方法开发非常快和容易。

我相信随着时间的发展,嵌入式4G领域会发展的越来越好,可能会出现更好的选择和更友好的开发方式。

本文介绍使用合宙Air724UG利用LUA语言二次开发的方式。我购买的是EVB_Air724UG_A13板卡,为了演示方便,我直接上我购买的连接和图:

某宝链接和板卡图:

esp32c3 合宙简版 可烧录吗 合宙724ug连接stm32_esp32c3 合宙简版 可烧录吗

3. 合宙Air724UG支持Lua开发实现原理

Air724UG是基于Lua语言设计的 LuatOS-Air框架进行二次开发的, LuatOS-Air = Lua + AT, LuatOS-Air是合宙推出的物联网开源架构,依托于通信模块做简易快捷的开发,将传统的AT命令用Lua语言封装成API,并提供各种功能应用的demo,大大减少用户的开发成本。详细的LuatOS-Air框架学习链接

Lua脚本是内嵌在模块基础软件core中运行的(core编译生成的文件是.lod文件),Lod中有支持Lua运行的环境,Lua脚本就在这个环境中运行。脚本实现功能是通过API(对AT命令进行了封装)实现的。在模块内部,Lua发出AT命令,并通过虚拟的uart.ATC 口和Lod之间进行AT命令的交互。即Lua发出AT命令,Lod接收后进行解析并返回AT命令运行结果,不需要上位机(一般是单片机)通过物理串口给模块发AT命令,这样就节省了单片机的花费。

内部原理大概流程图:

esp32c3 合宙简版 可烧录吗 合宙724ug连接stm32_Lua_02

名称解释

底层软件:也叫基础软件,位于/core,用C语言开发完成,支撑Lua的运行。

库脚本:lib目录中的“库脚本”(所有项目都应该使用)

应用脚本:用户自己编写的“应用脚本”(例如demo目录下的脚本)

4. 合宙Air724UG二次开发环境搭建

4.1 资料下载

Air724UG入门资料包,包括了几乎Air724UG相关的全部资料。

官方编写了《LuatOS-Air模块应用手册》文档链接;里面有写二次开发环境搭建的过程,LuatOS-Air二次开发教程指南文档链接

软件环境:我整理了下载顺序,基本步骤如下:

  1. USB驱动:[Air720UH/Air724UG系列 PC 端 USB 驱动](https://cdn.openluat-luatcommunity.openluat.com/attachment/20200808183454135_sw_file_20200303181718_8910_module_usb_driver_signed _20200303_hezhou.7z)
  2. 下载固件开发包:LuatOS-Air的软件包分为底层core和上层的lua脚本底层软件+上层脚本
  3. 下载开发工具
    推荐使用:LuatIDE,但是官网只有安装教程,而使用教程则和LuatIDE源码一起托管到gitee上了Luat IDE源码的Gitee链接
    不在推荐使用:Luat下载调试工具v2(luatools工具),但是官网的下载调试使用的都是这种方式。
  4. 编辑工具:lua编程软件建议vscode,vscode和lua插件的安装教程注意:vscode为Lua脚本编辑工具,仅仅具有脚本代码编辑功能,没有编译功能;
    Lua为解释性语言,在LuatOS-Air开发方式下,开发调试过程如下:
  1. 使用vscode编写Lua脚本
  2. 使用Luatools烧录Lua脚本
  3. 使用Luatools输出脚本运行日志

对于下载的资料的作用详细叙述,请参考我的合宙Air724UG二次开发(2):资料描述这篇文章。

硬件环境:Air724U系列或者Air720U系列模块,或者对应的开发板。

Air系列cat1模块是通过USB接口进行下载调试,如下图:

esp32c3 合宙简版 可烧录吗 合宙724ug连接stm32_单片机_03

如果是使用开发板请参考相应的开发板使用手册:EVB_Air724UG_A13开发板使用指南 ,这个文档里面有非常详细的开发板模块说明,引脚定义,下载配置等,这个手册必须认真阅读。

4.2 安装USB驱动

先查看开发板使用指南,将usb线插入正确的usb接口,将拨码开关打到正确的位置,具体参考EVB_Air724UG_A13EVB_Air724UG_A13开发板使用指南,下面只是简略截图;

解压下载的USB驱动,如下图:

esp32c3 合宙简版 可烧录吗 合宙724ug连接stm32_单片机_04

安装完成后:

esp32c3 合宙简版 可烧录吗 合宙724ug连接stm32_二次开发_05

4.3 编辑器工具安装

合宙推荐程序lua编程软件使用vscode。

下面附带vscode安装合lua插件的安装教程,由于比较简单,这里就不再叙述了。

4.4 下载调试工具安装和使用

下载调试工具可以下载烧录core固件和用户用lua编写的程序。

合宙给出了两种选择,任选其一就可以:

4.4.1 Luat IDE

Luat IDE也是vscode下的一个插件,是由合宙家开发的,官网提供两种安装方式,分别是在vscode市场安装和在Gitee下载安装。

Luat IDE的安装教程;

Luat IDE的使用教程并没有写在合宙的社区里面,而是在托管的Gitee的Luat IDE源码里面,Luat IDE源码的Gitee链接;

4.4.2 LuaTools工具

合宙官方Luatools V2下载调试工具,官方使用的举例都是用这种方法下载的。

使用教程1:EVB_Air724UG_A13开发板使用指南的固件下载章节;

使用教程2:LuatOS-Air二次开发教程指南的烧录底层core固件章节;

这些教程不光介绍了LuaTools工具的使用,还介绍了如何下载core固件和用户Lua程序。

4.3 烧录底层core固件的选择

由于模块出厂默认自带的AT版本固件,使用luat开发方式的话需要更换为LuatOS-Air二次开发固件。 解压底层包后,里面会有很多后缀名不同的固件。

bin文件空中升级时使用,pac文件为烧录时用到的底层固件。

不同的文件名代表此固件支持不同功能,具体后缀对应的功能请点我到固件选择界面查看。选择不同的core flash和ram剩余空间也会不同。要根据自己的应用情况做选择。

5.Lua脚本开发

Lua的菜鸟教程

合宙社区Lua语法介绍

合宙社区的Luat入门教程

LuatOS-Air开发视频教程

LuatOS-Air相关工具教程视频

如果您需要查看demo,可在luatools工具文件中查找到你需要的文件。

2G为luatools v2\resource\8955_script\script_LuaTask_V2.X.X\demo,

4G CAT4 为luatools v2\resource\1802_script\script_LuaTask_V2.X.X\demo,

4G CAT1 为luatools v2\resource\8910_script\script_LuaTask_V2.X.X\demo。

如果您需要查找接口文档,请点击LuatOS-Air API接口来查看完整的接口文档。 如果您有其他问题,可以前往问答社区查找或提问。