與GNU,Linux和其他開(kāi)源軟件改變編程世界的方式大致相同,支持Arduino的開(kāi)源硬件平臺(tái)開(kāi)始重寫(xiě)許多嵌入式應(yīng)用程序的參與規(guī)則。 Arduino開(kāi)源電子原型開(kāi)發(fā)平臺(tái)最初是為自己動(dòng)手(DIY)和業(yè)余愛(ài)好者社區(qū)開(kāi)發(fā)的,它基于靈活,易用的硬件和軟件。雖然在藝術(shù)家,修補(bǔ)匠和其他創(chuàng)意類型中仍然廣受歡迎,但其低成本,以及快速增長(zhǎng)的免版稅眾包IP生態(tài)系統(tǒng)正在贏得許多商業(yè)開(kāi)發(fā)者的忠誠(chéng)度。在這個(gè)簡(jiǎn)短的調(diào)查中,我們將回顧Arduino背后的硬件和軟件,以及它正在供電的一些應(yīng)用程序。
圖1:MakerBot的Thing-O-Matic 3D打印機(jī)價(jià)格僅為傳統(tǒng)數(shù)控機(jī)床的一小部分,使用Arduino處理器板來(lái)控制其步進(jìn)電機(jī),熱敏打印頭和其他機(jī)電元件。該產(chǎn)品將廉價(jià)的ABS長(zhǎng)絲原料轉(zhuǎn)變?yōu)槌善罚糜谠椭谱骰蛐∨可a(chǎn),尺寸公差接近0.02 mm。 (由MakerBot Industries提供)
Arduino歷史
Arduino不是一個(gè)特定的產(chǎn)品或技術(shù),而是圍繞Atmel的megaAVR系列8位MCU成長(zhǎng)的硬件,軟件,工具和人力資源的生態(tài)系統(tǒng)。其緊湊的電路板,C ++派生的編程語(yǔ)言和編程環(huán)境很大程度上歸功于哥倫比亞藝術(shù)家和程序員Hernando Barrag于2003年創(chuàng)建的Wiring開(kāi)源原型平臺(tái)的多功能性和易用性。 Barrag的目標(biāo)是簡(jiǎn)化愛(ài)好者,藝術(shù)家,研究人員和其他非工程師的電子系統(tǒng)開(kāi)發(fā),同時(shí)提供對(duì)經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員所需的所有鈴聲,口哨和黑客的輕松訪問(wèn)?;贏Tmega1281和ATmega2561微控制器,緊湊,廉價(jià)的Wiring/WiringMini處理器板已經(jīng)被用于創(chuàng)建從交互式玩具和足球機(jī)器人到掃描電子顯微鏡控制器的所有東西。
Arduino平臺(tái)最初由Massimo Banzi和David Cuartielles于2005年在意大利開(kāi)發(fā),作為學(xué)生設(shè)計(jì)項(xiàng)目的工具。它擴(kuò)展了接線平臺(tái)的功能,增加了一些新的編程功能和標(biāo)準(zhǔn)互連系統(tǒng),允許CPU板連接到各種可互換的附加模塊(稱為屏蔽)。
Arduino硬件
與其前身一樣,Arduino開(kāi)源硬件平臺(tái)基于Atmel的多功能ATmega MCU系列(圖2)。 ATmega改進(jìn)的哈佛式AVR處理器內(nèi)核結(jié)合了豐富的指令集和32個(gè)通用工作寄存器。所有32個(gè)寄存器都直接連接到算術(shù)邏輯單元(ALU),允許在一個(gè)指令周期內(nèi)訪問(wèn)兩個(gè)獨(dú)立的寄存器。 ATmega MCU提供4 K或8 KB的系統(tǒng)內(nèi)可編程閃存(具有讀寫(xiě)功能)以及EEPROM(256/512/512/1 KB)和SRAM(512/1 K/1)的各種組合K/2千字節(jié))。
圖2:Atmels的ATmega MCU的框圖。 (由Atmel Microelectronics提供)
AVR CPU具有強(qiáng)大的硬件功能和I/O功能。雖然有些MCU的配置略有不同,但大多數(shù)設(shè)備包括:
23通用I/O線
6通道或8通道10位ADC
六個(gè)PWM通道
串行可編程USART
一個(gè)面向字節(jié)的2線串行接口
一個(gè)SPI串口
三個(gè)靈活的定時(shí)器/計(jì)數(shù)器(帶比較模式)
帶有獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器
帶內(nèi)部振蕩器的可編程看門(mén)狗定時(shí)器
所有形狀因子場(chǎng)合
Arduino手機(jī)中裝有越來(lái)越多的處理器板,這些處理器板是為適應(yīng)特定的外形或應(yīng)用而開(kāi)發(fā)的。大多數(shù)設(shè)計(jì)包括穩(wěn)壓電源和一組連接,以評(píng)估其總線信號(hào)和面向控制的I/O.由Arduino團(tuán)隊(duì)創(chuàng)建的最受歡迎的板之一是Uno(圖3)。該板包括一個(gè)16 MHz晶體振蕩器,一個(gè)USB連接,一個(gè)電源插孔,一個(gè)ICSP接頭和一個(gè)復(fù)位按鈕。它的片上穩(wěn)壓器允許它通過(guò)AC-DC適配器或電池供電,或通過(guò)USB電纜連接供電。
圖3:Arduino Uno板。 (由Arduino.cc提供)
Uno Board的I/O母針連接器可以訪問(wèn)MCU的14個(gè)數(shù)字輸入/輸出引腳和6個(gè)模擬輸入。六個(gè)I/O引腳可用作PWM輸出,從照明調(diào)光器到電機(jī)控制器等各種功能都非常方便。這些連接器還可以添加輔助板,稱為屏蔽,可以包含額外的電子設(shè)備和I/O連接。
Arduino Nano是一款稍微緊湊的電路板,基于ATmega328或ATmega168,專門(mén)設(shè)計(jì)用于掉到面包板上(圖4a)。對(duì)于空間更高的應(yīng)用,Arduino Mini(圖4b)也可用。其他變體包括用于小型電路的面包板區(qū)域或板載通信功能,如藍(lán)牙或以太網(wǎng)(圖4c)。 Arduino系列中最獨(dú)特的成員之一是LilyPad,專為“智能服裝”和電子紡織品設(shè)計(jì)的板(圖4d)??汕逑?可穿戴處理器板可縫合到織物上,并使用導(dǎo)電線連接到類似安裝的電源,傳感器和執(zhí)行器。
圖4:Arduino平臺(tái)的流行變體包括Nano(4a),Mini(4b),Arduino以太網(wǎng)(4c)和可清洗/可穿戴LilyPad(4d)。 (由Arduino.cc提供)
大多數(shù)“官方”Arduino板設(shè)計(jì)都可以作為預(yù)組裝板,快速構(gòu)建套件以及通常作為裸板使用。商業(yè)設(shè)計(jì)師(和硬核DIY用戶)可以從開(kāi)源硬件CAD文件中推出自己的主板,并下載Arduino軟件,以便在開(kāi)源許可協(xié)議下使用。
Arduino編程
Arduino硬件平臺(tái)由開(kāi)源軟件包支持,該軟件包由集成開(kāi)發(fā)環(huán)境(IDE),標(biāo)準(zhǔn)編程語(yǔ)言編譯器和直接在板上運(yùn)行的引導(dǎo)加載程序組成。
軟件開(kāi)發(fā)是使用Arduino IDE執(zhí)行的,這是一個(gè)基于Processing編程語(yǔ)言和Wiring項(xiàng)目的用Java編寫(xiě)的跨平臺(tái)應(yīng)用程序。雖然最初設(shè)計(jì)用于向不熟悉軟件開(kāi)發(fā)的藝術(shù)家和其他新手介紹編程,但它具有的功能和擴(kuò)展使更多有經(jīng)驗(yàn)的程序員感到舒適和高效。代碼編輯器包括語(yǔ)法突出顯示,括號(hào)匹配和自動(dòng)縮進(jìn)等功能,并且只需單擊即可編譯和上載程序到板。
Arduino程序是用C/C ++編寫(xiě)的,雖然用戶只需要定義兩個(gè)函數(shù)來(lái)制作一個(gè)可運(yùn)行的程序:
setup() - 一個(gè)函數(shù)運(yùn)行一次在可以初始化設(shè)置的程序開(kāi)始時(shí)
loop() - 一個(gè)重復(fù)調(diào)用的函數(shù),直到電路板關(guān)閉電源
IDE還包括一個(gè)C/C ++函數(shù)庫(kù),支持最常見(jiàn)的輸入/輸出操作。
Arduino.cc網(wǎng)站免費(fèi)提供完整的IDE,大量擴(kuò)展和示例代碼,以及一套有關(guān)編程的綜合教程。
I/O擴(kuò)展(屏蔽)
幾乎所有的Arduino電路板都可以使用稱為“屏蔽”的夾層式附加卡輕松擴(kuò)展,這些插卡通過(guò)簡(jiǎn)單的0.10“引腳連接到MCU的總線和I/O信號(hào)頭。屏蔽的可堆疊混合和匹配連接系統(tǒng)使用市場(chǎng)上的幾個(gè)制造商或眾多引腳兼容的擴(kuò)展屏蔽套件中的一個(gè)提供的商用預(yù)組裝板,可以輕松添加I/O或其他擴(kuò)展電路。
Arduino平臺(tái)引起了業(yè)余愛(ài)好者和商業(yè)嵌入式社區(qū)的興趣,產(chǎn)生了大量專用屏蔽,包括中繼板,高分辨率多通道D/A或A/D轉(zhuǎn)換器,交流或直流電源控制器和電機(jī)控制器(圖5)。由于市場(chǎng)上有幾種以太網(wǎng)屏蔽,因此將Arduino板連接到有線網(wǎng)絡(luò)很容易。
圖5:額定工作電壓高達(dá)30 V和2.8 A峰值輸出,這款商用Arduino電機(jī)控制屏可驅(qū)動(dòng)兩個(gè)直流電機(jī)機(jī)器人或運(yùn)動(dòng)控制應(yīng)用。 (由RuggedCircuits提供)
為Arduino設(shè)計(jì)添加無(wú)線功能也很容易??梢允褂弥С?a href="http://ttokpm.com/tags/zigbee/" target="_blank">ZigBee,藍(lán)牙和801.11無(wú)線協(xié)議的屏蔽。還有幾個(gè)屏蔽包含一個(gè)完整的基于GSM的蜂窩收發(fā)器,支持GPRS服務(wù),并使用計(jì)算機(jī)USB端口提供的電壓在Arduino Uno和Mega板上運(yùn)行。
與Linux從開(kāi)源社區(qū)遷移到商業(yè)軟件市場(chǎng)的方式大致相同,Arduino的低成本和多功能性開(kāi)始在商業(yè)硬件開(kāi)發(fā)商中建立忠誠(chéng)的追隨者。雖然許多初始應(yīng)用程序是由業(yè)余愛(ài)好者和學(xué)者開(kāi)發(fā)的,但預(yù)計(jì)用于創(chuàng)建它們的Arduino技術(shù)將很快進(jìn)入商業(yè)產(chǎn)品。
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
28103瀏覽量
205849 -
電機(jī)
+關(guān)注
關(guān)注
142文章
8874瀏覽量
144854 -
Arduino
+關(guān)注
關(guān)注
187文章
6457瀏覽量
186501
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論