Skip to content

Latest commit

 

History

History
89 lines (87 loc) · 4.62 KB

readme.md

File metadata and controls

89 lines (87 loc) · 4.62 KB

尋找顏⾊的⼩恐⿓

動機:

⼩恐⿓因為linux考不及格,被⽣氣的助教們變成灰⾊的了!!⼩恐⿓聽說只要穿越了 ⼤森林,抵達魔法洞⽳,就可以找回顏⾊,快來幫助⼩恐⿓找回顏⾊吧!

功能:

有⼀台復古式遊戲台,按下巨型ENTER鍵後,即可開始遊玩遊戲。分數是以存活時間計算,一旦撞到障礙物之後分數會歸零,按按鍵就可以重新遊玩。開始遊玩後,如果每撐過一段時間,燈就會亮⼀種顏⾊,成功撐過最終目標時間的話,燈就會三個都亮起來,代表小恐龍都把顏色找回來了~

硬體設備:

  • Raspberry pi 3
  • 麵包板專⽤線
  • 麵包板
  • 巨型ENTER鍵
  • 杜邦線
  • IR感測器(180度)
  • led燈
  • 小型按鍵
  • SPI-TFT screen
  • 桌上型電腦螢幕
  • register
  • 紙箱
  • moli捐贈的電腦螢幕

軟體

  • python
  • pygame

前置下載作業

  • pygame
  • python
  • vim
  • gpiozero
  • vnc -> 畫面連接

執行過程

  • 程式碼
    • dino.py:恐龍遊戲
    • 測試檔
      • redLED.py:模擬紅色led燈亮起
      • greenLED.py:模擬綠色led燈亮起
      • yellowLED.py:模擬黃色led燈亮起
      • Button.py:模擬開始按鈕 -> 無法套用
  • 硬體準備
    • raspberry pi環境組裝

    • 遊戲機台組裝

      • 紙箱組裝
    • 螢幕

      • 用vcn連接筆電跟raspberry pi,讓 user 可以在筆電操縱raspberry pi 的 UI 畫面。
    • 紅外線感應裝置 -> fail

    • LED燈裝置:

      • 使用同樣的電路分別接3個顏色的燈泡
      • 藍色:樹梅派(GPIO 17) 綠色:(GPIO 27) 紅色: (GPIO 22)
      • 電路圖: 螢幕擷取畫面 2024-01-04 173329
    • 遊戲開始按鈕 ->從小按鈕變成巨型ENTER鍵(感謝熱心助教贊助)

DinoGame START!

  • sudo git clone https://github.com/110213018/DinoGame下載dinoGame資料夾
  • sudo apt-get install python3-gpiozeroLED💡會用到的模組
  • pip install pygame
  • 執行程式碼:python3 dino.py
  • 按下巨型ENTER鍵!!

心得回饋&遇到的困難

  1. raspberry pi環境組裝: 因為在製作過程中,raspberry pi疑似因為過熱燒壞了,所以再重新設定raspberry pi上花了很多的心力跟時間。
  2. 螢幕: 本來是想外接 SPI-TFT 螢幕來顯示遊戲,但是因為螢幕本身顯示器比較弱,也沒有準備SD卡,所以無法使用。最後是把SPI-TFT 螢幕改用桌上型電腦螢幕,再用vcn的方式,連接筆電跟raspberry pi,讓 user 可以在筆電操縱raspberry pi 的 UI 畫面。
  3. 遊戲機台組裝: 因為螢幕一直更換,所以重做了3次。
  4. 紅外線感應裝置: 我們使用的是型號為MH-B的IR感測器,疑似因為放了長時間受潮導致故障,不知道為甚麼接收器一直接受到來源不明的訊號,後續有嘗試上網搜尋、撰寫程式碼,但就算程式碼成功編譯結果一樣無法正常運作(都是紅外線有被東西擋住造成反射),最後經過長時間的奮鬥後不得已宣告放棄。
  5. LED燈裝置: 從零開始學習接這些電路,發現這些東西會因為許多細小的因素被影響,像按鈕插入麵包版的深度或濕度等等~ 所以偶爾換個環境做也許會有新的發現!
  6. dinoGame遊戲: 原本是用ursino開發遊戲,但是當要在樹莓派上運行時,跳出提示說要安裝Panda3d,但在安裝上有困難,所以最後決定用pygame的形式表現出小恐龍遊戲。再加上,原本要外接的迷你螢幕,因為性能不足,無法顯示遊戲,所以最後決定用HDMI線的方式連接到性能較完善的電腦螢幕,最後就成功了~!!
  7. 小按鈕裝置: 在麵包版上新增一個按鈕,功能為按下後,觸發遊戲開始。但是不知道怎麼讓dino.py知道這個鍵,所以最後用大型ENTER鍵代替小按鈕裝置變成開始鈕。
  8. 程式碼整合: 大家一起討稐~

工作分配

  • 許湘蝶:紅外線感測裝置、LED燈裝置、創意發想、小按鈕裝置
  • 楊于葳:LED燈裝置、材料購買、創意發想、小按鈕裝置
  • 陳宣閔:dinoGame、撰寫README、創意發想
  • 劉仁傑:遊戲機台組裝、材料購買
  • 許家維:dcard宣傳
  • 感謝Josh、蓬萊人偶等熱心助教的指導~^^

善用所學

linux系統指令、python、raspberry pi、os、基礎物理

參考資料