Build an inexpensive handheld Arduino color console
Arduino Pro Mini 3.3V 8 MHz
As most inexpensive LCDs work at 3.3v the Arduino for this project works at 3.3v too.
At only 8MHz the Arduino Pro Mini 3.3v is slow by today’s standards but fast enough for most classic games.
Other Arduinos or compatibles can be used in its place. If an 5v Arduino like the Uno is used you must use a Level shifter from 5v to 3.3v or you’ll risk frying the TFT.
2.2″ TFT 240×320 SPI
This high quality 2.2″ TFT screen has an integrated ILI9341 controller and we will be connecting to it using Hardware SPI.
While the screen is sold as an 240×320 pixels TFT, we’re going to use it at 320×240 pixels, rotated using a simple hardware configuration switch, making it more suitable for video games.
The size is perfect for a small handheld videogame and fast enough for most classic video game titles.
The TFT screen features an SDCART reader but for now we’ll not be using it.
A joystick with 3 axis is used to control de videogame, horizontal and vertical plus fire.
The first two controls connect to the Arduino using 2 ADC pins and the fire button a regular digital pin.
Sound FX is an important component of Videogames. A small buzzer is present to provide sound feedback to the player. It can be used to play music and sound effects.
- Power switch
- 4 AA Battery holder
- 4x LR6/AA (rechargeable) battery
- Female and Male headers
- Perforated board/breadboard/PCB
- 0.1µF capacitor
Connecting the TFT screen to the Arduino
|Arduino Pin||TFT Pin|
Pins 11 to 13 are Arduino’s hardware SPI pins. When hardware SPI is used, the Arduino SPI hardware handles all the communication overhead and we get more processing power for our code. Usually it also means the communication is faster.
Pins 5, 4, 6 and 9 are regular digital Arduino pins. 9 controls the backlight, without it there won’t be any image on the TFT screen. Pin 4 resets the TFT controller when required. Pins 5 and 6 help with SPI communication by telling the TFT when data or commands are being sent.
For more detail: Build an inexpensive handheld Arduino color console