孔得志,龔元明,馮保壯,趙宇航
(201620 上海市 上海工程技術大學)
隨著我國經濟的發展,汽車工業以及道路交通取得了快速發展。我國道路交通安全法規定,在道路上車輛發生故障、事故停車后,不按規定使用燈光或指示標志的屬于違章行為,將會被扣3 分;白天城市道路警示牌應放置在車后50 m,高速道路則為150 m 左右;晚上或光線昏暗時,放置距離要相應加長,城市道路要把三角警示牌放置在車后100 m,高速道路為250 m 左右。盡管如此,當車輛拋錨或出現其他緊急情況,需停車檢修或等待救援時,由于沒有明顯的應急警示導致后方車輛與之相撞的交通事故屢見不鮮。同時,二次事故也是人們最容易疏忽的隱形危險——司乘人員下車沿來車方向放置三角警示牌的過程中也極易出現危險,還會出現人為估算位置不準確、達不到警示效果的問題[1]。
本設計不僅在造型以及實用性有所考量,既實用可靠又更具個性,滿足了現代人對新鮮事物的追求。更重要的是,車用三角警示牌具有自主移動功能,可自動到達指定地點,并可自動展開收回,穩定性較高,最大程度保障車上人員的安全。
車載智能三角警示牌主要由硬件電路、軟件程序、機械結構三大部分組成。工作原理如下:
(1)攝像頭采集視頻數據傳輸給樹莓派3B+主板,樹莓派3B+的主控芯片根據程序處理視頻數據,識別車道線。
(2)視頻數據可通過樹莓派自帶熱點模塊,連接手機APP,手機APP 可選擇自動循線模式或者遙控模式。
(3)樹莓派3B+處理完視頻數據后,通過電源主板控制舵機和直流電機,三角臂展開,智能三角警示牌開始運動。
(4)通過SIM7600CE 模塊連接云服務器,上報汽車事故或故障位置信息。
(5)如若選擇自動循線模式,根據設定的距離到達指定位置后停止。
結合智能三角警示牌的工作原理,從總體的角度考慮要實現的功能,繪制總體工作原理流程圖,如圖 1 所示。

圖1 總體工作原理流程圖Fig.1 Flow chart of general working principle
綜合考慮要實現的功能以及本設計所需的算力、成本以及便攜性,選用樹莓派3B+作為控制主板。它是一款基于ARM 的微型電腦主板,可安裝Linux 系統,配備1.4 GHz、64 位四核Cortex-A53處理器,具備所有PC 的基本功能,配有4 個標準USB 端口以及1 GB 內存,40 針GPIO 接頭[2]。其體積僅有信用卡大小,便于安裝布置。軟硬件資源豐富,可連接顯示器、鍵盤鼠標等設備,可直接在其系統內進行開發,便于程序代碼的調試。通過安裝Python 和OpenCV 圖像處理的依賴庫,使用軟件編程,通過攝像頭數據實現識別車道線并驅動電機等相關功能。
采用帶大電流保護板的18650 鋰電池組,使用標準5.5 mm×2.1 mm 的圓形接口。經過電源驅動板總開關,可給樹莓派 3B+主板和驅動電機供電,同時驅動板上預留了外部電源的接口,可接24 V或更高的電源給驅動電機供電,提高智能三角警示牌的行駛速度。電源網絡如圖 2 所示。

圖2 電源網絡Fig.2 Power supply net
電源模塊供電模式:(1)經過大電容濾波后,電池電壓直接給電機驅動芯片供電,驅動直流電機。(2)經過大電流 DC-DC 降壓為 5 V 后,給舵機系統供電。(3)經過 DC-DC 降壓為 5 V 后,給主控芯片主板供電,再由樹莓派主板給攝像頭供電。
2.3.1 電機驅動芯片
選用2 個130 減速直流電機作為驅動電機,L298P 作為電機驅動芯片[3]。L298 電機驅動芯片是比較常見的一款電機驅動芯片,一片 L298P 芯片可同時驅動多個直流電機做各種不同的動作,且具有過熱保護和檢測反饋功能,可以與主控芯片直接相連,操作使用簡單方便,穩定性好。
2.3.2 直流電機驅動電路
在確定要使用的電機和電機驅動芯片后,結合樹莓派,設計了電機驅動電路。電機驅動電路原理圖如圖3 所示。

