〔Advance MZD SSH Controller〕

一年多前就想寫MZD的行車軌跡紀錄程式,不過資質駑鈍的我碰到了兩個難題:
(1)MZD系統時間
(2)GPS精度
當初由MZD所獲取的GPS坐標,因為數值精度太差,將MZD GPS的坐標轉換
到Google Map上,誤差可達50公尺以上,這樣的誤差,對行車軌跡的追踪
與紀錄來說,很不精準,所以程式只好先擱著。
圖:誤差頗大的行車軌跡圖


上個月,終於摸索出解決MZD這兩個問題的眉角,在完成MZD系統時間修正
後(所以才有MZD語音報日),MZD行車軌跡也完成初步測試。
圖:精準的行車軌跡圖(Google Map)

圖:精準的行車軌跡圖(直接用手機APP GPX Viewer觀看)


曾經一度(長達二年)懷疑馬自達的車用GPS模組太差,看來是我誤會了,現
在反而感謝馬自達,我雖然沒加購超爛導航,但馬自達原車皆配置了定位快
又精準的GPS。

購車、用車也二年多了,這台CX-5給我的驚喜怎麼還沒完。



想問一下mazda原廠的gps問題出在哪
W.Y.Peng wrote:
想問一下mazda...(恕刪)

馬自達的GPS沒問題,定位快、精度高。
我的誤會來自當初擷取GPS座標用的方法不好所致。

用一個例子說明如下:(看不懂請直接跳過)
dbus-send --print-reply --address=unix:path=/tmp/dbus_service_socket --type=method_call --dest=com.jci.lds.data /com/jci/lds/data com.jci.lds.data.GetPosition


method call sender=:1.103 -> dest=com.jci.lds.data serial=645 path=/com/jci/lds/data; interface=com.jci.lds.data; member=GetPosition
method return sender=:1.57 -> dest=:1.103 reply_serial=645
int32 1
uint64 1456615599
double 22.6867
double 120.306
int32 24
double 100
double 81
double 1.4
double 3.9

當中(22.6867,120.306)就是GPS座標,但是擷取的數值精度不夠,其實正確值應該是
(22.686788,120.306594),用dbus-send取值的話,小數點後會被捨去2、3位,所以
造成很大的誤差。
後來發現有相關奇怪的數值LatitudeByGPS和LongitudeByGPS,當初直覺和GPS座標有
關,但出來的數值超奇怪:

/jci/bin/smdb-read -v -n vdm_vdt_current_data

部分輸出:

LatitudeByGPS (int, 4): 112686788
LongitudeByGPS (int, 4): 300306594

想了半年,才破譯LongitudeByGPS、LatitudeByGPS是經過MZD轉換過的值,但是小數
部分是正確的,然後經過程式處理,就可以得到精準的GPS座標了,接下來將獲取的data
轉成google認得的KML就簡單多了。

光解決GPS這個issue,就花了我半年多........呵,我夠笨吧.....
PS:一定有更正確的方法從MZD取得精確GPS值,但是我上述方法100%是我自己摸索出的,
別再跟我說洋屌早有這些討論資訊了,我看不懂國外屁孩文章的。
很可惜我上週交車 版本59.00.504已經無法使用了,連JCI TEST 終端機模式都封了。

blog.yesican.tw wrote:
一年多前就想寫MZD...(恕刪)

原來同是高雄人。這些軌跡顯示應該住附近。

blog.yesican.tw wrote:
我的意思是,MZD...(恕刪)


這個工程模式在502以後就被封了。

目前過內外尚無方法能進去,開啟autorun

自從買了MAZDA CX-5 2.2D後,才接觸到新一代車載娛樂資訊系統,MAZDA一直在廣告強打MZD Connect是一套『人機智慧資訊整合系統,讓您在行進間輕鬆掌握行車及娛樂資訊』,可是實際用了以後,要額外花一萬元買又貴又廢導航的SD卡,螢幕除了一些設定,能顯示的資訊也相當匱乏,娛樂功能只有撥放音樂及收聽收音機的普通車機功能,藍芽呢?也一般般而已,我完全無法體會廣告所稱的『人機智慧資訊整合系統』講的是什麼碗糕。

