← 專案持續維護2022科技

掌上遊戲機・ESP32

小獅王學習機

自己畫電路板的掌上遊戲機:ESP32、0.96 吋單色螢幕、六顆按鍵、蜂鳴器和鋰電池,裝進 3D 列印的外殼。從麵包板接線、電路板設計、熱風槍焊接到寫遊戲,一台機器走完一整趟硬體開發。

小獅王學習機
  • 128×640.96 吋單色螢幕的像素
  • 6 顆上下左右與 A、B 鍵
  • ESP32有 Wi-Fi 與藍牙的微控制器
  • 1 片自己設計的電路板

小獅王學習機玩「太空大戰」:上下移動,按 A 鍵開火。

開機

口袋裡的小遊戲機

一片巴掌大的白色電路板,左上角是螢幕,下面是方向鍵和 A、B 鍵,電路板上印著一隻小獅子。

背面是 ESP32 開發板和鋰電池,插 USB 就能充電,拔掉也能玩。

裡面有什麼

一片電路板
五種零件

原理圖:ESP32、螢幕、按鍵、蜂鳴器、充電
原理圖:ESP32、螢幕、按鍵、蜂鳴器、充電
  • ESP32整台機器的大腦,有 Wi-Fi 與藍牙,用 Arduino 寫程式。
  • OLED 螢幕0.96 吋、128×64 像素的單色螢幕,用 SPI 介面接到 ESP32。
  • 按鍵與蜂鳴器六顆按鍵負責操作,小小的蜂鳴器發出聲音。

玩一下

按下按鍵
腳位會變成 LOW

點畫面上的按鍵,或用鍵盤的方向鍵和 Z 鍵玩玩看。右邊會顯示每一顆按鍵接在 ESP32 的哪一隻腳,按下去時讀到什麼。

鍵盤也可以玩:方向鍵移動、Z 開火

按鍵與腳位:沒按是 HIGH,按下去變 LOW

    分數 0 最高 0

    螢幕只有 128×64 個點,每個點只有亮或暗。遊戲裡的太空船、垃圾、子彈,都是一個一個點畫出來的。

    按鍵腳位照小獅王學習機 v1.11 的程式:上 2、下 4、左 15、右 13、A 12、B 14,都設成內建上拉電阻。遊戲是簡化的示意版本。

    為什麼按下去是 LOW

    沒按的時候
    腳位也要有個答案

    按鍵一端接 ESP32 的腳位,另一端接地。沒按的時候,腳位如果什麼都沒接,讀到的值會飄來飄去,一下 HIGH、一下 LOW。

    程式裡把六隻腳都設成 INPUT_PULLUP:晶片內部用一個電阻把腳位「拉」到高電位,沒按就穩穩地讀到 HIGH;按下去,腳位直接接地,讀到 LOW。所以程式寫的是 !digitalRead(pin_A):讀到 LOW,才表示「A 鍵被按下」。

    開發過程

    從麵包板到外殼

    1. 電路板的 3D 預覽

      2022.05電路板

      畫電路板

      用 KiCad 畫原理圖與電路板,五天裡存了十幾個版本備份。

    2. 麵包板上的測試線路

      2022.06測試

      先在麵包板上接

      把螢幕、按鍵、ESP32 接在麵包板上,確定程式和腳位都對。

    3. 焊上充放電模組

      2022.06組裝

      電路板回來了

      焊上充放電模組、按鍵、螢幕與蜂鳴器,背面裝上鋰電池。

    4. 第一次開機

      2022.06開機

      第一次開機

      插上 USB,螢幕亮了;寫好「太空大戰」,小獅王學習機 v1.11。

    5. 3D 列印的外殼

      2022.06外殼

      3D 列印外殼

      印出藍色外殼,按鍵的位置對齊電路板。

    熱風槍

    用熱風處理小零件

    • 熱風槍

      用熱風加熱電路板上的貼片零件。

    做一台遊戲機會學到

    從電路到程式

    • 電路板設計。原理圖、零件封裝、走線,一路畫到可以送去打樣。
    • 焊接。把螢幕、按鍵、模組一顆顆焊上電路板。
    • 數位輸入與上拉電阻。按鍵為什麼按下是 LOW。
    • 螢幕與像素。128×64 個點,每個點只有亮或暗,圖案要一點一點畫。
    • 電源管理。鋰電池怎麼充電、怎麼升壓給 ESP32 用。
    • 產品設計。外殼、按鍵手感、尺寸,讓它真的能拿在手上玩。

    相簿

    製作過程

    • 完成的小獅王學習機,旁邊是一枚十元硬幣

    • 打樣回來的電路板和所有零件

    • 背面裝上鋰電池

    • 電路板的 3D 預覽:背面

    • 電路板上的小獅王標誌

    • 裝進外殼

    想做一台自己的遊戲機

    學校、老師或營隊想把小獅王學習機帶進課堂,歡迎來信。