Upgrading your i-MACH into A BULL DOZER
December 26th, 2009Work done by-Krishna Kumar Rao, Std.X
How cool would it be if u could upgrade your i-MACH by adding basic mechano parts and some brains into complex robots! Here i would be teaching (or rather guiding) you to build one yourself.
Bull Dozer
Now, let’s take a step forward and build an autonomous Bull Dozer! Let me tell you this could take some time……….so BE PREPARED!
Well, what all features would you want to be included in your Bull Dozer? If they are these, then you are at the right place.
• Could sense the object.
• Pick it up on its own.
• Throw it into the dustbin!(or any other place u want to).
Building one would require a few extra parts which are not included in the
i-MACH kit. The list of such parts is given below-
• 2 TSOP Obstacle Sensors
• 1 DC Geared Motor(500mA,6v)
• Few mechano parts or any kind of aluminum strips
Keep in mind that we are building a bot for white colored arena bordered by a black line.
We would be using 4 obstacle sensors and 1 line sensor for building our bot.
Here are the sensor placements I have chosen.
The 2 sensors at the front (sensors 4 & 5) can also be replaced by one sensor but in such a case detecting the dustbin would be slightly difficult.
With this, you could very easily lift things and throw it into the dustbins.
I have added a long but robust framework to my bot built with mechano parts. Kids might find it difficult 2 build it, but after all, it’s a necessity.
Note that the length of “x” if quite large as the bucket has to come back to drop the object too. Also, I have used gears to increase the torque of the motor. Even after adding gears, if the torque isn’t enough, you could add counter weights.
This is what my final bull looked like:
ALGORITHM:
So, any idea what the algorithm would look like?
If this is what you guessed you are surely a genius!
• If sensor1 is on, go straight till sensor4 detects object.
• If sensor1 is off, come back and turn.
• If sensor 2 is detecting, come back and turn right.
• If sensor3 is detecting, come back and turn left.
• If sensor4 is detecting, pick the object.
• If sensor5 is detecting turn right slightly.
Note- All Obstacle Sensors bought from TRI are active low sensors, so “detecting” would mean the sensor is OFF.
PROGRAMCODE:
BEGIN
{
FOREVER
{
IF(SENSOR1 IS OFF) // If boundary is detectd then
{ go back and turn.
RIGHTMOTOR(BACKWARD,100);
LEFTMOTOR(BACKWARD,100);
WAIT(1 SEC);
RIGHTMOTOR(FORWARD,80); //lower RPM used to avoid
Skidding.
LEFTMOTOR(BACKWARD,80);
WAIT(1 SEC);
}
ELSE // Keep moving forward
{
RIGHTMOTOR(FORWARD,100);
LEFTMOTOR(FORWARD,100);
}
IF(SENSOR4 IS OFF) // If object is in front.
{
WAIT (700); //continue to go forward for 700
milliseconds so that the shovel
reaches the object.
CENTREMOTOR (FORWARD,70); // pick up the object
WAIT(1 SEC);
CENTREMOTOR (0,0);
FOREVER
{
IF(SENSOR1 IS OFF) // Check if you have detected the
boundary.
{
RIGHTMOTOR(BACKWARD,100); //Come back and turn to
LEFTMOTOR(BACKWARD,100); stay in the arena.
WAIT(1 SEC);
RIGHTMOTOR(FORWARD,80); //lower RPM used to avoid
Skidding.
LEFTMOTOR(BACKWARD,80);
WAIT(1 SEC);
}
ELSE // keep going straight.
{
RIGHTMOTOR(FORWARD,100);
LEFTMOTOR(FORWARD,100);
}
IF(SENSOR5 IS OFF) //dustbin is in front.
{
WAIT(450); //continue going forward so that shovel is near the bin.
RIGHTMOTOR(0,0);
LEFTMOTOR(0,0);
CENTREMOTOR(BACKWARD,50); // Lower down the
WAIT(1300); shovel to place object
CENTREMOTOR(0,0); in front of dustbin.
RIGHTMOTOR(BACKWARD,100); // go back.
LEFTMOTOR(BACKWARD,100);
WAIT(500);
RIGHTMOTOR(0,0);
LEFTMOTOR(0,0); CENTREMOTOR(FORWARD,50); // raise shovel.
WAIT(1 SEC);
CENTREMOTOR(0,0);
RIGHTMOTOR(FORWARD,100); // go forward to push
the object into the
bin.
LEFTMOTOR(FORWARD,100);
WAIT(1 SEC);
RIGHTMOTOR(BACKWARD,100); // come back.
LEFTMOTOR(BACKWARD,100);
WAIT(1 SEC);
FOREVER //After the task is done
{ stay in standstill position.
RIGHTMOTOR(0,0);
LEFTMOTOR(0,0);
}
}
IF(SENSOR2 IS OFF) // If the right obstacle sensor detects
the dustbin
{
RIGHTMOTOR(BACKWARD,100); // Come back.
LEFTMOTOR(BACKWARD,100);
WAIT(1000);
WHILE(SENSOR5 IS ON) // turn right till
sensor5 detects bin.
{
LEFTMOTOR(FORWARD,80); // to avoid skidding.
RIGHTMOTOR(BACKWARD,80);
} // once sensor5 detects
the object stop turning.
}
IF(SENSOR3 IS OFF) // If the left obstacle
sensor detects the
dustbin.
{
RIGHTMOTOR(BACKWARD,100); // Come back.
LEFTMOTOR(BACKWARD,100);
WAIT(1000);
WHILE(SENSOR5 IS ON) //turn left till front obstacle
sensor5 detects the bin.
{
LEFTMOTOR(BACKWARD,80); //lower RPM used to
RIGHTMOTOR(FORWARD,80); avoid skidding.
} // once sensor5 detects the bin
stop turning
}
}
} // forever loop closed
IF(SENSOR2 IS OFF) // If the right obstacle sensor detects the
object.
{
RIGHTMOTOR(BACKWARD,100); // Come back and turn right till front obstacle sensor5
detects the object.
LEFTMOTOR(BACKWARD,100);
WAIT(1000);
WHILE(SENSOR5 IS ON)
{
LEFTMOTOR(FORWARD,100);
RIGHTMOTOR(BACKWARD,100);
} // once front obstacle sensor5
detects object stop turning
}
IF(SENSOR3 IS OFF) // If the left obstacle sensor detects the object.
{
RIGHTMOTOR(BACKWARD,100); // Come back and turn till
LEFTMOTOR(BACKWARD,100); front obstacle SENSOR 5
WAIT(1000); detects the object.
WHILE(SENSOR5 IS ON)
{
LEFTMOTOR(BACKWARD,100);
RIGHTMOTOR(FORWARD,100);
} // once front obstacle sensor5 detects
object stop turning.
}
IF(SENSOR5 IS OFF) // If front obstacle sensor detects the object then turn
slightly to make SENSOR4 detect the object.
{
RIGHTMOTOR(BACKWARD,100);
LEFTMOTOR(FORWARD,100);
WAIT(34);
}
}
} END
To catch a glimpse of what your i-MACH DOZER is up to,check out this video.
http://www.youtube.com/watch?v=Rg1swZtBR_g
So go on and build one for yourself, and do remember 2 give it a cool, funky, and a raging look!
You may read my program once and try to understand the logic. If your program isn’t working you may refer the above one for debugging. THERE IS NOTHING AS GOOD AS TO SEE YOUR FIRST VERY OWN COMPLEX PROGRAM WORK. So please DO NOT blindly copy the above program.
Also, you could build a gripper with the same algorithm and program, only the gripping mechanism is to be added. Do remember to adjust the “wait” or “delay” command of the gripper motor in such a way that the gripper could hold the object easily.
So go on and try it out! Everything need not be copied, you could very much use your imagination and build cooler stuffs. We too are open for your suggestions, which could be posted in the forums.













