项目简介
本项目是基于Arduino和Python的电动车控制系统,能对电动车仪表盘、信号灯、电池状态等功能进行实时监控与控制。借助CAN总线和串行通信和多个硬件模块交互,用Python开发的GUI界面可显示和记录车辆各项数据,适用于电动车或电动汽车的控制系统开发,具备实时数据采集、处理和显示功能。
项目的主要特性和功能
- CAN总线通信:经CAN总线和多个硬件模块进行数据交互,支持CAN消息的打包、解包和广播。
- 串行通信:通过串行通信和Arduino Teensy板进行数据交互,支持数据的实时传输和解析。
- 多任务处理:运用FreeRTOS实现多任务并发处理,保证系统的实时性和稳定性。
- 仪表盘控制:实时显示车辆的速度、信号灯状态、电池电压、电流等信息,通过GUI界面可视化展示。
- 数据记录:把车辆关键数据记录到SD卡,作为“黑匣子”数据,同时通过XBee模块将数据实时传输到地面站。
- 硬件控制:控制电动车的信号灯、雨刷、刹车灯等外部设备,根据车速和电机转速控制电离合器的接合。
- 错误处理与日志记录:系统有错误处理机制,能记录错误和异常信息,确保系统可靠性。
安装使用步骤
环境准备
- 确保安装Python环境,安装Tkinter库和串行通信所需的库(如
pyserial
)。 - 安装Arduino IDE,确保安装所需的库(如
MCP_CAN
、FreeRTOS
、SdFat
等)。
硬件连接
- 将Arduino Teensy板通过USB连接到计算机。
- 连接CAN总线模块、XBee模块、SD卡模块等硬件设备。
代码配置
- 下载并解压项目代码。
- 根据硬件配置,调整代码中的串行端口、波特率、CAN总线频率等参数。
运行程序
- 在Arduino IDE中上传相应的代码到Teensy板(如
NV10_front_MEGA
、NV10_Back_MEGA
等)。 - 运行Python程序,启动GUI界面。
- 确保串行端口和Arduino板的连接设置正确,GUI界面将实时显示车辆的各项数据。
数据监控与记录
- 通过GUI界面实时监控车辆的速度、信号灯状态、电池电压等信息。
- 数据将自动记录到SD卡中,并通过XBee模块传输到地面站进行进一步分析。
注意事项
- 运行程序前,确保Arduino Teensy板上的代码已正确配置,且与Python程序中的通信协议相匹配。
- 根据具体的硬件和通信需求,调整串行端口、波特率、CAN总线频率等设置。
- 确保CAN总线的终端电阻配置正确,以保证通信的稳定性。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】