維基少年:樹莓派/樹莓派尖叫果凍寶貝教程
在本教程中,您將製作一個尖叫的果凍寶貝!或者,如果您住在英國或澳大利亞以外的地方,可以使用軟糖熊。
您的導師應該已經為您準備了樹莓派的 SD 卡。如果沒有,請閱讀最後一節“給導師”。
Things that appear on the screen or need to be typed in are written like this.在每行的末尾,您通常需要按 ↵ Enter 鍵。
當您開啟樹莓派時,幾秒鐘後它會要求您登入。您需要鍵入使用者名稱 (pi),然後按 ↵ Enter 鍵,然後輸入密碼 (raspberry),然後按 ↵ Enter 鍵。
raspberrypi login: pi
password: raspberry
請注意,輸入密碼時,密碼不會顯示在螢幕上。
從現在開始,您應該假設您始終需要在每行的末尾按 ↵ Enter 鍵。
登入後,螢幕會變黑幾秒鐘,然後桌面應該會顯示出來,您可以用滑鼠移動指標。如果不行,輸入
startx

找到“IDLE”圖示並雙擊它。如果您難以雙擊,您可以右鍵單擊它並選擇“開啟”。
您需要的是 IDLE,而不是 IDLE3。
IDLE 是一個用於編寫程式的程式,使用 Python 版本 2 程式語言。您對 Python 越加精通,您將使用的功能就越有用。但是,可以使用文字編輯器(如 nano)來編寫程式,而無需 IDLE。還有其他版本的本教程使用 nano 代替 IDLE。
IDLE3 用於 Python 的版本 3。本教程是為版本 2 編寫的。
輸入以下程式
print "Hello World"
使用“檔案”選單、“儲存”儲存它,然後雙擊進入 python 資料夾,然後進入 jellybaby 資料夾。將程式儲存為
jellybaby.py

在桌面上,雙擊 LX Terminal 圖示。將出現一個新的黑色視窗。
透過輸入以下內容進入 python/jellybaby 資料夾
cd python/jellybaby
透過輸入以下內容檢視此資料夾中的檔案
ls
您應該看到您的 jellybaby.py 程式,一些 .wav 聲音檔案(這些是我們稍後將使用的尖叫聲)和一個 examples 目錄(如果您想作弊,您將在那裡找到一個完全工作的尖叫果凍寶貝程式!)。
現在執行您的程式
sudo python jellybaby.py
計算機應該響應
Hello World
讓我們快速瞭解一下我們在那做了什麼
sudo 表示“超級使用者執行”。對於許多程式來說,這並不重要,但我們很快就會使用連線到樹莓派 GPIO 埠(通用輸入輸出)的電子裝置,您需要成為超級使用者才能這樣做。
不利的一面是,以超級使用者身份執行程式允許您執行可能會破壞計算機的操作 - 超級使用者就像一個無所不能的超級英雄。由於樹莓派是一款非常便宜的計算機,因此這並不重要,但在其他昂貴的計算機上,您可能需要對 sudo 更小心。
python 指示計算機執行用 Python 程式語言編寫的程式。jellybaby.py 是您的程式的名稱。
| 請再次檢查您是否插在了正確的引腳上。如果弄錯,您可能會永久損壞您的樹莓派。請您的導師檢查。 |
在連線電線到樹莓派之前,你應該先關閉樹莓派。請確保你在拔掉電源之前,安全地關閉樹莓派。
你可以使用桌面右下角的紅色電源圖示,或者在 LXTerminal 視窗(黑色視窗)中輸入
sudo shutdown –h now
sudo是超級使用者命令,再次確認。shutdown表示關機。–h表示停止(與–r表示重啟相反)now表示現在!(如果還有其他人透過網路使用你的樹莓派,你可以說+5而不是 now,這樣可以發出五分鐘的警告)。


