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