一、项目介绍和创意介绍
项目名称
便携式高精度姿态传感测量系统
项目简介
本项目设计并实现了一款基于STM32F103C8T6微控制器与MPU6050六轴惯性传感器的便携式高精度姿态传感测量系统。系统实时采集物体在三维空间中的俯仰角(Pitch)、翻滚角(Roll)和偏航角(Yaw),并通过卡尔曼滤波算法对姿态数据进行平滑处理,最终在2.4寸TFT-LCD屏幕上清晰显示。设备支持绝对角度测量与相对角度测量双模式,可通过四个多功能按键实现显示模式切换、角度/弧度单位转换、显示冻结、零点重置等操作。内置1200mAh锂电池,配合TP4056充电管理芯片和DW01保护芯片,实现安全充放电,并具备实时电量监测和低电量蜂鸣器报警功能。整机结构紧凑、响应迅速(单轴刷新100ms,三轴300ms),适用于建筑安装、机械调平、机器人姿态调试等现场工程场景。参加2026贸泽电子M-Design创意设计大赛(第二季)的方向三:工业控制
创新点
- 双模式角度测量:支持绝对角度(相对水平面)与相对角度(用户自定义零点)两种测量模式,一键切换,适应不同工程需求。
- 六轴数据融合与卡尔曼滤波:采用MPU6050内置DMP输出四元数,再经卡尔曼滤波算法融合加速度计与陀螺仪数据,有效抑制噪声和漂移,输出波形平滑稳定。
- 多功能按键交互:四个按键分别支持短按(切换单轴/三轴显示)和长按(暂停、相对角度、单位转换、返回主界面),操作逻辑清晰,无需复杂菜单。
- 智能化电源管理:集成TP4056恒流充电(1A)与DW01过充过放保护,配合ADC分压检测电路,实时显示电池百分比,低电压时自动触发蜂鸣器报警和屏幕提示。
- 高便携性与工业设计:整机尺寸小巧,采用聚合物锂电池供电,连续工作时间可达10小时,满足户外现场测量需求。
二、硬件介绍
主要硬件组件
- 主控芯片:STM32F103C8T6(ARM Cortex-M3内核,72MHz主频,64KB Flash,20KB RAM)
- 姿态传感器:MPU6050(集成三轴加速度计±16g、三轴陀螺仪±2000°/s,内置DMP)
- 电源管理:
- 充电芯片:TP4056(最大充电电流1A,带充电指示灯)
- 保护芯片:DW01(过充/过放/过流保护)
- 线性稳压器:ME6211C33M5G(3.3V输出,低 dropout)
- 显示模块:2.4寸TFT-LCD,驱动IC ST7789V,SPI接口,240×320分辨率
- 交互模块:4个轻触按键(带短按/长按识别)
- 报警模块:3.3V有源蜂鸣器
- 电池:聚合物锂电池,容量1200mAh,额定电压3.7V
- 其他:TYPE-C接口(充电)、分压电阻(电量检测)、晶振(8MHz)
硬件连接说明
- STM32与MPU6050:I2C1接口(PB6-SCL,PB7-SDA)
- STM32与LCD:SPI1接口(PB13-SCLK,PB15-MOSI;PB10-DC,PB11-CS,PB12-RST)
- 按键:PA0~PA3(上拉输入模式)
- 蜂鸣器:PA5(推挽输出,高电平有效)
- 电量检测:PA4(ADC输入,经分压电阻接电池正极)
- 充电管理:TP4056的PROG电阻设定充电电流,CHRG/STDBY引脚接LED指示
- 锂电池保护:DW01与8205A MOSFET组合,连接电池正负极
三、方案框图和项目设计思路
方案框图
整体设计主要由6个部分构成分别是:控制模块、电源模块、显示模块、传感器模块、交互模块、报警模块。本设计以六轴传感器和STM32F103C8T6单片机为核心,对MPU6050的加速度、陀螺仪的采集,通过姿态解算得出翻滚角、俯仰角、偏航角,并且通过卡尔曼滤波对数据进行滤波,使其角度数据输出平滑。还可以通过轻触交互按键来进行选择显示角度模式、单位、角度输出暂停,并且可以实时在显示模块显示三轴角度数据。默认显示为与水平面夹角的绝对角度测量。当按下重置按钮时可显示相对角度,设备的当前角度被重置为零,之后显示屏上显示的数值均是设备按下按键时的角度与当前角度形成的夹角。通过额定电压为3.7V的锂电池供电,并通过TP4056和DW01配合来实现充放电功能,具有过充保护和过放保护,实现电量显示和低电量报警。

