
Mechatronic Color Sorting Conveyor
Overview
This project is characterized by a conveyor belt that automatically sorts colored blocks. When unsorted colored blocks are placed onto the conveyor, the system moves them forward, collecting color data, storing it with a FIFO algorithm, and sorting them in the corresponding color bin on a plate controlled by a stepper motor. The videos above demonstrate the system.
List of components: Arduino Mega 2560, DC motor, stepper motor, Hall Effect sensor, IR sensor, color sensor, laser sensor.


Arduino
A high-level description of an Arduino board can be reduced to a microcontroller (MCU) and a printed circuit board (PCB), emphasizing the MCU as the essential tool and the PCB as its interfacing environment. The Atmel ATmega 328P (328P) MCU plus an Arduino PCB submit the Arduino Uno to this description. Interaction with the 328P is facilitated by the PCB it sits on; however, plenty of users elect to interface with these chips using a custom PCB or even just a breadboard.
MCU instructions are typically programmed in C or C++ using an integrated development environment (IDE), like Atmel's Microchip Studio. Other languages and IDEs like Assembly or Python and Visual Studio or Arduino IDE can be used. The applications presented here are written mostly in C using Microchip Studio.
These instruction files (scripts) are compiled, or translated, into files an MCU can understand, called hex (hexadecimal) files, and uploaded to the MCU from a computer. Instructions given to an MCU often map a system of inputs to program logic, which maps a system of outputs back through the PCB for some function, like controlling an LED.