引腳分為兩排。偶數引腳位於板的邊緣,奇數引腳位於另一排。你需要從左側的 1 開始以 2 為單位計數,所以計數為 1、3、5、7 等等。
識別 引腳 25(GND)很容易出錯,尤其是在有 40 個引腳的 Raspberry Pi “Plus” 型號上!在舊的 Model B 和 Model A 型號上,只有 26 個引腳,識別起來就容易多了 – 引腳 25(GND)是位於右側末端的引腳。
步驟 1:等待樹莓派自動關機,然後拔掉電源線。
步驟 2:將一個金屬回形針展開,使其變成一根長而直的導線。
步驟 3:取一根母對母跳線,將展開的回形針插入一端。
步驟 4:重複此操作兩次,這樣你就有兩根導線,兩端都插入了展開的回形針。較大的回形針可能難以插入。你的導師可能已經幫你插入了,或者你可以請你的導師用鉗子幫忙插入。
步驟 5:現在將跳線的另一端分別連線到 Raspberry PI 的 GPIO 引腳的 引腳 3(I2C1 SDA) 和 引腳 25(GND) 上。
將電源線插回,等待樹莓派開機,然後登入(pi / raspberry;如果你的桌面沒有自動啟動,別忘了 startx)。
從桌面啟動 IDLE(雙擊),然後透過轉到“檔案”選單、“最近開啟的檔案”並選擇 jellybaby.py 來載入你的舊程式。
更改程式,使其讀取
import time
import RPi.GPIO as GPIO
import os
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(3,GPIO.IN)
print "Hello World"
while True:
if GPIO.input(3) == False:
print "Ouch!"
time.sleep(1)
所有大寫字母都非常重要。你需要確保所有大寫字母都確實是大寫字母,所有小寫字母都確實是小寫字母。這被稱為區分大小寫。
while 和 if 行下的空格也很重要。你需要按下 空格鍵 來確保它們對齊。這些縮排被稱為程式碼塊。程式碼塊可以重複,程式也可以決定執行或跳過程式碼塊。我們使用四個空格來縮排每個程式碼塊;一些程式設計師更喜歡使用兩個空格或其他數字。
import 行允許我們在我們的程式中使用其他人的小程式。這些小程式被稱為庫。time 庫允許我們告訴計算機等待(sleep)。GPIO 庫允許我們使用 GPIO 引腳。os 庫允許我們呼叫其他程式,例如音樂播放器,但我們目前沒有使用它。
while 告訴我們重複一個程式碼塊。True 告訴計算機始終執行某些操作。
if 提問。要問的問題是兩根導線是否接觸;引腳 3(I2C1 SDA) 是否連線到電氣接地?將輸入引腳連線到接地會導致值 False。
注意使用兩個等號 ==。一個等號用於設定值,例如 a=3,這意味著每次計算機看到 a 時,它都知道它的值為 3。兩個等號用於比較兩個事物。
time.sleep(1) 表示等待 1 秒。
儲存程式,然後從桌面啟動 LXTerminal(雙擊),然後輸入
cd python/jellybaby
sudo python jellybaby
程式將列印 Hello World!然後它將等待。
將回形針導線連線在一起。你應該會看到它顯示
Ouch!
鬆開導線,等待幾秒鐘,然後再次將導線連線在一起。每次都應該會顯示 Ouch!。
如果它不起作用,請檢查你的程式是否正確輸入,檢查你是否儲存了它,並檢查你的導線是否被任何東西覆蓋,可能阻止了電流流動。
當你玩夠了的時候,按住 CTRL 鍵,然後按 C 來停止程式。這被稱為“中斷”或“鍵盤中斷” – 你是在要求計算機暫停,並使用鍵盤中斷程式。有時你會看到 Ctrl 和 C 寫成 CTRL-C 甚至 ^C。你不需要使用 Shift 鍵 – C 實際上是小寫 c。
讓我們更改程式,使其發出聲音,而不是僅僅在螢幕上列印“Ouch!”。更改
print "Ouch!"
…為
os.system('omxplayer scream-c.wav')
|
|
|
| 無法播放此檔案?請檢視 媒體幫助。 | |
確保揚聲器已連線,已開啟,並且音量至少開到一半(一些揚聲器沒有開/關按鈕或音量控制)。
轉到 LXTerminal 視窗,再次執行程式。
將導線連線在一起,你應該會聽到尖叫聲!

