Neat. The only suggestion I'd make is to make the program more aware of where the "closest" bin is and have it rotate either counter-clockwise or clockwise as appropriate. It seems "wasteful" to turn 270* when you could turn 90* for the correct color.
The carousel always turns the same direction mainly because the combination of the weight and gear slop made the exact stopping position unpredictable if it changed direction to turn 90 degrees backward rather than 270 forward.
Comments
One reason for always turning the same directions is the mechanical detection of the 90* turn.
martyn