Arduino是一個(gè)開(kāi)源電子原型設(shè)計(jì)平臺(tái),專(zhuān)門(mén)針對(duì)接收來(lái)自傳感器的輸入進(jìn)行了優(yōu)化。這使其成為開(kāi)發(fā)無(wú)線網(wǎng)關(guān)的絕佳平臺(tái)。通過(guò)以太網(wǎng)連接,網(wǎng)關(guān)可用于將傳感器和執(zhí)行器連接到互聯(lián)網(wǎng),用于智能手機(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ì)師、愛(ài)好者和任何對(duì)創(chuàng)建交互式環(huán)境感興趣的人。
有多種 Arduino 板可供使用,均使用 Arduino 編程語(yǔ)言。這是基于Wiring的,它具有與 C++ 相同的語(yǔ)法和庫(kù),但進(jìn)行了簡(jiǎn)化和修改。為了使語(yǔ)言易于使用,有 Arduino 開(kāi)發(fā)環(huán)境,它基于基于 Java 的 Processing 開(kāi)源 IDE。開(kāi)發(fā)可以在作為 Windows、Mac OSX 或 Linux 下的主機(jī)的 PC 或 Mac 上完成,也可以在開(kāi)發(fā)板上完成。網(wǎng)關(guān)軟件可以使用 Arduino 編程語(yǔ)言和工具在 Linux 上開(kāi)發(fā)。
Arduino納米board 是一個(gè)小型、完整且適用于面包板的電路板,基于用于 Arduino Nano 3.0 的 ATmega328 處理器或用于 Arduino Nano 2.x 系列的 ATmega168。它只缺少一個(gè)直流電源插孔,并且可以使用 Mini-B USB 電纜而不是標(biāo)準(zhǔn)電纜。Nano 由 Gravitech 設(shè)計(jì)并生產(chǎn)。16 MHz 處理器在建議的 7-12 V 輸入電壓下運(yùn)行,并具有 14 個(gè)數(shù)字 I/O 引腳,每個(gè)引腳的直流電流為 40 mA,可用于為無(wú)線模塊供電。
ATmega168 版本中有 16 KB 的閃存或 ATmega328 中有 32 KB 的閃存,其中 2 KB 由引導(dǎo)加載程序使用。同樣,ATmega168 有 1 KB 的 SRAM 和 512 字節(jié)的 EEPROM,或者 ATmega328 有 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ú)線鏈接。
Linux 上的 Arduino IDE Arduino
最常見(jiàn)的開(kāi)發(fā)平臺(tái)是 Linux,它同樣是開(kāi)源的。需要一些額外的程序,這取決于正在使用的 Linux 發(fā)行版。
關(guān)鍵工具是 Arduino IDE 1.0.1,因?yàn)樗褂脙?nèi)部預(yù)構(gòu)建 GCC(GNU Compiler Collection)編譯器。這不包括所有工具鏈問(wèn)題,并包括 Java 運(yùn)行時(shí)包 6 或 7 -nopenjdk-7-jre 或 oracle JRE 7。Arduino
軟件下載包括兩個(gè)附加依賴(lài)項(xiàng)的自定義版本:
RXTX,一個(gè) Java 和本地庫(kù),用于與 Arduino 板等串行設(shè)備進(jìn)行通信
avrdude,一個(gè)將程序上傳到 AVR 微控制器的應(yīng)用程序(就像 Arduino 板上的那些)
Arduino 附帶的 avrdude 進(jìn)行了修改,以確保在上傳之前 Arduino 板的自動(dòng)重置功能正常(否則上傳將失敗)。Arduino 版本的源代碼也可以在開(kāi)源存儲(chǔ)庫(kù) GitHub 上找到。
Arduino 附帶的 RXTX 已修改為支持 /dev/ttyACM 形式的設(shè)備,這些設(shè)備由 Arduino Uno 和 Mega 2560 板使用。這些使用 ATmega8U2 而不是 FTDI 芯片進(jìn)行 USB 串行通信。
無(wú)線屏蔽
XBee?屏蔽允許 Arduino 板使用 ZigBee? 進(jìn)行無(wú)線通信。它可以在室內(nèi) 100 英尺或室外 300 英尺(通過(guò)視距)進(jìn)行通信。擴(kuò)展板的簡(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)。屏蔽層將 XBee 的每個(gè)引腳連接到通孔焊盤(pán),還提供母排針以供數(shù)字引腳 2 至 7 和模擬輸入使用,這些引腳被屏蔽層覆蓋。數(shù)字引腳 8 至 13 不受屏蔽層的阻礙,因此它們可以使用板上本身的接頭。
XBee 擴(kuò)展板有兩個(gè)跳線,用于確定微控制器(ATmega8 或 ATmega168)和 Arduino 板上的 FTDI USB 轉(zhuǎn)串行芯片之間的串行通信。跳線位于 XBee 位置時(shí),XBee 模塊的 DOUT 引腳連接到微控制器的 RX 引腳,DIN 連接到 TX。
需要正確配置多個(gè)參數(shù)才能使兩個(gè)模塊相互通信(盡管使用默認(rèn)設(shè)置,所有模塊都應(yīng)該能夠相互通信)。它們需要在同一網(wǎng)絡(luò)上,由 ID 參數(shù)設(shè)置。模塊需要在同一通道上,由 CH 參數(shù)設(shè)置。最后,模塊的目標(biāo)地址(DH 和 DL 參數(shù))確定其網(wǎng)絡(luò)和通道上的哪些模塊將接收其傳輸?shù)臄?shù)據(jù)。這可以通過(guò)幾種方式發(fā)生:
如果模塊DH 為0 且DL 小于0xFFFF(即16 位),則該模塊發(fā)送的數(shù)據(jù)將被任何16 位地址MY 參數(shù)等于DL 的模塊接收。
如果 DH 為 0 且 DL 等于 0xFFFF,則模塊的傳輸將被所有模塊以廣播模式接收。
如果DH 不為零,或者DL 大于0xFFFF,則傳輸只會(huì)被序列號(hào)等于發(fā)送模塊目的地址的模塊接收,即點(diǎn)對(duì)點(diǎn)連接。
但是,這種地址匹配只會(huì)發(fā)生在同一網(wǎng)絡(luò)和通道上的模塊之間。如果兩個(gè)模塊位于不同的網(wǎng)絡(luò)或通道上,則無(wú)論其地址如何,它們都無(wú)法通信。開(kāi)發(fā)板和擴(kuò)展板可以立即協(xié)同工作,但有時(shí)可能需要通過(guò) Arduino 開(kāi)發(fā)板上運(yùn)行的代碼配置 XBee 模塊。這需要開(kāi)關(guān)處于 Micro 位置并使模塊進(jìn)入配置模式,它需要三個(gè)加號(hào):+++ 并且需要至少一秒鐘之前和之后沒(méi)有其他字符發(fā)送到模塊。 請(qǐng)注意,這包括換行符或回車(chē)符。設(shè)置配置模式后,模塊將返回兩個(gè)字符“OK”,然后是回車(chē)。
Send Command ? ? ? Expected Response
+++ OK《CR》
一旦進(jìn)入配置模式,就可以使用 AT 命令來(lái)控制模塊。命令字符串的格式為 ATxx(其中 xx 是設(shè)置的名稱(chēng))。要讀取設(shè)置的當(dāng)前值,請(qǐng)發(fā)送命令字符串,后跟回車(chē)符。要將新值寫(xiě)入設(shè)置,請(qǐng)發(fā)送命令字符串,緊隨其后的是新設(shè)置(中間沒(méi)有空格或換行符),然后是回車(chē)符。例如,要讀取模塊的網(wǎng)絡(luò) ID(確定它將與哪些其他 XBee 模塊通信),請(qǐng)使用“ATID”命令: 更改模塊的網(wǎng)絡(luò) ID: 檢查設(shè)置是否生效:
Send Command ? ? ? ? Expected Response
ATID 3332《CR》
Send Command ? ? ? ? Expected Response
ATID3331 OK《CR》
Send Command ? ? ? ? Expected Response
ATID 3331《CR》
除非將更改寫(xiě)入非易失性存儲(chǔ)器,否則它們只會(huì)在模塊斷電之前生效。要永久保存更改,請(qǐng)以相同方式使用 ATWR 命令: 要將模塊重置為出廠設(shè)置,請(qǐng)使用 ATRE 命令: 請(qǐng)注意,與其他命令一樣,除非您使用 ATWR 命令,否則重置不會(huì)是永久的。 Laird Embedded Wireless Solutions的 Arduino ModFLEX 擴(kuò)展板使用 SiFLEX02,將高性能 802.15.4 無(wú)線電和微控制器結(jié)合在具有成本效益的預(yù)認(rèn)證封裝中,其中 I/O 連接器與 Arduino 開(kāi)源平臺(tái)兼容。
Send Command ? ? ? ? Expected Response
ATWR OK《CR》
Send Command ? ? ? ? Expected Response
ATRE OK《CR》
該模塊具有一個(gè) 900 MHz DSSS 收發(fā)器、帶有射頻放大器電路的 Atmel 無(wú)線電和一個(gè) Atmel ATRXMEGA 微控制器,為其提供與主板相同的環(huán)境。它預(yù)裝了一個(gè)運(yùn)行在 Atmel 802.15.4 MAC 之上的主機(jī)串行接口。該擴(kuò)展板具有完整的調(diào)試和編程功能,可以開(kāi)發(fā)自定義應(yīng)用程序,ZigBee 堆棧或 MAC 可以輕松加載到模塊上以創(chuàng)建自定義網(wǎng)絡(luò)。
該模塊具有 250 mW 的輸出功率,可提供 2 英里的視線范圍以及 1 Mbps 的射頻數(shù)據(jù)速率。
其他無(wú)線拓?fù)渫ㄟ^(guò)使用 面包板原型系統(tǒng)
,可以使用獨(dú)立的無(wú)線模塊為 Arduino 板構(gòu)建屏蔽。 這允許使用其他設(shè)備來(lái)創(chuàng)建屏蔽來(lái)處理其他拓?fù)洌?Wi-Fi。
Microchip 的RN-171 模塊是一個(gè)獨(dú)立的完整 TCP/IP 無(wú)線網(wǎng)絡(luò)模塊,可與原型板一起使用以提供 Wi-Fi 連接。由于外形小巧且功耗極低,RN-171 非常適合移動(dòng)無(wú)線應(yīng)用,例如 Arduino 擴(kuò)展板。

