? 樹(shù)莓派(Raspberry Pi,RasPi/RPi)是由英國(guó)的慈善組織“Raspberry Pi 基金會(huì)”開(kāi)發(fā),基于A(yíng)RM的微型電腦主板,只有信用卡大小,但卻具備一部個(gè)人計(jì)算機(jī)的基本功能?;饡?huì)開(kāi)發(fā)樹(shù)莓派的最初目的是為了提升學(xué)校計(jì)算機(jī)科學(xué)及相關(guān)學(xué)科的教學(xué)水平,培養(yǎng)青少年的計(jì)算機(jī)程序設(shè)計(jì)興趣和能力,同時(shí)期望能有更多的應(yīng)用被不斷開(kāi)發(fā)出來(lái),并應(yīng)用到更多領(lǐng)域。然而,樹(shù)莓派自問(wèn)世以來(lái)就受到眾多計(jì)算機(jī)發(fā)燒友和創(chuàng)客的追捧,曾經(jīng)一“派”難求。目前,具有樹(shù)莓派生產(chǎn)許可的制造商主要有:
- Pi Swag(http://swag.raspberrypi.org)
- Premier Farnell/Element 14,中文名:e絡(luò)盟,簡(jiǎn)稱(chēng)E14(https://www.farnell.com/)
- RS Components,RS(http://www.rs-components.com/raspberrypi)
? 這幾家制造商都有在網(wǎng)上出售樹(shù)莓派,不同廠(chǎng)家銷(xiāo)售的樹(shù)莓派僅在外觀(guān)上有細(xì)微的區(qū)別,配置、性能和使用是完全一樣,大家可以隨便選擇購(gòu)買(mǎi)。在國(guó)內(nèi),我們可以很容易的從各大購(gòu)物網(wǎng)站上購(gòu)買(mǎi)到。
2.1 樹(shù)莓派硬件
? 圖2.1 展示的是樹(shù)莓派3B+型主板,樹(shù)莓派3B+型是當(dāng)前最新的版本,在所有已發(fā)行的版本中性能最好,功能和接口最多,但功耗也相對(duì)較大。接下來(lái)的章節(jié)中,我們將主要采用該版本的樹(shù)莓派進(jìn)行介紹,下面首先對(duì)樹(shù)莓派的主要部件及接口的功能進(jìn)行介紹:

? 1:SOC芯片
? 樹(shù)莓派采用博通(Broadcom)BCM283X系列芯片作為SOC芯片,芯片上集成了CPU、GPU、DSP及SDRAM內(nèi)存等,其中CPU和GPU共享內(nèi)存,可以在系統(tǒng)中手工修改內(nèi)存占比。不同版本的樹(shù)莓派所采用的SOC芯片在結(jié)構(gòu)和性能上存在一定的差異。
? 2:以太網(wǎng)接口
? 以太網(wǎng)接口讓樹(shù)莓派能以有線(xiàn)的方式接入計(jì)算機(jī)網(wǎng)絡(luò),這讓我們能輕松的訪(fǎng)問(wèn)互聯(lián)網(wǎng),或遠(yuǎn)程登錄到樹(shù)莓派。樹(shù)莓派的以太網(wǎng)接口是利用USB總線(xiàn)實(shí)現(xiàn)的,數(shù)據(jù)通過(guò)USB總線(xiàn)進(jìn)行傳輸,大部分型號(hào)的樹(shù)莓派都提供有以太網(wǎng)接口。
? 3:USB接口
? 通用串行總線(xiàn)(Universal Serial Bus, USB)接口是計(jì)算機(jī)上最常見(jiàn)的接口,您可以用它來(lái)連接鍵盤(pán)、鼠標(biāo)、U盤(pán)、無(wú)線(xiàn)網(wǎng)卡等設(shè)備。當(dāng)USB接口的數(shù)量不夠用時(shí),我們還可以通過(guò)USB集線(xiàn)器增加USB接口數(shù)量。
? 4:HDMI接口
? 高清多媒體接口(High Definition Multimedia Interface,HDMI)是一種全數(shù)字化視頻和聲音發(fā)送接口,用于傳輸未壓縮的音頻及視頻信號(hào)。通過(guò)它連接到配備有HDMI接口的顯示器(或電視機(jī))上,就能顯示樹(shù)莓派的內(nèi)容。HDMI接口能夠同時(shí)傳輸視頻和音頻信號(hào),因此我們使用的時(shí)候不需要在樹(shù)莓派的音頻接口連接揚(yáng)聲器,確實(shí)需要通過(guò)音頻接口播放聲音的,則需對(duì)操作系統(tǒng)的配置做相應(yīng)的修改。
? 5:音頻及復(fù)合視頻接口
? 音頻接口(3.5mm耳機(jī)插孔)在沒(méi)有用到HDMI連接的時(shí)候,可以使用標(biāo)準(zhǔn)3.5mm耳機(jī)插孔的揚(yáng)聲器或耳機(jī)播放音頻。同時(shí),該接口還集成了復(fù)合視頻接口,具有復(fù)合音視頻輸出功能,一般用于連接舊型號(hào)的電視機(jī),當(dāng)前已經(jīng)很少使用。
? 6:DSI顯示器接口
? 可以將LCD顯示器連接到樹(shù)莓派上,一般用于嵌入式產(chǎn)品開(kāi)發(fā)。通常情況下,HDMI接口已經(jīng)能滿(mǎn)足需求。
? 7:CSI攝像頭接口
? 利用CSI接口可以通過(guò)一條排線(xiàn)將CSI攝像頭連接到樹(shù)莓派上,輕松的進(jìn)行視頻錄制和圖像拍攝。與USB攝像頭相比,這種攝像頭模塊的性能更為出色。
? 8:通用輸入輸出接口(General Purpose Input Output,GPIO)
? 通用輸入輸出接口(General Purpose Input Output,GPIO)在樹(shù)莓派主板上被設(shè)計(jì)成具有兩排引腳的插槽。GPIO可以用于連接各種外圍電子設(shè)備和傳感器,通過(guò)輸入/輸出電平信號(hào),以控制或監(jiān)控這些設(shè)備。例如,可以使用GPIO控制直流電機(jī)的轉(zhuǎn)速,或是讀取超聲波傳感器的測(cè)量距離等。GPIO的這些功能特性使得樹(shù)莓派有別于普通計(jì)算機(jī)主板,因?yàn)樗o予開(kāi)發(fā)人員手工操作的自由。我們將在后續(xù)章節(jié)中對(duì)GPIO做進(jìn)一步介紹,并大量的使用它們。
? 9:SD卡插槽
? SD卡插槽位于樹(shù)莓派主板背面。SD/MicroSD卡是樹(shù)莓派必備的存儲(chǔ)部件,用于安裝操作系統(tǒng)和存儲(chǔ)數(shù)據(jù),SD卡的容量應(yīng)在2GB以上。為了能有更好的使用體驗(yàn),建議為您的樹(shù)莓派配備大容量(16G以上)的高速(Class10以上)的SD卡。
? 10:Micro USB供電接口
? Micro USB供電接口是樹(shù)莓派主要的供電方式之一,額定電壓5V,不同版本的樹(shù)莓派的標(biāo)準(zhǔn)電流要求略有區(qū)別,例如:1B型只要700mA,而3B+型則需要2.5A,很多安卓(Android)手機(jī)的充電器都能為樹(shù)莓派提供必要的電壓和電流。樹(shù)莓派的電流需求還與其連接的外部設(shè)備有關(guān),建議在使用的時(shí)候應(yīng)事先計(jì)算好,為樹(shù)莓派選擇合適電流(功率)的電源,當(dāng)外接設(shè)備功率較大時(shí),應(yīng)該采用獨(dú)立的電源為外部設(shè)備供電。
? 11:WiFi及藍(lán)牙模塊
? WiFi功能讓樹(shù)莓派能夠以無(wú)線(xiàn)的方式接入計(jì)算機(jī)無(wú)線(xiàn)網(wǎng)絡(luò)實(shí)現(xiàn)互聯(lián)互通,藍(lán)牙功能則讓樹(shù)莓派能與具備藍(lán)牙功能的設(shè)備(如鼠標(biāo)、鍵盤(pán)、手柄等)進(jìn)行連接使用。目前,僅3B型、3B+型和Zero W型樹(shù)莓派自帶WiFi和藍(lán)牙功能(兩者集成在一個(gè)芯片上),對(duì)于其他型號(hào)的樹(shù)莓派,您可以通過(guò)外接USB WiFi(藍(lán)牙)適配器實(shí)現(xiàn)。我們將在后續(xù)章節(jié)對(duì)WiFi和藍(lán)牙的使用作進(jìn)一步介紹。
? 12:以太網(wǎng)供電(PoE)接口
? 有源以太網(wǎng)(Power Over Ethernet, PoE)是指利用以太網(wǎng)進(jìn)行電力傳輸?shù)囊环N技術(shù)。樹(shù)莓派3B+型在原有的Micro USB和GPIO供電的基礎(chǔ)上,新增了以太網(wǎng)供電方式,用戶(hù)可以使用網(wǎng)線(xiàn)為樹(shù)莓派供電,而不需要配置額外的電源,這為某些應(yīng)用場(chǎng)景提供了極大的便利。
? 自2011年12月第一款樹(shù)莓派問(wèn)世以來(lái),樹(shù)莓派基金會(huì)已經(jīng)發(fā)布了多個(gè)版本的樹(shù)莓派主板,各版本的差異如表2.1所示。通常,功能較多、性能較高的版本,其體積和功耗也相對(duì)較大,我們應(yīng)該根據(jù)實(shí)際需求選擇合適的版本,而不是盲目的使用功能多、性能高的版本。根據(jù)實(shí)際需要,在后續(xù)的章節(jié)中我們將主要使用樹(shù)莓派3B+型進(jìn)行介紹。

2.2 樹(shù)莓派軟件
2.2.1 操作系統(tǒng)
? 樹(shù)莓派支持多種操作系統(tǒng),主要基于Liunx和Windows,大多可以在樹(shù)莓派基金會(huì)的官網(wǎng)(www.raspberrypi.org)找到,以下簡(jiǎn)單介紹兩款具有代表性的操作系統(tǒng)。
-
Raspbian
? Raspbian是樹(shù)莓派基金會(huì)的官方操作系統(tǒng),基于Debian GNU/Linux定制,能運(yùn)行在所有版本的樹(shù)莓派主板上。根據(jù)使用經(jīng)驗(yàn),Raspbian與樹(shù)莓派結(jié)合得最好,運(yùn)行穩(wěn)定、功能強(qiáng)大、使用方便,基本能滿(mǎn)足各種應(yīng)用需求,因此強(qiáng)烈建議將Raspbian作為樹(shù)莓派的首選操作系統(tǒng)。在后續(xù)的章節(jié)中我們將進(jìn)一步對(duì)Raspbian的使用作詳細(xì)的介紹,并在上面進(jìn)行各類(lèi)應(yīng)用開(kāi)發(fā)。 -
Windows 10 IoT Core
? Windows 10 IoT Core是微軟公司專(zhuān)門(mén)為物聯(lián)網(wǎng)生態(tài)打造的操作系統(tǒng),Windows 10 IoT Core則是Windows 10 IoT操作系統(tǒng)的核心版本,功能相對(duì)精簡(jiǎn),可以在2B型以上的樹(shù)莓派運(yùn)行。Windows 10 IoT Core的安裝和使用在此就不作詳細(xì)介紹,有興趣可訪(fǎng)問(wèn)微軟公司的網(wǎng)站獲取更多的資料。
? 除以上介紹的兩款操作系統(tǒng),還有多款支持樹(shù)莓派的操作系統(tǒng),如Ubuntu MATE、OSMC、LibreELEC、PiNet、RISC OS等,至于選擇那一種,則取決于您想要用樹(shù)莓派做什么。如果想將樹(shù)莓派作為普通的計(jì)算機(jī)使用,或用于電子項(xiàng)目開(kāi)發(fā)的話(huà),那么Raspbian是個(gè)非常好的選擇。如果您打算將樹(shù)莓派作為媒體中心使用,那么可以考慮使用OSMC或LibreELEC。
2.2.2 編程語(yǔ)言
? 對(duì)于樹(shù)莓派來(lái)說(shuō),有許多編程語(yǔ)言可用,事實(shí)上任何可以為ARM架構(gòu)編譯的語(yǔ)言(如C語(yǔ)言等)都可用于樹(shù)莓派,其中最流行的語(yǔ)言應(yīng)該算Python。事實(shí)上,樹(shù)莓派名字中的Pi就是受單詞Python的啟發(fā)而取的。Python是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類(lèi)型的高級(jí)程序設(shè)計(jì)語(yǔ)言,功能強(qiáng)大、兼容性好、可靠性高,Python程序易于編寫(xiě)和閱讀。當(dāng)前,Python有兩個(gè)主要版本:Python 2和Python 3,兩個(gè)版本一直保持有更新維護(hù),但人們對(duì)到底該使用哪個(gè)版本至今仍存在爭(zhēng)議,您可以訪(fǎng)問(wèn)Python的官網(wǎng)(www.python.org)了解更多的相關(guān)內(nèi)容,今后我們將主要使用Python 3進(jìn)行開(kāi)發(fā)介紹。另外,由于樹(shù)莓派的兼容性非常好,我們?cè)?B+型上寫(xiě)的程序幾乎不需要要修改就能在Zero W型上運(yùn)行。
2.3 本章小結(jié)
? 本章介紹了樹(shù)莓派主板的主要部件和功能,并對(duì)各版本的樹(shù)莓派進(jìn)行了比較,同時(shí)介紹了樹(shù)莓派的操作系統(tǒng)和編程語(yǔ)言,讓讀者對(duì)樹(shù)莓派有個(gè)基本的了解,為接下來(lái)的課程打基礎(chǔ)。