文/張炎生 達(dá)金良
東晉義熙十三年,劉裕消滅后秦時(shí)期,在長(zhǎng)安繳獲了記里鼓車(chē),距今已經(jīng)超過(guò)了1600多年。由此可以洞悉1600多年前,里程計(jì)數(shù)的裝置就已經(jīng)在生活中得以應(yīng)用,古人的智慧不禁讓現(xiàn)代人嘆服。
在科學(xué)技術(shù)發(fā)達(dá)的現(xiàn)代,已經(jīng)不再將里程表用于測(cè)量?jī)傻刂g的距離了,而是應(yīng)用于各種交通工具上實(shí)行監(jiān)控。從起初傳統(tǒng)的機(jī)械式里程計(jì)數(shù)器,經(jīng)過(guò)電子技術(shù)的不斷進(jìn)步,到目前電子式里程計(jì)數(shù)器的應(yīng)用,穩(wěn)定性更好,可靠性更高。憑借行駛積累下的里程數(shù),判斷交通工具是否需要養(yǎng)護(hù)。同時(shí),現(xiàn)代的里程表功能更加豐富,還可以實(shí)現(xiàn)測(cè)速,超速報(bào)警等功能。
在每輛共享單車(chē)上安裝一個(gè)里程計(jì)數(shù)器,里程計(jì)數(shù)器可以實(shí)現(xiàn)超速報(bào)警,里程數(shù)累計(jì)的功能。如果有暴力騎行者超速騎行時(shí),就會(huì)自動(dòng)報(bào)警響鈴。單車(chē)騎行到達(dá)一定里程數(shù)時(shí)也可以提醒使用者及時(shí)進(jìn)行養(yǎng)護(hù)。這樣就大大地降低了對(duì)資源的浪費(fèi),形成了一個(gè)良性可持續(xù)的系統(tǒng)。
目前的里程表所能實(shí)現(xiàn)的功能太過(guò)豐富,有的里程表甚至可以采集到用戶的呼吸量,測(cè)量出用戶的心跳,通過(guò)這些數(shù)據(jù)分析用戶的身體健康狀況。國(guó)外的里程表在設(shè)計(jì)中,大都采用各大公司功能豐富,體積小巧的芯片,但成本太高。因此,太高的成本以及太多的功能并不適合批量的投入使用在共享單車(chē)上。本設(shè)計(jì)旨在做出功能夠用、價(jià)格低廉的里程表,使其被應(yīng)用于大量共享單車(chē),減少共享經(jīng)濟(jì)的損失。
圖1:系統(tǒng)結(jié)構(gòu)圖
圖2:主程序流程圖
基于單片機(jī)的自行車(chē)?yán)锍瘫碛?jì)數(shù)器使用STC89C51單片機(jī),DS1302時(shí)鐘芯片,AT24C02串行存儲(chǔ)器,獨(dú)立按鍵,A3144E霍爾元件,LCD1602液晶顯示屏,報(bào)警器組成。其系統(tǒng)結(jié)構(gòu)如圖1所示。
單片機(jī)負(fù)責(zé)處理霍爾傳感器傳來(lái)的電脈沖,并且將處理好的數(shù)據(jù)傳給顯示器,在顯示器上顯示結(jié)果。采集車(chē)輪轉(zhuǎn)動(dòng)圈數(shù)的信息是由霍爾傳感器來(lái)負(fù)責(zé),并且把采集到的數(shù)據(jù)發(fā)送給單片機(jī)。獨(dú)立按鍵會(huì)負(fù)責(zé)單片機(jī)的復(fù)位操作,設(shè)定時(shí)間,設(shè)定安全速度,里程數(shù)清零等。蜂鳴器就是負(fù)責(zé)提示用戶已超過(guò)設(shè)定的安全速度的報(bào)警響鈴。
測(cè)量時(shí)速及里程的原理是,在做圓周運(yùn)動(dòng)的車(chē)輪上裝兩個(gè)相對(duì)稱位置小磁鐵,當(dāng)車(chē)輪轉(zhuǎn)圈時(shí),小磁鐵每次經(jīng)過(guò)霍爾傳感器,霍爾傳感器便產(chǎn)生電脈沖。如此往復(fù),利用單片機(jī)記錄一段時(shí)間內(nèi)脈沖變化的次數(shù),在已知車(chē)輪半徑的前提下,間接求出周長(zhǎng),計(jì)算出車(chē)輛的速度和行駛里程。
基于單片機(jī)的自行車(chē)?yán)锍虜?shù)計(jì)數(shù)器設(shè)計(jì)是由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)部分構(gòu)成。軟件部分采用C語(yǔ)言編寫(xiě),編寫(xiě)和編譯所使用到的軟件是Keil C51。
4.1.1 單片機(jī)和時(shí)鐘復(fù)位電路
采用的是STC公司生產(chǎn)的一種低功耗高性能CMOS8位微控制器STC89C51單片機(jī)。其內(nèi)部集成4k字節(jié)ROM,512字節(jié)RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,五個(gè)中斷源,一個(gè)全雙工串行口,40個(gè)引腳。復(fù)位電路是由1個(gè)電容,1個(gè)電阻和1個(gè)開(kāi)關(guān)按鈕組成。當(dāng)按下開(kāi)關(guān)按鈕時(shí),STC89C51的第9引腳RST電平升高,如果高電平持續(xù)一段時(shí)間,單片機(jī)就可以復(fù)位。時(shí)鐘電路是1個(gè)12MHz的晶振和2個(gè)30PF的電容組合構(gòu)成,其中晶振要盡可能靠近STC89C51的第18、19引腳。
4.1.2 鍵盤(pán)單元
由于需要調(diào)節(jié)的信息不是很多,因此只設(shè)計(jì)了4個(gè)獨(dú)立按鍵。單片機(jī)在上電以后各個(gè)I/O口處于高電平,當(dāng)按鍵按下,則對(duì)應(yīng)的I/O口變成低電平。
4.1.3 霍爾傳感器
霍爾3144傳感開(kāi)關(guān)是利用霍爾效應(yīng),將強(qiáng)弱交替的磁感應(yīng)強(qiáng)度轉(zhuǎn)為電脈沖的器件。面對(duì)霍爾元件中印有文字的一面,引腳從左到右分別為1、2、3腳。其內(nèi)部包括有電源穩(wěn)壓器,電勢(shì)觸發(fā)裝置,差分放大器,施密特觸發(fā)器,輸出裝置。當(dāng)磁鐵接近霍爾器件時(shí),磁場(chǎng)強(qiáng)度達(dá)到臨界點(diǎn),霍爾3144的第3腳輸出低電平,反之第3腳輸出高電平。
4.1.4 時(shí)鐘芯片
DS1302是一塊實(shí)時(shí)的時(shí)鐘芯片。Vcc1引腳是連接備用電源的,Vcc2引腳是連接主電源的,當(dāng)備用電源大于主電源0.2V時(shí),使用Vcc1供電,X1和X2引腳外接32.768KHz晶振。
4.1.5 顯示單元
采用LCD1602液晶顯示器,能顯示2行字符,在一個(gè)屏幕上可以同時(shí)顯示出數(shù)字,單位等。此外,LCD1602顯示器組成的顯示單元具有顯示內(nèi)容多,省電,控制簡(jiǎn)單,使用單片機(jī)接口少等優(yōu)點(diǎn)。LCD1602工作電壓在4.5至5.5V之間,工作電流在2mA。
4.1.6 存儲(chǔ)器
AT24C02是斷電不丟失數(shù)據(jù)的串行EEPROM芯片,該芯片的存儲(chǔ)容量為2KB,有一個(gè)16字節(jié)頁(yè)寫(xiě)緩沖器。該器件通過(guò)IIC總線接口進(jìn)行操作,有一個(gè)專門(mén)的寫(xiě)保護(hù)功能。
4.1.7 報(bào)警電路
報(bào)警電路是由一個(gè)蜂鳴器構(gòu)成,當(dāng)行駛途中的時(shí)速大于設(shè)定的安全速度時(shí),蜂鳴器長(zhǎng)鳴發(fā)起警報(bào),提醒用戶減速行駛。
根據(jù)自行車(chē)?yán)锍瘫碛?jì)數(shù)器的功能分析,程序按照不同的功能分為五個(gè)部分,依次是,數(shù)據(jù)處理程序,時(shí)鐘程序,顯示程序,存儲(chǔ)程序,報(bào)警程序。自行車(chē)?yán)锍瘫碛?jì)數(shù)器開(kāi)機(jī)運(yùn)行,LCD上第一行會(huì)顯示年月日時(shí)分星期,第二行會(huì)顯示里程、速度,默認(rèn)都是0??梢酝ㄟ^(guò)功能鍵去設(shè)置當(dāng)前年月日時(shí)分星期,也可以通過(guò)功能鍵去設(shè)定安全速度,一旦超速就會(huì)引發(fā)蜂鳴器的報(bào)警。其程序的主要流程圖如圖2所示。
基于51單片機(jī)的自行車(chē)?yán)锍逃?jì)數(shù)器,其功能主要是通過(guò)顯示器顯示行駛里程,實(shí)時(shí)速度以及通過(guò)蜂鳴器實(shí)現(xiàn)超速報(bào)警,另外還包括了有日期,實(shí)時(shí)時(shí)間等內(nèi)容,修改設(shè)定值可以通過(guò)相關(guān)的獨(dú)立按鍵完成。該計(jì)數(shù)器原理簡(jiǎn)單,功能實(shí)用,制作容易,使用方便。對(duì)于愛(ài)好騎行的人群來(lái)說(shuō),可以花較少的經(jīng)費(fèi)自行制作出一個(gè)自行車(chē)?yán)锍逃?jì)數(shù)器,具有很好的實(shí)用價(jià)值。