一款用于显示惯性测量单元(IMU)传感器数据并检测车辆危险驾驶行为的桌面应用程序。
- 支持 TCP 和串口两种连接方式
- 实时显示三轴加速度(m/s²)
- 实时显示三轴角速度(°/s)
- 实时显示温度(°C)
- 使用 OxyPlot 绘制实时曲线图
- 互补滤波器 (Complementary Filter)
- 卡尔曼滤波器 (Kalman Filter)
- 重力一致性验证器,用于判断传感器数据可信度
- 急加速检测
- 急刹车检测
- 急转弯检测
- 碰撞检测
- 翻车检测(基于 Roll/Pitch 角度)
- 传感器自动校准
- 报警时自动截图
- 报警时播放语音提示
- 消息历史记录查看
- 丰富的配置选项
- .NET 8 + WPF
- OxyPlot.Wpf 2.2.0 - 图表绘制
- System.IO.Ports 10.0.1 - 串口通信
- System.Drawing.Common 10.0.1 - 截图处理
期望接收以 T 开头的文本行,格式如下:
T<时间戳(毫秒)>,<加速度X>,<加速度Y>,<加速度Z>,<角速度X>,<角速度Y>,<角速度Z>,<温度>
示例:
T1234567890,0.01,0.02,9.81,0.1,0.2,0.3,25.5
IMU显示器/
├── MainWindow.xaml(.cs) # 主窗口
├── SettingsWindow.xaml(.cs) # 设置窗口
├── AboutWindow.xaml(.cs) # 关于窗口
├── InfoListWindow.xaml(.cs) # 消息历史窗口
├── KalmanAttitudeFilter.cs # 卡尔曼滤波器
├── ComplementaryFilter.cs # 互补滤波器
├── GravityValidator.cs # 重力验证器
├── SensorCalibrator.cs # 传感器校准器
├── VehicleDangerDetector.cs # 危险行为检测器
├── SettingsModel.cs # 配置模型
├── SoundManager.cs # 声音管理器
├── ToBitmapTool.cs # 截图工具
└── IFilter.cs # 滤波器接口
# 恢复依赖
dotnet restore
# 编译
dotnet build
# 运行
dotnet run或直接在 Visual Studio / Rider 中打开 IMU显示器.sln 文件运行。
程序启动时自动读取 settings.xml 配置文件,可通过设置窗口修改:
- 连接设置: TCP/串口参数
- 图表设置: 时间跨度、刷新率等
- 滤波器设置: 互补滤波器 Alpha、卡尔曼滤波器参数
- 检测器设置: 危险行为检测阈值
- 其他设置: 语音提示、报警截图等