Raspberry Pi 作為一款低成本、高效能的單板電腦,已成為嵌入式系統開發和 Python 程式設計的理想平台。其豐富的 GPIO 介面和易於使用的軟體環境,讓使用者能夠輕鬆地將程式碼與硬體互動,實作各種創意應用。從控制 LED 燈到構建機器人,Raspberry Pi 的靈活性使其在創客社群和教育領域廣受歡迎。學習 Raspberry Pi 不僅可以提升程式設計能力,更能培養硬體控制的實作經驗,為物聯網和嵌入式系統的發展奠定基礎。
使用Raspberry Pi與Python進行技術創新
在2006年,Eben Upton和其他Raspberry Pi基金會的創辦人們審視了當時大學的電腦科學(CS)課程,他們發現情況令人擔憂。電腦科學課程已經簡化成「CS 101: 如何操作Microsoft Word」和「CS 203: 最佳化您的Facebook頁面」。他們意識到,沒有人真正在學習如何編寫程式,特別是進入大學之前。於是,他們構思了一個計畫:製作一台小型且廉價的電腦,讓孩子們可以在上面學習編寫程式,就像過去的Amigas、Spectrums和Commodore 64一樣。他們在一塊板子上安裝了一個ARM處理器,並最終提供了512 MB的RAM和VideoCore GPU,讓使用者可以透過USB鍵盤、滑鼠和HDMI輸出埠與之互動。為了使其易於編寫程式,他們設計其主要編寫語言為Python——一種強大且易於學習的指令碼語言。這樣,Raspberry Pi就誕生了。
玄貓曾經在Commodore VIC 20上用BASIC寫過第一個程式,這台電腦只有5 KB的RAM,但玄貓還是能夠在上面編寫簡單的迷宮遊戲,並將進度儲存在磁帶機上。這些年來,玄貓經歷了不同的電腦平台,從Windows 3.1到Macintosh OS 8再到一點點Linux。很久沒有對一台電腦感到如此興奮了;Raspberry Pi在相對陳舊的電腦環境中帶來了一絲清新的空氣。不僅它小巧且廉價,而且與實體世界互動也很簡單——這對於任何對設計實體系統感興趣的人來說都是一個真正的福音。因此,當玄貓聽說它發行時,就像其他數以億計的愛好者/駭客/工程師一樣登記了並迫不及待地等待著它的交付。然後玄貓開始用它進行各種建造並從未回頭。
如果你購買了一台Raspberry Pi但不知道如何開始使用它,這本文適合你。 如果你購買了一台Raspberry Pi但不知道該如何使用它,這本文也適合你。 如果你考慮購買Raspberry Pi但還沒有動手因為你一直在想,「我為什麼要購買它?畢竟我不能用它做些有趣的事情嗎?」那麼這本文絕對適合你。
這本文不是Python教科書,也不是對Raspberry Pi及其所有功能的全面探索。但它旨在成為這台可愛小電腦的一本有趣且入門。希望你完成這本文後能感受到Pi在與你的一些創意和創造力結合時所能做到的一切。如果你願意按照這裡的專案順序進行操作,請隨意進行;如果你想跳過一些部分並做那些感興趣的專案也完全可以。希望你能熟悉Python和Pi,並在實際操作中不斷發展並激勵他人。
最重要的是,希望你喜歡這本文及其專案。寫作這本文真的很有趣。
祝計算愉快!
介紹樹莓派
你現在擁有一台樹莓派(Raspberry Pi)迷你電腦,接下來該做什麼呢?無論你是對樹莓派及其架構已經有所瞭解,但不知道如何運用它;還是對於Linux或樹莓派的預設作業系統Raspbian不熟悉;或者是已經是Linux專家,但希望學習Python程式設計;又或者你完全沒有電腦經驗,只會點選啟動按鈕、檢視電子郵件和瀏覽網頁,但聽說了這個「樹莓派」的新奇事物而想一探究竟。歡迎你!你即將加入一個俱樂部,雖然這個俱樂部並不特別排他,因為加入只需要大約35美元(美金)加上運費,但這仍然是一個俱樂部。
作為一名會員,你將能夠智慧地討論套件管理器、ARM11處理器和點組態檔案。你將瞭解驅動程式和API。你將熟悉伺服器、LED燈和晶片相機。最重要的是,你將能夠連線到新的迷你電腦、用多種程式語言(本文專注於Python)編寫程式、建立專案並將這些專案與樹莓派連線起來,使其能夠與物理世界互動並做一些非常酷的事情。
透過這本文,我將正式引導你進入這個俱樂部。無論你的經驗如何,我都會一步步地引導你設定好樹莓派,讓你能夠在最小的麻煩下工作。我會嘗試為你提供Linux的基礎知識,讓你知道背後發生的事情,並且會用一整章來介紹Python,這是所有時尚駭客都在使用的指令碼語言。Google使用它,NASA使用它,而臉書也使用它。坦白說,Perl已經過時了。我也會花一章來介紹建立電子專案的基本知識—這是許多技術和程式設計書籍要麼略過要麼完全忽略的內容。
例如,當我意外短路電池組時差點引發小爆炸時(因為安全因素),以及如何避免用X-ACTO小刀切斷食指(只是良好的建築實踐)。此外,還有40W與40KW電阻之間的區別。
當然,如果你已經熟悉這些東西,可以直接跳到有趣的部分:專案。所有專案都可以在一個週末內完成(或者一個月或兩個月內完成,取決於你的動力和待辦事項清單的長度),並且都是用Python編寫的。我會在每個專案的開始提供零件清單及購買零件的地方,然後我們就開始吧。這些專案不一定相互依賴或按複雜程度排序;如果你想建造貓咪娛樂機而跳過家庭媒體伺服器,那也是完全可以的。
用樹莓派可以做什麼樣的專案?答案可能會讓你驚訝:樹莓派雖然體積小巧,但其計算能力卻非常強大。它已被用於從網頁伺服器到車載電腦(carputers)以及群集計算等各種應用中。我希望當你完成這本文後,不僅會有更多想法,還會有實作那些想法所需的技能。
無論你拿起這本文的原因為何,主要目標應該是享受樂趣並學到一些東西!我會盡我所能帶領你前進。
樹莓派的歷史
對於不太熟悉的人來說,樹莓派可能看起來很新潮;許多部落格文章仍然這樣對待它,而且令人驚訝的是還有很多人不知道它是什麼。許多線上文章仍然以「樹莓派是一種小巧、信用卡大小的電腦」開始介紹……這與Arduino形成鮮明對比;大多數瞭解當前事件的人至少聽說過Arduino ,即使他們不知道它是什麼或用途為何。因為Arduino自2005年問世以來獲得了廣大愛好者、駭客和全球DIY愛好者之間忠實且熱情的追隨者。
Arduino
對於那些不熟悉Arduino的人來說,Arduino是一款微控制器平台,安裝在一塊板子上可以輕鬆插入大多數電腦。它允許使用者用類別似C語言編寫程式來控制板載ATmega晶片進行各種操作。典型的Arduino程式碼範例如下:
#include <Servo.h>
void setup() {
myservo.attach(9);
}
void loop() {
myservo.write(95);
delay(100);
myservo.write(150);
delay(100);
}
此範例持續地讓連線到伺服馬達(可以透過軟體精確控制的一種小型馬達)左右移動並暫停一秒鐘。
雖然Arduino不如樹莓派強大,但它已經成功地讓電子專案(特別是微控制器)更容易被大眾所接受。我在第十四章中討論瞭如何讓Arduino和樹莓派互補使用。
樹莓派雖然不是全新產品,但已經存在幾年了。其創始人—Eben Upton、Rob Mullins、Jack Lang 和 Alan Mycroft—在2006年首先提出了一個便宜PC的想法。他們在英國劍橋大學工作時發現,「康懋達64」、「Amiga」和「Spectrum」等便宜個人電腦消失後對青少年的程式設計能力造成了負面影響。桌面和筆記型電腦價格從數百美元甚至數千美元起跳後,「家裡的主機」禁止孩子和青少年進行練習程式設計。
同時創始人意識到許多大學電腦科學課程已被降低到「Microsoft Word 101」和「如何建立網頁」。四位創始人希望提高新生的程式設計知識水平,「因此電腦科學和工程課程可能會變得更加強大」。顯然需要更便宜的電腦。「他們開始玩微控制器和各種晶片、麵包板和PCB」,直到2008年才變得更加可行。「晶片變得更小、更便宜且更強大」,由於移動裝置爆炸性增長,「他們計劃製造出能夠支援多媒體而非僅僅命令列程式設計」裝置,「因為他們認為這很重要。」年輕人更可能對媒體功能裝置感興趣,「因此更可能嘗試在上面進行程式設計。」
介紹樹莓派(Raspberry Pi)
樹莓派(Raspberry Pi)是一款小巧且強大的單板電腦,自2012年首次推出以來,迅速在全球範圍內受到熱烈歡迎。它的設計初衷是為了提供一個低成本、易於程式設計的工具,供學校和教育機構使用。然而,隨著時間的推移,樹莓派已經超越了最初的預期,成為了各行各業從學生到專業工程師皆喜愛的創新工具。
樹莓派的起源與發展
2008年,由Eben Upton、Rob Mullins、Jack Lang和Alan Mycroft四位創始人以及Pete Lomas和David Braben共同組建了樹莓派基金會(Raspberry Pi Foundation)。三年後,第一批次生產的樹莓派正式上市。樹莓派的名稱是對早期電腦時代以水果命名的微型電腦的致敬,比如Apple和Tangerine,而Pi則來自於Python程式語言。
樹莓派的廣泛應用
樹莓派不僅僅是教育工具,它還被廣泛應用於各種領域。開發中國家使用樹莓派作為生產力工具,因為它們無法負擔傳統桌面電腦所需的電力和硬體。醫院和博物館也對樹莓派表示興趣,希望能夠用它來驅動顯示裝置。此外,許多家庭使用樹莓派來監控和輔助重度殘障兒童。
樹莓派的型號與規格
目前市面上有兩種主流型號:A型和B型。B型號在功能上稍多一些,價格也相應提高。以下是兩者的主要區別:
- A型:256 MB RAM、一個USB埠、無有線網路埠
- B型:516 MB RAM、兩個USB埠、一個有線網路埠
建議購買B型號,因為多一個USB埠和有線網路連線可以大大提升使用便利性。
樹莓派板卡的元件
樹莓派板卡雖小巧,但內含豐富元件。以下是其主要元件介紹:
SD卡槽
SD卡在樹莓派中充當固態硬碟硬碟(SSD),因此可以透過更換SD卡來擴充套件儲存容量。最低推薦使用4 GB SD卡,以確保有足夠空間安裝必要的軟體和系統。
電源介面
樹莓派使用5V micro-USB供電,這與許多手機和平板電腦電腦相同。但需要注意的是,樹莓派沒有內建電壓調節器,因此必須確保供電電壓穩定在5V以內,否則可能會損壞裝置。
HDMI介面
HDMI介面是樹莓派的一大亮點,能夠輸出高畫質1080p影像,並具有1吉畫素/秒的處理能力。這使得它能夠進行藍光品質播放以及使用OpenGL和OpenVG函式庫進行圖形處理。
USB埠
B型號樹莓派配備兩個USB埠,可以連線鍵盤、滑鼠、隨身碟等外設。
網路介面
B型號還配備了一個有線網路埠(RJ-45),方便連線網際網路或本地網路。
結語
總結來說,樹莓派作為一款低成本且高效能的單板電腦,已經在全球範圍內得到了廣泛應用。無論是教育領域還是其他專業應用場景中,它都展現出了無限可能性。希望未來能夠看到更多根據樹莓派技術實作的創新專案。
模組介紹:樹莓派(Raspberry Pi)
樹莓派的網路與USB連線
樹莓派的乙太網路(Ethernet)和USB連線是透過主機板上的LAN9512晶片提供的。根據9512的資料表,這是一個高速USB 2.0集線器,內建10/100乙太網路控制器。這顆小型晶片僅有8毫米一邊,但能夠支援480 Mbps USB 2.0速度,並且完全整合了10BASE-T和100-BASE-TX乙太網路支援。這些技術細節或許聽起來很複雜,但簡單來說,這意味著你可以將幾乎任何連線到桌上型電腦的裝置,如路由器、網路攝像頭、USB集線器或外接硬碟(HDD),都連線到樹莓派上。
樹莓派的音訊與影像輸出
音訊和RCA影像輸出埠也是在主機板上提供的。樹莓派支援透過HDMI輸出音訊,但如果你想要使用耳機,則有標準的3.5毫米音訊插孔。若你想使用麥克風,大多數Linux相容的USB麥克風都可以正常執行。關於影像輸出,樹莓派不支援VGA輸出,但RCA插孔可以將影像傳輸到任何連線的RCA影像裝置——這對於像MyVu這類別自成系統的影片眼鏡來說非常實用。
樹莓派的GPIO引腳
可能最常被忽略的一部分是GPIO(通用輸入/輸出)引腳。這些引腳允許你將樹莓派連線到各種物理擴充套件裝置,從LED燈、伺服馬達到馬達控制器和擴充套件板如Gertboard(將在第十三章介紹和討論)。在一般桌上型或筆記型電腦上實作這些功能需要一些嚴謹的操作,例如使用USB驅動程式或存取(可能不存在的)串列埠並進行低層次程式設計魔術。但樹莓派預裝了可讓你使用Python、C或C++存取引腳的函式庫檔案。此外,還有其他函式庫檔案可供選擇,如果你不喜歡官方預裝版本。這意味著你可以在不需要任何其他組態的情況下將多達八個伺服馬達連線到樹莓派——足夠控制一個四足機器人。
樹莓派的系統晶片(SoC)
主機板上的最重要元件是中央處理晶片(SoC),即Broadcom BCM2835。它包含一個ARM11處理器運作在700 MHz以及一個VideoCore4 GPU。該晶片可以超頻到至少800 MHz而不會出現問題;事實上,最新一代的預裝SD卡提供了從raspi-config檔案直接進行超頻選項。最快的預設設定將處理器頻率提升至1 GHz,並有按需功能可防止晶片過熱。根據核心基金會的說法,所有這些超頻操作結果使得執行速度提升了52-64%。
樹莓派與其他小型微電腦比較
樹莓派比其他小型微電腦如Arduino和Beagleboard系列有何優勢?答案是樹莓派並不一定比其他裝置更好;每個裝置都滿足特定需求,很難直接比較。Arduino非常適合建立簡單專案以及控制簡單機器人。在許多情況下,使用樹莓派來完成Arduino能夠完成的任務會顯得過於強大且不必要。至於其他微電腦如Beagleboard系列,主要區別在於價格。Beaglebone是與樹莓派相似的一款產品,但其建議零售價格為$89——超過樹莓派價格兩倍之多。購買樹莓派還能支援一個慈善組織,旨在將廉價電腦交到全球各地學童手中。
樹莓派硬體需求
讓我們快速看一下樹莓派所需的硬體組態。
電源連線
之前已經提到電源需求:樹莓派需要5伏特——多一分少一分都不行。再次強調:樹莓派沒有內建電壓穩壓器!你不能使用9伏特電池或變壓器並期望它能工作。要麼使用類別似手機充電器(大多數都是5V),要麼從線上電子商店或購買核心基金會指定地方買一個良好供應器。供應器也需要提供至少500毫安(mA),最好是1安培(A)。如果僅提供500 mA供應時,請準備好面對一些怪異行為如滑鼠和鍵盤當無線介面卡插入時無法運作。
摳幕監視器
下一個必需外部裝置至少是具有HDMI或DVI能力的監視器。如果只有DVI輸入也沒關係,因為HDMI-to-DVI轉換器隨處可見。當你已經安裝好並且所有必要軟體也已安裝完畢後,你可以讓核心基金會執行無頭組態方式進行工作運作。這表示你可以從另一台電腦透過SSH(安全殼層)或VNC(虛擬網路計算)客戶端登入核心基金會進行操作管理;但最初始步驟中你必須有一台監視器以便看到你正在做什麼。
USB集線器
隨著時間推移,你可能需要一個USB集線器。模型B具有兩個USB插口,這意味著你可以插入鍵盤和滑鼠後便完成初步組態工作;但是若想要無線運作環境(而最終你會需要無線連線),則至少需要三個USB插口之一用於無線USB天線;這代表說明目前必須新增集線器才能滿足基本需求。
圖示:核心基金會硬體架構
graph TD A[模型B] --> B[ARM11處理器] A --> C[VideoCore4 GPU] A --> D[LAN9512晶片] D --> E[乙太網路] D --> F[USB集線器] A --> G[GPIO引腳] A --> H[HDMI輸出] A --> I[3.5mm音訊插孔] A --> J[RCA影像輸出]
此圖示內容解密:
- 模型B包含了一個ARM11處理器、VideoCore4 GPU以及LAN9512晶片。
- LAN9512晶片同時支援乙太網路和USB集線功能。
- 此外還包含GPIO引腳、HDMI影像輸出、3.5mm音訊插孔以及RCA影像輸出埠等硬體元件。
當然核心基金會具有完整且互通性強大架構設定設計提供了廣泛應用功能性樣態平台系統運作環境。