Skip to main content
Version: ACS CC

Ping Pong Ball Launcher

Variable speed ping pong ball launcher

info

Author: Roescu Matei Florin
GitHub Project Link: https://github.com/UPB-PMRust-Students/acs-project-2026-matei78

Description

This project presents an automatic ping pong ball launcher designed for training purposes. The system is capable of launching balls at variable speeds, which can be adjusted through user input via a control button. A separate trigger button allows the user to launch a ball on demand, offering precise control over each shot. The launching mechanism is based on two continuously rotating wheels that grip and accelerate the ball upon contact, ensuring consistent speed and direction.

Motivation

The main idea for this project was inspired by my passion for ping pong. Since I play this sport regularly, I have always been interested in finding ways to improve my skills. This led me to the concept of designing a training machine that could simulate real gameplay situations. Building a ping pong ball launcher felt like a natural and exciting challenge, as it combines my interest in the sport with practical engineering and problem-solving.

Architecture

Diagram

Main Components:

  • Microcontroller (STM32 Nucleo): It's the brain of the project
  • Buttons: One is used to cycle through different predefined launching speeds and the other is used to launch the ball
  • DC Motors: Used for spinning two wheels continuously
  • Motor Driver: Controls the speed and direction of the two motors
  • Power Supply: The board does not support enough power for high motor speeds, so a power supply is needed
  • Servo Motor: Used for releasing the ball when launching button is pressed

Log

Week 20 - 26 April

Created documentation and bill of materials

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

Hardware used:

  • Microcontroller (STM32 Nucleo): Controls all the other components
  • Buttons: One is used to cycle through different predefined launching speeds and the other is used to launch the ball
  • DC Motors: 3V DC Motors used for spinning two wheels continuously
  • Motor Driver: Controls the speed and direction of the two motors
  • Power Supply: The board does not support enough power for high motor speeds, so a power supply is needed
  • Servo Motor: 90 degree Motor used for releasing the ball when launching button is pressed

Schematics

Place your KiCAD or similar schematics here in SVG format.

Bill of Materials

DeviceUsagePrice
STM32Microcontroller156 RON
Motor driver L9110SControls DC Motors14,99 RON
30mm wheelsLaunches balls2 x 3,90 RON
Motor DC F130 3VSpins wheels2 x 3,99 RON
Micro Servomotor SG90 90Deploys ball13,99 RON
ButtonsPressed for actions2 x 1,99 RON
Batteries, plastics, otherBuilding materials20 RON

Software

LibraryDescriptionUsage
embassy-executorLightweight async executor for running embedded tasksRuns tasks for motor and servo control without blocking
embassy-timeTime managementCreates delays for PWM or timing during launch
embassy-stm32::pwmPWM module for STM32Controls DC motor speed and servo position
embassy-stm32::gpioGPIO pin controlReads buttons and controls digital signals
  1. Reddit ping pong launcher
  2. Youtube ball launcher
  3. Powerful ball launcher