對比兩個最受歡迎的 tinkering 平台
最近我買了一個 Arduino。
在我構思要在 15 年無觸碰電阻器後玩弄電子裝置的點子時,我記得我花了一些時間搜索什麼樣的裝置最適合我想做的事情。
在這方面,最受歡迎的兩個平台有 Arduino 和 Raspberry Pi。雖然還有許多其他平台,但這兩個是最受歡迎的,我想在這篇文章中解釋一下這兩者的不同之處。
這是 Arduino Uno,我們將以它作為例子,雖然 Arduino 還提供許多不同的板子。這是我選擇的板子,順便說一下:
這是 Raspberry Pi Model B+:
一開始看它們相似,芯片、連接器、螺絲孔。
結果,它們實際上非常非常不同。
從核心開始講。Arduino 使用 8 位元微控制器(microcontroller)。Raspberry Pi 使用 64 位元微處理器(microprocessor)。
Arduino 只有 2 KB 的 RAM。Raspberry Pi 有 1GB 的 RAM(是 Arduino 的 500,000 倍)。
在 I/O 方面,Arduino 有一個 USB-B 連接埠可供電腦傳送新的程式來執行,還有一個電源輸入和一組 I/O 引脚。
Raspberry Pi 在這方面更加複雜,有一個視訊輸出、一個 HDMI 連接埠、一個 SD 記憶卡連接埠、一個音訊插孔、一個 CSI 相機連接埠、一個 DSI 顯示器連接埠、4 個 USB 2.0 連接埠,可用於連接 USB 裝置,一個 Gigabit 以太網插孔、無線局域網 (Wireless LAN)、藍牙 4.2 和 I/O 引脚(GPIO)等等。各種東西都有。
Arduino 沒有作業系統。它只能執行編譯為 Arduino 平台的程式,這主要是指以 C++ 編寫的程式。
Raspberry Pi 執行一個作業系統,通常是 Linux。它是一個迷你電腦,而 Arduino 更簡單。
應該選用哪一個呢?
基於這些不同點,你可能會認為 Raspberry Pi 比 Arduino 更強大、更有功能,所以你應該選用 Raspberry Pi。是這樣嗎?錯了。
Arduino 的耗電量比 Raspberry Pi 低得多(閒置時約 50 mA
),Raspberry Pi 則超過 700 mA
Arduino 有 20 個 I/O 引脚,而 Raspberry Pi 只有 8 個。Arduino 的每個 I/O 引脚可驅動 40mA
,而 Raspberry Pi GPIO 引脚則可驅動最大 16mA
。
我研究了這些數據,但我還沒有自己測量過。
你可以使用 Raspberry Pi 以任何你想要的程式語言進行編程,因為如果你運行 Linux,你有很多選擇。
那麼如何編程呢?
Arduino 最好使用 C++ 和它的“Arduino 語言”,這只是一種具有一些方便功能的 C++,使初學者容易上手。
然而,你並不受限於此。如果你可以適應將 Arduino 連接到計算機的 USB 端口的限制,你可以使用 Johnny Five 項目在其中運行 Node.js 代碼,這相當酷。
對於其他語言也有類似的工具,比如 pyserial 和 Gobot。
在我看來,當你想要編譯一個程式並為 Arduino 提供電池或電源連接器,把它放在某個地方運行且與傳感器和其他與現實世界接口的東西玩耍時,Arduino 是最好的選擇。
你不需要擔心任何事情,因為只有你的程式在 Arduino 上運行。它甚至沒有內建網路(我是說 Uno)。
Raspberry Pi 則更像是沒有屏幕的小型電腦,你可以使用更傳統的工具來編程。
我會使用 Arduino 來為我的自動澆水植物提供動力,或者跟踪室外溫度,或為一些家庭自動化設備提供動力,而我會使用 Raspberry Pi 作為復古遊戲平台或 Web 服務器。