東北大學(xué)機(jī)械工程與自動(dòng)化學(xué)院 陳喜洋 劉曉彪 邢凱豪 黃子祥
?
基于Arduino的無(wú)線遙控設(shè)計(jì)
東北大學(xué)機(jī)械工程與自動(dòng)化學(xué)院陳喜洋劉曉彪邢凱豪黃子祥
【摘要】針對(duì)可移動(dòng)小車(chē)的藍(lán)牙、紅外線等無(wú)線遙控方式存在距離較短的缺陷,設(shè)計(jì)一種較長(zhǎng)距離的遙控裝置。以APC220無(wú)線數(shù)傳模塊作為媒介,實(shí)現(xiàn)Arduino間的無(wú)線通信,通過(guò)Arduino讀取模擬數(shù)據(jù)值,獲取電位器搖桿的位置,經(jīng)由控制程序處理,可以實(shí)現(xiàn)多種行進(jìn)方式。設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),在一千米內(nèi)可以較好的解決問(wèn)題。
【關(guān)鍵詞】Arduino;無(wú)線遙控;單片機(jī);APC220模塊
隨著科學(xué)的發(fā)展,無(wú)線控制技術(shù)廣泛應(yīng)用于各個(gè)領(lǐng)域,來(lái)解決各種生產(chǎn)及生活中的問(wèn)題。不同的應(yīng)用場(chǎng)合需要相對(duì)應(yīng)的控制技術(shù),以實(shí)現(xiàn)功能應(yīng)用的最大化。藍(lán)牙、紅外線遙控技術(shù)都是一種短距離的無(wú)線通訊技術(shù),無(wú)法滿足長(zhǎng)距離的無(wú)線通信。本文介紹了一種以Arduino為控制核心,APC220作為無(wú)線通信模塊的控制方式,以常見(jiàn)的智能小車(chē)為控制對(duì)象,可以在一千米內(nèi)距離實(shí)現(xiàn)前進(jìn)、后退、轉(zhuǎn)向和速度變化等功能。
1.1Arduino控制器
Arduino由意大利教師Massimo Banzi和西班牙工程師David Cuartielles聯(lián)合創(chuàng)建[1],是一塊基于開(kāi)放原始代碼的 Simple I/O 平臺(tái)。該平臺(tái)由硬件部分和軟件兩部分組成,其中硬件包括單片機(jī)、電路板等,軟件主要是以C/C++語(yǔ)言為基礎(chǔ)的IDE集成開(kāi)發(fā)環(huán)境。Arduino是一個(gè)開(kāi)源的硬件平臺(tái),可以下載眾多開(kāi)源的示例代碼和硬件設(shè)計(jì),可以快速的開(kāi)發(fā)自己的項(xiàng)目。它可以讀取模擬信號(hào),控制LED燈亮度、電機(jī)的轉(zhuǎn)速等,可以通過(guò)USB接口進(jìn)行編程和PC機(jī)通信,同時(shí)Arduino可以獨(dú)立與其他軟件溝通,如flash、Processing、Max/MSP等其它互動(dòng)軟件。
設(shè)計(jì)中采用Arduino UNO R3作為核心控制器,是該系列最新的版本,具備Arduino所有的功能,其處理器核心是ATmega328,具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,一個(gè)16MHz晶體振蕩器,一個(gè)USB口,電壓為5V,一個(gè)電源插座,電壓要求為7~12V,一個(gè)ICSP header和一個(gè)復(fù)位按鈕。[2]集成開(kāi)發(fā)環(huán)境簡(jiǎn)稱IDE,可以在Windows、Mac OS X和Linux操作系統(tǒng)運(yùn)行。
1.2APC220
APC220模塊是高度集成半雙工微功率無(wú)線數(shù)據(jù)傳輸模塊,嵌入高速單片機(jī)和高性能射頻芯片,根據(jù)不同的需要可以修改串口速率、發(fā)射功率和射頻速率等各種參數(shù),而且采用高效的循環(huán)交織糾檢錯(cuò)編碼,具有較強(qiáng)的抗干擾能力和較高的靈敏度,最大可以糾正24bites連續(xù)突發(fā)錯(cuò)誤,可以在較為惡劣的環(huán)境中使用,在在最大功率下可以實(shí)現(xiàn)一千米的較長(zhǎng)距離通信。[3]
在現(xiàn)行的無(wú)線技術(shù)領(lǐng)域,各種無(wú)線技術(shù)都有各自的特點(diǎn),并且表現(xiàn)了一定的互補(bǔ)性。如常見(jiàn)的藍(lán)牙通信技術(shù),一種短距離通信技術(shù),廣泛應(yīng)用于耳機(jī)、個(gè)人電腦及各種移動(dòng)設(shè)備中。
Arduino控制板可以實(shí)現(xiàn)串口、IIC、SPI三種常見(jiàn)的通信方式,由于其I/O接口資源較少,所以常用的是串行通信方式。本設(shè)計(jì)中采用串口通信,即UART方式。在Arduino UNO R3控制器上有一組串行接口,引腳0(TX)和1(RX)。此外,硬件串口通過(guò)USB接口可以與計(jì)算機(jī)進(jìn)行通信,當(dāng)這組串口被占用時(shí)會(huì)導(dǎo)致程序無(wú)法下載或通信異常,可以通過(guò)SoftwareSerial類庫(kù)將其他數(shù)字引腳作為串口通信引腳,但可能導(dǎo)致通信不穩(wěn)定。
APC220無(wú)線數(shù)傳模塊通過(guò)引腳RXD、TXD分別與單片機(jī)串口TX、RX引腳相連,APC220可以設(shè)置七種串口速率(1200、2400、4800、9600、19200、38400、57600bps),默認(rèn)設(shè)置的波特率為9600bps。包含無(wú)校檢、偶校檢、奇校檢三種串口校檢方式[4],默認(rèn)不采用校驗(yàn)方式。為了實(shí)現(xiàn)Arduino間的通信,需要一對(duì)APC220分別與Arduino相連,兩個(gè)APC220之間通信需要設(shè)定相同的參數(shù)。APC220與Arduino間的連線圖如圖1所示。
圖1 APC220與Arduino連線圖
圖2 系統(tǒng)設(shè)計(jì)流程圖
無(wú)線遙控端以Arduino UNO為控制器,可以通過(guò)外接各種模塊,使用C語(yǔ)言編程,獲得相應(yīng)的數(shù)據(jù)等信息,發(fā)送特定的指令,通過(guò)無(wú)線控制端的APC220傳送至接收端。我們使用電位器搖桿為信息輸入端,PS2搖桿電位器具有X、Y兩軸模擬輸出。操縱桿在移動(dòng)方向的過(guò)程中,導(dǎo)致電位器的阻值變化,電位器兩端電壓發(fā)生變化。左右搖桿與Arduino的連接如圖2所示。
圖3 搖桿Arduino連接圖
Arduino控制板通過(guò)模擬數(shù)據(jù)端口將電壓值0~5V轉(zhuǎn)換為0~1023數(shù)值輸出,從而判斷當(dāng)前搖桿的位置,發(fā)送特定的指令,由移動(dòng)小車(chē)上的Arduino控制板處理接收的指令,控制電機(jī)的轉(zhuǎn)速,從而實(shí)現(xiàn)小車(chē)不同的行進(jìn)方向。當(dāng)只有右搖桿上下移動(dòng)時(shí),可以使移動(dòng)小車(chē)前進(jìn)或者后退;當(dāng)右搖桿上下移動(dòng)時(shí),左搖桿同時(shí)左右移動(dòng),可以使移動(dòng)小車(chē)實(shí)現(xiàn)左前轉(zhuǎn)彎、右前轉(zhuǎn)彎、左后轉(zhuǎn)彎和右后轉(zhuǎn)彎。[5]進(jìn)行適當(dāng)?shù)某绦蛐薷?,可以改變前進(jìn)速度以及轉(zhuǎn)彎半徑的大小。系統(tǒng)設(shè)計(jì)流程如圖3所示。
以APC220作為無(wú)線模塊,結(jié)合Arduino開(kāi)源平臺(tái),使用C語(yǔ)言進(jìn)行編程,可以制作成一個(gè)較長(zhǎng)距離無(wú)線遙控裝置。與藍(lán)牙、WIFI、紅外線等常見(jiàn)的無(wú)線控制方式相比,其控制距離相對(duì)較長(zhǎng),編程方式簡(jiǎn)單,同時(shí)可以方便靈活的搭載各類外圍模塊,實(shí)現(xiàn)更多的功能。
參考文獻(xiàn)
[1]陳呂洲.Arduino程序設(shè)計(jì)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2015.
[2]Massimo Banzi.愛(ài)上Arduino[M].郭浩赟,于欣龍,譯.北京:人民郵電出版社,2012.
[3]APPCON TECHNOLOGIES,安美通科技有限公司,http://www.appcon.com.cn/[EB/OL].
[4]靳海英,馬志剛.基于APC220的工業(yè)控制與實(shí)現(xiàn)[J].安徽電子職業(yè)技術(shù)學(xué)院學(xué)報(bào),2014(2).
[5]周英,楊盛國(guó),黃凌云等.基于藍(lán)牙技術(shù)遙控小車(chē)的設(shè)計(jì)與實(shí)現(xiàn)[J].福建師大福清分校學(xué),2012(5).
陳喜洋(1995—),男,湖南衡陽(yáng)人,大學(xué)本科,現(xiàn)就讀于東北大學(xué)機(jī)械工程專業(yè)。
劉曉彪(1996—),男,安徽阜陽(yáng)人,大學(xué)本科,現(xiàn)就讀于東北大學(xué)機(jī)械工程專業(yè)。
邢凱豪(1994—),男,遼寧遼陽(yáng)人,大學(xué)本科,現(xiàn)就讀于東北大學(xué)機(jī)械工程專業(yè)。
黃子祥(1995—),男,福建漳州人,大學(xué)本科,現(xiàn)就讀于東北大學(xué)機(jī)械工程專業(yè)。
Design of Arduino-based wireless remote control
Chen Xiyang Corresponding author Liu Xiaobiao Xin Kaihao Huang Zixiang
(Northeastern University,college of Mechanical Engineering and Automation)
Abstract:Bluetooth,infrared and other wireless remote control mode for movable car have the defects of a short distance.The design of a long distance remote control devices based on APC220 wireless module as the media.It can achieve the wireless communication between Arduino.Arduino can read analogue data to obtain the position of the joystick potentiometer.Then viaing a control program processing,you can achieve a variety of ways to travel.The design structure is simple with strong anti-interference ability.It can achieve wireless control requirements within one kilometer.
Key Words:Arduino;wireless control;SCM;APC module
作者簡(jiǎn)介:
基金項(xiàng)目:國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃資助項(xiàng)目(項(xiàng)目編號(hào):201510145052)。