資料介紹
相信對嵌入式開發感興趣的朋友一定對Arduino有或多或少的了解或熟知。而對初學者來說,也許經常聽到“嵌入式開發從哪里上手最好?Arduino!”這樣的說法。那么Arduino到底是什么呢?是一種新的控制芯片?還是一種新的開發軟件呢?
首先我們先看看Arduino的實物圖,下面是最常見的一種Arduino實物圖片(關于Arduino的分類,我們會在后面詳述):
圖中已經用紅線根據功能將各個模塊區分出來,相信對單片機開發稍有了解的朋友一定已經發現,這不就是一個以AVR單片機最小系統為核心的控制板嗎?
不錯,Arduino就是以ATMEL公司的AVR單片機為核心的單片機控制板,板上除了ATmega168最小系統電路外,還包含了穩壓電路,USB轉串口電路,一些指示用的LED,以及一些擴展用的電路插座。
僅僅一個單片機最小系統,為何能風靡全球呢?
下面我們以圖表的形式來比較一下單片機裸機、市面上一般的單片機開發板和Arduino之間的比較。
ATmega168裸機ArduinoATmega168開發板
運算性能相同相同相同
成本最低較低較高
體積最小適中較大
自由度最大除單片機正常運行需要占用的端口外,其他端口全部留給了用戶使用很多開發板集成了鍵盤、數碼管、跳線開關等模塊,占用了很多端口
標準度完全符合ATmega公司公布的芯片資料完全符合Arduino組織公布的標準大多由各個供應商自主開發,各不相同
工作條件需要自己搭建最小電路通過USB線連上PC即可使用通過USB或COM端口與PC連接即可使用
開發資料任何ATmega168資料皆可,但一些細節需與自己的電路配合英文資料豐富,目前中文資料略有欠缺。一般開發板供應商都會提供各種學習資料,但大多雜亂無章,需學習者自己甄別
上面的表格中列出了三種選擇方案的最直觀比較(表中沒有比較購買渠道的便利性比較,隨著網絡購物的普及,這一點已經不再成為愛好者們需要特別關注的問題),看起來似乎Arduino并沒有特別的優勢,那么為什么Arduino會得到如此熱度的追捧呢?
要回答這個問題,我們必須首先回顧一下Arduino的發展歷程。2005年,意大利 Ivrea 一家高科技設計學校的老師Massimo Banzi為了能給學生們提供一種便宜好用的微控制器平臺,與當時在這所學校做訪問學者的西班牙籍芯片工程師David Cuartielles合作設計了最初的Arduino電路板。隨后Arduino便開始迅速的在歐洲流行起來,并且逐漸將春風吹到了美國、日本、中國臺灣、中國香港等地區,最近一兩年更是在大陸地區蓬勃的發展起來。
Arduino獨有的幾種優勢表現在下列方面:
開放性:Arduino的硬件電路的軟件開發環境都是完全開源的,在不從事商業用途的情況下任何人都可以使用、修改和分發它。這樣不但可以使用戶更好的理解Arduino的電路原理,更可以根據自己的需要而去修改它。比如由于空間的限制,需要設計異形的電路板;或是將自己的擴展電路與主控制電路設計到一起。
易用性:對于稍微有心的人,不論基礎如何,只要他有興趣,拿到Arduino之后的一個小時之內,應該就可以成功運行第一個簡單的程序了。Arduino與PC的連接采用了當下最主流的USB連接,你可以像使用一只MP3一樣把Arduino與電腦直接連起來而不要再額外安裝任何驅動程序。而且Arduino的開發環境軟件也非常的簡單,一目了然的菜單,僅提供了最必須的工具欄,除去了一切可能會使初學者眼花繚亂的元素,你甚至可以不閱讀手冊便實現代碼的編譯與下載(我可沒說編寫)。
交流性:對于初學者來說,交流與展示是非常能激發學習熱情的途徑。但有些時候,你用AVR做了個循跡小車,我用PIC做了個小車循跡。那么對單片機理解還不是特別深刻的初學者來說,交流上恐怕就會有些困難。而Arduino已經劃定了一個比較統一的框架,一些底層的初始化采用了統一的方法,對數字信號和模擬信號使用的端口也做了自己的標定,初學者在交流電路或程序的時候非常方便。
豐富的第三方資源:Arduino無論硬件還是軟件,都是全部開源的,你可以深入的了解到底層的全部機理,也預留了非常友好的第三方庫開發接口。秉承了開源社區一貫的開放性和分享性,很多愛好者在成功的實現了自己的設計后,會把自己的硬件和軟件拿出來與大家分享。對于后來者來說,你可以在Arduino社區輕松找到自己想要使用的一些基本功能模塊:舵機控制、PID調速、A/D轉換等。特別一些模塊供應商也開始越來越重視Arduino社區,會為自己的產品提供Arduino下的使用庫,這些都極大的方便了Arduino開發者,使你可以不必拘泥于一些基本功能的編寫,而可以把自己的精力更多的放在自己想要的功能設計中去。
是的,單純從嵌入式開發的技術角度來說,Arduino并不是第一選擇,為了盡可能的照顧初學者甚至是電子開發的門外漢,Arduino定制了很多底層的設計,這也是許多經驗豐富的嵌入式設計人員對Arduino嗤之以鼻的原因之一。回頭看看上面列出的那些Arduino的優勢所在,那么Arduino的定位究竟在何處呢?
Arduino誕生之初確實是為嵌入式開發的學習而生,但發展到今天,Arduino已經遠遠超出了嵌入式開發的領域。在臺灣地區,Arduino被稱為“科技藝術”,很多電子科技領域以外的愛好者,憑借豐富的想象力和創造力,也設計開發出了很多有趣的作品。
在大陸,Arduino更多的還是作為一種嵌入式學習和開發工具出現,但是它的魅力絕不僅僅如此,它完全可以作為一種新“玩具”,甚至新的藝術載體,來吸引更多各個領域的人們加入到Arduino的神奇世界里來。
用Arduino控制的三輪小車
擦除白板的自動機器
發條微博自動給你煮咖啡
是不是已經迫不及待,想要開始你的Arduino之旅了?趕快到購物網站上搜一搜Arduino,然后……是不是被各種不同的Arduino控制板搞花了眼?
Arduino并不是一成不變的,每隔一段時間,Arduino官方組織就會發布最新的設計,對Arduino在原有基礎上進行升級,讓愛好者們更方便的使用。同時,為了滿足不同層次的開發要求,Arduino也推出了不同版本的控制板設計,這里我們來認識一下使用最多的幾種設計:
Arduino Uno
Uno版本應該說是Arduino的基礎板,也是初學者的第一選擇。它提供了基本的數據接口,對初學者足夠的存儲空間,無論是讀取傳感器,還是驅動電機,或者與電腦通信,都可以輕松的勝任。
Arduino Mega 2560
這一版可以算是Uno的升級版,各種接口的數量比Uno要多,而且其搭載的單片機型號也要比Uno的單片機更高級一些,運算速度更快。如果你覺得Uno的硬件資源無法滿足你的需求,那么你可以嘗試一下Mega,當然價格也會比Uno要更高一些。
Arduino Nano
這個可以說是Uno的簡版,優先考慮了體積上的優化,盡量將體積做到最小,可以滿足一些手持設備或體型微小的設備使用。當然性能上相比Uno也略有縮水。
也許有些心急的朋友已經要問了:哪一款可以控制步進電機?哪一款可以實現無線通信?哪一款可以演奏音樂……
如果我告訴你都不可以,你會不會很失望?
Arduino作為一種控制芯片,所起的作用類似于我們的大腦,大腦是無法自行運動或是發聲的。大腦所起的作用類似于指揮官,Arduino也是如此,想要做一些實際任務,離不開外圍電路的支持。
很多人又要頭痛了,電子電路完全不懂怎么辦?其實現在這一點也已經不是什么大問題。對于電子專業的學生,或是想要學習電子電路的愛好者,當然要一切靠自己,查資料,買元件,做PCB板,焊電路……這其中當然會有很多辛苦,可其中學到的知識無疑也是裝入自己口袋的。
如果不想在電子電路方面花費太多的精力,也沒有問題。現在很多廠商也開發了各種各樣的Arduino外圍功能電路,無論是電機驅動、無線通信、音樂播放,還是讀取各種各樣物理信號的傳感器(壓力、速度、傾角、方向等等),都應有盡有,而且使用方便,可以直接連到Arduino控制板上工作。
電機驅動板
藍牙模塊
霍爾傳感器、光敏傳感器、煙霧傳感器
說完了硬件,那么我們接下來談談很多人都頭痛不已的軟件開發吧。Arduino的代碼結構和一般的嵌入式代碼結構略有不同,一般的嵌入式代碼都是main函數中一個死循環,程序不斷的反復執行,單片機在每個循環內讀取各個外部端口的數據,然后根據這些數據來做出相應的策略判斷,把指令再通過外部端口傳出去,達到控制外部設備的目的。
Arduino的程序運行方式與此差不多,只是代碼結構略有不同。Arduino代碼中沒有main函數,而是使用了兩個不同的必備函數:
Void setup()
{
}
Void loop()
{
}
相信很多朋友已經猜出來了,Arduino代碼是把初始化的代碼放在了setup函數中,而把需要不斷循環執行的代碼放在了loop函數中。與傳統的嵌入式程序雖然結構不同,但設計思想還是一致的。
開發環境軟件截圖(此開發環境可以在Arduino網站上免費下載)
Arduino的代碼語法與C++類似,也包含了類和對象的支持。即便是沒有任何代碼編寫的基礎,也可以很快上手。關于Arduino的代碼編寫,無論是Arduino的官方網站,還是網絡上都有了相當豐富的資料,這里不再累述。
很多Arduino制作還要涉及另外一種程序的編寫,便是上位機程序。一般是PC端的程序,你可以采用任何你所熟悉的高級語言進行開發,接收Arduino控制板所傳遞過來的數據(串口傳輸),在屏幕上顯示輸出或寫入文件。VB、VC++、Delphi、Flash 、Processing等等都能滿足你的要求。
一個通過上位機程序控制外部電路燈的顏色
Arduino控制板 + 外圍電路 + 程序編寫 = 整個世界!
- 淺談單片機裸機系統程序框架
- arduino筆記2:單片機和arduino的區別
- arduino uno r3單片機封裝圖_Arduino和單片機區別,及Arduino入門教程
- 單片機、ARM與DSP對比
- arduino和單片機的區別是什么
- arduino和單片機的區別,arduino好還是單片機好?
- 單片機裸機程序框架
- 三種植物冠層分析儀技術參數對比分析 34次下載
- CXY1和CXY2稱重傳感器的對比分析 0次下載
- 單片機的詳細資料分析
- 物聯網彈幕器設備源代碼的簡單介紹單片機如何進行裸機上云
- Arduino是什么Arduino與單片機的資料說明
- 基于Arduino單片機的跌倒報警系統設計方案 11次下載
- 小型PLC對比分析
- 單片機與DSP結合的dsPIC芯片
- 激光錫焊與回流焊接對焊點影響的對比分析 496次閱讀
- 詳解STM32單片機和51單片機的區別 3.8w次閱讀
- 單片機與ARM芯片的軟硬件對比分析 1603次閱讀
- 如何采用Arduino系統板進行單片機編程 6500次閱讀
- MSP430系列單片機與51單片機的區別及優劣勢對比 3.6w次閱讀
- 普通8位單片機與32位ARM單片機對比分析 1w次閱讀
- Arduino/樹莓派/單片機/arm區別分析 9893次閱讀
- 逆變器和家電(電磁爐)的輻射對比分析 1.1w次閱讀
- 八種硬件設計EDA工具對比分析(價格、難度、功能) 2.2w次閱讀
- stm32與pic單片機比較_哪個好 3.2w次閱讀
- 凌陽單片機怎么樣_凌陽單片機還有人用嗎 1.4w次閱讀
- 單片機的通信性能分析與評價方法 2312次閱讀
- Arduino單片機系統開發設計(Proteus虛擬技術) 8916次閱讀
- ARDUINO IDE編寫和AVR單片機程序的下載 1w次閱讀
- arduino和單片機的區別 10.5w次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論