圖3 電機驅動電路原理圖Fig.3 Schematic diagram of motor drive circuit
圖3 中是L298P 電機驅動芯片的電路連接,J10 是電機的電壓輸出接口,TP6、TP7、TP8、TP9 是4 個輸出口 的測試點[4]。INPUT1_1、INPUT1_2、INPUT1_3、INPUT1_4 是4 個電機轉動信號輸入口,分別與樹莓派的IN1,IN2,IN3,IN4 網絡相連接,也就是樹莓派采用BCM 編碼的GPIO19,GPIO26,GPIO16 和GPIO21,達到能夠通過樹莓派程序控制電機驅動的目的。ENA_1、ENB_1 是兩組電機的 PWM 調速端口,分別與樹莓派的ENA 和ENB 網絡,也就是樹莓派采用BCM編碼的GPIO13 和GPIO20 引腳,達到能夠通過樹莓派程序控制電機速度的目的。此外在電機輸出端口電源和 GND 之間加上反向二極管可以防止電機物理轉動導致產生反向電壓擊穿電路板。
2.4.1 舵機的驅動原理
智能三角警示牌的三角臂展開時,需要舵機驅動三角臂轉動一定角度,并能夠保持一定角度。本文選用了2 個XR SG90 型舵機,分別控制2 個三角臂的展開。該型舵機體型較小,質量輕,便于安裝布置。舵機由PWM 控制角度,PWM 的高電平時間0.5~2.5 ms,對應舵機的0~180°。舵機兩端有死區,長時間工作在死區,會導致舵機損壞,一般會讓舵機工作在20~160°。這種舵機具有防卡死的功能,當力度超過設定值時,結構離合斷開,發出咔咔聲但不會燒毀電機。
2.4.2 PWM 發生器
該舵機使用電壓在3.5~6 V,樹莓派3B+結合Python 程序可直接驅動舵機轉動,但會出現抖動現象,所以在電源板上集成了一顆PWM 發生器,且將驅動包集成到Smbus 庫中,并留出簡易的API接口供調用。
選用了二電平的PWM 發生器,是產生的脈沖為采用二電平拓撲并使用脈沖寬度調制(PWM)的轉換器。該模塊可以控制開關器件的3 種不同轉換器類型,本文選用了單相半橋的轉換器類型。當樹莓派發送的調制信號被采樣后沒和對稱的三角載波進行比較,當基準信號大于載波時,上部開關器件的脈沖為高,下部開關器件的脈沖為低。
2.5.1 4G/GPS 通信模塊的選擇
選用SIM7600CE 模塊結合物聯網卡實現網絡功能,當汽車事故或故障發生后,駕乘人拿出智能三角牌開啟開關后,根據樹莓派中設置的自啟動程序,將需要上傳數據的信號發送給SIM7600CE 模塊,SIM7600CE 模塊上傳位置信息至云服務器,并通過各軟件地圖平臺故障上報的API,上報位置信息,使用該地圖軟件的用戶,在接近該路段時可獲得汽車發生事故或故障的位置,選擇更換路線或者繼續行進,減少道路擁堵。
SIM7600CE 是一款SMT 封裝的模塊,支持LTE -TDD/LTE -FDD/HSPA +/TD -SCDMA/EVDO和GSM/GPRS/EDGE 等頻段,支持LTECAT4,通過AT 指令控制,其性能穩定,外觀小巧,性價比高,可以低功耗實現SMS 和數據信息的傳輸。其尺寸大小約為30.0 mm×30.0 mm×2.9 mm,滿足各種緊湊型產品設計需求。
2.5.2 4G/GPS 通信模塊的連接
將SIM7600CE 模塊的引腳與樹莓派引腳對應相連接,通過樹莓派的USB 插口單獨給SIM7600CE 模塊供電,供電功率500 mA 左右。選用樹莓派BCM 編碼格式,其中樹莓派的TXD 引腳對應BCM 的14,RXD 對應BCM 的15,P22 對應BCM 的P6,P7 對應BCM 的P4,當此引腳拉高時進入飛行模式。SIM7600CE 與樹莓派3B+主板引腳連接表見表1。

表1 SIM7600CE 與樹莓派3B+主板引腳連接表Tab.1 Connection of SIM7600CE with Raspberry Pi 3B+Pin
軟件設計可分為樹莓派內部程序設計和手機遠程控制程序兩大部分,兩者之間通過樹莓派本身自帶的WiFi 熱點通信,自定義一套數據傳輸協議,進行相關數據的傳輸。智能三角警示牌有2 種行進方式,一是遙控模式,通過手機遠程遙控其前進、后退等操作;二是自動巡線模式,根據攝像頭識別的車道線,自動直線行走50,100,150 m 等距離,自動轉向矯正保證偏差最小[5]。移動端操作平臺負責解析WiFi 模塊傳輸的視頻并實時顯示以及發送控制指令。
智能三角警示牌主體功能分成3 部分:WiFi通信功能、驅動功能及圖像處理功能,具有攝像頭巡線,電機控制前進、后退、左轉、右轉、警示燈開機自動閃爍。
小車與主控端之間的通信方式是半雙工的通信方式,通常由Android 設備向自動警示牌發送命令后,小車做出回應。通信協議采用TCP 服務,在開機自啟動后監聽2001 端口,等待TCP Server的連接。當Android 設備連接到自動警示牌的熱點后,打開控制軟件,開始連接TCP Client,通過2001 端口,跟TCP Server 握手。TCP 提供一種面向連接的、可靠的字節流服務,具有慢啟動、擁塞避免、快速重傳、快速恢復等特點,能確保傳輸數據的正確性,不出現丟失或亂序,并且保證接收端毫無差錯地接收到發送端發出的字節流,為應用程序提供可靠的通信服務。
轉向原理是利用兩側車輪的輪速差,當一側車輪速度小于另一側的時,智能三角警示牌在前進過程中就會向輪速小的一側偏轉。本文通過控制兩個使能引腳電壓輸出ENA、ENB 控制警示牌的轉速及前進方向,當需要原地轉向時,只需將一側車輪轉向改為反向即可。小車在循跡過程中前進、左轉和右轉的程序設計流程如圖4 所示。