设计思路
系统遵循“传感-处理-显示-交互”的闭环架构:
- 传感层:MPU6050传感器输出原始加速度和角速度数据,其内部DMP硬件直接输出四元数(q0,q1,q2,q3),极大减轻了主控的计算负担。
- 处理层:STM32通过I2C读取四元数,经数学变换转换为欧拉角(Pitch, Roll, Yaw)。随后采用卡尔曼滤波算法对每个角度进行滤波,消除噪声和传感器漂移。
- 决策与显示层:
- 根据按键指令选择显示模式(单轴/三轴/相对/单位转换);
- 将角度数据和电量信息实时刷新到LCD屏幕上;
- 当检测到电池电压低于3.7V时,触发蜂鸣器报警并在屏幕显示“电池电压低”。
- 交互层:定时器循环扫描4个按键,区分短按(<800ms)与长按(≥800ms),执行对应的功能切换。
- 供电层:锂电池经过LDO稳压至3.3V为全系统供电;充电时TP4056管理恒流恒压充电,DW01提供二次保护。
四、原理图和PCB设计介绍
系统硬件设计主要包含供电模块设计,单片机最小系统设计,六轴传感器模块设计,充电模块设计,交互模块设计,LCD显示屏模块设计,报警模块设计。
4.1 供电电源设计
供电电源是由开关、分压电阻、锂电池和ME6211C33M5G线性稳压器组成的。锂电池采用额定电压为3.7V的聚合物锂电池。ME6211C33M5G的最大输入电压为6V、最低压差为260mV满足单锂电池供电的场景,可实现3.3V的电压输出。主要功能是为单片机、显示屏、六轴传感器等提供供电电压。特别设计双LDO供电,单独一路给六轴传感器供电,保证了六轴传感器的稳定供电。电池正极经过分压电阻连接至单片机PA4,以便系统可以安全、实时的检测电源电压。供电电源设计原理图如图4-1所示。
图4-1 供电电源设计原理图
4.2 单片机系统模块设计
单片机系统模块设计以STM32F103C8T6为核心、晶振及其外部电路组成的。其中STM32F103C8T6基于ARM Cortex-M3核心,具有较高的性能和低功耗特点,广泛应用于嵌入式系统、工业控制、汽车电子、消费电子、物联网设备等领域。
晶振用于产生单片机工作所需要的时钟信号,唯一的时钟信号控制下的时序可以保证单片机各部件的同步工作。PB0,PB1分别对应连接MPU6050六轴传感器的SCL,SDA引脚,PB10,PB11,PB12,PB13和PB15分别连接LCD显示屏的DC,CS,RST,CLK和MOSI引脚,PA0,PA1,PA2,PA3引脚分别连接交互按键的KEY1,KEY2,KEY3,KEY4引脚,PA5连接蜂鸣器正极引脚,PA4连接分压电阻。单片机最小系统设计原理图如图4-2所示。
图4-2 单片机系统模块设计原理图
4.3 六轴传感器模块设计
六轴传感器模块可以输出原始的三轴加速度、三轴陀螺仪,再通过单片机的姿态解算得出姿态角。六轴传感器是由MPU6050组成,该模块通过IIC协议与单片机进行通讯,传递偏移角度信息。MPU6050芯片内部还集成了一个DMP数据处理模块,可以直接输出四元数,这样只需将四元数转换成欧拉角即可得到三轴角度信息,这大大减轻了主控的运算压力。还设计单独LDO进行供电,加强了MPU6050的稳定性。六轴传感器设计原理图如图4-3所示。
图4-3 六轴传感器模块设计原理图
4.4 充电模块设计
充电模块是由TYPE-C接口、TP4056充放电管理芯片和DW01过充防电源保护芯片组成,TP4056可通过改变PROG引脚电阻的阻值精确设定充电电流,并且提供了充电指示、多种保护。TP4056和DW01的组合为锂电池提供了全面的充放电管理和保护,当电池充电时,电池电压升到4.2V时,TP4056自动断开充电电路。当电池放电时,电池电压降到2.2V时,DW01自动断开放电电路。两者相互结合确保电池安全、稳定运行,延长使用寿命,双重保护机制降低电池故障风险,提升使用安全性。充电模块设计原理图如图4-4所示。
图4-4 充电模块设计原理图
4.5 交互模块设计
交互模块采用轻触按键,将单片机引脚设置成上拉输入的模式,PA0,PA1,PA2,PA3引脚分别连接交互按键KEY1,KEY2,KEY3,KEY4,交互按键的另一端连接GND。通过定时器定时循环扫描单片机对应引脚的高低电平,当识别到引脚为低电平则代表按键按下。还可以对按键按下的时间进行计时,从而判断短按还是长按。四个按键短按分别可以选择显示角度模式:翻滚角、俯仰角、偏航角、全部角度显示。四个按键长按分别可以进行暂停、角度单位转换、测量相对角度、返回主页面。交互模块设计原理图如图4-5所示。
图4-5 交互模块设计原理图
4.6 显示模块设计
显示模块采用2.4寸TFT-LCD,其驱动芯片的型号为ST7789V,使用SPI与单片机进行通信。显示汉字时,需要使用PCtoLCD2002软件进行对用到的汉字取模,该软件将汉字转换成数组,这样通过单片机发送给LCD就可以显示汉字。将单片机的PB10,PB11,PB12,PB13和PB15分别连接LCD显示屏的DC,CS,RST,CLK和MOSI引脚。显示模块原理图如图4-6所示。
图4-6 显示模块设计原理图
4.7 报警模块设计
报警模块采用蜂鸣器作为报警装置,选用额定电压为3.3V的蜂鸣器,这样单片机引脚就可以直接控制蜂鸣器的状态,无需复杂的外部电路,简化的硬件结构。本设计通过STM32的PA5引脚配置为推挽输出模式进行控制蜂鸣器的状态。当电源管理芯片检测到锂电池电压低于3.7V阈值时,单片机引脚输出高电平控制蜂鸣器响起,同时LCD同步显示电池电压低从而提醒用户进行充电或断电。报警模块原理图如图4-7所示。

