• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Arduino的電動(dòng)車(chē)與摩托車(chē)安全報(bào)警裝置

    2018-12-17 09:17:46任環(huán)宇曹虎李道全
    電腦知識(shí)與技術(shù) 2018年25期
    關(guān)鍵詞:串口通信上位機(jī)

    任環(huán)宇 曹虎 李道全

    摘要:電動(dòng)車(chē)、摩托車(chē)在為了人們出行提供方便的同時(shí),也帶來(lái)了安全隱患。本設(shè)計(jì)開(kāi)發(fā)了一款用于安裝在電動(dòng)車(chē)、摩托車(chē)后置的危險(xiǎn)探測(cè)裝置。探測(cè)手段主要通過(guò)超聲測(cè)距傳感的方式,盡早地探測(cè)出電動(dòng)車(chē)、摩托車(chē)在行駛過(guò)程中遇到的距離過(guò)近的“危險(xiǎn)”,考慮到電動(dòng)車(chē)、摩托車(chē)在形式過(guò)程中的“視野盲區(qū)”,該設(shè)計(jì)為超聲測(cè)距探頭搭載了旋轉(zhuǎn)舵機(jī),以方便探頭周期性地對(duì)“視野盲區(qū)”的各個(gè)方向進(jìn)行有效探測(cè)。同時(shí)設(shè)計(jì)開(kāi)發(fā)了多種預(yù)警模塊,包括語(yǔ)音提示預(yù)警模塊、燈光閃爍預(yù)警模塊,模塊是基于arduino上位機(jī)、語(yǔ)音芯片做下位機(jī)的技術(shù)實(shí)現(xiàn)的。通過(guò)聲光交替預(yù)警的方式,提高后方車(chē)輛的警惕性,盡可能地避免追尾。

    關(guān)鍵詞: arduino;超聲測(cè)距;上位機(jī);串口通信;語(yǔ)音合成;預(yù)警裝置

    中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)25-0273-04

    隨著經(jīng)濟(jì)的快速發(fā)展,人們生活水平的提高,出行方式的選擇成為與百姓生活息息相關(guān)的問(wèn)題。在較為發(fā)達(dá)的城市,為了避免出行的擁堵,越來(lái)越多的人選擇使用電動(dòng)車(chē)、摩托車(chē)等便攜式的出行方式。而在農(nóng)村,電動(dòng)車(chē)、摩托車(chē)也更是成為人們出行的主要交通工具。盡管這些交通工具較為方便,但是安全成為一大隱患,尤其是相對(duì)”鐵包肉”的汽車(chē)來(lái)說(shuō),無(wú)疑增大了安全隱患[1]。本項(xiàng)目旨在通過(guò)相關(guān)的設(shè)計(jì)開(kāi)發(fā)來(lái)解決這一隱患。

    1 系統(tǒng)總體設(shè)計(jì)

    1.1 總體設(shè)計(jì)概述

    本項(xiàng)目的重點(diǎn)在各個(gè)模塊的獨(dú)立開(kāi)發(fā)以及各個(gè)模塊的拼接。通過(guò)調(diào)研,各個(gè)模塊所使用的外設(shè)都在arduino有統(tǒng)一的協(xié)議,有較為豐富的開(kāi)發(fā)資源(Arduino ide),非常方便開(kāi)發(fā)者做各種功能的組合實(shí)現(xiàn)。同時(shí),語(yǔ)音模塊和主控arduino板都是支持統(tǒng)一的串口通信協(xié)議,因此只需要做一個(gè)arduino上位機(jī)的通信邏輯,就可以完成該模塊的設(shè)計(jì)。

    整個(gè)系統(tǒng)的功能可以分為如下的幾個(gè)模塊:超聲測(cè)距傳感器測(cè)距、舵機(jī)旋轉(zhuǎn)、燈條閃爍邏輯、語(yǔ)音報(bào)警模塊、主控板與語(yǔ)音模塊的串口通信。

    系統(tǒng)的流程圖如圖1所示。

    1.2 主要設(shè)備介紹

    1.2.1 Arduinomega2560

    Arduino是一款便捷靈活、方便上手的開(kāi)源電子原型平臺(tái)[2],如圖2所示。包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)。Arduino能通過(guò)各種各樣的傳感器來(lái)感知環(huán)境,通過(guò)控制燈光、馬達(dá)和其他的裝置來(lái)反饋、影響環(huán)境。板子上的微控制器可以通過(guò)Arduino的編程語(yǔ)言來(lái)編寫(xiě)程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。同時(shí)其軟件平臺(tái)的高級(jí)設(shè)計(jì)語(yǔ)言是基于c語(yǔ)言開(kāi)發(fā)的,非常利于開(kāi)發(fā)者快速學(xué)習(xí)和開(kāi)發(fā)。同時(shí)其開(kāi)源平臺(tái)里有豐富的庫(kù)可用,降低了編程的難度,并提高了本項(xiàng)目的可行性。

    1.2.2 超聲波探測(cè)頭

    超聲波模塊是一個(gè)用來(lái)測(cè)量距離的電子模塊,如圖3 所示。本項(xiàng)目采用的超聲模塊有如下參數(shù)特性:工作電壓: 5V DC,工作溫度:-25~+80℃,測(cè)量角度:30度范圍內(nèi),測(cè)量范圍:3-400cm(誤差小于1cm),超聲波頻率:42kHz,控制方式:?jiǎn)螖?shù)字口控制。

    根據(jù)其參數(shù)特性我們能夠看到,它的測(cè)量角度難以完成對(duì)“視角盲區(qū)”的全部覆蓋,所以搭載舵機(jī)模塊非常有必要。同時(shí)其的探測(cè)距離是3~400cm,在實(shí)際的使用是非常適合的。

    1.2.3 舵機(jī)

    本設(shè)計(jì)實(shí)用的舵機(jī)型號(hào)是MEDS15,如圖4。相對(duì)于市面上最便宜的9g小舵機(jī),雖然旋轉(zhuǎn)功能二者都可以實(shí)現(xiàn),但是實(shí)踐設(shè)計(jì)過(guò)程中發(fā)現(xiàn),9g小舵機(jī)的舵機(jī)臂固定超聲模塊非常不穩(wěn)定,而這一款舵機(jī)的舵機(jī)臂有一個(gè)常見(jiàn)尺寸的螺絲口,非常容易進(jìn)行結(jié)構(gòu)上的拓展,如圖5所示。

    1.2.4 燈條

    針對(duì)燈光閃爍預(yù)警模塊,這里簡(jiǎn)單的LED燈閃爍顯然報(bào)警效果太差,所以這里我們采用的是多個(gè)RGB燈串聯(lián)而組成的燈條,如圖6所示。

    1.2.5 語(yǔ)音模塊

    語(yǔ)音模塊采用的是外包公司基于固定語(yǔ)料庫(kù)開(kāi)發(fā)的獨(dú)立智能語(yǔ)音模塊,如圖7所示。該模塊本身是為語(yǔ)音處理所進(jìn)行量身剪裁的處理芯片,因此從概念上,語(yǔ)音模塊(語(yǔ)音處理芯片和喇叭)雖然也是作為“外設(shè)”,但是與上面給出的外設(shè)是有一些區(qū)別的。

    1.2.6 串口通信、上位機(jī)、下位機(jī)簡(jiǎn)介

    上文提到,語(yǔ)音模塊是一個(gè)獨(dú)立的處理芯片,為其獨(dú)立供電時(shí),它可以進(jìn)行固定詞條的識(shí)別和反饋發(fā)聲。加上控制燈條、舵機(jī)、超聲模塊的主控arduino處理芯片,因此在本設(shè)計(jì)中,有兩個(gè)處理器,這就存在處理芯片之間的通信邏輯的實(shí)現(xiàn)以及二者“地位”的關(guān)系,作為要控制燈條、舵機(jī)、超聲模塊、語(yǔ)音模塊的主控板arduino,它是上位機(jī),而語(yǔ)音模塊僅僅是用于接收通信信號(hào)之后,完成特定的預(yù)警輸出,因此它是一個(gè)下位機(jī)。而兩個(gè)處理器都支持統(tǒng)一的串口通信標(biāo)準(zhǔn),因此他們之間的信號(hào)傳輸通過(guò)串口通信協(xié)議實(shí)現(xiàn)即可[3]。上下位機(jī)組合圖如圖8所示。

    2 系統(tǒng)實(shí)現(xiàn)

    對(duì)照上文給出的模塊功能的分類(lèi),下面依次進(jìn)行模塊化的邏輯過(guò)程設(shè)計(jì)。

    2.1 超聲模塊

    上文提到,arduino開(kāi)發(fā)資源豐富,針對(duì)超聲模塊,本設(shè)計(jì)的arguinomega2560開(kāi)發(fā)板自帶了常用的模塊函數(shù)庫(kù),針對(duì)超聲模塊,直接調(diào)用函數(shù)即可返回測(cè)距結(jié)果。獨(dú)立模塊的測(cè)試參考如下[4]:

    #include"MeMegaPi.h"

    #include

    #include

    MeUltrasonicSensorultraSensor(PORT_8);

    void setup(){

    Serial.begin(9600);

    }

    void loop(){

    Serial.print("Distance:");

    Serial.print(ultraSensor.distanceCm());

    Serial.println("cm");

    delay(100);

    }

    2.2 舵機(jī)旋轉(zhuǎn):

    舵機(jī)模塊的功能設(shè)計(jì)很簡(jiǎn)單,為了能夠讓其搭載的超聲模塊掃描身后180°的視野盲區(qū),設(shè)計(jì)舵機(jī)有如下的邏輯:

    While(1){

    舵機(jī)臂轉(zhuǎn)動(dòng)到0°處;

    延時(shí)1秒;

    舵機(jī)臂轉(zhuǎn)動(dòng)到90°處;

    延時(shí)1秒;

    舵機(jī)臂轉(zhuǎn)動(dòng)到180°處;

    延時(shí)1秒

    }

    通過(guò)這樣一個(gè)簡(jiǎn)單的算法設(shè)計(jì),我們就能夠保證超聲模塊一直在做周期性的等時(shí)間間距的掃描動(dòng)作。關(guān)于舵機(jī)的驅(qū)動(dòng)程序的設(shè)計(jì)此處略去,主函數(shù)程序如下:

    voidloop(){

    servo_6_1.write(0);

    _delay(1);

    servo_6_1.write(90);

    _delay(1);

    servo_6_1.write(180);

    delay(1);

    _loop();

    }

    2.3 燈條閃爍邏輯

    考慮到預(yù)警效果,這里燈條的閃爍邏輯為紅燈并且間隔延時(shí)較短。定義Dis是當(dāng)前時(shí)間超聲探頭模塊返回的障礙物距離,單位是厘米。

    Void LightWarning()

    If(Dis < 250){//后方障礙物距離小于2.5m,有追尾危險(xiǎn),開(kāi)始燈光報(bào)警

    燈條各燈的RGB參數(shù)設(shè)置成(255, 0 ,0);

    延時(shí)0.2s;

    燈條各燈的RGB參數(shù)設(shè)置成(0,0,0);//達(dá)到閃爍效果

    延時(shí)0.2s;

    }

    燈條驅(qū)動(dòng)程序細(xì)節(jié)略去,主程序如下:

    void LightWarning(){

    rgbled_6_2.setColor(0,255,0,0);

    rgbled_6_2.show();

    _delay(0.2);

    gbled_6_2.setColor(0,0,0,0);

    rgbled_6_2.show();

    _delay(0.2);

    _loop();

    }

    2.4 語(yǔ)音報(bào)警模塊

    上文提及,該模塊是基于語(yǔ)料庫(kù)的外包處理器,使能夠單獨(dú)工作的。其能夠完成固定詞條的識(shí)別、對(duì)應(yīng)反饋文本的語(yǔ)音輸出,在這個(gè)設(shè)計(jì)中,我們只需要它的文本轉(zhuǎn)語(yǔ)音功能,以提示使用本設(shè)計(jì)的自電動(dòng)車(chē)、摩托車(chē)車(chē)主尾部存在追尾危險(xiǎn)。

    語(yǔ)音模塊內(nèi)部實(shí)現(xiàn)了一個(gè)語(yǔ)音相關(guān)功能的指令協(xié)議,針對(duì)本設(shè)計(jì)所需要的功能,如下指令有關(guān):

    @TextToSpeech#文本$

    對(duì)該指令進(jìn)行簡(jiǎn)要的說(shuō)明”@”、“#”、“$”均為指令的控制符,用于指令編譯使用。TextToSpeech是關(guān)鍵字,表示這一條指令的功能是將文本轉(zhuǎn)化成語(yǔ)音。而想要轉(zhuǎn)換的具體的文字就在“文本”中體現(xiàn)。其工作模式是,語(yǔ)音模塊在通電之后自動(dòng)從串口中讀取字符串指令,當(dāng)遇到“$”控制符,完成一條指令的讀取,然后語(yǔ)音模塊中集成的編譯器對(duì)指令進(jìn)行解讀,將其轉(zhuǎn)化成可執(zhí)行代碼,然后執(zhí)行。

    將語(yǔ)音模塊與PC進(jìn)行連接,打開(kāi)串口。

    2.5 主控板與語(yǔ)音模塊的串口通信

    對(duì)照上文給出的數(shù)據(jù)流圖,arduino作為探測(cè)傳感并發(fā)出控制指令的上位機(jī),在探測(cè)到障礙物距離過(guò)近的時(shí)候,將發(fā)送控制指令給串口,語(yǔ)音模塊下位機(jī)將自動(dòng)讀取串口中的數(shù)據(jù)并執(zhí)行指令[5]。算法偽代碼如下:

    上位機(jī):

    Void SpeechWarning()

    Begin:

    超聲探測(cè)模塊探測(cè),返回給整型變量Dis;

    If(Dis < 250)//超聲模塊返回值單位是cm

    Serial.print(“@TexttoSpeech#正前方/左后方/右后方存在障礙!$”);

    End;

    2.6 模塊綜合

    分別完成各個(gè)模塊的獨(dú)立調(diào)試后,需要完成對(duì)各個(gè)模塊的連接工作,參照上文給出的數(shù)據(jù)流圖,本設(shè)計(jì)總的邏輯設(shè)計(jì)如下:

    Void Solve(){

    If(Dis > 250) retrun;

    Else {

    SpeechWarning();

    LightWarning();

    }

    }

    While(通電){

    舵機(jī)旋轉(zhuǎn)到0°;

    Dis = getDistance();

    Solve();

    Delay(1500);

    舵機(jī)旋轉(zhuǎn)到90°;

    Dis = getDistance();

    Solve();

    Delay(1500);

    舵機(jī)旋轉(zhuǎn)到180°;

    Dis = getDistance();

    Solve();

    Delay(1500);

    }

    3 結(jié)束語(yǔ)

    通過(guò)上述設(shè)計(jì)與實(shí)現(xiàn),完成電動(dòng)車(chē)與摩托車(chē)后置安全的報(bào)警功能。本設(shè)計(jì)的優(yōu)點(diǎn)與創(chuàng)新主要有以下兩點(diǎn):

    1) 采用聲音和語(yǔ)音報(bào)警模塊相結(jié)合的方式,對(duì)使用者后車(chē)體尾部的車(chē)進(jìn)行的雙向報(bào)警,這樣的模式能夠大大鏟除潛在危機(jī)。

    2) 本設(shè)計(jì)將超聲模塊搭載在舵機(jī)上的創(chuàng)意思維,將超聲測(cè)距模塊的掃描范圍覆蓋了尾部的180°視野盲區(qū),這樣做能夠再次降低危險(xiǎn)發(fā)成的概率。

    該系統(tǒng)當(dāng)前階段的缺陷在于,系統(tǒng)的穩(wěn)定性有待于進(jìn)一步測(cè)試和改善,在以后的升級(jí)過(guò)程中,將考慮主控模塊、芯片的進(jìn)一步裁剪工作。

    參考文獻(xiàn):

    [1] 熊和金.一種電動(dòng)車(chē)安全行駛的智能聲光報(bào)警裝置[P].實(shí)用新型專(zhuān)利:CN201521074280.7,2016.07.06.

    [2] Makeblock硬件官方參數(shù)參考表目.http://learn.makeblock.com/cn/megapi/,2017,2.

    [3] 趙司琦,俞繼偉,王廣田,謝怡寧.基于Arduino的Tennsy BadUSB改良型共享云盾的設(shè)計(jì)與研究[J].電腦知識(shí)與技術(shù),2017(36):36-38+45.

    [4] Wolfram Donat .Chaim Krause. Learn Raspberry PiProgramming with Python[M].韓德強(qiáng)譯.北京:機(jī)械工業(yè)出版社,2017.

    [5] 章杰瑞,周屹.基于Arduino和PIC單片機(jī)智能小車(chē)平臺(tái)的研究與設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2017(29):187-190.

    【通聯(lián)編輯:梁書(shū)】

    猜你喜歡
    串口通信上位機(jī)
    基于Qt和Flash的嵌入式Linux軟件架構(gòu)設(shè)計(jì)
    論網(wǎng)絡(luò)通信技術(shù)
    串口通信在智能家居監(jiān)控系統(tǒng)中的應(yīng)用
    基于云的短波發(fā)射機(jī)機(jī)房中央空調(diào)自動(dòng)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
    景點(diǎn)智能導(dǎo)航系統(tǒng)
    全自動(dòng)包裝及碼垛系統(tǒng)的發(fā)展與應(yīng)用
    基于OpenCV的室內(nèi)照明智能控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    科技視界(2016年13期)2016-06-13 22:01:19
    神农架林区| 香格里拉县| 东兰县| 阿鲁科尔沁旗| 大丰市| 永泰县| 年辖:市辖区| 棋牌| 荃湾区| 塔城市| 察隅县| 甘德县| 洪泽县| 方山县| 运城市| 大洼县| 平泉县| 延边| 砚山县| 平顶山市| 宝清县| 扎鲁特旗| 定兴县| 庆城县| 湘潭县| 黎平县| 井冈山市| 东丰县| 麻栗坡县| 玉田县| 米易县| 清水河县| 昌宁县| 江源县| 宁海县| 万山特区| 晋江市| 特克斯县| 兴国县| 田林县| 朔州市|