天天看點

《 Python樹莓派程式設計》——第1章 樹莓派簡介 第1.1 樹莓派的曆史

本節書摘來自華章出版社《python樹莓派程式設計》一書中的第1章,第1.1節,作者:[美]沃爾弗拉姆·多納特(wolfram donat)著 韓德強 等譯,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

<b></b>

<b>第1章</b>

<b>樹莓派簡介</b>

如果你現在有一台樹莓派,你會用它來做什麼呢?也許你已經熟悉了樹莓派的基本結構,正在考慮可以拿它來做些什麼;也許你之前使用過計算機但并不熟悉linux或樹莓派預設的raspbian作業系統;也許你已經是一位linux系統的愛好者,但卻不知道如何用python進行程式設計,而且正準備好好學一學;也許你根本就不了解計算機,僅僅停留在點選“開始”菜單,轉發電子郵件,上網等操作,但是聽說過“樹莓派”這麼個新奇的東西,想了解一下它到底是什麼。

無論是何原因,歡迎你的到來!你即将加入我們的大家庭—這個家庭專業性并不是很強,因為你隻需花費35美金及必要的郵費,無需其他,便可成為我們的一員。作為一名會員,你将會和所有想聽你分享經驗的人們讨論你對軟體包管理器、arm11處理器,或是.config檔案的一些見解,會了解關于驅動器和api的一些資訊,會熟悉關于舵機、led燈、闆載攝像頭的内容,最重要的是,你可以與微型計算機進行通信,用任何一門程式設計語言(本書主要使用的是python語言)進行程式設計,建構項目,在樹莓派上實作這些項目,這樣樹莓派便可與真實世界進行互動,并做出一些非常酷的東西。

通過閱讀本書,我将引導你進入樹莓派的俱樂部。在這裡,你之前的經驗并不重要,因為我将一步步帶着你對樹莓派進行配置,這樣你就可以輕松地使用它了。我會盡量将linux的環境介紹得詳細透徹,以便你可以了解螢幕背後所發生的一切。同時我會用比較長的篇幅來介紹python語言,這是目前極客們熱衷的腳本語言。谷歌使用python,nasa使用python,facebook也使用python。perl的時代已經過去,讓我們好好探究python這種語言。我還會在書中介紹一些建構電子項目的基本常識—這是一些技術或程式設計書籍僅作簡單介紹,甚至完全忽略的部分。在建構好的項目同時,也還有一些安全因素需要考慮(例如,我曾經因為将電池短接而引起一次小型爆炸)。例如,你會學到如何焊出一個好的焊點,如何避免被刀片劃傷食指,以及怎樣差別40和40k的電阻。

當然,如果你已經熟悉了以上這些事情,可以跳過前面的介紹直接進入後面關于項目的部分。所有的項目都是用python語言編寫的,并且它們都可在一個周末(或一兩個月,當然,這取決于你的積極性以及其他你需要做的事情)搭建完成。我會在每個項目之前為你準備一份購物清單,以及買到這些部件的位址,之後便直入主題。這些項目彼此之間并無依賴關系,在複雜程度上彼此也沒有特定的順序,這就意味着如果你想跳過家庭媒體伺服器項目直接進入貓玩具項目也是沒問題的。

那樹莓派到底可以用來完成什麼樣的項目呢?你會驚訝地發現,樹莓派小巧的尺寸并不能掩蓋它強大的計算能力。它的應用範圍很廣,從網絡伺服器、車載電腦(carputer),到叢集計算都可以看到它的身影。我希望當你讀完本書之後,不僅可以發現一些新奇的想法,學到一些技術,最主要的是通過所學到的知識将你的想法變為現實。

無論你為何選擇本書,你的主要目的就是快樂地學習并且學到一些東西!我會盡我所能去幫助你。

<b>1.1 樹莓派的曆史</b>

對外人而言,樹莓派的确是很新穎的東西,在部落格中有許多人也這樣認為,還有一部分人甚至完全不知道樹莓派是什麼。大量樹莓派的文章仍舊會以“樹莓派是一個小型的、信用卡大小的計算機,愛好者們可以用其……”作為開始。但不同于樹莓派,當人們談及arduino時,即便大多數人不知道arduino是什麼或是做什麼用的,但至少都聽說過。因為早在2005年,arduino就在全球範圍内的愛好者們、極客們和喜愛diy的人們中赢得了很好的口碑。

arduino

arduino是一個微控制器平台,它安裝在可以輕松插入絕大多數計算機的芯闆上。這使得使用者可以通過類似c的程式設計語言對闆上的atmega晶片進行程式設計,以實作各種需求。這種程式稱為sketch。一個典型的arduino sketch程式如下所示:

