計算機實驗室之樹莓派:課程 6 屏幕01 | Linux 中國

2021-02-15 Linux中國

歡迎來到屏幕系列課程。在本系列中,你將學習在樹莓派中如何使用彙編代碼控制屏幕,從顯示隨機數據開始,接著學習顯示一個固定的圖像和顯示文本,然後格式化數字為文本。假設你已經完成了 OK 系列課程的學習,所以在本系列中出現的有些知識將不再重複。

第一節的屏幕課程教你一些關於圖形的基礎理論,然後用這些理論在屏幕或電視上顯示一個圖案。

1、入門

預期你已經完成了 OK 系列的課程,以及那個系列課程中在 gpio.s 和 systemTimer.s文件中調用的函數。如果你沒有完成這些,或你喜歡完美的實現,可以去下載 OK05.s 解決方案。在這裡也要使用 main.s 文件中從開始到包含 mov sp,#0x8000 的這一行之前的代碼。請刪除這一行以後的部分。

2、計算機圖形

正如你所認識到的,從根本上來說,計算機是非常愚蠢的。它們只能執行有限數量的指令,僅僅能做一些數學,但是它們也能以某種方式來做很多很多的事情。而在這些事情中,我們目前想知道的是,計算機是如何將一個圖像顯示到屏幕上的。我們如何將這個問題轉換成二進位?答案相當簡單;我們為每個顏色設計一些編碼方法,然後我們為在屏幕上的每個像素保存一個編碼。一個像素就是你的屏幕上的一個非常小的點。如果你離屏幕足夠近,你或許能夠辨別出你的屏幕上的單個像素,能夠看到每個圖像都是由這些像素組成的。

將顏色表示為數字有幾種方法。在這裡我們專注於 RGB 方法,但 HSL 也是很常用的另一種方法。

隨著計算機時代的進步,人們希望顯示越來越複雜的圖形,於是發明了圖形卡的概念。圖形卡是你的計算機上用來在屏幕上專門繪製圖像的第二個處理器。它的任務就是將像素值信息轉換成顯示在屏幕上的亮度級別。在現代計算機中,圖形卡已經能夠做更多更複雜的事情了,比如繪製三維圖形。但是在本系列教程中,我們只專注於圖形卡的基本使用;從內存中取得像素然後把它顯示到屏幕上。

不管使用哪種方法,現在馬上出現的一個問題就是我們使用的顏色編碼。這裡有幾種選擇,每個產生不同的輸出質量。為了完整起見,我在這裡只是簡單概述它們。

名字唯一顏色數量描述示例單色2每個像素使用 1 位去保存,其中 1 表示白色,0 表示黑色。灰度256每個像素使用 1 個字節去保存,使用 255 表示白色,0 表示黑色,介於這兩個值之間的所有值表示這兩個顏色的一個線性組合。8 色8每個像素使用 3 位去保存,第一位表示紅色通道,第二位表示綠色通道,第三位表示藍色通道。低色值256每個像素使用 8 位去保存,前三位表示紅色通道的強度,接下來的三位表示綠色通道的強度,最後兩位表示藍色通道的強度。高色值65,536每個像素使用 16 位去保存,前五位表示紅色通道的強度,接下來的六位表示綠色通道的強度,最後的五位表示藍色通道的強度。真彩色16,777,216每個像素使用 24 位去保存,前八位表示紅色通道,第二個八位表示綠色通道,最後八位表示藍色通道。RGBA3216,777,216 帶 256 級透明度每個像素使用 32 位去保存,前八位表示紅色通道,第二個八位表示綠色通道,第三個八位表示藍色通道。只有一個圖像繪製在另一個圖像的上方時才考慮使用透明通道,值為 0 時表示下面圖像的顏色,值為 255 時表示上面這個圖像的顏色,介於這兩個值之間的所有值表示這兩個圖像顏色的混合。

不過這裡的一些圖像只用了很少的顏色,因為它們使用了一個叫空間抖動的技術。這允許它們以很少的顏色仍然能表示出非常好的圖像。許多早期的作業系統就使用了這種技術。

在本教程中,我們將從使用高色值開始。這樣你就可以看到圖像的構成,它的形成過程清楚,圖像質量好,又不像真彩色那樣佔用太多的空間。也就是說,顯示一個比較小的 800x600 像素的圖像,它只需要小於 1 MiB 的空間。它另外的好處是它的大小是 2 次冪的倍數,相比真彩色這將極大地降低了獲取信息的複雜度。

