任澤影 高熙 呂毅飛 柴文章 陳曉范
摘要:該系統(tǒng)是基于單片機的超聲波測距系統(tǒng),它根據(jù)超聲波在空氣中傳播的反射原理,以超聲波傳感器為檢測部件, 應用超聲波在空氣中傳播的時間差來測量距離。另有語音播報功能等。主要由測距系統(tǒng)和語音播報系統(tǒng),識別系統(tǒng),報警系統(tǒng),自動化控制,五個主要模塊構成。語音系統(tǒng)發(fā)出警示音,提醒使用者前方障礙物需躲避等等。使盲人在看不見的情況下,能夠識別前方的障礙物正常的行走,從而起到保護盲人安全的作用。
關鍵詞:智能避障;超聲波測距;數(shù)據(jù)處理
中圖分類號:TP3 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)31-0246-02
1緒論
1.1導盲器來源
殘疾人是社會中主要的弱勢群體,他們要面對更多的困難和壓力。近些年來,社會和政府越來越關注弱勢群體,給予盲人的關懷也越來越多。
1.2 導盲器目的和意義
盲人導盲預警系統(tǒng)的運用可極大地減輕盲人的行走不便與安全隱患,降低且避免因盲人不辨障礙而導致的事故的發(fā)生,同時對提高人體智能化設計起到重要的意義。
平衡車的設計,實現(xiàn)平衡車的無人運行;掃地機的設計,路線的優(yōu)化,促進了智能家居向普通家庭的步入,提升了普通百姓的生活質(zhì)量。
2 智能導盲設計
為了方便實現(xiàn)導盲功能,本團隊將導盲系統(tǒng)和小車組裝,以實現(xiàn)小車的無人行走來設計導盲功能。后續(xù)還會組裝在人的身體和衣服等。
2.1系統(tǒng)軟件設計思路
樹莓派用的python,所以我們也使用python。
使用超聲波測距傳感器,單片機在接收到傳感器的信息后,將傳感器的信號轉換為距離信息,通過語音播報提示,小車接收信息后,實現(xiàn)避障功能(盲人聽到語音播報以后,以實現(xiàn)拐彎動作)。
2.2 算法分析
要想從A點傳遞到B點,主要就是搞定單片機的運算功能。本團隊特別模擬了兩個單位(目前只做平面處理,上下樓梯與消耗的電能成正比,usb攝像頭對圖像的識別能力不夠,不能明顯識別樓梯的步數(shù),所以目前不考慮)。假設借鑒了行車記錄儀來做處理,假設從A點到B點,先要直走50m,在左轉彎行走150m,在右轉彎行走10m。通過行車記錄儀做距離處理,一走到50m,就立馬語音播報,進行轉彎。后續(xù)還會使用GPS來做定點處理,無論走的哪里去,都能找到回家的路。行車記錄儀對數(shù)據(jù)的處理能力更精確,樹莓派自帶計時功能因為設計到各種延時模塊,會導致計時的難度大大提升。行車記錄儀記錄數(shù)據(jù),動的時候計時,不動的時候停止計時,轉彎的時候重新計時,兩組進程分開,誤差更小。但是對于盲人而言,不需要科學上那么嚴密的計算,所以后續(xù)中程序的運行偏差會很大。
儲存功能的實現(xiàn),可以將A移動B的所有數(shù)據(jù)進行封裝,存儲在文件中。
2.3 轉彎算法分析
由于本人的學識能力有限,我們只考慮左轉彎,右轉彎。假設將左轉彎設為1,右轉彎設為0,時間加單位s,這樣讀數(shù)據(jù)的時候就不容易報錯。
3 小車的組裝和硬件的介紹
按照樹莓派小車的設計,在淘寶上買好各種組件,組裝成小車。
3.1攝像頭的安裝
小車前部安裝一個USB攝像頭,攝像頭可以做一些數(shù)據(jù)的模糊分析,主要道路的選擇,以及用于識別馬路紅綠燈,危險路段的路標。
USB攝像機是采用USB接口的安防攝像機,即插即用,傻瓜式操作,無須采集卡,無須電源,免拆機箱、支持筆記本電腦。選取品怡(Bejoy)USB語音通話補光燈攝像頭臺式機筆記本電腦攝像頭,價格29元適合USB供電。
3.2語音播報模塊
這里需要給樹莓派安裝播放器,本人選擇的是MPV播放器,安裝命令,sudo apt-get install mpv ;測試是否安裝成功,可以在命令行中測試 mpv./song.mp3 是否播放正常。
借鑒csdn的樹莓派智能家居-天氣預報和實時溫濕度監(jiān)控。
由于樹莓派自帶播放器不好用,固還需要購買蜂鳴器。蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電。
3.3超聲波測距模塊
本次設計選擇HC-SR04作為放大器。超聲測距部分是利用超聲波在空氣中傳播時遇到障礙物返回的特點來實現(xiàn)測量距離的目的。根據(jù)超聲波從發(fā)射到接收到回波的時間以及此時的聲速就可以計算出障礙物的距離。由于超聲在空氣中傳播有衰減,加上環(huán)境以及電路本身的噪聲干擾,測量距離有一定的上限,超過上限距離的障礙物的回波將無法檢測到;同時由于發(fā)射超聲波對接收超探頭的影響,測量距離存在下限,低于下限距離的障礙物回波將無法與干擾信號區(qū)別開。系統(tǒng)測量的就是介于上限與下限距離范圍的障礙物信息。當檢測到障礙物時,系統(tǒng)會通過語音模塊發(fā)出告警信號。
3.4報警器模塊
報警模塊主要是當樹莓派檢查到危險情況的時候,中斷執(zhí)行語音播報模塊。還有就是使用者自己想通過按鈕去中斷執(zhí)行別的程序。按鈕觸動開關引起的報警因為在測試中毫無意義,反而還會增加程序的量,固暫不考慮。
3.5 定時模塊
linux系統(tǒng)里支持定時任務,所以crontab -e 命令可以滿足我們的要求。定時器主要用于計時,從a到b需要多少秒,將這些數(shù)據(jù)儲存在文件中。
4 實現(xiàn)操作
4.1 語音播報的實現(xiàn)
樹莓派使用ilangbd庫進行python進行中文文本轉語音。
安裝代碼請參考csdn中使用ilangbd庫進行python進行中文文本轉語音。
4.2 Usb攝像頭識別功能
識別功能主要就是cv2和dlib。為了能夠更好地實現(xiàn)此工程,導入樹莓派的鏡像可以直接使用別人安裝好了的。
為了研究方便,本實驗借鑒人臉識別的操作。如下所示:
│├──data_dlib#Dlib的模型
││├──dlib_face_recognition_resnet_model_v1.dat
││├──shape_predictor_5_face_landmarks.dat
││└──shape_predictor_68_face_landmarks.dat
│├──data_faces_from_camera#從usb攝像頭捕獲的面部圖像
││├──圖像_1
│││├──img_face_1.jpg
│││└──img_face_2.jpg
││└──圖像_2
││└──img_face_1.jpg
││└──img_face_2.jpg
圖像最好是越多越好,我們?yōu)榱藢崿F(xiàn)報警,只做了紅綠燈的識別,和一個危險路標的識別。
│└──features_all.csv#CSV,用于保存已知圖片的所有特征
提前可以將馬路燈,危險路標錄進去,方便以后做特征處理。
4.3識別路線功能和報警功能
識別路線等同于人臉識別模塊
├──簡介#一些readme.rst文件
│├──Dlib_Face_recognition_by_coneypo.pptx
│├──face_reco_single_person_customize_name.png
│├──face_reco_single_person.png
│├──face_reco_two_people_in_database.png
│├──face_reco_two_people.png
│├──get_face_from_camera_out_of_range.png
│├──get_face_from_camera.png
│└──overview.png
├──README.rst
└──requirements.txt
報警功能就是當檢查照片特征等于危險地帶照片的特征時候,語音播報提示使用者,達到報警功能。
還請注意,此模型文件設計用于dlib的HOG人臉檢測器。也就是說,它期望面部檢測器的邊界框以某種方式對齊,即dlib的HOG面部檢測器的對齊方式。當與會產(chǎn)生不同對齊框的面部檢測器一起使用時,效果會不佳。
4.4文件的存儲功能
將小車加速度設置為定值,當速度到達一定值是時候,速度成為等值;減速相同,所以小車的v-t圖像成等腰梯形。
假設要運動的直線路程為100m,中間速度為10m/s,加速度為10,可計算出等腰梯形的兩個三角形面積為10,所以中間用時為9s。
實際生活中,由于舵機不是靠恒加速度上去的,但是原理一樣。我們可以測量他達到恒速度所用的時間和位移,所以知道他恒速度需要走多長。將這類值儲存在文件中,等待程序的讀取。
4.5 小車行動模塊
# 左轉函數(shù)
def left():
GPIO.output(IN1,F(xiàn)alse)
GPIO.output(IN2,F(xiàn)alse)
GPIO.output(IN3,GPIO.HIGH)
GPIO.output(IN4,GPIO.LOW)
# 右轉
def right():
GPIO.output(IN1,GPIO.HIGH)
GPIO.output(IN2,GPIO.LOW)
GPIO.output(IN3,F(xiàn)alse)
GPIO.output(IN4,F(xiàn)alse)
# 前進
def go():
GPIO.output(IN1,GPIO.HIGH)
GPIO.output(IN2,GPIO.LOW)
GPIO.output(IN3,GPIO.HIGH)
GPIO.output(IN4,GPIO.LOW)
# 停止
def stop():
GPIO.output(IN1,GPIO.LOW)
GPIO.output(IN2,GPIO.LOW)
GPIO.output(IN3,GPIO.LOW)
GPIO.output(IN4,GPIO.LOW)
5 總結和不足
本文兩個方面,圖像的模糊識別和處理和單片機小車的路程規(guī)劃,在小車(人)的行駛中,又涉及語音提示避障(對于人而言)、小車自動避障。而強大的導盲器可作用于各種領域,航天方面,導盲器可實現(xiàn)實現(xiàn)遠程操作,探索路線,傳輸視頻畫面;運輸方面,小車可以運輸快遞等等。 此次設計的導盲器為老人提供了科學、有效的獨立幫助,為老人提供了摸索路線的依據(jù),是一個非常有實用價值的創(chuàng)意。
科學計算的精確度要求高,可實際生活中,路面不可能一直是平的,當小車行駛在凹凸地段,v-t圖像必將產(chǎn)生波動變化,小車轉彎的度數(shù)也沒做處理。Usb傳遞的圖像識別能力不強,超聲波測距容易受到干擾,還有各種隱患問題都沒處理。
參考文獻:
[1] 鮑捷,陳洪斌,歐仁俠.基于單片機的新型導盲器的設計與應用研究[J].電子制作,2017.
[2] 鮮大武.觸摸式取暖器的設計[J].中國新技術新產(chǎn)品,2011(11).
[3] 蔣胤冰,朱智,李漫漫,等.基于STC89C52單片機的智能嬰兒床設計[J].江蘇科技信息,2018.
[4] 李筱雅 ,高寒 ,張璐璐,等.基于單片機的超聲波導盲系統(tǒng)[J].電子世界,2016.
【通聯(lián)編輯:朱寶貴】