圖 :Microchip Wi-Fi 模塊。
它集成了 2.4 GHz 無(wú)線電、TCP/IP 堆棧、實(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ù)浒ㄓ糜谶B接機(jī)器對(duì)機(jī)器 (M2M) 網(wǎng)絡(luò)的藍(lán)牙?。Laird Technologies 無(wú)線M2M
AC4490 900 MHz 無(wú)線電模塊使用經(jīng)過(guò)現(xiàn)場(chǎng)驗(yàn)證的 FHSS 技術(shù)取代工業(yè)環(huán)境中數(shù)英里的電纜,無(wú)需額外的站點(diǎn)許可。該模塊包括抗干擾功能,可與其他網(wǎng)絡(luò)協(xié)同工作,同時(shí)保持?jǐn)?shù)據(jù)完整性。它可以通過(guò)原型面包板使用 12 針接頭連接到 Arduino 板。
AC4490 的特性包括插入式安裝、許多即時(shí)控制命令,以及用作直接電纜替代品的能力,無(wú)需特殊的主機(jī)軟件進(jìn)行通信。所有的跳頻、同步和射頻系統(tǒng)數(shù)據(jù)傳輸/接收均由模塊執(zhí)行。
該無(wú)線電模塊可以實(shí)現(xiàn)超過(guò) 20 英里的開(kāi)放場(chǎng)范圍,在 900 MHz 頻段具有高傳播,并包括 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ù)。
互聯(lián)網(wǎng)連接
構(gòu)建無(wú)線網(wǎng)關(guān)的另一面是將其連接到互聯(lián)網(wǎng),使用以太網(wǎng)屏蔽很簡(jiǎn)單,特別是如果它可以使用以太網(wǎng)供電 (PoE) 技術(shù)。Arduino ETH 盾牌包括一個(gè) PoE 模塊,并允許 Arduino 板使用以太網(wǎng)庫(kù)連接到 LAN。它包括一個(gè)帶有有源電壓轉(zhuǎn)換器和板載復(fù)位控制器的微型 SD 卡連接器,并且可以通過(guò)以太網(wǎng)供電。
結(jié)論
將 Nano 等低成本處理器板與 XBee 等無(wú)線屏蔽相結(jié)合,創(chuàng)建了易于開(kāi)發(fā)的無(wú)線控制器。添加具有自身電源的以太網(wǎng)屏蔽使組合成為無(wú)線網(wǎng)關(guān),將模塊、傳感器和執(zhí)行器連接到互聯(lián)網(wǎng),以便智能手機(jī)和平板電腦等設(shè)備可以控制它們。Arduino IDE 提供了強(qiáng)大的開(kāi)發(fā)環(huán)境,并且項(xiàng)目的開(kāi)源性質(zhì)允許輕松獲取庫(kù)和代碼并用于構(gòu)建網(wǎng)關(guān)。
評(píng)論