一、外观简介
外观以游戏机外观为参考,分为两个按键区域,中间为屏幕显示区域
(当然作为游戏机也是可以的,可以文末查看视频效果)
底部为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主要是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相关设计,最后在嘉立创免费打样:
硬件项目已开源,详细信息大家可以在下述链接查看:
https://oshwhub.com/jiake/funiot-controller
五、结构简介
1. 硬件组装
这里用到了两块PCB,一块焊接一块当作屏幕垫板,两个按键板分别安装在两侧,通过排线链接:
2. 3D打印外壳
外壳的设计使用的是FreeCAD软件,分为上下两部分,通过导入PCB模型进行的仿真,最后在立创的三维猴平台打印:
接下来的文章是上述软件中的FreeRTOS移植和LVGL的移植教程。