Feasibility: Color Recognition and Sorting

Hi all,

I have a real situation and I'm pretty sure I can develop some alternative method for solve it, instead of paying tons of money for an industrial sollution.

The thing is that I have mixed colours plastic scrap. White, blue, gray and brown. All this material is set on industrial bags, and all assorted. For reciclyng these materials properly, I need those colors separated. The plastic pieces are about 8-12mm.

I've just entered this Arduino world, but I think with its color recognition sensor I could develop some like this:

  • Spread this material all over a testing table or some like that
  • Split this table in X smaller pieces and "read" the resulting RGB frequency of each little piece
  • Through the application of a genetic algorithm, start iterating and mixing little similar pieces over and over again untill I have one predominant color.

Because the tiny size of these plastic pieces, I know I'll never have a pure color resulting on this process. But if I have a 60% or 70% predominance, the recycling process gets much faster and productive.

As you guys know about Arduino's utilization and limitations much better than I do, do you think this is feasible?

Thanks a lot!


would it not be easier to make a conveyor belt which separates the pieces one after another. if the individual pieces are far enough apart (speed belt & recognition are params) it would work

the conveyor belt should have a colour that contrast with all 4 basic colours, e.g. red. Easier to predict the deviation in RGB space.

You might need to add a white LED besides the colour sensor.

Hi Rob, thanks for answering.

Yes, that would be the perfect sollution, and actually that's what the industrial sollution does with a huge productivity (2ton/hour).

The main point is that I have about 400 Tons of this material, and analyzing piece by piece would take an eternity, that's why I thought of applying a genetic algorithm for mixing similiar parts over and over.

400 ton is quite an amount, a genetic algorithm is not always fast than straight forward simplicity. Especially if it is mixed quite well.

Maybe you should try a multi stage approach,
  1. use UV light => white and blue reflect far more than brown and grey. this makes the whole decision a yes/no
  2. use RED light => white pieces will look red and blue ones will look dark
  3. use WHITE light ==> grey might look lighter than brown. This is the difficult one

do you have a picture of the four colours?