圖4 循跡程序流程圖Fig.4 Tracing process flow chart
對車道線的檢測包括對彩色圖像預處理、特征檢測、霍夫變換等。圖像處理流程如圖5 所示。

圖5 圖像處理流程Fig.5 Image processing flow
帶有攝像頭的自動警示牌檢測路面圖像信息,進行圖像的預處理,包括圖像灰度化和圖像濾波。OpenCV 中提供了cvtColor (img,cv2.COLOR _BGR2GRAY) 函數用于對圖像進行灰度化處理。圖像濾波采用的是高斯濾波,其可分離性質具有把二維高斯運算轉換為一維高斯運算的優點。本文運用高斯濾波對圖像進行降噪處理,在OpenCV 中可通過函數GaussianBlur 實現。路面圖像和二值化處理后的圖像如圖6 所示。

圖6 路面圖像與二值化處理圖像Fig.6 Pavement image and binarization processing image
將檢測到的圖像利用函數canny(img,low_threshold,high_threshold)進行Canny 邊緣檢測,計算水平與豎直方向的梯度大小與方向,再通過極大值抑制去除非邊界上的點[6]。
最后,通過霍夫變換[7]分離出具有某種相同特征的幾何形狀,如車道線一側的直線,利用霍夫變換提取圖像中的直線可以更好地減少噪聲干擾,處理效果圖如圖7 所示。

圖7 霍夫變換處理效果圖Fig.7 Hough transform processing effect
4.4.1 Android 移動端主體結構
移動端主體結構如圖8 所示,可分成3 部分:連接模塊、通信模塊及控制模塊,在連接部分可以分為WiFi 連接和藍牙連接。通信部分主要是視頻流傳輸及解碼等,控制部分主要實現對智能三角警示牌的控制。

圖8 客戶端主體結構Fig.8 Client body structure
4.4.2 主界面框架設計
系統主界面中包含連接方式的設置、通信協議的設置、開始測試按鍵等。圖9 中展示了系統主界面、通信參數設置界面、控制界面的樣式。

圖9 手機APP 樣式Fig.9 Mobile APP Style
點擊設置,進入通信參數設置界面。點擊開始進入控制界面,連接成功后可顯示攝像頭視頻圖像。控制界面邏輯流程圖如圖10 所示。

圖10 控制界面邏輯流程圖Fig.10 Control interface logic flow chart
(1)測試在白天、傍晚和夜間不同的光照強度下車道線識別情況,確定智能三角警示牌在不同時間段的可用性。
(2)測試無線控制的有效范圍,將智能三角警示牌放在帶有車道線的車道上,由手機APP 控制其前進、轉向、倒退,測試延遲時間,即從手機端按下按鈕到智能警示牌開始行動的時間。
(3)測試智能三角警示牌的警示范圍,人員距離多少米能較為清晰地注意到。
剪輯攝像頭中錄取的中午12:00、傍晚6:30 以及晚上9:00 三個時間段視頻,導入程序中進行多次測試。經多次測試,智能三角警示牌在白天、傍晚和有路燈的晚上均能準確識別車道線,車道線識別效果如圖11 所示。

圖11 車道線識別效果Fig.11 Lane line identification effect
選 擇0~20 m,20~50 m,50~80 m,80~100 m 4 段距離,測試手機APP 在控制智能三角警示牌時的延遲時間。在50 m 范圍內時,其延遲時間小于1 s,可忽略不計。之后隨著距離的增加,延遲時間越來越大,距離達到100 m 時,平均延遲時間達到1.4 s。不同距離下接收指令延遲時間測試數據如表2 所示。

表2 不同距離下接收指令延遲時間Tab.2 Delay time for receiving instructions at different distances
挑選多名駕乘人員進行警示牌識別測試,根據駕乘人員反饋,行駛過程中,在距離200 m 范圍內可明顯看到前方智能三角警示牌的警示燈閃爍,并且夜間比普通三角架的警示作用更加明顯。智能三角警示牌夜間警示效果圖如圖12 所示。

圖12 智能三角警示牌夜間效果圖Fig.12 Night effect of intelligent warning triangle
由上述測試可得,本文設計研究的智能三角警示牌可滿足實際使用需求,達到了設計目標,未來可進一步完善功能,實現其應有的價值。
本文基于樹莓派主板設計了一種新型智能三角警示牌,通過運用電機驅動、無線通信及圖像識別等成熟技術,實現了對普通三角警示牌的改進。智能三角警示牌可以通過遙控或自動巡線2 種模式行駛至相應位置,使人員無需離車即可對智能三角警示牌進行遠程控制,減少二次事故發生的概率,保障了人員安全。還具有發光警示和防水功能,能夠自動展開折疊,放置穩固,節省空間。