ME360 Project #4: Color Sorter
- Gilbert Tohme
- Nov 28, 2022
- 4 min read
Updated: Jul 4, 2024
This project aimed to design a Cartesian Motion System with 2.5 degrees of freedom (DOF). My team of 3 Mechanical Engineering students including myself wanted to satisfy portability constraints while maintaining an end effector travel range of 2.5 in. x 2.5 in. x 2.5 in. The final designed system is a color sorter capable of identifying and sorting 0.25 in. x 0.25 in. x 0.25 in. blocks based on their respective colors within a 2 in. x 2 in. x 2 in. range.
Design and Development
Pictured below is an initial sketch of our color sorter designed by me and my teammates:

Figure 1: Initial Sketch of our Color Sorter
The initial design executes the 2.5 DOF with a 9" base moving along the x-axis and an end effector moving along the z-axis. The color sensor used was an Adafruit TCS34725 RGB sensor, and the frames were built with 80/20 aluminum bars for durability and ease of assembly.
However, the final design included 4 stepper motors: 2 for the horizontal movement of the base, 1 for the z-axis movement of the end effector arm, and 1 for the end effector claws. Pictured below is our final design for our Color Sorter:

Figure 2: Final Physical Model of our Color Sorter
A belt-driven system enables precise linear motion in both horizontal and vertical directions. For the base, we connected two stepper motors to a lateral belt system positioned underneath, utilizing a rectangular pulley shaft arrangement. Two of these shafts are attached to the front 80/20 bars, just behind the Liquid Crystal Display (LCD) screen. For the arm, we positioned a belt tangent to the aluminum rod and secured it with super glue. To ensure the rod moved smoothly up and down with the belt and stepper motor at the top, we 3D-printed a stepper motor-rod PLA attachment in our lab.
Some of the parts 3D printed for this project that I designed on SolidWorks include but are not limited to:

These SolidWorks CAD models are:
- Top left: Z-axis stepper motor attachment holding the rod with the belt 
- Top right: End effector block for the stepper motor and claws 
- Bottom left: Color sensor box with jumper wire openings on the bottom 
- Bottom right: Z-axis motor attachment 
Manufacturing Process
The manufacturing process involved several key steps:
3D Printing:
- Z-axis Stepper Motor Attachment: We used FDM printers in the BU Mechanical Engineering Department's 3D Printer Room to print the Z-axis stepper motor attachment. This component held the rod and belt in place. (See above) 
- End Effector Block: We 3D printed the block that holds the stepper motor and claws for the end effector. (See above) 
- Color Sensor Box: This box, also 3D printed, had openings for jumper wires to connect to the Arduino board. (See above) 
- Stepper Motor-Rod PLA Attachment: A 3D-printed attachment that connected the stepper motor to the rod for smooth vertical motion. (See above) 
Laser Cutting:
- Acrylic Base: Using an 80W Epilog Fusion Edge CO2 laser cutter, we cut a 1/4" acrylic piece for the base. This included gaps for integrating the two stepper motors and their belt-driven system. 
Color Sorter Assembly:
- Belt-Driven System: - Integrated a belt-driven system for linear motion in both horizontal and vertical directions. 
- For the base, we connected two stepper motors connected to the belt system through a rectangular system of timing pulleys. 
- For the arm, a belt was laid tangent to the aluminum rod, and we screwed in the Z-axis motor attachment to the top motor. 
 
- 80/20 Aluminum Bars: Constructed the frame using durable 80/20 aluminum bars for ease during assembly and ensured stability. 
Secondary Processes / Adhesives:
- Aluminum Rod Belt Attachment: The belt was securely attached to the aluminum rod to ensure smooth movement, eliminating the need for gluing or adhesives. 
- Belt Attachment for Base: To ensure that the belt properly attached to and moved linearly with the base, we glued ripped off attachments from previously failed 3D-printed bases. 
Final Adjustments:
- Balance and Stability: To enhance the color sorter’s balance and stability, the aluminum rod’s length was pushed up and secured properly. This would ensure that despite its long length, it would be placed high enough from the base to pick up a cube. The end effector’s placement and motion were fine-tuned for optimal performance. 
- Manual Sorting: Initially, the plan was to use a coordinate system to place cubes, but instead, we implemented manual control via an Arduino joystick and buttons for easier sorting. 
Simulation and Testing
In our Arduino Code, we utilized the Setup() function to power the stepper motors, and the Loop() function to identify and sort the colored blocks. We programmed the color sorter such that the joy stock operates both the base and the arm. Moving left and right causes the base to move, while moving up and down allows the arm to move in similar directions. The two buttons pictured in the front on the miniature red breadboard are used to open and close the end effector claws respectively.
In-Depth Video Showcasing PowerPoint Presentation of our Project and our Final Design In Action
Video 1: Demonstration and Explanations of the Color Sorter and its functions and goals.
NOTE: Please skip to 4:45 within the video if you would like to jump straight to the physical demonstration.
Conclusion and Recommendations
Several improvements were made during the project:
Redesign of Cube Placement Method:
- We initially planned to use a coordinate system based on box locations relative to an origin. 
- We switched to manual placement using an Arduino joystick and buttons to control the end effector arms. 
- In general, this became one of the most significant redesigns for the project. 
Base Design Change:
- We initially attempted to 3D print the 9" base as two 4.5" components to snap together. 
- Many of our initial 3D prints failed due to PLA material shrinkage and thin base height. 
- We switched to laser-cut acrylic for sturdiness and thickness. 
Aluminum Rod Length:
- Kept the initially long length of the aluminum rod. 
- The long length did not affect the design or maneuverability but in the case of product design, it could impact real-world portability. - We'd likely cut off a few inches to improve portability, as the arm only needs to lower by about an inch to pick up a cube. 
 





Comments