
60多元手搓摩托车 BSD 盲区监测!
简介
基于 STM32F103 的低成本盲区监测(BSD)方案,硬件 / 软件 / 结构全开源!支持 12V 车载供电、声光预警、多模块扩展,专为摩友 DIY 设计,新手友好,可自由二次开发~
简介:基于 STM32F103 的低成本盲区监测(BSD)方案,硬件 / 软件 / 结构全开源!支持 12V 车载供电、声光预警、多模块扩展,专为摩友 DIY 设计,新手友好,可自由二次开发~开源协议
:GPL 3.0
描述
视频链接:
【60多元手搓摩托车 BSD 盲区监测!】 https://www.bilibili.com/video/BV1uhdrBzEG5/?share_source=copy_web&vd_source=3a906d0c214145c071e4a9eb3dd0b57e
项目简介
基于 STM32F103 的低成本盲区监测(BSD)方案,硬件 / 软件 / 结构全开源!支持 12V 车载供电、声光预警、多模块扩展,专为摩友 DIY 设计,新手友好,可自由二次开发~
👉 核心:盲区来车预警 | 全开源可定制 | 低成本易上手
项目背景/创意来源
- 骑行中变道、超车时的盲区风险极高,缺乏低成本、可DIY的解决方案;
- 希望打造一个「人人可参与、人人可修改」的开源项目,汇聚社区力量完善功能。
制作过程图文/视频记录
先说明一下本人不是专业做嵌入式这块的,属于建筑工程管理这块工作的,属于一个零基础的小白靠着这一个月的利用晚上下班时间看视频学习画板子做电路测试,看人家的代码怎么写,刚入门的都知道其中的心酸,其实这个项目的技术含量不高,相比于开源广场的各位大神的作品来说,我这个作品是相当的low,但是我这个人就是喜欢做自己喜欢的事,想把他干起来,自己喜欢就好了,所以不好请大家谅解。
现在我来说一下具体的安装教程吧!
有条件的朋友后期可以将面板换成亚克力的盖板里面可以装上led灯条作为警示灯使用。

1、时间仓促锡膏还没到,只能先用那电烙铁给板子上点锡

2、上完锡之后,就把元器件一个个摆上去。这里可得注意了,先别放主控芯片,咱得先焊接电源芯片。我这眼睛紧紧盯着,生怕哪个焊点没弄好。

3、焊接好电源芯片后,我赶紧测试一下,看看有没有短路的情况。心里那是既紧张又期待,就怕前面的功夫白费了。测试完没短路,我又测了测供电的电压,还好,电压正常,这心里的石头算是落了一半。

接下来,我把主控芯片放上了。看着这初具雏形的毫米雷达,心里别提多有成就感了。虽然过程有点小波折,但一步步做下来,还是很有收获的。
4、先别急着安装,先烧录程序测试一下


5、安装壳体





用到的材料






🛠️原理解析(硬件说明)
1. 核心参数
| 功能模块 | 实现情况 | 备注 |
|---|---|---|
| 主控制器 | STM32F103C8T6 Cortex‑M3 @72MHz,64KB Flash,20KB RAM | 经典MCU,性能足够,生态丰富 |
| 电源管理 | 两级MP1584EN降压:12V→5V→3.3V | 适合车载宽电压输入,效率较高 |
| 雷达接口 | H1(USART1:PA9/PA10) 提供+5V、TXD、RXD、GND | 专为独立雷达模块设计,串口通信 |
| 警示灯驱动 | U5/U6连接器(引脚1=12V,引脚2悬空)+ Q1/Q2 MOSFET(AO3400A) | 低边驱动架构,MCU控制接地端 |
| 电源指示 | LED1/LED2(阳极悬空,阴极接地) | 需串联电阻接+5V/3.3V作电源指示灯 |
| 扩展接口 | H2(USART2)、H4(I²C+4 GPIO)、H3(预留)、H5(SWD) | 支持多传感器、显示模块扩展 |
2. 电源方案分析
| 项目 | 设计细节 | 评价 |
|---|---|---|
| 拓扑结构 | 两级降压:12V → MP1584EN → 5V → MP1584EN → 3.3V | 降低每级压差,提升整体效率 |
| 输入滤波 | C5(22µF)+ C6/C7(各10µF) | 基本满足稳压芯片要求 |
| 输出滤波 | 5V:C8/C9(10µF)+ C11(47µF);3.3V:C14(47µF) | 电容容量足够 |
| 去耦电容 | C2/C3/C10/C12/C16(0.1µF)分布在3.3V网络 | 布局合理,有助于高频噪声抑制 |
| 电感选型 | L1、L2(22µH) | 符合MP1584EN推荐值 |
软件代码
项目结构
ms_60/
├── hal/ # 硬件抽象层
│ └── STM32F10x_StdPeriph_Driver/ # STM32 标准外设库
├── lib/ # 第三方库
│ └── cmsis/ # CMSIS 库
├── src/ # 源代码
│ ├── led/ # LED 控制模块
│ ├── radar/ # 雷达模块
│ ├── systick/ # 系统时钟模块
│ ├── utils/ # 工具模块
│ │ ├── ring_buffer.c # 环形缓冲区
│ │ ├── ring_buffer.h
│ │ ├── scheduler.c # 调度器
│ │ ├── scheduler.h
│ │ ├── watchdog.c # 看门狗模块
│ │ └── watchdog.h
│ ├── warning/ # 预警系统模块
│ ├── main.c # 主程序
│ ├── main.h # 主头文件
│ ├── startup_stm32f10x_md.s # 启动文件
│ ├── stm32f10x_conf.h # 配置文件
│ ├── stm32f10x_it.c # 中断处理
│ └── stm32f10x_it.h # 中断处理头文件
├── .eide/ # EIDE 配置
├── .vscode/ # VS Code 配置
├── build/ # 构建输出
├── README.md # 项目说明文档
├── ms_60.code-workspace # VS Code 工作区文件
└── stm32f1x_64KB_flash.ld # 链接脚本
成果演示

