Mason & PinHouse
Since 2023/08/29
Pico_Game 擴充套件
- 每套含一組 Pico_Game 擴充板及一片 2.8” 320x240 解析度的 TFT 彩色螢幕
- 不含 Pico /W 主板
動機:
前些日子大概都是玩 ESP32 為主,Pi Pico 也有關注,直到 2022.7 出了 Pico W 把 Wifi 加上了,到 2023.6 官方又把 BLE 功能釋放出來,就來認真玩了。
一開始的切入點是看到 Makecode Arcade 平台也悄悄地支援 R2 (rp2040) ,研究後,手動做了一版 Pico DIY 手把來玩。
接著就正式著手和朝斌大規劃 PCB 來用,由於是以 Arcade Game 為出發點,就取名叫 "Pico_Game"
2024/5/3
PicoGame 量產版為機器上件,
需自行用螺絲起子組裝背蓋及扣上按鈕鍵.
組裝說明,可見左邊影片
聯絡方式 :
- Mason Chen FB link : https://www.facebook.com/mason.chen.1420, 加好友發訊息
- Line ID : pschen1003
需注意
PicoGame 盒裝是不含開發板的,需自備或加購下面的開發板才能使用.
開發板部分,皆已焊上排針,可直接插上使用.
(Pico 需自外購買,記得 usb 是朝上的)
中間為 14500 鋰電池盒
(目前無充電功能)
Pico_Game 擴充板的應用
當 makecode arcade 的遊戲入門主機。 (只限使用 Pico 或 Pico_W 開發板)
當 Pico / Pico_W / ESP32-S3 Pico 的學習擴充板 (Arduino / micropython.. )
學習 arduino / micropython TFT 螢幕相關及 IOT 物聯網應用
當 NES 模擬器主機,需燒錄對應的主程式及相關 rom.
當 LVGL 的學習擴充板 (建議用 ESP32-S3 ,效能較佳)
使用 squareline studio 開發介面,結合 arduino + sensors 做螢幕顯示應用
Pico_Game 擴充板規格
為 Pi Pico/W 專用,可插上 2.8" 螢幕及內建按鈕的擴充板 (註一)
- 正面內建 2.8" 14 pin 320x240 TFT 螢幕插槽 (註二)
- 左右總共有九顆按鈕,分別為四顆方向鍵、A/B 鍵、MENU 鍵、START 鍵及 Reset 鍵
- 上下兩個獨立開關,上面為 14500 電源開關,下面為聲音開關
- 背面為 Pico 及 Pico_W 插槽
- 可用 microusb 或 14500 供電 (無充電功能)
- 內建蜂鳴器
- 支援 microSD 卡 (黑色 TFT 螢幕背面有 microSD 卡槽,而紅色螢幕背面的大卡不支援,需注意!!)
- 大小 : 170mm x 70mm x 28mm
註一:
只驗證官方板的 Pi Pico 或 Pi Pico W,其它副廠板子未做驗證,請使用時注意
註二:
螢幕模組使用請注意:
- 現階段尚未支援觸控,觸控功能需更換有觸控螢幕及相關軟體支援才行
- 軟體相關應用以 ILI9341 螢幕模組為主
- 其它腳位相容螢幕模組,如未驗證的 ILI9341 或 ST7789 模組 ,雖可自行更換,但相關螢幕驅動需自行額外設定,請特別注意!!
規劃過程:
一開始是要做一台 MakdeCode Arcade 硬體,其基本需求就是一片螢幕 + 上下左右 AB 及 Menu 七個按鈕
(可參考官網說明 : https://arcade.makecode.com/hardware/adding )
接下來的考量如下:
1- 螢幕可自行更換
螢幕大概就是最主要需要研究的部分,由於 Arcade 只支援 ST7735 或 ILI9341 驅動模組,一開始買的是 1.8" ST7735 來用,後來覺得太小了,大螢幕觀看效果還是較好,最後以 2.8" ili9341 320x240 為主要的螢幕
-> 由於陸陸續續買了不同的螢幕來驗證,為了方便更換,就規劃成可插拔的插槽。
(不同的模組自然要有對應的驅動及寫法)
2- 教學使用上的規劃
-> 由於電路相對較單純,一開始的 PCB 幾乎皆設計成 DIP 孔焊接,也許可當練習焊接的學習板
-> 電源供應單純化,就外接 usb 線或接 14500 電池使用,避免內建鋰電池壽命有限,產生維護上的麻煩
-> 獨立的聲音開關,課堂上可以讓學生直接關閉聲音,可控制課堂上的噪音。
3 - 軟體開發上
除一開始常用的 micropython 及 arduino 外,這次從一些專案中,反而多學了 MakeCode Arcade、CircuitPython 、VS Code 以及 GCC ARM 如何用,算是額外的收穫. 使用者也可參考使用
Pico_Game 腳位說明:
Button_A GP2
Button_B GP14
Button_UP GP8
Button_DOWN GP7
Button_LEFT GP15
Button_RIGHT GP9
Button_MENU GP1
Button_START GP0
Sound GP6
TFT 螢幕驅動採用 Pico-SPI0 腳位
適用的模組為 14 根腳位的,做螢幕顯示最少需以下八根
腳位不同的,請不要插上使用!
1- VCC 3.3V
2- GND GND
3- TFT_CS GP17 (SPI0 CSn)
4- TFT_RESET GP21
5- TFT_RS (DC) GP20
6- TFT_MOSI GP19 (SPI0 TX)
7- TFT_SCK GP18 (SPI0 SCK)
8- TFT_BL 3V3
9- TFT_MISO GP16 (SPI0 RX) 純當螢幕顯示使用,可不接
其它腳位說明:
- 右邊一組 I2C 腳位 (GP4 / GP5)
- 左邊一組 UART 腳位 (GP12 / GP13)
- 拉出三根 Analog 腳位 (GP26/GP27/GP28) (有留 MAX98357 I2S 模組腳位,但需自行焊接處理)
供電說明:
- 可直接用 usb 插在 Pico 供電或自行裝上 14500 電池來外接供電
- 目前未提供 14500 充電功能
Pico_Game 插上 Pico_W 後,可支援以下幾種軟體開發方式:
主要提供點亮 TFT 螢幕方式,請點選附屬的頁面參考
支援 MakeCode圖形化編程 (此為一開始開發的重點)
使用 https://arcade.makecode.com/ 來寫 arcade game
- 使用時,請先上傳硬體設定檔 (一般只需上傳一次即可)
- 用 MakeCode Arcade 開發完程式後,硬體選 R2 存成 .uf2 檔,再上傳至 Pico 即可
注意: MakecodeArcade 只支援單機版,不支援"多個玩家" 及" JACDAC" 擴充功能,請使用者注意.
2. Microblock 積木使用
用 microblock 積木來寫程式
3. MicroPython + Thonny IDE 開發
- 使用純文字的 Thonny IDE
3a. CircuitPython + Thonny IDE 開發
- 使用純文字的 Thonny IDE
4. Arduino IDE 開發 (進階使用)
- 使用螢幕,建議使用強大的 TFT_eSPI 來顯示
setup_pico_ILI9341.h
#include <User_Setups/setup_pico_ILI9341.h> // Select your setup file
5. Virtual Studio Code for Pico
- 使用 C/C++ 來開發程式,適合進階使用
6. GCC ARM 開發環境