標籤:

Python 與嵌入式系統系列 - Arduino選型

摘要:萬金油Python在嵌入式領域同樣大有作為。這一系列的文章,主要聊一聊如何使用Python與現實世界的電子電路進行交互。

##############################################################

花一頓工作餐的錢,買一塊小電路板,再花十幾分鐘看看文檔就能迅速上手一個可編程的電子小玩具——Arduino的出現讓這段話成為了現實。正如Python在非計算機專業領域大放光彩一樣,Arduino在非電子工程領域也得到了廣泛應用,尤其受到交互設計藝術家們的青睞。大家用Arduino做過什麼很酷的東西? - 互聯網

Arduino是一系列基於AVR以及ARM單片機的開發板、一整套軟體開發環境以及一個活躍的開發社區的共用品牌。除了晶元本身以及驅動程序外,所有開發板設計、編譯器、集成開發環境以及示例、庫都是開源的。玩轉Arduino,你只需要支付一點點硬體物料費用即可。

Arduino的設備以及擴展板非常豐富,所有Arduino或其兼容設備均使用統一的軟體平台。本篇文章談一談Arduino設備的選型。

這張表格列出了當前(2015年中)主流的Arduino硬體平台。當代集成電路技術已經能夠把計算機系統的主要部件CPU、SRAM、Flash以及USB介面等集成到一塊晶元當中,即System-on-a-Chip(SoC)。Arduino的SoC主要使用兩款:不帶USB介面的ATmega 328和帶USB介面的 ATmega 32U系列。此外最後一行Arduino DUE是最近才推出的ARM單片機版。USB介面不是必須的,除了SoC本身能夠提供,一些開發板還利用第三方的USB轉串口晶元。Arduino通常不是為了獨立運行而設計,而是需要和各種外圍電子電路交互,故每一款產品都提供了相當數量的IO管腳。當代的SoC還提供可編程的PWM輸出,供連接舵機等設備。IO管腳的數量和所選用的具體SoC有關。下面分別介紹不同產品的定位。

1. Arduino UNO -學習型開發板

Arduino UNO是Arduino的標準硬體平台。

作為一款練慣用的Arduino開發板,Arduino UNO把IO介面的位置定義成了標準。玩家可以繼續購買符合IO標準的第三方模塊,例如,SD卡、WiFi等,形成堆疊式的設計方案(如本文的題圖)。推薦給初學者的模塊是下面這個麵包板擴展板(賣Arduino 的商家一般都有出售),然後再購買一些電阻、LED等進行連接,價格也非常便宜。

Arduino UNO開發板上除了一塊雙列直插的單片機,還有用於程序燒寫和一般通信的串口,並使用ATmega 16U將串口轉為USB。在Mac OS X和主流Linux發行版中,系統自帶了它的驅動程序,並將其映射成了一個串口設備。在Windows中,安裝Arduino的軟體開發環境的過程中會自動安裝好它的驅動程序。正是因為Arduino UNO是標準的開發環境,Arduino社區給予之最好的支持。

由於Arduino的圖紙是開放的,任何人都可以大量生產。通常淘寶上的售價不到30元一塊,只要認準主晶元和USB晶元的型號就不會有兼容性問題。如果對質量有一定要求可以購買DFRobot的黑板,去亞馬遜買原裝代購就沒有必要了。

Arduino UNO使用USB B口,也就是USB印表機常用的口。一般商家會送一根USB線。如果嫌質量不好可以去某東上買。除了使用USB供電,它還可以用2.1mm中心正極的變壓器供電。但一般來說USB提供的電流已經足夠。

2. Arduino PRO MINI - 應用型核心板

Arduino PRO MINI非常小巧,它的電路板面積受限於2.54mm插針的約束。小得不能再小了。

Arduino PRO MINI一般稱為ATmega 328的最小系統。除了必備的電源、濾波電容和Arduino必須的Pin13 LED外不再有其他附屬器件。在購買的時候,賣家也不會把插針焊接在板子上,而是要求買家自行根據應用場景決定焊在哪一邊。Arduino PRO MINI適合作為應用型最小系統板,通常在你的創意成品中使用,比如作為系統的一部分與其他設備連接,它的體積小、元件少,價格也最便宜。