圖片來源:MazdaHandsfree
還沒買新車前,我要的車載系統只有兩個必要需求而已,(1)有導航、(2)看影片。
第一項需求MZD Connect要多花一萬買導航SD卡,但買到的卻是一個很廢的導航,之後的圖資更新又得花錢,總麼想都不願意被當盤子,第二項需求原廠則是:完。全。不。支。援。!!!
但是,車子買都買了,能怎樣呢?再花一萬元買廢到不能再廢的導航SD卡?弄個平板看影片?所以買完車後的前兩個月,我是不太開心的,一百二十萬的車並不符合我的小小需求,但,除此之外,這台CX-5 2.2D也真的無從挑剔了(心中其實也一直殘念一代沒車側盲點),開了兩年,CX-5在我心中,仍然是一台品質好、CP值超高、有精緻品味的好車。

後來我發現,有MAZDA車友竟然可以更改MZD Connect的桌面,這一發現可不得了,因為,我看到了root!MZD Connect可以用root登入!不用說也該知道,在Linux的世界裡,root就是皇帝,擁有最高權限,也就是說,擁有root的登入密碼,絕不是只能換換桌面而已,那是可以主宰整個MZD Connect的,埋藏多年的Hacker魂就這樣再度燃燒起來。

於是乎,透過每天研究MZD Connect,靠著過去Linux的底子,終於完成了〔Advance MZD SSH Controller〕,基於自己對Linux的自信,過程中全靠自己摸索, 是完全百分之一百獨力開發。

〔Advance MZD SSH Controller程式應用架構〕

〔Advance MZD SSH Controller〕是一專為MAZDA車系新一代車載系統(MZD Connect)所開發的程式集,此一程式集包含:
⑴隨機更換桌面 、⑵Music Video (MP4影片)撥放 、⑶語音報速 、⑷安卓手機鏡像、⑸行車數據圖表 、⑹GPS旅行軌跡紀錄、⑺語音行車資訊 、⑻語音行車監控,八大功能。
〔Advance MZD SSH Controller〕的開發者為blog.yesican.tw,本身擁有一台2015年小改的初代CX-5 2.2D,所有〔Advance MZD SSH Controller〕之程式皆為開發者獨立一人發想、設計及開發。程式主要分為自動執行(AutoRun)及SSH連線執行兩部分,SSH連線執行必須透過手機或電腦與MZD建立SSH連線。
〔Advance MZD SSH Controller〕完全利用原生系統,不用整合,就這麼乾淨純粹。一鍵按下,十秒還原;一鍵按下,十秒進化,為了因應不同駕駛對人工語音的接受度,亦提供三種駕駛語音模式(Advance MZD模式、簡潔英文模式、不吵模式,而原廠模式為全原廠狀態)


〔Android SSH 介面〕

〔Advance MZD SSH Controller〕部分功能Demo:


主要功能:
⑴MZD Connect Random Background Changer:隨機更換桌面。
⑵MZD Connect MV Voice Player:Music Video (MP4影片)撥放。
⑶MZD Connect Voice Speed:語音報速。
⑷MZD Connect Mirror Receiver for Android:安卓手機鏡像。
⑸MZD Connect DBus Monitor:行車數據圖表。
⑹MZD Connect GPS Trip Recorder:GPS旅行軌跡紀錄。
⑺MZD Connect Voice Car Checker:語音行車資訊。
⑻MZD Connect Voice Detection:語音行車監控。

功能說明:
⑴MZD Connect Random Background Changer:隨機更換桌面

啟動方式:▲由其他程式觸發執行▲支援SSH一鍵連線執行
說明:
汽車每次發動後隨機更換不同桌面(不限制背景圖檔數目)之功能。


