The guys from battlebricks managed to control a NXT robot using an iPhone. How is that possible I hear you ask? First, build a robot that performs different movements based on the light sensor looking at different shades of grey. Then build a web application that displays those different shades on a website. Load one iPhone on the robot, and use another to remotely update the shade of grey on the other. Now why didn't I think of that?