
基于GD32+FreeRTOS+LVGL的智能通用控制器Demo
简介
采用GD32F303x+FreeRTOS+Lvgl的实现的WIFI/蓝牙/4G/CAN通信的综合控制器Demo项目,可应用于智能家具WIFI/蓝牙控制、CAN调试器控制以及户外远程控制、NES游戏
简介:采用GD32F303x+FreeRTOS+Lvgl的实现的WIFI/蓝牙/4G/CAN通信的综合控制器Demo项目,可应用于智能家具WIFI/蓝牙控制、CAN调试器控制以及户外远程控制、NES游戏开源协议
:CC BY-NC-SA 3.0
(未经作者授权,禁止转载)描述

【附件MDK工程】配套零基础开发教程1:FreeRTOS移植教程(超详细)——基于GD32F303X系列MCU
【附件MDK工程】配套零基础开发教程2:LVGL移植教程(超详细)——基于GD32F303X系列MCU
【附件MDK工程】配套零基础开发教程3:基于GD32的NES游戏机模拟器使用教程(InfoNES)——基于GD32F303X系列MCU
文末可查看视频演示:详细开发过程、功能演示以及NES游戏,交流反馈Q群:947082902
下面是项目简介内容
一、外观简介
外观以游戏机外观为参考,分为两个按键区域,中间为屏幕显示区域
更新:使用了立创的面板设计,效果不错

(当然作为游戏机也是可以的,可以文末查看视频效果,附件含NES的MDK工程)

底部为LED指示灯接口和SD卡接口:

顶部是通用USB类外设IO接口,用于连接各类外设、电源按键以及TypeC充电与调试接口:

二、设备功能简介
采用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:

支持WIFI手动配网:

支持设备接入云平台,实现数据上报:

以及云端远程命令控制:

云端后台可查看日志消息:

6. 4G通信
控制器的USB类外设接口可以连接串口类的外设模块实现4G通信功能,这里的4G模块采用的是Air780EG,支持4G通信和卫星定位,这里也是采用了二次开发,基于Luatos的lua脚本语言开发:


支持手动短信收发:


支持接入云平台,实现数据上报:

以及云端命令控制:

在户外可以通过APP查看定位信息:

三、软件简介
1. 主控MCU
主控MCU主要是GD32+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相关设计,最后在嘉立创免费打样:

五、结构简介
1. 硬件组装
这里用到了两块PCB,一块焊接一块当作屏幕垫板,两个按键板分别安装在两侧,通过排线链接:


2. 3D打印外壳
外壳的设计使用的是FreeCAD软件,分为上下两部分,通过导入PCB模型进行的仿真,最后在立创的三维猴平台打印:




3. 面板设计
使用立创EDA专业版完成面板设计并在立创商城打样:


六、演示视频
Bilibili: 基于GD32+FreeRTOS+LVGL的智能通用控制Demo【1-功能展示】
Bilibili: 基于GD32+FreeRTOS+LVGL的智能通用控制Demo【2-开发过程篇】
Bilibili: 基于GD32 MCU的NES游戏机【3-智能控制器扩展应用篇】
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










