The spinning yellow hopper feeds bricks down the slide and onto the conveyor belt, where they travel underneath a RasPi camera. The camera takes an image and then separates it into B(lue)G(reen)R(ed), and calculates whether the image it sees is mostly red or mostly ~not~ red. If the image (the brick that is underneath it), is not red, the conveyor belt just keeps moving and the brick slides off of the belt thanks to the angled arm. If the brick IS red, then the angled arm swings open, allowing the brick to move to the end of the conveyor belt for collection.
The main challenges of this project included establishing serial communication between the RasPi and the EV3 (which we later discovered was due to a faulty ground pin on the Pi), as well as figuring out the correct threshold for the color planes, so that yellow & orange bricks would not be recognized as red. The code for the Pi was written in Jupyter notebooks, which also presented its own challenge due to the slow speed at which the program often ran at.