# 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: `創客社`