汽车行驶姿态 -- 初识
来源:互联网 发布:医院自己签字 知乎 编辑:程序博客网 时间:2024/06/10 00:01
之前对 MPU6050 有过一些了解,原始数据可以获取,但是卡尔曼滤波没有搞定,最后也没搞出个所以然来。
现在定制了一个汽车行驶姿态传感器,简单来看一下吧。
一、功能
根据行驶中汽车加速度的变化,判断出汽车行驶过程中的几种状态类型:意外加速,类似被追尾,类型符号为“A”。
急加速,司机猛踩油门导致,类型符号为“B”。
正常行驶,乘车人没有不舒服的感觉,类型符号为“C”。
急减速,司机猛踩刹车导致,类型符号为“D”
特别急减速,类似导致碰撞事故前的刹车直至碰撞,类型符号为“E”。
二、电气参数及通讯协议
1、供电电压:DC 3.3v,消耗电流不大于200mA。2、串口通讯协议约定:
异步,波特率:115200,起始位:1;数据位:8;停止位:1;硬件校验:无;流控:无。
3、模块自动上传(除正常行驶模式“C”外):依序为0xf,数据字节1,数据字节2。上位机收到数据并验证正确后,回复0xaa,0x55给模块。否则模块按3秒时间间隔连续最多发3次。收到正确回复即终止发送。
4、模块按需上传:上位机向模块发送:0xff,0xa5,0x5a,模块收到数据并验证正确后,按照自动上传数据格式上传数据。上位机在3秒内不能收到数据,会再发请求,最多连发3次,收到数据终止发送。
三、测试
使用 USB 转TTL、串口调试工具,来进行一下测试。
注意,波特率要和传感器的一致,设为 115200,采用十六进制显示。
然后根据上面的协议,来分析收到的数据:
模块自动上传模式下,碰撞一下收到数据 0F 41 BE / 0F 45 BA
然后查看ASCII码,参看:C语言再学习 -- ASCII码表(转)
可得,字符 'A' ~'E'的十六进制ASCII码分别为 41~45
而十六进制 BE 应该是 41 的 反码,参看:C语言再学习 -- 负数
因此,协议里的数据字节1是字符 'A' ~'E'对应的十六进制ASCII码,而 数据字节2 是 数据字节1 的反码。
然后接着看协议:上位机收到数据并验证正确后,回复0xaa,0x55给模块。否则模块按3秒时间间隔连续最多发3次。收到正确回复即终止发送。
我碰撞了一次,当未回复0xaa,0x55给模块时,确实是按3 秒时间间隔连续发了3次数据。
然后这次在发送完一次数据后,我点击手动发送十六进制 aa55。
结果是不能终止发送,它还是会发送3次数据。难道是我手动发送数据太慢了??
再有有时碰撞一次它会发送比如 0F 41 BE 0F 45 BA 两组数据,又是意外加速,又是特别急减速。这是什么鬼?
这个传感器到底是不是OK的,要打一个问号了。
最后还有问题就是这个传感器是2轴的,碰撞还要考虑角度。只能模拟汽车前后撞,理论上左右撞,上下撞也是不行的。
阅读全文
0 0
- 汽车行驶姿态 -- 初识
- 汽车行驶姿态 -- 串口通信
- 汽车行驶记录仪
- 汽车行驶加油问题
- 汽车加油行驶问题
- 汽车加油行驶问题
- 模拟汽车行驶
- 汽车加油行驶问题
- 【dp】汽车加油行驶问题
- AXSceneControl汽车沿着pollyline行驶
- 计算汽车行驶的方向
- 汽车加油行驶问题专题
- 计算汽车行驶的方向
- 计算汽车行驶的方向
- 汽车配置名词解释(2):行驶配置部分
- 谈一谈汽车无法行驶应该怎么办
- [codevs 1912] 汽车加油行驶问题
- 夜间汽车行驶辅助照明系统
- 推导相机变换矩阵
- ormlite的一点常用的操作
- javaweb报表和bi可以参考的
- extjs4.2 Grid隐藏某列
- 支持向量机通俗导论(理解SVM的三层境界)
- 汽车行驶姿态 -- 初识
- 自定义Mybatis类型处理器对参数和结果集进行自定义处理
- 去雾算法的代码实现(不含Soft Matting)
- Mac OS X
- vs2015开发Windows服务
- 2017年全国建设科技推广服务平台年会在青岛召开
- 基于51的串行通讯原理及协议详解
- 第一问,python2与python3的区别初探
- 礼物说,一款小程序给你生活最好的选择