Ariadne's Thread is a project born to fulfill the wish to automate an old game which consists in moving a ball through a labyrinth by moving two decks with two knobs.
In order to do that we have decided to replace the knobs with two servos and to control them with a joystick. To prevent any damage to each servo caused by excessive stress, we have decided to set the limit to a minimum of 60 and a maximum of 120 degrees. We have also set two different angles (60-120 and 75-105) for each servo to maintain a uniform movement of the decks.
Technical Implementation: Sensors and Actuation
The project focuses on creating a high-performance and reliable navigation tool:
- Actuation layer: Two Micro Servo Motors (SG90) act as the steering or guidance mechanism, replacing the manual knobs to tilt the labyrinth decks. Each servo rotates within its defined angular range (e.g., 60-120 degrees) to guide the ball's movement.
- Control Interface layer: An Arduino constantly reads input from a joystick and translates it into precise positional commands for the two servos.
Hardware Infrastructure
- Arduino Uno: The "brain" of the project, managing the joystick input and coordinating the two servo steering tasks.
- Micro Servo Motors (SG90): Providing the physical movement to tilt the labyrinth decks.
- Joystick Module: Provides the manual control input for the user.
- Power Supply: Providing stable power for the Arduino and its motors.
- Jumper Wires: Connect all the components together.
- Enclosure & Mechanical Linkages: A custom box and linkages, as shown in the images below, to hold the servos and connect them to the game decks.
Control Logic Step-by-Step
The automation process is designed to be very efficient:
- Initialize Servos: SETUP the Arduino to communicate with the two servo motors and set their initial positions.
- Poll Joystick: The Arduino constantly reads the X and Y axis values from the joystick module.
- Map & Execute Movement: The joystick values are mapped to the predefined angular ranges for each servo (e.g., 60-120 degrees). The Arduino then sends the corresponding rotation command to each micro servo to tilt the labyrinth.
- Physical Feedback: The movement of the ball through the labyrinth provides clear, immediate feedback on the control inputs.
Future Expansion
- Autonomous Play: Add an ultrasonic sensor (HC-SR04) or a camera module to allow the system to track the ball's position and navigate the maze autonomously.
- OLED Status Dashboard Integration: Add a small OLED display to show the current servo angles, joystick position, or game timer.
- Wireless Sync Registration: Add a WiFi module (ESP8266/ESP32) to log game sessions or allow control via a smartphone app for remote operation.
- Advanced Game Modes: Program different difficulty levels by dynamically adjusting the servo response curves or adding randomized obstacles.
Ariadne's Thread is a perfect project for any electronics enthusiast looking for a more interactive and engaging mechatronics tool!