取一個果凍寶貝,將導線插入其中。
你需要讓它們在果凍寶貝內部交叉,但不要完全接觸。
現在,當你用力按下果凍寶貝時,它就會尖叫!
你可能需要用力按下 – 足夠用力地穿過果凍寶貝的粘稠中間部分。
用力按下意味著果凍寶貝可能在三到四次按下後就變得毫無用處。如果你不是糖尿病患者,也不對果凍寶貝過敏,你可以在果凍寶貝被壓扁後吃掉它們!
|
|
|
| 無法播放此檔案?請檢視 媒體幫助。 | |
|
|
|
| 無法播放此檔案?請檢視 媒體幫助。 | |
|
|
|
| 無法播放此檔案?請檢視 媒體幫助。 | |
你的程式為音符 C 播放尖叫聲。還有音符 D 和 E 的尖叫聲檔案。嘗試更改你的程式以使用不同的音符。看看你和你的同學是否能演奏一首曲子,例如“小羊羔” (EDCDEEE,DDD,EEE,EDCDEEE,EDDEDC)。
找到 GPIO 引腳列表 (http://raspi.tv/download/RPi.GPIO-Cheat-Sheet.pdf)。你能連線更多電線,讓一臺樹莓派同時連線到兩三個果凍寶貝,演奏不同的音符嗎?
- ×1 樹莓派,任何型號,帶顯示器、滑鼠和鍵盤
- ×1 SD 或 Micro SD 卡,裝有最新版本的 Raspbian 作業系統
- ×1 揚聲器或一對揚聲器,有源(可充電移動 MP3 揚聲器可以,PC 揚聲器也可以)
- ×2 母對母 跳線 – 建議最小長度 20 釐米(約 8 英寸)
- ×2 小金屬回形針(不含塑膠塗層)(如果你使用大回形針,你可能需要使用鉗子將它們插入跳線)
多個果凍寶貝 – 每個工作站至少允許 6 個,但最好一次只發一個或兩個!
瞭解你的學生中哪些是糖尿病患者或對果凍寶貝過敏。
下載並解壓縮資料夾結構、尖叫聲樣本和示例程式。為此,從連線網際網路的 Raspberry Pi 上登入(pi / raspberry)並執行
cd
wget http://www.cotswoldjam.org/downloads/2014-11/jellybaby.zip
unzip jellybaby.zip
這將建立
~/python/
~/python/jellybaby/
~/python/jellybaby/scream-c.wav
~/python/jellybaby/scream-d.wav
~/python/jellybaby/scream-e.wav
~/python/jellybaby/example/
~/python/jellybaby/example/jellybaby.py
請注意,有一個關於 GPIO 引腳的優秀圖表,可在此處獲得:http://raspi.tv/download/RPi.GPIO-Cheat-Sheet.pdf
作者:Cotswold Raspberry Jam 的 Andrew Oakley,www.cotswoldjam.org,CC-BY-SA ![]()
最新版本始終位於:http://www.cotswoldjam.org/tutorials/
基於“讓果凍寶寶尖叫!”,由樹莓派基金會提供,CC-BY-SA http://www.raspberrypi.org/learning/screaming-jellybaby/ https://creativecommons.org/licenses/by-sa/4.0/
本教程的原始 PDF 可在維基共享資源上獲得:Jellybaby-tutorial.pdf
import time
import RPi.GPIO as GPIO
import os
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(3,GPIO.IN)
print "Hello World"
while True:
if GPIO.input(3) == False:
os.system('omxplayer scream-c.wav')
time.sleep(1)
|
|
|
| 無法播放此檔案?請檢視 媒體幫助。 | |
|
|
|
| 無法播放此檔案?請檢視 媒體幫助。 | |
|
|
|
| 無法播放此檔案?請檢視 媒體幫助。 | |
