潘承斌,蔣旭中,溫懷疆
(浙江傳媒學院 媒體工程學院,浙江杭州, 310018)
近年,人們日常出行經常采用自行車、摩托車、電動車。騎行越來越多,在騎行中,會經常用到左轉彎、右轉彎、剎車等操作。由于摩托車、電動車和自行車等的行車狀態(tài)沒有提示燈或者是提示燈不夠醒目,在光線不好時或改變行車狀態(tài)時(比如突然剎車、轉彎等),容易讓行人或其他車輛避讓不及引發(fā)交通事故。為此我們研究設計了一種騎車人使用的安全騎行輔助設備,同時頭盔也能通過傳感器自動感應轉彎和車距,并自動亮起相應的轉彎提示燈和提示語音,提醒周圍的車輛或行人注意避讓,從而有效地減少交通事故,提高騎車的安全性。在保證傳統(tǒng)頭盔的安全性前提下,對其進行智能化的嵌入,更好地給人們帶來便利。
本安全騎行輔助設備裝置的系統(tǒng)分為兩個系統(tǒng),一個部分為儀表系統(tǒng),另一個為頭盔系統(tǒng)。首先,儀表系統(tǒng)中,通過JY61姿態(tài)傳感器把車把手地轉向的變化信息轉化為信息數(shù)據(jù)傳送到主MCU2處理。MCU2通過算法處理將數(shù)據(jù)顯示在0.96寸的OLED屏幕上,同時通過HC-05藍牙模塊將姿態(tài)數(shù)據(jù)傳送到安裝在頭盔上的主MCU1。另一個系統(tǒng)中,通過藍牙模塊得到車身轉向的數(shù)據(jù),相應的控制對應方向的WS1812燈條閃爍,以實現(xiàn)提示功能。MVR2EB激光測距模塊通過檢測后方的車輛距離,主控MCU1接收并處理傳感器數(shù)據(jù),當距離到達設定的閾值,車距過近。MUC1控制語音模塊發(fā)出對應的提示音。實現(xiàn)提醒功能。電源模塊使用7.4V/2550mAh的鋰電池為兩個系統(tǒng)的各個模塊供電,通過LDO轉化5V給兩個MCU供電。
本系統(tǒng)采用的主控MCU是Arduino Nano單片機,在設計前期我們使用的是Arduino UNO開發(fā)板,設計過程中發(fā)現(xiàn)該開發(fā)板體積過大,而且不適合便攜開發(fā)。Arduino Nano有尺寸小,易便攜、性能良好的特點,而且適用于作為本系統(tǒng)的處理核心,其處理器核心ATmega328(NANO 3.0),同時具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),8路模擬輸入,一個16MHz晶體振蕩器,一個mini-B USB口,一個ICSP header和一個復位按鈕。另外該開發(fā)板相應配套的軟件(Arduino IDE,集成開發(fā)環(huán)境)功能強大,界面簡潔,編譯燒錄程序方便,大幅度提升編寫代碼的效率。

圖1 系統(tǒng)整體結構設計圖
Arduino Nano芯片自帶的一個硬件串口外,Arduino還提供了Software Serial類庫,可以將其他數(shù)字引腳通過程序模擬成串口通信引腳,在本系統(tǒng)設計中,傳感器與單片機之間通信都使用串口通信,Nano開發(fā)板的這個優(yōu)點讓它適合多串口通信開發(fā)。
JY61模塊此六軸模塊采用高精度的陀螺加速度計MPU6050,通過STM8處理器讀取 MPU6050 的測量數(shù)據(jù)。然后通過串口輸出,同時精心的 PCB布局和工藝保證了MPU6050 收到外接的干擾最小,測量的精度最高。模塊內部自帶電壓穩(wěn)定電路,可以兼容 3.3V/5V 的嵌入式系統(tǒng),連接方便。采用先進的數(shù)字濾波技術,內部結合了動力學解算與動態(tài)卡爾曼濾波算法,能有效降低測量噪聲,提高測量精度。配備相應的上位機,通過上位機監(jiān)測模塊傳輸數(shù)據(jù),與實際結果的校正。
卡爾曼濾波算法簡述:對于姿態(tài)傳感器模塊來說,角度解算來源于兩種類型的數(shù)據(jù),第一種是通過加速度和磁場數(shù)據(jù)進行運動學解算可以求出三軸的姿態(tài)角,優(yōu)點是沒有長期漂移和誤差累計,但缺點是精度差,而且僅在靜態(tài)時能保證精度。第二種是通過陀螺儀測量出來的角速度進行積分運算,可以得出三軸姿態(tài)角,優(yōu)點是精度高,可以進行動態(tài)測量,對加速度不敏感,缺點是有累積誤差和漂移,時間越長累積誤差越大。卡爾曼濾波就是一種數(shù)據(jù)融合算法,結合加速度計和陀螺儀的信息,共同來解算姿態(tài),集合二者的優(yōu)點獲得在動態(tài)環(huán)境下可以準確測量姿態(tài)的方法。
該模塊內部MPU6050輸出的數(shù)據(jù)為姿態(tài)的歐拉角數(shù)據(jù),其中滾轉角是z軸與通過x軸的鉛垂面的夾角,x軸投影到水平面與導航系的夾角即為航向角,俯仰角則是x軸與水平面的夾角。本設計中運用了模塊輸出的航向角來表示車身轉向信息, JY61模塊通過串口(TTL)將姿態(tài)數(shù)據(jù)傳送給Nano開發(fā)板處理,最后做出相應提示操作。

