当前位置: 首页 > article >正文

项目简介——基于GD32+FreeRTOS+LVGL的智能通用控制Demo

在这里插入图片描述
文章内附开源地址

一、外观简介

外观以游戏机外观为参考,分为两个按键区域,中间为屏幕显示区域
在这里插入图片描述
(当然作为游戏机也是可以的,可以文末查看视频效果)
在这里插入图片描述
  底部为LED指示灯接口和SD卡接口:
在这里插入图片描述
  顶部是通用USB类外设IO接口,用于连接各类外设、电源按键以及TypeC充电与调试接口:
![[Pasted image .png]]

二、设备功能简介

  采用GD32F303x+FreeRTOS+Lvgl的实现的WIFI/蓝牙/4G/CAN通信的综合控制器Demo项目,可应用于智能家具WIFI/蓝牙控制、智能中控屏、掌上CAN控制器以及户外远程控制器、NES游戏机等。

1. 交互控制

  控制器采用一块3.5寸的16位40Pin并口屏幕显示,最多支持12个独立按键输入控制,用户可以通过按键选择打开各类应用,支持软件关机和按键关机。
在这里插入图片描述
在这里插入图片描述

2. 系统设置

(1)系统信息

  软件移植了FreeRTOS V9.9以及LVGL V8.4,完成整个系统功能框架与显示控制的搭建
在这里插入图片描述

(2)数据采集

  板载有3路ADC采集,分别用于电池电压检测、充电电压检测、NTC温度检测
在这里插入图片描述

(3)系统更新

  系统支持SD卡文件更新、WIFI/蓝牙、4G、CAN以及TypeC调试串口更新
在这里插入图片描述

(4)亮度调节

  屏幕采用PWM调光设置亮度,支持亮度任意调节
在这里插入图片描述

3. 串口通信

  通过TypeC可以连接上位机,实现设备控制、查看数据信息、OTA升级等功能
在这里插入图片描述

4. CAN通信

  控制器的USB类外设接口可以连接CAN收发器实现CAN通信功能:
在这里插入图片描述
  配合CAN上位机完成设备控制、查看数据信息、OTA升级等功能
在这里插入图片描述

5. WIFI/蓝牙通信

  控制器的USB类外设接口可以连接串口类的外设模块实现WIFI/蓝牙通信功能,这里的WIFI/蓝牙模块主控采用的是ESP32,采用ESPIDF开发,同样基于FreeRTOS:
![[Pasted image .png]]

  支持WIFI手动配网:
![[Pasted image 20241026153506.png]]

  支持设备接入云平台,实现数据上报:
![[Pasted image 20241026153612.png]]

  以及云端远程命令控制:
![[Pasted image 20241026153715.png]]

  云端后台可查看日志消息:
在这里插入图片描述

6. 4G通信

  控制器的USB类外设接口可以连接串口类的外设模块实现4G通信功能,这里的4G模块采用的是Air780EG,支持4G通信和卫星定位,这里也是采用了二次开发,基于Luatos的lua脚本语言开发:
在这里插入图片描述
![[Pasted image .png]]
  支持手动短信收发:
在这里插入图片描述
在这里插入图片描述
  支持接入云平台,实现数据上报:
在这里插入图片描述
  以及云端命令控制:
在这里插入图片描述
  在户外可以通过APP查看定位信息:
在这里插入图片描述

三、软件简介

1. 主控MCU

  主控MCU主要是FreeRTOS和LVGL的使用以及IIC、SPI、UART等各底层驱动部分的开发:
在这里插入图片描述
  GUI的设计借助了NXP的Gui-guider以及百问网的LVGL参考文档:
在这里插入图片描述
在这里插入图片描述

2. 从机MCU-ESP32

  ESP32采用ESPIDF环境开发,基于FreeRTOS:
在这里插入图片描述

3. 从机MCU-Air780EG

  Air780EG采用lua脚本语言开发,基于luatos:
在这里插入图片描述

  然后使用合宙官方的Luatools的烧录调试工具进行烧录与调试:
在这里插入图片描述

4. PC-QT上位机

  PC上位机主要实现的是CAN通信和串口通信功能,采用QT进行设计开发,CAN通信使用的为广成GCAN的驱动,qmake编译环境,串口上位机采用cmake编译环境:
