I wanted to design a novel two wheel bot which is easy to build and provide simple user interface. Although I have built bots earlier they were all in way scrambled parts of other devices and projects. And because of this its not possible to remake or recreate them again by myself. I wanted to present ideas to public which I can make or in other words “makeable” . Apart from this I wanted this bot to be Arduino IDE programmable. Now if I look at the market there are some two wheel bot but they were not having a visually appealing design. My aim is to build this like a Pet Desk Bot.
I named this bot Tubby Bot. Now it can be very well called an RC Car or Remote controlled car rather than a Bot given that it will be controlled by remote control but it is a bot because it is programmabl and with enough skill you can make it autonomous to qualify to be called a “Robot”.
Since this is my first design from scratch I wanted to keep things simple. Some of the rules of simplicity are
- No sensor only output devices.
- Smartphone controlled so as to eliminate an extra Remote controller.
- Two wheel bot with caster ball and no self balancing.
The idea is to have only lights and sound and no sensors. This enabled me to think of a very simple housing design. I wanted to use the smartphone controllable interface as I can avoid the excessive hardware dependancy. My basic idea was to reuse maximum available off-share components and designs only missing things.
For building the bot you need to focus on hardware, software and communication. Hardware includes electronics, 3D. For this project I wanted to lessen the electronic work. After thorough search I found that ESP8266 and ESP32 based boards are the way to go. In that specifically Wemos D1 mini seems to be fitting the requirement well. Here I will explain you how I choose it.
If you want to build a two wheel bot from electronics point of view you will need the following things
- Battery and charging circuit
- Motor driver
- communication module
- Lastly microcontroller.
A robot needs to be wireless and moving and for that battery is essential added to it is that charger. This makes the charging and using handy and quick. For a two wheeled bot you need two motors. And remember the motor can spin two ways and it should be possible for both the motor to spin two ways backward and forward. Only then you can turn left , right, straight and reverse. Ideally if you power a motor then it spins in a particular direction and if you want to spin in the reverse direction then you need to flip the polarity of the power supply. Now this cant be done if you are directly controlling a motor from your micro controller GPIO and for that you need a module called H-bridge. So the micro controller tells the H-bridge which motor should turn which side at what speed.
Communication module helps to send commands to the bot from the remote controller or computer and vice versa.This is required even for autonomous bots. In general RC use from 125 Mhz to 2.5 Ghz frequency for communication to speak with remote controller. Apart from that there are Infra red, Bluetooth etc. I choose Wifi as the interface as it is supporting both smartphone and microcontroller.
Lastly it needs to be programmable and this is done using a micro controller. The reason for choosing Wemos D1 mini is that it is a small form factor board with 4MB flash and 10 pins and on board wifi. It uses ESP8266 micro controller and there are plenty of shield that I can stack. Interestingly it has a battery shield which mean I dont need to care about battery management separately.
There is also a H-bridge shield which makes my next step even easier as I dont need to hardwire a external H-bridge to the microcontroller. With this basics remote is almost done except that I need to test them . Apart from that I also used RGB led, OLED display and a buzzer.
Magnetic Reed switch:
Wemos Battery Shield
I initially decided to make a shape something like this and later changed it to reduce complexity and easiness to print decided to go with a cube shaped bot. This reduced lots of complexity in the bot design and with the recently learned freecad skill I designed the entire housing.
Wemos D1 Mini:
And the shields
For powering the Tubby bot I used Magnetic reed switch. You can consider it as a switch which upon meeting the magnet starts conducting. I used one which came as part of Geekcreit kit.
Motor shield schematic
Setting up Arduino and Blynk:
For remote control I used the Blynk App. I downloaded from the google play store and registered an account there. After that I created a project for which Blynk generates a unique code and send it as email. This unique code should be used for authentication when you are programming the ESP8266 controller. I am not going in to details of how to setup Arduino and Blynk library as they are already available out there with active support.
Motor shield bug:
The Wemos D1 mini motor shield’s default firmware was faulty so It was required to be reprogrammed. I followed this link and made the motor shield working .
The above code is just for demo purpose it is very raw and uncleaned. I am planning to add more. Remember You need to fill in your SSID, Password and Blynk Auth code before building the code.
If you have any idea or comment or feedback feel free to comment below. You can download the source files from here https://github.com/codelectron/TubbyBot