tag 标签: 通讯模组

相关帖子
相关博文
  • 2025-5-14 14:07
    123 次阅读|
    0 个评论
    传统LED照明与先进通信协议的跨界融合,催生出“智能光语”技术。借助Lua的动态调度能力,单个LED可同时承载多路数据流,为智能家居中的灯光协同控制与信息传递提供一体化解决方案。 今天就跟我一起,用Lua代码来个LED“蹦迪”点灯,解锁物联网圈的黑话社交! 一、主要准备工作 1.1 硬件准备 Air780EPM开发板套件; 支持数据传输的USB数据线; Win10及其以上PC电脑。 Air780EPM开发板V1.2/1.3版本都可以,开发板使用手册、原理图等参见资料中心。 最新开发资料链接:www.air780epm.cn 1.2 软件准备 微软VSCode编辑器 官方下载链接:https://code.visualstudio.com/download LuaTools调试工具 官方下载链接:https://docs.openluat.com/air780epm/common/Luatools/ 二、LED点灯实战三式 第一式:暴力美学——老板我要常亮! log.info(): 程序员的仪式感,相当于发朋友圈前打字要开始了! 27号GPIO: 开发板上最靓的仔(GPIO编号别信玄学,切记以硬件手册为准)。 最新手册下载:https://docs.openluat.com/air780epm/product/shouce/ 第二式:社畜之光——LED的996福报模拟器 程序员的黑暗兵法: while true = 老板说“这个需求很简单”时眼中的诡异光芒; sys.taskInit() = 把活丢给后台线程,深谙弹性工作制精髓; 亮灭日志 = 打工人的电子纹身(我在→我死了→我诈尸了)。 第三式:协程摸鱼大法——让CPU边等边刷剧 摸鱼黑科技原理: sys.taskInit() = 给CPU发多线程KPI(你刷剧时记得顺便干活); 协程本质 = 让代码学会“仰卧起坐”; 参数1000 = 1秒后准时表演勤奋。 三、 Lua真香定律 如果你也曾和我一样,犹豫要不要学Lua,好不好学?一定要自己动手试一试。 轻量代码: 初看轻量怀疑“太简陋”,上手后直呼“真高效”。 开发速度: 改代码比改PPT快(保存即生效,甲方都追不上你)。 学习成本: 看完这篇文章就会了(如果不会,建议再看一遍)。
  • 2025-5-14 13:58
    0 个评论
    传统UI开发常困于平台壁垒,LVGL却打造了跨维度的虫洞。一次代码编写,即可实现从裸机到Linux、从RTOS到WinSim的瞬时穿越。这种量子纠缠般的兼容性,让开发效率挣脱物理定律束缚。 它不止是工具,更是重塑人机交互的“视觉OS”。通过抽象硬件差异为统一API,LVGL让开发者摆脱底层桎梏,专注创作。无论是裸机环境还是RTOS系统,都能一键部署出丝滑触控、渐变特效的现代UI体验。 LVGL (Light and Versatile Graphics Library)的故事,像极了硅谷传奇——始于一个程序员的“不爽”。 2016年,匈牙利工程师Gábor Kiss-Vámos受够了嵌入式开发中臃肿的图形库,决定自己动手。于是,LVGL以“LittlevGL”为名悄然诞生。当时的它,代码量仅几千行,却野心勃勃——要做嵌入式界的“万能工具箱”:轻如羽毛,却功能齐全。 2018年,LVGL迎来关键转折:正式开源。开源后的它如同坐上火箭,GitHub星数飙升,社区迅速壮大。 版本迭代更是堪比”科技进化论”: v5.x :基础功能初具规模,像个“毛坯房”,但已能跑在单片机上; v7.x :新增主题系统和动画引擎,秒变“精装公寓”,界面颜值直线上升; v8.x :性能全面优化,支持多语言、矢量字体,甚至能在仅有“指甲盖大小”内存的芯片上流畅运行! 如今,LVGL的代码被下载超百万次,从智能家居到工业设备,甚至传闻NASA的某个太空项目(开发者社群的八卦)都用它做界面。 谁能想到,这个“车库项目”竟成了嵌入式GUI的“顶流”。 一、应用领域:从“你家的微波炉”到“火星车的显示屏 LVGL的”轻量级“人设,让它成了嵌入式开发的“百搭神器”: 智能家居: 冰箱的触控面板、空调的液晶屏,可能正用LVGL显示温度曲线; 工业控制: 工厂里的HMI设备,用它绘制实时数据图表和报警弹窗; 医疗设备: 血压仪的交互界面?LVGL的流畅度堪比“护士姐姐的手速”; 车载系统: 中控屏的丝滑切换,背后是LVGL在默默发力; 消费电子: 百元级的儿童手表,也能有媲美旗舰手机的动画效果! 更夸张的是,连某些极客的DIY火箭项目(没错,就是那种能飞500米的“玩具火箭”)都用LVGL做控制界面——毕竟,火箭的MCU(微控制器)可没空间装Windows! 二、用LVGL的三大爽点:省内存、省时间、省智商 为什么开发者对LVGL爱不释手?三大理由直击痛点: “内存焦虑”终结者: 最低仅需64KB RAM和180KB Flash,连单片机的“内存缝缝”都能塞进去; “代码洁癖”救星: 用C语言写界面,却能实现CSS+JS的效果——动画、渐变、透明图层信手拈来; “设计手残”福音: SquareLine Studio工具拖拽组件,10分钟搞定特斯拉风格仪表盘! 横向对比传统方案: Qt Embedded: 功能强大,但体积堪比“大象”,只适合高端芯片; EMWIN: 价格昂贵,代码风格犹如“上古卷轴”,改一行崩三天; LVGL: 免费开源、文档齐全,社区大佬7×24小时在线答疑。 开发者心声:“用了LVGL,终于不用边debug边薅头发了!”(发际线保卫战胜利在望) 三、工业引擎+LVGL+AirUI新应用 工业引擎(LuatOS)内置LVGL支持,堪称“开箱即用”的终极方案: 硬件适配: 无需啃底层驱动文档,插上Air8101工业引擎直接开搞。 开发提速: LuatOS的Lua脚本语言,未来结合AirUI,逻辑就如同搭积木一样。 生态加持: 传感器、通信协议、UI组件全封装成“即插即用”模块化的工业引擎。 真实案例: 某工厂的HMI设备开发,原计划3个月,我们方案2周交付,项目经理感动到想给程序员送锦旗。 四、LVGL开发指南:从“菜鸟”到“量产大神”的速成之路 Step 1:搭环境 选一块Air8101工业引擎开发板,LuatOS固件已经集成了LVGL库。 Step 2:画界面 拖个按钮、调个渐变色,导出代码直接粘贴。后续通过 AirUI 配置文件实现这些功能,方便又高效。 Step 3:写逻辑 Step 4:调性能 PC模拟器实时预览,内存占用、帧率一目了然。记住:60帧的流畅,胜过100个花哨特效。 Step 5:量产落地 代码烧录到工业引擎,-40℃到85℃严苛环境随便跑,LVGL微微一笑:“就这?” 五、LVGL+工业引擎+AirUI=未来嵌入式开发的“黄金搭档” LVGL的逆袭,印证了小而美才是嵌入式的终极浪漫。而工业引擎的加持,则让开发者告别“996调BUG”,专注于创意本身。 在不远的将来,2025年我们很有可能就能够让大家体会到这工业的创新之美,结合了我们心血的IoT万能工具箱。 今天的内容就分享到这里了~
  • 2025-5-14 13:51
    116 次阅读|
    0 个评论
    POWER_ON按键,即开关机键,在结构设计上可以实现 一键多用 ——既可以有效减少结构的按键设计,也可以使整机更加简洁。 本文以Air8000核心板为例,分享POWER_ON按键功能及其硬件设计、软件demo相关内容。 最新开发资料详见: www.air8000.cn 一、常用功能简介: 按键开机: 消费品常用的方法,在需要使用的时候才开机。 上电开机: 在部分商用场景,可能存在一直接着电源,或者没有按键开机情况,需要上电就开机。 按键检测: 在开机状态,可以通过上下沿,检测开机键按下或者释放,或者按下次数,从而实现业务目标。 按键关机: 通过POWER_ON按键可以实现对设备进行关机,从而达到节省流量或者省电的目的。 二、硬件设计参考: 按键开机按键关机按键检测电路设计: 上电开机电路设计: 注意事项:boot(Air8000管脚1),需要悬空或者接地,不可以接到vdd_ext。 详细开机电路设计说明参见: https://docs.openluat.com/air8000/luatos/hardware/design/poweron/ 三、软件demo实操: Air8000支持LuatOS二次开发,开关机键demo示例脚本和资源文件已发布,可通过下方链接获取最新资料。 最新源码及实操教程详见: https://docs.openluat.com/air8000/luatos/app/common/power_on/ 3.1 示例代码: 3.2 烧录代码 参考《如何使用LuaTools给Air8000烧录软件》,将准备好的软件烧录进Air8000,详见: https://docs.openluat.com/air8000/luatos/common/download/ 3.2 运行结果 运行示例可实现Air8000核心板按键不同功能,实际应用中可根据需求灵活调整。 今天的内容就分享到这里了~
  • 2025-5-14 13:41
    95 次阅读|
    0 个评论
    从日志基础到性能优化,本教程系统性讲解log库的核心功能与实战技巧,提供完整案例代码,助力开发者构建高效稳定的嵌入式日志系统。 今天,我们一起来认识LuatOS的log库! 一、 log.info() log info()主要打印一些正常的信息。比如,记录程序的启动信息、某个模块的初始化完成、重要业务流程的执行等。 我们利用log.info(),可以清晰了解程序的执行顺序。 tag为日志标识,标识日志来自哪个模块或功能。 比如:在一个包含多个子系统的应用程序中,为每个子系统的日志添加相应的标签,开发人员就能快速定位到问题所在的模块。 在一个复杂的Lua脚本里,使用log.info() 函数在关键代码位置,设置输出信息,就能知道程序是否按预期顺序执行。 如果你想在程序开头看是否会记录到模块初始化,代码可以这样写: 当模块完成初始化,就能在日志打印里看到相关信息了。 二、 log.debug() log.debug()主要用在开发和调试阶段,记录详细的调试信息。 这些信息方便我们理解程序的执行流程、变量的变化。在开发完成后,可以根据需要关闭这些调试信息,以减少日志量和提高性能。 具体使用场景如下: 当程序执行到log.debug("进入add函数,a = ".. a.. ", b = ".. b)时,它会输出一条日志,明确显示程序已经进入了add函数。 三、log.warn() log.warn()主要用于记录一些警告信息,表示程序遇到了一些可能存在潜在的风险,还没有导致程序出错,但可能需要我们关注的部分。 比如:当文件大小超过1MB,你想输出一条警告信息提醒用户,你就可以在代码中使用log.warn()。 当文件大小超过1MB时,程序就会执行log.warn()这行代码,输出一条警告信息,提醒开发者注意下文件大小。 四、 log.error() log.error()主要用于记录错误信息,当程序发生错误或异常情况时,使用这个函数来记录相关的错误信息,以便开发者能够快速定位和解决问题。 具体应用场景: 当除数为0时,输出错误信息:除数不能为0。 五、log.setLevel() 以上是我们常用到的几种日志类型。但有时候,debug是调试时用到的,并不想让用户看到我们的debug类型日志,难道要一个一个删除吗? 不用!我们可以用log.setLevel()函数设置日志级别。 在LuatOS的log库中,日志有如下几种类型: LOG_SILENT(无日志模式) LOG_DEBUG(debug日志模式) LOG_INFO(info日志模式) LOG_WARN(warning日志模式) LOG_ERROR(error日志模式) 日志级别从低到高依次为: DEBUG INFO WARN ERROR 只有日志级别大于或等于当前设置的级别时,该日志才会被输出。 比如日志设置为INFO级别时:DEBUG级别的日志不会输出,而INFO、WARN、ERROR级别的日志会输出。 比如:想设置为INFO日志模式,不要输出debug日志信息,代码就这样写: 其余模式同理。 六、log.getLevel() 如果想要获取到当前设置的日志级别,我们就需要用到 log.getLevel()函数。 示例如下: 七、log.style() 设置日志风格,需要使用到log.style(val)函数。 LuatOS的log库提供了3种日志风格,分别为:默认风格0;调试风格1;调试风格2。 这几种方式的日志呈现形式不同,根据个人习惯调整。 示例如下: 以log.info("ABC", "DEF", 123) 为例, 假设该代码位于main.lua的12行。 那么三种风格的输出样式为: 默认风格0的输出样式为: I/user.ABC DEF 123 调试风格1的输出样式为: I/main.lua:12 ABC DEF 123 对比默认风格0,增加了文件名和代码所在行数。 调试风格2的输出样式为: I/user.ABC main.lua:12 DEF 123 对比其他风格,信息位置排放有所区别。 关于log库的内容就分享到这里了~
  • 2025-5-7 16:38
    188 次阅读|
    0 个评论
    本教程深入浅出讲解Air8000核心板G-sensor功能开发,涵盖传感器初始化、数据校准、阈值设定及实时监测等全流程。通过代码示例与调试技巧,助你快速搭建G-sensor应用框架,实现跌倒检测、手势识别等创新场景。 最新开发资料详见:www.air8000.cn 一、G-sensor传感器简介 G-sensor重力传感器,又名加速度传感器。 Air8000内部集成了G-sensor传感器DA221,开发者可直接调用传感器数据,无需额外扩展硬件。 DA221传感器——是一种低功耗、高性能的电容式三轴线性加速度计,采用微机械技术开发。 该器件采用2x2x1.1mm的LGA封装,保证在-40°C至+85°C的宽温度范围内工作。传感器元件采用单晶硅通过DRIE工艺制造,并通过密封的硅帽保护免受环境影响。具有用户可选的±2g/±4g/±8g满量程测量范围,数据输出速率从1Hz到1kHz,并集成了信号调节和主动检测功能。 DA221具有断电模式,独立且灵活的中断大大简化了各种运动状态检测的算法。 二、主要硬件准备 2.1 主要硬件 Air8000核心板套件; 支持数据传输的USB数据线; Win10及其以上PC电脑。 2.2 接线说明 使用USB数据线,连接Air8000核心板与电脑即可。Air8000模块内部DA221传感器的INT引脚,已经连接到处理器的GPIO39引脚。 1)核心板正面: 2)核心板反面: 三、最新源码及实操教程 Air8000应用示例持续更新中,当前示例为G-sensor功能,支持读取传感器的三轴数据和中断输出。 最新源码及实操教程详见: https://docs.openluat.com/air8000/luatos/app/gsensor/ 示例代码相关要点解析如下: 3.1 Air8000中断设置 硬件连接: Air8000模块内部DA221传感器的INT引脚,已经连接到处理器的GPIO39引脚。 中断触发方式: 当传感器检测到运动(根据INT_MAP1等寄存器配置)时,会改变INT引脚电平默认情况下,当引脚电平变化(上升沿或下降沿)时会触发中断。 回调机制: 每次中断触发时,系统会自动调用ind() 函数,可在ind()中可以处理传感器数据(如加速度数据)。 3.2 初始化I2C 1)复用I2C引脚 2)配置I2C引脚 重新打开I2C,I2C速度设置为低速模式。 3.3 初始化G-sensor 1)配置DA221的精度、测量范围等。 2)配置中断 3)将中断映射到INT引脚 当XYZ轴合成的加速度超过阈值时,G-sensor传感器就可以产生中断。 当中断产生时,这个状态可以映射到INT引脚,然后模块与INT引脚相连的引脚检测到中断信息后,就可以进行。 4)配置gsensor模式,使能XYZ轴。 3.4 中断处理代码 3.5 读取传感器三轴数据 3.6 异常处理 读取XYZ轴和计步数据时,如果读取的数据不正确,则会发布一个消息RESTORE_GSENSOR。 可以通过监听到这个消息来判断传感器工作是否正常,以及做一些特殊处理。 四、实操验证流程 4.1 烧录代码 参考《如何使用LuaTools给Air8000烧录软件》,将准备好的软件烧录进Air8000,详见: https://docs.openluat.com/air8000/luatos/common/download/ 4.2 运行结果 1)传感器初始打印相关信息: 2)读取三轴数据,解析显示出来: 3)每4秒钟读取一次传感器数据: 4)中断输出日志数据: 今天的内容就分享到这里了~
相关资源