• 
    

    
    

      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
      甘洛县| 探索| 无锡市| 双流县| 旌德县| 衡水市| 平和县| 揭东县| 峨山| 南岸区| 山阴县| 德化县| 南雄市| 将乐县| 墨玉县| 金阳县| 马边| 拉萨市| 田东县| 贵阳市| 子洲县| 桂平市| 安仁县| 武穴市| 苗栗市| 铜山县| 洞口县| 重庆市| 开平市| 乌兰察布市| 临西县| 广水市| 太和县| 龙海市| 育儿| 贵南县| 淮南市| 安徽省| 福清市| 大邑县| 东阿县|