在这里插入图片描述
在这里插入图片描述

5. Android APP

  Android APP的设计就相对简单一些,主要是通过HTTP实现华为云物联网平台的一些应用API,用于获取设备属性信息以及命令下发以及百度地图SDK的使用:
在这里插入图片描述
在这里插入图片描述

四、硬件简介

  硬件使用立创EDA专业版进行了四层板的PCB设计,MCU基于GD32F303VET6,硬件上支持锂电池充放电管理、板载NTC温度采集、支持CAN/WIFI/蓝牙/4G/UART通信控制(通过模拟开关复用),控制板预留了三组扩展接口,其中项目中使用了两组作为GPIO使用,用于按键输入,还有一组是I2S接口,属于预留接口,暂未使用,主要介绍如下部分:

1. 模拟开关复用USB接口

  这里为了扩展多个模块的使用,使用模拟开关控制USB的数据线引脚接入CAN还是UART,当然,也可以当作普通GPIO使用或者完成单线通信等功能
在这里插入图片描述

2. EXMC的屏幕接口

  为了提高屏幕刷新速度,使用了EXMC接口+DMA的刷新方式,支持背光调节,可以通过电阻选择支持的屏幕类型,视频中演示的项目是使用的ILI9488,注意不要全部焊接,会短路!
在这里插入图片描述

3. 电源部分

  电源部分采用IP5306实现锂电池充放电管理,即锂电池升压5V、5V对锂电池充电、以及按键开关机等,电源按键引脚还接入了MCU一个GPIO用于软件控制关机
在这里插入图片描述

4. 硬件开源

  其他部分都是中规中矩的MCU相关设计,最后在嘉立创免费打样:
在这里插入图片描述
  硬件项目已开源,详细信息大家可以在下述链接查看:
立创开源硬件平台:基于GD32+FreeRTOS+LVGL的智能通用控制器Demo
在这里插入图片描述

五、结构简介

1. 硬件组装

   这里用到了两块PCB,一块焊接一块当作屏幕垫板,两个按键板分别安装在两侧,通过排线链接:
在这里插入图片描述
在这里插入图片描述

2. 3D打印外壳

  外壳的设计使用的是FreeCAD软件,分为上下两部分,通过导入PCB模型进行的仿真,最后在立创的三维猴平台打印:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、演示视频

Bilibili: 基于GD32+FreeRTOS+LVGL的智能通用控制Demo【1-功能展示】
Bilibili: 基于GD32+FreeRTOS+LVGL的智能通用控制Demo【2-开发过程篇】
Bilibili: 基于GD32 MCU的NES游戏机【3-智能控制器扩展应用篇】


  接下来的文章是上述软件中的FreeRTOS移植和LVGL的移植教程。

http://www.kler.cn/a/369257.html

相关文章:

  • MySQL 分页查询越往后翻越慢的原因
  • 大厂面试真题-为什么Innodb要用B+树
  • 【Java并发编程】信号量Semaphore详解
  • 浅析Android中View绘制中的渲染机制
  • 数据结构-树
  • 【Web.路由】——路由原理
  • 【知识科普】今天聊聊前端打包工具webpack
  • 如何应对PDF无法转换成其他格式?常见原因与解决方法解析
  • 029.爬虫专用浏览器-抓取跨域#document下的内容
  • ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点
  • 股指期货连续合约是什么意思?可以交易吗?
  • Ovis: 多模态大语言模型的结构化嵌入对齐
  • appium+mumu模拟器 嚼碎菜鸟教程
  • 酷睿 Ultra 200S核显相当于GTX 1050Ti?4核心表现出人意料
  • 一文理解平流层温度变化规律
  • Java毕业设计 基于SSM jsp餐厅卫生安全系统
  • Java中线程安全问题解决方案
  • 【软件设计】常用设计模式--代理模式
  • Leetcode 二叉树的右视图
  • cargo编译时Rust时如何自定义输出目录
  • 今年2024的1024文章
  • 微服务的发布策略与设计约束
  • springboot073车辆管理系统设计与实现(论文+源码)_kaic.zip
  • 详析STL之容器map
  • R语言笔记(四):函数
  • Qt 窗口可见性 之 工程案例