圖2 模塊與單片機連接圖
本模塊的設計,我們分析了現(xiàn)有幾種測距方式的優(yōu)缺點,其間對測距模塊進行了測試和數(shù)據(jù)分析。
該MVR2EB模塊利用激光對目標的距離進行準確測定,激光測距模塊在工作時向目標射出一束很細的激光,由光電元件接收目標反射的激光束,計時器測定激光束從發(fā)射到接收的時間,計算出從觀測者到目標的距離,采用 TOF(Time-of-Flight 飛行時間)技術,850nm 光源,配合獨特的光學、電子、結構設計而成的激光測距模組,模組會計算通過發(fā)射調制過的紅外光信號,在被測物體反射之后返回到模組接收傳感器的時間來計算出相對距離值,可以實現(xiàn)0.3~14m高速測距需求(室外),且測試速度快而準確。模塊小巧玲瓏,體積小適合集成化,重量輕,僅9 克,對于佩戴和使用者該重量沒有不適感。模塊UART串口通信,將數(shù)據(jù)以HEX形式發(fā)送到MCU中。數(shù)據(jù)簡潔易讀取,方便進行數(shù)據(jù)轉化處理。

圖3 模塊外形和測距原理圖
由于儀表系統(tǒng)和頭盔系統(tǒng)是分開運行,在儀表系統(tǒng)中傳感器得到數(shù)據(jù)之后需要通過數(shù)據(jù)通訊,讓頭盔系統(tǒng)的MCU做出對應處理。中間的數(shù)據(jù)通訊橋梁,本系統(tǒng)采用兩片HC-05藍牙模塊進行數(shù)據(jù)通訊。
該藍牙模塊連接迅速、連接穩(wěn)定、易于開發(fā)、性價比高,在智能家居、遠程控制、監(jiān)控系統(tǒng)方面有著廣泛應用。從藍牙適用距離和性能參數(shù)考慮,該藍牙模塊可以用于本系統(tǒng)完成兩個系統(tǒng)的數(shù)據(jù)通訊。
在使用該藍牙模塊需要設置主從機,根據(jù)系統(tǒng)要求將儀表系統(tǒng)的藍牙模塊設置為從機,用于傳輸傳感器的數(shù)據(jù)。頭盔系統(tǒng)的藍牙模塊設置為主機,用于接受從機發(fā)送的數(shù)據(jù)。

圖4 藍牙規(guī)格

圖5 AT指令配置藍牙
本裝置設計使用0.96寸,像素點為128×64的OLED顯示屏,用于顯示傳感器獲得數(shù)據(jù)。模型調試階段,可以通過屏幕顯示的信息直接判斷轉向姿態(tài)數(shù)據(jù)。后期可以通過屏幕實時反饋車身姿態(tài)數(shù)據(jù)。

