Skip to main content
Version: FILS English

MiniMath Pocket Monsters

An embedded game where players catch Pokémon by solving math equations.

info

Author: Cojan Alexia-Ramona
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-0monia0

Description

MiniMath Pocket Monsters is an embedded game in which the player explores a virtual enviroment and ecounters Pokémon that can only be caught by solving mathematical equations. The player can move within the game either by using physical buttons or by using motion input from an accelerometer. When a Pokémon randomly appears, the player is prompted with a mathematical equation that needs to be solved in a limited time. If the correct answer is given, the creature is successfully captured, otherwise, it escapes. The difficulty of the mathematical challenges varies depending on the rarity of the encountered Pokémon. There is also a score that shows how many Pokémon you caught, if u get one answer wrong, the score goes back to 0. The game provides visual feedback from a TFT display, where the game environment and interactions are rendered, an additional display for auxilliary information such as score or status, as well as LEDs. Audio feedback is given through a passive buzzer which provides sound effects during key events like successfuly capturing a Pokémon or losing it, and encounters.

Motivation

The motivation behind this project is personal, as well as educational. I chose this topic because i am interested in the Pokémon franchise and i like video games. I wanted to bring my interests to life by making my own version of the popular Pokémon games. At the same time, this project gives me the opportunity to learn and explore how interactive applications can be implemented on microcontrollers.The inspiration for this project comes from classic Pokémon games, which provide an engaging experience through simple mechanics. Another source of inspiration is represented by the modern game Pokémon Go, where real world actions influence the behvior in the game. This project adapts that idea in a simplified manner by using motion input from an accelerometer, allowing the player to interact with the game in a more dynamic way.The game can also be considered an educational tool, as it encourages quick thinking and problem solving through time-limited mathematical challenges. By combining gameplay with simple equations, the system provides a fun and engaging way to practice basic arithmetic skills.

Architecture

Architecture Diagram

Log

Week 1-6:

I started brainstorming for my project idea and getting approval from my professors.

Week 6-9:

I purchased all the needed components, doing tests to make sure everything works right and working on the documentation milestone.

Week 9-14:

Hardware

The system is built around an STM32 microcontroller, which controls all the components and runs the main game logic. The TFT display is connected using SPI and is used to show the game itself, including the map, player, and interactions. The OLED display is connected through I2C and is used to display additional information such as score or messages. The MPU9250 sensor is also connected via I2C and is used to detect movement. The data from the accelerometer will be processed in order to detect walking patterns, which are then used to move the player in the game. User input is provided through push buttons connected to GPIO pins, allowing direct control of the game. A passive buzzer is also connected to a GPIO pin and is used to generate simple melodies during gameplay. LEDs will also be connected to GPIO pins through resistors and be used for debugging or simple visual feedback. All components are connected to the microcontroller using standard interfaces such as SPI, I2C, and GPIO.

Schematics

Place your KiCAD schematics here.

Bill of Materials

DeviceUsagePrice
STM32 Nucleo-U545RE-Qmain microcontroller board used to control the systemborrowed from laboratory
BreadBoard 400 tie pointsused to connect components and build circuits without soldering the components together~7 RON
Dupont wires male-to-male, 20 cmused to connect components on the breadboard and to the microcontroller~2 RON
LED kit 3mm/5mm, assorted colorsused for visual indicators~18 RON
Resistors 220Ω, 1/4Wused to limit current in circuits, especially for LEDs~13 RON
Tactile push buttons 6x6 mmused as user input controls for interacting with the game~37 RON
OLED display 0.96", 128x64, SSD1306, I2Cused to display additional information such as score~30 RON
Passive buzzer module KY-006used to generate sound effects and simple melodies during gameplay~3 RON
MPU9250 9-axis sensorthe accelerometer will be used to detect walking motion by analyzing variations in acceleration~90 RON
TFT display (1.3", IPS, ST7789V, SPI, 240x240used as the main display for rendering game graphics~30 RON

Software

LibraryDescriptionUsage
embassyAsync embedded framework for RustUsed for handling tasks and timing
embedded-halHardware abstraction layerUsed for interfacing with peripherals
embedded-graphics2D graphics libraryUsed for rendering text and graphics on displays
st7789Display driver for ST7789Used for the TFT display
ssd1306OLED display driverUsed for the OLED display
  1. Understanding how accelerometer works
  2. Accelerometer datasheet