汽车行驶姿态 -- 初识
之前對 MPU6050 有過一些了解,原始數(shù)據(jù)可以獲取,但是卡爾曼濾波沒有搞定,最后也沒搞出個所以然來。
現(xiàn)在定制了一個汽車行駛姿態(tài)傳感器,簡單來看一下吧。
一、功能
根據(jù)行駛中汽車加速度的變化,判斷出汽車行駛過程中的幾種狀態(tài)類型:意外加速,類似被追尾,類型符號為“A”。
急加速,司機猛踩油門導(dǎo)致,類型符號為“B”。
正常行駛,乘車人沒有不舒服的感覺,類型符號為“C”。
急減速,司機猛踩剎車導(dǎo)致,類型符號為“D”
特別急減速,類似導(dǎo)致碰撞事故前的剎車直至碰撞,類型符號為“E”。
二、電氣參數(shù)及通訊協(xié)議
1、供電電壓:DC 3.3v,消耗電流不大于200mA。2、串口通訊協(xié)議約定:
異步,波特率:115200,起始位:1;數(shù)據(jù)位:8;停止位:1;硬件校驗:無;流控:無。
3、模塊自動上傳(除正常行駛模式“C”外):依序為0xf,數(shù)據(jù)字節(jié)1,數(shù)據(jù)字節(jié)2。上位機收到數(shù)據(jù)并驗證正確后,回復(fù)0xaa,0x55給模塊。否則模塊按3秒時間間隔連續(xù)最多發(fā)3次。收到正確回復(fù)即終止發(fā)送。
4、模塊按需上傳:上位機向模塊發(fā)送:0xff,0xa5,0x5a,模塊收到數(shù)據(jù)并驗證正確后,按照自動上傳數(shù)據(jù)格式上傳數(shù)據(jù)。上位機在3秒內(nèi)不能收到數(shù)據(jù),會再發(fā)請求,最多連發(fā)3次,收到數(shù)據(jù)終止發(fā)送。
三、測試
使用 USB 轉(zhuǎn)TTL、串口調(diào)試工具,來進行一下測試。
注意,波特率要和傳感器的一致,設(shè)為 115200,采用十六進制顯示。
然后根據(jù)上面的協(xié)議,來分析收到的數(shù)據(jù):
模塊自動上傳模式下,碰撞一下收到數(shù)據(jù)?0F 41 BE / 0F 45 BA?
然后查看ASCII碼,參看:C語言再學(xué)習(xí) -- ASCII碼表(轉(zhuǎn))
可得,字符 'A' ~'E'的十六進制ASCII碼分別為 41~45而十六進制 BE 應(yīng)該是 41 的 反碼,參看:C語言再學(xué)習(xí) -- 負數(shù) 因此,協(xié)議里的數(shù)據(jù)字節(jié)1是字符 'A' ~'E'對應(yīng)的十六進制ASCII碼,而?數(shù)據(jù)字節(jié)2 是 數(shù)據(jù)字節(jié)1 的反碼。
然后接著看協(xié)議:上位機收到數(shù)據(jù)并驗證正確后,回復(fù)0xaa,0x55給模塊。否則模塊按3秒時間間隔連續(xù)最多發(fā)3次。收到正確回復(fù)即終止發(fā)送。 我碰撞了一次,當未回復(fù)0xaa,0x55給模塊時,確實是按3 秒時間間隔連續(xù)發(fā)了3次數(shù)據(jù)。
然后這次在發(fā)送完一次數(shù)據(jù)后,我點擊手動發(fā)送十六進制 aa55。 結(jié)果是不能終止發(fā)送,它還是會發(fā)送3次數(shù)據(jù)。難道是我手動發(fā)送數(shù)據(jù)太慢了?? 再有有時碰撞一次它會發(fā)送比如 0F 41 BE 0F 45 BA 兩組數(shù)據(jù),又是意外加速,又是特別急減速。這是什么鬼? 這個傳感器到底是不是OK的,要打一個問號了。
最后還有問題就是這個傳感器是2軸的,碰撞還要考慮角度。只能模擬汽車前后撞,理論上左右撞,上下撞也是不行的。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的汽车行驶姿态 -- 初识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最优化学习笔记(十三)——基本共轭方向算
- 下一篇: Elasticsearch 自定义分析器