Arduino 官方的PRO MINI的版型是這樣的:

即A4~A7這4個PIN位於板子的內部。這種板子在淘寶上也能買的到(關鍵詞 Arduino PRO MINI原版),但是價格比較貴,並且用起來並不方便。

淘寶上大量出售的是這個所謂改進版:

所改進之處是減小了Reset按鍵,然後把A6、A7放在板子邊緣,這樣更加方便。

向Arduino PRO MINI燒寫程序需要帶有DTS信號的6腳串口轉USB小板,賣家也會一併出售。這種串口轉USB小板通常需要安裝獨立的驅動程序,購買之前需看清用了哪款晶元,並在廠家官方網站得到驅動程序或向賣家索取。

Arduino PRO MINI 根據電源管理器的不同配置,有獨立的3.3V版本和5V的版本。可根據實際電壓需要進行選擇。

之所以稱為 Arduino PRO MINI,是因為它是Arduino PRO 的尺寸簡化版,而電路功能完全一致。

3. Arduino PRO MICRO - 應用型USB核心板

Arduino PRO MICRO採用了內建USB的ATmega 32U晶元,除此之外,保持了與MINI類似的小巧體積。

由於繼承了USB供電,它的引腳電壓是5V。在產品上,Arduino PRO MICRO適合與需要保持與上位機USB進行連接的產品。這樣比較方便。很多交互藝術作品多使用樹莓派作為上位機,使用Arduino PRO MICRO,一條USB線就能搞定兩者的連接,特別方便。(當然也可以用5V版的Arduino PRO MINI進行串口直連)

在開發過程中, Arduino PRO MICRO要使用Arduino Leonardo相同的配置。特別的,由於ATmega 32U直接與上位機互聯,Arduino PRO MICRO可以被配置為一個USB鍵盤。

Arduino PRO MICRO也適合學習之用。Arduino PRO MICRO的版型引腳與Arduino PRO MINI幾乎完全相同。將插針方向向下焊接,得到的板子可以插到麵包板上,與其他電路相連接。

4. Arduino NANO - 應用型USB核心板,慎購!

把一塊Arduino PRO MINI加上一款第三方的串口轉USB晶元就得到了Arduino NANO。

這款Arduino NANO採用了FTDI的串口轉USB方案

貓膩就出在這第三方的串口轉USB晶元上。由於淘寶賣家的素質參差不齊,如果你運氣不好,很容易買到穩定性和兼容性都很差的串口轉USB晶元。不僅驅動很難裝上,或者裝好了過段時間用不了,而且會出現數據丟失等各種坑爹問題。所以沒有必要為了省幾塊錢浪費寶貴的時間。

5. Arduino DUE - 高性能的土豪級選擇

作為一款新品,Arduino DUE採用了ARM核心的SoC。不過,這個ARM和咱們智能手機里用的ARM等級是不一樣的。Arduino DUE中SoC的ARM核心是Cortex-M3,屬於ARM家族的單片機序列(智能手機里的ARM核心是Cortex-A,屬於應用處理器序列)。

但儘管如此, Arduino DUE的性能要比ATmega版Arduino強大許多,適合於網路編解碼等密集型運算。但是畢竟是單片機,讓它做個視頻編解碼還是困難了點。

原裝的Arduino DUE非常貴,300多塊錢,都能買個樹莓派了。感謝勤勞智慧的中國人民,把它的售價降到了100塊錢以內。

雖然處理器不同,Arduino DUE仍然使用與Arduino標準版相同的軟體開發環境。

6. 其他產品

當前,Arduino社區還提供了適用於可穿戴設備的LilyPAD,它非常小巧還帶了鋰電池充電模塊。但國內賣的不多。價格也稍貴。性價比不高。

推薦閱讀:

【Arduino 鉤沉】(一)Arduino IDE 和 Makeblock 庫的安裝
用Arduino連接感測器收集數據,以無線方式發送到RaspberryPi,由樹莓派處理數據並保存,行不行?怎麼做?
【圖形化學習 Arduino】(二)輸入與輸出
Ruff 和 Arduino 最大區別是什麼?

TAG:Arduino |