1. 核心功能
1.1 雷达数据采集
- 使用 BSD_MS60 雷达模块通过串口(USART2)采集周围障碍物数据
- 支持最多 8 个目标的同时检测
- 数据包括:距离、角度、速度和目标 ID
- 雷达模块仅在检测到目标时发送数据,无目标时不发送数据
- 采用 DMA 方式接收串口数据,提高系统效率
1.2 盲区预警系统
- 将车辆周围分为三个区域:
- 左侧盲区:角度范围 -15° ~ 0°
- 右侧盲区:角度范围 15° ~ 90°
- 正后方:角度范围 -15° ~ 15°
- 根据目标距离计算预警等级:
- LEVEL0:无目标/安全(LED 熄灭)
- LEVEL1:提醒(5-8 米)(LED 慢闪 1Hz)
- LEVEL2:警告(2-5 米)(LED 快闪 4Hz)
- LEVEL3:危险(0-2 米)(LED 常亮)
- 实现了雷达数据超时机制:当 1 秒内未收到雷达数据时,自动将预警等级设置为无目标状态
1.3 LED 显示系统
- 左侧 LED(PA8):显示左侧盲区和正后方的预警状态
- 右侧 LED(PB15):显示右侧盲区和正后方的预警状态
- 支持四种状态:
- 常亮:表示危险(0-2 米)
- 快闪(4Hz):表示警告(2-5 米)
- 慢闪(1Hz):表示提醒(5-8 米)
- 熄灭:表示无目标/安全
- 高电平点亮 LED,低电平熄灭 LED
- 优化的 LED 控制逻辑:确保当雷达停止发送数据时 LED 能够立即熄灭
2026年5月13日更新:
一、电路功能概述
这是一个 基于 STM32F103C8T6 的主控与雷达探测控制系统,整体电源链为:
12V 直流输入 → MP1584EN (DC-DC Buck) → +5V → AMS1117-3.3 (LDO) → 3.3V
核心功能:
| 功能模块 | 说明 |
|---|---|
| 主控单元 | STM32F103C8T6 (ARM Cortex-M3, 72MHz),64KB Flash |
| 毫米波雷达 | MS603015S80M4 雷达模块,通过 UART (RXD/TXD) 与 MCU 通信 |
| 两路 12V 输出控制 | 通过 N-MOSFET (AO3400A) 独立控制两个接线端子(U5/U6)的 12V 输出 |
| 电源管理 | 12V 输入 → 5V (Buck) → 3.3V (LDO),带完整保护电路 |
| 调试接口 | SWD (SWCLK/SWDIO) 4pin 排针 |
删除一些扩展接口只留烧录口更换LED控制引脚并更新程序,雷达板直接贴在后侧



更新外壳设计 可以方便调换位置



2026年6月3日更新:
更新程序源码及说明书
2026年6月4日更新:
更改判断方式为纯距离,适合摩托车
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










