Engineering project / Spring 2026
Pac-Man
A joystick-controlled Cartesian motion system with an interactive LED maze.
Developed for BU ME 360, Pac-Man turns a Cartesian motion system into a physical game. Three stepper-driven belt stages move a Pac-Man end effector across an addressable-LED maze, while a servo animates its mouth as dots are consumed. We combined course-supplied hardware with custom 3D-printed components, calibrated path geometry, and Arduino control software.
- Course
- BU ME 360
- Period
- Spring 2026
- Team
- Yusuf Tasyurt, Lana Kader, and Karsen Vesty
- Areas
- Mechanical design, fabrication, embedded programming, calibration, and system integration
- Tools
- SolidWorks, Arduino/C++, 3D printing
Working prototype

Design and fabrication
The mechanism is best described as two-axis motion with a servo-actuated mouth. In course terminology, the machine also functioned as a 2.5 DOF system: planar Cartesian motion plus a separate mouth actuation degree of freedom.
- 1Modeled one linear stage to check the relationships between the extrusion, printed mounts, carriage, belt, and pulleys.
- 2Cut the aluminum extrusion and printed the custom components needed for assembly.
- 3Evaluated the physical stage and identified belt-fit, flexibility, alignment, and binding issues.
- 4Revised and reprinted affected components, then assembled the paired rails carrying the transverse stage.
- 5Adjusted belt tension and alignment during motion testing.
Assembly exposed belt-fit and stiffness issues that were not apparent from the CAD model. We revised and reprinted affected components, then adjusted belt tension and alignment during motion testing.


Mapping the physical maze
We formed the maze from a continuous LED strip to reduce soldering. Folded corners introduced hidden LEDs, while intersections required connections between different physical lines. The controller therefore needed an explicit relationship between motor coordinates, maze segments, and LED addresses.
The calibration process established the coordinate origin, moved the end effector to each maze corner with the joystick, and used the joystick button to record X/Y motor step counts. We then documented LED addresses on each physical line and combined the measurements into fifteen path segments connecting sixteen recorded corners. Those segments let the firmware check movement and associate position with game state.
Calibration example
From corners to a path
Each joystick-recorded corner became a motor-step coordinate. Joining consecutive corners created the segments used to constrain movement.
- Start corner
- C7 (-15840, -5130)
- End corner
- C8 (460, -5130)
- Segment check
- Delta X: 16300 steps
Delta Y: 0 steps
Coordinating motion and gameplay
The Arduino code treated joystick input as joystick-dependent motion without acceleration ramps. It selected the dominant axis, checked proposed travel against workspace bounds and maze geometry, drove either the paired rail motors or the transverse motor, and updated tracked motor-step position. From that tracked position, the program associated Pac-Man with an LED address, consumed dots, displayed the current-position indicator, and actuated the mouth when new consumption was registered.
- 01Joystick input
- 02Movement checks
- 03Motor commands
- 04Tracked position
- 05LED state and mouth actuation
Hardware and fabrication
Structure
Aluminum T-slot extrusion
Quantity: 5
Forms the frame and supports the linear stages
Motion
Stepper motors
Quantity: 3
Drive the Cartesian motion system
Motion
Timing belts and pulleys
Quantity: 3 sets
Convert motor rotation into linear travel
Fabrication
Custom 3D-printed parts
Quantity: 9
Connect the motors, stages, and end effector
Control
Arduino-compatible controller
Quantity: 1
Processes joystick input and coordinates the system
Interface
Analog joystick with push button
Quantity: 1
Provides directional input and button commands
Game display
WS2812B addressable LEDs
Quantity: 117
Represent maze dots and display game state
End effector
Servo motor
Quantity: 1
Actuates Pac-Man's mouth
End effector
Two-jaw Pac-Man mechanism
Quantity: 1 assembly
Provides the physical game character
Hardware was supplied through BU ME 360. Our team produced the custom 3D-printed components, and I cut the aluminum extrusion to length.
Outcome and reflection
The demonstrated prototype supported joystick-controlled movement through the programmed maze, LED game-state updates, and servo-actuated mouth behavior.
The project showed how fabrication choices shape control software. Bending a continuous LED strip simplified assembly, but introduced hidden LEDs and shared intersections that required explicit mapping. Making the game work depended on resolving those relationships across the mechanical, electrical, and software systems.

Technical details
The supplied firmware sketch defines NUM_LEDS as 117 and stores game position as a current segment plus motor-step progress. Its waypoint array contains placeholder coordinates, so the example above uses the recorded calibration measurements. The maze drawing is regularized to orthogonal lines for clarity while the displayed corner coordinates retain their measured values.
back to overview