⑵MZD Connect MV Voice Player:Music Video (MP4影片)撥放

啟動方式:▲發動自動執行&MZD背景常駐、▲SSH一鍵連線執行喚醒
說明:
本程式可撥放mp4格式影片,但主要乃為播放MV(音樂影片)而開發。
特色:語音播報MV演出者、歌(曲)名或該MV其他資訊。
撥放方式:
[1]隨機播歌(不重複)
[2]單曲重複播放(3次)
[3]三組(可無限擴充)最愛播放
其他功能:添加、刪除最愛時,可判別單曲是否已在最愛名單中,並以語音告知執行結果。
[2017/12/13]新增我的最愛功能:將目前MV加入最愛、將目前MV自最愛刪除、播放我的最愛,再次播放時,自前一次播放MV之下一首開始。
[2017/12/15]提供三組最愛功能,讓家庭成員擁有各自最愛MV。
[2017/12/29]單曲MV循環播放功能。

MZD Connect MV Voice Player算是〔Advance MZD SSH Controller〕所有程式中最複雜且耗時最久寫成的,從最初的一行指令,經過二年的不斷的修正,現在的功能已經超出我原先的預期太多,目前我在車上幾乎已經不用原廠的音樂播放器聽音樂了。MZD Connect MV Voice Player是沒有選單可供選曲的,因為我覺得開車中選曲會增加行車危險,沒有選單選曲算是我的一個堅持。

⑶MZD Connect Voice Speed:語音報速

啟動方式:▲發動自動執行&MZD背景常駐、▲SSH一鍵連線執行喚醒
說明:
語音播報車速。
啟動方式:▲SSH一鍵連線執行
註:人工語音為google語音。

⑷MZD Connect Mirror Receiver for Android:安卓手機鏡像

可將安卓手機(支援5.0以上版本)螢幕投影至MZD中控螢幕。鏡像算是讓MZD再升級的一項功能,有了鏡像功能,MZD中控螢幕便可以顯現手機的螢幕,舉凡影片、上網、搜尋、行事曆、音樂、導航…..等的手機功能,完整的顯示在中控螢幕,大大提升MZD在車室內顯示的質感與實用性。而這個功能也讓我找到比原廠導航更佳的解決方案,不必屈就於原廠又貴又廢的導航。
手機鏡像實例:
執行手機導航軟體

執行手機影片撥放軟體

一隻手機執行導航軟體、另一隻手機鏡像執行Google Map導航,達到一車雙導航


⑸MZD Connect DBus Monitor:行車數據圖表。

啟動方式:▲發動自動執行▲離線資料轉換
說明:
dump行車數據產生LOG資料,下載後可供電腦端分析並產生行車數據圖表(Driving Report)。


⑹MZD Connect GPS Trip Recorder:GPS:GPS旅行軌跡紀錄

啟動方式:▲發動自動執行▲離線資料轉換
說明:
行車軌跡紀錄。
圖:精準的行車軌跡圖(Google Map)

圖:精準的行車軌跡圖(直接用手機APP GPX Viewer觀看)


⑺MZD Connect Voice Car Checker:語音行車資訊

說明:
語音報日(today)、語音油量(fgp)、語音引擎冷卻水溫度(eng_coolant_temp)、語音機油劣化指標(detect_oil)、語音電池電量(soc)、語音磁碟容量(chk_disk)、語音車室外溫度(out_car_temp)。
啟動方式:▲SSH一鍵連線執行
註:人工語音為google語音。

⑻MZD Connect Voice Detection:語音行車監控。
①Voice Coollant Temperature detection.:引擎冷卻水溫度語音警示

