在讓大眾自由掌控 PC 強(qiáng)大功能的革命中,Raspberry Pi 是核心,為我們提供了一個(gè)具有廣泛生態(tài)支持的易用型平臺(tái)。雖然該平臺(tái)直觀易用,但工程師和初學(xué)者依舊可以受益于使用過(guò) Pi 的用戶提供的一些小技巧。
“需要知道的 10 件事”不會(huì)盡述所有內(nèi)容,在線交流論壇將就此提供持續(xù)支持。這些有價(jià)值的信息可能無(wú)法在任何指南或教程中找到,但它們是來(lái)之不易的經(jīng)驗(yàn)總結(jié)。這包括選擇和格式化 SD 卡、選擇 Raspberry Pi 的電源、選擇正確的 Wi-Fi 適配器、編程技巧、系統(tǒng)凍結(jié)時(shí)的操作說(shuō)明以及如何正確為其供電以免受破壞等方面的意見(jiàn)和建議。
快速瀏覽這些小技巧,能大幅提升 Raspberry Pi 的首次使用體驗(yàn),并充分感受單板計(jì)算機(jī)平臺(tái)的強(qiáng)大功能。
1: 何時(shí)、何種情況下使用 Raspberry Pi
Raspberry Pi 的價(jià)格、性能和背后的支持社區(qū),讓您在開(kāi)始所有可能的任務(wù)時(shí)就幾乎無(wú)法拒絕該產(chǎn)品。本質(zhì)上說(shuō),Raspberry Pi 是個(gè)人計(jì)算機(jī)。以 Raspberry Pi Foundation 的 Raspberry Pi 3 Model B 為例,此產(chǎn)品基于高達(dá) 1.2 GHz 的 ARM? Cortex?-A53。并搭配 1 GB RAM、802.11n 無(wú)線局域網(wǎng)、藍(lán)牙 4.1 和低功耗藍(lán)牙、4 個(gè) USB 端口,40 個(gè) GPIO 引腳、完整的 HDMI 端口、以太網(wǎng)、3.5 mm 音頻插孔和攝像頭及顯示器接口。 Raspberry Pi Foundation 的 Raspberry Pi 3 Model B 基于高達(dá) 1.2 GHz 的 ARM Cortex-A53,并具有 1 GB 內(nèi)存和 802.11n 無(wú)線局域網(wǎng)連接。
從讀取溫度傳感器、控制電機(jī)和活塞的機(jī)電一體化系統(tǒng),到作為完整功能計(jì)算機(jī),該產(chǎn)品幾乎無(wú)所不能,還可以執(zhí)行一些有趣的項(xiàng)目包括視頻處理、機(jī)器人和遠(yuǎn)程 3D 打印機(jī)控制。
2: 開(kāi)始運(yùn)行 Raspberry Pi
Raspberry Pi 旨在運(yùn)行操作系統(tǒng),而不僅僅是在裸機(jī)上編寫代碼。最常見(jiàn)的操作系統(tǒng)是一種名為 Raspbian(Raspberry 和 Debian 的混成詞)的專用 Linux 版本風(fēng)格。當(dāng)然也可以運(yùn)行其他操作系統(tǒng),但初學(xué)者應(yīng)堅(jiān)持使用 Raspbian。
Raspberry Pi 作為獨(dú)立計(jì)算機(jī)使用時(shí),將需要所有傳統(tǒng)外設(shè),包括鼠標(biāo)、鍵盤、SD 卡(Class 10,至少 8 GB,如 Apacer Memory America 的 AP8GMCSH10U1-B)和監(jiān)視器。
需要一個(gè)外部 SD 卡讀卡器,以便先將 Pi 映像從單獨(dú)計(jì)算機(jī)復(fù)制到 SD 卡上。映像復(fù)制到 SD 卡后,所有其他作業(yè)都可以在 Pi 上完成。一款很好的 SD 卡讀卡器是 Assmann WSW Components 的 DA-70310-2 USB 2.0 讀卡器,該讀卡器適用于幾乎所有主流存儲(chǔ)卡格式。
要格式化 SD 卡,請(qǐng)通過(guò) Raspberry Pi 網(wǎng)頁(yè)上的鏈接獲取 SD Association 的 SD Card Formatter 軟件。僅使用經(jīng)驗(yàn)證的軟件來(lái)確保將 NOOBS 成功安裝到 SD 卡上?;蛘哔?gòu)買預(yù)裝 NOOBS 的 SD 卡,例如 Raspberry Pi NOOBS 16 GB 卡。
選擇無(wú)線鍵盤和鼠標(biāo)(如 Adafruit 的 1738),可以空出 USB 端口,避免電纜纏繞?;蛘呤褂猛?USB 2.0 集線器,如 Tripp Lite 的 4 端口 U22-004-RA。實(shí)際上,更推薦 4 端口通電集線器,因?yàn)榭梢越档?Pi 的電源需求。
如果打算通過(guò) SSH 遠(yuǎn)程連接到 Pi,或者與觸摸屏配合使用,則用戶不再需要鼠標(biāo)、鍵盤和監(jiān)視器(參見(jiàn)技巧 9)。
另外,除非監(jiān)視器具有 HDMI 輸入端,否則需要使用一個(gè)適配器將 Pi 的 HDMI 端口和監(jiān)視器的輸入端連接起來(lái)。例如,將 HDMI 橋接到帶 DVI-D 端口的監(jiān)視器時(shí),可使用 CnC Tech 的 741-20010-00300。 可能需要適配器將 Raspberry Pi 的 HDMI 輸出連接到監(jiān)視器,例如 CnC Tech 的 741-20010-00300 HDMI 19 針轉(zhuǎn) DVI-D 19 針公頭適配器。
之后,將 Pi 嵌入到系統(tǒng)或項(xiàng)目中時(shí),這些外設(shè)可能會(huì)放在一邊。
3: 獲得適當(dāng)?shù)碾娫?/p>
請(qǐng)勿通過(guò)電腦的 USB 端口為 Raspberry Pi 供電,因?yàn)樗鼈儧](méi)有防止 SD 卡損壞、Raspberry Pi 凍結(jié)和其他零星問(wèn)題等電源相關(guān)問(wèn)題所需的供電能力盈余。通常,2 安培電源已能夠滿足 Raspberry Pi 3 的需求,但推薦使用 2.5 安培的電源。
很多高電流電源帶有一個(gè)管狀公頭輸出連接器。使用 Adafruit 的 2727 插孔轉(zhuǎn) Micro USB A 插頭電纜適配器,配合任意 5 V、中心正極 5.5 x 2.1 mm 柱式電源,將其配接至 Raspberry Pi 3。
要按照 2.5 A 推薦值為 Raspberry Pi 供電,應(yīng)將 Adafruit 的 2727 插孔轉(zhuǎn) Micro USB A 電纜適配器與任意 5 V、中心正極 5.5×2.1 mm 柱式電源結(jié)合使用。(圖片來(lái)源:Adafruit)
Raspberry Pi 自身并不需要使用全部電流。使用具有足夠額外負(fù)載能力的電源,旨在確保其他電子元件和配件連接到電路板時(shí),輸入電壓不會(huì)下降?;诖?,我們來(lái)了解一下一般電源要求。
根據(jù)型號(hào),Raspberry Pi 在空閑模式下消耗大約 100 mA 至 300 mA,每次連續(xù)迭代 Pi 將消耗更多的電流(圖 4)。如果應(yīng)用需要超低功耗,則在 Raspberry Pi 選擇過(guò)程中應(yīng)考慮這一因素。
圖 4: 一些主流 Raspberry Pi 型號(hào)電流消耗的比較結(jié)果。(圖片來(lái)源: Raspberry Pi Foundation)
請(qǐng)注意,如果 Pi 采用移動(dòng)工作方式,則可能無(wú)法獲得足夠的電流,導(dǎo)致大多數(shù) USB 移動(dòng)電源因其內(nèi)部電路的設(shè)置而無(wú)法導(dǎo)通。請(qǐng)使用 Adafruit 的 4000 mAh 型號(hào) 1565 或 10,000 mAh 型號(hào) 1566電池組,它們已證實(shí)可與 Pi 配合使用。
4: 獲取或制作帶有內(nèi)置開(kāi)/關(guān)按鈕的 USB 電纜
Raspberry Pi 沒(méi)有板載復(fù)位按鈕或電源開(kāi)關(guān)。為了避免每次電路板凍結(jié)并需要復(fù)位時(shí)拔下和重新插上 USB 電纜,請(qǐng)使用帶有內(nèi)置開(kāi)/關(guān)按鈕的 USB 電纜,例如 Adafruit 的 2379。這一需求總結(jié)于不斷的實(shí)驗(yàn)和學(xué)習(xí)。 初學(xué)者會(huì)不可避免地在學(xué)習(xí)過(guò)程中鎖定系統(tǒng)。使用按鈕比使用電纜和連接器更簡(jiǎn)單,可減輕負(fù)擔(dān),同時(shí)避免不必要的 USB 連接器磨損。
但是,請(qǐng)注意: 一般情況下,切勿默認(rèn)使用開(kāi)/關(guān)按鈕關(guān)閉 Raspberry Pi。直接斷電會(huì)損壞 SD 卡,因此請(qǐng)務(wù)必按照正確的關(guān)機(jī)程序進(jìn)行操作(參見(jiàn)“開(kāi)關(guān)的位置”)。
5: 成功的關(guān)鍵:Raspberry Pi 配件板
Raspberry Pi 是功能強(qiáng)大的單板計(jì)算機(jī),但也不是萬(wàn)能的。幸運(yùn)的是,可利用大量可用的配件板來(lái)增強(qiáng) Pi 的功能。
例如,雖然 Raspberry Pi 沒(méi)有用于數(shù)據(jù)采集的板載模數(shù)轉(zhuǎn)換器 (ADC),但有幾種轉(zhuǎn)換器解決方案可供選擇。Seeed Technology 專門打造的 103990060 ADC 和數(shù)模轉(zhuǎn)換器 (DAC) 板就是一個(gè)很好的解決方案。 Seeed Technology 的 103990060 Raspberry Pi 擴(kuò)展板為 Raspberry Pi 提供 8 位 ADC 和 DAC 功能。
為 RasPi 配備 ADC 輸入的另一種方法是將此工作交由小型 Arduino 板完成,例如 Adafruit 3.3 伏 Trinket。
要做到這一點(diǎn),首先回顧“開(kāi)始 Arduino 項(xiàng)目前需要知道的 10 件事”,然后使用簡(jiǎn)單草圖對(duì)電路板進(jìn)行編程來(lái)采集模擬數(shù)據(jù)。數(shù)據(jù)通過(guò)串行連接中繼到 Pi。
更方便的方法是,使用可以與 Raspberry Pi 搭配使用的定制 Arduino 板,例如 Seeed 的 AlaMode 和 DFRobot 的 DFR0327 擴(kuò)展板。
需要實(shí)時(shí)執(zhí)行的任務(wù)無(wú)疑需要一個(gè)配件板,因?yàn)?Raspian 不具備此功能。Raspbian/Linux 會(huì)根據(jù)需要將 CPU 時(shí)間分配給應(yīng)用程序、Python 代碼和 Raspbian 自身。這種資源重新分配的不可預(yù)測(cè)性使得無(wú)法實(shí)現(xiàn)實(shí)時(shí)執(zhí)行。
6: Wi-Fi 加密狗
將更新和應(yīng)用程序安裝到 Pi 上的最簡(jiǎn)單方法是通過(guò) Wi-Fi 連接互聯(lián)網(wǎng),Raspberry Pi 3 已內(nèi)置此功能 (802.11n)。但是,其他版本的 Raspberry Pi 沒(méi)有 Wi-Fi,因此可能需要購(gòu)買 Wi-Fi 加密狗。這種情況下,應(yīng)做必要的研究,以確保其能夠被 Raspbian 操作系統(tǒng)識(shí)別。Adafruit 的小型 814 802.11/b/g/n 模塊是一款很棒且已證實(shí)適合 Raspberry Pi 的加密狗。
如果您手上的 Raspberry Pi 板沒(méi)有內(nèi)置 Wi-Fi,請(qǐng)研究并找尋合適的加密狗,例如已知可用于 Raspbian 的 Adafruit 814 USB 適配器。
7: 注意輸出邏輯電平和驅(qū)動(dòng)能力
Raspberry Pi 使用 3.3 V 邏輯電平。這是一個(gè)很小但重要的細(xì)節(jié),往往被忽視。3.3 V 邏輯電平意味著 Pi 可能無(wú)法與需要 5 V 邏輯電平的許多器件和配件搭配使用。此外,如果總電流不超過(guò)約 50 mA,則每個(gè)引腳上的驅(qū)動(dòng)電流為 16 mA。使用 SparkFun 的 BOB-12009 雙向轉(zhuǎn)換器等邏輯電平轉(zhuǎn)換器可輕松解決此問(wèn)題。 SparkFun 的 BOB-12009 將 5 V 信號(hào)轉(zhuǎn)換為 Raspberry Pi 所需的 3.3 V。
8: Python 編程語(yǔ)言
Python 是 Raspbian 的默認(rèn)編程語(yǔ)言。事實(shí)上,Raspbian 映像預(yù)先加載了 Python 開(kāi)發(fā)環(huán)境 IDLE(集成開(kāi)發(fā)和學(xué)習(xí)環(huán)境)。對(duì)于大多數(shù) Pi 項(xiàng)目,使用 Python 是不可或缺的。
在 Raspbian 中,可以選擇使用 IDLE 2 運(yùn)行 Python 2 或 IDLE 3 來(lái)運(yùn)行 Python 3。繼續(xù)使用 IDLE 3/Python 3 保持最新狀態(tài)并獲取最新的文檔。
請(qǐng)注意,Python 2 和 3 代碼不能直接互換。目前有很多 Python 2 代碼,所以您可能希望能從 Python 3 返回至 Python 2,但是兩者在語(yǔ)法和命名約定方面存在一些差異,不能直接兼容。但是,如果決定更改,可以仔細(xì)檢查代碼,進(jìn)行必要更改以將 Python 2 代碼轉(zhuǎn)換為 Python 3,反之亦然。
開(kāi)始構(gòu)建 Python 程序的個(gè)性化 GUI 的最快方法是使用一組名為 TkInter 的工具,該工具已與 Raspbian 捆綁提供。TkInter 有很多簡(jiǎn)短在線教程,可以幫助用戶快速上手。
對(duì)于新手編程人員,建議將項(xiàng)目分解為基本構(gòu)建塊。例如,項(xiàng)目涉及到輸出至 LCD,讀取連接到 SPI 的傳感器,以及從三個(gè)按鈕獲取用戶輸入。應(yīng)為每個(gè)任務(wù)編寫一個(gè)單獨(dú)的代碼段。一次編寫所有代碼可能會(huì)導(dǎo)致錯(cuò)誤,并加大調(diào)試難度。
9: 屏幕尺寸
編程時(shí)請(qǐng)使用大顯示屏,不必使用是位于 Pi 上難以閱讀的 3 英寸小顯示屏。雖然很適合項(xiàng)目的最終定制界面,但最好使用全尺寸顯示器甚至 7 英寸觸摸顯示屏,如 Raspberry Pi Foundation 的 8997466 LCD。根據(jù)使用的 Raspberry Pi 型號(hào),可能無(wú)法通過(guò) DSI 連接器自動(dòng)檢測(cè)該顯示屏。如果 Pi 型號(hào)需要手動(dòng)啟用屏幕,Github 文檔中記錄有此程序。 避免使用 3 英寸小顯示器,因?yàn)楹茈y閱讀。相反,請(qǐng)選擇全尺寸顯示器或 Raspberry Pi Foundation 的 7 英寸 8997466 液晶顯示器。
也就是說(shuō),全尺寸顯示器是首選項(xiàng)。此外,插入 DSI 或 HDMI 端口的顯示屏比通過(guò)通用 I/O 端口控制的顯示屏快得多。
10: 小技巧和補(bǔ)救措施
您可能希望使用大于 32 GB 的 SD 卡。這種情況下,請(qǐng)確保將卡格式化為 FAT32 文件系統(tǒng)。Raspberry Pi 只能讀取 FAT32 卷。
確保 SD 卡與 Raspberry Pi 兼容。
如果卡在命令行,運(yùn)行命令“sudo start x”啟動(dòng) GUI。
Raspberry Pi GPIO 引腳未標(biāo)記。為避免混淆,請(qǐng)獲取 GPIO 參考,如 Seeed 提供的這一個(gè)引腳參考。使用手邊的引腳參考來(lái)識(shí)別 Raspberry Pi GPIO 引腳。
不要通過(guò) GPIO 引腳為 Raspberry Pi 供電。雖然可以實(shí)現(xiàn)供電,但這意味著繞過(guò)板載保險(xiǎn)絲。保險(xiǎn)絲是自復(fù)位的,可以根據(jù)需要更換。如果電源通過(guò) GPIO 供電,發(fā)出爆裂聲時(shí),很可能 Pi 已經(jīng)損壞。
如果用戶選擇通過(guò) GPIO 供電,則將繞過(guò) Raspberry Pi 3 板載自復(fù)位保險(xiǎn)絲(紅色箭頭)。這會(huì)使板面臨風(fēng)險(xiǎn)。
如果使用 Raspberry Pi 進(jìn)行開(kāi)發(fā)時(shí),請(qǐng)備份所有文件。SD 卡上的映像有可能在某些時(shí)候遭到破壞,從而使數(shù)據(jù)不可恢復(fù)。使用 USB 閃存盤作為文件存儲(chǔ)庫(kù)來(lái)徹底規(guī)避風(fēng)險(xiǎn),例如 Apacer 的 APHA016G2BACG-DTM 16 GB USB 驅(qū)動(dòng)器。
將文件保存到 USB 驅(qū)動(dòng)器,以在 Raspberry Pi 的文件系統(tǒng)損壞時(shí)保護(hù)文件。
總結(jié)
Raspberry Pi 以強(qiáng)大、易于使用和良好的支持而聞名。該產(chǎn)品是構(gòu)建專業(yè)應(yīng)用程序或有趣項(xiàng)目的絕佳基礎(chǔ)。不管您的知識(shí)背景和技能水平如何,這些技巧將縮短學(xué)習(xí)曲線,加快上市時(shí)間,使整個(gè)過(guò)程更有成效。
評(píng)論
查看更多