The Rover

The heart of the rover is the ATmega328P based Arduino Uno board. The rover uses an ESP8266 module for communication over WiFi and a L293D based motor shield for driving the motors.

Here's the connection diagram:

Initially I planned for a 4 wheel drive and purchased a 4WD chassis via Amazon but later I modified it as a rear wheel drive to extend battery life.

The ESP8266 module had a default baud rate of 115200. I changed it to 57600 as it seemed to work perfect without random characters in the AT command responses.

Here's a comparison between the responses for baud 57600 and 115200

The Android app

The rover can be operated using the Android app. The app prompts for the IP address of the rover which is 192.168.4.1 by default. When the connect button is pressed, the app tries to connect to the server running in the ESP8266 module at port 8468.

If the connection is successful, the direction keys appears.

Resources

Arduino sketch: https://github.com/ajaysreedhar/RovrFourRF1

Android app: https://github.com/ajaysreedhar/RovrFourController

ESP8266 AT commands: https://github.com/espressif/esp8266_at/wiki