麵包板可以讓你不需要焊接任何東西就能搭建電路。它是進行電子實驗的絕佳工具,但也可能有點令人生畏。創建專案可以幫助你在學習過程中保持動力。
有許多簡單的遊戲可以幫助你為初學者創建出色的項目 樹莓派你可以從西蒙開始玩的簡單遊戲之一。西蒙遊戲是 記憶遊戲 一系列燈光以隨機順序閃爍,玩家必須記住其閃爍順序。隨著玩家的進度,閃爍順序會逐漸增加。

快速連結
所需成分
首先,您需要以下資訊:
- Raspberry Pi 裝置。
- microSD 卡刷入作業系統 Raspbian作業系統 在她的。
- 4 個不同顏色的 LED 燈。
- 4 個電阻器(從 220 歐姆到 1 kOhm)。
- 4 個按鈕。
- 1 塊麵包板。
- 連接電纜用於連接一切。
您可以使用任何型號的 Raspberry Pi 來完成這個項目,但 Pi Zero 型號如果不進行焊接,就無法輕鬆連接到麵包板。無論使用哪種型號,您都需要電源、顯示器、鍵盤和滑鼠。
如果你之前沒有設定過 Raspberry Pi,你可以學習如何為本教學做好一切準備 Raspberry Pi 初學者指南.
在本教程中,您將編寫 Python 程式碼。您可以使用任何文字編輯器來編寫程式碼,但您可能會發現有更方便的編輯器。 Raspberry Pi OS 上已預先安裝了許多編輯器,而 Thonny 的設計也方便初學者使用。無論您使用哪種編輯器,您都需要能夠儲存和執行程式碼才能繼續學習本教學。
開始使用麵包板
樹莓派有兩排通用輸入/輸出 (GPIO) 引腳。這些引腳可用於將各種外部組件連接到樹莓派。有些引腳用於發送訊息,有些引腳用於供電,還有一些引腳用於為電子設備接地。

我們首先在麵包板中加入一個 LED。
首先將 GPIO 引腳連接到開發板。具體引腳號不限,只要是 GPIO 引腳,而不是電源或接地引腳即可。上圖是 GPIO 引腳圖,可以幫助您確定要使用的引腳。本教學使用 18 號引腳,也稱為 GPIO 24。
此引腳將為麵包板供電,並允許樹莓派與麵包板上的組件通訊。然後,將樹莓派的 6 號接腳連接到麵包板上的接地腳。這樣可以將麵包板接地,並允許創建電路。

樹莓派的供電電壓過高,無法直接連接 LED。使用電阻可以降低電壓,防止 LED 燒壞。將電阻的一端連接到與 GPIO 接腳相同的線路上,另一端連接到電路板的另一側。然後將 LED 的正極連接到電阻的後面。 LED 的負極可以直接連接到電阻的負極。最終效果應該如上圖所示。仔細檢查線路,然後打開樹莓派的電源。 LED 應該會亮起來。
現在,您已經使用 Raspberry Pi 建立了一個可以使用程式碼控制的電路。
使用 Python 程式碼控制燈光
本教學將逐步指導您完成程式碼,但如果您想隨時參考最終程式碼,請訪問 引擎收錄.
目前,電源已連接到 LED,但我們希望控制它的亮滅時間。以下 Python 程式碼將允許我們與開發板通訊。
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) red = 18 GPIO.setup(red, GPIO.OUT) GPIO.output(red, GPIO.LOW)
前幾行程式碼用於設定。 Raspberry Pi GPIO 庫已導入。這使我們能夠 作為 GPIO 將變數 RPi.GPIO 引用為 GPIO,以節省一些書寫工作。 GPIO 引腳模式配置為 板您不必使用此設置,但按照 GPIO 行中的順序引用引腳可能會更容易。
最後,我們將警告設為 false。這將停止不必要的警告。
最後三行控制 LED。紅色 LED 連接到 GPIO 腳位 18。無需記住這一點,變數將儲存在 紅色 那個地方。然後他告訴 GPIO.設置 我們的程式是向紅色引腳發送訊息。最後,我們將GPIO.output設定為紅色引腳。 低此程式運作時,燈會關閉。若要重新打開,請切換 GPIO.低 إ GPIO.高 ,然後再次執行該程式。
儲存程式碼,然後按一下 就業 若要查看其實際運行情況,如果程式碼編輯器中沒有「執行」按鈕,請以任意名稱(例如 myfilename)儲存並執行該命令。 python myfilename.py 在終端機視窗中。您需要先導航到與新 Python 檔案相同的目錄。
增加多個 LED 燈
要建立 Simon 遊戲,我們需要四個不同顏色的 LED。準備紅色 LED 的步驟與準備其他三個 LED 的步驟相同。您的接線應如下圖所示:

