08.3 - Implementation

08.3 - Implementation

In completing our final project, we maintained the same design choices from our prototyping stage, apart from a few minor tweaks for better reliability and construction speed, as well as more predictable motion.

For example, this includes switching from a sprocket-chain design for linear motion to a spool-wire design that pulls the horse mechanism along the rack-and-pinion gear. This allowed us to lengthen our track as we did not have enough chain for 2' long tracks for each horse, while simplifying our overall design.

Design changes like this were employed not only to simplify failure points but also keep troubleshooting to a minimum and decrease part complexity in manufacturing.

Fabrication

To fabricate our final project, multiple processes were utilized to optimize material use and cater to the needs of each section of our project.

For starters, a majority of our enclosures for our mechanism were laser-cut using 1/8” wood and acrylic. Specifically, laser-cut wood was utilized for the streamlined manufacturing and easy integration with finger joints. The acrylic was utilized as a top piece of our main track enclosure to allow users to see the mechanism fully in motion during operation.

image-20251213-220944.png
SolidWorks CAD of Laser Cut Profiles
Untitled (9).png
Laser Cut Test Pieces of Finger Joints

 

Additionally, 3D printing was utilized for the remainder of the project fabrication, to fabricate complex fixtures, custom gears with specific ratios, and text to complete our project, both functionally and aesthetically.

image-20251213-215518.png
3D Printed Horse Link-Gear Mechanism

Assembly

One change to our final design that was evident after our first attempt at integration was the addition of metal L brackets between the main enclosure box base plate and side walls, as the side walls seemed to easily warp. This caused our horse mechanism to oscillate side to side, requiring the motor to apply stronger torque to move it linearly, as the rack-and-pinion gears struggled to fully mesh.

image-20251213-220334.png

L-Bracket Inside the Main Track Enclosure

Another change made to the original design of the horse was tabs on the ends of the guide pins, as without tabs, the guide pins could easily slide outside of the guide slot, which could cause the horse to misalign with the rack and potentially run off course.

image-20251213-215904.png

Tabs Fixed to Ground Link to Guide Along the Side Wall Slot

Apart from these minor issues, the fingerjoints of the laser-cut wood and the toleranced screw holes throughout the CAD modeling made integration fairly simple from a mechanical standpoint.

Overall, one of the biggest challenges from an assembly standpoint was related to the location of limit switches, as they needed to be placed in optimal spots to be fully pressed in and held at the end of the motion without the horse bouncing back. This required precise alignment between the end-of-track limit switch and the horse mechanism itself.

Adobe Express - file (12).png

 

Final Assembly of the Project

Assembly of our project was complete, with the laser-cut wood featuring finger joints, wood glue, and L-brackets to fasten the panels securely, and M3 screws to secure our 3D-printed parts (rack, motor mounts, electronics box) to the laser-cut wood. This allowed our box to be fully assembled, creating our linear horse track.

Electronics and Circuitry

Our project utilizes an Arduino and an H-bridge to move our horse. The Arduino controls the speed that the horses are set to (more on this later), and the H-bridge powers the motors. Our project also consists of two led and a speaker, both of which were controlled by the Arduino. Limit switches were also included to indicate when the race has finished.

image-20251213-222238.png

Electronics Circuitry Setup

To assemble our circuit, we tested each section at a time to ensure everything was working correctly. Once each section (motor/limit switch/lights/speaker) was functional, we would move to the next. Initial testing was completed with our second project in this class, as the setup was similar enough to do basic debugging

Software Development

Our software controls the behavior of the motors, detects when the switches are open, and controls the speakers and LEDs. To ensure the race is truly random, a PWM value is randomly generated from 150 - 200 using Arduino’s random integer function. Once a winner is detected (limit switch pressed), an LED is flashed, and a song is played.

image-20251213-222351.png

Game Loop Code

To test the software, a mix of some new components and some reused (from build assignment 2) were put together to ensure the motors, LEDs, speaker, and switchers were fully operational before integrating them into the final project.