基于Arduino的項(xiàng)目在老舊儀表上顯示MPG油耗信息。
俄烏沖突和由此引發(fā)的燃料價(jià)格飛漲,讓我開始思考如何降低汽車油耗。我曾考慮過購買一輛燃油里程更好的車,但我有理由先看看自己能給老舊的1991年豐田卡羅拉經(jīng)濟(jì)型汽車節(jié)省多少燃油。
提高燃油經(jīng)濟(jì)性的可能策略包括安裝低滾動(dòng)阻力的輪胎、在發(fā)動(dòng)機(jī)艙下方增加一個(gè)護(hù)罩,減少空氣動(dòng)力阻力,甚至還可以拆除交流發(fā)電機(jī)(像某些賽車那樣)或僅在制動(dòng)時(shí)運(yùn)行發(fā)電機(jī)。而且,以不同的方式來駕駛也會(huì)取得很大的成效。
但如果不能即時(shí)反饋燃油經(jīng)濟(jì)性,要測試不同駕駛技術(shù)的效果是很困難的。許多新型車輛都會(huì)在儀表盤上顯示瞬時(shí)油耗,但我的車不能顯示,而且添加這種功能也很難。
大多數(shù)車主都可以購買Scan-Gauge等行車電腦,將其接入其汽車的第二代車載診斷系統(tǒng)(OBD-II)數(shù)據(jù)端口,這樣在駕駛時(shí)就可以觀察瞬時(shí)每加侖行駛英里數(shù)(MPG)的估值。但我的汽車生產(chǎn)年份太早,那時(shí)OBD-II還沒有成為標(biāo)準(zhǔn)。
因此,我決定重溫自己首次在2009年開發(fā)的一個(gè)項(xiàng)目,那時(shí)我在汽車上安裝了一部基于Arduino、顯示燃油經(jīng)濟(jì)性的電腦,名為“MPGuino”。MPGuino可以在汽車電子控制單元(ECU)中接入兩個(gè)可用信號:一個(gè)信號來自車速傳感器;另一個(gè)信號來自噴油嘴。借助這兩個(gè)信號,MPGuino可以計(jì)算汽車行駛的速度及其使用的燃油量,因此能夠向駕駛員顯示瞬時(shí)MPG。此外,它還能記錄較長時(shí)間內(nèi)使用的燃油量和行駛的距離,顯示單次行程的平均MPG或最近一箱燃油的MPG。
我記得這個(gè)小工具非常有用。但裝它的汽車被我賣掉了,所以我要給我的卡羅拉再找一臺(tái)MPGuino。
MPGuino的軟件仍有公司積極開發(fā),但其相關(guān)硬件現(xiàn)在很難獲取。維基頁面上列出的曾經(jīng)銷售MPGuino開發(fā)板或套件的公司現(xiàn)在已經(jīng)不做該業(yè)務(wù)了。但用一個(gè)Arduino(我使用的是Arduino Nano)、一個(gè)16×2的液晶顯示板和一些分立元件,按照原理圖拼湊一個(gè)也不難。
不過,我很不喜歡在開車時(shí)看太小的液晶顯示屏,所以這次我要做得更好。
我發(fā)現(xiàn),有些MPGuino愛好者將其輸出發(fā)送到一個(gè)彩色的平板顯示屏上,和現(xiàn)代駕駛艙的顯示方式相同。但我決定采用完全不同的另一個(gè)方法,將瞬時(shí)燃油里程數(shù)顯示在一塊模擬儀表上。
為此,我在eBay上購買了個(gè)老式VDO油壓表,這是從一輛比我的車?yán)虾芏嗟谋r(shí)捷上拆下來的。我曾在年輕的時(shí)候開過一輛保時(shí)捷,如今則開著破舊的卡羅拉,但這并不意味著我不能享用酷炫的VDO儀表。
但事實(shí)證明,將該儀表與標(biāo)準(zhǔn)MPGuino接在一起使用很困難。我很確定它們可以接在一起,但MPGuino的代碼相當(dāng)復(fù)雜,涉及中斷設(shè)置和清除標(biāo)志。一想到要解決這個(gè)問題,我就頭暈眼花。因此我決定在這個(gè)項(xiàng)目中添加第二個(gè)Arduino Nano,我想先用它來驅(qū)動(dòng)VDO儀表,然后用它計(jì)算其他顯示參數(shù)。它與在MPGuino中的Arduino采用串行數(shù)據(jù)連接,我發(fā)現(xiàn)它與2016年MPGuino軟件的老版本配合得最好,這款軟件兼容不同格式串行數(shù)據(jù)。
我買的VDO儀表通常連接的信號源是隨油壓變化的電阻,我使用一個(gè)通用的NPN晶體管來模擬這個(gè)可變電阻。晶體管的基極(通過一個(gè)220歐姆電阻器)由第二個(gè)Arduino上的一個(gè)數(shù)字輸出引腳驅(qū)動(dòng),Arduino通過輸出具有適當(dāng)占空比的脈寬調(diào)制(PWM)信號來驅(qū)動(dòng)儀表。
要確定如何校準(zhǔn)該模擬顯示器,需要進(jìn)行一些試驗(yàn)。一開始,我為第二個(gè)Arduino編寫代碼,緩慢提高脈寬調(diào)制信號的占空比,同時(shí)通過Arduino的動(dòng)態(tài)監(jiān)視器顯示當(dāng)前占空比。我記錄儀表每個(gè)數(shù)字對應(yīng)的脈寬調(diào)制值。然后,我用線性插值來設(shè)置這些數(shù)字點(diǎn)之間的脈寬調(diào)制值,編碼將儀表顯示的MPG除以10。這個(gè)油壓表的范圍是0到10巴(bar)。最初,儀表上的指針有點(diǎn)抽動(dòng),我修改了代碼,讓儀表顯示MPGuino計(jì)算的MPG值的滾動(dòng)平均值。
在汽車的電子控制單元上接入兩個(gè)所需信號非常簡單,不需要拆卸儀表板就能找到相關(guān)的線路,我可從汽車的出廠維修手冊中查出是哪根線。
不過,我還需要接入汽車的12伏電源。通常情況下,MPGuino應(yīng)該連接始終開啟的12伏電源。寄生耗電不是問題,因?yàn)镸PGuino在汽車熄火后會(huì)立即關(guān)閉顯示器,并進(jìn)入低功耗的睡眠模式。
用同樣的方式連接我的設(shè)備會(huì)有問題,因?yàn)閂DO儀表和我添加的第二個(gè)Arduino會(huì)持續(xù)耗電。因此我增加了第二個(gè)電源輸入,接入汽車收音機(jī)的12伏可關(guān)閉電源,為增加的Arduino(通過第二個(gè)5伏穩(wěn)壓器接入)和VDO儀表供電,關(guān)閉發(fā)動(dòng)機(jī)時(shí),這兩個(gè)儀表的電源都會(huì)被完全關(guān)閉。
目前我還不清楚,僅僅改變駕駛方式能夠?qū)崿F(xiàn)多少M(fèi)PG,即使不能明顯提高燃油里程數(shù),在舊卡羅拉車上看到保時(shí)捷儀表顯示的信息,也會(huì)讓我很開心。
審核編輯 :李倩
-
傳感器
+關(guān)注
關(guān)注
2551文章
51192瀏覽量
754397 -
發(fā)電機(jī)
+關(guān)注
關(guān)注
26文章
1645瀏覽量
67715 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5074瀏覽量
97661
原文標(biāo)題:顯示燃油經(jīng)濟(jì)性的復(fù)古電腦
文章出處:【微信號:CloudBrain-TT,微信公眾號:云腦智庫】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論