<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>resources &#187; robo.in</title>
	<atom:link href="http://www.thinklabs.in/resources/?feed=rss2&#038;cat=16" rel="self" type="application/rss+xml" />
	<link>http://www.thinklabs.in/resources</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 22 May 2010 10:08:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Simple Conductivity sensor to detect metals</title>
		<link>http://www.thinklabs.in/resources/?p=113</link>
		<comments>http://www.thinklabs.in/resources/?p=113#comments</comments>
		<pubDate>Sat, 26 Dec 2009 07:58:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[TRICKS Fundaes]]></category>
		<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=113</guid>
		<description><![CDATA[  

Conductivity Test
In order to detect the presence of conductors,the simplest test is the Conductivity Test. Conductivity of a substance is defined as ‘the ability or power to conduct or transmit heat, electricity or sound’. Here what we use is the ability to transmit electricity. When an electrical potential difference is placed across a [...]]]></description>
			<content:encoded><![CDATA[<p align="right"> <script src="http://cdn.socialtwist.com/2009040614570/script.js" type="text/javascript"> </script><a href="http://tellafriend.socialtwist.com:80" onclick="return false;" class="st-taf" style="border: 0pt none ; margin: 0pt; padding: 0pt;"><br />
<img src="http://images.socialtwist.com/2009040614570/button.png" onmouseout="hideHoverMap(this)" onmouseover="showHoverMap(this, '2009040614570', window.location, document.title)" onclick="cw(this, {id:'2009040614570', link: window.location, title: document.title });" alt="SocialTwist Tell-a-Friend" style="border: 0pt none ; margin: 0pt; padding: 0pt;"></a></p>
<p><strong>Conductivity Test</strong></p>
<p><!--[if gte vml 1]&amp;gt;                                                  --><!--[if !vml]--><!--[endif]-->In order to detect the presence of conductors,the simplest test is the <strong>Conductivity Test</strong>. Conductivity of a substance is defined as ‘<em>the ability or power to conduct or transmit heat, electricity or sound</em>’. Here what we use is the ability to transmit electricity. When an electrical potential difference is placed across a conductor, its movable charges  flow, giving rise to electric current. We would be using this property of conductors to complete the circuit connections as shown below. The material being a conductor completes the circuit and the LED glows.If the material is an insulator, the circuit will not be completed and the LED would remain off thereby indicating presence of an insulator.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=113</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bull in the Ring</title>
		<link>http://www.thinklabs.in/resources/?p=112</link>
		<comments>http://www.thinklabs.in/resources/?p=112#comments</comments>
		<pubDate>Sat, 26 Dec 2009 07:57:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[TRICKS Fundaes]]></category>
		<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=112</guid>
		<description><![CDATA[Work D
Work Done By- Pranav Ramkrishnan, Std.12th
Objective:
This is an extremely simplistic, yet interesting application using the i-Mach kit to make something that can do real and useful work. The basic aim of this task is to build and program an autonomous robot that can detect objects within its surrounding environment and having detected the object, [...]]]></description>
			<content:encoded><![CDATA[<p>Work D</p>
<p>Work Done By- <strong>Pranav Ramkrishnan, Std.12th</strong></p>
<p><strong>Objective</strong>:</p>
<p>This is an extremely simplistic, yet interesting application using the i-Mach kit to make something that can do real and useful work. The basic aim of this task is to build and program an autonomous robot that can detect objects within its surrounding environment and having detected the object, the robot must push the object out of the arena.<span id="more-230"></span> However the robot must at all times remain within the arena, just as a bull must remain within the bull fighting arena. Imagine if the bull left the ring, it would result in chaos!</p>
<p>This problem statement adapted in this task is one that has been used in several international robotic competitions and events at high school and college levels , however it has never been attempted with the i-Mach kit, hence giving us opportunity to explore the boundaries of this kit.</p>
<p>To make a robotic application, we shall be using metal cans, as objects and design an arena which is black and has a white boundary around it.</p>
<p><strong>Description of the Robot:</strong></p>
<p>The structure of this robot was made using the mechano parts provided in the i-Mach kit. It was important to design a framework which is both sturdy and compact. Before going into the explanation of the physical structure, here is a list of sensors used to make this particular version of the “Bull”:</p>
<p><!--[if !supportLists]-->·        <!--[endif]-->3 Obstacle Sensor – used to detect the metal can (object), the arrangement of these sensors has been discussed below.</p>
<p><!--[if !supportLists]-->·        <!--[endif]-->2 Line sensors – used to sense the edge of the arena (white) so that the robot does not go out of the arena.</p>
<p>Here is a picture of “Bull” and the design as been explained below:</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/7.JPG" title="7.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/7.JPG" alt="7.JPG" width="488" height="326"></a></p>
<p><em>Figure 1. “The Bull”</em></p>
<p><strong><em>Explanation: </em></strong></p>
<p>Obstacle Sensors:</p>
<p>Sensor2, Sensor3 and Sensor4 are all obstacle sensors, that are used to detect the presence of the object, in close proximity to the robot. In order to make sure that the robot is able to read an object from all angles, the sensors are placed, one facing forward – so that if an object(metal can) is in front, the robot will charge towards it and then push it out. Two more obstacle sensors were placed on the two sides of the robot (left and right) so that if the robot as no object in front of it, but one on either sides, it must be able to detect it, turn to the respective side and then charge forwards to push the can out of the arena.</p>
<p>Line Sensors:</p>
<p>Sensor6 and Sensor6 are line sensors.The placement of line sensors is fairly obvious. The sole purpose of the line sensors is to give a feedback (HIGH) when the sensor is over a white surface and a LOW feedback when the sensor is over a black surface. It is interesting to consider why only two line sensors were placed, one front and back and why no more line sensors were place on either sides of the robot. Well, the answer to this is that the robot will be only pushing the metal can from the front. So Sensor6 is the main line sensor that will be detecting the edge. Sensor5 is an extra sensor, which is used so that in case the robot reversing and moves towards the line, it detects the line so that the robot can move forward. So since the robot will not be moving sideways, there is no need to place anymore line sensors on the side, like we placed obstacle sensors on the side as well.</p>
<p><!--[if gte vml 1]&amp;gt;                                                  --><!--[if !vml]--><!--[endif]-->Now coming to the <strong><em>Physical design</em>:</strong></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/51.JPG" title="51.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/51.JPG" alt="51.JPG" width="424" height="407"></a></p>
<p><em>Figure 2: </em></p>
<p>In order to build a stable robot, one must keep the robot as low as possible, also since this has a specific function to push an object, the robot must have a grabbing mechanism. Shown in <em>Figure 2</em>, this particular robot can only hold a specific size of obstacle, although is the object is bigger then the robot could still push it forward (of course, provided the motors used can support the load!).  While building this grabbing mechanism, one must also remember to protect the sensors from impact with the object. One can make the grabbing mechanism longer and wider, but if that is done, the robot is going to start leaning forward, and may not be as stable as before (centre of gravity will shift forward). Further, the robot will become a lot slower, and generally speaking bulls are fast animals!!</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/42.JPG" title="42.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/42.JPG" alt="42.JPG" width="455" height="274"></a></p>
<p><em>Figure 3: “The Bull” at work</em></p>
<p><strong> </strong></p>
<p><strong>Algorithm:</strong></p>
<p>The algorithm logic used to program this robot is fairly easy to comprehend.</p>
<p>Points to keep in mind while reading this algorithm:</p>
<p><!--[if !supportLists]-->Ø <!--[endif]-->  Line sensor is ON over a white surface and OFF over a black surface</p>
<p><!--[if !supportLists]-->Ø <!--[endif]-->  Obstacle sensor is OFF when an object is in front of it and ON when there is no object in front of it.</p>
<p>So the algorithm logic is as follows:</p>
<p><!--[if !supportLists]-->1.     <!--[endif]-->Move forward.</p>
<p><!--[if !supportLists]-->2.     <!--[endif]-->If Sensor6 is ON, then go back, turn around and move forward (this is detecting a white line and then moving away from it)</p>
<p><!--[if !supportLists]-->3.     <!--[endif]-->While moving forward check if Sensor2 is OFF, if Sensor2 is OFF continue going forward, until line.</p>
<p><!--[if !supportLists]-->4.     <!--[endif]-->While moving forward check if Sensor3 is OFF, if Sensor3 is OFF, then stop and keep turning to the right until Sensor2 is OFF (this means the object is now in front of the robot). Then move forward with the metal can to the edge.</p>
<p><!--[if !supportLists]-->5.     <!--[endif]-->While moving forward check if Sensor4 is OFF, if Sensor4 is OFF, then stop and keep turning to the left until Sensor2 is OFF, then move forward.</p>
<p><!--[if !supportLists]-->6.     <!--[endif]-->If Sensor5 is ON, then move forward (white edge is behind the robot and it has to move forward).</p>
<p><strong>PROGRAM:</strong></p>
<p>BEGIN</p>
<p>{</p>
<p>FOREVER</p>
<p>{</p>
<p>IF(SENSOR6 IS ON) // Forward Line Sensor detecting a white edge.</p>
<p>{</p>
<p>RIGHTMOTOR(FORWARD,100); // Inspite of detecting the white edge the robot</p>
<p>continues forward for 250 milliseconds to ensure</p>
<p>LEFTMOTOR(FORWARD,100); // that the object has been completely pushed</p>
<p>out of the arena.</p>
<p>WAIT(250);</p>
<p>RIGHTMOTOR(0,0); // Stops for 500 milliseconds</p>
<p>LEFTMOTOR(0,0);</p>
<p>WAIT(500);</p>
<p>RIGHTMOTOR(BACKWARD,100); // then comes backward for 1 sec, to avoid</p>
<p>the line</p>
<p>LEFTMOTOR(BACKWARD,100);</p>
<p>WAIT(1000);</p>
<p>RIGHTMOTOR(FORWARD,100);  // takes a differential right turn (turning on the</p>
<p>spot) for 1.5 seconds,</p>
<p>LEFTMOTOR(BACKWARD,100); // this is approximately 180 degree on full</p>
<p>batteries.</p>
<p>WAIT(1500);</p>
<p>}</p>
<p>IF(SENSOR6 IS OFF) // Case when the robot is in the arena, that is on a black</p>
<p>surface, the robot moves forward.</p>
<p>{</p>
<p>RIGHTMOTOR(FORWARD,100);</p>
<p>LEFTMOTOR(FORWARD,100);</p>
<p>IF(SENSOR2 IS OFF) // Conditions while moving forward</p>
<p>{</p>
<p>RIGHTMOTOR(FORWARD,100);     // Case 1 &#8211; Object in front of the robot, the</p>
<p>robot continues forward, until the white</p>
<p>edge.</p>
<p>LEFTMOTOR(FORWARD,100);</p>
<p>}</p>
<p>IF(SENSOR4 IS OFF)</p>
<p>{                                           // Case 2 &#8211; Object on the left side.</p>
<p>RIGHTMOTOR(0,0);</p>
<p>LEFTMOTOR(0,0);</p>
<p>WAIT(500);</p>
<p>WHILE(SENSOR2 IS ON)</p>
<p>{</p>
<p>RIGHTMOTOR(FORWARD,100); // Turning differentially to the left while</p>
<p>Senso2 reads the object</p>
<p>LEFTMOTOR(BACKWARD,100);</p>
<p>}</p>
<p>RIGHTMOTOR(FORWARD,100); // Pushing the object out after turning.</p>
<p>LEFTMOTOR(FORWARD,100);</p>
<p>}</p>
<p>IF(SENSOR3 IS OFF)</p>
<p>{</p>
<p>RIGHTMOTOR(0,0);            // Case 3 &#8211; Object on right side</p>
<p>LEFTMOTOR(0,0);</p>
<p>WAIT(500);</p>
<p>WHILE(SENSOR2 IS ON)</p>
<p>{</p>
<p>LEFTMOTOR(FORWARD,100); // Once again turning differentially until</p>
<p>Sensor2  reads the object</p>
<p>RIGHTMOTOR(BACKWARD,100);</p>
<p>}</p>
<p>RIGHTMOTOR(FORWARD,100); // Pushing the object out of the arena.</p>
<p>LEFTMOTOR(FORWARD,100);</p>
<p>}</p>
<p>}</p>
<p>IF(SENSOR5 IS ON)  // Behind line sensor detects the white edge. The robot</p>
<p>moves forward to avoid edge. No pushing from the back.</p>
<p>{</p>
<p>RIGHTMOTOR(FORWARD,100);</p>
<p>LEFTMOTOR(FORWARD,100);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>END</p>
<p>Here is the Video link to have a glimpse of what the bull in the ring is exactly upto:</p>
<p><a href="http://www.youtube.com/watch?v=wQVAB_a8Mtg">http://www.youtube.com/watch?v=SSl5xa6xDNM<br />
</a></p>
<p><strong>Further Development (Food for Thought):</strong></p>
<p>Although this robot is successful in accomplishing its task, that is to push away the metal cans from the arena without leaving the arena, there are possibilities for development and enhancement:</p>
<p>Physical/ Structural:</p>
<p><!--[if !supportLists]-->1.     <!--[endif]-->One can think about making a lifting mechanism instead of a gripping mechanism, something like a crane or a forklift.</p>
<p><!--[if !supportLists]-->2.     <!--[endif]-->The Robot can be used as a arena cleaner if can be made faster and stronger, so that it can even clean bigger areas.</p>
<p><!--[if !supportLists]-->3.     <!--[endif]-->Design an arm such that the robot can lift objects of different dimensions.</p>
<p>Abilities:</p>
<p><!--[if !supportLists]-->1.     <!--[endif]-->One could program the robot to pick up an object, come to a particular spot and drop it.</p>
<p><!--[if !supportLists]-->2.     <!--[endif]-->Instead of picking up every single object from the arena, the robot can be programmed in such a way that it only selects a particular type of object.</p>
<p><!--[if !supportLists]-->3.     <!--[endif]-->This can be further expanded into thinking about sorting out random objects in an enclosed arena into sorted groups.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=112</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Upgrading your i-MACH into A BULL DOZER</title>
		<link>http://www.thinklabs.in/resources/?p=93</link>
		<comments>http://www.thinklabs.in/resources/?p=93#comments</comments>
		<pubDate>Sat, 26 Dec 2009 07:41:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[TRICKS Fundaes]]></category>
		<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=93</guid>
		<description><![CDATA[Work 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 [...]]]></description>
			<content:encoded><![CDATA[<p>Work done by-<strong>Krishna Kumar Rao, Std.X</strong><br />
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.<br />
Bull Dozer<br />
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!<br />
<span id="more-201"></span>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.<br />
•	Could sense the object.<br />
•	Pick it up on its own.</p>
<p>•	Throw it into the dustbin!(or any other place u want to).<br />
Building one would require a few extra parts which are not included in the<br />
i-MACH kit. The list of such parts is given below-<br />
•	2 TSOP Obstacle Sensors<br />
•	1 DC Geared Motor(500mA,6v)<br />
•	Few mechano parts or any kind of aluminum strips</p>
<p>Keep in mind that we are building a bot for white colored arena bordered by a black line.<br />
We would be using 4 obstacle sensors and 1 line sensor for building our bot.</p>
<p>Here are the sensor placements I have chosen.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/14.JPG" title="14.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/14.JPG" alt="14.JPG" width="459" height="351"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/12.JPG" title="12.JPG"></a><br />
The 2 sensors at the front (sensors 4 &amp; 5) can also be replaced by one sensor but in such a case detecting the dustbin would be slightly difficult.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/25.JPG" title="25.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/25.JPG" alt="25.JPG" width="456" height="345"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/23.JPG" title="23.JPG"><br />
</a>With this, you could very easily lift things and throw it into the dustbins.<br />
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.<br />
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.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/31.JPG" title="31.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/31.JPG" alt="31.JPG" width="453" height="341"></a></p>
<p>This is what my final bull looked like:</p>
<p><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/41.JPG" alt="41.JPG" width="468" height="351"></p>
<p><strong>ALGORITHM:</strong><br />
So, any idea what the algorithm would look like?<br />
If this is what you guessed you are surely a genius!<br />
•	If sensor1 is on, go straight till sensor4 detects object.<br />
•	If sensor1 is off, come back and turn.<br />
•	If sensor 2 is detecting, come back and turn right.<br />
•	If sensor3 is detecting, come back and turn left.<br />
•	If sensor4 is detecting, pick the object.</p>
<p>•	If sensor5 is detecting turn right slightly.</p>
<p><strong>Note</strong>- All Obstacle Sensors bought from TRI are active low sensors, so “detecting” would mean the sensor is OFF.</p>
<p><strong>PROGRAMCODE:</strong></p>
<p>BEGIN<br />
{<br />
FOREVER<br />
{<br />
IF(SENSOR1 IS OFF)                                                             // If  boundary is detectd then</p>
<p>{                                                                                                           go  back and turn.<br />
RIGHTMOTOR(BACKWARD,100);<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1 SEC);<br />
RIGHTMOTOR(FORWARD,80);    //lower RPM used to avoid<br />
Skidding.<br />
LEFTMOTOR(BACKWARD,80);<br />
WAIT(1 SEC);<br />
}</p>
<p>ELSE	                     					                                                // Keep moving forward<br />
{<br />
RIGHTMOTOR(FORWARD,100);<br />
LEFTMOTOR(FORWARD,100);<br />
}<br />
IF(SENSOR4 IS OFF)   				                    // If object is in front.<br />
{<br />
WAIT (700);   			                                              //continue to go forward for 700<br />
milliseconds so that the shovel</p>
<p>reaches the object.<br />
CENTREMOTOR (FORWARD,70);   // pick up the object<br />
WAIT(1 SEC);<br />
CENTREMOTOR (0,0);<br />
FOREVER<br />
{<br />
IF(SENSOR1 IS OFF)    	                       // Check if you have detected the<br />
boundary.<br />
{</p>
<p>RIGHTMOTOR(BACKWARD,100);        //Come back and turn to<br />
LEFTMOTOR(BACKWARD,100);                             stay in the arena.<br />
WAIT(1 SEC);</p>
<p>RIGHTMOTOR(FORWARD,80);        //lower RPM used to avoid<br />
Skidding.<br />
LEFTMOTOR(BACKWARD,80);<br />
WAIT(1 SEC);<br />
}<br />
ELSE	      				                                                 // keep going straight.</p>
<p>{<br />
RIGHTMOTOR(FORWARD,100);<br />
LEFTMOTOR(FORWARD,100);<br />
}</p>
<p>IF(SENSOR5 IS OFF)   		                             //dustbin is in front.<br />
{<br />
WAIT(450);                                            //continue going forward so	 		                        that shovel is near the bin.<br />
RIGHTMOTOR(0,0);<br />
LEFTMOTOR(0,0);</p>
<p>CENTREMOTOR(BACKWARD,50);          //  Lower down the<br />
WAIT(1300);                                                                                             shovel to place object<br />
CENTREMOTOR(0,0);                             in front of dustbin.<br />
RIGHTMOTOR(BACKWARD,100);    	        //  go back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(500);<br />
RIGHTMOTOR(0,0);<br />
LEFTMOTOR(0,0);									CENTREMOTOR(FORWARD,50); 	        // raise shovel.<br />
WAIT(1 SEC);</p>
<p>CENTREMOTOR(0,0);<br />
RIGHTMOTOR(FORWARD,100);                              // go forward to push<br />
the object into the<br />
bin.<br />
LEFTMOTOR(FORWARD,100);<br />
WAIT(1 SEC);<br />
RIGHTMOTOR(BACKWARD,100);                       // come back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1 SEC);</p>
<p>FOREVER           			                                                                                          //After the task is done<br />
{           				                                                                                                                                                                       stay in standstill				                                                                    position.<br />
RIGHTMOTOR(0,0);<br />
LEFTMOTOR(0,0);<br />
}<br />
}</p>
<p>IF(SENSOR2 IS OFF)                                        // If the right obstacle sensor detects<br />
the dustbin<br />
{</p>
<p>RIGHTMOTOR(BACKWARD,100);               // Come back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1000);<br />
WHILE(SENSOR5 IS ON)  			                                    // turn right till<br />
sensor5 detects bin.<br />
{<br />
LEFTMOTOR(FORWARD,80);                      // to avoid skidding.<br />
RIGHTMOTOR(BACKWARD,80);<br />
}                                                                           		                                                                                                                    // once sensor5 detects</p>
<p>the object stop turning.</p>
<p>}<br />
IF(SENSOR3 IS OFF)  	                                              // If the left obstacle<br />
sensor detects the<br />
dustbin.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);           // Come back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1000);</p>
<p>WHILE(SENSOR5 IS ON)  		                        //turn left till front obstacle<br />
sensor5 detects the bin.<br />
{<br />
LEFTMOTOR(BACKWARD,80); 	            //lower RPM used  to<br />
RIGHTMOTOR(FORWARD,80);                         avoid skidding.<br />
} 			                                                                                                                                                      // once sensor5 detects the bin<br />
stop turning<br />
}<br />
}</p>
<p>}                                                                     						                                                                       // forever loop closed<br />
IF(SENSOR2 IS OFF)      			                              // If the right obstacle sensor detects the<br />
object.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);         // Come back and turn right till                                					           front obstacle sensor5<br />
detects the object.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1000);<br />
WHILE(SENSOR5 IS ON)</p>
<p>{<br />
LEFTMOTOR(FORWARD,100);<br />
RIGHTMOTOR(BACKWARD,100);<br />
}  					                                                                                                                                                // once front obstacle sensor5<br />
detects object  stop turning<br />
}</p>
<p>IF(SENSOR3 IS OFF)  		                          // If the left obstacle sensor detects the object.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);    // Come back and turn till</p>
<p>LEFTMOTOR(BACKWARD,100);                                       front obstacle SENSOR 5<br />
WAIT(1000);                                                                                                                                    detects the object.<br />
WHILE(SENSOR5 IS ON)<br />
{<br />
LEFTMOTOR(BACKWARD,100);<br />
RIGHTMOTOR(FORWARD,100);<br />
}                                                                                                        // once front obstacle sensor5 detects<br />
object stop turning.<br />
}</p>
<p>IF(SENSOR5 IS OFF)                              // If front obstacle sensor detects the object then turn<br />
slightly to make SENSOR4 detect the object.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);<br />
LEFTMOTOR(FORWARD,100);<br />
WAIT(34);<br />
}<br />
}<br />
}                                                                                                                                                                                                                 END</p>
<p>To catch a glimpse of what your i-MACH DOZER is up to,check out this video.</p>
<p><a href="http://www.youtube.com/watch?v=Rg1swZtBR_g" title="bull dozer">http://www.youtube.com/watch?v=Rg1swZtBR_g </a></p>
<p>So go on and build one for yourself, and do remember 2 give it a cool, funky, and a raging look!<br />
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.<br />
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.<br />
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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=93</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Junction Detector using iPitara</title>
		<link>http://www.thinklabs.in/resources/?p=88</link>
		<comments>http://www.thinklabs.in/resources/?p=88#comments</comments>
		<pubDate>Sat, 26 Dec 2009 07:34:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=88</guid>
		<description><![CDATA[ Consider a grid, we want the robot to move from one corner of the grid to another. The most important part of being able to do so would be to detect a junction. Let us see if we can do this…
Here is what the grid looks like:

The first thing that strikes me is that [...]]]></description>
			<content:encoded><![CDATA[<p> Consider a grid, we want the robot to move from one corner of the grid to another. The most important part of being able to do so would be to <em>detect</em> a junction. Let us see if we can do this…<span id="more-377"></span></p>
<p>Here is what the grid looks like:</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/grid.JPG" title="Basic Grid"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/grid.JPG" alt="Basic Grid"></a></p>
<p>The first thing that strikes me is that maybe I can develop on the concept of a line sensor. So I use three of the IR sensors.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/010.JPG" title="iPitara on black line"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/010.JPG" alt="iPitara on black line"></a></p>
<h2>Thought process:</h2>
<p>The most basic way to detect a junction would be that if all the three sensors detect the black line then, a junction has been reached and for other areas it acts like a basic line follower. If the right sensor detect the line then turn right and if the left sensor detects a line then turn left.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/111.JPG" title="iPitara on Junction"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/111.JPG" alt="iPitara on Junction"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/001.JPG" title="iPitara turning Right"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/001.JPG" alt="iPitara turning Right"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/100.JPG" title="iPitara turning left"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/100.JPG" alt="iPitara turning left"></a></p>
<h2>Algorithm:</h2>
<p><code><br />
1: start<br />
2: if IR1, IR3 on WHITE AND IR2 on BLACK<br />
3: then GO FWD<br />
4: if IR1 on BLACK AND IR2, IR3 on WHITE<br />
5: then TURN LEFT<br />
6: if IR3 on BLACK AND IR1, IR2 on WHITE</p>
<p>7: then TURN RIGHT<br />
8: if IR1, IR2, IR3 on BLACK<br />
9: then (junction detected)<br />
10: go BACK to STEP 2<br />
11: end<br />
</code></p>
<p>So now that we have detected the junction we can program the robot to go left and right alternately on each junction to reach the other corner of the grid. Try it out!</p>
<p><em>You can use basic black electric tape to make the grid on the floor.</em></p>
<p>Consider a grid, we want the robot to move from one corner of the grid to another. The most important part of being able to do so would be to <em>detect</em> a junction. Let us see if we can do this…<span id="more-377"></span></p>
<p>Here is what the grid looks like:</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/grid.JPG" title="Basic Grid"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/grid.JPG" alt="Basic Grid"></a></p>
<p>The first thing that strikes me is that maybe I can develop on the concept of a line sensor. So I use three of the IR sensors.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/010.JPG" title="iPitara on black line"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/010.JPG" alt="iPitara on black line"></a></p>
<h2>Thought process:</h2>
<p>The most basic way to detect a junction would be that if all the three sensors detect the black line then, a junction has been reached and for other areas it acts like a basic line follower. If the right sensor detect the line then turn right and if the left sensor detects a line then turn left.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/111.JPG" title="iPitara on Junction"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/111.JPG" alt="iPitara on Junction"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/001.JPG" title="iPitara turning Right"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/001.JPG" alt="iPitara turning Right"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/100.JPG" title="iPitara turning left"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/100.JPG" alt="iPitara turning left"></a></p>
<h2>Algorithm:</h2>
<p><code><br />
1: start<br />
2: if IR1, IR3 on WHITE AND IR2 on BLACK<br />
3: then GO FWD<br />
4: if IR1 on BLACK AND IR2, IR3 on WHITE<br />
5: then TURN LEFT<br />
6: if IR3 on BLACK AND IR1, IR2 on WHITE</p>
<p>7: then TURN RIGHT<br />
8: if IR1, IR2, IR3 on BLACK<br />
9: then (junction detected)<br />
10: go BACK to STEP 2<br />
11: end<br />
</code></p>
<p>So now that we have detected the junction we can program the robot to go left and right alternately on each junction to reach the other corner of the grid. Try it out!</p>
<p><em>You can use basic black electric tape to make the grid on the floor.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=88</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photovore using iPitara</title>
		<link>http://www.thinklabs.in/resources/?p=78</link>
		<comments>http://www.thinklabs.in/resources/?p=78#comments</comments>
		<pubDate>Sat, 26 Dec 2009 07:17:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=78</guid>
		<description><![CDATA[
Photovore is a robot that moves towards bright light.

Here we will be making a photovore using the iPitara kit. We will need a “Light Sensor” for making this. To make a light sensor we will use something called LDR or a Light Dependant Resistance.


It is basically a resistance, but this resistance changes with change in [...]]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/h-DH6nNYfHk&amp;hl=en&amp;fs=1&amp;"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/h-DH6nNYfHk&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></object></p>
<p>Photovore is a robot that moves towards bright light.</p>
<p><a href="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-152.jpg"><img class="alignnone size-medium wp-image-741" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-152-300x225.jpg" alt="" width="300" height="225"></a></p>
<p>Here we will be making a photovore using the iPitara kit. We will need a “Light Sensor” for making this. To make a light sensor we will use something called LDR or a Light Dependant Resistance.</p>
<p><span id="more-723"></span></p>
<p><a href="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-156.jpg"><img class="alignnone size-medium wp-image-732" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-156-300x225.jpg" alt="" width="300" height="225"></a></p>
<p>It is basically a resistance, but this resistance changes with change in ambient light. More the light lesser is the resistance. We can use this property to be able to detect how much light is there around the robot.</p>
<p>We will use this circuit to make 2 light sensors.</p>
<p><a href="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/tollcircuit.png"><img class="alignnone size-medium wp-image-727" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/tollcircuit-237x300.png" alt="" width="237" height="300"></a></p>
<p>Using this circuit, a simple Light Sensor module can be made:</p>
<p><a href="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-162.jpg"><img class="alignnone size-medium wp-image-733" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-162-300x225.jpg" alt="" width="300" height="225"></a></p>
<p>Connecting this to the iPitara kit:</p>
<p><a href="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-144.jpg"><img class="alignnone size-medium wp-image-738" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-144-300x225.jpg" alt="" width="300" height="225"></a><a href="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-149.jpg"><img class="alignnone size-medium wp-image-737" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/pic-149-300x225.jpg" alt="" width="300" height="225"></a></p>
<p>Basically what happens is that, as the intensity of light changes, the resistance of the LDR changes and this changes the voltage at the DATA pin. This voltage is measured by the iPitara kit and we can get a calibration value for the LDR using the built-in “Calibrate” function of the iPitara kit.</p>
<p>The circuit is basically a Voltage divider network. Read more about it on Wikipedia <a href="http://en.wikipedia.org/wiki/Voltage_divider">here</a>.</p>
<p>Now for the programming: (click to enlarge)</p>
<p><a href="http://www.youtube.com/watch?v=h-DH6nNYfHk"><img class="alignnone size-medium wp-image-728" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/photovore-286x300.png" alt="" width="286" height="300"></p>
<p>/h2></p>
<p>p>Now for the programming: (click to enlarge)</p>
<p><a href="http://www.youtube.com/watch?v=h-DH6nNYfHk"><img class="alignnone size-medium wp-image-728" src="http://www.thinklabs.in/resources/wp-content/uploads/2009/06/photovore-286x300.png" alt="" width="286" height="300"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=78</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading your i-MACH into A BULL DOZER</title>
		<link>http://www.thinklabs.in/resources/?p=71</link>
		<comments>http://www.thinklabs.in/resources/?p=71#comments</comments>
		<pubDate>Sat, 26 Dec 2009 04:35:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[TRICKS Fundaes]]></category>
		<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=71</guid>
		<description><![CDATA[W
Work 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 [...]]]></description>
			<content:encoded><![CDATA[<p>W</p>
<p>Work done by-<strong>Krishna Kumar Rao, Std.X</strong><br />
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.<br />
Bull Dozer<br />
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!<br />
<span id="more-201"></span>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.<br />
•	Could sense the object.<br />
•	Pick it up on its own.</p>
<p>•	Throw it into the dustbin!(or any other place u want to).<br />
Building one would require a few extra parts which are not included in the<br />
i-MACH kit. The list of such parts is given below-<br />
•	2 TSOP Obstacle Sensors<br />
•	1 DC Geared Motor(500mA,6v)<br />
•	Few mechano parts or any kind of aluminum strips</p>
<p>Keep in mind that we are building a bot for white colored arena bordered by a black line.<br />
We would be using 4 obstacle sensors and 1 line sensor for building our bot.</p>
<p>Here are the sensor placements I have chosen.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/14.JPG" title="14.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/14.JPG" alt="14.JPG" width="459" height="351"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/12.JPG" title="12.JPG"></a><br />
The 2 sensors at the front (sensors 4 &amp; 5) can also be replaced by one sensor but in such a case detecting the dustbin would be slightly difficult.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/25.JPG" title="25.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/25.JPG" alt="25.JPG" width="456" height="345"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/23.JPG" title="23.JPG"><br />
</a>With this, you could very easily lift things and throw it into the dustbins.<br />
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.<br />
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.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/31.JPG" title="31.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/31.JPG" alt="31.JPG" width="453" height="341"></a></p>
<p>This is what my final bull looked like:</p>
<p><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/06/41.JPG" alt="41.JPG" width="468" height="351"></p>
<p><strong>ALGORITHM:</strong><br />
So, any idea what the algorithm would look like?<br />
If this is what you guessed you are surely a genius!<br />
•	If sensor1 is on, go straight till sensor4 detects object.<br />
•	If sensor1 is off, come back and turn.<br />
•	If sensor 2 is detecting, come back and turn right.<br />
•	If sensor3 is detecting, come back and turn left.<br />
•	If sensor4 is detecting, pick the object.</p>
<p>•	If sensor5 is detecting turn right slightly.</p>
<p><strong>Note</strong>- All Obstacle Sensors bought from TRI are active low sensors, so “detecting” would mean the sensor is OFF.</p>
<p><strong>PROGRAMCODE:</strong></p>
<p>BEGIN<br />
{<br />
FOREVER<br />
{<br />
IF(SENSOR1 IS OFF)                                                             // If  boundary is detectd then</p>
<p>{                                                                                                           go  back and turn.<br />
RIGHTMOTOR(BACKWARD,100);<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1 SEC);<br />
RIGHTMOTOR(FORWARD,80);    //lower RPM used to avoid<br />
Skidding.<br />
LEFTMOTOR(BACKWARD,80);<br />
WAIT(1 SEC);<br />
}</p>
<p>ELSE	                     					                                                // Keep moving forward<br />
{<br />
RIGHTMOTOR(FORWARD,100);<br />
LEFTMOTOR(FORWARD,100);<br />
}<br />
IF(SENSOR4 IS OFF)   				                    // If object is in front.<br />
{<br />
WAIT (700);   			                                              //continue to go forward for 700<br />
milliseconds so that the shovel</p>
<p>reaches the object.<br />
CENTREMOTOR (FORWARD,70);   // pick up the object<br />
WAIT(1 SEC);<br />
CENTREMOTOR (0,0);<br />
FOREVER<br />
{<br />
IF(SENSOR1 IS OFF)    	                       // Check if you have detected the<br />
boundary.<br />
{</p>
<p>RIGHTMOTOR(BACKWARD,100);        //Come back and turn to<br />
LEFTMOTOR(BACKWARD,100);                             stay in the arena.<br />
WAIT(1 SEC);</p>
<p>RIGHTMOTOR(FORWARD,80);        //lower RPM used to avoid<br />
Skidding.<br />
LEFTMOTOR(BACKWARD,80);<br />
WAIT(1 SEC);<br />
}<br />
ELSE	      				                                                 // keep going straight.</p>
<p>{<br />
RIGHTMOTOR(FORWARD,100);<br />
LEFTMOTOR(FORWARD,100);<br />
}</p>
<p>IF(SENSOR5 IS OFF)   		                             //dustbin is in front.<br />
{<br />
WAIT(450);                                            //continue going forward so	 		                        that shovel is near the bin.<br />
RIGHTMOTOR(0,0);<br />
LEFTMOTOR(0,0);</p>
<p>CENTREMOTOR(BACKWARD,50);          //  Lower down the<br />
WAIT(1300);                                                                                             shovel to place object<br />
CENTREMOTOR(0,0);                             in front of dustbin.<br />
RIGHTMOTOR(BACKWARD,100);    	        //  go back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(500);<br />
RIGHTMOTOR(0,0);<br />
LEFTMOTOR(0,0);									CENTREMOTOR(FORWARD,50); 	        // raise shovel.<br />
WAIT(1 SEC);</p>
<p>CENTREMOTOR(0,0);<br />
RIGHTMOTOR(FORWARD,100);                              // go forward to push<br />
the object into the<br />
bin.<br />
LEFTMOTOR(FORWARD,100);<br />
WAIT(1 SEC);<br />
RIGHTMOTOR(BACKWARD,100);                       // come back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1 SEC);</p>
<p>FOREVER           			                                                                                          //After the task is done<br />
{           				                                                                                                                                                                       stay in standstill				                                                                    position.<br />
RIGHTMOTOR(0,0);<br />
LEFTMOTOR(0,0);<br />
}<br />
}</p>
<p>IF(SENSOR2 IS OFF)                                        // If the right obstacle sensor detects<br />
the dustbin<br />
{</p>
<p>RIGHTMOTOR(BACKWARD,100);               // Come back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1000);<br />
WHILE(SENSOR5 IS ON)  			                                    // turn right till<br />
sensor5 detects bin.<br />
{<br />
LEFTMOTOR(FORWARD,80);                      // to avoid skidding.<br />
RIGHTMOTOR(BACKWARD,80);<br />
}                                                                           		                                                                                                                    // once sensor5 detects</p>
<p>the object stop turning.</p>
<p>}<br />
IF(SENSOR3 IS OFF)  	                                              // If the left obstacle<br />
sensor detects the<br />
dustbin.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);           // Come back.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1000);</p>
<p>WHILE(SENSOR5 IS ON)  		                        //turn left till front obstacle<br />
sensor5 detects the bin.<br />
{<br />
LEFTMOTOR(BACKWARD,80); 	            //lower RPM used  to<br />
RIGHTMOTOR(FORWARD,80);                         avoid skidding.<br />
} 			                                                                                                                                                      // once sensor5 detects the bin<br />
stop turning<br />
}<br />
}</p>
<p>}                                                                     						                                                                       // forever loop closed<br />
IF(SENSOR2 IS OFF)      			                              // If the right obstacle sensor detects the<br />
object.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);         // Come back and turn right till                                					           front obstacle sensor5<br />
detects the object.<br />
LEFTMOTOR(BACKWARD,100);<br />
WAIT(1000);<br />
WHILE(SENSOR5 IS ON)</p>
<p>{<br />
LEFTMOTOR(FORWARD,100);<br />
RIGHTMOTOR(BACKWARD,100);<br />
}  					                                                                                                                                                // once front obstacle sensor5<br />
detects object  stop turning<br />
}</p>
<p>IF(SENSOR3 IS OFF)  		                          // If the left obstacle sensor detects the object.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);    // Come back and turn till</p>
<p>LEFTMOTOR(BACKWARD,100);                                       front obstacle SENSOR 5<br />
WAIT(1000);                                                                                                                                    detects the object.<br />
WHILE(SENSOR5 IS ON)<br />
{<br />
LEFTMOTOR(BACKWARD,100);<br />
RIGHTMOTOR(FORWARD,100);<br />
}                                                                                                        // once front obstacle sensor5 detects<br />
object stop turning.<br />
}</p>
<p>IF(SENSOR5 IS OFF)                              // If front obstacle sensor detects the object then turn<br />
slightly to make SENSOR4 detect the object.<br />
{<br />
RIGHTMOTOR(BACKWARD,100);<br />
LEFTMOTOR(FORWARD,100);<br />
WAIT(34);<br />
}<br />
}<br />
}                                                                                                                                                                                                                 END</p>
<p>To catch a glimpse of what your i-MACH DOZER is up to,check out this video.</p>
<p><a href="http://www.youtube.com/watch?v=Rg1swZtBR_g" title="bull dozer">http://www.youtube.com/watch?v=Rg1swZtBR_g </a></p>
<p>So go on and build one for yourself, and do remember 2 give it a cool, funky, and a raging look!<br />
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.<br />
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.<br />
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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=71</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>i-MACH Lifter</title>
		<link>http://www.thinklabs.in/resources/?p=60</link>
		<comments>http://www.thinklabs.in/resources/?p=60#comments</comments>
		<pubDate>Sat, 26 Dec 2009 04:22:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[TRICKS Fundaes]]></category>
		<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=60</guid>
		<description><![CDATA[Work Done by – Pranav Ramkrishnan, Std.12th
Objective:
This is a slightly more complicated application of the i-Mach kit. The main aim of this robot is to travel a designated path, detect an obstacle, pick it up and then bring it back to the starting position. The robot must be made so that the object is lifted [...]]]></description>
			<content:encoded><![CDATA[<p>Work Done by<strong> </strong>– <strong>Pranav Ramkrishnan, Std.12th</strong></p>
<p><strong>Objective:</strong></p>
<p>This is a slightly more complicated application of the i-Mach kit. The main aim of this robot is to travel a designated path, detect an obstacle, pick it up and then bring it back to the starting position. The robot must be made so that the object is lifted up and then dropped back down.<span id="more-240"></span></p>
<p>This particular application, the Lifter BOT can be, and in fact in many countries has already being used in different assembly plants. Although this particular robot is an over simplified version of the actual lifters and stackers, this design could be further developed in plants where things, usually heavy objects have to be moved from one place to another on a repeated basis.</p>
<p>In this application, paper cups will be symbolic of the load to be lifted, and the designated path will be a black line on a white surface, hence once again a line-follower.</p>
<p><strong>Description:</strong></p>
<p>This robot required a special lifting device that had to be made, this has been explained more thoroughly below, however the arrangement of sensors in this bot is similar to the Fire Fighter, since the bot is a going follow a line.</p>
<p>Sensor1 –Right out Line Sensor</p>
<p>Sensor2- Left out Line Sensor(hidden behind)</p>
<p>Sensor3- Left in Line Sensor</p>
<p>Sensor4- Right in Line Sensor<br />
Note:: there is an extra obstacle sensor used (Sensor 5)  in front of the robot to detect the paper cups in front.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/4.JPG" title="4.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/4.JPG" alt="4.JPG" width="506" height="345"></a></p>
<p>However the mechanism that is unique to this robot is its lifting mechanism. In order to make a rigid and stable lifting mechanism, the robot firstly had to be low and the centre of mass had to fall close to the centre of the robot. Although the load (paper cup) is not so heavy, the robot was initially designed to lift a much heavier object.  Thus to achieve this, the smaller wheels with the axles were used to reduce the speed (hence increase the stability) and also maintain balance. To make a rigid lifting mechanism, two motors were used. Now the i-con board that comes with the i-Mach kit has only three motor ports, left, right and centre. Left and right ports are taken up by the driving wheels, so the only free port was the centre port.  Although there is provision of the “Fan” port, this allows only unidirectional motion, we require both forward and backward motions in the case. Hence in order to use two different motors for the lifting mechanism, the two motors were combined and placed in the same port. An advantage of using this idea was that both received the same amount of voltage, hence both arms of the mechanism would move at same speed and direction.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/12.JPG" title="12.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/12.JPG" alt="12.JPG" width="508" height="392"></a></p>
<p><em>Figure 2</em></p>
<p>As <em>Figure 2</em> shows, the rpm of the motors had to be reduce considerably, so that the load carried by them could be increased. This was done by placing a pair of gears that would reduce the output rpm to increase the load.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/22.JPG" title="22.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/22.JPG" alt="22.JPG" width="482" height="343"></a></p>
<p><em>Figure 3</em></p>
<p>Two long plates were connected to each of the larger wheel s(larger angle to turn). They were also connected to each other so that both the arms were in perfect synchronization (this is an additional benefit of using the two motors at the same port) however in order to make sure smooth lifting, the two arms had to be connected to each other. There was a 9 cm gap between the arms to lift and the length of each arm was 13 cm.</p>
<p>Hence when the two motors were moving forward, due to the gears the arms would go down and when they ran backwards the arms would go up.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/32.JPG" title="32.JPG"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/07/32.JPG" alt="32.JPG" width="503" height="372"></a></p>
<p><em>Figure 4 – the Lifter at work</em></p>
<p><strong>Algorithm :</strong></p>
<p>The Algorithm for this is fairly simple:</p>
<p>Follow the line using the line sweeper mechanism i.e. using line sensors 3 &amp; 4.</p>
<p>If Sensor1 is OFF then take a left turn, continue following the line.</p>
<p>If Sensor2 is OFF then take a right turn, continue following the line.</p>
<p>When both sensor 1 and sensor2 are off, then once take a left turn and then the next time take a right turn, keep taking alternating turns.</p>
<p>When sensor5 (obstacle) sensor is OFF, centre motor forward, wait for a particular period to pick up the cup, then centre motor backward to lift the cup to a certain height.</p>
<p>Go back to the initial starting position following the line and look for more cups.</p>
<p><strong>Program Code:</strong></p>
<p>int I=0,R;</p>
<p>BEGIN</p>
<p>{</p>
<p>FOREVER</p>
<p>{</p>
<p>IF (SENSOR4 IS OFF)</p>
<p>{</p>
<p>WHILE (SENSOR3 IS ON)       // Line follower, sweeper logic</p>
<p>{</p>
<p>RIGHTMOTOR (FORWARD,100);</p>
<p>LEFTMOTOR (0,0);</p>
<p>}</p>
<p>}</p>
<p>IF (SENSOR3 IS OFF)</p>
<p>{</p>
<p>WHILE (SENSOR4 IS ON)</p>
<p>{</p>
<p>LEFTMOTOR (FORWARD,100);</p>
<p>RIGHTMOTOR (0,0);</p>
<p>}</p>
<p>}</p>
<p>IF (SENSOR1 IS OFF)         // taking a left turn.</p>
<p>{</p>
<p>RIGHTMOTOR (FORWARD,100);</p>
<p>LEFTMOTOR (0,0);</p>
<p>WAIT (2000);</p>
<p>WHILE (SENSOR4 IS ON)</p>
<p>{</p>
<p>RIGHTMOTOR (FORWARD,100);</p>
<p>LEFTMOTOR (BACKWARD,100);</p>
<p>}</p>
<p>}</p>
<p>IF (SENSOR2 IS OFF)   // taking a right turn.</p>
<p>{</p>
<p>LEFTMOTOR (FORWARD,100);</p>
<p>RIGHTMOTOR (0,0);</p>
<p>WAIT (2000);</p>
<p>WHILE (SENSOR3 IS ON)</p>
<p>{</p>
<p>LEFTMOTOR (FORWARD,100);</p>
<p>RIGHTMOTOR (BACKWARD,100);</p>
<p>}</p>
<p>}</p>
<p>IF (SENSOR1 IS OFF AND SENSOR2 IS OFF)  // Reached a junction.</p>
<p>{</p>
<p>R=I%2;   // % gives the remainder, in this case helps determine</p>
<p>whether I is odd or even.</p>
<p>I=I+1;</p>
<p>IF(R==0) // when I is even take a left turn.</p>
<p>{</p>
<p>WHILE (SENSOR4 IS OFF)</p>
<p>{</p>
<p>RIGHTMOTOR (FORWARD,100);</p>
<p>LEFTMOTOR (0,0);</p>
<p>}</p>
<p>}</p>
<p>IF(R==1)  // when I is odd take a right turn (hence alternating turn pattern).</p>
<p>{</p>
<p>WHILE (SENSOR3 IS OFF)</p>
<p>{</p>
<p>LEFTMOTOR (FORWARD,100);</p>
<p>RIGHTMOTOR (0,0);</p>
<p>}</p>
<p>}</p>
<p>IF (SENSOR6 IS OFF)  // Detected object ahead.</p>
<p>{</p>
<p>RIGHTMOTOR (0,0);</p>
<p>LEFTMOTOR (0,0);</p>
<p>CENTREMOTOR (FORWARD,100);</p>
<p>WAIT (1500);     // Lifting arm goes down.</p>
<p>CENTREMOTOR (BACKWARD,100);</p>
<p>WAIT (1500);</p>
<p>CENTREMOTOR (0,0);  // Lifting arm goes up and stays there.</p>
<p>RIGHTMOTOR (FORWARD,100);</p>
<p>LEFTMOTOR (0,0);</p>
<p>WAIT (300);</p>
<p>WHILE (SENSOR4 IS ON)  // 180 degrees turn and going back to starting position.</p>
<p>{</p>
<p>RIGHTMOTOR (FORWARD,100);</p>
<p>LEFTMOTOR (BACKWARD,100);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>END</p>
<p>Just check out this link for the video:</p>
<p><a href="http://www.youtube.com/watch?v=wj4i7-bm1wo" title="lifterbot">http://www.youtube.com/watch?v=wj4i7-bm1wo </a></p>
<p><a href="http://www.youtube.com/watch?v=wj4i7-bm1wo" title="i-MACH lifter"><br />
</a></p>
<p><strong>Further Development:</strong></p>
<p>In order to further enhance the performance of this application consider the following:</p>
<p><!--[if !supportLists]-->1.     <!--[endif]-->Increasing the load that can be lifted.</p>
<p><!--[if !supportLists]-->2.     <!--[endif]-->Dropping/placing the load at precise locations, by doing this the robot can be converted into a stacking robot.</p>
<p><!--[if !supportLists]-->3.     <!--[endif]-->Increasing the speed so that more number of obstacles can be lifted, hence improving the efficiency of the robot.</p>
<p><!--[if !supportLists]-->4.     <!--[endif]-->Making a gripper mechanism so that any size of objects can be lifted and now just one particular size</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=60</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CiMPLE Installation Guide</title>
		<link>http://www.thinklabs.in/resources/?p=59</link>
		<comments>http://www.thinklabs.in/resources/?p=59#comments</comments>
		<pubDate>Sat, 26 Dec 2009 04:21:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Robotics Software]]></category>
		<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=59</guid>
		<description><![CDATA[ Files needed for the installation
Browse through the CD that has been provided with the i-MACH kit.
For installation on windows, locate the setup file which would be available at the location /CiMPLE_Installation/windows/cimple_setup.exe
You can even download the same setup from the link http://triindia.co.in/download/cimple_setup.exe

&#160;
Getting Started: Pre-installation checklist
For windows
Windows xp and above.
Performing the installation on Windows
 Starting the [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"> <strong><span style="font-size: 13pt; line-height: 115%;">Files needed for the installation<o:p></o:p></span></strong></p>
<p class="MsoNormal">Browse through the CD that has been provided with the i-MACH kit.</p>
<p class="MsoNormal">For installation on <strong>windows</strong>, locate the setup file which would be available at the location <strong>/CiMPLE_Installation/windows/cimple_setup.exe</strong></p>
<p class="MsoNormal">You can even download the same setup from the link <strong><a href="http://triindia.co.in/download/cimple_setup.exe">http://triindia.co.in/download/cimple_setup.exe</a></strong></p>
<p><span id="more-139"></span></p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><strong><span style="font-size: 13pt; line-height: 115%;">Getting Started: Pre-installation checklist</span></strong></p>
<p class="MsoNormal"><strong><span style="font-size: 12pt; line-height: 115%;">For windows<o:p></o:p></span></strong></p>
<p class="MsoNormal">Windows xp and above.</p>
<p><strong><span style="font-size: 13pt; line-height: 115%;">Performing the installation on Windows<o:p></o:p></span></strong></p>
<p class="MsoNormal"> <strong><span style="font-size: 12pt; line-height: 115%;">Starting the installation<o:p></o:p></span></strong></p>
<p class="MsoNormal">Once you choose to run the set up file, you will be guided through the installation process.</p>
<p class="MsoNormal">Just follow the steps as mentioned below and you will be done with the installation of CiMPLE.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Once you click on the set up file, a window as below appears</p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/14.jpg" title="CiMPLE setup 1"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/14.jpg" title="CiMPLE setup 1"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/14.jpg" alt="CiMPLE setup 1"></a></p>
<p class="MsoNormal"> Click on ‘Next’, this takes you further</p>
<p align="center">  <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/22.jpg" title="CiMPLE setup 2"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/22.jpg" title="CiMPLE setup 2"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/22.jpg" alt="CiMPLE setup 2"></a></p>
<p>By default CiMPLE gets installed under <strong>C:\Program Files\CiMPLE</strong> directory. When this path appears as the destination folder, click on ‘Install’<span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif';">. </span></p>
<p class="MsoNormal">The installation process begins</p>
<p class="MsoNormal" align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/31.jpg" title="CiMPLE setup 3"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/31.jpg" title="CiMPLE setup 3"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/31.jpg" alt="CiMPLE setup 3"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/3.jpg" title="CiMPLE setup 3">  </a></p>
<p class="MsoNormal"><strong><span style="font-size: 12pt; line-height: 115%;">Installing the dependencies<o:p></o:p></span></strong></p>
<p class="MsoNormal"><span>As the set up progresses, you get a prompt to install WinAVR which is an open source software development tool that is needed to run CiMPLE.<o:p></o:p></span></p>
<p class="MsoNormal"><span>Select the language for installing WinAVR, default is english and click ‘OK’.<o:p></o:p></span></p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/41.jpg" title="CiMPLE setup 4"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/41.jpg" title="CiMPLE setup 4"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/41.jpg" alt="CiMPLE setup 4"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/4.jpg" title="CiMPLE setup 4">  </a></p>
<p class="MsoNormal">You will be guided through this setup.</p>
<p class="MsoNormal" align="left"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/5.jpg" title="CiMPLE setup 5"></a></p>
<p style="text-align: center;" align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/51.jpg" title="CiMPLE setup 5"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/51.jpg" title="CiMPLE setup 5"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/51.jpg" alt="CiMPLE setup 5"></a></p>
<p class="MsoNormal">   Click on ‘Next’ and continue.</p>
<p class="MsoNormal" align="left"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/6.jpg" title="CiMPLE setup 6"></a></p>
<p style="text-align: center;" align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/61.jpg" title="CiMPLE setup 6"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/61.jpg" alt="CiMPLE setup 6"></a><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/6.jpg" title="CiMPLE setup 6"> </a></p>
<p class="MsoNormal"> Accept the license agreement by clicking ‘I Agree’ and continue.</p>
<p> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/7.jpg" title="CiMPLE setup 7"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/7.JPG" title="CiMPLE setup 7"></a></p>
<p style="text-align: center;" align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/71.jpg" title="CiMPLE setup 7"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/71.jpg" alt="CiMPLE setup 7"></a></p>
<p class="MsoNormal">By default WinAVR gets installed under <strong>C:\ WinAVR-20080402rc1</strong> directory. Once this location appears as the destination folder, click on ‘Next’.</p>
<p class="MsoNormal">You will be asked to choose features of WinAVR that you would like to install. Go by the default selections and click on ‘Install’.</p>
<p class="MsoNormal"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/8.jpg" title="CiMPLE setup 8"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/8.JPG" title="CiMPLE setup 8"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/81.jpg" title="CiMPLE setup 8"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/81.jpg" title="CiMPLE setup 8"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/81.jpg" alt="CiMPLE setup 8"></a></p>
<p class="MsoNormal">The installation process begins</p>
<p class="MsoNormal" align="left"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/9.jpg" title="CiMPLE setup 9"></a></p>
<p align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/91.jpg" title="CiMPLE setup 9"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/91.jpg" title="CiMPLE setup 9"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/91.jpg" alt="CiMPLE setup 9"></a></p>
<p class="MsoNormal"> <strong><span style="font-size: 12pt; line-height: 115%;">Finishing up<o:p></o:p></span></strong></p>
<p class="MsoNormal">Once done, you will get a window as below.</p>
<p align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/101.jpg" title="CiMPLE setup 10"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/101.jpg" title="CiMPLE setup 10"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/101.jpg" alt="CiMPLE setup 10"></a></p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/10.jpg" title="CiMPLE setup 10"> </a></p>
<p>Click on ‘Finish’ to end WinAVR installation.</p>
<p class="MsoNormal">Next end the CiMPLE installation.</p>
<p><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/11.jpg" title="CiMPLE setup 11"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/111.jpg" title="CiMPLE setup 11"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/111.jpg" title="CiMPLE setup 11"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/111.jpg" alt="CiMPLE setup 11"></a></p>
<p class="MsoNormal">Click on ‘Finish’ to end installation and start CiMPLE application. A user interface as shown below appears. You can write your CiMPLE code here.</p>
<p align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/121.jpg" title="CiMPLE setup 12"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/121.jpg" title="CiMPLE setup 12"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/121.jpg" alt="CiMPLE setup 12"></a></p>
<p class="MsoNormal"> <strong><span style="font-size: 12pt; line-height: 115%;">Connecting the hardware</span></strong><strong><span style="font-size: 13pt; line-height: 115%;"><o:p></o:p></span></strong></p>
<p>When you are done with writing the code, have saved it, compiled it and connect the hardware for the first time to burn your program, a message as shown below would appear</p>
<p align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/131.jpg" title="CiMPLE setup 13"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/132.jpg" title="Help 1"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/131.jpg" alt="CiMPLE setup 13"></a></p>
<p class="MsoNormal"> Subsequently another window as below would pop up. On this window select ‘No, not this time’ and click on ‘Next’.</p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/15.jpg" title="CiMPLE setup 15"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/15.jpg" title="CiMPLE setup 15"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/15.jpg" title="CiMPLE setup 15"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/15.jpg" alt="CiMPLE setup 15"></a></p>
<p class="MsoNormal">Another window asking you to install automatically or from a specific location would appear. Select the option ‘Install from a list or specific location (Advanced)’ and click on ‘Next’.</p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/17.jpg" title="CiMPLE setup 17"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/17.jpg" title="CiMPLE setup 17"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/17.jpg" alt="CiMPLE setup 17"></a></p>
<p class="MsoNormal">Then you would be required to select a location to search for the components to be installed. Check the option ‘Include this location in the search’ and click on browse to locate the directory to be searched.</p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/19.jpg" title="CiMPLE setup 19"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/19.jpg" title="CiMPLE setup 19"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/19.jpg" alt="CiMPLE setup 19"></a></p>
<p>During the installation, a folder named “USBasp Driver” available in the directory <strong>CiMPLE_Installation\Windows</strong> in the CD gets copied on to your desktop, browse to this location on your desktop. Select this directory and click ‘OK’.</p>
<p>The USBasp driver can also be obtained from this link <strong><a href="http://triindia.co.in/download/USBasp%20Driver.zip">http://triindia.co.in/download/USBasp%20Driver.zip</a></strong></p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/20.jpg" title="CiMPLE setup 20"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/20.jpg" title="CiMPLE setup 20"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/20.jpg" alt="CiMPLE setup 20"></a></p>
<p>Once this path appears in the location to be searched, click on ‘Next’.</p>
<p align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/211.jpg" title="CiMPLE setup 21"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/211.jpg" title="CiMPLE setup 21"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/211.jpg" alt="CiMPLE setup 21"></a></p>
<p class="MsoNormal">   The installation would then begin.</p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/221.jpg" title="CiMPLE setup 22"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/221.jpg" title="CiMPLE setup 22"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/221.jpg" alt="CiMPLE setup 22"></a></p>
<p class="MsoNormal">You will be prompted to choose the location of the file libusb0.sys. For the same, browse to the directory <strong>\Desktop\USBasp Driver\bin</strong>, select libusb0.sys and click ‘Open’.</p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/23.jpg" title="CiMPLE setup 23"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/23.jpg" title="CiMPLE setup 23"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/23.jpg" alt="CiMPLE setup 23"></a></p>
<p>This path would get included as the location to copy files from. Once done, click on ‘OK’.</p>
<p align="center"> <a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/24.jpg" title="CiMPLE setup 24"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/24.jpg" title="CiMPLE setup 24"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/24.jpg" alt="CiMPLE setup 24"></a></p>
<p>This would complete the installation of the software for USBasp driver. Click on ‘Finish’ to exit the setup.</p>
<p align="center"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/25.jpg" title="CiMPLE setup 25"></a></p>
<p style="text-align: center;"><a href="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/25.jpg" title="CiMPLE setup 25"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2008/05/25.jpg" alt="CiMPLE setup 25"></a></p>
<p class="MsoNormal">Once done with this, you can connect the hardware to your system and burn your code written in CiMPLE on to the same.</p>
<table class="MsoNormalTable" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="border: 1pt solid black; padding: 0in 5.4pt;" valign="top">
<p class="MsoNormal" style="text-align: justify;"><strong><u><span style="color: red;">Troubling shooting during the installation   of CiMPLE on windows</span></u></strong><u><span style="color: red;"><o:p></o:p></span></u></p>
</td>
</tr>
<tr>
<td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt;" valign="top">
<ol style="margin-top: 0in;" start="1" type="1">
<li class="MsoNormal" style="text-align: justify;">Make        sure that ‘<strong>OK’</strong> is clicked        when asked to install winAVR.<o:p></o:p></li>
</ol>
</td>
</tr>
<tr>
<td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt;" valign="top">
<ol style="margin-top: 0in;" start="2" type="1">
<li class="MsoNormal" style="text-align: justify;">While        installing winAVR, go by the default options, <strong>DO NOT</strong> change the path.<o:p></o:p></li>
</ol>
</td>
</tr>
<tr>
<td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt;" valign="top">
<ol style="margin-top: 0in;" start="3" type="1">
<li class="MsoNormal" style="text-align: justify;">While        connecting the hardware for the first time, <strong>MAKE SURE</strong> that if the message ‘Found New Hardware’ appears,        the USBasp driver is installed.<o:p></o:p></li>
</ol>
</td>
</tr>
<tr>
<td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt;" valign="top">
<ol style="margin-top: 0in;" start="4" type="1">
<li class="MsoNormal" style="text-align: justify;">While        installing the driver, <strong>BE SURE</strong>        that you specify the correct location of the file being asked for.<o:p></o:p></li>
</ol>
</td>
</tr>
<tr>
<td style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt;" valign="top">
<ol style="margin-top: 0in;" start="5" type="1">
<li class="MsoNormal" style="text-align: justify;"><strong>RESTART</strong> your machine to make the        changes during installation effective.<o:p></o:p></li>
</ol>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=59</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sumo Robot using iPitara</title>
		<link>http://www.thinklabs.in/resources/?p=15</link>
		<comments>http://www.thinklabs.in/resources/?p=15#comments</comments>
		<pubDate>Thu, 24 Dec 2009 11:53:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[robo.in]]></category>

		<guid isPermaLink="false">http://www.thinklabs.in/resources/?p=15</guid>
		<description><![CDATA[

1. Remember, when building sumo-bots, the goal is to have fun. If you lose sight of this fact, you might end up giving up on a sumo-bot project if problems and  frustration occur.
2. No sumo-bot is perfect; this means that sumo-bots that I make and that you make will have “problems” or “weak-spots.” But [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="425" height="344"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><param name="src" value="http://www.youtube.com/v/dGAkayU3wu8&amp;hl=en&amp;fs=1"><embed type="application/x-shockwave-flash" src="http://www.youtube.com/v/dGAkayU3wu8&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></object></p>
<p align="left">
<p align="left"><strong>1. </strong>Remember, when building sumo-bots, the goal is to have fun. <span id="more-381"></span>If you lose sight of this fact, you might end up giving up on a sumo-bot project if problems and  frustration occur.</p>
<p><strong>2. </strong>No sumo-bot is perfect; this means that sumo-bots that I make and that you make will have “problems” or “weak-spots.” But don’t let this stop you from making attempts at solving the “problems” in your sumo-bots; there are often many ways to solve or get around problems that come up.</p>
<p><strong>3. </strong>If you’re new to making sumo-bots, it would be in your best interest to start with simple techniques and approaches. Simple things have much less that can go wrong than complex things. In addition, simple things can perform just as well as many complex techniques and approaches; still further, some complex approaches can cause more problems than they solve, getting confused in simple situations. Complexity and “smartness” can be beneficial, when used correctly, but for beginners, we recommend simpler techniques and approaches.</p>
<p><strong> Overview</strong></p>
<p><strong> </strong>The Sumo is a competition between robots based on Japanese wrestling – “sumo” is the Japanese word for wrestling. Similar to traditional sumo matches, two opponents (robots) face each other in a ring.The objective is to stay in the ring while pushing the opposing robot out of the ring ( BLACK ).The robot that stays in the ring wins the match. Also at any point if both the rear wheels of bot go out of the ring then the bot has lost the match.</p>
<p><a title="graphic1.jpg" href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/graphic1.jpg"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/graphic1.jpg" alt="graphic1.jpg"></a></p>
<p><!--[if gte mso 9]&amp;gt;     Normal   0               false   false   false      EN-US   X-NONE   X-NONE                                                     MicrosoftInternetExplorer4                                                   --><!--[if gte mso 9]&amp;gt;                                                                                                                                                                                                                                                                                                                                                                                                                                --> <!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> <!--[if gte mso 10]&amp;gt;   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif";}  --></p>
<p>Out bots can also be called as Mini-sumo robots unlike larger battle SUMO robots, mini-sumo robots are not allowed to damage the opponent robot, they are only allowed to push it off the ring. They are small autonomous mobile robots designed specifically for sumo style competition. The mini-sumo robot competition rules restrict the robot length and width to 30 cm x 20 cm, but do not restrict its height. In addition, the robot’s can also be restricted eg: bot can’t weigh more than 500 grams.</p>
<p><!--[if gte mso 9]&amp;gt;     Normal   0               false   false   false      EN-US   X-NONE   X-NONE                                                     MicrosoftInternetExplorer4                                                   --><!--[if gte mso 9]&amp;gt;                                                                                                                                                                                                                                                                                                                                                                                                                                --> <!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:537861515; 	mso-list-type:hybrid; 	mso-list-template-ids:202921934 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --> <!--[if gte mso 10]&amp;gt;   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif";}  --></p>
<p><strong>Theory of Operation:</strong></p>
<p>i-PITARA Kit comes with two IR sensors and one Touch sensor.</p>
<p>So keeping in mind the number of sensors available we will start building the logic.</p>
<p>To be effective, a mini-sumo robot must be able to do the following:</p>
<p><!--[if !supportLists]--> 1.&nbsp;&nbsp;&nbsp; <!--[endif]-->Stay on the BLACK RING</p>
<p><!--[if !supportLists]-->2.&nbsp;&nbsp;&nbsp; <!--[endif]-->Hunt for the opponent</p>
<p><!--[if !supportLists]-->3.&nbsp;&nbsp;&nbsp; <!--[endif]-->Target (aim at) the opponent</p>
<p><!--[if !supportLists]-->4.&nbsp;&nbsp;&nbsp; <!--[endif]-->Attack the opponent</p>
<p>The following sections describe how the mini-sumo robot accomplishes these things.</p>
<p><strong>Sensing the RING Edge<em> </em>(i.e detect the white surface)</strong></p>
<p>Since your ring is black you can use one of your IR sensors (obviously) to keep the bot inside the ring, i.e. whenever it detects that the ring has ended (white surface is detected) you can program it to come back or take a turn according to your strategy.</p>
<p>Now if someone argues that why not use two IR sensors to be in the ring, I would say yes you can but why to use two when I can achieve it using one sensor. Also it depends upon the competition rules i.e. What if there is a rule that you can only use 2 IR one bump sensors?</p>
<p><strong>Sensing the Opponent</strong></p>
<p>Now the crashing part, after you use one IR sensor to keep your bot within the Black ring only one IR sensor and one touch sensor is left. Now, one can detect opponent using IR sensor but if the opponent has wrapped his bot in black or something that doesn’t allow the IR sensor to detect its presence then IR sensor will be useless in detecting the opponent. Another option is that we use Touch sensor, but the disadvantage would be my switch has to be pressed by the opponent. One can always make a mechanism or arrange links such that my touch sensor’s switch can effectively be turned ON, from an opponent coming from front or behind depending upon the strategy you decide.</p>
<p>Note: If using RC Servo motors are allowed in competitions then one scan the surrounding area for opponent by rotating the IR sensor.</p>
<p><strong>Moving and Steering the Robot</strong><br />
Two motors attached to the two wheels provide the mechanism to move the robot. Steering is accomplished by rotating the wheels at different speeds. When one wheel turns slower than the other, the robot will move in an arc curving to the side of the slower turning wheel. By turning the wheels in the opposite direction of each other, the robot will rotate in place.<!--[if gte mso 9]&amp;gt;     Normal   0               false   false   false      EN-US   X-NONE   X-NONE                                                     MicrosoftInternetExplorer4                                                   --><!--[if gte mso 9]&amp;gt;                                                                                                                                                                                                                                                                                                                                                                                                                                --> <!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> <!--[if gte mso 10]&amp;gt;   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif";}  --></p>
<p>Here’s is a one way to make a SUMO Bot. One IR (AS1) to detect SUMO Ring, One Touch (DS2) and IR Sensor (AS6) to detect opponent.</p>
<p>Check the following figures for sensor placements.</p>
<p><a title="graphic2.jpg" href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/graphic2.jpg"><img src="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/graphic2.jpg" alt="graphic2.jpg"></a><a title="graphic2.jpg" href="http://www.triindia.co.in/resources/wp-content/uploads/2009/05/graphic2.jpg"> <!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1274435061; 	mso-list-type:hybrid; 	mso-list-template-ids:2141074460 -2034855070 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:-; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	margin-left:.75in; 	text-indent:-.25in; 	font-family:"Arial","sans-serif"; 	mso-fareast-font-family:Calibri;} @list l1 	{mso-list-id:1627807561; 	mso-list-type:hybrid; 	mso-list-template-ids:-1486060636 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l1:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --> <!--[if gte mso 10]&amp;gt;   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif";}  --></a></p>
<p><!--[if gte mso 9]&amp;gt;     Normal   0               false   false   false      EN-US   X-NONE   X-NONE                                                     MicrosoftInternetExplorer4                                                   --><!--[if gte mso 9]&amp;gt;                                                                                                                                                                                                                                                                                                                                                                                                                                --> <!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1274435061; 	mso-list-type:hybrid; 	mso-list-template-ids:2141074460 -2034855070 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:-; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	margin-left:.75in; 	text-indent:-.25in; 	font-family:"Arial","sans-serif"; 	mso-fareast-font-family:Calibri;} @list l1 	{mso-list-id:1627807561; 	mso-list-type:hybrid; 	mso-list-template-ids:-1486060636 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l1:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --> <!--[if gte mso 10]&amp;gt;   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif";}  --></p>
<p>Algorithm.</p>
<ul>
<li>START</li>
<li>WHILE      AS1 detects Black, M1 and M2 move forward with 50% speed.</li>
<li><!--[if !supportLists]-->WHILE DS2 is ON M1 and M2 move forward with 100% speed.</li>
<li><!--[if !supportLists]-->WHILE AS2 detects opponent move towards opponent i.e. move right for my configuration.</li>
<li>WHILE      AS2 detects White, M1 and M2 move forward for some time and take a turn      for sometime</li>
<li>STOP</li>
</ul>
<p>That’s it !!!!!!!!!!!!!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thinklabs.in/resources/?feed=rss2&amp;p=15</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
