We picked the ESP8266 thinking on it's WiFi and all the possibilities that it could bring to our project.
We have chosen Android as the controller, though it would be easily portable to iOS, Windows, Mac, GNU/Linux, etc, as it's as simple as UDP packets.
It isn't very reliable, but as we have visual on R2D0 we can press the button again. In some cases, as the LEDs on the head, it even replies back and the button switches to red or green, depending of the state.
There is a slider which goes from 1 to 100, it controls the speed. It has problems starting the motor under a certain value which depends on the voltage, but we aren't thinking on fixing that yet, as this way we can start it on 50% and then switch to 10%, that way it can walk slower.
In the gallery we have an screenshot of the controller.
We can easily add more buttons, delete or hide them, as we try to make it an universal remote for our robots with ESP8266. So we can copy & paste all the controls and the code and only modify a few options. For example, in a another robot we wouldn't need the radio options or the servo, but we could activate the line follower mode if that robot would have it.
Link to the app in the Play Store: https://play.google.com/store/apps/details?id=udpcontroller.nomal