UPDATE 08/02/2014 : Just an update in the name. I remember OddBot calling it the BlueTacBeast. There you have it! I present to you BTB aka BlueTacBeast aka a mini obstacle avoider!
Hello all,
After seeing a couple of ultrasonic sensors lying around, i decided to give obstacle avoidance capabilities to a robot. And this project is an obstacle avoiding robot using an Arduino Microcontroller. The robot is a mini-sized one, and the Arduino serves as both the brain and the body of the robot. Blu-Tack was my best friend while making this one, as the robot is just a couple of electronic components mashed into a single chunk and the rubbery adhesive came into good use for fixing the motors and attaching the ultrasonic sensor. Though at times, the motor tends to come off, and it needs occasional fixing.
The robot has it's components borrowed from it's predecessor, the PID based line follower, with a promise to return back soon. :D This robot uses those same zippy micro-metal geared motors, and the TB6612FNG motor driver. An HC-SR04 for distance measuring via ultrasonic waves is used, via which it manages not to hit obstacles, well, most of the time.
THE BUILD:
Microcontroller:
This microcontroller is an old friend of mine. I have had it for over a year now. It's an ATmega168 16MHz Arduino Clone, from Robosoftsystems. And this time, with a thought to reduce the robot size so as to effeciently avoid obstacles, no acrylic plates as the robot's body. I used the Microcontroller itself to hold the motors, batteries, and somehow got it up and running.
Motors and Motor Drivers:
As mentioned above, i used Pololu's micrometal geared motors and the TB6612FNG dual motor driver.
Power Supply:
A 7.4 Li-on Battery for powering up the motors.
And, a 9V Duracell to power up the microcontroller along with the HC-SR04 and the motor driver.
As always, good old jumper wires to wire up all the components in place.
No hot glue gun around here, but blu tack did the trick.
I started off by placing the motors on adjacent sides of the Arduino board.
The imbalance in height was an issue. I did not find the perfect caster wheel, so to maintain the robot balance, I mounted two standoffs at the back.
And then, i just wired the motor driver Output pins with the motors, and the Input Pins with the Microcontroller and connected the VCC and GND pins to supply the logic volage to the motor driver IC.
Nearly completed, once again, blu-tack came into play for holding the 9V duracell underneath the microcontroller.
And finally, the lightweight Li-on battery pack went on the top. With no more room for the HC-SR04, i randomly placed it on top of the battery.
That was it, and with the following code, the robot was up and running in no time.
I am just learning the how-tos of Arduino coding. The algorithm right now is pretty straightforward as there's just one ultrasonic sensor and no panning mechanism with a servo. Feel free to make edits, if required, and let me know if you have some better obstacle avoiding alogorithms!
I plan on making it solve an obstacle course, but at the moment, it's locked in a cage surrounded with household stuff, and manages not to bump into any of them.
That's all and thanks for reading!
Ashim
Navigate around via ultrasound
- Actuators / output devices: Pololu micrometal gear motors
- CPU: ATmega168 Arduino Clone
- Power source: 7.2V Li-on and 9 V Duracell
- Programming language: Arduino Wiring
- Sensors / input devices: HC-SR04
- Target environment: indoor
This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/btb-a-mini-obstacle-avoiding-robot