---
# System prepended metadata

title: Arduino 2.4" TFT 遊戲機使用手冊 (For幹部)
tags: [創客社]

---

# Arduino 2.4" TFT 遊戲機使用手冊 (For幹部)

> 看完這份手冊應該可以幫助大家對社課要教的東西更有概念，還有一些想法的碎碎念XD，感謝耐心看完啦
> (電腦排版)


![](https://i.imgur.com/pei0jz9.gif)

## 1. 認識遊戲機

#### 概述
這台遊戲機使用Arduino Nano，而Nano的MCU為Atmega328P，運算速度為16MHz，2K ram。

所以這些資訊表示甚麼阿?


因為只有2K，對於顯示RGB的螢幕有些吃力，所以只能運算簡單的遊戲像是"貪吃蛇"或著是"打磚塊"等經典遊戲或著是"俄羅斯方塊"相對靜態的遊戲。

#### 功能

具備"電阻式觸控螢幕"，一個XY軸搖桿，6顆按鍵(4大2小)，一顆接到PWM的LED以及蜂鳴器。

#### 電源

翻到遊戲機背面你會發現有2顆電池，稱14500電池，14500是指他的外型大小。
每顆電池平均電壓為3.7V，可充電(拆下充電，另附充電器)，充飽時電壓會來到4.2V，電路中串聯兩顆，所以電壓來到7.4V。
但Arduino吃5V電，所以會接到Nano上的VIN，並進行降壓分出5V和3.3V的電，供給電路內部使用。

#### 螢幕

螢幕使用2.4"的TFT，具電阻式觸控螢幕，並使用ILI9341晶片，並走SPI通訊。


#### 程式

程式目前找到一些範例了，我貼在正下方給你們參考。

- [TicTacToe](https://create.arduino.cc/projecthub/nickthegreek82/arduino-touch-tic-tac-toe-game-792816?ref=search&ref_id=TFTLCD&offset=1)
- [Arduino Teris](https://vilaca.eu/handheld-arduino-color-console/)
- [Break Out](https://www.youtube.com/watch?v=Oh9vgomyuOI&list=PLvOT6zBnJyYFf5SGjcZTBgnoXs6GPDeW_&index=4&t=456s&ab_channel=BytesNBits)



### 1.1 照片

![](https://i.imgur.com/M792FLc.png)

![](https://i.imgur.com/RJdI0Pq.png)

![](https://i.imgur.com/DjDSXVT.png)

![](https://i.imgur.com/BgwVOTV.png)

### 1.2 電路圖
> 因為幾乎都是模組化的電路，所以電路相對簡單，差在中間使用一個Level Shifter而已XD
> 
![](https://i.imgur.com/Spo1rca.png)

  
| ==Arduino== | TFT | Touch | Buttons  | IMU | Buzzer | LED | Joystick   |
|:----------- | --- | ----- |:--------:| --- |:------:|:---:| ---------- |
| D0 (RX)     |     |       |          |     |        |     |            |
| D1 (TX)     |     |       |          |     |        |     |            |
| D2          |     |       |    X     |     |        |     |            |
| ~D3         |     |       |    Y     |     |        |     |            |
| D4          |     |       |    B     |     |        |     |            |
| ~D5         |     |       |          |     |        |  +  |            |
| ~D6         |     |       |          |     |   +    |     |            |
| D7          |     | T_CS  |          |     |        |     |            |
| D8          | RST |       |          |     |        |     |            |
| ~D9         | D/C |       |          |     |        |     |            |
| D10 (SS)    | CS  |       |          |     |        |     |            |
| ~D11 (MOSI) | SDI | DIN   |          |     |        |     |            |
| D12 (MISO)  | SDO | DO    |          |     |        |     |            |
| ~D13 (SCK)  | SCK | T_CLK |          |     |        |     |            |
| A0          |     |       |    A     |     |        |     |            |
| A1          |     |       |  SELECT  |     |        |     |            |
| A2          |     |       |  START   |     |        |     |            |
| A3          |     |       | JOYSTICK |     |        |     |            |
| A4 (SDA)    |     |       |          | SDA |        |     |            |
| A5 (SCL)    |     |       |          | SCL |        |     |            |
| A6          |     |       |          |     |        |     | Vertical   |
| A7          |     |       |          |     |        |     | Horizontal |


### 1.3 範例Code : [點我看一系列影片](https://www.youtube.com/playlist?list=PLvOT6zBnJyYFf5SGjcZTBgnoXs6GPDeW_)
> 這個系列講的相當不錯，除了我不會用到讀取SD卡以外其他都有

### 1.4 BOM表以及採買網址 : [來點我吧](https://docs.google.com/spreadsheets/d/1QH5kyLyDfYiKUglzCkDhLEFuEfrw4b1Xm_54XuRzqkE/edit#gid=0)

### 1.5 延伸想法

- 使用I2C或Serial實現裝置連線對戰
- 取個好聽點的名字
- 寫更好玩的遊戲

---

## 2. 關於課程

### 2.1 課程概述

這次的專案因為是遊戲機的性質，且整個電路不太可能請一個剛接觸的人焊，所以使用PCB的情況下，實作方面偏少，只有焊接部分而已。

下圖呈現出此課程各方面的占比。


```mermaid
pie 
    title Arduino TFT Gmae Console
    "焊接" : 15
    "程式(C++)" : 60
    "電子零件" : 10
    "Arduino知識" : 10
```

**但是，又不太希望我們到最後會偏向很資訊的地方，一來怕大家覺得無聊，二來許多不是電機系的人也會來上**
更希望這課程可以延伸到許多地方使用(Ex. 一日電機營)，所以需要抓出一個中間值，並列出我心目中的目標 : 

- 課程吸引人且好玩，有意願連續上，不中斷
- 成果為主要導向，會動就好，不用太多技術細節
- 課程可以延伸出到日後的自我學習
- 同儕間會互相分享，增加日後人氣 (Ex.哇，這甚麼酷東西，哪裡做的?)
- 可以結合課堂上的知識 (Ex.用它做出建男叫我們做的小遊戲，或是OOP教的)

**(有其他想法歡迎直接修改)**

### 2.2 課程大綱，順序
(按時間順序)

> [DEMO] -> 那一堂的成果

1. 焊接初嘗試 3hr 「林」
    - 課程介紹
    - DIP焊接練習&介紹
    - SMD焊接練習&介紹
    - **[DEMO]** : 小小焊接專案製作(50$以下焊接套件露天)

2. 動手製作遊戲機吧! 3hr 「邱」
    - 遊戲機組裝簡介
    - 組裝遊戲機
    - SMD元件焊接
    - 螢幕及周邊測試 (給他們跑我們寫好的程式)
    - **[DEMO]** : 完成組裝遊戲機

3. 遊戲機教學I 3hr 
    - 觸控螢幕使用I
    - 螢幕使用教學
    - 基礎Arduino (DigitalWrie, Read..., Tone)
    - 觸控螢幕，Button，Buzzer，LED
    - 螢幕動畫
    - **[DEMO]** : 遊戲機整合操作 (成功讀取搖桿，按鈕並顯示)

4. 遊戲機教學II 3hr 
    - 觸控螢幕使用II
    - 進階Arduino (PROGMEM, I2C, IMU, Serial)
    - PlatformIO (VScode)
    - **[DEMO]** : 遊戲機整合操作 (成功讀取搖桿，按鈕並顯示)
    - (待修)

5. 遊戲開發I 3hr 
    - 手把手寫程式
    - 基礎遊戲演算法教學
    - C++ OOP概念
    - **[DEMO]** : 動手寫個OOXX
    - [TicTacToe](https://create.arduino.cc/projecthub/nickthegreek82/arduino-touch-tic-tac-toe-game-792816?ref=search&ref_id=TFTLCD&offset=1)

6. 遊戲開發II 3hr 
    - 手把手寫程式
    - 用Serial實現兩位玩家連線對戰
    - **[DEMO]** : 遊戲PONG, Breakout
    
7. 遊戲開發III 3hr 
    - 自我操作寫程式


### 2.3 時數與時間安排

參考之前的，一堂課為3小時，18:30 ~ 21:30，但有意減少至2 ~ 2.5小時，程式容易讓人睡覺 Orz

### 2.4 先備知識

最好是有if-else, for-loop, switch-case簡單的概念啦，會用到的程式大概就大一上計概必修教的，學過python也OK。
所以應該會要求基礎C/C++ or Python, 不然到時候很多電機的再聽也覺得無聊。

給推薦資源 ： SoloLeran, W3School 給非電機自學
(給中文資源，怕非專業英文)

### 2.5 課程方式與人力

(待討論)

### 2.6 可以學到甚麼 ?

- 焊接(SMD,DIP)
- 基礎Arduino (Digital, Analog)
- C++語法
- 遊戲的寫法(架構和發想)
- 基礎遊戲演算法(以OOXX為例)
- 簡單的C++ OOP概念
- Platform IO使用方式
- Arduino通訊協定
- TFT LCD螢幕使用方式 (觸控，顯示，控制)

### 2.7 備料相關問題
>- [x] 表示已解決方案

- [ ] PCB焊SMD元件容易焊壞，如何估計損壞成本 ? （自己焊？）


----

## 3. 宣傳和形象
> 雖然好像不關我的事XD，但網路上有許多宣傳做的不錯，產品包裝蠻喜歡的

### 3.1 專案形象包裝

1. 也許可以設計一個包裝盒，不要用夾鏈袋裝
2. PCB的配色要符合社團的主顏色
3. 設計打開包裝的零件擺放和順序
4. 精美的GIF動畫
5. 如何後續延伸學習的


> 精美GIF動畫範例 (雖然我的沒有他的這麼有質感QQ
> FB宣傳時用類似這種GIF (?
> 
![](https://i.imgur.com/29hGScx.gif)

> 或這種
> 
![](https://i.imgur.com/k8pxGMB.gif)


## 4. SnapShot

![](https://i.imgur.com/J8oJnST.png)


## 5. 遊戲機特色及用途

- Arduino Nano : ATMEGA328P 16Mhz
- 2.4" 全彩觸控液晶螢幕 
- 7個使用者定義動作按鍵
- 1顆PWM接腳LED
- 兩軸蘑菇頭搖桿
- 蜂鳴器（許多經典遊戲）
- 三軸陀螺儀（MPU6050）
- 2600 mAh 可充式電池
- UART、I2C接腳，擴充更多模組
- 透明壓克力背蓋

用途：
- 復古遊戲機
- 計算機
- GUI介面控制周邊裝置
- 適合學習入門Arduino
- 練習程式的地方


### 6. 他可以做到的事
- 簡易鋼琴
- 彈珠遊戲（陀螺儀）
- HangMan
- Wordle
- Breakout
- Pacman
- 計算機
- 繪圖機（畫Function）
- Chess
- Teris
- Pong
- Snake
- TicTacToe
... 
... 
...


###### tags: `創客社`