Table of Contents
TivaGotchi is a Tamagotchi-inspired project designed by TM4C123GH6PM microcontrollers and powered by G8RTOS. This project started as a way to bring my childhood dream of owning a Tamagotchi P1 to life. As a part of the project, I implemented priority scheduling, critial sections, inter-process communication and semaphores of G8RTOS to manage MCU resources. The project also integrates various peripherals, including LEDs, an LCD display, and buttons, along with custom drivers to enhance functionality.
- Buttons: Button A, B and C are controlled via I2C communication and connected to I2C GPIO expander. Refer to the image below for how each button works in the game.
- LCD Display: The LCD display is communicated with Tiva C via SPI. See multimod_ST7789.C for further information on the driver.
- Draw Sprites: All sprites are stored as 32x32 px C arrays in Pixel.h. Draw_Sprite() is the middle man between SPI driver and game logics to draw sprites to a specified size and location.
- LEDs: The LEDs signal when your Tama needs an attention i.e. got sick, needs to use the toilet etc. The LEDs are controlled via an I2C-driven LED Driver.
- Game Functionalities: There are 8 primary game functions. Five of which are fully/partially implemented.
These functions include:
- Feed Function (Partially implemented)
- Sleep Function
- Cure Function
- Toilet Function
- Tama Status Function (Partially implemented)
- Implement all 8 primary game functions as mentioned above.
- Implement Bluetooth option to communicate with other TivaGotchi Device.
- Languages: ARM Assembly, C
- Hardware: Tiva Launchpad, I2C GPIO Expander (PCA9555PW), NRF5, PWM Driver (PCA9956b), LCD display (ST7789)
- Tools/Libraries: G8RTOS, TivaWare Peripheral Driver Library, Stellaris ICDI
Distributed under the project_license. See LICENSE
for more information.
Nunnapas (Nina) Temridiwong - ntemridiwong@gmail.com
Project Link: https://github.com/NunnapasTem/TivaGotchi
I'd like to thank the following individuals for their contributions and support.
- Dr. Md Jahidul Islam - For deepening my understanding of RTOS and Microprocessors during EEL4745C at UF
- Mehron Talebi - For extremely helpful advices throughout EEL4745C and the working of this project.