天天看點

《Microduino實戰》——1.4 開源硬體

本節書摘來自華章出版社《microduino實戰》一 書中的第1章,第1.1節,作者:姚琪 楊立斌,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

開源硬體是對開源軟體領域的一種擴充,指的是通過與自由及開放源代碼軟體相同的方式設計的計算機和電子硬體。與開源軟體不同的是,開源硬體最終會涉及實體實體的生産與制造,是以是自由的,但并不免費。這裡的自由是指釋出硬體設計的詳細資訊,如電路圖、材料清單和電路闆布局資料,而且通常會使用開源軟體來驅動硬體。

開源的ip核是一種類型的開源硬體。ip核是指在數字電路領域中描述硬體設計功能的可重用子產品。比如,opensparc是sun公司一款開源的處理器設計,使用者可以用來在fpga等可程式設計晶片上實作該設計;opencores提供了開源的處理器、外圍裝置、總線控制等邏輯設計。

除此之外,還有像arduino、樹莓派、pcduino這樣的開源軟硬體平台。

開源硬體的特點如下:

子產品化的設計

允許商業化

有很好的技術支援

完全開放的軟硬體

開源硬體降低了硬體入門門檻,讓更多的人可以參與到硬體開發中,甚至那些完全沒有任何硬體知識的人同樣能夠快速地使用像arduino這樣的開源平台進行開發。

arduino[2]是一款開放源代碼的微晶片控制器平台,如圖1-1所示為其中一款arduino uno開發闆。它使用的是atmel avr單片機,具有非常簡單的i/o口,以及代碼友好的開源程式設計環境,無需具備任何硬體知識,就可以輕松地入門這一硬體平台。是以,極客、創客、藝術家、電子愛好者,甚至中國小生都能夠在這個小巧的平台上發揮自己的創意。

《Microduino實戰》——1.4 開源硬體

2004年冬,一名意大利的教師和一名西班牙工程師為了學生開發了一款電路闆,取名arduino。随後的幾年,arduino在全球流行了起來,起初隻是為了教學,而如今arduino在開源硬體社群中異常火爆,它就像一種電子積木玩具,可以搭建各種創意

設計。

arduino有如下的一些特點。

1)開源:arduino的硬體以及軟體都是開源的,開發成本相對較低,可以讓使用者自由使用,使用者可以在沒有商業利益的情況下使用、修改以及釋出。這讓更多的創新者能夠在其基礎上發揮自己的創意,并與社群中的創客一起分享、讨論。

2)易使用:簡單的arduino ide界面,容易上手的程式設計語言,以及豐富的封裝函數,技術門檻很低,這讓初學者在很短時間内就能夠将類似于“hello world!”這樣的設計運作起來。這大大激發了初學者進一步學習的積極性。

3)龐大的社群:正因為前面兩個特點,使arduino逐漸形成一個很龐大的技術社群。使用者本着開源的精神,既能夠獲得各種開放的源代碼和設計,又能夠開放自己的設計,并與社群中的人一起交流讨論,形成了一種設計開發的良性循環。

4)豐富的外圍裝置:除了官方提供的一些擴充闆和子產品,第三方子產品供應商也提供了很多相容arduino的擴充闆和子產品,如wifi、藍牙、以太網等通信接口子產品,以及各種類型的傳感器子產品,還有電機驅動子產品等。這種相對完善的供應鍊,能夠極大地滿足創客的不同需求,加速了從創意到原型設計的過程。

如果僅從外觀上看,根本不會覺得arduino有多大的能耐,但是從開源硬體社群中提供的開源項目中就能看出arduino的魅力了。比如基于arduino的數字示波器、智能避障小車、遠端遙控偵查機器人等[3]。

當然,arduino不可能盡善盡美,不可能滿足所有人的要求,比如所采用的mcu是一款低功耗的8位微控制器,不能實作複雜的計算,無法運作作業系統,當然也不可能實作圖形界面,等等。自然,arduino整個生态體系也在逐漸地進化和完善。2014年美國ti公司與arduino開源項目一起合作,推出了一款arm+mcu架構的開源硬體平台——arduino tre,arm處理器采用了1ghz cortex-a8處理器,能夠運作高性能的桌面應用、處理密集型的算法和高速通信[4],例如3d列印等。此外,intel釋出了一款相容x86架構的arduino開發闆——intel galileo開發闆[5]。這兩者無疑都說明了世界頂級的晶片廠商非常重視開源硬體這塊領域,也間接說明了開源硬體良好的發展趨勢。