图4-7 报警模块设计原理图
原理图设计特点

- 供电隔离:采用双LDO设计,一路为STM32、LCD、按键等数字电路供电,另一路单独为MPU6050供电,减少数字噪声对模拟传感器的影响。
- 电量检测:电池正极经过两个精密分压电阻(例如100kΩ和100kΩ,分压比1/2)送入STM32的PA4(ADC),通过计算得到真实电池电压。
- 充电指示与保护:TP4056的CHRG引脚(充电中低电平)和STDBY引脚(充满低电平)分别驱动红绿双色LED,直观显示充电状态。电池端增加DW01+8205A保护电路,防止过充(>4.2V)和过放(<2.4V)。
- LCD接口:采用SPI四线模式(SCLK, MOSI, DC, CS, RST),节省I/O资源,同时利用PB10-PB15的硬件SPI提高刷新速度。
PCB设计介绍

- 布局:STM32置于中心,MPU6050远离大电流路径和发热元件(如TP4056);LCD排座位于板边,按键整齐排列于一侧;
- 电源完整性:LDO输入输出端均放置电容,确保电源纹波小于50mV。
五、软件流程图和关键代码介绍
软件流程图
先初始化六轴传感器模块和显示模块,其次读取传感器六轴数据并检测传感器是否有数据,然后通过原始的三轴加速度、三轴陀螺仪通过姿态解算得出姿态角,最后进行卡尔曼滤波。并且可以通过按键选择显示角度模式、单位、暂停、重置设备的零点、返回主界面,将角度数据实时显示在显示屏上;还可以定时通过ADC检测锂电池电压,实现电量显示和低电量提醒。设计思路流程图如图5-1所示。
图5-1 软件整体设计流程图
5.2 系统初始化程序设计
当本系统接通电源以后,会首先进入初始化程序。包括对STM32F103C8T6单片机系统初始化,LCD显示屏初始化,定时器初始化,ADC初始化,按键初始化,MPU6050初始化等。其中STM32F103C8T6单片机初始化包括设置时钟,配置IO口,初始化存储器,配置中断系统等。单片机初始化是确保单片机能够正常工作的重要环节,通过合理的初始化操作,可以使单片机在工作时能够保持稳定、可靠和高效的运行状态,实现各种功能的需求。系统初始化程序设计流程图如图5-2所示。