樹莓派和它的圖形處理器有一種特殊而奇怪的關係。在樹莓派上,首先運行的事實上是圖形處理器,它負責啟動主處理器。這是很不常見的。最終它不會有太大的差別,但在許多交互中,它經常給人感覺主處理器是次要的,而圖形處理器才是主要的。在樹莓派上這兩者之間依靠一個叫 「郵箱」 的東西來通訊。它們中的每一個都可以為對方投放郵件,這個郵件將在未來的某個時刻被對方收集並處理。我們將使用這個郵箱去向圖形處理器請求一個地址。這個地址將是一個我們在屏幕上寫入像素顏色信息的位置,我們稱為幀緩衝,圖形卡將定期檢查這個位置,然後更新屏幕上相應的像素。

保存幀緩衝frame buffer給計算機帶來了很大的內存負擔。基於這種原因,早期計算機經常作弊,比如,保存一屏幕文本,在每次單獨刷新時,它只繪製刷新了的字母。

3、編寫郵差程序

接下來我們做的第一件事情就是編寫一個「郵差」程序。它有兩個方法:MailboxRead,從寄存器 r0 中的郵箱通道讀取一個消息。而 MailboxWrite,將寄存器 r0 中的頭 28 位的值寫到寄存器 r1 中的郵箱通道。樹莓派有 7 個與圖形處理器進行通訊的郵箱通道。但僅第一個對我們有用,因為它用於協調幀緩衝。

消息傳遞是組件間通訊時使用的常見方法。一些作業系統在程序之間使用虛擬消息進行通訊。

下列的表和示意圖描述了郵箱的操作。

表 3.1 郵箱地址

地址大小 / 字節名字描述讀 / 寫2000B8804Read接收郵件R2000B8904Poll不檢索接收R2000B8944Sender發送者信息R2000B8984Status信息R2000B89C4Configuration設置RW2000B8A04Write發送郵件W

為了給指定的郵箱發送一個消息:

1. 發送者等待,直到 Status 欄位的頭一位為 0。2. 發送者寫入到 Write,低 4 位是要發送到的郵箱,高 28 位是要寫入的消息。

為了讀取一個消息:

1. 接收者等待,直到 Status 欄位的第 30 位為 0。3. 接收者確認消息來自正確的郵箱,否則再次重試。

如果你覺得有信心,你現在已經有足夠的信息去寫出我們所需的兩個方法。如果沒有信心,請繼續往下看。

與以前一樣,我建議你實現的第一個方法是獲取郵箱區域的地址。

發送程序相對簡單一些,因此我們將首先去實現它。隨著你的方法越來越複雜,你需要提前去規劃它們。規劃它們的一個好的方式是寫出一個簡單步驟列表,詳細地列出你需要做的事情,像下面一樣。

1. 我們的輸入將要寫什麼(r0),以及寫到什麼郵箱(r1)。我們必須驗證郵箱的真實性,以及它的低 4 位的值是否為 0。不要忘了驗證輸入。2. 使用 GetMailboxBase 去檢索地址。4. 檢查頭一位是否為 0。如果不是,回到第 3 步。

我們來按順序寫出它們中的每一步。

1. 這將實現我們驗證 r0 和 r1 的目的。tst 是通過計算兩個操作數的邏輯與來比較兩個操作數的函數,然後將結果與 0 進行比較。在本案例中,它將檢查在寄存器 r0 中的輸入的低 4 位是否為全 0。

tst reg,#val 計算寄存器 reg 和 #val 的邏輯與,然後將計算結果與 0 進行比較。

2. 這段代碼確保我們不會覆蓋我們的值,或連結寄存器,然後調用 GetMailboxBase。

3. 這段代碼加載當前狀態。