啟動方式:▲發動自動執行、MZD常駐
說明:
(1)當引擎冷卻水達到工作溫度,語音提醒並於中控螢幕跳出訊息,10秒後關閉中控訊息。
(2)當引擎冷卻水達到行駛穩定溫度,語音提醒並於中控螢幕跳出訊息,10秒後關閉中控訊息。
(3)當引擎冷卻水溫度異常(過高),語音警示並於於中控螢幕跳出訊息。
行車期間若引擎冷卻水溫度達到高於平均數值之異常高溫,系統會啟動高溫偵測模式,每30秒語音播報當下之引擎冷卻水溫度來提醒駕駛,提供駕駛判斷是否停車檢查。(因不同駕駛習慣可調整不同高溫設定)

註:人工語音為google語音。

②Voice MZD Disk Usage detection.:MZD磁碟容量監控

啟動方式:▲發動自動執行、達條件時停止
說明:
當MZD磁碟容量達到95%時,語音提醒並於中控螢幕跳出訊息通知,提醒駕駛將行車資料備份,因為磁碟容量空間若不足,將會導致MZD執行效能降低,一般說來,MZD磁碟空間絕對足夠,然而為避免DBus資料累積及GPS歷程資料過大,故透過MZD磁碟容量監測做為MZD容量不足前的預警。

註:人工語音為google語音。

③Voice Refueling detection.:加油語音提醒

啟動方式:▲發動自動執行、達條件時停止
說明:
當油量即將到底時,語音提醒並於中控螢幕跳出訊息通知駕駛加油,中控訊息於10秒後關閉。

註:人工語音為google語音。

④Voice Full tank detection.:油箱滿油語音提醒

啟動方式:▲發動自動執行、達條件時停止
說明:
當油箱加滿油,語音提醒並於中控螢幕跳出訊息通知駕駛,中控訊息於10秒後關閉。

註:人工語音為google語音。

⑤Voice Location.:所在位置語音播報
程式名稱:voice_location
啟動方式:▲發動自動執行、MZD常駐
說明:
啟動方式:▲發動自動執行&MZD常駐
說明:
可根據自建位置座標,語音播報該地點之資訊(如:到家語音、景點名稱、即將到達xxx、危險路段、該處有違規照相、跨縣市之地名播報……),並可於該地點設置播放的額外語音及執行(最多兩組)的程式。
PS:目前位置座標的資料純為個人需求,當中一個的使用情境為:當我開車接近我家時,CX-5會播報我快到家了(並觸發背景更換程式),到達家裡時(觸發GPS旅程歸檔程式、觸發自動關閉MZD Connect MV Voice Player),CX-5會播報我已經到家了。
註:語音為真人發音,使用創作者兒子的聲音。

⑥Voice Heavy rain detection.:大雨前後霧燈開啟(關閉)語音提醒
啟動方式:▲發動自動執行、MZD常駐
說明:
當偵測到大雨情況,語音提醒並於中控螢幕跳出訊息通知駕駛開啟前後霧燈,中控訊息於10秒後關閉。
實際在大雨天候下測試的結果非常令人滿意,當雨勢趨緩,也會提醒駕駛關閉前後霧燈,中控訊息於10秒後關閉。

註:人工語音為google語音。

⑦Voice Today.:語音報日

啟動方式:▲發動自動執行、一次性執行
說明:
能語音播報今天日期、星期,亦有簡易行事曆語音通知功能(如:生日語音提醒、節日語音提醒、歷史上的今天[發想中……])。
註:人工語音為google語音。

⑧Voice High Fuel Consumption.:耗油偵測語音提醒
啟動方式:▲發動自動執行&MZD常駐
說明:
根據行車歷史資料所建立的駕駛油耗分析之結果做為參考,當油耗處於平時狀況則不做任何提醒,當駕駛中偵測到油耗過高,會提醒駕駛處於高耗油狀態,讓駕駛當下做出行駛決策(繼續大腳或控制黃金右腳),當油耗由高趨低達到省油駕駛時,會提醒(鼓勵)駕駛已做出省油決策。通知方式:合成語音及,中控訊息(於10秒後關閉)。