圖6 OLED連接示意圖
轉向提示燈部分采用WS2812燈條。WS2812是一個集控制電路與發(fā)光電路于一體的智能外控LED光源。其外形與一個505LED燈珠相同,每個元件即為一個像素點。像素點內部包含了智能數(shù)字接口數(shù)據(jù)鎖存信號整形放大驅動電路,還包含有高精度的內部振蕩器和可編程定電流控制部分,有效保證像素點的顏色高度一致。
數(shù)據(jù)協(xié)議采用單線歸零碼的通訊方式,像素點在上電復位以后,DIN端接受從控制器傳輸過來的數(shù)據(jù),首先送過來的24bit數(shù)據(jù)被第一個像素點提取后,送到像素點內部的數(shù)據(jù)鎖存器,剩余的數(shù)據(jù)經過內部整形處理電路整形放大后通過DO端口開始轉發(fā)輸出給下一個級聯(lián)的像素點,每經過一個像素點的傳輸,信號減少24bit。像素點采用自動整形轉發(fā)技術,使得該像素點的級聯(lián)個數(shù)不受信號傳送的限制,僅僅受限信號傳輸速度要求。我們采用三個燈條為一組提示燈,將三個燈條的信號線統(tǒng)一,單片機輸入程序,產生一種閃爍流水燈的效果,該視覺效果比簡單的亮燈,流水燈動態(tài)更吸引人體視覺注意,本設計的提示效果。

圖7 典型電路設計

圖8 燈條流水效果示意
本系統(tǒng)采用LX-MP3模塊和一個4Ω3W的揚聲器組成。在電腦端提前將使用到的語音錄入到模塊的SD卡中,再將單片機的IO口接入到模塊預留的A1~A9端口。該模塊有兩種觸發(fā)模式,在使用語音少的情況下可以使用單鍵觸發(fā)模式,可以直接用單片機拉低電平觸發(fā)。另一種在使用語音數(shù)量較多時可以使用編碼觸發(fā)模式,最多可以觸發(fā)31首語音。本系統(tǒng)使用了單鍵觸發(fā)模式。

圖9 模塊示意圖
對于本系統(tǒng)使用到多種傳感器和模塊,設計一個可以集成化的PCB電路板,預留傳感器模塊接口,方便安裝,可以減小設備的體積,并且提高整個電路的連接穩(wěn)定性。
根據(jù)需求預留了單片機接口、藍牙模塊接口、OLED顯示屏接口、傳感器模塊接口、燈帶接口。設計電壓轉化電路,保留電源指示燈。

圖10 語音模塊和揚聲器實物圖

圖12 MCU1電路原理圖
軟件部分流程主要從傳感器數(shù)據(jù)獲取外部信息—單片機讀取傳感器反映的外部數(shù)據(jù)—通過藍牙實現(xiàn)雙MCU的數(shù)據(jù)傳輸—單片機執(zhí)行相應設定的行為—最終實現(xiàn)相應功能。根據(jù)兩個功能的實現(xiàn)要求,分別設計相應代碼,具體細節(jié)如下。



圖13 MUC2的電路原理圖

圖14 頭盔系統(tǒng)PCB電路板

圖15




圖16
在該部分設計中,首先對于姿態(tài)模塊JY61的數(shù)據(jù)獲取,我們調用JY901.h庫文件處理基礎數(shù)據(jù),將處理后的有效的姿態(tài)數(shù)據(jù)以串口方式讀取到單片機中。通過SoftwareSerial.h定義軟串口,使數(shù)據(jù)通過藍牙模塊進行傳輸。最后,在主MCU程序中,將偏航角進行補正,將偏航角限定在1°~360°內,然后前后兩次的偏航角數(shù)據(jù)進行對比,如果偏差幅度超過設定值,并執(zhí)行對應的亮燈閃爍程序。提示燈部分使用數(shù)組編碼,達到流水燈提示效果。


在該部分設計中主要從測距模塊中獲取到實時距離數(shù)據(jù),通過閱讀數(shù)據(jù)模塊手冊確定距離數(shù)據(jù)在第三和第四字節(jié),將該字節(jié)獲取,并進行高位轉換,將十六進制轉化為十進制數(shù),讀取到單片機中,將讀取的數(shù)據(jù)與設定值比較,距離過近,則拉低控制語音模塊引腳電平,發(fā)出提示語音。
本文介紹了一種以Arduino nano[4]為主 控 系 統(tǒng),將轉向檢測、安全提示、距離監(jiān)測和藍牙數(shù)據(jù)通信等多種功能有機結合的智能安全騎行輔助裝置。該系統(tǒng)硬件電路簡單、實時性好,軟件設計成本低、功能可擴展,能夠提高騎行交通安全事故的發(fā)生率、減少人員傷亡。該系統(tǒng)作為智能設備的一個典型應用,具有功能多樣化、應用廣泛的特點,對交通安全騎行建設起到一定的推動作用。