图5-2 系统初始化程序设计流程图
5.3 六轴传感器模块程序设计
MPU6050使用IIC的通信协议,首先配置STM32的IIC控制器,通过IIC向MPU6050写入初始化配置,然后单片机会读取MPU6050的三轴加速度和陀螺仪,通过IIC写入MPU6050的寄存器,启用DMP功能。设置DMP输出四元数通过寄存器配置选择DMP输出数据格式为四元数,最后读取四元数数据通过数学运算通过转换成欧拉角,通过卡尔曼进行滤波,使输出数据变得平滑。六轴传感器程序设计流程图如图5-3所示。
图5-3 六轴传感器程序设计流程图
5.4 LCD显示屏程序设计
本系统选用LCD作为人机交互终端,相较OLED具备显著优势。与OLED相比,LCD成本更低、寿命更长、更薄更轻、响应速度更快、无烧屏问题、在500cd/m²强光环境下仍保持清晰可视度和显示一致性更佳。主要作用是用来显示角度的大小,显示模式和显示电量。在单轴角度显示时,屏幕刷新周期为0.1秒,在全部角度显示的时候,屏幕刷新周期为0.3秒。LCD显示屏程序设计流程图如图5-4所示。
图5-4 LCD显示屏程序设计流程图
5.5 低电量显示及报警程序设计
当单片机的ADC检测到电池电压低于3.7V时,单片机连接蜂鸣器的引脚输出高电平,使蜂鸣器发出声音,提醒使用人员注意电池电量,并且LCD显示屏弹出低电量提醒。低电量显示及报警程序设计流程图如图5-5所示。
图5-5 低电量显示及报警程序设计流程图
5.6 相对角度测量程序设计
用户可以通过按下按键来重置设备的零点,进行相对角度的测量。按下按键后当前三轴角度置零,之后显示屏上显示的数值均是设备按下按键时的角度与当前角度形成的夹角并在屏幕左上角显示‘0’,用户可按任意键退出相对角度测量模式。相对角度测量程序设计流程图如图5-6所示。
图5-6 相对角度测量程序设计流程图
5.7 角度转弧度程序设计
用户可以通过按下按键来进行LCD显示屏显示的角度和弧度的转换。当按键按下,角度转换标志位置1,显示为弧度制并在屏幕左上角显示弧度。当重新按下该按键,角度转换标志位置0,显示为角度制并在屏幕左上角显示度。角度转弧度程序设计流程图如图5-7所示。
图5-7 角度转弧度程序设计流程图
5.8 显示暂停程序设计
用户可以通过按下按键,进行角度显示的暂停。当对应按键按下,暂停标志位置1,单片机程序进入死循环,达到暂停效果。当任意按键按下,暂停标志位置0,程序恢复运行。显示暂停程序设计流程图如图5-8所示。
图5-8 显示暂停程序设计流程图
关键代码介绍
1. 四元数转欧拉角(DMP输出直接转换)
c
// 从DMP寄存器读取四元数 q30格式
long quat[4];
dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors, &more);
// 转换为浮点四元数
float q0 = quat[0] / q30;
float q1 = quat[1] / q30;
float q2 = quat[2] / q30;
float q3 = quat[3] / q30;
// 计算欧拉角
Pitch = asin(-2 * q1 * q3 + 2 * q0 * q2) * 57.3;
Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2 * q2 + 1) * 57.3;
Yaw = atan2(2 * q1 * q2 + 2 * q0 * q3, -2 * q2 * q2 - 2 * q3 * q3 + 1) * 57.3;
2. 卡尔曼滤波函数(简化版)
c
typedef struct {
float Q; // 过程噪声协方差
float R; // 测量噪声协方差
float P; // 估计误差协方差
float K; // 卡尔曼增益
float X; // 状态估计值
} KalmanFilter;
float Kalman_Update(KalmanFilter *kf, float input) {
// 预测
kf->P = kf->P + kf->Q;
// 更新
kf->K = kf->P / (kf->P + kf->R);
kf->X = kf->X + kf->K * (input - kf->X);
kf->P = (1 - kf->K) * kf->P;
return kf->X;
}
3. 电量百分比计算(基于锂电池放电曲线)
c
int Battery_GetPercentage(float voltage) {
if (voltage >= 4.20) return 100;
if (voltage <= 3.70) return 0;
// 简化的线性映射(实际可用分段查表)
return (int)((voltage - 3.70) / (4.20 - 3.70) * 100);
}
4. 按键长短按识别(定时器中断每10ms调用)
c
void Key_Scan(void) {
static uint16_t key_time[4] = {0};
static uint8_t key_last[4] = {1,1,1,1};
uint8_t key_now[4];
key_now[0] = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);
// ... 其他按键
for (int i=0; i<4; i++) {
if (key_last[i] == 0 && key_now[i] == 1) { // 上升沿
if (key_time[i] < 80) // 短按(小于800ms)
short_press_callback(i);
else
long_press_callback(i);
key_time[i] = 0;
}
if (key_now[i] == 0) key_time[i]++; // 按下计时
key_last[i] = key_now[i];
}
}
六、功能展示图及说明
实物外观
图6-1 最终实物图
6.1 角度读取与显示
本系统的人机交互模块集成了四个轻触式按键(KEY1-KEY4),采用定时器循环扫描来确定按键状态。在短按操作模式下(触发时长<800ms):KEY1短按切换至俯仰角(Pitch)单轴显示模式;KEY2短按切换至翻滚角(Roll)单轴显示模式;KEY3短按切换至偏航角(Yaw)单轴显示模式;KEY4短按激活三轴同屏显示功能,通过分栏布局同时呈现Pitch/Roll/Yaw数值。在长按操作模式下(触发时长>800ms):KEY1长按冻结当前角度信息,KEY2长按进入相对测量模式,KEY3长按切换角度单位体系,KEY4长按返回主界面。按键功能如表1所示,按键如图6-2所示。
表1 按键功能图
按键 | 引脚 | 短按 | 长按 |
KEY1 | PA0 | 俯仰角显示 | 角度显示暂停 |
KEY2 | PA1 | 翻滚角显示 | 相对角度测量 |
KEY3 | PA2 | 偏航角显示 | 切换角度单位 |
KEY4 | PA3 | 全部角度显示 | 返回主界面 |
图6-2 按键分布图
对实物进行功能测试,初始状态下,分别从左至右短按按键,LCD屏幕分别显示俯仰角,翻滚角,偏航角,全部显示。其中每个界面均有当前显示角度的文字提醒来提醒使用者当前角度信息,并且LCD屏幕右上角均有当前电池电量显示。测试得出在单轴角度显示时,角度刷新时间为0.1秒,在全部角度显示时,角度刷新时间为0.3秒。角度显示如下图6-3所示。