⑨Voice Out-Car Temperature change detection.:語音車室外溫度變化偵測

啟動方式:▲發動自動執行&MZD常駐
說明:
當車室外溫度有所變化(上升或下降)時有三種通知模式
中文語音模式:以語音提醒駕駛車室外溫度有所變化(含播報車室外溫度數值)。
簡潔英文語音模式:以簡短英文語音提醒駕駛車室外溫度有所變化,僅播報溫度上升或下降。
靜音模式:中控螢幕跳出訊息通知(於5秒後關閉)。
註:人工語音為google語音。

⑩Voice SOC change detection.:語音電瓶電量變化偵測

啟動方式:▲發動自動執行&MZD常駐
說明:
當電瓶的電量有所變化(升高或降低)時有三種通知模式
中文語音模式:以語音提醒駕駛掌握電瓶的狀態(含播報電瓶電量數值)。
簡潔英文語音模式:以簡短英文語音提醒駕駛電瓶的狀態有所變化,僅播報電瓶電量升高或降低。
靜音模式:中控螢幕跳出訊息通知(於5秒後關閉)。
註:人工語音為google語音。

⑪Voice Odometer(1000km/per):語音里程播報(滿千公里)
啟動方式:▲發動自動執行、一次性執行
說明:
每滿千公里時以語音播報汽車的總里程數,如:21,000km、22,000km、23,000km…..。
註:人工語音為google語音。

⑫Voice Oil deteriorate detection:語音機油更換偵測

啟動方式:▲發動自動執行、一次性執行
說明:
偵測引擎機油劣化指標,提早預警引擎機油更換時機,避免引擎機油過度劣化損壞引擎。
註:人工語音為google語音。

⑬Voice Driving Analysis Result:語音駕駛評分

啟動方式:▲發動自動執行&MZD常駐
說明:
根據MZD的駕駛分析結果所得到分數,透過即時的語音播報,駕駛可由得分來讓掌握駕駛行為,更可由行駛途中的得分與高低,增進駕駛樂趣(得分了就當是開車中打怪成功吧…呵),每月亦可將此分數以圖表呈現。

[2017/12/27]對於系統給分的觀察結果,順順開車一分也沒有,某次一路市區不斷變換車道超車系統給了不少分,某次急停剎車後倒車也給分,其他行駛狀況則找不到給分的邏輯,目前結論:激烈操駕的狀況下,比較容易得到分數。
註:人工語音為google語音。

如今,當我手握CX-5 2.2D的方向盤,我完全體會了MAZDA所謂的『人機智慧資訊整合系統,讓您在行進間輕鬆掌握行車及娛樂資訊』的真意,要說的是,在〔Advance MZD SSH Controller〕中,有一些應該都是車載系統首創的點子,功能上也許實用,也許不實用,不過我個人是樂在其中的,除了一些影音功能外,我運用了一些合成語音的提醒功能,讓我在駕駛CX-5時,能很優雅的掌握行車時的車況。

當我發動車子後,CX-5便會告訴我今天的日期或者今天是什麼日子;當我大腳時,CX-5會提醒我多多注意駕駛行為;碰到開車大雨的狀況,也會提醒我開啟前後霧燈;當我加滿油時,他也會告知我他吃飽飽了;快沒油了,他會出聲提醒叫我趕緊去加柴油,而且不要加錯油;連車室外的溫度變化、引擎冷卻水溫度是否過高、電瓶的電量變化,要不要回廠更換機油,都能很即時的出聲提醒和告知。
我還挖到了MZD的一項特別功能,就是在駕駛中,透過MZD的駕駛分析,了解自己的駕駛分數,我透過語音,在開車當下聽到自己得到的分數,是頗有打怪得分的臨場感的。

最溫馨的莫過於每當我開車回到家,我用我兒子的語音,讓CX-5告訴我,我回到可愛的家了。

