Goal: The goal of this project was to design and implement a single-player version of the classic Pong game using the STM32 microcontroller platform. This involved integrating various hardware components and implementing game logic to create an interactive and engaging gaming experience.

Overview: In this project, I utilized my expertise in embedded systems and microcontroller programming to develop a fully functional Pong game on the STM32 platform. The project included several key components and functionalities:

  1. STM32 HAL Library Integration: Leveraged the STM32 HAL (Hardware Abstraction Layer) Library to simplify development and ensure compatibility with the STM32 microcontroller. This allowed for efficient utilization of hardware peripherals and streamlined code development.

  2. I2C Communication with OLED Display (SD1306): Implemented I2C communication protocol to establish seamless interaction between the STM32 microcontroller and the OLED display module (SD1306). This facilitated real-time updates of game elements such as score display and game status.

  3. Analog-to-Digital Conversion (ADC) for Joystick Control: Utilized the STM32's ADC module to read analog input from a joystick. This input was processed to control the vertical movement of the paddle within the game, providing responsive and intuitive user interaction.

  4. Game Logic Implementation: Developed and implemented the core game logic to replicate the classic Pong gameplay. This included handling paddle movement based on joystick input, simulating ball physics, detecting collisions, and updating the game score accordingly.

  5. Hardware Integration and Prototyping: Designed and prototyped the hardware setup using the STM32 microcontroller, ensuring seamless integration with the OLED display and joystick interface. This involved circuit design, component selection, and testing to achieve optimal performance.

By successfully completing this project, I demonstrated my proficiency in embedded software development with the STM32 platform, as well as my ability to integrate complex functionalities into a cohesive gaming application. This project exemplifies my passion for combining hardware and software to create interactive experiences that engage users effectively.

Video of the game in action

Next
Next

IF Neuron