I started this project a while ago. My intention was to adapt a toy remote controlled vehicle into a generic robotic platform, which would enable me to do some experiments with robotics. To make the platform more generic, I came up with the following requirements:
- Remote controllable
- Speed and direction control
- Obstacle sensing
- Sensor expandability and upgradability
The Vehicle Platform
Pretty much any remote control toy cars/trucks or tracked vehicles can be used as the basis for this platform. Since we will be adding our own circuitry later on, the larger the platform the easier it is to work with. The choice for the type of vehicle is largely a personal preference. But a tracked vehicle is easier to control compared to a wheeled vehicle since its turning radius can be controlled precisely by adjusting the duty cycles of the PWM signals on the motors controlling either side of the tracks.
For my robotic platform, I used a 1:10 scale 4 channel remotely controlled toy truck.
What a robotic platform can make of its environment is largely dependent on the number of sensors it has. So naturally, you want to equip your robotic platform with as many different types of sensors as possible. To ensure design flexibility and future expandability, I used I2C bus connect multiple MCU chips (ATmega328 is used in my design). This way, more sensors can be added later on via the I2C bus without having to change the existing circuit.
I have so far added a simple front wheel encoder and a more complex rear wheel encoder to my vehicle platform. By using these two encoders in conjunction, I can obtain vehicle acceleration/deceleration, speed and skid information. I modified the original remote control circuit to allow controlling via remote control or the on-board MCU. This dual drive configuration also allows PWM signals to be used to drive the gearbox and thus achieves speed control. An ultrasonic range sensor (I, II) is used to detect obstacles in front of the vehicle.
Here are a few pictures of the platform I built so far: