Crawler: An ESP8266-based Obstacle-Avoidance Rover

Shanghai, China
Dec 4, 2017

Mitch K, a developer based in Minnesota, used ESP8266 to create a robot that roams around avoiding obstacles, and we think it’s great!

This project is about an ESP8266-based robotic vehicle which is controlled over the Cayenne platform. As a matter of fact, it is a rover which roams around avoiding any obstacles it might encounter on the way, while taking the occasional break, according to which of the three modes is being used. Drive1 makes it roam around, avoiding objects when it gets close to them. Drive2 is essentially the same as Drive1, but it adds some “random sleep” to the mix. Drive3 is a power-saving mode that cuts both the CPU clock and the radio TX power in half. Cayenne is also setup to notify the user when the battery levels get low.

Photo source:

Crawler, photo source:

A specially-designed case holds the high torque geared motors and the battery. The wheels have bumps along the rim for better traction, while there is also an electrical tape around them for the same reason. The MCU is an Adafruit Hazzah ESP8266 that drives an Arduino motor shield v2 by I2C. The MCU has control over turning the passive infrared (PIR and IR) sensors off when, for example, the manual mode is activated for saving power even further. 

Actually, PIR and IR sensors do not consume much power anyway, but Mitch K thinks that “every little helps”, so he added this feature which also makes use of a voltage divider to monitor the battery voltage. When the rover wakes up, if the sleep cycle is enabled, it turns on the PIR and checks for motion. If it detects motion it disables the sleep cycle for a random amount of time, and moves around. Then, once the timer is over, the rover sleeps again. It also sleeps automatically from 11:00 pm to 10:00 am everyday. Mitch K’s final message is this: “the code needs to be cleaned up a bit just so it’s easier to follow. I would also like to add a couple more features and fine-tune it further, so watch for updates!”