Arduino是一個(gè)開(kāi)源電子原型設(shè)計(jì)平臺(tái),專門(mén)用于接收來(lái)自傳感器的輸入。這使其成為無(wú)線網(wǎng)關(guān)開(kāi)發(fā)的絕佳平臺(tái)。通過(guò)以太網(wǎng)連接,網(wǎng)關(guān)可用于將傳感器和執(zhí)行器鏈接到Internet,以用于智能手機(jī)和平板電腦上的應(yīng)用程序。可以為這些平臺(tái)開(kāi)發(fā)應(yīng)用程序,然后利用來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)并從世界上任何地方遠(yuǎn)程控制執(zhí)行器。
廣泛的開(kāi)源軟件為構(gòu)建項(xiàng)目提供了寶貴的資源。它基于靈活,易用的硬件和軟件,適用于設(shè)計(jì)人員,業(yè)余愛(ài)好者以及任何對(duì)創(chuàng)建交互式環(huán)境感興趣的人。
有各種各樣的Arduino板可用,都使用Arduino編程語(yǔ)言。這基于Wiring,它具有與C ++相同的語(yǔ)法和庫(kù),但具有簡(jiǎn)化和修改。為了使該語(yǔ)言易于使用,Arduino開(kāi)發(fā)環(huán)境基于基于Java的Processing開(kāi)源IDE。開(kāi)發(fā)可以在PC或Mac上作為主機(jī)在Windows,Mac OSX或Linux下完成,也可以在主板上完成。可以使用Arduino編程語(yǔ)言和工具在Linux上開(kāi)發(fā)網(wǎng)關(guān)軟件。
Arduino Nano板是一款小型,完整且面包板友好的板,基于用于Arduino Nano 3.0的ATmega328處理器或用于Arduino Nano 2.x系列的ATmega168。它只缺少直流電源插孔,可以使用Mini-B USB電纜而不是標(biāo)準(zhǔn)電纜。 Nano是專門(mén)設(shè)計(jì)的,目前由Gravitech生產(chǎn)。 16 MHz處理器的建議輸入電壓為7-12 V,具有14個(gè)數(shù)字I/O引腳,每個(gè)引腳具有40 mA的直流電流,可用于為無(wú)線模塊供電。
ATmega168版本中有16 KB的Flash或ATmega328中有32 KB,其中引導(dǎo)加載程序使用2 KB。同樣,ATmega168有1 KB的SRAM和512字節(jié)的EEPROM,帶有ATmega168或2 KB的SRAM和1 KB的EEPROM。
Arduino主板的價(jià)值在于業(yè)余愛(ài)好者開(kāi)發(fā)的開(kāi)源軟件系列,以及硬件的靈活性。制造商提供電路布局,并且很容易為無(wú)線功能構(gòu)建附加卡或屏蔽。可以制作或購(gòu)買(mǎi)無(wú)線屏蔽以向設(shè)計(jì)添加無(wú)線鏈接。
圖1:Arduino Nano板。
Linux上的Arduino IDE
Arduino最常見(jiàn)的開(kāi)發(fā)平臺(tái)是Linux,它同樣是開(kāi)源的。根據(jù)正在使用的Linux的分布,需要一些其他程序。
關(guān)鍵工具是Arduino IDE 1.0.1,因?yàn)樗褂脙?nèi)部預(yù)構(gòu)建GCC(GNU編譯器集合)編譯器。這排除了所有工具鏈問(wèn)題,包括Java運(yùn)行時(shí)包6或7 -nopenjdk-7-jre或oracle JRE 7.
Arduino軟件下載包括兩個(gè)附加依賴項(xiàng)的自定義版本:
RXTX,用于與Arduino板等串行設(shè)備通信的Java和本機(jī)庫(kù)
avrdude,一個(gè)將程序上傳到AVR微控制器的應(yīng)用程序(如Arduino板上的程序)
來(lái)自的avrdude修改了Arduino以確保在上傳之前Arduino板的自動(dòng)重置功能正常運(yùn)行(如果沒(méi)有,則上傳將失敗)。 Arduino版本的源代碼也可以在開(kāi)源存儲(chǔ)庫(kù)GitHub上找到。
Arduino附帶的RXTX經(jīng)過(guò)修改,支持Arduino Uno和Mega 2560主板使用的/dev/ttyACM格式的設(shè)備。它們使用ATmega8U2代替FTDI芯片進(jìn)行USB串行通信。
無(wú)線屏蔽
XBee?屏蔽允許Arduino板使用ZigBee?進(jìn)行無(wú)線通信。它可以在室內(nèi)100英尺或室外300英尺(帶視線)進(jìn)行通信。屏蔽的簡(jiǎn)單性意味著它可以用作串行或USB替代品來(lái)創(chuàng)建簡(jiǎn)單的無(wú)線點(diǎn)對(duì)點(diǎn)連接,或者使用命令模式,它可以配置為各種廣播和網(wǎng)狀網(wǎng)絡(luò)選項(xiàng)作為無(wú)線網(wǎng)關(guān)。屏蔽將每個(gè)XBee引腳分成通孔焊盤(pán),并提供母引腳頭,以便使用數(shù)字引腳2至7以及屏蔽覆蓋的模擬輸入。數(shù)字引腳8至13不受屏蔽的阻礙,因此它們可以使用電路板本身的接頭。
圖2:Arduino無(wú)線屏蔽。
XBee屏蔽有兩個(gè)跳線,用于確定Arduino板上微控制器(ATmega8或ATmega168)與FTDI USB轉(zhuǎn)串口芯片之間的串行通信。當(dāng)跳線位于XBee位置時(shí),XBee模塊的DOUT引腳連接到微控制器的RX引腳,DIN連接到TX。
有兩個(gè)模塊需要正確配置才能相互通信(盡管使用默認(rèn)設(shè)置,所有模塊應(yīng)該能夠相互通信)。它們需要位于ID參數(shù)設(shè)置的同一網(wǎng)絡(luò)上。模塊需要位于CH參數(shù)設(shè)置的同一通道上。最后,模塊的目標(biāo)地址(DH和DL參數(shù))確定其網(wǎng)絡(luò)和通道上的哪些模塊將接收它傳輸?shù)臄?shù)據(jù)。這可以通過(guò)以下幾種方式實(shí)現(xiàn):
如果模塊DH為0且DL小于0xFFFF(即16位),則該模塊傳輸?shù)臄?shù)據(jù)將由任何模塊接收,其16位地址MY參數(shù)等于DL。
如果DH為0且DL等于0xFFFF,則所有模塊都將以廣播模式接收模塊的傳輸。
如果DH非零,或者DL大于0xFFFF,傳輸只能由序列號(hào)等于發(fā)送模塊目的地址的模塊接收,即點(diǎn)對(duì)點(diǎn)連接。
但是,這個(gè)地址匹配將會(huì)僅發(fā)生在同一網(wǎng)絡(luò)和通道上的模塊之間。如果兩個(gè)模塊位于不同的網(wǎng)絡(luò)或通道上,則無(wú)論其地址如何,它們都無(wú)法通信。電路板和屏蔽可以直接一起工作,但有時(shí)可能需要從Arduino電路板上運(yùn)行的代碼配置XBee模塊。這需要開(kāi)關(guān)處于Micro位置并使模塊進(jìn)入配置模式,它需要三個(gè)加號(hào):+++并且前后需要至少一秒,在此期間沒(méi)有其他字符被發(fā)送到模塊。請(qǐng)注意,這包括新行或回車(chē)符。設(shè)置配置模式后,模塊將發(fā)回兩個(gè)字符“OK”,然后回車(chē)。
發(fā)送命令預(yù)期響應(yīng)
+++確定
一旦進(jìn)入配置模式,AT命令可用于控制模塊。命令字符串的格式為ATxx(其中xx是設(shè)置的名稱)。要讀取設(shè)置的當(dāng)前值,請(qǐng)發(fā)送命令字符串,然后發(fā)送回車(chē)符。要為設(shè)置寫(xiě)入新值,請(qǐng)發(fā)送命令字符串,緊接著是新設(shè)置(中間沒(méi)有空格或換行符),然后是回車(chē)符。例如,要讀取模塊的網(wǎng)絡(luò)ID(確定它將與之通信的其他XBee模塊),請(qǐng)使用‘ATID’命令:
發(fā)送命令預(yù)期響應(yīng)
ATID 3332 《 br》
更改模塊的網(wǎng)絡(luò)ID:
發(fā)送命令預(yù)期響應(yīng)
ATID3331 OK
檢查設(shè)置已生效:
發(fā)送命令預(yù)期響應(yīng)
ATID 3331
除非將更改寫(xiě)入非易失性內(nèi)存,否則它們只會(huì)生效模塊失去動(dòng)力。要永久保存更改,請(qǐng)以相同方式使用ATWR命令:
發(fā)送命令預(yù)期響應(yīng)
ATWR確定
將模塊重置為工廠設(shè)置,使用ATRE命令:
發(fā)送命令預(yù)期響應(yīng)
ATRE確定
請(qǐng)注意,與其他命令一樣,重置將不會(huì)是永久性的,除非您按照ATWR命令執(zhí)行。
Laird嵌入式無(wú)線解決方案的Arduino ModFLEX Shield使用SiFLEX02,結(jié)合了高性能802.15.4無(wú)線電和微控制器,經(jīng)濟(jì)高效,預(yù)先認(rèn)證,I/O連接器與Arduino開(kāi)源平臺(tái)兼容。
該模塊具有900 MHz DSSS收發(fā)器,帶有RF放大器電路的Atmel無(wú)線電,以及Atmel ATRXMEGA微控制器,使其具有與主板相同的環(huán)境。它預(yù)先加載了運(yùn)行在Atmel 802.15.4 MAC之上的主機(jī)串行接口。屏蔽具有完整的調(diào)試和編程功能,可以開(kāi)發(fā)自定義應(yīng)用程序,并且可以輕松地將ZigBee堆棧或MAC加載到模塊上以創(chuàng)建自定義網(wǎng)絡(luò)。
該模塊具有250 mW的輸出功率,可提供2英里的視距范圍以及1 Mbps RF數(shù)據(jù)速率。
其他無(wú)線拓?fù)浣Y(jié)構(gòu)
通過(guò)使用面包板原型系統(tǒng),可以使用獨(dú)立的無(wú)線模塊為Arduino板構(gòu)建屏蔽。這允許其他設(shè)備用于創(chuàng)建屏蔽以處理其他拓?fù)洌?a href="http://www.1cnz.cn/tags/wi-fi/" target="_blank">Wi-Fi。
圖3:用于連接無(wú)線模塊的Arduino面包板。
Microchip的RN-171模塊是一個(gè)獨(dú)立的完整TCP/IP無(wú)線網(wǎng)絡(luò)模塊,可與原型板一起使用以提供Wi-Fi連接。由于其小巧的外形和極低的功耗,RN-171非常適合移動(dòng)無(wú)線應(yīng)用,如Arduino屏蔽。
圖4:Microchip Wi-Fi模塊。
它集成了2.4 GHz無(wú)線電,TCP/IP協(xié)議棧,實(shí)時(shí)時(shí)鐘,加密加速器,電源管理和模擬傳感器接口。該模塊預(yù)裝了固件,以簡(jiǎn)化集成并最大限度地減少應(yīng)用程序的開(kāi)發(fā)。在最簡(jiǎn)單的配置中,硬件僅需要四個(gè)連接(PWR,TX,RX和GND)來(lái)創(chuàng)建無(wú)線數(shù)據(jù)連接。 RN-171還包括一個(gè)內(nèi)置的HTML客戶端,可自動(dòng)將串行UART數(shù)據(jù)或傳感器數(shù)據(jù)發(fā)布到Web服務(wù)器。
其他拓?fù)浣Y(jié)構(gòu)包括用于連接機(jī)器對(duì)機(jī)器(M2M)網(wǎng)絡(luò)的Bluetooth?。
萊爾德科技無(wú)線M2M AC4490 900 MHz無(wú)線電模塊使用經(jīng)過(guò)現(xiàn)場(chǎng)驗(yàn)證的FHSS技術(shù),無(wú)需額外的站點(diǎn)許可即可替代工業(yè)環(huán)境中的數(shù)英里電纜。該模塊包括抗干擾功能,可與其他網(wǎng)絡(luò)協(xié)同工作,同時(shí)保持?jǐn)?shù)據(jù)完整它可以通過(guò)使用12針接頭的原型面包板連接到Arduino板。
AC4490的功能包括插入式安裝,多種即時(shí)控制命令,以及用作直接電纜更換的功能,無(wú)需特殊的主機(jī)軟件進(jìn)行通信。所有跳頻,同步和RF系統(tǒng)數(shù)據(jù)發(fā)送/接收由模塊執(zhí)行。
圖5:Laird藍(lán)牙M2M模塊。
無(wú)線電模塊可實(shí)現(xiàn)超過(guò)20英里的開(kāi)放場(chǎng)范圍,在900 MHz頻段內(nèi)具有高傳播,并包括1 W功率傳輸選項(xiàng)和接收鏈中的靈敏低噪聲放大器。它支持單播(一對(duì)一尋址)和廣播(一對(duì)多尋址)模式,以及具有硬件和/或軟件ACK指示的確認(rèn)模式(ACK)API,以確保已接收到數(shù)據(jù)。還有一個(gè)信標(biāo)模式和一個(gè)動(dòng)態(tài)無(wú)線電數(shù)據(jù)表,可保留多達(dá)12個(gè)無(wú)線電模塊的數(shù)據(jù)。
Internet連接
構(gòu)建無(wú)線網(wǎng)關(guān)的另一方面是將其連接到Internet,這很簡(jiǎn)單,使用以太網(wǎng)屏蔽,特別是如果它可以使用以太網(wǎng)供電(PoE)技術(shù)。 Arduino ETH Shield包含一個(gè)PoE模塊,允許Arduino板使用以太網(wǎng)庫(kù)連接到LAN。它包括一個(gè)帶有源電壓轉(zhuǎn)換器的微型SD卡連接器和板載復(fù)位控制器,可通過(guò)以太網(wǎng)供電。
結(jié)論
將Nano等低成本處理器板與XBee等無(wú)線屏蔽相結(jié)合,可以創(chuàng)建易于開(kāi)發(fā)的無(wú)線控制器。通過(guò)添加具有自身功率的以太網(wǎng)屏蔽,該組合可以成為將模塊,傳感器和執(zhí)行器鏈接到Internet的無(wú)線網(wǎng)關(guān),以便智能手機(jī)和平板電腦等設(shè)備可以控制它們。 Arduino IDE提供了一個(gè)強(qiáng)大的開(kāi)發(fā)環(huán)境,項(xiàng)目的開(kāi)源特性允許輕松獲取庫(kù)和代碼并用于構(gòu)建網(wǎng)關(guān)。
-
傳感器
+關(guān)注
關(guān)注
2551文章
51163瀏覽量
754152 -
智能手機(jī)
+關(guān)注
關(guān)注
66文章
18499瀏覽量
180323 -
Arduino
+關(guān)注
關(guān)注
188文章
6471瀏覽量
187225
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論