|
發布時間: 2020-8-7 09:32
正文摘要:最近在做一個基于ADXL345的自動提示剎車山地車尾燈的產品,硬件是做好了大概的原理就是通過檢測一個軸加速度來判斷有沒有在剎車 現在有問題是:要通過怎么樣的算法來判斷這個剎車與否?想是幾個算法,有做過相關的能否 ... |
Y_G_G 發表于 2020-8-7 21:48 嗯,我昨天看了一下這個芯片的資料。 談一下更遠的想法, 你的器件做好了以后,電路板需要是在器件內平放的,如果不能相對水平放置,Z軸的G值就不會是1個G。可能會小于1個G。 單車的款式不同,導致外形會各有不同。 器件安裝好后,如果需要調水平狀態,因為只有在水平狀態,器件才能最精準,那么這就是個缺陷了。 所以我想, 你可能需要重建一個相對坐標系。開機第一步,就是檢測哪個虛擬坐標的Z軸是1個G。 然后確定傾角,算法應該有現成的,不過計算量會有點大,可能得用純16位以上芯片來做了。 另外,芯片平放時,你做的水平運動,不要測Z軸數據, 測一個X軸,或者Y軸數據試試,數據變動幅度會更明顯。 |
robinsonlin 發表于 2020-8-7 17:48 上坡和下坡暫時歸入滑行這一項來算,暫時只取一個軸的數據,如果可行的話就省得去讀取XYZ三個軸的數據了 多謝提醒,我倒是沒有考慮到加速度過程的減速,回頭再改改 現在只能是在辦公室里用手左右擺擺試一下,小跑一小段停下也都能亮燈提示了 明天還考慮一下加速過程中減速的問題 |
Y_G_G 發表于 2020-8-7 15:06 剎車的狀態,確實是對應G值的改變,你前面的理解是對的,后面的確實不完全正確。 只要有加速度,速度就會改變,無論正負。如果為正值時是在加速,那么為負值時,就是在減速。 當加速度為0時,速度才是恒定的。 這個時候,理想狀態是不受任何作用力的。 實際上,總會受到摩擦力和空氣阻力,這才導致你滑行的單車會停下來。 Z軸對應的狀態應該是加速、勻速(G值為0)、減速三個狀態。 靜止狀態,實際上也是一種勻速狀態。 所以,剎車的發生一定是有個大于摩擦力和空氣阻力的 力產生了,才會導致剎車。 所以,按照你的思路,如果滑行中的單車,會在Z軸上輸出一個信號,只要是在平路上滑行,這個信號肯定是平滑遞減信號。在滑行過程中,這個遞減信號突然增大,才可以判斷為有剎車。 遞減恢復原來的速率,就是剎車消失了。 信號為0,就是單車停下來了。 以上只是詳細說了滑行過程中的剎車情況,還有加速過程剎車,勻速過程剎車,上坡剎車,和下坡剎車,以及坡路靜止剎車,應該都可以通過程序讀取出狀態的。不信你可以測試,等待你的測試結果。 持續關注你的進展。 |
robinsonlin 發表于 2020-8-7 12:00 其實沒有那么復雜的 我只取一個軸的數據,比如Z軸,尾燈是夾在單車后面的,既然是尾燈它就一定是身后的,那么,Z軸的方向也是固定的 那么,對于Z軸,就只有加速度,靜止和減速度三種狀態了 如果一直上坡,比如它一直是輸出0.5G的數據,那就說明它一直是這個狀態,并沒有加速度 如果上一時間是輸出0.5G,下一個時間輸出0.9G,那么,就認為它是加速度了 現在的問題主要是這個取樣的時間和算法,在這一塊沒有經驗,想向別人取點經 最終結果還是要在單車上測試才行的了 |
|
本帖最后由 robinsonlin 于 2020-8-7 14:44 編輯 在平地上,F1是一個持續存在的摩擦阻力,只有當F1方向的力突然大于這個摩擦阻力時,才可能是有擦車的行為發生。 所以可能需要一個函數去計算這個F1方向力的變化是不是平滑的。 持續判斷,持續比較吧,可能需要實際去測量,取一個最大的阻力值作為觸發點。 在坡地上,其實也可以判斷,這個判斷應該放在第一級。在坡地上時,重力G分解為G1 和G2, G1比G小,因為你的車頭水平度已經發生了變化, 芯片實際檢測到重力軸向的力應該是G1,這時就可以判斷是在坡地上了,至于是上坡還是下坡,就得通過 平地到坡地的受力突變來判斷了, 這還得寫一個重力突變判斷函數,判斷依據就是重力軸向的上的信號變小了多少。如果是持續變小,(下坡的時候會有一個微小的失重過程)可以判斷為下坡, 如果是變小后,基本維持不變,那就是上坡。 這個也得實地測量后才有依據。上坡過程中,G2是阻力,運動軸向上的力突然大于F1+G2,便是判斷為剎車了。下坡過程中,G2變成了動力,所以這個時候,F1-G2這個應該為負數,這個負數的絕對值突然變小,可判斷為剎車了。 關于靜止時,是否剎車的判斷, 應該可以通過運動軸向上是否有輕微的信號變化來判斷。因為,就算是勻速,也不可能是絕對的勻速,運動過程中,軸向上肯定會有信號波動。 只有靜止的時候,各個軸向才不會有信號變化。 當G1<G ,但是運動軸向信號為0,則認為是坡道剎車,可以一直觸發剎車。 當G恒定為一個常量,切G1=G,軸向上信號為0時,可以判斷為平地剎車,做個延遲關閉吧,這種情況也很少出現,功能也不實用。 大致思路是這樣,細節可以還需要有實際數據再推敲。 |
30.jpg (47.12 KB, 下載次數: 66)