Skip to content

NunnapasTem/TivaGotchi

Repository files navigation

project_license LinkedIn


Logo

TivaGotchi

A Tamagotchi-clone on tm4c123gh6pm.

Explore the docs »
View Demo · Report Bug

Table of Contents
  1. About The Project
  2. License
  3. Contact
  4. Acknowledgments

About The Project

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.

Current Features

  • 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.

Tamagotchi P1 Button Labels

  • 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)

What's Next?

  • Implement all 8 primary game functions as mentioned above.
  • Implement Bluetooth option to communicate with other TivaGotchi Device.

Built With

  • 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

(back to top)

License

Distributed under the project_license. See LICENSE for more information.

(back to top)

Contact

Nunnapas (Nina) Temridiwong - ntemridiwong@gmail.com

Project Link: https://github.com/NunnapasTem/TivaGotchi

(back to top)

Acknowledgments

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.

Releases

No releases published

Packages

No packages published

Languages