Repository contains my engineering degree project which theme was Portable pocket game
. the device allows you to program simple games and applications. The device has the following capabilities:
- Communication with the Waveshare LCD 2.4 inch 240x320 display module. The display control with the ILI9341 driver was written by me based on the documentation, manufacturer's examples and the book "Mikrokontrolery AVR i ARM. Sterowanie wyświetlaczami LCD". Communication uses USART in MSPI Mode. The ILI9341_FAST repository was also a helpful source of knowledge. The device allows you to draw:
- pixel,
- line,
- rectangle,
- strings,
- bitmaps.
- Communication with the RTC DS1307 chip. The device provides the functions of reading/writing the date to the integrated circuit.
- Read different button states (BUTTON_PRESSED, BUTTON_FALLING_EDGE, BUTTON_RISING_EDGE),
- Sound generation with buzzer
The repository contains examples showing the capabilities of the device in the Demo
and Games
folders. Current programs:
- Tetris,
- Snake (based on my another project),
- demoFillDisplayWithBitmaps();
- demoText(),
- demoLines(),
- demoDynamicText(),
- demoRTC(uint8_t setCompileTime),
- demoPlaySounds(),
WS 2.4 inch ILI9341 | ATmega328 |
---|---|
VCC | VCC |
GND | GND |
DIN | PD1 |
CLK | PD4 |
CS | PD2 |
DC | PD5 |
RST | PD6 |
BL | PD3 |
DS1307 | ATmega328 |
---|---|
VCC | VCC |
GND | GND |
X1 | - |
X2 | - |
VBAT | - |
SQW/OUT | - |
SCL | PC5 |
SDA | PC4 |
Switch | ATmega328 |
---|---|
Button up | PC0 |
Button down | PC1 |
Button left | PC2 |
Button right | PC3 |
Button start | PB0 |
Button select | PB2 |
Buzzer | ATmega328 |
---|---|
+ | PB1 |
The PCB design and the electronic schematic can be found in the resources folder.