蓝点无限 发表于 2022-3-24 23:11:29

蓝点无限 UWB软硬件开源方案-STM32G0

本帖为蓝点无限一套软硬件全开源UWB 套件。本套件开源的原则奉行极简够用原则,可以满足一般UWB测距定位需求。

1. 硬件资源说明

主控:STM32G030F6P6,8KB SRAM,32KB Flash,TSSOP20封装。STM32G030F6P6 是ST G0 系列比较低端的一款32bit Cortex-M0 处理器,最高工作频率64Mhz。
经过实际测试,UWB 测距定位8KB SRAM 和 32KB Flash完全够用,而且还可以额外外接一个OLED

电源:ASM1117-3.3,电源输入接口mini-usb 5V
串口:STM32G030F6P6 板载一路串口
晶振:使用STM32G030F6P6 内置晶振,无需使用外置晶振
UWB模组:双接口设计,兼容官方UWB模组和我们蓝点M400模组


整体预览图如下,底板器件少,STM32G030F6P6 在目前STM32 飞涨的情况下提供了极高的性价比,同时TSSOP20封装对于手工DIY 非常友好,焊接失败率较低。



2. 原理图简单说明
STM32G030F6P6 一共只有20个引脚,资源相对有限,我们板子目前是设计一款UWB 底板,也算足够,LED OLED 串口 UWB,所有这些刚刚将所有引脚全部分配完毕,原理图主控部分


UWB 模组接口


3. 实物图片


4. 硬件资源下载
包括原理图和PCB,都是源文件,可以直接去打样测试。
PCB器件较少,简单布局布线,有审美要求的可以自己重新处理。

“附件”:




5. 软件代码
软件代码使用我们自研框架开发,这里开源的代码是在我们自研框架基础上进行深度整合
基本框架可以适配自有多种版型(如下截图所示)。我们将与版型硬件无关的代码尽量做成一个lib,每个版型硬件通过STM32-Cube进行初始化
可以实现硬件版型混用,例如测距两个模块中可以两个模块可以选取1个bp50,一个bp400.


目前这套代码已经已经实现了测距和定位功能,逐步优化测试,本帖开源STM32G0_UWB 测距功能相关代码。



测距代码下载:


代码配置 bphero_uwb.h文件,说明如下,总体,测距而言,一个TX一个RX。由于测距我们只有一个模块通过OLED显示,对于外接OLED的模块,
需要将#define LCD_ENABLE 前面的注释去掉。对于液晶不存在的模块,注释掉改行。
//!!!!重要说明!!!!
//RX_NODE 和 TX_NODE 编译的时候只能有且只有一个打开
//RX_NODE接收节点,通常称作为基站
//TX_NODE发送节点,通常称作为标签
//#define RX_NODE
#define TX_NODE


//如果是RX节点,定义短地址为0x0002
#ifdef RX_NODE
#define SHORT_ADDR 0x0002
#define LCD_ENABLE
#endif

//如果是TX节点,定义短地址为0x0001并且使能LCD
#ifdef TX_NODE
#define SHORT_ADDR 0x0001
//#define LCD_ENABLE
#endif
7. 演示视频
























zpf 发表于 5 天前

为什么演示视频看不了?
页: [1]
查看完整版本: 蓝点无限 UWB软硬件开源方案-STM32G0