《 Python樹莓派程式設計》——第1章 樹莓派簡介 第1.1 樹莓派的曆史
《 Python樹莓派程式設計》——第1章 樹莓派簡介 第1.1 樹莓派的曆史

以上代碼的作用是控制一個和arduino相連的舵機(一個可以通過軟體精确控制轉動角度的小型馬達)持續進行前後轉動,每次轉動間隔1秒。

盡管其功能不像樹莓派那樣強大,但arduino已經可以完成很多事情,這使得公衆對一般的電子項目(尤其是微控制器)更加熟知。我們将在第14章對arduino和樹莓派如何互相完善進行更深入的介紹。

樹莓派已經問世很多年了,早已不是什麼新的詞彙。它的創始人—eben upton、rob mullins、jack lang和alan mycroft—在2006年第一次提出了廉價pc機的想法。在英國劍橋大學的時候,他們就意識到:随着像commodore 64、amiga和spectrum這種廉價的個人計算機逐漸退出市場,取而代之的桌上型電腦和筆記本電腦的價格又十分高昂(若不是幾千美元的話,也需要幾百美元),年輕人無法随意地在這種家庭主要的電子産品上練習程式設計,而這一定會嚴重影響年輕人的程式設計能力。

與此同時,這些創始人意識到目前許多大學的計算機科學課程已經被縮減為教授“微軟word 101”和“如何建立網頁”。4位創始人希望幫助新生提高程式設計知識,或許以後計算機科學和工程類的課程會變得更加有意義。

很明顯,為實作以上目的,需要一台便宜的計算機。為此他們嘗試過許多微控制器、各種晶片、面包闆、pcb闆,等等,直到2008年,這個想法才得以實作。随着移動裝置的爆炸式增長,晶片變得更小,更便宜,性能也更加強大。他們使用這些晶片設計了一台支援多媒體的裝置,而不是僅支援指令行程式設計,做到這一點他們認為很重要(見圖1-1)。年輕人似乎更喜歡具備媒體功能的裝置,是以也就更有可能用此裝置去程式設計。

2008年,4位創始人,和pete

lomas和david braben一起,創立了樹莓派基金會,3年後,該基金會成為第一個大規模生産樹莓派的生産線。

樹莓派(raspberry pi)這個名字同早期微機根據水果命名的規則一樣,如早期的蘋果(apple)和橘子(tangerine),而派(pi)則來源于python這個腳本語言。

一年内,基金會賣出了100多萬台裝置。基金會成員多次表示他們對這種爆炸式的熱情感到十分震驚。最初的目的僅僅是推出一種廉價的、可程式設計的裝置,使教育工作者和學生獲益,顯然現在這個目的已經達成了。不僅如此,現在的成果比最初設想的要大得多。很明顯,他們并不是唯一希望擁有廉價可程式設計裝置的一類人,世界各地的愛好者,連同element14、premier farnell和rs electronics都迫切需要訂單,以至于那些預訂了樹莓派的人不得不等待半年的時間,随後産量才滿足需求量。許多消費者現在或之前都是程式員,現如今都渴望一覽這台新的體積小性能強的計算機。(我第一次學習程式設計是在commodore vic-20上,這台裝置僅有20kb的記憶體,當時用的還是basic語言……好吧!這都是很久以前的事了。)

《 Python樹莓派程式設計》——第1章 樹莓派簡介 第1.1 樹莓派的曆史

(image但無論是之前還是現在,人們在各領域内都使用樹莓派。就像美國樹莓派基金會網頁上寫的那樣:

我們已經收到來自教育機構數不盡的熱情、支援和幫助。在看到來自機構大量的咨詢時,我們十分激動,而當人們對裝置的使用目的與我們的初衷相差甚遠時,我們又感到有些羞愧。在開發中國家,由于部分地區的電力無法為傳統的桌面pc裝置提供所需要的功率和硬體裝置,是以他們對樹莓派很感興趣。醫院和博物館已經聯系我們,希望樹莓派能夠驅動顯示裝置。一些重度殘疾孩子的父母也跟我們聯系,談論關于監控和可溝通應用的事情;與此同時,似乎還有數以百萬的人正拿着電烙鐵準備制作機器人呢。

幸運的是,供應及時滿足了需求。現在買樹莓派便無需等待了,而且每位使用者也不再限購了。樹莓派基金會正策劃一個“買一贈一”的活動,即每賣出一台樹莓派便向教育機構捐贈一台樹莓派。最近發行的樹莓派闆載攝像頭是一台小型晶片內建攝像頭,可直接插入樹莓派,使用者可以用它拍攝靜态照片,也可拍攝視訊。基金會保證将會為這台小型計算機開發更多的外部裝置。如今創始人正在積極說服其他公司複制他們的模式,接下來會發生的事情,讓我們拭目以待吧。