您的程式碼應如下所示:
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) red = 18 yellow = 22 green = 24 blue = 26 GPIO.setup(red, GPIO.OUT) GPIO.setup(yellow, GPpod. GPIO.output(red, GPIO.HIGH) GPIO.output(yellow, GPIO.HIGH) GPIO.output(green, GPIO.HIGH) GPIO.output(blue, GPIO.HIGH)
測試 LED 後,調整 GPIO.輸出 على GPIO.低 再次關閉每個 LED。
雖然電線的顏色無關緊要,但盡量使用有意義的顏色,以便更容易閱讀面板上的內容。例如,黑色電線通常用於接地線。在這個電路中,你可能需要將電線顏色與 LED 燈的顏色相匹配。
使用按鈕控制燈光
首先在開發板上新增一個按鈕。此按鈕需要連接到接地連接器和 GPIO 引腳。電路圖如下:

要讓按鈕控制 LED,我們需要在程式碼中添加一些程式碼。設定按鈕與設定 LED 類似,只是 GPIO 引腳設定為輸入而不是輸出。此代碼還會設定 Pi 上的內部上拉電阻,這是按鈕正常工作所必需的。
GPIO.setup(32, GPIO.IN, pull_up_down=GPIO.PUD_UP)
現在我們需要代碼來檢查按鈕是否被按下。
game = True while game: redButtonState = GPIO.input(32) if redButtonState == 0: GPIO.output(red, GPIO.HIGH) time.sleep(1) GPIO.output(red, GPIO.LOW)
我們希望我們的程式不斷檢查按鈕是否被按下,所以我們必須使用重複命令。 而由於迭代永遠不會為假,程式碼將繼續運行並檢查按鈕,直到我們透過按下停止按鈕或使用鍵盤快捷鍵手動終止程式。 按Ctrl + C.
接下來,為了更容易引用 GPIO 引腳發送的輸入,我們將此資訊保存在一個變數中 紅色按鈕狀態如果我們的按鈕輸入變為 0,我們就知道按鈕已被按下。
如果按下按鈕,紅色 LED 會亮起。然後,一秒鐘後,LED 會熄滅。為了添加此持續時間,我們使用函數 時間.睡眠 (1)為了使其工作,您需要匯入位於程式碼頂部的時間庫。
啟動一個按鈕後,你可以再增加三個按鈕,每個LED一個。你的程式碼應該如下所示:
import random import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) red = 18 yellow = 22 green = 24 blue = 26IO。 GPIO.setup(blue, GPIO.OUT) GPIO.setup(32, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(36, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(38,INIO.DIO.D pull_up_down=GPIO.PUD_UP) game = True while game: redButtonState = GPIO.input(32) if redButtonState == 0: GPIO.output(red, GPIO.HIGH) time.sleep(1) GPIO.output(red, GPIO.LOStateWr.Button, GP== GPIO.output(yellow, GPIO.HIGH) GPIO.input(40) if blueButtonState == 0: GPIO.output(blue, GPIO.HIGH) time.sleep(1) GPIO.output(blue, GPIO.LOW)
您的麵包板應該如下圖所示:

所有電子設備現已準備就緒。如有任何問題,請檢查程式碼是否有錯誤。請記住,您可以從 引擎收錄 如果你有問題!
創建遊戲
該項目已經涵蓋了使用麵包板所需了解的所有基礎知識,但將這些技能轉化為遊戲才能真正展示您的能力!
在《西蒙》中,玩家會看到一系列閃爍的燈光,必須記住圖案。遊戲一開始很簡單,只有一盞燈。每個關卡都會在圖案中加入隨機的燈光,讓遊戲更具挑戰性。
創建模式
這一步相當簡單。一個矩陣將保存我們的光圖案(模式)。第二個陣列將儲存 LED 的 GPIO 引腳(燈)。在遊戲的每次迭代中,一個新的隨機光將被添加到圖案數組的末尾。我們將使用函數 隨機數.randint() 選擇 0 至 3 之間的數字,代表 4 個 LED。
pattern = [] lights = [red, yellow, green, blue] while game: pattern.append(random.randint(0,3))
接下來,我們需要打開燈光來顯示圖案。
while game: pattern.append(random.randint(0,3)) for x in pattern: GPIO.output(lights[x], GPIO.HIGH) time.sleep(1) GPIO.output(lights[x], GPIO.LOW) time.sleep(0.5)
兩盞燈之間一定要停頓一下。這樣更容易看出同一盞燈是否在圖案中連續使用。
取得玩家輸入
接下來,遊戲必須等待玩家猜出燈光的順序。程式必須檢查圖案中的每個燈光,並等待玩家按下按鈕。這需要嵌套迭代:
for time.sleep(1) GPIO.output(red, GPIO.LOW) if yellowButtonState == 0: GPIO.output(yellow, GPIO.HIGH) waitingForInput = False time.sleep(1) GPIO.output(yellow, GPIO.Input = False time.sleep(1) GPIO.output(yellow, GPIO.LOWLOWr. waitingForInput = False time.sleep(1) GPIO.output(green, GPIO.LOW) if blueButtonState == 0: GPIO.output(blue, GPIO.HIGH) waitingForInput = False time.sleep(1) GPIO.output(blue, GPIO.output(blue, GPIO。
上面的大部分程式碼重用了我們為測試按鈕而編寫的程式碼。
驗證玩家輸入
從這裡開始,檢查玩家是否輸入了正確的圖案就變得非常容易了。每次玩家按下按鈕時,遊戲都會檢查它是否是正確的按鈕。為此,加入一條語句 if 其他每個按鈕的條目:
如果 redButtonState == 0:GPIO.output(red, GPIO.HIGH) waitingForInput = False 如果 x != 0:game = False time.sleep(1) GPIO.output(red, GPIO.LOW)
多變的 x 從重複 對於 它有下一個燈的編號。紅色 LED 位於位置 0,即編號 0。如果玩家在圖案為 XNUMX 時按下紅色 LED 按鈕,則他正確!否則,他將輸掉遊戲。變數配置將 遊戲 على 假 停止遊戲循環並結束程式。
恭喜!您已經從零開始創建了一款遊戲!
創建遊戲比僅僅添加 LED 和按鈕更需要為項目添加更多程式碼。努力完成一個可以向親朋好友展示的最終項目,可以激勵你保持動力。
這個遊戲相當簡單。挑戰自己,改進一下基本設計。或許你可以設計一個,讓玩家輸掉遊戲時燈光閃爍。或許你可以挑戰一下,為遊戲添加一些聲音。你的想像力才是唯一的限制!
嗯,你的想像力和你必須使用的設備。現在你可以看看 使用 Raspberry Pi 建構智慧電視的最佳項目










