Hm...you need a camera and a good algorithm to differentiate those items. Otherwise, i can't think of a single sensor for such application.
Another crazy idea i got is you hit each object with a stick, then train your controller to recognize the sound produced by each object. That can roughly give you a good guess of what the object is