图6-3 角度显示
6.2 模式选择与显示
分别从左至右长按按键,本设计功能分别为暂停,相对角度测量,角度弧度转换,返回主界面。本设计长按KEY1按键后触发暂停功能,当长按KEY1,松开手后,LCD显示冻结角度值角度检测暂停。用户按任意按键,系统立即恢复传感器数据流处理与动态角度刷新,确保测量连续性。角度检测暂停如下图6-4所示。

图6-4 角度检测暂停
本系统长按KEY2按键后触发相对角度测量模式,当长按KEY2,松开手后,相对角度测量。当前三轴角度置零,之后显示屏上显示的数值均是设备按下按键时的角度与当前角度形成的夹角,并在LCD屏幕左上角显示‘0’可提升使用者当前为相对角度测量,用户可按任意键退出相对角度测量模式,LCD屏幕上的‘0’消失。相对角度测量如下图6-5所示。
图6-5 相对角度测量
本系统长按KEY3按键后触发角度弧度转换,当长按KEY3,松开手后,进行显示数值的角度制和弧度制的转换。左上角显示弧度,代表当前数值显示为弧度制,当再次长按KEY3,松开手后,左上角显示度,代表当前数值显示为角度制。角度弧度转换如下图6-6所示。
图6-6 角度弧度转换
本系统长按KEY4按键后触发返回主界面操作,当长按KEY4,松开手后,系统返回开机后的主界面,可供使用人员查看。返回主页面如下图6-7所示。
图6-7 返回主页面
5.3 电量显示与提醒
本设计在电源管理模块中嵌入了实时电量监测功能,通过STM32内部12位ADC以100ms的周期对锂电池电压进行周期性采样。并在LCD显示屏右上角显示当前电量。当检测到电池电压降至3.7V阈值时,系统立即触发两级警报机制:蜂鸣器发出声音,同时LCD显示屏下方弹出低电量提醒。期间设备仍维持核心测量功能。低电量提醒如下图6-8所示。
图6-8 低电量提醒
本设计采用TP4056充放电管理芯片进行充电的管理并且提供了充电指示。当电池在充电时,蓝色指示灯亮起。当电池充满电时,蓝色指示灯和黄色指示灯两个灯都亮起。TP4056内置输入过压保护、电池反接保护、自动断电(充满后停止充电)。锂电池充电指示如下图6-9所示。
图6-9 充电指示
七、设计中遇到的难题和解决方法
1. MPU6050数据漂移与噪声
- 问题:静止时角度输出仍有±1°的波动,且长时间静止后出现缓慢漂移(积分累积误差)。
- 解决方法:
- 启用MPU6050内部的低通滤波器(DLPF_CFG=0x01,带宽184Hz)。
- 采用卡尔曼滤波对每个角度的输出进行平滑,有效抑制高频噪声。
- 放弃纯陀螺仪积分姿态解算,改用DMP输出四元数,因为DMP内部已融合加速度计数据,无长期漂移。
2. 按键长按/短按误判
- 问题:长按功能时,会先触发一次短按动作,导致功能紊乱。
- 解决方法:
- 在按键释放时(上升沿)判断按下的持续时间,期间不触发任何动作。
- 区分短按和长按的回调函数,互斥执行。
- 增加硬件电容滤波和软件去抖(连续两次采样值相同才确认电平变化)。
3. 锂电池电量检测不准确
- 问题:ADC读取的分压值跳动剧烈,且电池带载和空载时电压差异大,导致电量百分比忽高忽低。
- 解决方法:
- 对ADC进行过采样(连续读取16次取平均)。
- 采用分段线性映射表代替简单线性计算,更贴合锂电池实际放电曲线(4.20V-100%,3.90V-60%,3.70V-10%等)。
八、对本次竞赛的心得体会
通过本次的设计与实现,我收获颇丰,深刻体会到嵌入式系统开发从理论到实践的全过程。
技术创新方面
- 传感器融合算法:掌握了MPU6050的DMP使用方法,理解了四元数与欧拉角的转换关系,以及卡尔曼滤波在实际工程中的降噪效果。相比于传统机械倾角仪,数字化方案大幅提高了响应速度和抗干扰能力。
- 人机交互设计:仅用4个按键实现了6种以上功能(短按、长按、组合),得益于状态机思想和定时器扫描机制,提升了设备的操作效率。
- 低功耗与电源管理:学习了锂电池充放电保护电路的设计(TP4056+DW01),掌握了ADC检测电量的实用技巧,以及如何平衡性能与续航。
工程实践方面
- 硬件调试经验:遇到MPU6050 I2C通信失败、LCD背光不亮、蜂鸣器不响等问题,通过示波器抓取波形、检查虚焊点、查阅数据手册逐一排除,锻炼了系统级故障排查能力。
- 代码模块化:将传感器读取、卡尔曼滤波、按键扫描、LCD显示等模块独立封装,便于后期维护和功能扩展(如增加蓝牙传输)。
- 文档整理习惯:编写完整的设计说明书、原理图、BOM表、源码注释,为后续同学参考和团队协作打下基础。
社会应用价值
- 本倾角仪可用于太阳能面板安装角度校准、塔吊倾斜监测、机器人姿态反馈、精密平台调平等领域,替代昂贵的进口倾角传感器,降低中小企业测量成本。
- 相对角度测量功能特别适合需要基准对位的场景(如机械臂零点标定),一键置零极大方便了现场操作。
个人成长方面
- 从“会调库”到“懂原理”:最初只调用MPU6050的现成库,后来因滤波效果不理想而深入研究DMP配置和卡尔曼滤波公式,实现了定制化优化。
- 项目规划能力:学会了先分模块验证再整合调试的开发流程,避免了“搭积木”式的混乱。
- 应对挫折的韧性:在单片机频繁复位、LCD显示乱码等困难面前,坚持查阅上百页文档、反复尝试,最终成功时的成就感难以言表。
未来改进方向
- 增加蓝牙或Wi-Fi模块(如ESP-01S),将角度数据上传至手机APP,实现远程监测和数据记录。
- 加入电子罗盘(磁力计)进行偏航角校准,减少地磁干扰。
- 设计一体式外壳封装,提升防尘防水等级(IP54),适应户外严苛环境。
- 开发PC端上位机,通过USB虚拟串口实时绘制角度变化曲线,便于数据分析。
通过本次竞赛,我不仅完成了一款实用的测量工具,更重要的是掌握了从需求分析、硬件选型、电路设计、程序开发到整机调试的全流程工程方法。感谢竞赛平台提供的宝贵机会,我将继续深耕嵌入式领域,为智能制造和物联网发展贡献自己的力量。