microduino[6]是一款相容arduino的微控制器平台,如圖1-2所示。它将usb接口與微控制器分離開,分别做成了一個子產品,可以通過microduino制定的u型27 pin的接口标準,将所有microduino系列子產品堆疊起來使用,這讓microduino變得更加小巧而富有靈活性。

對于尺寸大小受限的設計來說,microduino有很大的吸引力,而且通過堆疊子產品的方式添加功能子產品,友善了子產品的連接配接,還能防止引腳插錯的失誤。第2章會詳細介紹microduino一系列的電子積木。

《Microduino實戰》——1.4 開源硬體

樹莓派(raspberry pi)[7]是一款基于arm的微型計算機闆,是專門為學生學習計算機程式設計而設計的,采用了博通公司的700mhz bcm2835 cpu,可以運作debian、archlinux等linux系統,内置多種接口,包括usb、hdmi、lan等。它自從問世以來,就受到廣大計算機和硬體愛好者的追捧。最新版本樹莓派b+在中國國内的價格不到200元,非常小巧,隻有一張信用卡那麼大,卻可以當作一台普通的計算機,如

圖1-3所示。任何年齡段的電腦愛好者都可以擁有它,可以在上面進行硬體diy,以及軟體程式設計。

樹莓派畢竟是一台計算機,對于技術薄弱的愛好者而言,上手比較困難,比如linux系統的使用,c、python、java等程式設計語言的學習。目前國内有一個樹莓派論壇,在上面可以獲得一些入門資料和必備的知識,還可以找到一些進階玩家實作的方案,而且在市面上已經有好幾本樹莓派的教材可供參考。

《Microduino實戰》——1.4 開源硬體

在采訪樹莓派聯合創始人eben upton時,他說道:“8歲是很好的年紀。你有合适的身體,有合适的心智,而且還處于生命中能輕松學習新知識的時候。你的大腦還具有非常大的可塑性,可以學習語言……是以我認為越早接觸計算機程式設計越好,而8歲是奇妙的年紀。8歲,10歲,12歲,12歲可能都有點晚了。”從采訪中可以看出,樹莓派的一大初衷在于初級教育,在于鼓勵和教育小孩子程式設計。這樣的做法有一定的理想主義,但這樣的嘗試具有很大的意義,這條路還需有很長一段要走。或許從小讓孩子學程式設計,可能其中的一部分人會将程式設計當作一種愛好,而不隻是一種謀生的工具,那麼“程式設計要從娃娃抓起”這樣的話,就變得更加有意義了。

pcduino[8]是一款高性能的迷你pc平台,可以運作ubuntu和android ics,它專門針對開源快速增長的需要而開發,i/o接口相容arduino。如圖1-4所示是最新的pcduino 3,全志a20soc晶片,内置1ghz arm cortex a7雙核處理器,1g記憶體,4gb閃存,自帶相容arduino的擴充接口。最新版本的技術參數可以參考官方網站所提供的資料[8]。它可以看作是arduino和樹莓派內建和增強版,價格為300~400元。

《Microduino實戰》——1.4 開源硬體

除了以上所介紹的開源硬體,還有beaglebone black[9],如圖1-5所示。它使用的是ti的1ghz arm cortex-a8處理器,2gb emmc存儲,512mb的ddr3記憶體,有46pin可供使用,支援lcd、uart、adc、i2c、pwm、spi等接口。它同樣是一款迷你的嵌入式系統開發平台。

《Microduino實戰》——1.4 開源硬體

中國珠海的一個團隊推出了一款叫作cubieboard[10]的開源平台,如圖1-6所示。它使用1ghz arm cortex-a8處理器,1gb ddr3記憶體, 4gb 閃存,有96個擴充口,可以運作android、ubuntu等系統。

《Microduino實戰》——1.4 開源硬體

以上介紹的開源硬體主要涉及微控制器和迷你pc系列的開源硬體。另外還有netfpga,它是一款用于網絡設計的開放平台,核心控制晶片采用的是fpga,需要對fpga内部的邏輯資源進行程式設計,才能讓晶片實作某種具體的功能。考慮到本書的寫作目的,這裡就不再介紹了。

繼續閱讀