2023年12月31日 星期日

製作 GPS 測速器


這是用於機車長距離行駛時避免一直低頭看時速錶而設的計畫, 但現實並沒有那麼美好
在多種限制的考量下建議還是低頭看時速錶比較可靠XD 這玩具就還是看看就好

線路圖:wt-25_gps-speed
源碼放在前篇 用 NUC131 製作 UI 板
編譯 target 為 gps, 使用 uart-loader 載入應用即可

升壓電源配置上網找計算機算, 我配置的參數如下:


GPS 用 UP501 這顆, 這是聯發科方案, MediaTek MT3329, 66-channel receiver

這是 2010 年的產品, 13 年前的XD 我的庫存有一顆, 很久以前買的當時忘記是要幹麻
最後就閒置, 所以直接抓起來用, 想不到居然還能用XD 本來想買一顆新的, 但如上面描述
這東西不好用, 所以就拿古董庫存湊合一下

程式部份主要是 ui-gps.c, 這顆 GPS 通電後就會開始丟 NMEA 訊息, 傳輸速度為 9600
我們就只要分析讀出資料然後做反應即可, 分析的函數為 gps_parse()
只看 $GPRMC 這資料, 一段時間沒看到這資料就回報錯誤, 在七段顯示器印出 -EE-
看到 EE 就是 GPS 沒輸出或是連接斷了, EE 一般都是帶衰的象徵(?)
若有收到這訊息接著看內容, NMEA 訊息由多個欄位組成用逗號分開
第二個欄位若是 V 則為無效資料, 在七段顯示器印出 ----
若為有效資料, 接著看第七欄位, 它會標示當前速度, 單位是 "節"
這系統本來是船用的, 換到路上就要換成 km/h, 這需要浮點數運算, 轉換程式寫在 gps_knot2kmh()
Cortex M0 沒有浮點數硬體, 所以編譯時要特別下 -mfloat-abi=soft
不然編譯器可能會下硬體浮點數命令然後啥也算不出來
文字轉出數字若用 sscanf 會載入很多的程式, 如果應用中有需要經常使用也是可以用
但我這應用只須一次, 所以自己刻一個簡單的來減少使用空間, 程式看起來比較噁心但應該不難懂XD
而且丟到高鐵上跑也都正確, 一般使用應該可行, 除非你的車速可以大於 300 公里我就不保證了XD

GPS 量車速的限制蠻多的, 隧道裡收不到, 有建築物部份遮蔽時會不準, 遇到大片金屬反射也會不準
所以進市區的時候誤差較大, 而當我們經過這些地方時就要改看車上的時速錶
可是問題是時速錶依照法律規定必須高於實際時速, 兩個數據不一樣, 就有人在網上問過這問題
答案是若是怕收罰單就看車上的, 若想遊走邊緣賭一把就看 GPS 的XD
所以如果兩個都裝, 結果看 GPS 時誤當成車上錶速, 然後還給它超速一點點, 那罰單就是你的了XD
裝這東西就是製造混亂而已, 所以我做完就丟著不用, 如果是汽車還是抓 CAN 訊息來顯示比較好
有些重機可以輸出 CAN 訊息, 我的車沒有, 所以還是看車上時速錶




以下為開發過程, 這是年初的計畫, 先在 WT-18 上開發驗證

驗 loader, 驗數據轉換, 然後紙箱包一包上高鐵驗證

可以看到和手機的數據一致


接著 WT-25 送廠回來了, 就把所有能用的東西都搬過去

此時還在趕進度, 升壓先用現成的, 然後去雜貨店找個接近尺寸的盒子裝起來

正面加兩個按鈕, 可以加亮或減暗七段顯示器的亮度
由於 18650 電池盒太高, 就把電池片拔出改用塑鋼膠 (就是 AB 膠的變種) 固定在盒內, 然後再測試:

數據相同, 沒有問題, 但是和車上錶一比就發現問題
所以就不另外為它設計外殼, 只留著做紀念

之後再把後面升壓電路補上, 確認升壓電路能用




這是最基本的 GPS, 那是美國系統, 現代手機可以同時接收五大系統, 定位速度真的超級快
所以現在衛星定位不再稱 GPS, 而是稱 GNSS, 衛星導航系統, GPS 只是裡面其中一種
五大系統分別由美國, 俄羅斯, 中國, 歐盟, 日本提供
前四個都已經實現全球覆蓋, 日本剛起步, 日本的野心還是在的, 特別是最近有個新聞
無法查到來源, 說日本公司要蓋月球送電站, 接收太陽能發回地球, 不確定是不是真的
這野心很大啊, 如果真做了, 這絕對是日本帝國復甦的跡象, 因為這東西表面上是要解決民生問題
實際上絕對是軍用, 可參考鋼彈X

來自月球的超級短波!

從月面基地發射

穿透雲層直達目標

加注到鋼彈身上

發射大規模毀滅性武器, 非常恐怖XD

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。