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

- 128×640.96 吋單色螢幕的像素
- 6 顆上下左右與 A、B 鍵
- ESP32有 Wi-Fi 與藍牙的微控制器
- 1 片自己設計的電路板
小獅王學習機玩「太空大戰」:上下移動,按 A 鍵開火。
開機
口袋裡的小遊戲機
一片巴掌大的白色電路板,左上角是螢幕,下面是方向鍵和 A、B 鍵,電路板上印著一隻小獅子。
背面是 ESP32 開發板和鋰電池,插 USB 就能充電,拔掉也能玩。
裡面有什麼
一片電路板
五種零件

- 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 鍵被按下」。
開發過程
從麵包板到外殼

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

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

2022.06組裝
電路板回來了
焊上充放電模組、按鍵、螢幕與蜂鳴器,背面裝上鋰電池。

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

2022.06外殼
3D 列印外殼
印出藍色外殼,按鍵的位置對齊電路板。
熱風槍
用熱風處理小零件
熱風槍
用熱風加熱電路板上的貼片零件。
做一台遊戲機會學到
從電路到程式
- 電路板設計。原理圖、零件封裝、走線,一路畫到可以送去打樣。
- 焊接。把螢幕、按鍵、模組一顆顆焊上電路板。
- 數位輸入與上拉電阻。按鍵為什麼按下是 LOW。
- 螢幕與像素。128×64 個點,每個點只有亮或暗,圖案要一點一點畫。
- 電源管理。鋰電池怎麼充電、怎麼升壓給 ESP32 用。
- 產品設計。外殼、按鍵手感、尺寸,讓它真的能拿在手上玩。
相簿
製作過程
完成的小獅王學習機,旁邊是一枚十元硬幣
打樣回來的電路板和所有零件
背面裝上鋰電池
電路板的 3D 預覽:背面
電路板上的小獅王標誌
裝進外殼
星光瓶一片小晶片控制的燈:星光瓶
光立方用程式控制 64 顆 LED
OTTO 機器人會走路的機器人:OTTO