ldr status,[mailbox,#0x18]

4. 這段代碼檢查狀態欄位的頭一位是否為 0,如果不為 0,循環回到第 3 步。

6. 這段代碼保存結果到寫入欄位。

str value,[mailbox,#0x20]

MailboxRead 的代碼和它非常類似。

1. 我們的輸入將從哪個郵箱讀取(r0)。我們必須要驗證郵箱的真實性。不要忘了驗證輸入。2. 使用 GetMailboxBase 去檢索地址。4. 檢查第 30 位是否為 0。如果不為 0,返回到第 3 步。6. 檢查郵箱是否是我們所要的,如果不是返回到第 3 步。

我們來按順序寫出它們中的每一步。

2. 這段代碼確保我們不會覆蓋掉我們的值,或連結寄存器,然後調用 GetMailboxBase。

3. 這段代碼加載當前狀態。

ldr status,[mailbox,#0x18]

4. 這段代碼檢查狀態欄位第 30 位是否為 0,如果不為 0,返回到第 3 步。

6. 這段代碼檢查我們正在讀取的郵箱通道是否為提供給我們的通道。如果不是,返回到第 3 步。

7. 這段代碼將答案(郵件的前 28 位)移動到寄存器 r0 中。

4、我心愛的圖形處理器

通過我們新的郵差程序,我們現在已經能夠向圖形卡上發送消息了。我們應該發送些什麼呢?這對我來說可能是個很難找到答案的問題,因為它不是任何線上手冊能夠找到答案的問題。儘管如此,通過查找有關樹莓派的 GNU/Linux,我們能夠找出我們需要發送的內容。

消息很簡單。我們描述我們想要的幀緩衝區,而圖形卡要麼接受我們的請求,給我們返回一個 0,然後用我們寫的一個小的調查問捲來填充屏幕;要麼發送一個非 0 值,我們知道那表示很遺憾(出錯了)。不幸的是,我並不知道它返回的其它數字是什麼,也不知道它意味著什麼,但我們知道僅當它返回一個 0,才表示一切順利。幸運的是,對於合理的輸入,它總是返回一個 0,因此我們不用過於擔心。

由於在樹莓派的內存是在圖形處理器和主處理器之間共享的,我們能夠只發送可以找到我們信息的位置即可。這就是 DMA,許多複雜的設備使用這種技術去加速訪問時間。

為簡單起見,我們將提前設計好我們的請求,並將它保存到 framebuffer.s 文件的 .data 節中,它的代碼如下:

.int 0 /* #16 GPU - 間距 */.int 0 /* #32 GPU - 指針 */.int 0 /* #36 GPU - 大小 */

這就是我們發送到圖形處理器的消息格式。第一對兩個關鍵字描述了物理寬度和高度。第二對關鍵字描述了虛擬寬度和高度。幀緩衝的寬度和高度就是虛擬的寬度和高度,而 GPU 按需要伸縮幀緩衝去填充物理屏幕。如果 GPU 接受我們的請求,接下來的關鍵字將是 GPU 去填充的參數。它們是幀緩衝每行的字節數,在本案例中它是 2 × 1024 = 2048。下一個關鍵字是每個像素分配的位數。使用了一個 16 作為值意味著圖形處理器使用了我們上面所描述的高色值模式。值為 24 是真彩色,而值為 32 則是 RGBA32。接下來的兩個關鍵字是 x 和 y 偏移量,它表示當將幀緩衝複製到屏幕時,從屏幕左上角跳過的像素數目。最後兩個關鍵字是由圖形處理器填寫的,第一個表示指向幀緩衝的實際指針,第二個是用字節數表示的幀緩衝大小。

在這裡我非常謹慎地使用了一個 .align 4 指令。正如前面所討論的,這樣確保了下一行地址的低 4 位是 0。所以,我們可以確保將被放到那個地址上的幀緩衝(FrameBufferInfo)是可以發送到圖形處理器上的,因為我們的郵箱僅發送低 4 位全為 0 的值。

當設備使用 DMA 時,對齊約束變得非常重要。GPU 預期該消息都是 16 字節對齊的。

到目前為止,我們已經有了待發送的消息,我們可以寫代碼去發送它了。通訊將按如下的步驟進行:

1. 寫入 FrameBufferInfo + 0x40000000 的地址到郵箱 1。2. 從郵箱 1 上讀取結果。如果它是非 0 值,意味著我們沒有請求一個正確的幀緩衝。3. 複製我們的圖像到指針,這時圖像將出現在屏幕上!

我在步驟 1 中說了一些以前沒有提到的事情。我們在發送之前,在幀緩衝地址上加了 0x40000000。這其實是一個給 GPU 的特殊信號,它告訴 GPU 應該如何寫到結構上。如果我們只是發送地址,GPU 將寫到它的回覆上,這樣不能保證我們可以通過刷新緩存看到它。緩存是處理器使用的值在它們被發送到存儲之前保存在內存中的片段。通過加上 0x40000000,我們告訴 GPU 不要將寫入到它的緩存中,這樣將確保我們能夠看到變化。

因為在那裡發生很多事情,因此最好將它實現為一個函數,而不是將它以代碼的方式寫入到 main.s 中。我們將要寫一個函數 InitialiseFrameBuffer,由它來完成所有協調和返回指向到上面提到的幀緩衝數據的指針。為方便起見,我們還將幀緩衝的寬度、高度、位深作為這個方法的輸入,這樣就很容易地修改 main.s 而不必知道協調的細節了。

再一次,來寫下我們要做的詳細步驟。如果你有信心,可以略過這一步直接嘗試去寫函數。

3. 發送 frame buffer + 0x40000000 的地址到郵箱。5. 如果回復是非 0 值,方法失敗。我們應該返回 0 去表示失敗。

現在,我們開始寫更多的方法。以下是上面其中一個實現。

1. 這段代碼檢查寬度和高度是小於或等於 4096,位深小於或等於 32。這裡再次使用了條件運行的技巧。相信自己這是可行的。

.globl InitialiseFrameBuffer

2. 這段代碼寫入到我們上面定義的幀緩衝結構中。我也趁機將連結寄存器推入到棧上。

ldr fbInfoAddr,=FrameBufferInfostr width,[fbInfoAddr,#0]str height,[fbInfoAddr,#4]str width,[fbInfoAddr,#8]str height,[fbInfoAddr,#12]str bitDepth,[fbInfoAddr,#20]

3. MailboxWrite 方法的輸入是寫入到寄存器 r0 中的值,並將通道寫入到寄存器 r1中。

4. MailboxRead 方法的輸入是寫入到寄存器 r0 中的通道,而輸出是值讀數。

5. 這段代碼檢查 MailboxRead 方法的結果是否為 0,如果不為 0,則返回 0。

5、在一幀中一行之內的一個像素

到目前為止,我們已經創建了與圖形處理器通訊的方法。現在它已經能夠給我們返回一個指向到幀緩衝的指針去繪製圖形了。我們現在來繪製一個圖形。

第一示例中,我們將在屏幕上繪製連續的顏色。它看起來並不漂亮,但至少能說明它在工作。我們如何才能在幀緩衝中設置每個像素為一個連續的數字,並且要持續不斷地這樣做。

將下列代碼複製到 main.s 文件中,並放置在 mov sp,#0x8000 行之後。

這段代碼使用了我們的 InitialiseFrameBuffer 方法,簡單地創建了一個寬 1024、高 768、位深為 16 的幀緩衝區。在這裡,如果你願意可以嘗試使用不同的值,只要整個代碼中都一樣就可以。如果圖形處理器沒有給我們創建好一個幀緩衝區,這個方法將返回 0,我們最好檢查一下返回值,如果出現返回值為 0 的情況,我們打開 OK LED 燈。

現在,我們已經有了幀緩衝信息的地址,我們需要取得幀緩衝信息的指針,並開始繪製屏幕。我們使用兩個循環來做實現,一個走行,一個走列。事實上,樹莓派中的大多數應用程式中,圖片都是以從左到右然後從上到下的順序來保存的,因此我們也按這個順序來寫循環。

   ldr fbAddr,[fbInfoAddr,#32]

strh reg,[dest] 將寄存器中的低位半個字保存到給定的 dest 地址上。

這是一個很長的代碼塊,它嵌套了三層循環。為了幫你理清頭緒,我們將循環進行縮進處理,這就有點類似於高級程式語言,而彙編器會忽略掉這些用於縮進的 tab 字符。我們看到,在這裡它從幀緩衝信息結構中加載了幀緩衝的地址,然後基於每行來循環,接著是每行上的每個像素。在每個像素上,我們使用一個 strh(保存半個字)命令去保存當前顏色,然後增加地址繼續寫入。每行繪製完成後,我們增加繪製的顏色號。在整個屏幕繪製完成後,我們跳轉到開始位置。

6、看到曙光

現在,你已經準備好在樹莓派上測試這些代碼了。你應該會看到一個漸變圖案。注意:在第一個消息被發送到郵箱之前,樹莓派在它的四個角上一直顯示一個漸變圖案。如果它不能正常工作,請查看我們的排錯頁面。

如果一切正常,恭喜你!你現在可以控制屏幕了!你可以隨意修改這些代碼去繪製你想到的任意圖案。你還可以做更精彩的漸變圖案,可以直接計算每個像素值,因為每個像素包含了一個 Y 坐標和 X 坐標。在下一個 課程 7:Screen 02[1] 中,我們將學習一個更常用的繪製任務:行。

via: https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/screen01.html

作者:Alex Chadwick[3] 選題:lujun9972 譯者:qhwdw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關焦點

  • 玩轉樹莓派之零—-了解樹莓派
    最近買了一塊樹莓派板子,想學習樹莓派玩法,如果您也跟我有一樣想法,那麼我們一起來學習吧,需要什麼基礎呢:基礎計算機知識
  • 計算機編程設計卡片式電腦:「樹莓派」
    樹莓派Raspberry Pi(中文名為「樹莓派」,簡寫為RPi,(或者RasPi / RPI)是為學生計算機編程教育而設計               卡片電腦樹莓派由註冊於英國的慈善組織「Raspberry Pi 基金會」開發,Eben·Upton/埃·厄普頓為項目帶頭人。
  • 終於有人講清楚了樹莓派是什麼
    打開APP 終於有人講清楚了樹莓派是什麼 發表於 2018-01-22 15:59:53 樹莓派能替代日常桌面計算機的多種用途,包括文字處理、電子表格、媒體中心甚至是遊戲。並且樹莓派還可以播放高至1080p的高清視頻。 我們希望將樹莓派推廣給全世界的青少年電腦愛好者,用於培養電腦程式設計的興趣和能力。
  • 【課程課題】優秀課程展示--《玩轉樹莓派》第一課
    >【教材與學生情況分析】本課是《樹莓派基礎課程》的第一節課,樹莓派由英國慈善組織「Raspberry Pi 基金會」開發,最初目的是為了提高學校計算機科學及相關學科的教育,現如今大多人拿樹莓派來做嵌入式開發,多用於物聯網、智能家居和人工智慧方面。
  • Appinventor與樹莓派:眼見為實
    今天我們來學習基於樹莓派APPInventor安卓應用開發--智能硬體第8課:眼見為實。接下來,我們一起來探究如何實現用手機控制樹莓派拍照。器材:樹莓派1塊,擴展板1塊,紅外傳感器  1個  USB攝像頭 1個。
  • 3D 列印的樹莓派蜘蛛機器人
    這個四足蜘蛛機器人以樹莓派作為「大腦」,身軀和四肢由 3D 列印。無需定製電路板,初學者即可完成組裝。不僅如此,教程還包含一段將近一個小時的組裝視頻。這對於想了解樹莓派、Python 編程的朋友來說是非常不錯的上手項目。
  • 如何利用樹莓派實現基於深度學習的目標檢測(入門)
    「樹莓派」,即Raspberry Pi(簡寫為RPi,或者RasPi / RPI) ,是為學習計算機編程教育而設計的,基於Linux系統的的微型電腦。自問世以來,受到眾多計算機發燒友和創客的追捧,曾經一「派」難求。儘管只有信用卡大小,但視頻、音頻等功能都可以實現,可謂是「麻雀雖小,五臟俱全」。
  • 玩轉電子DIY,樹莓派和單片機開發板你究竟pick誰?
    隨著科技的發展,開發板的選擇也越來越豐富,近年來,也出現了一方面是以Arduino和樹莓派為首的開源硬體陣營,另一方面,則是以STM32、51和S3C2440為首的傳統單片機開發板陣營。對於廣大電子愛好者來說其中爭論最為激烈的莫過於樹莓派和單片機的選擇問題。甚至有幾十年的電子設計愛好者認為:樹莓派能做的單片機不能做,而單片機能做的樹莓派都能完成。如此大膽的說法,想必會引來諸多爭議,那麼屏幕前的你在下結論前不妨一起先來看看關於樹莓派和單片機的一些DIY。
  • 樹莓派開發實戰 第2版 電子書
    樹莓派(Raspberry Pi)是一款基於Linux系統的、只有一張信用卡大小的卡片式計算機。研發樹莓派的起初目的是通過低價硬體和自由軟體來推動學校的基礎計算機學科教育,但很快樹莓派就得到計算機和硬體愛好者的青睞;他們用它學習編程,並創造出各種各樣新奇的、風靡一時的軟硬體應用。
  • 用樹莓派搭建個人伺服器,永久運行網站
    Raspberry Pi(中文名為樹莓派,簡寫為 RPi,(或者 RasPi / RPI) 是為學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基於 Linux。隨著 Windows 10 IoT 的發布,我們也將可以用上運行 Windows 的樹莓派。自問世以來,受眾多計算機發燒友和創客的追捧,曾經一「派」難求。
  • 只要個 U 盤大小的樹莓派!
    Raspberry Pi(中文名為樹莓派,簡寫為 RPi,(或者 RasPi / RPI) 是為學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基於 Linux。隨著 Windows 10 IoT 的發布,我們也將可以用上運行 Windows 的樹莓派。自問世以來,受眾多計算機發燒友和創客的追捧,曾經一「派」難求。
  • 樹莓派產品更新換代 DIUSTOU電子元器件樹莓派4測評來啦!
    尤其表現在計算機領域,從一開始的巨型計算機,到現在筆記本電腦的普及,計算機的形態可以說是發生了翻天覆地的變化。而2012年3月,微型電腦樹莓派的問世,更是在計算機領域引起了轟動,受到了眾多計算機學者以及廣大極客們的關注。發展至今,第四代樹莓派也已在市場上和大家見面了,國內代理樹莓派4的品牌更是多到數不勝數,知名品牌DIUSTOU電子元器件作為其中之一,更是承擔起了重任。
  • 樹莓派使用入門:可以使用樹莓派學習的 3 種流行程式語言 | Linux 中國
    在本系列的上一篇文章中,我分享了 教孩子們使用樹莓派編程[1] 的一些方式。理論上,這些資源並不局限於只適用於孩子們,成人也是可以使用的。
  • 樹莓派新手入門教程
    樹莓派(Raspberry Pi)是學習計算機知識、架設伺服器的好工具,價格低廉,可玩性高。
  • Arduino和樹莓派該怎麼選?單板計算機入門指南
    市面上有大量單板計算機(single-board computers)可供選擇,從超緊湊型可攜式開發板(ultra-compact portable developer boards),到基本可以看作是有各種接口的微型計算機的強大系統,現在讓我們深入了解一下:我們可以選擇怎樣的單板計算機,我們可以用單板計算機做些什麼。
  • DIY一個自拍相機:樹莓派 3 +觸控螢幕顯示器
    Z7Hednc一個使用樹莓派 3加觸控螢幕顯示器 、鏡頭和SenseHAT的有趣項目硬體整個項目使用了下列的零件:Z7Hednc樹莓派3型號B樹莓派觸控螢幕樹莓派相機SenseHAT電源32GB Micro SD 卡另外還配搭了定製雷射切割和摺疊亞克力盒
  • 樹莓派400評測:學習計算機硬體和程式語言的理想入門設備
    當聽到樹莓派時,很多人會想到它是業餘愛好者用來控制小型電路的計算機,或者用它來編寫Python或JavaScript代碼。之前,它確實是這樣的,知道最近樹莓派基金會發布了一款新的設備——樹莓派400。眾所周知,樹莓派是以單板機起家,而這次樹莓派400的發布讓不少人疑惑,為什麼樹莓派基金會突然改變了方向?然而,我們也能很快知道答案,樹莓派設備是由樹莓派基金會控制的,作為一個慈善機構,它的目的是讓更多的人「利用計算和數位技術的力量來工作,解決對他們來說很重要的問題,並創造性的表達自己」。
  • 5 個可在家中使用的樹莓派項目 | Linux 中國
    樹莓派 電腦可被用來進行多種設置用於不同的目的。顯然它在教育市場幫助學生在教室和創客空間中學習編程與創客技巧方面佔有一席之地,它在工作場所和工廠中有大量行業應用。我打算介紹五個你可能想要在你的家中構建的項目。媒體中心在家中人們常用樹莓派作為媒體中心來服務多媒體文件。
  • 一個U盤大小的樹莓派就夠了!
    Raspberry Pi(中文名為樹莓派,簡寫為 RPi,(或者 RasPi / RPI) 是為學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基於 Linux。隨著 Windows 10 IoT 的發布,我們也將可以用上運行 Windows 的樹莓派。自問世以來,受眾多計算機發燒友和創客的追捧,曾經一「派」難求。
  • 樹莓派(Raspberry)新手指南
    樹莓派(Raspberry Pi)是啥非常流行的卡片式單板機電腦,最初設計目標是用較為廉價的硬體和開源軟體為兒童提供一個計算機教育平臺。樹莓派(Raspberry Pi)能用來做什麼 樹莓派被開發出了千千萬萬種玩法,其中有些是純粹好玩;有些是為了學習計算機技術;有些是為了探索我們生活的世界;還有一些是幫助我們更好的生活。