Tic Tac Toe Machine

The team

This week’s objectives



Application a device designed to help the user to perform specific tasks

The application for our machine is to play tic-tac-toe against a human adversary, using an aggressive play-to-win AI.


Automation describes a wide range of technologies that reduce human intervention in processes.

Our machine provides full end-to-end automation for the entire game of tic-tac-toe.


Actuation. An actuator is a component of a machine that is responsible for moving and controlling a mechanism or system, for example by opening a valve. In simple terms, it is a “mover”.

From the point of view of machine design, Actuators are the parts of the machine that operate in its environments ( to affect it/change it, in some way), while the sensors are the parts that receive information from its environment.

In terms of actuation, our machine has a moving pen, whose tip can be arbitrarily positioned in any position in the operating space/volume.

For all intents and purposes, however the pen will only occupy 2 planes in space:


Mechanism (engineering), rigid bodies connected by joints in order to accomplish a desired force and/or motion transmission

The machine that we have built has various mechanisms to operate and perform action in all 3 spacial dimensions:

The combination of these mechanisms allow the machine to have an operating space/volume of approx:

412 mm x 420 mm x 18 mm = 3,114,720 mm3 = 3114 cm3

Here’s a short excerpt of the code used to control the machine over the operating space.

This week’s responsibilities

Mechanical Design and assembly We started out with an already existing frame made with aluminium and had to add, - X AXIS: 2 acrylic plates as holders for 2 steppers working in unison. - Holders laser cut in 5mm acrylic sheet to hold the stepper motor, wheels and a provision for endstoppers. - Y AXIS: Aluminium frame attached to the 2 X axis acrylic plates and an extension for the Z axis. - Z AXIS: A stationary plate extension and a Servo motor with a pen attached to it.

Problems encountered

During mechanical design and assembly

We started out with an already existing frame made with aluminium but,

During electronics design and implementation


During software programming

The software development part ended up being a demanding beast, and we encountered several issues as the days went by:

If you want to read about all the issues that we encountered during the software development/programming, check out Edu’s page

Development Iterations

Iteration 1

Sending custom commands to arduino via Serial Interface

Iteration 2 - The product, as we presented it

Sending GCODE commands to Arduino with GRBL installed

Iterations with the assembly

Iteration 1

The first iteration of the assembly had the Y axis above the base frame and we were planning to make an extension arm as the Z axis. Eventually, we realised that flipped it upside down would make the Z axis shorter and makes the machine more stable.

Iteration 2