而在掌控自己愛車的車況上,透過Dump下來的行車資訊所轉換的圖表報告,也忠實紀錄行車期間所收集到的各種數據,讓我更清楚的了解自己愛車的健康狀態,這些資訊或許有助於我在異常情況發生後能快速釐清問題的發生原因,還有我的車子走到哪裡,GPS旅程紀錄產生的軌跡檔案會自動轉成KML,皆可透過Google MAP完整呈現每次的行車旅程,再佐以行車里程、時間點、車況資訊這些數據,更能掌握行車在何時、何地的種種狀況。

結語:
接觸MZD Connect兩年多來,深感MZD Connect是一款非常強大的車載系統,剛好可以拿來練功,我自己本身的車室也架構成一個內部網路(有購買另一個小巧USB供電的無線基地台),也就是說這台AP如果可以連網,理論上是可以有更多好玩的應用,只不過我的個人需求沒那麼多,就沒必要再往連網應用發展。

而原廠看來並不積極開發MZD Connect的應用,導致馬自達在車載系統相對落後其他先進車廠,其實,程式並非我個人所專精,然而我都能寫出這麼多的MZD Connect應用,相信馬自達若有心,開發領先市場的車載系統並非難事,也或許MZD Connect只是馬自達的過渡型車機,所以才這麼無心。不過,經過近兩年的MZD Connect研究,能把自己的車載系統弄成這樣,也夠滿意了,而無緣對外發行的原因是我沒辦法理解不做功課的提問及厭惡只想坐享其成的人,另外拜01酸民所賜,謝謝他們讓我這個阿伯還有這個機會獨力開發出讓我這麼得意的車載應用。

聲明:本程式集不對外發行,故不存在任何營利行為。
愛飆車不愛快、我乘風很自在、說我開帥白車、心自然沒意外。

Advance MZD SSH ControllerPowered by blog.yesican.tw
〔Advance MZD SSH Controller程式應用架構〕(最新)

新增主要功能:
⑴MZD Connect Random Background Carousel:隨機輪播桌面。
啟動方式:▲由其他程式觸發執行▲支援SSH一鍵連線執行
說明:
汽車每次發動後隨機輪播10幀不同背景桌面(背景圖檔存放於SD記憶卡,程式隨機取10張圖做為輪播背景,九張隨機輪播+1張隨機固定)。
[隨機輪播桌面Demo影片]

⑻MZD Connect Voice Detection:語音行車監控。

新增功能:
⑭Voice Low Voltage Detection:語音低電壓偵測

啟動方式:▲發動自動執行&MZD常駐
說明:
偵測發電機的輸出電壓,當輸出電壓小於11.5伏特進入電壓過低警示模式,持續播報電壓值供駕駛關注,若電壓值恢復正常則回到低電壓待命偵測模式。
註:人工語音為google語音。

⑮Voice DPF action Detection:語音DPF作動偵測

啟動方式:▲發動自動執行&MZD常駐
說明:
DPF作動狀態有二種通知模式
中文語音模式:以語音提醒駕駛掌握DPF開始作動及關閉。
不吵模式:中控螢幕跳出訊息通知(於5秒後關閉)。
註:人工語音為google語音。
最後一塊拼圖終於完成囉!就是自動產生CX-5行駛報告!
以往對於一些MZD行駛數據的整理都是透過自寫程式抓取的Log檔,然後用LibreOffice
做成Excel檔來做紀錄,從每週一次,到後來每月一次,到後來愈積愈多,甚至長達一年
也只做下載不整理。
直至前一陣子看到網友發問CX-5 DPF再生里程的問題,又有CX-5 水溫的問題,於是花
了時間整理一下這幾年我Dump下來的MZD數據,寫了一個CX-5行駛報告報表程式,也
順便整合了行駛記錄和花費紀錄在不同檔案要分開打開的困擾,重點是以往整理一週數
據大概要花5~10分鐘,現在只要下達命令報表幾秒PDF報告就出來了,也自動同步到自
己的雲端!




















關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!