<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1362650730047230957</id><updated>2012-01-03T03:50:38.315-08:00</updated><title type='text'>ROBOTICS</title><subtitle type='html'>Has tutorials to make your own robot and almost all information related to robotics.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-4880312232173502731</id><published>2008-07-24T02:56:00.000-07:00</published><updated>2008-07-26T08:42:37.180-07:00</updated><title type='text'>Robotics Programming</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SItEUeQv5OI/AAAAAAAAAQ4/bBezf7DTD1c/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SItEUeQv5OI/AAAAAAAAAQ4/bBezf7DTD1c/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5227346911004976354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When programming is first taught, the concept that a program follows the “input—&lt;br /&gt;processing—output” model is used (Fig. 13-4) in which data inputs to the program are&lt;br /&gt;passed to a processing block and then passed out of the program in the form of outputs.&lt;br /&gt;&lt;br /&gt;This model is good for initial programs on a PC in which some number crunching is done to help you learn how the different programming statements work, but they have little relevance when programming robots.&lt;br /&gt;&lt;br /&gt;Instead, a programming model like the one shown in Fig. 13-5 should be used. In this&lt;br /&gt;model, the program is continually looping (never ending) and reading (or polling) inputs, passing them to a block of code for processing into outputs and then delaying some amount of time before repeating.&lt;br /&gt;&lt;br /&gt;The delay block is critical for robot programming as it allows the code to be tuned for the operation of the robot and its parts. If the delay is too short, the robot may vibrate more than move because one set of commands from some input conditions are countermanded by the next set of input conditions, resulting in the original input conditions are true again . . .&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SItEUTFCegI/AAAAAAAAARA/CxsfaRMMtOQ/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SItEUTFCegI/AAAAAAAAARA/CxsfaRMMtOQ/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5227346908003072514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Specifying the appropriate amount of delay is something that will have to be found by&lt;br /&gt;trial and error. The total loop time should be less than 1 s, but as to the “best” time, that is something that you will have to find by experimenting with your robot. As a rule of thumb, try to keep the total loop time at least 100 ms (0.1 s) so that the motors have time to start up and initiate action before stopping and a new set of inputs polled.&lt;br /&gt;&lt;br /&gt;You may also want to leave the motors running during the delay based on the assumption that chances are the processed output will not change radically from loop to loop. This will help make your robot move more smoothly, which is always desirable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Graphical Programming&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In this chapter, there is a lot of material on text-based programming that probably seems very difficult and complex, especially when you consider that there are many graphical robot programming environments available that could reduce a reasonably complex function like programming a light-seeking robot into the simple chore of drawing a picture like the one in Fig. 13-6.&lt;br /&gt;&lt;br /&gt;This program will cause a robot to move toward the brightest point in the room. This is a lot easier to understand than the text-based version, which would look something like &lt;br /&gt;&lt;br /&gt;while (1) ................. Loop Forever&lt;br /&gt;If (Left &gt; Right)  ............Turn Left&lt;br /&gt;Right Motor = On&lt;br /&gt;Left Motor = Off&lt;br /&gt;else&lt;br /&gt;if (Left &lt; Right) ....................Turn Right&lt;br /&gt;Right Motor = Off&lt;br /&gt;Left Motor = On&lt;br /&gt;else ........................... Left = Right, Go Straight&lt;br /&gt;Right Motor = On&lt;br /&gt;Left Motor = On&lt;br /&gt;endif&lt;br /&gt;endif&lt;br /&gt;Dlay(100) .............Delay 100 ms&lt;br /&gt;endwhile&lt;br /&gt;&lt;br /&gt;which would probably take you a lot longer to program than moving some blocks and lines around in a graphic editor. While being more difficult to understand and longer to develop, the text-based program gives you a great deal of flexibility that you don’t have with most graphical programming environments. Both programs perform the same operations and work the same way, but what happens if you discover that rather than turning as soon as the left and right light sensors are different values, the robot could run straight while they were within two values of&lt;br /&gt;each other. &lt;br /&gt;&lt;br /&gt;In the graphical programming environment, this would be impossible, but in the text-based program the two if statements could be changed to&lt;br /&gt;&lt;br /&gt;if (Left &gt; (Right + 2)&lt;br /&gt;&lt;br /&gt;if ((Left + 2) &lt; Right)&lt;br /&gt;&lt;br /&gt;which would cause the robot to move forward if Left and Right were +/−2 of each other&lt;br /&gt;rather than turning if they weren’t exactly equal. There are a lot of other cases where you will find that you need to tweak the program to run optimally, but you find that it is impossible to modify the graphic program for these needs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SItEy67ukqI/AAAAAAAAARI/3Mjyr70Wkkw/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SItEy67ukqI/AAAAAAAAARI/3Mjyr70Wkkw/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5227347434097513122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another advantage of text-based programming over graphic programming is the ability to add more complex logic to the operation of the robot. For example, if you wanted the robot to turn right if it has turned left five times in a row you can add the code quite easily to the text program whereas the graphic program does not have that capability (and indeed, very few graphical programming environments even have variables).&lt;br /&gt;&lt;br /&gt;It is important to not generalize. While most beginner and hobbyist graphical programming environments and languages do have the limitations listed here, more professional ones do not. For example, National Instruments’ LabView programming environment offers the same capabilities and flexibility as a text programming language despite being based on just graphic symbols for operators, variables, and decision structures. &lt;br /&gt;&lt;br /&gt;Hopefully you realize that these capabilities do not come free; creating a complex graphic program will require at least the same amount of study and practice as developing a text-based one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-4880312232173502731?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/4880312232173502731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=4880312232173502731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4880312232173502731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4880312232173502731'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/07/microcontrollers.html' title='Robotics Programming'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_aNh_uVW1ahk/SItEUeQv5OI/AAAAAAAAAQ4/bBezf7DTD1c/s72-c/k.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-28017857316959702</id><published>2008-07-23T03:53:00.000-07:00</published><updated>2008-07-26T08:48:05.065-07:00</updated><title type='text'>LINEAR PROGRAM EXECUTION</title><content type='html'>Modern computer systems, regardless of their sophistication, are really nothing more than electronic circuits that read instructions from their memory in order and execute them as they are received. This may fly in the face of your perception of how a computer program works; especially when you are familiar with working on a PC in which different dialog boxes can be brought up at different times and different buttons or controls can be accessed randomly and not in any predefined sequence. &lt;br /&gt;&lt;br /&gt;By saying that a computer program is a sequence of instructions that are read and executed may seem to belittle the amount of work that goes into them along with the sophistication of the operations they perform, but this is really all they are.&lt;br /&gt;A sequence of instructions to latch data from a storage location into an external register using two I/O registers (one for data and one for the register clock line) could be:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Address Instruction&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1 I/O Port 1 = All Output&lt;br /&gt;2 I/O Port 2 = 1 Clock Output Bit&lt;br /&gt;3 I/O Port 2 Clock Output Bit = Low&lt;br /&gt;4 Holding Register = Storage Location "A"&lt;br /&gt;5 I/O Port 1 = Holding Register&lt;br /&gt;6 I/O Port 2 Clock Output Bit = High&lt;br /&gt;7 I/O Port 2 Clock Output Bit = Low&lt;br /&gt;&lt;br /&gt;In this sequence of instructions, the address each instruction is stored in has been included to show that each incrementing address holds the next instruction in sequence for the program. The first computers could only execute the sequence of instructions as-is and not modify the execution in any way. Modern computers have been given the ability to change which section of instruction sequence is to be executed, either always or conditionally. &lt;br /&gt;&lt;br /&gt;The following sequence of instructions will latch the values of one to five into the external register by conditionally changing the section of the instruction sequence to be executed, based on the current value.&lt;br /&gt;&lt;br /&gt;Address Instruction&lt;br /&gt;1........................................... Holding Register = 1&lt;br /&gt;2........................................... Storage Location "A" = Holding Register&lt;br /&gt;3........................................... I/O Port 1 = All Output&lt;br /&gt;4........................................... I/O Port 2 = 1 Clock Output Bit&lt;br /&gt;5........................................... I/O Port 2 Clock Output Bit = Low&lt;br /&gt;6........................................... Holding Register = Storage Location "A"&lt;br /&gt;7........................................... I/O Port 1 = Holding Register&lt;br /&gt;8........................................... I/O Port 2 Clock Output Bit = High&lt;br /&gt;9........................................... I/O Port 2 Clock Output Bit = Low&lt;br /&gt;10........................................... Holding Register = Storage Location "A"&lt;br /&gt;11........................................... Holding Register = Holding Register + 1&lt;br /&gt;12........................................... Storage Location "A" = Holding Register&lt;br /&gt;13........................................... Holding Register = Holding Register - 5&lt;br /&gt;14 If Holding Register Does Not Equal 0, Next Execution Step is 6&lt;br /&gt;&lt;br /&gt;In the second program, after the contents of ‘Holding Register “A” ’ have 1 added to them, the value has 5 subtracted from it and if the result is not equal to zero, execution continues at address 6 rather than ending after address 14. Note that data from a “Storage Location” cannot pass directly to an output port nor can mathematical operations be performed on it without storing the contents in the “Holding Register” first. &lt;br /&gt;&lt;br /&gt;In this simple program, you can see many of the programming concepts listed in operation, and while they will seem unfamiliar to you, the operation of the program should be reasonably easy to understand. The sequential execution of different instructions is known as linear program execution and is the basis for program execution in computers.&lt;br /&gt;&lt;br /&gt; To simplify the creation of instruction sequences, you will be writing your software in what is known as a high-level language or, more colloquially, a programming language. The programming language is designed for&lt;br /&gt;you to write your software (or code) in a format similar to the English language, and a computer program known as a compiler will convert it into the sequence of instructions needed to carry out the program.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-28017857316959702?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/28017857316959702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=28017857316959702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/28017857316959702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/28017857316959702'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/07/multi-robot-systems.html' title='LINEAR PROGRAM EXECUTION'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-4463730749545967816</id><published>2008-05-30T02:17:00.000-07:00</published><updated>2008-05-30T02:35:32.119-07:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SD_G7hSFxCI/AAAAAAAAAOw/-o8OoIXCohE/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SD_G7hSFxCI/AAAAAAAAAOw/-o8OoIXCohE/s320/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206098420112409634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The oscillator will be used to generate a square wave at a desired frequency. The wave is fed into a transistor that drives an infrared LED on and off very rapidly. Because the emissions are infrared and very fast, neither is visible to the human eye.&lt;br /&gt;&lt;br /&gt;Inexpensive infrared receiver chips are available at 36 kHz, 38 kHz, and 40 kHz. The receivers are sensitive to oscillations several kilohertz to either side, although reception distance improves with a better signal to start with.&lt;br /&gt;&lt;br /&gt;If used for object detection, the signal needs to travel the distance to the object, bounce off the object, and then travel the distance back to the receiver. So, distance becomes a factor.&lt;br /&gt;&lt;br /&gt;Because infrared receivers amplify the signal to improve detection, electrical noise generated from the oscillator can leak into the receiver and trigger a false detection. This isn't a problem for VCRs or most consumer devices as they tend to contain either a transmitter (remote control) or a receiver (CD player), but not both.&lt;br /&gt;&lt;br /&gt;Therefore, robot transmitter and receiver circuits must be carefully designed and positioned apart to be useful. Robots that chase electrical ghosts, spin in place, or jerk sporadically are initially amusing, but eventually frustrating.&lt;br /&gt;&lt;br /&gt;The lower the power of the circuit, the more likely it will be lower in noise. Also, liberal use of decoupling capacitors and metal shielding helps a lot. Greater distance between the circuits makes an enormous difference.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Popular 555&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The 555 IC is an extremely popular timer. The low-power CMOS versions (TLC555, LMC555, and ICM7555) use less power than the older (555, NE555, LM555) versions and don't require a capacitor on the control pin. Although pin and functionally compatible, the component values differ between the low-power CMOS and older versions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Infrared Emitter 555 Schematic&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A portion of the configuration presented here is similar to an example in the Maxim ICM7555 datasheet. In this circuit, the 555 is used in astable multivibrator mode.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SD_G7xSFxDI/AAAAAAAAAO4/1RWvR79wqno/s1600-h/2.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SD_G7xSFxDI/AAAAAAAAAO4/1RWvR79wqno/s320/2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5206098424407376946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For maximum effect, over 60 milliamps pulses through the infrared LED. Adjust R3 as appropriate for your use and LED specifications.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;br /&gt;When calculating current through the resistor, don't forget to first subtract the voltage drop across the LED and transistor. Let's say the LED uses 1.8 V (1.6 V to 2.2 V wouldn't be unheard of). Let's say the collector-emitter drop of the transistor uses 0.2 V.&lt;br /&gt;&lt;br /&gt;5 V (total) - 1.8 V (LED) - 0.2 V (transistor) = 3 V remaining to drop across the resistor.&lt;br /&gt;&lt;br /&gt;3 V / 47 ohms is about 64 mA. Because there's only one path, the current going through the resistor must be the same as what's going through the LED.&lt;br /&gt;&lt;br /&gt;Now for the other trick: the word "pulses". The LED is only on half the time because it is blinking. If you use an ohmmeter, the average current is 32 mA (half).&lt;br /&gt;&lt;br /&gt;Aside: The LED heats up faster than it cools off. As such, it's not possible to drive 100 mA through a 50 mA LED even though the average current is half. Depending on ambient temperatures, it's usually safe to drive only 125% or 133% of rated maximum at 50% duty. With smaller duty cycles and frequent pauses, it's possible to drive a lot more current in very short bursts.&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Theoretical frequency can be calculated by:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;f=1/(1.4 RC)&lt;br /&gt;&lt;br /&gt;where f is frequency in kilohertz, R is resistance in kilohms, and C is capacitance in microfarads.&lt;br /&gt;&lt;br /&gt;38 kilohertz = 1/(1.4 * 18.7969 kilohms * 0.001 microfarads)&lt;br /&gt;&lt;br /&gt;Even if you could find a 18796.9 ohm resistor, it turns out the capacitance and resistance of the wiring and the wide tolerance (even at 1%) of the parts means a variable resistor (potentiometer) is a must! Also, the current being used to drive the transistor (Q1) alters the timing a bit.&lt;br /&gt;&lt;br /&gt;Using a 1-nF (C1) [1 nF is same as 0.001 µF] capacitor and a 15-kilohm fixed resistor (R1) plus a 5-kilohm potentiometer (R2) does the trick. Not only does the potentiometer allow for hand tuning, but also the frequency can be varied from about 32 kHz up to about 42 kHz. The margin means the desired values of 36 kHz to 40 kHz should be attainable even with variations in parts and wiring.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SD_G7xSFxEI/AAAAAAAAAPA/FWlcVTBMaDQ/s1600-h/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SD_G7xSFxEI/AAAAAAAAAPA/FWlcVTBMaDQ/s320/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206098424407376962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solderless Breadboard&lt;br /&gt;&lt;br /&gt;There's a slight change from the official schematic presented above. On the breadboard, the timing capacitor (C1) is connected to +5 V rather than ground. Testing indicates the same frequency, voltage range, and power consumption regardless. Still, you should use a connection to GND.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SD_G8BSFxFI/AAAAAAAAAPI/4B7neKUdaw4/s1600-h/4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SD_G8BSFxFI/AAAAAAAAAPI/4B7neKUdaw4/s320/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206098428702344274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the left is a multiturn potentiometer. The small brass-colored screw rotates many times to perform the same adjustment as the white single-turn dial on the right. The multiturn allows for more precise adjustments and is less prone to shift out of position. Even if it does shift, less change results because it needs to take multiple turns around.&lt;br /&gt;&lt;br /&gt;Multiturn potentiometers are more expensive, but worth it for timing circuits.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SD_IWBSFxII/AAAAAAAAAPg/FYZst0DwKjs/s1600-h/6.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SD_IWBSFxII/AAAAAAAAAPg/FYZst0DwKjs/s320/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206099974890570882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SD_IiBSFxJI/AAAAAAAAAPo/gLwj95dK9E4/s1600-h/5.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SD_IiBSFxJI/AAAAAAAAAPo/gLwj95dK9E4/s320/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206100181049001106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Surface Mount Components:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A very small infrared circuit can be created with surface mount components. The power usage and basic functionality is the same. Theoretically the electrical noise should be reduced since through-hole leads can act as transmitter antennas.&lt;br /&gt;&lt;br /&gt;A couple of notes:&lt;br /&gt;&lt;br /&gt;    * R2 is a very small (4 mm) surface-mount multiturn potentiometer.&lt;br /&gt;&lt;br /&gt;    * A lot of extra drill holes exist in the board so that I could use up my small stock of through-hole parts if desired (for this board, I didn't desire). For example, C2 has extra holes to the left and right.&lt;br /&gt;&lt;br /&gt;    * This circuit differs from the breadboard and schematic as it is designed to drive a pair of dual emitters (four LEDs total). A tiny, green, surface-mount LED indicates when the oscillator is enabled. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SD_I0hSFxLI/AAAAAAAAAP4/zahMmpT9Ftc/s1600-h/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SD_I0hSFxLI/AAAAAAAAAP4/zahMmpT9Ftc/s320/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206100498876581042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;create a surface-mount boards at home.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It's really not difficult. You should try it!&lt;br /&gt;&lt;br /&gt;There are a few tricks that help me...&lt;br /&gt;&lt;br /&gt;Using a toothpick, I place a small dab of silicone adhesive (which I suspect is just caulk in a smaller, more expensive tube) on each location of the board where a surface-mount component is going to be.&lt;br /&gt;&lt;br /&gt;As far as I can tell, silicone is pretty friendly compared to the usual nasty PCB chemicals. The package indicates the material is stable up to 400 degrees Celsius. The wet viscosity holds components in place but allows for nudging. The thickness is perfect for bridging the space between the board and slightly raised component backs.&lt;br /&gt;&lt;br /&gt;I then deposit each component using tweezers. After five minutes or so, the components can be soldered without them moving around. If a mistake is discovered, the component can be pulled off easily, as the silicone dries to a pliable, soft, rubbery consistency.&lt;br /&gt;&lt;br /&gt;With small components, sometimes solder bridges form and sometimes the core flux misses the mark and cold solder balls or joints form. No problem, just place some flux paste in those locations. Reheat the joints with the tip of the soldering iron and they melt to perfection.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Which Oscillator Is Better?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The 555 circuit uses less power when turned on, but the total power usage of an infrared emitter device easily overshadows any minor power-on savings in the oscillator itself.&lt;br /&gt;&lt;br /&gt;The NAND solution is cheaper and basically as easy to construct.&lt;br /&gt;&lt;br /&gt;Obviously my optimized NAND circuit is better than my original NAND circuit. However, I can't say whether my 555 circuit is even better.&lt;br /&gt;&lt;br /&gt;Since the 555 is specifically designed for timing and since it has been widely adopted, I assume there are benefits that I haven't perceived. Most likely the ability to vary duty cycle and other versatility is the real reason the 555 is so popular.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-4463730749545967816?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/4463730749545967816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=4463730749545967816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4463730749545967816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4463730749545967816'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/05/oscillator-will-be-used-to-generate.html' title=''/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aNh_uVW1ahk/SD_G7hSFxCI/AAAAAAAAAOw/-o8OoIXCohE/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-2221679045781592317</id><published>2008-05-28T04:54:00.000-07:00</published><updated>2008-05-28T05:09:20.149-07:00</updated><title type='text'>Cadmium-Sulfide Color Sensor</title><content type='html'>Over the years, a number of methods have been tried to create an inexpensive color sensor. One way is to surround an ordinary photocell with a red, green, and blue ultra-bright LED.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SD1IbxSFw8I/AAAAAAAAAOA/wf3D_kKf6Fw/s1600-h/ColorSensor.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SD1IbxSFw8I/AAAAAAAAAOA/wf3D_kKf6Fw/s320/ColorSensor.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205396386233041858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All three LEDs are never actually turned on at the same time. Each LED is turned on one at a time and the intensity of light reflected back to the cadmium-sulfide photocell is measured. An analog-to-digital converter measures the voltage divided between a fixed resistor (usually between 470 ohms and 10,000 ohms) and the photosensitive resistor (the photocell).&lt;br /&gt;&lt;br /&gt;Ultra-bright LEDs are available from any electronics seller or eBay. Back when I first wrote this article, I got the LEDs from AllElectronics. I purchased red #LED-50 for $0.50, true green #LED-57 for $3.75, and blue #LED-58 for $3.50. Prices have come down considerably since then.&lt;br /&gt;&lt;br /&gt;The advertised brightness of red is 3000 mcd, green is 3000 mcd, and blue is 1200 mcd. The resistor values that provided equivalent readings reflecting off white paper are red with 100 ohms, green with 800 ohms, and blue with 100 ohms. Either the green LED is a lot brighter than the others or the photocell's peak sensitivity is to green (or probably some combination of both). &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SD1IvBSFw9I/AAAAAAAAAOI/uf9yjHFuzQ4/s1600-h/2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SD1IvBSFw9I/AAAAAAAAAOI/uf9yjHFuzQ4/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205396716945523666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The LEDs are water clear when turned off. Black electrical tape surrounds the photocell in the center of the LEDs. The tape blocks the direct light from the LEDs from reaching the photocell, thus detecting only reflected light.&lt;br /&gt;&lt;br /&gt;After the amount of red light, green light, and blue light is measured, each component is individually scaled based on minimum and maximum values obtained at calibration. One-time calibration consists of aiming the completed sensor first at a white piece of paper and then at a piece of black conductive foam. The maximum and minimum values are plugged into the EEPROM of the microcontroller. Scaling based on actual data allows the individual attributes of that particular sensor and set of LEDs to be accounted for. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SD1IvRSFw-I/AAAAAAAAAOQ/fj434swebYk/s1600-h/3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SD1IvRSFw-I/AAAAAAAAAOQ/fj434swebYk/s320/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205396721240490978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alternatively, you can adjust the balance of the colors in hardware by using with three separate trimpots (trimmer potentiometers). Dialing a trimpot changes the brightness of a particular LED. For example, if there's too much red being sensed, simply increase the resistance to decrease the LED brightness by turning the trimpot attached to the red LED.&lt;br /&gt;&lt;br /&gt;It's a good idea to always include a minimum fixed resistor value (100 ohms to 150 ohms) in series with each trimpot so that if you accidentally dial the trimpot to 0 ohms the LED won't be damaged.&lt;br /&gt;&lt;br /&gt;The photo above includes an Atmel ATtiny45 microcontroller for turning on and off each of the LEDs, reading the results, and outputting the values to a personal computer. You can use any microcontroller of your choice. Or, if you just want a color mixer to play with various output colors, simply pull the microcontroller and feed the resistors 5V. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SD1JThSFw_I/AAAAAAAAAOY/X4RNYZP58zw/s1600-h/5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SD1JThSFw_I/AAAAAAAAAOY/X4RNYZP58zw/s320/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205397344010748914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt; above is a pic of Regular and small cadmium-sulfide photocells.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Improvement&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The above readings were taken through a clear plastic case (not shown). By substituting a few black threads on which to rest the candy, the contrast between colors improved significantly. Perhaps the shiny plastic reflected too much LED light back into the sensor, regardless of the actual color of the object being examined.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Position Problem!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Later discovered a significant flaw with the sensor as currently designed. The candies had always been manually centered for reading. However, misplacement of objects causes more light to reflect from one of the LEDs than the other LEDs. This causes a false detection of color, since it now appears that the object has more of one particular color simply because that LED is closer to the object.&lt;br /&gt;&lt;br /&gt;The design could be modified so that the LEDs can be placed together with all light appearing through a single tube or source. A disadvantage to this approach would be a reduction in brightness. An advantage would be that only one light source (the tube) needs to be aligned with the sensor for optimal and equal reflection. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SD1JTxSFxAI/AAAAAAAAAOg/clN-OkPE3Uc/s1600-h/6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SD1JTxSFxAI/AAAAAAAAAOg/clN-OkPE3Uc/s320/6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205397348305716226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For objects up close, the multicolor LED (also called an RGB LED) works pretty well for reducing object-position errors. Unfortunately, as the RGB LED is lifted up, it becomes apparent that the position of the individual color chips within the single lens causes the light sources to diverge. Perhaps this isn't as much of a problem with other RGB LEDs?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Speed Limitation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Only two or three complete color readings can be performed per second. The cadmium-sulfide photocell needs time to react to the brightness changes. Blinking the LEDs faster than this rate reduces contrast until all colors result in the same apparent reflective value, as though all LEDs were lit at the same time.&lt;br /&gt;&lt;br /&gt;A visible-light phototransistor would provide superior speed. The infrared (remote-control quality) phototransistors I possess are all nearly insensitive to visible light, especially blue. Therefore, infrared diodes and infrared phototransistors won't work.&lt;br /&gt;&lt;br /&gt;At first I thought I could use the "visible phototransistor" from Jameco Electronics (part number 120221, product number BPW77, for $1.99 each). However, the datasheet shows that the phototransistor is 100% sensitive for infrared, 50% sensitive for red, 33% sensitive for green, and even less sensitive for blue. This could be somewhat compensated for by using lower-value resistors on the green LED and blue LED so that they would emit more light.&lt;br /&gt;&lt;br /&gt;A better choice is the family of TAOS light-to-voltage converters. Each consists of a fast true-visible-light photodiode and an amplifier in a hobbyist-friendly three-pin package. No external voltage-divider resistor is necessary.&lt;br /&gt;&lt;br /&gt;At Mouser Electronics, you can find three major visible-light varieties that trade off speed vs. light sensitivity. (But even the slowest one is 1000 times faster than a cadmium-sulfide photocell.)&lt;br /&gt;&lt;br /&gt;    * TSL12S-LF or TSL250R-LF: Slower speed but more light sensitive.&lt;br /&gt;    * TSL13S-LF or TSL251R-LF: Middle speed and middle light sensitivity.&lt;br /&gt;    * TSL14S-LF or TSL252R-LF: Faster speed but less light sensitivity.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SD1KbxSFxBI/AAAAAAAAAOo/NiNshIFpk8E/s1600-h/7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SD1KbxSFxBI/AAAAAAAAAOo/NiNshIFpk8E/s320/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5205398585256297490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The [sloppy] paint job on the RGB LED is to prevent light from going directly to the TAOS photosensor. This sensor arrangement works by have each LED color (red, green, and blue) in the RGB LED turned on one at a time, the light then reflects off of an object, and is read by the photosensor. The next color is turned on, the results read, and so on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-2221679045781592317?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/2221679045781592317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=2221679045781592317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2221679045781592317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2221679045781592317'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/05/over-years-number-of-methods-have-been.html' title='Cadmium-Sulfide Color Sensor'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/SD1IbxSFw8I/AAAAAAAAAOA/wf3D_kKf6Fw/s72-c/ColorSensor.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-2088447380557982359</id><published>2008-05-23T06:52:00.000-07:00</published><updated>2008-05-23T07:07:37.603-07:00</updated><title type='text'>TINY MOTOR</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SDbMTxSFw1I/AAAAAAAAANI/5rbsIJqQcxQ/s1600-h/TMThree75.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SDbMTxSFw1I/AAAAAAAAANI/5rbsIJqQcxQ/s320/TMThree75.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203571059491980114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tiny motors are wonderful for driving little robots (like Appetizer or Chicago) or turning small parts (like sensors) on big robots. Illustrated above, from left to right:&lt;br /&gt;&lt;br /&gt;    * Blue m&amp;m's candy for size comparison&lt;br /&gt;    * Cell-phone vibrating motor (salvaged)&lt;br /&gt;    * Solarbotics #TPM tiny pager motor. Replaced by TMP2 ($4.95) -- comes with clean shaft (no       weight)&lt;br /&gt;    * Solarbotics #RPM pager motor. Replaced by RMP2 ($3.95) -- comes with clean shaft (no weight) &lt;br /&gt;&lt;br /&gt;Electronic Goldmine has a number of pager motors with weights on their shafts: G12809 ($0.99), G13566 ($1.29), G15241 ($0.99), G15768 ($0.99), G15768 ($0.99 for 2), G16153 ($1.00).&lt;br /&gt;BGMicro has a pager motor with a weight on its shaft: MOT1030 ($0.99).&lt;br /&gt;All Electronics has a pager motor with a weight on its shaft: #DCM-204 ($1.25).&lt;br /&gt;&lt;br /&gt;Solarbotics sells tiny geared pager motors!!&lt;br /&gt;&lt;br /&gt;Geared motors are far superior to ordinary pager motors for robotics, since they have more torque (pushing power) and rotate more slowly. See the GM10 ($12) and GM15 ($19) in the Motors section of Solarbotics. Although slightly larger than most pager motors, the GM11, GM11a, GM12a, GM13a, GM18, GM19 ($19.75-$23 each) are still relatively small and are worth a look.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Parts&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Before discarding a damaged or obsolete cell phone, pager, or force-feedback joystick (aka game controller), crack it open and recover the vibrating element! The vibrating part usually consists of a miniature motor with an offset-weighted shaft. Because the piece of metal on the shaft is not centered, when the motor spins it causes the device to shift back-and-forth as the weight of the metal piece shifts around and around the motor shaft. Vibration.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SDbMjxSFw2I/AAAAAAAAANQ/_Pnu9J_vtJs/s1600-h/TMDamagedShaft50.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SDbMjxSFw2I/AAAAAAAAANQ/_Pnu9J_vtJs/s320/TMDamagedShaft50.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203571334369887074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dremel High-Speed Rotary Tool Failure&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The offset weight must be removed to make an effective robot motor.&lt;br /&gt;&lt;br /&gt;My first attempt at removal was to use a cutting wheel. Then, I tried to use a grinding stone. Although I successfully removed the weight, the process was difficult and took a long time. More significantly, the motor shaft got damaged. In the above photos, the shaft is nearly ground to half diameter. That's not good!&lt;br /&gt;&lt;br /&gt;Someone with greater skill and tool-accessory knowledge could probably perform the operation better than I could. The Dremel isn't at fault.&lt;br /&gt;&lt;br /&gt;Seriously, always wear goggles or protective eye wear when working with tools!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SDbM4RSFw3I/AAAAAAAAANY/ZJYaIb7-IgM/s1600-h/TMViseGrip50.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SDbM4RSFw3I/AAAAAAAAANY/ZJYaIb7-IgM/s320/TMViseGrip50.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203571686557205362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Locking Pliers&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The metal attached to my cell-phone vibrating motors is extremely strong. It doesn't appear to be made of lead or some other malleable element. The metal ended up dulling or damaging the heads of standard pliers and cutters. Even when I could get a grip, I ended up pulling out the entire shaft of the motor. That's not good either!&lt;br /&gt;&lt;br /&gt;While attempting to get a better grip on the motor, I accidentally discovered a reliable, repeatable, and easy way to remove the metal weight. Simply applying the locking force of locking pliers to the weight seems to crush or deform the metal very slightly, but enough to pop the crimp.&lt;br /&gt;&lt;br /&gt;Unless you've got super powers, normal pliers won't work. The leveraged force of locking pliers is absolutely necessary.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SDbNihSFw4I/AAAAAAAAANg/sBjXETTFHNo/s1600-h/TMViseGrip50.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SDbNihSFw4I/AAAAAAAAANg/sBjXETTFHNo/s320/TMViseGrip50.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203572412406678402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Position, Squeeze, and Tug:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Grip the metal weight at the end of the locking pliers like popping off a beer cap with your molars. (The American Dental Association would like to point out that the prior sentence is very reckless and is likely to result in the enrichment of your local dental specialist.) Try to grip across only the crimped portion of the metal weight, so that it can squish out rather than crimp further. The motor body shouldn't be touching the pliers at all.&lt;br /&gt;&lt;br /&gt;Use the greatest squeezing force the pliers can reasonably apply. The more the initial resistance to the squeeze, the easier it is to remove the motor shaft. When positioned and squeezed just right, I barely had to tug on the motor body to pull the shaft from the weight.&lt;br /&gt;&lt;br /&gt;Use only your hand to pull on the motor body. No other pliers or tools should be necessary.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SDbPBhSFw5I/AAAAAAAAANo/hTUoO1WV29A/s1600-h/TMViseGrip50.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SDbPBhSFw5I/AAAAAAAAANo/hTUoO1WV29A/s320/TMViseGrip50.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203574044494250898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alternate Method: Slitted Metal:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Depending on your access to precision machine tools (like a lathe and a milling machine), it may be possible for you to make a custom gear puller. If not, then a slightly more crude method can produce similar results.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SDbPTxSFw6I/AAAAAAAAANw/U6Kx0ym7wJs/s1600-h/TMViseGrip50.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SDbPTxSFw6I/AAAAAAAAANw/U6Kx0ym7wJs/s320/TMViseGrip50.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203574358026863522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Find the thickest piece of flat stock metal sheet (can be from a junk drawer) that will fit between the end of the motor and the gear or other object you want to remove. Saw or cut a slit part of the way through the metal sheet. See item (1) in above picture. The slit should be wide enough that the motor shaft can be slid on, leaving the gear on one side of the sheet and the motor on the other side of the sheet.&lt;br /&gt;&lt;br /&gt;Then, find a rod (like from a consumed Dremel grinding bit) or make a punch tool that can fit through the object to make contact with the motor shaft. See item (2) in the above picture.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SDbPfBSFw7I/AAAAAAAAAN4/39fAQ79VETA/s1600-h/Hammer.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SDbPfBSFw7I/AAAAAAAAAN4/39fAQ79VETA/s320/Hammer.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203574551300391858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Place this setup on a vise or something similar to support the metal sheet. With the rod making contact with the motor shaft, gently tap the rod with a hammer. This should force the motor shaft out of the gear. At some point, the motor will fall to the floor. Be sure to put a blanket or something there to catch the motor.&lt;br /&gt;&lt;br /&gt;Better still, if you have an arbor press, you can use the same tools to ease the motor free, rather than tapping on it with a hammer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-2088447380557982359?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/2088447380557982359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=2088447380557982359' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2088447380557982359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2088447380557982359'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/05/tiny-motor.html' title='TINY MOTOR'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aNh_uVW1ahk/SDbMTxSFw1I/AAAAAAAAANI/5rbsIJqQcxQ/s72-c/TMThree75.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-3467396894881041619</id><published>2008-05-05T02:30:00.000-07:00</published><updated>2008-05-05T02:36:23.240-07:00</updated><title type='text'>Robo's Think Like Humans</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SB7T7VBBJQI/AAAAAAAAAMo/x1r3qDwEGf8/s1600-h/laserrobot6+(Custom).jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SB7T7VBBJQI/AAAAAAAAAMo/x1r3qDwEGf8/s320/laserrobot6+(Custom).jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196824036239287554" /&gt;&lt;/a&gt;&lt;br /&gt;You know the future has arrived when scientists bring together two staples of science fiction: lasers and robots.&lt;br /&gt;&lt;br /&gt;But rather than 50-tonne behemoths dealing death with a massive light cannon, the El-E robot is instead using lasers to think like a human.&lt;br /&gt;&lt;br /&gt;Scientists at the Georgia Institute of Technology and the Emory University School of Medicine believe they have found the answer to the difficulties that robots have in processing the imperfections of the real world using laser pointers.&lt;br /&gt;&lt;br /&gt;Ordering El-E to retrieve an item is as simple as shining a laser pointer on the object you want. The pointer can also be used a second time to tell El-E to put the object in a certain place or give it to a specific person.&lt;br /&gt;&lt;br /&gt;Above, Charlie Kemp, director of the Healthcare Robotics Center at Georgia Tech and Emory, accepts a towel from El-E.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SB7UDVBBJRI/AAAAAAAAAMw/a9DmPo69Sfs/s1600-h/laserrobot3+(Custom).jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SB7UDVBBJRI/AAAAAAAAAMw/a9DmPo69Sfs/s320/laserrobot3+(Custom).jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196824173678241042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El-E, named after its arm's resemblance to an elephant trunk, as seen here, can grasp a range of household items including towels, pill bottles and telephones from floors or tables.&lt;br /&gt;&lt;br /&gt;The robot and its ability to pick up items from both floors and shelves could be a lifeline for people who have mobility difficulties.&lt;br /&gt;&lt;br /&gt;El-E's creators are gathering input from ALS (also known as Lou Gehrig's disease) patients and doctors to prepare El-E to assist patients with severe mobility challenges.&lt;br /&gt;&lt;br /&gt;Researchers from Georgia Tech and Emory are working with an expert on human-computer interactions to ensure the robot will one-day be ready to be used in people's homes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SB7UelBBJSI/AAAAAAAAAM4/JaKmFp-tq04/s1600-h/fire-breathing-robots-3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SB7UelBBJSI/AAAAAAAAAM4/JaKmFp-tq04/s320/fire-breathing-robots-3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196824641829676322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El-E uses a custom-built omni-directional camera to see most of the room. After it detects a selection has been made with the laser pointer, the robot moves two cameras to look at the laser spot and triangulate its position in three-dimensional space.&lt;br /&gt;&lt;br /&gt;Once it has reached an object, sensors in its hands will guide it on opening and closing its gripper until it has a firm hold, as pictured here.&lt;br /&gt;&lt;br /&gt;The robot is able to detect the difference between a face, a table or the floor so it is able to carefully present an object to a person or place it on a table or the floor.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SB7Uq1BBJTI/AAAAAAAAANA/DjUIrw4mUuY/s1600-h/laserrobot4+(Custom).JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SB7Uq1BBJTI/AAAAAAAAANA/DjUIrw4mUuY/s320/laserrobot4+(Custom).JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5196824852283073842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Researchers say one of the key benefits of the system is that El-E does not need to understand what objects are called, instead relying on an array of sensors similar to those seen here.&lt;br /&gt;&lt;br /&gt;El-E's power and computation is all on board and runs Ubuntu Linux on a Mac Mini.&lt;br /&gt;&lt;br /&gt;Kemp said: "We humans naturally point at things but we aren't very accurate, so we use the context of the situation or verbal cues to clarify which object is important.&lt;br /&gt;&lt;br /&gt;"Robots have some ability to retrieve specific, predefined objects, such as a soda can, but retrieving generic everyday objects has been a challenge for robots."&lt;br /&gt;&lt;br /&gt;Georgia Tech and Emory researchers are now working to help El-E expand its capabilities to include switching lights on and off when the user selects a light switch and opening and closing doors when the user selects a door knob.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-3467396894881041619?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/3467396894881041619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=3467396894881041619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3467396894881041619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3467396894881041619'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/05/robos-think-like-humans.html' title='Robo&apos;s Think Like Humans'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_aNh_uVW1ahk/SB7T7VBBJQI/AAAAAAAAAMo/x1r3qDwEGf8/s72-c/laserrobot6+(Custom).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-8847016424201365585</id><published>2008-05-05T02:19:00.000-07:00</published><updated>2008-05-05T02:28:44.302-07:00</updated><title type='text'>FIRE BREATHING ROBOT</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SB7SAVBBJLI/AAAAAAAAAMA/Pqoe1sIwkII/s1600-h/fire-breathing-robots-3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SB7SAVBBJLI/AAAAAAAAAMA/Pqoe1sIwkII/s320/fire-breathing-robots-3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196821923115377842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Those metal sculptures really looks great, and the best thing is that those weird mechanic’s have a lots of fire for you. Those are fire breathing robots and it looks too cool. These creative creators of those weird robots really do have some extra free time. Take a look at pictures and enjoy.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SB7Rv1BBJKI/AAAAAAAAAL4/DhBGwDPVnNY/s1600-h/fire-breathing-robots-1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SB7Rv1BBJKI/AAAAAAAAAL4/DhBGwDPVnNY/s320/fire-breathing-robots-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196821639647536290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jumping spiders, flaming bots and unnamed “things” inhabit the Greathouse Labs, providing lots of overheated excitement:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SB7SmVBBJNI/AAAAAAAAAMQ/wgTSn9rtih0/s1600-h/fire-breathing-robots-5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SB7SmVBBJNI/AAAAAAAAAMQ/wgTSn9rtih0/s320/fire-breathing-robots-5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196822575950406866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Terminator-like entities haunt the grounds:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SB7SRlBBJMI/AAAAAAAAAMI/qTHgTNjpPz8/s1600-h/fire-breathing-robots-6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SB7SRlBBJMI/AAAAAAAAAMI/qTHgTNjpPz8/s320/fire-breathing-robots-6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196822219468121282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wicked-looking battle bots and robot crawlers lurk in the garage, the walking cannons scurry around like mechanized chickens:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SB7S-lBBJOI/AAAAAAAAAMY/4I7jOD1cbSs/s1600-h/fire-breathing-robots-9.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SB7S-lBBJOI/AAAAAAAAAMY/4I7jOD1cbSs/s320/fire-breathing-robots-9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196822992562234594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Imagine meeting this thing somewhere in the country field in the middle of the night… You just might become a connoisseur of “grotesque” for the rest of your life.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SB7TFFBBJPI/AAAAAAAAAMg/hNjOOJSFW0g/s1600-h/fire-breathing-robots-10.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SB7TFFBBJPI/AAAAAAAAAMg/hNjOOJSFW0g/s320/fire-breathing-robots-10.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5196823104231384306" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-8847016424201365585?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/8847016424201365585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=8847016424201365585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/8847016424201365585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/8847016424201365585'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/05/fire-breathing-robot.html' title='FIRE BREATHING ROBOT'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_aNh_uVW1ahk/SB7SAVBBJLI/AAAAAAAAAMA/Pqoe1sIwkII/s72-c/fire-breathing-robots-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-5873042021528939823</id><published>2008-04-18T01:19:00.000-07:00</published><updated>2008-04-18T01:24:52.366-07:00</updated><title type='text'>Neural Network Example</title><content type='html'>A simple example for testing a neural network implementation is trying to&lt;br /&gt;learn the digits 0..9 from a seven-segment display representation. Figure 19.8&lt;br /&gt;shows the arrangement of the segments and the numerical input and training&lt;br /&gt;output for the neural network, which could be read from a data file. Note that&lt;br /&gt;there are ten output neurons, one for each digit, 0..9. This will be much easier&lt;br /&gt;to learn than e.g. a four-digit binary encoded output (0000 to 1001).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/SAhZ9r8LFhI/AAAAAAAAALg/jdYbJnviy7A/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/SAhZ9r8LFhI/AAAAAAAAALg/jdYbJnviy7A/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5190497486846498322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Figure 19.9 shows the decrease of total error values by applying the backpropagation&lt;br /&gt;procedure on the complete input data set for some 700 iterations.&lt;br /&gt;Eventually the goal of an error value below 0.1 is reached and the algorithm&lt;br /&gt;terminates. The weights stored in the neural net are now ready to take on previously&lt;br /&gt;unseen real data. In this example the trained network could e.g. be tested&lt;br /&gt;against 7-segment inputs with a single defective segment (always on or always&lt;br /&gt;off).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SAhaK78LFiI/AAAAAAAAALo/s5kLqiUC1B0/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SAhaK78LFiI/AAAAAAAAALo/s5kLqiUC1B0/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5190497714479765026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Neural Controller&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Control of mobile robots produces tangible actions from sensor inputs. A controller for a robot receives input from its sensors, processes the data using relevantlogic, and sends appropriate signals to the actuators. For most large tasks, the ideal mapping from input to action is not clearly specified nor readily apparent. Such tasks require a control program that must be carefully designed and tested in the robot’s operational environment. The creation of these control programs is an ongoing concern in robotics as the range of viable application domains expands, increasing the complexity of tasks expected of autonomous robots.&lt;br /&gt;&lt;br /&gt;A number of questions need to be answered before the feed-forward ANN in Figure can be implemented. Among them are: How can the success of the network be measured? The robot should perform a collision-free left-wall following.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How can the training be performed?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In simulation or on the real robot.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is the desired motor output for each situation?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The motor function that drives the robot close to the wall on the left-hand&lt;br /&gt;side and avoids collisions.&lt;br /&gt;&lt;br /&gt;Neural networks have been successfully used to mediate directly between&lt;br /&gt;sensors and actuators to perform certain tasks. Past research has focused on&lt;br /&gt;using neural net controllers to learn individual behaviors. Vershure developed&lt;br /&gt;a working set of behaviors by employing a neural net controller to drive a set&lt;br /&gt;of motors from collision detection, range finding, and target detection sensors&lt;br /&gt;[Vershure et al. 1995]. The on-line learning rule of the neural net was designed&lt;br /&gt;to emulate the action of Pavlovian classical conditioning. The resulting controller&lt;br /&gt;associated actions beneficial to task performance with positive feedback.&lt;br /&gt;Adaptive logic networks (ALNs), a variation of NNs that only use boolean&lt;br /&gt;operations for computation, were successfully employed in simulation by&lt;br /&gt;Kube et al. to perform simple cooperative group behaviors [Kube, Zhang,&lt;br /&gt;Wang 1993]. The advantage of the ALN representation is that it is easily mappable&lt;br /&gt;directly to hardware once the controller has reached a suitable working&lt;br /&gt;state.&lt;br /&gt;In Chapter 22 an implementation of a neural controller is described that is&lt;br /&gt;used as an arbitrator or selector of a number of behaviors. Instead of applying a&lt;br /&gt;learning method like backpropagation shown in Section 19.3, a genetic algorithm&lt;br /&gt;is used to evolve a neural network that satisfies the requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-5873042021528939823?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/5873042021528939823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=5873042021528939823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5873042021528939823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5873042021528939823'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/04/neural-network-example.html' title='Neural Network Example'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/SAhZ9r8LFhI/AAAAAAAAALg/jdYbJnviy7A/s72-c/k.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-5715053455628556583</id><published>2008-04-18T01:01:00.000-07:00</published><updated>2008-04-18T01:19:05.111-07:00</updated><title type='text'>NEURAL NETWORKS</title><content type='html'>The artificial neural network (ANN), often simply called neural network(NN), is a processing model loosely derived from biological neurons [Gurney 2002]. Neural networks are often used for classification problems or decision making problems that do not have a simple or straightforward algorithmic solution. The beauty of a neural network is its ability to learn an input to output mapping from a set of training cases without explicit programming, and then being able to generalize this mapping to cases not seen previously. There is a large research community as well as numerous industrial users&lt;br /&gt;working on neural network principles and applications [Rumelhart, McClelland 1986], [Zaknich 2003]. In this chapter, we only briefly touch on this subject and concentrate on the topics relevant to mobile robots.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Neural Network Principles&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;A neural network is constructed from a number of individual units called neurons that are linked with each other via connections. Each individual neuron has a number of inputs, a processing node, and a single output, while each connection from one neuron to another is associated with a weight. Processing in a neural network takes place in parallel for all neurons. Each neuron constantly (in an endless loop) evaluates (reads) its inputs, calculates its local activation value according to a formula shown below, and produces (writes) an output value.&lt;br /&gt;&lt;br /&gt;The activation function of a neuron a(I, W) is the weighted sum of its inputs, i.e. each input is multiplied by the associated weight and all these terms are added. The neuron’s output is determined by the output function o(I, W),for which numerous different models exist.In the simplest case, just thresholding is used for the output function. For our purposes, however, we use the non-linear “sigmoid” output function&lt;br /&gt;defined in &lt;b&gt;Figure 19.1&lt;/b&gt; and shown in &lt;b&gt;Figure 19.2&lt;/b&gt;, which has superior characteristics for learning (see Section 19.3). This sigmoid function approximates the Heaviside step function, with parameter 􀁕 controlling the slope of the graph&lt;br /&gt;(usually set to 1).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SAhXJL8LFdI/AAAAAAAAALA/Y8OxGPjDN6k/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SAhXJL8LFdI/AAAAAAAAALA/Y8OxGPjDN6k/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5190494385880110546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SAhXkb8LFeI/AAAAAAAAALI/dzCeXoVTXRQ/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SAhXkb8LFeI/AAAAAAAAALI/dzCeXoVTXRQ/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5190494854031545826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Feed-Forward Networks&lt;/b&gt;&lt;/u&gt;:&lt;br /&gt;&lt;br /&gt;A neural net is constructed from a number of interconnected neurons, which are usually arranged in layers. The outputs of one layer of neurons are connected to the inputs of the following layer. The first layer of neurons is called the “input layer”, since its inputs are connected to external data, for example sensors to the outside world. The last layer of neurons is called the “output layer”, accordingly, since its outputs are the result of the total neural network and are made available to the outside. These could be connected, for example, to robot actuators or external decision units. All neuron layers between the input layer and the output layer are called “hidden layers”, since their actions cannot be observed directly from the outside.&lt;br /&gt;&lt;br /&gt;If all connections go from the outputs of one layer to the input of the next layer, and there are no connections within the same layer or connections from a later layer back to an earlier layer, then this type of network is called a “feedforward network”. Feed-forward networks (Figure 19.3) are used for the simplest types of ANNs and differ significantly from feedback networks, which we will not look further into here.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SAhYnL8LFfI/AAAAAAAAALQ/wwe117HnCXo/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SAhYnL8LFfI/AAAAAAAAALQ/wwe117HnCXo/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5190496000787813874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For most practical applications, a single hidden layer is sufficient, so the typical NN for our purposes has exactly three layers: &lt;br /&gt;&lt;br /&gt;• Input layer (for example input from robot sensors)&lt;br /&gt;&lt;br /&gt;• Hidden layer (connected to input and output layer)&lt;br /&gt;&lt;br /&gt;• Output layer (for example output to robot actuators)&lt;br /&gt;&lt;br /&gt;Perceptron Incidentally, the first feed-forward network proposed by Rosenblatt had only two layers, one input layer and one output layer [Rosenblatt 1962]. However, these so-called “Perceptrons” were severely limited in their computational power because of this restriction, as was soon after discovered by [Minsky,Papert 1969]. Unfortunately, this publication almost brought neural network research to a halt for several years, although the principal restriction applies only to two-layer networks, not for networks with three layers or more. In the standard three-layer network, the input layer is usually simplified in the way that the input values are directly taken as neuron activation. No activation function is called for input neurons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-5715053455628556583?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/5715053455628556583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=5715053455628556583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5715053455628556583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5715053455628556583'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/04/neural-networks.html' title='NEURAL NETWORKS'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_aNh_uVW1ahk/SAhXJL8LFdI/AAAAAAAAALA/Y8OxGPjDN6k/s72-c/untitled.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-3503246783345894203</id><published>2008-04-11T04:56:00.000-07:00</published><updated>2008-04-11T05:23:34.143-07:00</updated><title type='text'>Working Of Remote Control System</title><content type='html'>Wireless control has always seemed to fascinate people, and Questor’s remote control system is the heart of his appeal. While the technical aspects of remote control may be&lt;br /&gt;a little hard for the novice to grasp, Questor’s remote control system is rather simple in construction. Before I go into detail on how the system is comprised, a brief explanation of remote control is in order.&lt;br /&gt;&lt;br /&gt;A remote control system consists of three basic components.The first is the transmitter or “encoder.” Moving controls on thetransmitter causes it to send or encode signals to the second part of the remote control system, the receiver, or decoder. Thereceiver gets the signals from the transmitter and then decodesthem. Depending on what signal the receiver decoded, it willactivate a servo, the third part of the system. Servos are the&lt;br /&gt;mechanical part of a remote control system.&lt;br /&gt;&lt;br /&gt; A wheel or sometimes bar on the servo will turn in proportion with the movement&lt;br /&gt;of the transmitter’s control. This movement can then be used to directly control the function of a robot, or in Questor’s case to trip switches that control his movements.&lt;br /&gt;Questor’s remote control system is a standard off-the-shelf type like that pictured in Fig. 4-1. Notice the three main parts of the system. The robot requires a system with a minimum of two channels.&lt;br /&gt;&lt;br /&gt; A two-channel system has two servos; each of the servos is used to control one of the robot’s motorized wheels. The system used in my version of Questor has three&lt;br /&gt;channels; the third channel is used to trip two switches that can turn other items on the robot on or off.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R_9UNhkfUdI/AAAAAAAAAKg/dLMPpx1i2So/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R_9UNhkfUdI/AAAAAAAAAKg/dLMPpx1i2So/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5187957887080550866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The switches that the servos trip are called leaf switches (Fig below). A leaf switch is a very small on/off switch that is triggered by depressing a small metal strip or “leaf” on the switch. By using four leaf switches, it is possible to recreate the function of the DPDT switches used in the temporary control box.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R_9UWhkfUeI/AAAAAAAAAKo/mLnAhEo6leM/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R_9UWhkfUeI/AAAAAAAAAKo/mLnAhEo6leM/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5187958041699373538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A total of eight switches is needed to duplicate the function of the DPDT switches used to control the robot’s motorized wheels. One servo is then used to trip four switches in&lt;br /&gt;such a way to drive the wheel either forward or reverse. You use the control sticks on the remote control transmitter in the same way as you flipped the DPDT switches on the temporary control box; up is forward, center is off, and down is reverse.&lt;br /&gt;&lt;br /&gt;If you chose a remote control system with more than two channels, you can use the other servos to trip leaf switches for turning other devices on or off, or control motors (forward,&lt;br /&gt;stop, and reverse) within the robot. The third servo of my remote control system is used to turn a horn on and off.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R_9XNhkfUgI/AAAAAAAAAK4/AEU_RmtN3ys/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R_9XNhkfUgI/AAAAAAAAAK4/AEU_RmtN3ys/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5187961185615434242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R_9XDxkfUfI/AAAAAAAAAKw/CHPyEt1x-eU/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R_9XDxkfUfI/AAAAAAAAAKw/CHPyEt1x-eU/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5187961018111709682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You need only one leaf switch per function if that function is to be turned only on or off. Figure above shows how the leaf switches are positioned and triggered for either on/off or forward/reverse control. By now you’re probably wondering&lt;br /&gt;where all this fits inside of Questor. The remote control system (servos and receiver), leaf switches, and other components are mounted on a motherboard that is then installed inside Questor’s framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-3503246783345894203?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/3503246783345894203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=3503246783345894203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3503246783345894203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3503246783345894203'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/04/working-of-remote-control-system.html' title='Working Of Remote Control System'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_aNh_uVW1ahk/R_9UNhkfUdI/AAAAAAAAAKg/dLMPpx1i2So/s72-c/untitled.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-9012134542786937905</id><published>2008-04-06T07:15:00.000-07:00</published><updated>2008-04-06T07:24:00.426-07:00</updated><title type='text'>Camera Sensor Data</title><content type='html'>We have to distinguish between grayscale and color cameras, although, as we will see, there is only a minor difference between the two. The simplest available sensor chips provide a grayscale image of 120 lines by 160 columns with 1 byte per pixel (for example VLSI Vision VV5301 in grayscale or VV6301 in color). A value of zero represents a black pixel, a value of 255 is a white pixel, everything in between is a shade of gray. Figure below illustrates such an image. The camera transmits the image data in row-major order, usually after a certain frame-start sequence.&lt;br /&gt;&lt;br /&gt;Creating a color camera sensor chip from a grayscale camera sensor chip is&lt;br /&gt;very simple. All it needs is a layer of paint over the pixel mask. The standard&lt;br /&gt;technique for pixels arranged in a grid is the Bayer pattern (Figure 2.17). Pixels&lt;br /&gt;in odd rows (1, 3, 5, etc.) are colored alternately in green and red, while&lt;br /&gt;pixels in even rows (2, 4, 6, etc.) are colored alternately in blue and green.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R_jbpqO77YI/AAAAAAAAAKY/RKj0wriSHw8/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R_jbpqO77YI/AAAAAAAAAKY/RKj0wriSHw8/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5186136479675182466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With this colored filter over the pixel array, each pixel only records the intensity of a certain color component. For example, a pixel with a red filter will&lt;br /&gt;only record the red intensity at its position. At first glance, this requires 4 bytes&lt;br /&gt;per color pixel: green and red from one line, and blue and green (again) from the line below. This would result effectively in a 60􀁵80 color image with an additional, redundant green byte per pixel. However, there is one thing that is easily overlooked. The four components red, green1, blue, and green2 are not sampled at the same position. For example, the blue sensor pixel is below and to the right of the red pixel. So by treating the four components as one pixel, we have already applied some sort of filtering and lost information.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R_jbWaO77WI/AAAAAAAAAKI/Mb14B_jINaE/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R_jbWaO77WI/AAAAAAAAAKI/Mb14B_jINaE/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5186136148962700642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A technique called “demosaicing” can be used to restore the image in full 120􀁵160 resolution and in full color. This technique basically recalculates the three color component values (R, G, B) for each pixel position, for example by averaging the four closest component neighbors of the same color. Figure below shows the three times four pixels used for demosaicing the red, green, and blue components of the pixel at position [3,2] (assuming the image starts in the top left corner with [0,0]). &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R_jbeKO77XI/AAAAAAAAAKQ/_y0hKiFP1fk/s1600-h/j.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R_jbeKO77XI/AAAAAAAAAKQ/_y0hKiFP1fk/s320/j.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5186136282106686834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Averaging, however, is only the simplest method of image value restoration&lt;br /&gt;and does not produce the best results. A number of articles have researched better algorithms for demosaicing [Kimmel 1999], [Muresan, Parks 2002].&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-9012134542786937905?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/9012134542786937905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=9012134542786937905' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/9012134542786937905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/9012134542786937905'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/04/camera-sensor-data.html' title='Camera Sensor Data'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/R_jbpqO77YI/AAAAAAAAAKY/RKj0wriSHw8/s72-c/untitled.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-6437603967750930705</id><published>2008-04-06T06:59:00.000-07:00</published><updated>2008-04-06T07:15:00.213-07:00</updated><title type='text'>Camera Sensor Hardware</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R_jZTaO77VI/AAAAAAAAAKA/tlih2O1Nhxk/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R_jZTaO77VI/AAAAAAAAAKA/tlih2O1Nhxk/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5186133898399837522" /&gt;&lt;/a&gt;&lt;br /&gt;In recent years we have experienced a shift in camera sensor technology. The previously dominant &lt;b&gt;CCD&lt;/b&gt; (charge coupled device) sensor chips are now being overtaken by the cheaper to produce &lt;b&gt;CMOS&lt;/b&gt; (complementary metal oxide semiconductor) sensor chips. &lt;br /&gt;&lt;br /&gt;The brightness sensitivity range for CMOS sensors is typically larger than that of CCD sensors by several orders of magnitude.For interfacing to an embedded system, however, this does not make a difference. Most sensors provide several different interfacing protocols that can be selected via software.&lt;br /&gt;&lt;br /&gt; On the one hand, this allows a more versatile hardware design, but on the other hand sensors become as complex as another microcontroller system and therefore software design becomes quite involved. Typical hardware interfaces for camera sensors are 16bit parallel, 8bit parallel, 4bit parallel, or serial. &lt;br /&gt;&lt;br /&gt;In addition, a number of control signals have to be provided from the controller. Only a few sensors buffer the image data and allow arbitrarily slow reading from the controller via handshaking. This is an ideal solution for slower controllers. However, the standard camera chip provides its own clock signal and sends the full image data as a stream with some frame-start signal. This means the controller CPU has to be fast enough to keep up with the data stream.&lt;br /&gt;&lt;br /&gt;The parameters that can be set in software vary between sensor chips. Most common are the setting of frame rate, image start in (x,y), image size in (x,y), brightness, contrast, color intensity, and auto-brightness. The simplest camera interface to a CPU is shown in Figure below. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R_jXlqO77TI/AAAAAAAAAJw/_AY3-jX_98U/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R_jXlqO77TI/AAAAAAAAAJw/_AY3-jX_98U/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5186132012909194546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The camera clock is linked to a CPU interrupt, while the parallel camera data output is connected directly to the data bus. Every single image byte from the camera will cause an interrupt at the CPU, which will then enable the camera output and read one image data byte from the data bus Every interrupt creates considerable overhead, since system registers have to be saved and restored on the stack.Starting and returning from an interrupt takes about 10 times the execution time of a normal command, depending on the microcontroller used. Therefore, creating one interrupt per image byte is not the best possible solution. It would be better to buffer a number of bytes and then use an interrupt much less frequently to do a bulk data transfer of&lt;br /&gt;image data.&lt;br /&gt;&lt;br /&gt;Figure below shows this approach using a FIFO buffer for intermediate storing of image data. The advantage of a FIFO buffer is that it supports unsynchronized read and write in parallel.So while the camera is writing data to the FIFO buffer, the CPU can read data out, with the remaining buffer contents staying undisturbed.The camera output is linked to the FIFO input, with the camera’s pixel clock triggering the FIFO write line. From the CPU side, the FIFO data output is connected to the system’s data bus, with the chip select triggering the FIFO read line. The FIFO provides three additional status lines:&lt;br /&gt;&lt;br /&gt;• Empty flag&lt;br /&gt;&lt;br /&gt;• Full flag&lt;br /&gt;&lt;br /&gt;• Half full flag&lt;br /&gt;&lt;br /&gt;These digital outputs of the FIFO can be used to control the bulk reading of&lt;br /&gt;data from the FIFO. Since there is a continuous data stream going into the&lt;br /&gt;FIFO, the most important of these lines in our application is the half full flag,&lt;br /&gt;which we connected to a CPU interrupt line. Whenever the FIFO is half full,&lt;br /&gt;we initiate a bulk read operation of 50% of the FIFO’s contents. Assuming the&lt;br /&gt;CPU responds quickly enough, the full flag should never be activated, since&lt;br /&gt;this would indicate an imminent loss of image data.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R_jXr6O77UI/AAAAAAAAAJ4/fhll8RfY_g0/s1600-h/j.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R_jXr6O77UI/AAAAAAAAAJ4/fhll8RfY_g0/s320/j.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5186132120283376962" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-6437603967750930705?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/6437603967750930705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=6437603967750930705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6437603967750930705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6437603967750930705'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/04/camera-sensor-hardware.html' title='Camera Sensor Hardware'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_aNh_uVW1ahk/R_jZTaO77VI/AAAAAAAAAKA/tlih2O1Nhxk/s72-c/untitled.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-5786085548490234131</id><published>2008-04-01T08:52:00.000-07:00</published><updated>2008-04-01T09:19:10.192-07:00</updated><title type='text'>MOTHERBOARD</title><content type='html'>The motherboard is simply a 10-10-1/8-inch piece of plywood on which all of the components for the remote control system are mounted. The various components consist of the remote control system’s servos, receiver, and battery pack, along with ten leaf switches, four barrier strips, and a four-slot fuse holder. Figure 4-4 shows where each item is placed on the board. &lt;br /&gt;&lt;br /&gt;The first items to be mounted are the servos. Cutouts will have to be made in the board to allow the servos to sit flush with the board. To do this, first place the servos evenly spaced on the motherboard and trace around their bases. Cut out the wood where traced and slip the servos in place. The servos’ body should have tabs sticking out along its top edge; these tabs prevent the servo from going all the way&lt;br /&gt;through the board and this is where the servos are screwed to the board. Most remote control systems come with either plastic wheels and/or star levers that are screwed on the servo’s motor.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R_JbCqO77NI/AAAAAAAAAJA/S9m5b28yUFY/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R_JbCqO77NI/AAAAAAAAAJA/S9m5b28yUFY/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184306222311664850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WIRING THE MOTHERBOARD:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Before you wire the motherboard, cut two notches on each side of the motherboard so the wires will not go past its edge. Figure 4-8 shows how to wire together the components on the motherboard. There are two main rows of barrier strips on the&lt;br /&gt;motherboard; the first row is numbered.&lt;br /&gt;&lt;br /&gt;These numbers correspond with numbers on the tabs of the leaf switches; simply wire the matching numbers together. In some cases more than one wire will go to one post on the barrier strip. Use the half of the barrier strip closest to the leaf switches. The color wire used is indicated on the leaf switch: R _ red, B _ black. The other row is where the motorized wheel and horn will be connected; they too use the matching number system.&lt;br /&gt;&lt;br /&gt;The second row is divided into two parts called power grids. The first 8 post (which is one complete barrier strip) is called the positive grid and is where the positive lead of the battery is connected and where all the positive or red wires from Questor’s electronics will be connected. The second 8 post is for the negative or black wires and is called the negative power grid. All the posts on the same side of each grid must be wired together by one wire run from post to post. &lt;br /&gt;&lt;br /&gt;Be sure not to run a wire between the positive and negative grids; this will cause a short circuit. Figure 4-8 shows where the wire runs. Later when other functions are wired, the instructions will say “wire to positive power grid and negative power grid.” You can then connect those wires to any open post on the grids. Figure 4-8 also shows four wires coming from the positive grid to the fuse holder. These wires are all positive and you should use red wires. &lt;br /&gt;&lt;br /&gt;Two more red wires run from the opposite ends of two of the fuses directly to the post on the leaf switch barrier strips. This is where the switch gets the power to control two on/off functions in the robot. (The negative or black wire forms the function being controlled; in my robot a horn is wired directly to the positive power grid.) There are also two black wires running from the negative power grid to the leaf switch barrier strips at post 8 and 2.&lt;br /&gt;&lt;br /&gt;These are also shown in figure below...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R_JdaaO77OI/AAAAAAAAAJI/7jpqsBwu2j8/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R_JdaaO77OI/AAAAAAAAAJI/7jpqsBwu2j8/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184308829356813538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wires to the leaf switches and fuse holder will have to be soldered. The wires that lead to the barrier strips should have hooks bent at their ends so they can wrap around the screws on the strip. After the board is wired, check it against Figure because errors here can affect the function of the rest of the robot. Also at this time, install four 20-amp fuses&lt;br /&gt;in the fuse holder. These fuses help protect the robot’s components from short circuits and overloads. Once the board is wired and checked, the remote control receiver can&lt;br /&gt;be mounted and the motherboard mounted in Questor’s framework.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;COMPLETING THE MOTHERBOARD:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The remote control’s receiver and battery are mounted on the underside of the motherboard. Using four screw-on hooks, rubber bands and foam rubber, the receiver is held securely in place. Figure shows how to mount the receiver. The figure&lt;br /&gt;is self-explanatory. The only thing to keep in mind is that the servos must be wired to the receiver, so don’t mount the receiver out of reach of the servo wires.&lt;br /&gt;&lt;br /&gt;The order in which the servos are connected to the receiver is very important to the control of the robot. When both control sticks on the transmitter are pushed up, the&lt;br /&gt;robot should move forward. If both sticks are pulled down, the robot should run in reverse. The center or neutral position is off and of course causes no movement of the robot. If you have a third channel (and servo) in your remote control system, it should react to the sideways movement of one of the control sticks on the transmitter. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R_JemKO77PI/AAAAAAAAAJQ/gW2gPmUMWZw/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R_JemKO77PI/AAAAAAAAAJQ/gW2gPmUMWZw/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184310130731904242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Table 4-2 lists all of the control combinations used to operate Questor’s functions. It is not necessary to wire the motorized wheels to the motherboard. To check this simply make sure that when thesticks are pushed forward, the two servos controlling the motorized wheels turn as shown in Fig. 4-10. If you have a third servo a sideways movement of either stick should causethe servo to activate it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R_Je86O77QI/AAAAAAAAAJY/UJFLydXydCQ/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R_Je86O77QI/AAAAAAAAAJY/UJFLydXydCQ/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184310521573928194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R_JfKqO77RI/AAAAAAAAAJg/SnXLXiFSPG4/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R_JfKqO77RI/AAAAAAAAAJg/SnXLXiFSPG4/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184310757797129490" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-5786085548490234131?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/5786085548490234131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=5786085548490234131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5786085548490234131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5786085548490234131'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/04/motherboard.html' title='MOTHERBOARD'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_aNh_uVW1ahk/R_JbCqO77NI/AAAAAAAAAJA/S9m5b28yUFY/s72-c/untitled.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7165797835326169629</id><published>2008-03-28T09:59:00.000-07:00</published><updated>2008-03-28T10:11:51.266-07:00</updated><title type='text'>Microcontrollers</title><content type='html'>A &lt;b&gt;Microcontroller&lt;/b&gt; (also MCU or µC) is a computer-on-a-chip. It is a type of microprocessor emphasizing high integration, low power consumption, self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor (the kind used in a PC).&lt;br /&gt;&lt;br /&gt;Microcontrollers are frequently used in automatically controlled products and devices, such as automobile engine control systems, remote controls, office machines, appliances, robotics power tools, and toys. By reducing the size, cost, and power consumption compared to a design using a separate microprocessor, memory, and input/output devices, microcontrollers make it economical to electronically control many more processes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Embedded design:&lt;/b&gt;&lt;br /&gt;The majority of computer systems in use today are embedded in other machinery, such as telephones, clocks, appliances, and vehicles. An embedded system may have minimal requirements for memory and program length. Input and output devices may be discrete switches, relays, or solenoids. An embedded controller may lack any human-readable interface devices at all. For example, embedded systems usually don't have keyboards, screens, disks, printers, or other recognizable I/O devices of a personal computer. Microcontrollers may control electric motors, relays or voltages, and may read switches, variable resistors or other electronic devices.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Programming Environments:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Microcontrollers were originally programmed only in assembly language, but various high-level programming languages are now also in common use to target microcontrollers. These languages are either designed specially for the purpose, or versions of general purpose languages such as the C programming language. Compilers for general purpose languages will typically have some restrictions as well as enhancements to better support the unique characteristics of microcontrollers.&lt;br /&gt;&lt;br /&gt;Interpreter firmware is also available for some microcontrollers. The Intel 8052 and Zilog Z8 were available with BASIC very early on, and BASIC is more recently used in the BASIC Stamp MCUs.Some microcontrollers have environments to aid developing certain types of applications, e.g. Analog Device's Blackfin processors with the LabVIEW environment and its programming language "C".&lt;br /&gt;&lt;br /&gt;Simulators are available for some microcontrollers, such as in Microchip's MPLAB environment. These allow a developer to analyse what the behaviour of the microcontroller and their program should be if they were using the actual part. A simulator will show the internal processor state and also that of the outputs, as well as allowing input signals to be generated. While on the one hand most simulators will be limited from being unable to simulate much other hardware in a system, they can exercise conditions that may otherwise be hard to reproduce at will in the physical implementation, and can be the quickest way to debug and analyse problems.&lt;br /&gt;&lt;br /&gt;Recent microcontrollers integrated with on-chip debug circuitry accessed by In-circuit emulator via JTAG enables a programmer to debug the software of an embedded system with a debugger.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Use of MICROCONTROLLERS in ROBOTIC’S depends on the requirement.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aurorian.blogspot.com/2007/11/please-check-this-out_25.html"&gt;&lt;br /&gt;&lt;b&gt;Click On This Link To Get A List Of Different MICROCONTROLLER’S Manufactured By Differnt Companies&lt;/b&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Few of the Companies which manufacture MICROCONTROLLER’S are stated below:&lt;br /&gt;&lt;br /&gt;1) ATMEL Corporation: It is a manufacturer of semiconductors, founded in 1984. Its focus is on system-level solutions built around flash microcontrollers. Its products include microcontrollers (including 8051 derivatives and AT91SAM and AT91CAP ARM-based micros), and its own ATMEL AVR and AVR32 architectures, radio frequency (RF) devices, EEPROM and Flash memory devices (including DataFlash-based memory), and a number of application-specific products. ATMEL supplies its devices as standard products, ASICs, or ASSP's depending on the requirements of its customers. In some cases it is able to offer system on chip solutions.&lt;br /&gt;&lt;br /&gt;ATMEL serves a range of application segments including consumer, communications, computer networking, industrial, medical, automotive, aerospace and military. It is an industry leader in secure systems, notably for the smart card market.&lt;br /&gt;&lt;br /&gt;Few of ATMEL Microcontroller’s&lt;br /&gt;&lt;br /&gt;• AT89 series (Intel 8051 architecture)&lt;br /&gt;&lt;br /&gt;• AT90, ATtiny, ATmega series (AVR architecture) (Atmel Norway design)&lt;br /&gt;&lt;br /&gt;• AT91SAM (ARM architecture)&lt;br /&gt;&lt;br /&gt;• AVR32 (32-bit AVR architecture)&lt;br /&gt;&lt;br /&gt;• MARC4&lt;br /&gt;&lt;br /&gt;2)&lt;b&gt;Cypress MicroSystems :&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;(CMS) (not to be mistaken with the cypress tree) markets high-performance, field Programmable System-on-a-Chip (PSoC) integrated M8 micro-based solutions. CMS is based in Lynnwood, near Seattle, Washington and was established as a subsidiary of Cypress Semiconductor Corporation in the fourth quarter of 1999. Who's one of the best engineer is Bert Sullam. Now cypresses micro chips has grown from a small simple chip too one of the best and highest quality micro chips now you can find it any where.&lt;br /&gt;&lt;br /&gt;Cypress MicroSystems was purchased by Cypress Semiconductor in the 4th quarter of 2005 consistent with the original business plan of the start up.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;More Updates Soon Please Bear For Mean Time And If Any Specific Request Please A Comment.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7165797835326169629?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7165797835326169629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7165797835326169629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7165797835326169629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7165797835326169629'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/microcontrollers.html' title='Microcontrollers'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7240946621781821428</id><published>2008-03-24T07:24:00.001-07:00</published><updated>2008-03-24T07:33:52.461-07:00</updated><title type='text'>Artificial Brain</title><content type='html'>The objective of this research is that &lt;b&gt;The Artificial Brain&lt;/b&gt; has to provide the robot with abilities to perceive an environment, to interact with humans, to make intelligent decision and to learn new skills.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R-e6o6O77KI/AAAAAAAAAIg/lYPoK86uGQg/s1600-h/sensopac_robotic_system.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R-e6o6O77KI/AAAAAAAAAIg/lYPoK86uGQg/s320/sensopac_robotic_system.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5181315108302482594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An international team of European researchers has implanted an &lt;b&gt;artificial cerebellum&lt;/b&gt; — the portion of the brain that controls motor functions — inside a robotic system. This EU-funded project is dubbed SENSOPAC, an acronym for ‘SENSOrimotor structuring of perception and action for emerging cognition.’ &lt;br /&gt;&lt;br /&gt;One of the goals of this project is to design robots able to interact with humans in a natural way. This project, which should be completed at the end of 2009, also wants to produce robots which would act as home-helpers for disabled people, such as persons affected by neurological disorders, such as Parkinson’s disease.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R-e616O77LI/AAAAAAAAAIo/9ESpv-uvP3I/s1600-h/20070827_2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R-e616O77LI/AAAAAAAAAIo/9ESpv-uvP3I/s320/20070827_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5181315331640782002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The European SENSOPAC project started on January 1, 2006 and will take 4 years to be completed. The 12 organizations participating to the project come from 9 different countries and have provided physicists, neuroscientists and electronic engineers.&lt;br /&gt;&lt;br /&gt;The microchips which incorporate a full neuronal system have been designed at the University of Granada, Spain. “Implanting the man-made cerebellum in a robot will allow it to manipulate and interact with other objects with far greater effectiveness than previously managed. &lt;br /&gt;&lt;br /&gt;‘Although robots are increasingly more important to our society and have more advanced technology, they cannot yet do certain tasks like those carried out by mammals,’ says Professor Eduardo Ros Vidal, who is coordinating the work at the University of Granada. ‘We have been talking about humanoids for years but we do not yet see them on the street or use the unlimited possibilities they offer us,’ the Professor added.”&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Also&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A team of South Korean scientists has made a breakthrough in developing an artificial brain system, which enables a robot to make a decision in tune with different situations.&lt;br /&gt;&lt;br /&gt;The team, headed by Prof. Kim Jong-hwan at the Korea Advanced Institute of Science and Technology, said Thursday that they are trying to incorporate the system to physical robots.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R-e7rKO77MI/AAAAAAAAAIw/_GquI3hk7Pc/s1600-h/takara-tomy-i-sobot.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R-e7rKO77MI/AAAAAAAAAIw/_GquI3hk7Pc/s320/takara-tomy-i-sobot.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5181316246468816066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The brain system is a software robot, called &lt;b&gt;sobot&lt;/b&gt;, which imitates the thinking mechanism architecture of human brains from sensing to decision-making and behaviors. &lt;br /&gt;&lt;br /&gt;Kim said the new-fangled software robot is the world's first one that can make a decision based on contexts, or check surroundings before opting on how to behave. &lt;br /&gt;&lt;br /&gt;''Let me take an example. When an owner returns home, a robot is charging its battery. Then, it is supposed to stop consuming electricity and greet the human,'' Kim said. &lt;br /&gt;&lt;br /&gt;``When the machine charged itself enough, it will know so. But if its battery runs low, it will select to remain being plugged in. In other words, it thinks close to a human,'' he said. &lt;br /&gt;&lt;br /&gt;Emulating the human brain, the software robot is composed of six modules for as many functions perception, context awareness, internal status, memory, behavior and actuator. &lt;br /&gt;&lt;br /&gt;``We will continue to put forth efforts to enhance the capacity of software robots in analyzing the environment and reaching conclusions before taking actions,'' Kim said. ``Such attempts will eventually lead to the development of human-like robots.'' &lt;br /&gt;&lt;br /&gt;KT, the country's predominant telecom operator, already recognized the exponential potential of the sophisticated system. &lt;br /&gt;&lt;br /&gt;Beginning next month, Kim's team will carry out a joint research program together with KT regarding the smart software architecture. &lt;br /&gt;&lt;br /&gt;Kim is well known globally for founding and leading the Federation of International Robot Soccer, where robotic drones duke it out on the pitch. &lt;br /&gt;&lt;br /&gt;He also gained prominence in late 2004 by unveiling a software robot, which is programmed with 14 artificial chromosomes that control a total of 77 behaviors. &lt;br /&gt;&lt;br /&gt;According to Kim, the software robot, which he claims evolves through crossover and mutation, can offer personality to robot hardware.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7240946621781821428?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7240946621781821428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7240946621781821428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7240946621781821428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7240946621781821428'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/artificial-brain.html' title='Artificial Brain'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/R-e6o6O77KI/AAAAAAAAAIg/lYPoK86uGQg/s72-c/sensopac_robotic_system.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-6835713829142051756</id><published>2008-03-19T01:27:00.000-07:00</published><updated>2008-03-20T07:00:47.620-07:00</updated><title type='text'>Interfaces</title><content type='html'>Having discussed about &lt;b&gt;Embedded Robotic Controllers&lt;/b&gt; in my previous post its  now time to discuss about the &lt;b&gt;Interfaces&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;A number of interfaces are available on most embedded systems. These are&lt;br /&gt;digital inputs, digital outputs, and analog inputs. Analog outputs are not&lt;br /&gt;always required and would also need additional amplifiers to drive any actuators.&lt;br /&gt;Instead, DC motors are usually driven by using a digital output line and a&lt;br /&gt;pulsing technique called “pulse width modulation” (PWM).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R-DPhP8BgaI/AAAAAAAAAIA/VG2WUSulLJ0/s1600-h/s.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R-DPhP8BgaI/AAAAAAAAAIA/VG2WUSulLJ0/s320/s.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5179367741596991906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R-DPu_8BgbI/AAAAAAAAAII/C851dmtt3MM/s1600-h/s.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R-DPu_8BgbI/AAAAAAAAAII/C851dmtt3MM/s320/s.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5179367977820193202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Motorola M68332 microcontroller already provides a number of&lt;br /&gt;digital I/O lines, grouped together in ports. We are utilizing these CPU ports as can be seen in IMAGE below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R-DQTf8BgcI/AAAAAAAAAIQ/ZZQyJ8BLz8s/s1600-h/s.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R-DQTf8BgcI/AAAAAAAAAIQ/ZZQyJ8BLz8s/s320/s.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5179368604885418434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But it also provide additional digital I/O pins through latches.Most important is the M68332’s TPU. This is basically a second CPU integrated on the same chip, but specialized to timing tasks. It simplifies tremendously many time-related functions, like periodic signal generation or pulse counting, which are frequently required for robotics applications.&lt;br /&gt;&lt;br /&gt;First 2 pictures above shows the EyeCon board with all its components and interface connections from the front and back. Our design objective was to make the construction of a robot around the EyeCon as simple as possible. Most interface connectors allow direct plug-in of hardware components. No adapters or special cables are required to plug servos, DC motors, or PSD sensors into the EyeCon. Only the HDT software needs to be updated by simply downloading the new configuration from a PC; then each user program can access the new hardware.&lt;br /&gt;&lt;br /&gt;The parallel port and the three serial ports are standard ports and can be used to link to a host system, other controllers, or complex sensors/actuators.Serial port 1 operates at V24 level, while the other two serial ports operate at TTL level.&lt;br /&gt;The Motorola background debugger (BDM) is a special feature of the M68332 controller. Additional circuitry is included in the EyeCon, so only a cable is required to activate the BDM from a host PC. The BDM can be used to debug an assembly program using breakpoints, single step, and memory or register display. It can also be used to initialize the flash-ROM if a new chip is inserted or the operating system has been wiped by accident. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R-DRMf8BgdI/AAAAAAAAAIY/yPgoS-vPE0c/s1600-h/s.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R-DRMf8BgdI/AAAAAAAAAIY/yPgoS-vPE0c/s320/s.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5179369584137961938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At The University of Western Australia, they are using a stand-alone, boxed version of the EyeCon controller  for lab experiments in the Embedded Systems course. They are used for the first block of lab experiments until we switch to the EyeBot Labcars.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-6835713829142051756?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/6835713829142051756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=6835713829142051756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6835713829142051756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6835713829142051756'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/interfaces.html' title='Interfaces'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/R-DPhP8BgaI/AAAAAAAAAIA/VG2WUSulLJ0/s72-c/s.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7896228886194474946</id><published>2008-03-17T00:16:00.000-07:00</published><updated>2008-03-17T00:45:14.541-07:00</updated><title type='text'>Embedded Robotic Controllers</title><content type='html'>The centerpiece of all our robot designs is a small and versatile embedded controller&lt;br /&gt;that each robot carries on-board. We called it the “EyeCon” (EyeBot&lt;br /&gt;controller, Figure 1.6), since its chief specification was to provide an interface&lt;br /&gt;for a digital camera in order to drive a mobile robot using on-board image&lt;br /&gt;processing [Bräunl 2001].&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R94gl_8BgYI/AAAAAAAAAHw/C3wcaXBAyn4/s1600-h/k.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R94gl_8BgYI/AAAAAAAAAHw/C3wcaXBAyn4/s320/k.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5178612458713088386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Robots and Controllers&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The EyeCon is a small, light, and fully self-contained embedded controller.&lt;br /&gt;It combines a 32bit CPU with a number of standard interfaces and drivers for&lt;br /&gt;DC motors, servos, several types of sensors, plus of course a digital color camera.&lt;br /&gt;Unlike most other controllers, the EyeCon comes with a complete built-in&lt;br /&gt;user interface: it comprises a large graphics display for displaying text messages&lt;br /&gt;and graphics, as well as four user input buttons. Also, a microphone and&lt;br /&gt;a speaker are included. The main characteristics of the EyeCon are:&lt;br /&gt;EyeCon specs • 25MHz 32bit controller (Motorola M68332)&lt;br /&gt;• 1MB RAM, extendable to 2MB&lt;br /&gt;• 512KB ROM (for system + user programs)&lt;br /&gt;• 1 Parallel port&lt;br /&gt;• 3 Serial ports (1 at V24, 2 at TTL)&lt;br /&gt;• 8 Digital inputs&lt;br /&gt;• 8 Digital outputs&lt;br /&gt;• 16 Timing processor unit inputs/outputs&lt;br /&gt;• 8 Analog inputs&lt;br /&gt;• Single compact PCB&lt;br /&gt;• Interface for color and grayscale camera&lt;br /&gt;• Large graphics LCD (128􀁵64 pixels)&lt;br /&gt;• 4 input buttons&lt;br /&gt;• Reset button&lt;br /&gt;• Power switch&lt;br /&gt;• Audio output&lt;br /&gt;• Piezo speaker&lt;br /&gt;• Adapter and volume potentiometer for external speaker&lt;br /&gt;• Microphone for audio input&lt;br /&gt;• Battery level indication&lt;br /&gt;• Connectors for actuators and sensors:&lt;br /&gt;• Digital camera&lt;br /&gt;• 2 DC motors with encoders&lt;br /&gt;• 12 Servos&lt;br /&gt;• 6 Infrared sensors&lt;br /&gt;• 6 Free analog inputs&lt;br /&gt;&lt;br /&gt;One of the biggest achievements in designing hardware and software for the&lt;br /&gt;EyeCon embedded controller was interfacing to a digital camera to allow onboard real-time image processing. We started with grayscale and color Connectix&lt;br /&gt;“QuickCam” camera modules for which interface specifications were available.&lt;br /&gt;However, this was no longer the case for successor models and it is&lt;br /&gt;virtually impossible to interface a camera if the manufacturer does not disclose&lt;br /&gt;the protocol. This lead us to develop our own camera module “EyeCam” using&lt;br /&gt;low resolution CMOS sensor chips. The current design includes a FIFO hardware&lt;br /&gt;buffer to increase the throughput of image data.&lt;br /&gt;&lt;br /&gt;A number of simpler robots use only 8bit controllers [Jones, Flynn, Seiger&lt;br /&gt;1999]. However, the major advantage of using a 32bit controller versus an 8bit&lt;br /&gt;controller is not just its higher CPU frequency (about 25 times faster) and&lt;br /&gt;wider word format (4 times), but the ability to use standard off-the-shelf C and&lt;br /&gt;C++ compilers. Compilation makes program execution about 10 times faster&lt;br /&gt;than interpretation, so in total this results in a system that is 1,000 times faster.&lt;br /&gt;We are using the GNU C/C++ cross-compiler for compiling both the operating&lt;br /&gt;system and user application programs under Linux or Windows. This compiler&lt;br /&gt;is the industry standard and highly reliable. It is not comparable with any of&lt;br /&gt;the C-subset interpreters available.&lt;br /&gt;&lt;br /&gt;The EyeCon embedded controller runs our own “RoBIOS” (Robot Basic&lt;br /&gt;Input Output System) operating system that resides in the controller’s flash-&lt;br /&gt;ROM. This allows a very simple upgrade of a controller by simply downloading&lt;br /&gt;a new system file. It only requires a few seconds and no extra equipment,&lt;br /&gt;since both the Motorola background debugger circuitry and the writeable&lt;br /&gt;flash-ROM are already integrated into the controller.&lt;br /&gt;&lt;br /&gt;RoBIOS combines a small monitor program for loading, storing, and executing&lt;br /&gt;programs with a library of user functions that control the operation of&lt;br /&gt;all on-board and off-board devices (see Appendix B.5). The library functions&lt;br /&gt;include displaying text/graphics on the LCD, reading push-button status, reading&lt;br /&gt;sensor data, reading digital images, reading robot position data, driving&lt;br /&gt;motors, v-omega (v􀁚) driving interface, etc. Included also is a thread-based&lt;br /&gt;multitasking system with semaphores for synchronization. The RoBIOS operating&lt;br /&gt;system is discussed in more detail in Chapter B.&lt;br /&gt;&lt;br /&gt;Another important part of the EyeCon’s operating system is the HDT&lt;br /&gt;(Hardware Description Table). This is a system table that can be loaded to&lt;br /&gt;flash-ROM independent of the RoBIOS version. So it is possible to change the&lt;br /&gt;system configuration by changing HDT entries, without touching the RoBIOS&lt;br /&gt;operating system. RoBIOS can display the current HDT and allows selection&lt;br /&gt;and testing of each system component listed (for example an infrared sensor or&lt;br /&gt;a DC motor) by component-specific testing routines.&lt;br /&gt;&lt;br /&gt;Figure 1.7 from [InroSoft 2006], the commercial producer of the EyeCon&lt;br /&gt;controller, shows hardware schematics. Framed by the address and data buses&lt;br /&gt;on the top and the chip-select lines on the bottom are the main system components&lt;br /&gt;ROM, RAM, and latches for digital I/O. The LCD module is memory&lt;br /&gt;mapped, and therefore looks like a special RAM chip in the schematics.&lt;br /&gt;&lt;br /&gt;Optional parts like the RAM extension are shaded in this diagram. The digital&lt;br /&gt;camera can be interfaced through the parallel port or the optional FIFO buffer.&lt;br /&gt;While the Motorola M68332 CPU on the left already provides one serial port,&lt;br /&gt;we are using an ST16C552 to add a parallel port and two further serial ports to&lt;br /&gt;the EyeCon system. Serial-1 is converted to V24 level (range +12V to –12V)&lt;br /&gt;with the help of a MAX232 chip. This allows us to link this serial port directly&lt;br /&gt;to any other device, such as a PC, Macintosh, or workstation for program&lt;br /&gt;download. The other two serial ports, Serial-2 and Serial-3, stay at TTL level&lt;br /&gt;(+5V) for linking other TTL-level communication hardware, such as the wireless&lt;br /&gt;module for Serial-2 and the IRDA wireless infrared module for Serial-3.&lt;br /&gt;&lt;br /&gt;A number of CPU ports are hardwired to EyeCon system components; all&lt;br /&gt;others can be freely assigned to sensors or actuators. By using the HDT, these&lt;br /&gt;assignments can be defined in a structured way and are transparent to the user&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R94hH_8BgZI/AAAAAAAAAH4/8IJW86EKBKg/s1600-h/l.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R94hH_8BgZI/AAAAAAAAAH4/8IJW86EKBKg/s320/l.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5178613042828640658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;program. The on-board motor controllers and feedback encoders utilize the&lt;br /&gt;lower TPU channels plus some pins from the CPU port E, while the speaker&lt;br /&gt;uses the highest TPU channel. Twelve TPU channels are provided with matching&lt;br /&gt;connectors for servos, i.e. model car/plane motors with pulse width modulation&lt;br /&gt;(PWM) control, so they can simply be plugged in and immediately operated.&lt;br /&gt;The input keys are linked to CPU port F, while infrared distance sensors&lt;br /&gt;(PSDs, position sensitive devices) can be linked to either port E or some of the&lt;br /&gt;digital inputs.&lt;br /&gt;An eight-line analog to digital (A/D) converter is directly linked to the&lt;br /&gt;CPU. One of its channels is used for the microphone, and one is used for the&lt;br /&gt;battery status. The remaining six channels are free and can be used for connecting&lt;br /&gt;analog sensors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7896228886194474946?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7896228886194474946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7896228886194474946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7896228886194474946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7896228886194474946'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/embedded-robotic-controllers.html' title='Embedded Robotic Controllers'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aNh_uVW1ahk/R94gl_8BgYI/AAAAAAAAAHw/C3wcaXBAyn4/s72-c/k.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7900745856007993927</id><published>2008-03-14T01:51:00.000-07:00</published><updated>2008-03-14T02:15:07.134-07:00</updated><title type='text'>Robots Which Walk Like Humans</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R9pBD_8BgWI/AAAAAAAAAHg/2Wp6fdGYcO4/s1600-h/roboph.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R9pBD_8BgWI/AAAAAAAAAHg/2Wp6fdGYcO4/s320/roboph.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5177522258574410082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WASHINGTON D.C. - In what could be described as one small step for a robot, but a giant leap for robot-kind, a trio of humanoid machines were introduced Thursday, each with the ability to walk in a human-like manner.&lt;br /&gt;&lt;br /&gt;Each bipedal robot has a strikingly human-like gait and appearance. Arms swing for balance. Ankles push off. Eyeballs are added for effect.&lt;br /&gt;&lt;br /&gt;One of the robots, from the Massachusetts Institute of Technology (MIT) is named Toddler for its modest stature and the side-to-side wobble of its stride. Denise, a robot created by researchers at Delft University in the Netherlands, stands about as tall as the average woman.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R9o-YP8BgUI/AAAAAAAAAHQ/JwUDmzX-haM/s1600-h/dn7023-1_700.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R9o-YP8BgUI/AAAAAAAAAHQ/JwUDmzX-haM/s320/dn7023-1_700.jpg" alt="" id="BLOGGER_PHOTO_ID_5177519307931877698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Smart as a toddler&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Toddler is the smart one of the bunch. While the others rely on superb mechanical design, Toddler has a brain with less power than that of an ant, but it is able to learn new terrain, "allowing the robot to teach itself to walk in less than 20 minutes, or about 600 steps," scientists said.&lt;br /&gt;&lt;br /&gt;The breakthroughs could change the way humanoid robots are built, and they open doors to new types of robotic prostheses -- limbs for people who have lost them. The robots are also expected to shed light on the biomechanics of human walking.&lt;br /&gt;&lt;br /&gt;"These innovations are a platform upon which others will build," said Michael Foster, an engineer at the National Science Foundation (NSF) who oversaw the three projects. "This is the foundation for what we may see in robotic control in the future."&lt;br /&gt;&lt;br /&gt;The robots were presented today at a meeting of the American Association for the Advancement of Science (AAAS). They are also discussed in the Feb. 18 issue of the journal Science.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R9o-1P8BgVI/AAAAAAAAAHY/Igl_DS6JyPU/s1600-h/050223135307.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R9o-1P8BgVI/AAAAAAAAAHY/Igl_DS6JyPU/s320/050223135307.jpg" alt="" id="BLOGGER_PHOTO_ID_5177519806148084050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;More than a toy&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Engineers drew from "passive-dynamic" toys dating back to the 1800s that could walk downhill with the help of gravity. Little progress has been made since on getting robots to walk like people.&lt;br /&gt;&lt;br /&gt;The new machines navigate level terrain using as little energy as one-half the wattage of a standard compact fluorescent light bulb. The Cornell robot consumes an amount of energy while walking that is comparable to a strolling human of equal weight.&lt;br /&gt;&lt;br /&gt;Toy walkers sway from side to side to get their feet off the ground. Humans minimize the swaying and bend their knees to in order to pick up their feet. The Cornell and Delft robots employ this approach.&lt;br /&gt;&lt;br /&gt;"Other robots, no matter how smooth they are in control, work to stand first, then base motions on top of that," said Cornell researcher Andy Ruina. "The robots we have here are based on falling, catching yourself and falling again."&lt;br /&gt;&lt;br /&gt;Cornell's robot equals human efficiency because it uses energy only to push off, and then gravity brings the foot down, while other robots needlessly use energy to perform all aspects of their effort.&lt;br /&gt;&lt;br /&gt;"The Cornell team's passive mechanism helps greatly reduce the power requirement," said Junku Yuh, an NSF expert on intelligent systems. "Their work is very innovative."&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Not perfect yet:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R9pB_f8BgXI/AAAAAAAAAHo/8QG7m1IWT7U/s1600-h/anybot1-thumb.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R9pB_f8BgXI/AAAAAAAAAHo/8QG7m1IWT7U/s320/anybot1-thumb.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5177523280776626546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All three robots swing their arms in synch with the opposite leg for balance. In most ways, though, they are not as versatile as other automatons. Honda's Asimo, for example, can walk backward and up stairs. But Asimo requires at least 10 times more power to achieve such feats.&lt;br /&gt;&lt;br /&gt;"The real solution lies somewhere in-between the two," said Steven Collins, a University of Michigan researcher who worked on the Cornell robot. "A robot could use passive dynamics for level or downhill motion, then large motors for high-energy needs like climbing stairs, running or jumping."&lt;br /&gt;&lt;br /&gt;Collins is applying what's been learned in an effort to develop better prosthetic feet for humans.&lt;br /&gt;&lt;br /&gt;"I think that you can't know how the foot should work until you can understand its role in walking," he said.&lt;br /&gt;&lt;br /&gt;The squat Toddler robot gains foot clearance only by leaning sideways, a decidedly non-human approach. But Toddler is remarkable for its ability to learn new terrain and adapt its approach, as would a person.&lt;br /&gt;&lt;br /&gt;"On a good day, it will walk on just about any surface and adjust its gait," said MIT postdoctoral researcher Russ Tedrake. "We think it's a principle that's going to scale [up] to a lot of new walking robots."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7900745856007993927?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7900745856007993927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7900745856007993927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7900745856007993927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7900745856007993927'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/robots-which-walk-like-humans.html' title='Robots Which Walk Like Humans'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aNh_uVW1ahk/R9pBD_8BgWI/AAAAAAAAAHg/2Wp6fdGYcO4/s72-c/roboph.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-929658023267757542</id><published>2008-03-11T04:02:00.000-07:00</published><updated>2008-03-11T04:11:49.442-07:00</updated><title type='text'>Miniature Human Robot</title><content type='html'>A new humanoid robot,certified as the world's smallest,was released by Japanese toy manufacturer &lt;b&gt;Tomy Company&lt;/b&gt;.On OCTOBER 25,2007,the &lt;b&gt;Omnibot I-Sobot&lt;/b&gt; is scheduled to hit the market as well as the &lt;b&gt;2008 edition of Guinness World Record &lt;/b&gt;,which will list the product as "&lt;b&gt;The Smallest Humanoid Robot In Production&lt;/b&gt;.Robotics fans look forward to I-Sobot as a fun toy to add to thier collection,but aslo as a leap forward in miniaturization of the advanced parts that go into these high-tech tools.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Surprising Size And Price &lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R9Znuv8BgSI/AAAAAAAAAHA/42WVFNZDjGk/s1600-h/isobot.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R9Znuv8BgSI/AAAAAAAAAHA/42WVFNZDjGk/s320/isobot.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5176438874548830498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I-sobot stands just 16.5 centimeters tall and weighs only around 350 gms.While the robot fist in the palm of your hand.It remains a fully outfitted bipedal machine,with 17 moving joints.Used throughout the body are tiny,custom servomotors developed by TOMY.The robot's onboard gyro-sensors allows it to maintain its balance automatically as it goes smoothly through its programmed motions.I-Sobot comes with an infrared remote controlunit (&lt;b&gt;as u can see in the picture above&lt;/b&gt;),but users can also use&lt;b&gt; Voice commands&lt;/b&gt; to control it.Tomy's I-sobot architecture, the control system developed to operate this new robot,makes use of 19 IC(integrated circuit) that works in tandem to enabel the toy's complex action's.&lt;br /&gt;&lt;br /&gt;I-Sobot will be sold for &lt;b&gt;248$&lt;/b&gt; in fully assembled form,complete with rechargeable battries and its remote control, which features twin Joysticks, programmable buttons and an LCD screen. According to the manufacturers, this prince is quite affordable for a robot of this complexity.In addition to its release in JAPAN, the robot will make its way in the U.S.A and else where in ASIA.In 2008 Tomy intends to extend its asles to EUROPE as well.To reach its global sales target of 300,000 units the company is localization I-SOBOT software in English and Chinese in addition to Japanese.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Four Model For Action&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R9Zoqf8BgTI/AAAAAAAAAHI/AE2w06cQYdY/s1600-h/k.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R9Zoqf8BgTI/AAAAAAAAAHI/AE2w06cQYdY/s320/k.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5176439901046014258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An attractive feature of this versatile robot is its 4 separate models for controlling the action.In RCM(Remote Control Mode),the user manages the robot's movements directly with the command buttons and joysticks on the wirelsee remote.In programming Mode the user has the option to easily choose commands from a lost of available actions-182 in all-or to use the controller to create original actions, or use a combination of the two to program complex sequences that can be upto 240 steps long,with 80 steps stored in each of the robot's 3 memory slots.Special Action Mode, meanwhile includes 18 more complex preprogrammed actions, such as "hula dance" and "air drumming",and Voice Control Mode lets the user give the robot one of 10 commands,to which the I-Sobot can respond with a range of actions.&lt;br /&gt;&lt;br /&gt;This robot is entertaining to the ear as well as the eye.As it goes through its actions it plays sounds from its library of nearly 100 sounds effects and songs.The speaker can be turned off,too when silent action is preferable.The toy is &lt;b&gt;HUMANOID&lt;/b&gt; in form, but the designers have included playful actions in its repertoire that have it imitate the adorable movements of animals.&lt;br /&gt;&lt;br /&gt;Tomy has taken steps to make I-Sobot eco-friendly.The toy manufacturer is shipping the robot with three rechargeable AAA batteries from SANYO Electric Co. whose Eneloop   nickel metal hydride batteries let users keep the robot running for months without sending dead batteries to landfills.Tomy is also collaborating in SANYO's Energy Evolution Project by making  I-Sobot part of the program carried out at japanese elementary schools.The companies hope to boost children's awareness of environmental issues by powering the fun robot with rechargeable cells.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-929658023267757542?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/929658023267757542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=929658023267757542' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/929658023267757542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/929658023267757542'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/miniature-human-robot.html' title='Miniature Human Robot'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/R9Znuv8BgSI/AAAAAAAAAHA/42WVFNZDjGk/s72-c/isobot.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-8641731327372702867</id><published>2008-03-03T23:51:00.000-08:00</published><updated>2008-03-04T00:25:16.107-08:00</updated><title type='text'>Robo's in Hospitals</title><content type='html'>Has it come to this?Robots standing in for doctors at the hospital patients bedside?Not exactly,but some doctors have found a way to use a video conferencing robot to check on patients while they are miles away from the hospital.&lt;br /&gt;&lt;br /&gt;At &lt;b&gt;Baltimore's Sinai Hospital&lt;/b&gt;outfitted with cameras ,a screen and a microphone,joystick controlled robot is guided into the rooms of &lt;b&gt;Dr Alex Gandas&lt;/b&gt; patients where he speaks to them as if he were right there."The system allows you to be anywhere in the hospital from anywhere in the world"says the surgeon who specialises in weight loss surgery.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R80FBxe478I/AAAAAAAAAGM/sIASuBboQGE/s1600-h/20070823-rp-7-1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R80FBxe478I/AAAAAAAAAGM/sIASuBboQGE/s320/20070823-rp-7-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5173797074939473858" /&gt;&lt;/a&gt;&lt;b&gt;CLICK ON IMAGE FOR BETTER UNDERSTANDING&lt;/B&gt;&lt;br /&gt;&lt;br /&gt;Besides his normal morning and afternoon in person rounds,Gandsas uses the&lt;b&gt;$150,000&lt;/b&gt; robot to visit patients at night or when problems arise."they love it.They'b rather see me through the robot"he said of his patients' reaction to the machine.&lt;br /&gt;&lt;br /&gt;Gandsas presented the idea to the hospital administrators as a method to more closely monitor patients following weight loss surgery.Gandsas an unpaid member of advisory board for the robot manufacture who has stock options in the company, added that since its introduction the length of stay has been shorter for the patients visited by the ROBOT.&lt;br /&gt;&lt;br /&gt;A chart review study of 376 doctors' patients found that the 92 patients who had additional robotic visits had shorter hospital stays.Gandsas study appears in the july issue of the &lt;b&gt;Journal Of The American College Of Surgeons&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Nicknamed Bari for the bariatic surgery Gandsas practices, the &lt;b&gt;&lt;U&gt;RP-7&lt;/U&gt; Remote Presence Robotic System&lt;/B&gt; by &lt;b&gt;InTouch Technologies&lt;/b&gt;is one of a number of robotic devices finding their way into the medical world.About 180 of the robots are in use in hospitals world wide.&lt;br /&gt;&lt;br /&gt;A similar robot is used for &lt;b&gt;Teleconference&lt;/b&gt; with a translater for doctor who dont speak their patient language.Robotic devices have also been used to guide &lt;b&gt; stroke patients&lt;/b&gt; through therapy.&lt;br /&gt;&lt;br /&gt;Nurse &lt;b&gt;Florence Ford&lt;/b&gt;, who has worked with the robot since it was introduced about 18 months ago,said patients have reacted well, particularly because "seeing the doctors faces gives them confidence".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-8641731327372702867?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/8641731327372702867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=8641731327372702867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/8641731327372702867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/8641731327372702867'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/in-hospitals.html' title='Robo&apos;s in Hospitals'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_aNh_uVW1ahk/R80FBxe478I/AAAAAAAAAGM/sIASuBboQGE/s72-c/20070823-rp-7-1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7372644299443060038</id><published>2008-03-03T03:55:00.000-08:00</published><updated>2008-03-03T04:56:52.244-08:00</updated><title type='text'>Sensors Based Robot Control</title><content type='html'>Hey everyone....in this post u will find about the sensors used in ROBOTICS and their classification&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Robotics&lt;/b&gt; has matured as a system integration engineering field defined by M.&lt;br /&gt;Bradley as “the intelligent connection of the perception to action”. Programmable&lt;br /&gt;robot manipulators provide the “action” component. A variety of sensors and&lt;br /&gt;sensing techniques are available to provide the “perception”.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;**ROBOTIC SENSING**&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Since the “action” capability is physically interacting with the environment, two&lt;br /&gt;types of sensors have to be used in any robotic system:&lt;br /&gt;1)proprioceptors: &lt;b&gt;-&gt;&lt;/b&gt; for the measurement of the robot’s (internal) parameters;&lt;br /&gt;&lt;br /&gt;2)exteroceptors:  &lt;b&gt;-&gt;&lt;/b&gt; for the measurement of its environmental (external, from the robot point of view) parameters.&lt;br /&gt;&lt;br /&gt;Data from multiple sensors may be further fused into a common representational&lt;br /&gt;format (world model). Finally, at the perception level, the world model is&lt;br /&gt;analyzed to infer the system and environment state, and to assess the&lt;br /&gt;consequences of the robotic system’s actions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Proprioceptors&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;From a mechanical point of view a robot appears as an articulated structure&lt;br /&gt;consisting of a series of links interconnected by joints. Each joint is driven by an&lt;br /&gt;actuator which can change the relative position of the two links connected by that&lt;br /&gt;joint. Proprioceptors are sensors measuring both kinematic and dynamic&lt;br /&gt;parameters of the robot. Based on these measurements the control system&lt;br /&gt;activates the actuators to exert torques so that the articulated mechanical&lt;br /&gt;structure performs the desired motion.&lt;br /&gt;&lt;br /&gt;The usual kinematics parameters are the joint positions, velocities, and&lt;br /&gt;accelerations. Dynamic parameters as forces, torques and inertia are also&lt;br /&gt;important to monitor for the proper control of the robotic manipulators.&lt;br /&gt;CEG 4392 Computer Systems Design Project.&lt;br /&gt;&lt;br /&gt;The most common joint (rotary) position transducersare: potentiometers,&lt;br /&gt;synchros and resolvers, encoders, RVDT (rotary variable differential transformer)&lt;br /&gt;and INDUCTOSYN. The most accurate transducers are INDUCTOSYNs (+ 1 arc&lt;br /&gt;second), followed by synchros and resolvers and encoders, with potentionmeters&lt;br /&gt;as the least accurate.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acceleration sensors&lt;/b&gt; are based on &lt;b&gt;Newton’s second law&lt;/b&gt;. They are actually measuring the force which produces the acceleration of a known mass. Different types of acceleration transducers are known: stress-strain gage, piezoelectric,capacitive, inductive. Micromechanical accelerometers have been developed. In this case the force is measured by measuring the strain in elastic cantilever beams formed from silicon dioxide by an integrated circuit fabrication technology.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Exteroceptors&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Exteroceptors are sensors that measure the positional or force-type interaction of&lt;br /&gt;the robot with its environment.&lt;br /&gt;&lt;br /&gt;Exteroceptors can be classified according to their range as follows:&lt;br /&gt;&lt;br /&gt;1)&lt;b&gt;contact sensors&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;2)&lt;b&gt;proximity (“near to”) sensors&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;3)&lt;b&gt;far away sensors&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1)&lt;b&gt;Contact Sensors&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Contact sensors are used to detect the positive contact between two mating&lt;br /&gt;parts and/or to measure the interaction forces and torques which appear while&lt;br /&gt;the robot manipulator conducts part mating operations. Another type of contact&lt;br /&gt;sensors are the tactile sensors which measure a multitude of parameters of the&lt;br /&gt;touched object surface.&lt;br /&gt;&lt;br /&gt;2)&lt;b&gt;Proximity Sensors&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Proximity sensors detect objects which are near but without touching them.&lt;br /&gt;These sensors are used for near-field (object approaching or avoidance) robotic&lt;br /&gt;operations. Proximity sensors are classified according to their operating&lt;br /&gt;principle; inductive, hall effect, capacitive, ultrasonic and optical.&lt;br /&gt;Inductive sensors are based on the change of inductance due to the presence of&lt;br /&gt;metallic objects. Hall effect sensors are based on the relation which exists&lt;br /&gt;between the voltage in a semiconductor material and the magnetic field across&lt;br /&gt;that material. Inductive and Hall effect sensors detect only the proximity of&lt;br /&gt;ferromagnetic objects. Capacitive sensors are potentially capable of detecting&lt;br /&gt;the proximity of any type of solid or liquid materials. Ultrasonic and optical&lt;br /&gt;sensors are based on the modification of an emitted signal by objects that are in&lt;br /&gt;their proximity.&lt;br /&gt;&lt;br /&gt;3)&lt;b&gt;Far Away Sensing&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Two types of &lt;b&gt;far away&lt;/b&gt; sensors are used in robotics: &lt;br /&gt;&lt;br /&gt;1)&lt;b&gt;Range sensors&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Range sensors measure the distance to objects in their operation area. They are&lt;br /&gt;used for &lt;br /&gt;&lt;b&gt;robot navigation,obstacle avoidance,to recover the third dimension&lt;br /&gt;for monocular vision&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Range sensors are based on one of the two principles:&lt;br /&gt;&lt;br /&gt;a)&lt;b&gt;Time-of-flight&lt;/b&gt;:&lt;br /&gt; &lt;br /&gt;Time-of-flight sensors estimate the range by measuring the time elapsed&lt;br /&gt;between the transmission and return of a pulse. Laser range finders and sonar&lt;br /&gt;are the best known sensors of this type.&lt;br /&gt;&lt;br /&gt;b)&lt;b&gt;Triangulation&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Triangulation sensors measure range by detecting a given point on the object&lt;br /&gt;surface from two different points of view at a known distance from each other.&lt;br /&gt;Knowing this distance and the two view angles from the respective points to the&lt;br /&gt;aimed surface point, a simple geometrical operation yields the range.&lt;br /&gt;&lt;br /&gt;2)&lt;b&gt;vision Range Sensors&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Robot vision is a complex sensing process. It involves extracting, characterizing&lt;br /&gt;and interpreting information from images in order to identify or describe objects in&lt;br /&gt;environment.&lt;br /&gt;&lt;br /&gt;A vision sensor (camera) converts the visual information to electrical signals&lt;br /&gt;which are then sampled and quantized by a special computer interface&lt;br /&gt;electronics yielding a digital image. Solid state CCD image sensors have many&lt;br /&gt;advantages over conventional tube-type sensors as: small size, light weight,&lt;br /&gt;more robust, better electrical parameters, which recommends them for robotic&lt;br /&gt;applications&lt;br /&gt;&lt;br /&gt;The digital image produced by a vision sensor is a mere numerical array which&lt;br /&gt;has to be further processed till an explicit and meaningful description of the&lt;br /&gt;visualized objects finally results. Digital image processing comprises more steps:&lt;br /&gt;preprocessing, segmentation, description, recognition and interpretation.&lt;br /&gt;Preprocessing techniques usually deal with noise reduction and detail&lt;br /&gt;enhancement. Segmentation algorithms, like edge detection or region growing,&lt;br /&gt;are used to extract the objects from the scene. These objects are then described&lt;br /&gt;by measuring some (preferably invariant) features of interest. Recognition is an&lt;br /&gt;operation which classifies the objects in the feature space. Interpretation is the&lt;br /&gt;operation that assigns a meaning to the ensemble of recognized objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7372644299443060038?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7372644299443060038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7372644299443060038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7372644299443060038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7372644299443060038'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/hey-everyone.html' title='Sensors Based Robot Control'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-1241267774787597982</id><published>2008-03-01T01:47:00.000-08:00</published><updated>2008-04-06T07:40:15.815-07:00</updated><title type='text'>IntroDuction</title><content type='html'>Hey Friends,My name is PRATIK and this blog belongs to me.&lt;br /&gt;&lt;br /&gt;The reason behind making this blog was to help all the people and students who are beginners in this field(ROBOTICS).&lt;br /&gt;&lt;br /&gt;Well in this blog you can find various thing related to ROBOTICS. and the best part is which most robotics blogs/site dont offer is free tutorials to make ur own robot.&lt;br /&gt;&lt;br /&gt;So please feel free to browse this blog and i will try my best to keep it updated as regularly as possible.........&lt;br /&gt;&lt;br /&gt;If interested in Helping other by sharing ur knowledge with other...u can leave a comment with ur email id....and i will surely contact you..&lt;br /&gt;&lt;br /&gt;Thank you...........and enjoy browsing our blog&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-1241267774787597982?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/1241267774787597982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=1241267774787597982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1241267774787597982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1241267774787597982'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/03/introduction.html' title='IntroDuction'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-6855764552822035296</id><published>2008-02-29T04:13:00.000-08:00</published><updated>2008-03-07T07:59:55.817-08:00</updated><title type='text'>Make Ur Own Fighting Robot</title><content type='html'>&lt;font size="4"&gt;Building a simple antweight R/C combat robot&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this guide we will show you how to make a simple antweight R/C combat robot using a Sabertooth 2X5 R/C. The 'bot doesn't necessarily have to be used in combat - it is a pretty fun toy to drive around the office too! There is a certain satisfaction you get from driving your own homemade vehicle that you can't get from an imported Walmart toy. The Sabertooth 2X5 R/C will be used to interpret signals from a radio control system, and vary the motor speed so you can drive the robot around. The project requires basic knowledge of electronics (Volts, amps, battery polarity and wiring) and intermediate soldering skills. The project can be completed in a day, with most of the time spent waiting for glue to dry.&lt;br /&gt;&lt;br /&gt;Parts list:&lt;br /&gt;Sabertooth 2X5 R/C motor driver&lt;br /&gt;Motors, wheels and chassis&lt;br /&gt;Hobby radio control transmitter and receiver&lt;br /&gt;Battery (at least 6V)&lt;br /&gt;Ceramic capacitors&lt;br /&gt;Misc wire and soldering tools&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Overview:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8fhL7L_3xI/AAAAAAAAAEM/WoEu-VPefkY/s1600-h/Sabertooth-2X5-RC-4-wheels.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8fhL7L_3xI/AAAAAAAAAEM/WoEu-VPefkY/s320/Sabertooth-2X5-RC-4-wheels.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172350292041129746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you can see, power will go from the battery in to the Sabertooth motor driver. The Sabertooth has an internal 5V regulator that it will use to power the receiver. The receiver will pick up your control info i.e. the direction you want to drive in, and it will signal that information back to the Sabertooth. The Sabertooth will then process this information, and vary the voltage and direction going to the motors. By varying the voltage going to the motors, you will be able to drive the robot at different speeds and turn it left and right like a tank. In this kit, we are using 4 motors - 2 on each side. We will wire the 2 motors in parallel on each side so they will appear as one motor to the Sabertooth. The 'flip' channel is purely optional - it just reverses left and right steering if your robot gets flipped upside down so you don't have to think backwards.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The chassis:&lt;/b&gt;&lt;br /&gt;One of the most time consuming things in building robots is constructing the chassis. If you do not have metalworking machinery available to you, you might want to check out Inertia Labs' website. They offer a package where you can get a CNC machined aluminum chassis and 4 geared motors for $99. It will allow you to start work on your robot right away without having to deal with metal shavings embedded in your eyes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8fhy7L_3yI/AAAAAAAAAEU/8DJTCFg42UM/s1600-h/inertiakit.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8fhy7L_3yI/AAAAAAAAAEU/8DJTCFg42UM/s320/inertiakit.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172350962056027938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is everything you get in the Inertia Labs kit - the gearmotors are tiny!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setting up the motors:&lt;/b&gt;&lt;br /&gt;This is the only part where you will have to do some soldering. Out of the box, the motors do not come with any suppression capacitors. With a DC brushed motor, if you do not have suppression capacitors the commutator will produce small sparks which will cause radio interference. Adding 0.1uF or 10nF ceramic capacitors to the motor terminals will solve this problem. You can find such capacitors at radio shack or any electronic component store. Digikey part # 399-4264-ND "CAP .1UF 50V 10% CER RADIAL" is also a good choice. You will need two caps for each motor. Solder one capacitor lead to a motor terminal, and the other lead to the motor's casing. Next, cut and strip some wire to solder to the motor terminals. Put the tires on the wheels and glue the wheels onto the motor's shaft.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R8fiNbL_3zI/AAAAAAAAAEc/mNh-YXLk94o/s1600-h/motorcaps.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R8fiNbL_3zI/AAAAAAAAAEc/mNh-YXLk94o/s320/motorcaps.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172351417322561330" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R8fiYbL_30I/AAAAAAAAAEk/EYEwvTxr1Aw/s1600-h/4motors.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R8fiYbL_30I/AAAAAAAAAEk/EYEwvTxr1Aw/s320/4motors.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172351606301122370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now wait for the glue to dry.&lt;br /&gt;&lt;br /&gt;Once the glue is dry, you need to put the motors into the chassis. To hold the motors in place, I used Loctite 415 adhesive. It is similar to superglue, but does a better job bonding metal to metal. It takes a long time to cure though so be patient.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R8fjLbL_31I/AAAAAAAAAEs/10L4SoncpYA/s1600-h/motorswired.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R8fjLbL_31I/AAAAAAAAAEs/10L4SoncpYA/s320/motorswired.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172352482474450770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The battery:&lt;/b&gt;&lt;br /&gt;Next up, you need a power source i.e. a battery. To keep things really small and light we used an 800mAh 2s lithium pack. A Sabertooth will run at any voltage above 6V, so you could also use a cheap 7.2V NiMH pack, or even 6 alkaline AAA batteries if you think you can make them fit. Just don't go crazy and dump 18V into these tiny motors else you will burn them out. Remember to get an appropriate charger for the battery chemistry you use. We used a Common Sense R/C brand pack here, which came with a JST battery connector. These connectors are also sometimes known as P connectors or BEC connectors. Battery connectors are important because they allow you to quickly and safely connect/disconnect power to the robot. Depending on where you buy your battery pack from, you might find this connector already soldered on there for you.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8fjz7L_32I/AAAAAAAAAE0/Ea-LomZ6OKA/s1600-h/batterypack.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8fjz7L_32I/AAAAAAAAAE0/Ea-LomZ6OKA/s320/batterypack.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172353178259152738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BEC/P/JST battery connectors are available from Maxx Products here . Part number 2832 is the female connector (goes on the battery) and part number 2830 is the male connector (will screw into the Sabertooth). You can also find them at your local hobby shop. Other battery connectors will work, but JST ones are nice and small.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Radio and receiver:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R8flMLL_33I/AAAAAAAAAE8/7g6z8rGQmrw/s1600-h/txandrx.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R8flMLL_33I/AAAAAAAAAE8/7g6z8rGQmrw/s320/txandrx.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172354694382608242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To remotely control the robot, you will need a hobby radio control transmitter and receiver. These pieces of equipment can be expensive - anywhere from $80 to several hundred dollars. They are an investment that will last many years though, and if you get a good system you will be able to create many radio controlled vehicles down the line. Remember that the radio and receiver must both operate on the same channel, and for ground applications in the USA you should technically use a 75Mhz system not a 72Mhz system. For the purposes of a simple bot like this, a 4 channel transmitter and receiver will suffice. Inertia sells some low end ones. If you can afford it, the absolute best system to get is the 2.4 Ghz Spektrum DX6 or DX7 system with a BR6000 receiver. I used a 6 channel Hitec Optic 6 transmitter and a GWS Naro receiver because that's what we had lying around at the DE office.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motor driver configuration:&lt;/b&gt;&lt;br /&gt;To set up the motor driver, use this guide to the DIP switches:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R8flcrL_34I/AAAAAAAAAFE/e2A8mLRxtKo/s1600-h/DIP-setting.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R8flcrL_34I/AAAAAAAAAFE/e2A8mLRxtKo/s320/DIP-setting.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172354977850449794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For this particular robot and transmitter, we used the following settings for the following reasons:&lt;br /&gt;Enable mixed mode (for easy steering on one stick)&lt;br /&gt;Disable exponential (the robot was easy enough to control without exponential)&lt;br /&gt;Lithium mode (because we were using a 2s Lithium Polymer battery)&lt;br /&gt;R/C flip mode (so we could use a switch on the transmitter to reverse left/right if the robot flipped upside down)&lt;br /&gt;Enable autocalibrate (quicker and easier than setting the trim on the transmitter)&lt;br /&gt;Enable signal timeout (Helps prevent the robot driving away when there is a loss of signal, and is required for events)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8flz7L_35I/AAAAAAAAAFM/4jealDcf1eo/s1600-h/wired.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8flz7L_35I/AAAAAAAAAFM/4jealDcf1eo/s320/wired.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172355377282408338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once everything is wired up as shown in the earlier diagram, it is a good idea to turn on your radio, plug in the battery and do a test run. Make sure up, down, left and right all behave as you want them to. Make sure all motors are turning in the correct direction. When I got to this stage, I found out that 3 of the motors were going one way, and one was going backwards! So I just swapped the two wires on the odd motor and it solved the problem. Other common problems would be having up/down being controlled by left/right on your radio - in which case just swap the receiver channels the servo pigtails are going into. Also check the DIP switch settings on Sabertooth are correct.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8fmK7L_36I/AAAAAAAAAFU/eV8cE8j7b4Q/s1600-h/rewired.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8fmK7L_36I/AAAAAAAAAFU/eV8cE8j7b4Q/s320/rewired.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172355772419399586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now the most annoying part of all: getting everything to fit in that tiny space! Pretend you are playing Tetris and you will be motivated to do a better job. I managed to pull it off with the arrangement shown here.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R8fmsrL_37I/AAAAAAAAAFc/YxedoFRGQsA/s1600-h/compactarrangement.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R8fmsrL_37I/AAAAAAAAAFc/YxedoFRGQsA/s320/compactarrangement.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172356352239984562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The final touches (and weapons!):&lt;/b&gt;&lt;br /&gt;By now you should have a fully functioning 'bot that you can drive around. You might notice however, that the 'bot jerks around and occasionally goes crazy. This would be due to glitches in radio reception. On a 75Mhz system, antenna placement and orientation is very important! Simply coiling up your antenna and shoving it inside the chassis will not give good results at all. Ideally you want the antenna wire as far away as possible from the motor driver and mounted vertically in parallel with your radio transmitter. Although it would be more rigid, it is important that you do not wrap the antenna around a metal rod. The metal rod will act as a shield, and will absorb the radio waves instead of allowing them to resonate in the antenna. Instead, use a non conductive rigid tube, such as a nylon rod. Cheaper solutions can also work!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R8fm9rL_38I/AAAAAAAAAFk/wFH_4DIdPPI/s1600-h/antenna_protection.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R8fm9rL_38I/AAAAAAAAAFk/wFH_4DIdPPI/s320/antenna_protection.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172356644297760706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R8fnMbL_39I/AAAAAAAAAFs/Q_ooALJLkxs/s1600-h/antennaglue.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R8fnMbL_39I/AAAAAAAAAFs/Q_ooALJLkxs/s320/antennaglue.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172356897700831186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The most basic of all weapons is a wedge. You can make a wedge out of a scrap sheet of aluminum, using a vise to bend it. Mark out a strip 2-3" wide and 6" long, and use the vise to hold it in place as you put some kinks in it. You can also chop off the end at an angle to create a spike.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R8f3qLL_3_I/AAAAAAAAAF8/UE-_AGK0R5E/s1600-h/scrappieceofAl.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R8f3qLL_3_I/AAAAAAAAAF8/UE-_AGK0R5E/s320/scrappieceofAl.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172375000987983858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8fnr7L_3-I/AAAAAAAAAF0/EIQ8QNBhptQ/s1600-h/bender.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8fnr7L_3-I/AAAAAAAAAF0/EIQ8QNBhptQ/s320/bender.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172357438866710498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You will want to create a very strong bond between the wedge and the chassis, so superglue won't be enough. Screw it down, or a use a strong epoxy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R8f3-bL_4AI/AAAAAAAAAGE/ZKapm8exgE0/s1600-h/completed2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R8f3-bL_4AI/AAAAAAAAAGE/ZKapm8exgE0/s320/completed2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5172375348880334850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Additional notes&lt;br /&gt;If you want to use this platform to compete in combat, you will have to beef it up a little with additional weight and weaponry. Inertia's Pele bot and Hummer bot have some creative ideas. Even if you don't want to compete in tournaments, the same basic setup can be used to make R/C planes, boats, trucks, bulldozers, tanks, hovercrafts and more!&lt;br /&gt;&lt;br /&gt;Back to Dimension Engineering&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-6855764552822035296?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/6855764552822035296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=6855764552822035296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6855764552822035296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6855764552822035296'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/combat-robot.html' title='Make Ur Own Fighting Robot'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/R8fhL7L_3xI/AAAAAAAAAEM/WoEu-VPefkY/s72-c/Sabertooth-2X5-RC-4-wheels.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-8630742701359608510</id><published>2008-02-29T02:53:00.001-08:00</published><updated>2008-03-04T21:49:45.673-08:00</updated><title type='text'>Subscribe To My Blog</title><content type='html'>Hey friends now you all can subscribe to my blog to get information on regular updates.So what r u waiting for just select your choice of update provider and be updateD with your favourite blog on &lt;b&gt;ROBOTICS&lt;/b&gt;.   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://feeds.feedburner.com/blogspot/dJdT" rel="alternate" type="application/rss+xml"&gt;Subscribe to ROBOTICS&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://add.my.yahoo.com/rss?url=http://feeds.feedburner.com/blogspot/dJdT" title="ROBOTICS"&gt;&lt;img src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif" alt="" style="border:0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://fusion.google.com/add?feedurl=http://feeds.feedburner.com/blogspot/dJdT"&gt;&lt;img src="http://buttons.googlesyndication.com/fusion/add.gif" width="104" height="17" style="border:0" alt="Add to Google Reader or Homepage"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http://feeds.feedburner.com/blogspot/dJdT" title="ROBOTICS"&gt;&lt;img src="http://www.newsgator.com/images/ngsub1.gif" alt="Subscribe in NewsGator Online" style="border:0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.rojo.com/add-subscription?resource=http://feeds.feedburner.com/blogspot/dJdT" title="ROBOTICS"&gt;&lt;img src="http://www.rojo.com/corporate/images/add-to-rojo.gif" alt="Subscribe in Rojo" style="border:0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://feeds.my.aol.com/add.jsp?url=http://feeds.feedburner.com/blogspot/dJdT"&gt;&lt;img src="http://favorites.my.aol.com/ffclient/webroot/0.2.1/locale/en_US/aol/images/myAOLButtonSmall.gif" alt="Add to My AOL" style="border:0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://my.feedlounge.com/external/subscribe?url=http://feeds.feedburner.com/blogspot/dJdT"&gt;&lt;img src="http://static.feedlounge.com/buttons/subscribe_0.gif" alt="Subscribe in FeedLounge" title="Subscribe in FeedLounge" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.netvibes.com/subscribe.php?url=http://feeds.feedburner.com/blogspot/dJdT"&gt;&lt;img src="http://www.netvibes.com/img/add2netvibes.gif" width="91" height="17" alt="Add to netvibes" style="border:0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.bloglines.com/sub/http://feeds.feedburner.com/blogspot/dJdT" title="ROBOTICS" type="application/rss+xml"&gt;&lt;img src="http://www.bloglines.com/images/sub_modern11.gif" alt="Subscribe in Bloglines" style="border:0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http://feeds.feedburner.com/blogspot/dJdT" title="Add to The Free Dictionary"&gt;&lt;img alt="Add to The Free Dictionary" border="0" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif" width="91" height="17"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;amp;contentvalue=http://feeds.feedburner.com/blogspot/dJdT" target="_blank"&gt;&lt;img src="http://www.bitty.com/img/bittychicklet_91x17.gif" style="border:0" alt=""/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.plusmo.com/add?url=http://feeds.feedburner.com/blogspot/dJdT"&gt;&lt;img src="http://plusmo.com/res/graphics/fbplusmo.gif" alt="Add to Plusmo"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.newsalloy.com/?rss=http://feeds.feedburner.com/blogspot/dJdT" target="_blank"&gt;&lt;img src="http://www.newsalloy.com/subrss3.gif" border="0" alt="Subscribe in NewsAlloy" title="Subscribe in NewsAlloy" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://mix.excite.eu/add?feedurl=http://feeds.feedburner.com/blogspot/dJdT" title="Add to Excite MIX"&gt;&lt;img src="http://image.excite.co.uk/mix/addtomix.gif" alt="Add to Excite MIX" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http://feeds.feedburner.com/blogspot/dJdT" title="Add to netomat Hub"&gt;&lt;img src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif" alt="Add to netomat Hub" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.fwicki.com/users/default.aspx?addfeed=http://feeds.feedburner.com/blogspot/dJdT" title="Add to fwicki"&gt;&lt;img src="http://www.fwicki.com/images/ui/fwicki_clicklet.png" alt="Add to fwicki" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http://feeds.feedburner.com/blogspot/dJdT" title="Add to flurry"&gt;&lt;img src="http://www.flurry.com/images/flurry_rss_logo2.gif" alt="Add to flurry" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.webwag.com/wwgthis.php?url=http://feeds.feedburner.com/blogspot/dJdT" title="Add to Webwag"&gt;&lt;img src="http://www.webwag.com/images/wwgthis.gif" alt="Add to Webwag" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://download.attensa.com/app/get_attensa.html?feed=http://feeds.feedburner.com/blogspot/dJdT" title="Add to Attensa"&gt;&lt;img src="http://www.attensa.com/_img/attensa_feed_button.gif" alt="Add to Attensa" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="javascript:location.href='http://zaptxt.com/zaptask/discover_feed?feed='+encodeURIComponent(location.href)"&gt;&lt;img alt="Receive IM, Email or Mobile alerts when new content is published on this site." title="Receive IM, Email or Mobile alerts when new content is published on this site." border=0 src="http://zaptxt.com/images/btn_zaptxt_1.png" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.pageflakes.com/subscribe.aspx?url=http://feeds.feedburner.com/blogspot/dJdT" title="Add to Pageflakes"&gt;&lt;img src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;amp;fileName=ATP_blu_91x17.gif" alt="Add to Pageflakes" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-8630742701359608510?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/8630742701359608510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=8630742701359608510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/8630742701359608510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/8630742701359608510'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/subscribe-to-my-blog.html' title='Subscribe To My Blog'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-2571889453322620167</id><published>2008-02-29T02:53:00.000-08:00</published><updated>2008-07-26T08:15:46.169-07:00</updated><title type='text'>Multi-Robot Systems</title><content type='html'>Multi-robot systems (MRS) are becoming one of the most important areas of research in Robotics, due to the challenging nature of the involved research and to the multiple potential applications to areas such as autonomous sensor networks, building surveillance, transportation of large objects, air and underwater pollution monitoring, forest fire detection, transportation systems, or search and rescue after large-scale disasters. Even problems that can be handled by a single multi-skilled robot may&lt;br /&gt;benefit from the alternative usage of a robot team, since robustness and reliability can often be increased by combining several robots which are individually less robust and reliable. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SIcQ4WtTWgI/AAAAAAAAAQA/A1vna-0EjM8/s1600-h/multi.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SIcQ4WtTWgI/AAAAAAAAAQA/A1vna-0EjM8/s320/multi.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5226164452941060610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One can find similar examples in human work: several people in line are able to move a bucket, from a water source to a fire, faster and with less individual effort. Also, if one or more of the individuals leaves the team, the task can still be accomplished by the remaining ones, even if slower than before. Another example is the surveillance of a large area by several people. If adequately coordinated,&lt;br /&gt;the team is able to perform the job faster and with reduced cost than a single person carrying out all the work, especially if the cost of moving over large distances is prohibitive. A larger rank of task domains, distributed sensing and action, and insight into social and life sciences are other advantages that can be brought by the study and use of MRS. The relevance of MRS comes also from its inherent inter-disciplinarity.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;At the Intelligent Systems Lab of the Institute for Systems and Robotics&lt;/b&gt; at &lt;b&gt;Instituto Superior Técnico (ISR/IST)&lt;/b&gt;, we have been pursuing for several years now an approach to MRS that merges the contributions from two fields: &lt;b&gt;Systems and Control Theory and Distributed Artificial Intelligence&lt;/b&gt;. Some of the current problems in the two areas are creating a natural trend towards joint research approaches to their solution. Distributed Artificial Intelligence focuses on multi-agent systems, either virtual (e.g., agents) or with a physical body (e.g., robots), with a special interest on organizational issues, distributed decision making and social relations. Systems and Control Theory faces the growing complexity of the actual systems to be modelled and controlled, as well as the challenges of integrating design, real-time and operation aspects of modern control systems, many of them distributed in nature (e.g., large plant process control, robots, communication networks).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SIcQ4t3P3cI/AAAAAAAAAQI/mtKG5G8Kwyk/s1600-h/2004op2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SIcQ4t3P3cI/AAAAAAAAAQI/mtKG5G8Kwyk/s320/2004op2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5226164459156790722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Some of the most important, and specific to the area, scientific challenges one can identify in the research on MRS are, to name but the most relevant:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;1)The uncertainty in sensing and in the result of actions over the environment inherent to robots, posing serious challenges to the existing methodologies for Multi-Agent Systems (MAS), which rarely take uncertainty into account.&lt;br /&gt;&lt;br /&gt;2) The added complexity of the knowledge representation and reasoning, planning, task allocation, scheduling, execution control and learning problems when a distributed setup is considered, i.e., when there are multiple autonomous robots interacting in a common environment, and specially if they have to cooperate in order to achieve their common and individual goals.&lt;br /&gt;&lt;br /&gt;3) The noisy and limited bandwidth communications among teammates in a cooperative setting, a scenario which gets worse as the number of team members increase and/or whenever an opponent team using communications in the same range is present.&lt;br /&gt;&lt;br /&gt;4) The need to integrate several methodologies that handle the subsystems of each individual robot (extended to the robot team in a cooperative setting) in a consistent manner, such that the integration becomes the most important problem to be solved, ensuring a timely execution of planned tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-2571889453322620167?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/2571889453322620167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=2571889453322620167' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2571889453322620167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2571889453322620167'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/blog-post.html' title='Multi-Robot Systems'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_aNh_uVW1ahk/SIcQ4WtTWgI/AAAAAAAAAQA/A1vna-0EjM8/s72-c/multi.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-5975755183721801089</id><published>2008-02-27T05:27:00.000-08:00</published><updated>2008-03-27T06:19:34.430-07:00</updated><title type='text'>Line Following Robot</title><content type='html'>Hey friends,&lt;br /&gt;&lt;br /&gt;Thank you all for your response towards our blog...&lt;br /&gt;&lt;br /&gt;I recently got an email from a person who wanted to share his information about &lt;b&gt;line follower&lt;/b&gt; with all the readers...&lt;br /&gt;&lt;br /&gt;Its in PDF format so i couldnt use it here....but if u want the email plz leave ur email id and i promise u tht u will receive in less than one week...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Its has information and videos about line follower&lt;/b&gt; please dont email me ur request of forwarding the information...if u require it please leave a comment behind with ur email id....as i wont b able to check each and every email&lt;u&gt;(sry for the inconvinence)&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Thank u for ur support.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-5975755183721801089?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/5975755183721801089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=5975755183721801089' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5975755183721801089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5975755183721801089'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/swarm-robotics.html' title='Line Following Robot'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-4378845053634900276</id><published>2008-02-26T03:50:00.000-08:00</published><updated>2008-02-28T06:04:34.124-08:00</updated><title type='text'>Driverless car</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8Wb_G_wdMI/AAAAAAAAAD0/WD5U6nxaAoU/s1600-h/Driverless-Car-England.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8Wb_G_wdMI/AAAAAAAAAD0/WD5U6nxaAoU/s320/Driverless-Car-England.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5171711255616976066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The &lt;b&gt;driverless&lt;/b&gt; car concept embraces an emerging family of highly automated cognitive and control technologies, ultimately aimed at a full "taxi-like" experience for car users, but without a human driver. Together with alternative propulsion, it is seen by some as the main technological advance in car technology by 2020.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The challenge&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The challenges can broadly be divided into the technical and the social. The technical problems are the design of the sensors and control systems required to make such a car work. The social challenge is in getting people to trust the car, getting legislators to permit the car onto the public roads, and untangling the legal issues of liability for any mishaps with no person in charge.&lt;br /&gt;However, any solution can be broken down to four sub-systems:&lt;br /&gt;&lt;br /&gt; &lt;b&gt;sensors&lt;/b&gt;: the car knows where an obstacle is and what is around it;&lt;br /&gt;&lt;br /&gt; &lt;b&gt;navigation&lt;/b&gt;: how to get to the target location from the present                                  &lt;br /&gt;                           location;&lt;br /&gt; &lt;b&gt;motion planning&lt;/b&gt;: getting through the next few meters, steering, and  &lt;br /&gt;                                avoiding obstacles while also abiding by rules of the &lt;br /&gt;                                road and avoiding harm to the vehicle and others;&lt;br /&gt;&lt;br /&gt; &lt;b&gt;control of the vehicle itself&lt;/b&gt;: actuating the system's decisions.&lt;br /&gt;                In examining every proposed solution, one should look at the &lt;br /&gt;                following questions:&lt;br /&gt;&lt;br /&gt; Is this truly a complete system? &lt;br /&gt;        Does it drive itself door-to-door?&lt;br /&gt; To what degree is the proposed solution a step towards the complete vision, &lt;br /&gt;        or is it just a trick?&lt;br /&gt; Is the car 'autonomous', or would it need changes to the infrastructure?&lt;br /&gt; How feasible (technically, economically, and politically) would it be to  &lt;br /&gt;        deploy the entire solution?&lt;br /&gt;        Can the system allow for and include existing vehicles driven by humans, or &lt;br /&gt;        does it need an open field?&lt;br /&gt; How would it cope with unexpected circumstances?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R8WcFm_wdNI/AAAAAAAAAD8/jrEZ9h-9bq4/s1600-h/car_photo_216336_7.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R8WcFm_wdNI/AAAAAAAAAD8/jrEZ9h-9bq4/s320/car_photo_216336_7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5171711367286125778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some have argued that the problem is AI-complete -- that a safe and reliable driverless car would need to use all the skills of an ordinary human being, including commonsense reasoning and affective computing. The concern is that driverless cars will perform worse than human beings in emergency situations that require judgement and the ability to communicate with other drivers and police. For example, how should a driverless car react to a man waving a flare in the middle of the road?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Driver-assistance:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Though these products and projects do not aim explicitly to create a fully autonomous car, they are seen as incremental stepping-stones in that direction. Many of the technologies detailed below will probably serve as components of any future driverless car — meanwhile they are being marketed as gadgets that assist human drivers in one way or another. This approach is slowly trickling into standard cars (e.g. improvements to cruise control).&lt;br /&gt;&lt;br /&gt;Driver-assistance mechanisms are of several distinct types, sensorial-informative, actuation-corrective, and systemic.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sensors&lt;/b&gt;&lt;br /&gt;Sensors employed in driverless cars vary from the minimalist ARGO project's monochrome stereoscopy to mobileye's inter-modal (video, infra-red, laser, radar) approach. The minimalist approach imitates the human situation most closely, while the multi-modal approach is "greedy" in the sense that it seeks to obtain as much information as is possible by current technology, even at the occasional cost of one car's detection system interfering with another's.&lt;br /&gt;Mobileye is a well respected company who makes detection systems for cars, which are currently only used for driver assistance, but are eminently suitable for a full-fledged driverless car.  The system also detects the objects' motion (direction and speed) and can so calculate relative speeds, and predict collisions.&lt;br /&gt;&lt;br /&gt;        Japanese infra-red article&lt;br /&gt;&lt;br /&gt; some things from the DARPA challenge....&lt;br /&gt;&lt;br /&gt; Road-sign recognition&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Navigation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8Wc-G_wdOI/AAAAAAAAAEE/c0GdNxGcOMk/s1600-h/continental-boss-darpa-urban-challenge-2007.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8Wc-G_wdOI/AAAAAAAAAEE/c0GdNxGcOMk/s320/continental-boss-darpa-urban-challenge-2007.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5171712337948734690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The ability to plot a route from where the vehicle is to where the user wants to be has been available for several years. These systems, based on the US military's Global Positioning System are now available as standard car fittings, and use satellite transmissions to ascertain the current location, and an on-board street database to derive a route to the target. The more sophisticated systems also receive radio updates on road blockages, and adapt accordingly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motion planning &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It is a term used in robotics for the process of detailing a task into atomic robotic motions.&lt;br /&gt;This issue, also known as the "navigation problem", though simple for humans, is one of the most challenging in computer science and robotics. The problem is in creating an algorithm that would be able to find its way around a room with obstacles, perhaps accomplishing some task on the way.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Control of vehicle&lt;/b&gt;:&lt;br /&gt;As automotive technology matures, more and more functions of the underlying engine, gearbox etc. are no longer directly controlled by the driver by mechanical means, but rather via a computer, which receives instructions from the driver as inputs and delivers the desired effect by means of electronic throttle control, and other drive-by-wire elements. Therefore, the technology for a computer to control all aspects of a vehicle is well understood.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work done in simulation&lt;/b&gt;:&lt;br /&gt;While developing control systems for real cars is very costly in terms of both time and money, much work can be done in simulations of various complexity. Systems developed using simpler simulators can gradually be transferred to more complex simulators, and in the end to real vehicles. Some approaches that rely on learning requires starting in a simulation to be viable at all, for example evolutionary robotics approaches.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Social issues&lt;/b&gt;:&lt;br /&gt; Getting people to trust the car&lt;br /&gt;&lt;br /&gt; Getting legislators to permit the car onto the public roads&lt;br /&gt;&lt;br /&gt; Untangling the legal issues of liability for any mishaps with no person in  &lt;br /&gt;        charge.&lt;br /&gt;&lt;br /&gt; Despair of progress in the foreseeable future: The UK government seems to see &lt;br /&gt;        little progress until 2056. See Silicon Networks article and CNET.co.uk News.&lt;br /&gt;&lt;br /&gt; Getting people to give up their freedom to drive wherever they want, whenever  &lt;br /&gt;        they want without the aide of a computer - though mixed systems with some &lt;br /&gt;        human driven and some computer driven cars are possible.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivations&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;As nearly all car crashes (particularly fatal ones) are caused by human driver error, driverless cars would effectively eliminate nearly all hazards associated with driving as well as driver fatalities and injuries (traveling by car is currently one of the most deadly forms of transportation, with over a million deaths annually worldwide). This would be especially helpful to people that drive to bars and inebriate themselves; the ability for a car to shuttle them home would practically eliminate drunk driving crashes.&lt;br /&gt;Having the equivalent of a personal chauffeur would be a great convenience:&lt;br /&gt;&lt;br /&gt; Time spent commuting could be used for work, leisure, or rest.&lt;br /&gt;&lt;br /&gt; Parking in difficult areas becomes less of a concern as the car can park &lt;br /&gt;        itself away from a busy airport, for example, and come back when called on a &lt;br /&gt;        cell-phone.&lt;br /&gt;&lt;br /&gt; Taxiing children to school, activities and friends would become solely a &lt;br /&gt;        matter of granting permission for the car to handle the child's request.&lt;br /&gt;&lt;br /&gt; Allow the visually (and otherwise) impaired to travel independently.&lt;br /&gt;&lt;br /&gt; One could sleep overnight during long road trips.&lt;br /&gt;&lt;br /&gt;A driverless car would also be a boon to economic efficiency, as cars can be made lighter and more space efficient with the absence of safety technologies rendered redundant with computerized driving. Also the technology would make transportation more efficient and reliable: there may be autonomous or remote-controlled delivery trucks dispatched around the clock to pick up and deliver goods. Moreover, driverless cars would reduce traffic congestion by allowing cars to travel faster and closer together.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Social Costs&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;The social costs of this innovation are similar to those of other past technologies: Unemployment, expense and the elimination of the "old way of doing things". See also Luddites.&lt;br /&gt;As with any new labor-saving technology, this would lead to mass layoffs in the driving, cargo, and distribution industries. Taxis would also be automated, effectively eliminating a source of income for the less skilled. A similar if smaller impact is expected in the roadside-catering and other ancillary businesses. However, history shows that any such economic impact on jobs leads to economic benefits elsewhere that create employment, though often not for the exact same people displaced by the new technology.&lt;br /&gt;In order to recoup the development costs, and in order to maximise the profit opportunity that any exciting novelty presents, driverless cars will initially be significantly more expensive than manual cars.&lt;br /&gt;However, the overall technology need not be limited to the operation of vehicles. Once successfully implemented for vehicles, this technology could be used to implement all sorts of routine personal and labor assistants for humans. The concept of "machine" would take on a whole new meaning.&lt;br /&gt;Driving as a personal hobby and sport, and indeed the entire car-oriented sub-culture would be effectively eliminated. However, for those willing to pay for the extra feature, there could be an option to switch between manual and automated driving to make up for that.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Discussion &amp; Future&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Some systems control everything centrally, and in some the vehicle is truly autonomous in the sense that it "thinks" about its own situation in the first person - such a system can integrate with Humans that think in first person.&lt;br /&gt;&lt;br /&gt;Conversely. a system that centrally manages everything, though easier to build from a conceptual and engineering point of view, would face horrendous economic barriers because of the costs of converting an entire city or country to the new system at once. In order to be compatible with humans the "first person" point of view is key. This is for three reasons:&lt;br /&gt;&lt;br /&gt;   1. a distributed scheme in which each component (car) takes care of itself reduces complexity&lt;br /&gt;   2. a system that has the concept of first-person operation can understand what a human driver is up to.&lt;br /&gt;   3. for the human driver to understand what the driverless car is doing, it needs to operate and "think" in as similar a way to a human as practical (and safe).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-4378845053634900276?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/4378845053634900276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=4378845053634900276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4378845053634900276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4378845053634900276'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/driverless-car.html' title='Driverless car'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/R8Wb_G_wdMI/AAAAAAAAAD0/WD5U6nxaAoU/s72-c/Driverless-Car-England.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-2455078201660002471</id><published>2008-02-19T01:23:00.000-08:00</published><updated>2008-02-28T06:09:34.170-08:00</updated><title type='text'>Sensor</title><content type='html'>The world we live in is a complex place. We have many senses to help us to understand our surroundings. In order to safely move around robots also need some way of understanding their world. The easiest way of doing this is to add simple sensors to you robot.&lt;br /&gt;&lt;br /&gt;Bump Sensor:&lt;br /&gt;&lt;br /&gt;So, you've fitted some motors to your robot and its happily driving around but it probably keeps colliding with obstacles and getting stuck. You need a way for your robot to detect collisions and move around objects. Enter the humble bump sensor:&lt;br /&gt;&lt;br /&gt;A bump sensor is probably one of the easiest ways of letting your robot know it's collided with something. The simplest way to do this is to fix a micro switch to the front of your robot in a way so that when it collides the switch will get pushed in, making an electrical connection. Normally the switch will be held open by an internal spring.&lt;br /&gt;&lt;br /&gt;Micro switches are easy to connect to micro controllers because they are either off or on, making them digital. All micro controllers are digital, so this is a match made in heaven. Micro switch 'bump' sensors are easily connected to the Robocore, simply plug them into any free digital socket and away you go.&lt;br /&gt;&lt;br /&gt;The following diagram shows a typical circuit for a micro switch bump sensor. The resistor is important because it holds the signal line at ground while the switch is off. Without it the signal line is effectively 'floating' because there is nothing connected to it, and may cause unreliable readings as the processor tries to decide if the line is on or off.&lt;br /&gt;&lt;br /&gt;Light Sensor:&lt;br /&gt;&lt;br /&gt;Light sensors are perfect for making your robot more interesting. With some light sensors you can make your robot follow a light, hide in the dark or even turn on some funky headlights if the light level got a bit low (under a table for example).&lt;br /&gt;&lt;br /&gt;Light sensors are basically resistors that change their value according to how much light is shining onto them.&lt;br /&gt;&lt;br /&gt;They are easy to connect to the Robocore, with a simple circuit they can be plugged straight into a free analogue socket. Getting results from them can't be simpler. Get the processor to take a reading from the socket that the sensors connected to. A high value means not much light is falling on the sensor; a low value means a lot of light is falling on the sensor.&lt;br /&gt;&lt;br /&gt;More info will b updated soon...........&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-2455078201660002471?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/2455078201660002471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=2455078201660002471' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2455078201660002471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2455078201660002471'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/line-follower.html' title='Sensor'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-1820263451547502079</id><published>2008-02-13T05:35:00.000-08:00</published><updated>2008-02-16T23:55:43.767-08:00</updated><title type='text'>Robotics Tutorials - Motors</title><content type='html'>&lt;font size="4"&gt;&lt;b&gt;&lt;u&gt; DC Motors&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The beginners tutorial explained how DC motors worked and how to control them with a micro controller or the Robocore. This intermediate tutorial will look a bit more closely at the DC motor and its characteristics.&lt;br /&gt;&lt;br /&gt;We learned that reversing the polarity of the supply current controls the direction the motor rotates. This is not the only technique that can be used to control the motor. Changing the voltage supplied to the motor can also vary its speed. But your motor controller only has 2 settings, on and off, so how can the voltage be temporarily changed? Enter a technique called pulse width modulation.&lt;br /&gt;&lt;br /&gt;Pulse Width Modulation:&lt;br /&gt;&lt;br /&gt;This is a technique where pulses of electricity are fed into the motor at a fairly fast rate to produce an average voltage effect. To help us understand this lets look at a few examples.&lt;br /&gt;&lt;br /&gt;Lets say that for our pulse we'll turn on 10 volts for 40mS (40 thousandths of a second) and then we'll turn the voltage off for 10mS. If we repeat this cycle over and over the voltage is changing so quickly that the on's and off's become an average voltage. In this case the voltage is off for 20% of the time, so the average voltage to the motor is 80% of 10 volts, which is 8 volts. This will cause the motor to run slower than at 10 volts.&lt;br /&gt;&lt;br /&gt;Therefore the speed of the motor can be changed by varying the amount of time the current is on and the current is off.&lt;br /&gt;&lt;br /&gt;The DACPin command can be used with the motor drivers on the Robocore. Full syntax for the command can be found in the document files supplied with the Basix X software but the basic command is:&lt;br /&gt;&lt;br /&gt;Call DACpin(Pin, Voltage, DACcounter)&lt;br /&gt; &lt;br /&gt;Pin = The output pin&lt;br /&gt;Voltage = Byte value between 0 and 255&lt;br /&gt;DACcounter = The function must return a value in this variable. If more than one pin is using DACPin then each pin must use a differently names variable.&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;The actual results obtained once the pulse has run through the motor driver chips will vary depending on the voltage used but typically a 25% reduction in power can be achieved. With most DC motors any further reductions will not supply the motor with enough power to operate.&lt;br /&gt;&lt;br /&gt;Torque:&lt;br /&gt;&lt;br /&gt;At this point I would like to say a little bit about torque. Torque is a measurement of the motors power. The higher the torque of the motor the more weight it can move. DC motors provide different amounts of torque depending on their running speed, which is measured in RPM (revolutions per minute). At low RPM DC motors produce poor torque, and generally the higher the RPM, the better the motors torque.&lt;br /&gt;&lt;br /&gt;So what does this mean in practical robotics terms? Lets say that a robot is propelled by 2 DC motors. Using gears to reduce the overall speed of the robot and running the motors at top speed will result in the most power being delivered to the wheels. Using pulse width modulation too slow the motor will result in the motors not delivering less torque to drive your robot forward.&lt;br /&gt;&lt;br /&gt;Pulse width modulation is still a very useful technique to use as it gives the programmer control over the robots speed purely using software. Sometimes you might want to slow your robot down a little, for reversing away from obstacles or turning on the spot for example. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;The beginners section generally talked about what servos are and what they can do. This section is going to look more closely at how servos work and how we can program them.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How Servos Work:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To help us to understand how to control servos it may be helpful to take a closer look at how they work. Inside the servo is a control board, a set of gears, a potentiometer (a variable resistor) and a motor. The potentiometer is connected to the motor via the gear set. A control signal gives the motor a position to rotate to and the motor starts to turn. The potentiometer rotates with the motor, and as it does so its resistance changes. The control circuit monitors its resistance, as soon as it reaches the appropriate value the motor stops and the servo is in the correct position.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Controlling Servos:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Servos are positioned using a technique called pulse width modulation. This is a continuous stream of pulses sent to the servo. The pulse normally lasts for between 1ms and 2ms, depending on the positioning of the servo. The pulse has to be continually repeated for the servo to hold its position, usually around 50 to 60 times a second. It is the actual pulse that controls the position of the servo, not the number of times it's repeated every second.&lt;br /&gt;&lt;br /&gt;A 1ms pulse will position the servo at 0 degrees, where as a 2ms pulse will position the servo at the maximum position that it can rotate to. A pulse of 1.5ms will position the servo half way round its rotation. The diagram below shows 3 typical pulses.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R7LzHm_wdDI/AAAAAAAAACs/C_4UHl5VsC8/s1600-h/pulsewidthdiagram.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R7LzHm_wdDI/AAAAAAAAACs/C_4UHl5VsC8/s320/pulsewidthdiagram.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5166459034599978034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The diagram is not to scale but hopefully demonstrates that each pulse must be the same length. That is the combined time that the pulse is on and off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-1820263451547502079?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/1820263451547502079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=1820263451547502079' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1820263451547502079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1820263451547502079'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/robotics-tutorials-motors.html' title='Robotics Tutorials - Motors'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_aNh_uVW1ahk/R7LzHm_wdDI/AAAAAAAAACs/C_4UHl5VsC8/s72-c/pulsewidthdiagram.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-4884403939138619351</id><published>2008-02-13T05:31:00.000-08:00</published><updated>2008-02-16T23:57:40.142-08:00</updated><title type='text'>Programming Tutorials</title><content type='html'>&lt;b&gt;&lt;u&gt;&lt;font size="4"&gt;Beginner - Programming Introduction&lt;/font&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is an introduction to programming using the BasicX micro controller, if you have never programmed before this will help you on your way. More experienced readers should still skim through this to get the basics of the language.&lt;br /&gt;&lt;br /&gt;Programming is a common language between you and your Robocore, it lets you tell it what to do. In robotics, programming is necessary to make machines that can work by themselves, without human intervention. These are called autonomous robots.&lt;br /&gt;&lt;br /&gt;1) Lets start by connecting your Robocore to the power supply and the serial port of your computer, and loading up the BasicX software.&lt;br /&gt;&lt;br /&gt;2) When this is loaded, click on the Monitor Port menu and select the COM port that the Robocore is connected to (probably COM1). The Download Port menu should be set to the same COM port.&lt;br /&gt;&lt;br /&gt;3) Click the editor button. A window should open asking for a filename. Just type a name for your first program, lets say Demoprog. It will tell you that the file does not exist, so do you want to create it. Click yes.&lt;br /&gt;&lt;br /&gt;Now lets write our first program!&lt;br /&gt;&lt;br /&gt;To test that the BasicX is working, we will make it send a message back to your computer. This is done using the debug.print command.&lt;br /&gt;&lt;br /&gt;Type the following program into the editor window (or copy and paste it). The first and last lines should already be present, if they are just copy the middle line.&lt;br /&gt;&lt;br /&gt;Sub main()&lt;br /&gt;&lt;br /&gt;debug.print "Robocore test: Everything is working"&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Before we can download to the BasicX we need to set the chip preferences. This basically tells the chip what we want to be doing with each pin (input, output etc). To do this click on the project menu, followed by chip (or the F7 shortcut). We can leave everything as it is for now so just click on OK.&lt;br /&gt;&lt;br /&gt;Now click on the Compile menu and select Compile and Run (keyboard shortcut F5) This will send the code to the Robocore. Going back to the main BasicX window, you should see the text ' Robocore test: Everything is working ' appear on the screen.&lt;br /&gt;&lt;br /&gt;The Sub main() and End Sub commands tell the Robocore where the program begins and ends.&lt;br /&gt;&lt;br /&gt;The debug.print command is very useful for telling us what the Robocore is doing, in the next case we will see more of its capabilities.&lt;br /&gt;&lt;br /&gt;Now we will make the Robocore solve an equation for us. To do this we will need a variable. This is a value stored under a name in the memory of the Robocore. We will give this variable the name ' answer '.&lt;br /&gt;&lt;br /&gt;Sub main()&lt;br /&gt;&lt;br /&gt;Dim answerI As integer ' declaring&lt;br /&gt;&lt;br /&gt;Dim answer As string ' variables&lt;br /&gt;&lt;br /&gt;answerI = 5*5 ' doing the maths&lt;br /&gt;&lt;br /&gt;answer=Cstr(answerI) 'convert to printable format&lt;br /&gt;&lt;br /&gt;debug.print "5 times 5 is "; answer 'print answer&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Run the program as before and you should get the computer telling you the answer.&lt;br /&gt;&lt;br /&gt;This program shows that you can print values from your program to the screen using debug.print just by adding a semi-colon and the variable name after the "text", this is very handy for example when testing sensors.&lt;br /&gt;&lt;br /&gt;The program also uses comments, these have no effect on the program but allow us to add information about each line of the program. The computer ignores everything written on the line after an apostrophe (').&lt;br /&gt;&lt;br /&gt;This program has also introduced us to variables, the topic for the next tutorial in the programming series.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Programming Variables&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Variables are values stored in computer memory. We need to use them for almost every program to allow the Robocore to remember things. There are various different types of values, for example strings, which are text values, and integers, which are whole number values.&lt;br /&gt;&lt;br /&gt;The computer needs you to tell it what type of value you want to use, otherwise it will get confused.&lt;br /&gt;&lt;br /&gt;Each type of variable has its uses and limitations, which is why there are simple methods for switching between variable types. This was shown in the last tutorial, lets look at that program again line by line.&lt;br /&gt;&lt;br /&gt;Sub main()&lt;br /&gt;Dim answerI As integer ' declaring&lt;br /&gt;Dim answer As string ' variables&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;The Dim lines declare the variables, that means they set them up for use in the program. The type of variable must be specified using the ' As ' keyword. Here we have an integer and a string.&lt;br /&gt;&lt;br /&gt;answerI = 5*5 ' doing the math&lt;br /&gt;&lt;br /&gt;Here the integer variable is used, this is because mathematical functions can be performed using it such as multiplication&lt;br /&gt;&lt;br /&gt;answer=Cstr(answerI) 'convert to printable format&lt;br /&gt;&lt;br /&gt;Using the CStr statement the integer value held in answerI is converted into a string and held in answer, this is a text variable allowing the answer to be printed to the screen using debug.print.&lt;br /&gt;&lt;br /&gt;debug.print "5 times 5 is "; answer 'print answer&lt;br /&gt;End Sub&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Variables can have nearly any name, but you cannot use words that are otherwise used in the programming language, and it is best to keep them simple, either a single letter, or a word describing what the variable does.&lt;br /&gt;&lt;br /&gt;Other types of variables are available. One of the types used commonly in robotics is the Boolean variable. This provides us with a true or false value.&lt;br /&gt;&lt;br /&gt;For example a bump sensor will either be pressed or not pressed, so the Boolean variable for it will either be true (pressed) or false.&lt;br /&gt;&lt;br /&gt;We set up Boolean variables using the following statement&lt;br /&gt;&lt;br /&gt;Dim variable As Boolean.&lt;br /&gt;variable = true&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Boolean logic is commonly used with conditional statements, these are covered in the next section.&lt;br /&gt;&lt;br /&gt;There is also the Single variable type, which allows floating point numbers &lt;br /&gt;&lt;br /&gt;e.g 2.43 or -0.66, this is occasionally useful in robotics when more maths is necessary.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Programming Loops and Conditions&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Until now our programming has been limited to running through the code once, and then the program stops functioning. This is clearly not suitable for a robot, which must be able to follow it's commands continuously for the length of time it is switched on. To do this we use loops.&lt;br /&gt;&lt;br /&gt;We also want our robots to make decisions based on data from its sensors, for this we need conditional statements. Loops themselves contain conditional statements in order to tell them when to run and how long to continue.&lt;br /&gt;&lt;br /&gt;There are several different loop commands, letting us control the function of the robot in a variety of ways.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Do Loops:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The simple Do loop can be used to enclose your whole program, when it reaches the end of the code it returns to the beginning and starts again. We can apply this to our program used in the introduction.&lt;br /&gt;&lt;br /&gt;Sub main()&lt;br /&gt;Dim answer As string&lt;br /&gt;Dim answerI As integer&lt;br /&gt;&lt;br /&gt;Do 'start of loop&lt;br /&gt; &lt;br /&gt;answerI = 5*5&lt;br /&gt;answer=Cstr(answerI)&lt;br /&gt;debug.print "The answer is "; answer&lt;br /&gt; &lt;br /&gt;Loop ' end of loop&lt;br /&gt;End Sub&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;As you will see when you run this program, the statement is no longer displayed once, but continues to print as long as the program runs (you should press the reset button to stop it)&lt;br /&gt;&lt;br /&gt;Now for something slightly more useful. We can add a conditional statement to the do loop by using a ' while ' statement. This lets us tell the Robocore when to stop looping.&lt;br /&gt;&lt;br /&gt;Sub main()&lt;br /&gt; &lt;br /&gt;Dim answerI As integer&lt;br /&gt;Dim answer As string&lt;br /&gt;Dim i As integer&lt;br /&gt;i=0&lt;br /&gt; &lt;br /&gt;Do While (i &lt; 10)&lt;br /&gt;answerI = 5*5&lt;br /&gt;answer=Cstr(answerI)&lt;br /&gt;debug.print "The answer is "; answer&lt;br /&gt;i=i+1&lt;br /&gt;loop&lt;br /&gt; &lt;br /&gt;End Sub&lt;br /&gt; &lt;br /&gt;Using the conditional statement ' while ' and a new integer variable i we have made the Robocore loop only 10 times (note that as 10 is not less than 10 the program will stop after the I = 9 loop)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;For Loop:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We can set up the same loop using the for statement remove the Do while, Loop and i=i+1 lines and replace them with:&lt;br /&gt;&lt;br /&gt;Do While For I = 1 to 10 Step 1&lt;br /&gt;&lt;br /&gt;Loop Next&lt;br /&gt;&lt;br /&gt;The loop runs from 1 to 10 stepping up 1 each loop, this removes the need for the line I=I+1.&lt;br /&gt;&lt;br /&gt;Run the program to check that you have got it right.&lt;br /&gt;&lt;br /&gt;Now for something a little more complex, instead of just doing one sum, we can automate the Robocore to do 10 different sums for us by changing the equation to&lt;br /&gt;&lt;br /&gt;AnswerI = I*5&lt;br /&gt;&lt;br /&gt;Now the Robocore takes the number of loops completed and multiplies it by five. When you run this program you should now get the answers 5,10,15 up to 50.&lt;br /&gt;&lt;br /&gt;If Statement:&lt;br /&gt;&lt;br /&gt;We can run a conditional statement without using a loop with an if statement. These are used as follows&lt;br /&gt;&lt;br /&gt;Const switch as Byte = 5&lt;br /&gt;Sub Main()&lt;br /&gt;Do&lt;br /&gt; &lt;br /&gt;if (GetPin(switch)=1) then&lt;br /&gt;debug.print"switch pressed"&lt;br /&gt;call sleep(0.15)&lt;br /&gt;end if&lt;br /&gt;&lt;br /&gt;Loop&lt;br /&gt;End Sub&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;The best way to learn is to experiment, make your own program with what you've learnt and you'll soon feel more confident&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-4884403939138619351?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/4884403939138619351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=4884403939138619351' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4884403939138619351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/4884403939138619351'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/programming-tutorials.html' title='Programming Tutorials'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-9016127041356009381</id><published>2008-02-12T04:01:00.001-08:00</published><updated>2008-02-13T05:29:53.237-08:00</updated><title type='text'>Robotics Tutorials For Beginner -Brain and Sensors</title><content type='html'>Building robots is great fun, but just imagine a robot that can 'think' for its self. Adding a brain to your robot need not be a hard process, and will allow your robot to follow instructions and rules. Basically, robot brains come in two forms, analogue and digital.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;ROBOTIC BRAIN&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Analogue Brains&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It is possible to control your robots actuators (motors etc) using 'hard wired' circuits. By making circuits from capacitors, transistors and resistors you can make robots that can follow simple rules. For example, if they hit a wall a simple switch positioned on the front of the robot would be pressed in and the robot would be able to reverse and turn, hopefully avoiding the obstacle on its next pass.&lt;br /&gt;&lt;br /&gt;Analogue brains have their disadvantages though. They require quite a good knowledge of electronics to design, and once they are built are very difficult to change. If you want to change the behavior of your design you will probably need to totally rebuild your analogue brain.&lt;br /&gt;&lt;br /&gt;Analogue circuits are generally not recommended for beginners in electronics or robotics.&lt;br /&gt;&lt;br /&gt;Luckily for experimental roboticists there is another option: Digital Brains&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Digital Brains&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Devices called micro controllers make perfect 'brains' for robots. They are small computers on a single chip, containing their own memory and processor, and can be programmed by a PC to control your robot in any way you can imagine.&lt;br /&gt;&lt;br /&gt;What makes micro controllers so good is that they can be re programmed again and again with just a click of a mouse. There is no need to get the soldering iron out and start messing with components like analogue circuits.&lt;br /&gt;&lt;br /&gt;Programming these chips is fairly easy to learn, but may take a bit of patience to fully understand. Learning to program by sticking your head in a textbook and trying to memorize programs is a very slow and boring way to learn. By far the easiest way to master programming is to have a go, work through a few tutorials and try out some examples. By playing about and trying ideas you'll soon get an understanding of how programs work, and how you can write your own&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;SENSORS&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The world we live in is a complex place. We have many senses to help us to understand our surroundings. In order to safely move around robots also need some way of understanding their world. The easiest way of doing this is to add simple sensors to you robot.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Bump Sensor:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So, you've fitted some motors to your robot and its happily driving around but it probably keeps colliding with obstacles and getting stuck. You need a way for your robot to detect collisions and move around objects. Enter the humble bump sensor:&lt;br /&gt;&lt;br /&gt;A bump sensor is probably one of the easiest ways of letting your robot know it's collided with something. The simplest way to do this is to fix a micro switch to the front of your robot in a way so that when it collides the switch will get pushed in, making an electrical connection. Normally the switch will be held open by an internal spring.&lt;br /&gt;&lt;br /&gt;Micro switches are easy to connect to micro controllers because they are either off or on, making them digital. All micro controllers are digital, so this is a match made in heaven. Micro switch 'bump' sensors are easily connected to the Robocore, simply plug them into any free digital socket and away you go.&lt;br /&gt;&lt;br /&gt;The following diagram shows a typical circuit for a micro switch bump sensor. The resistor is important because it holds the signal line at ground while the switch is off. Without it the signal line is effectively 'floating' because there is nothing connected to it, and may cause unreliable readings as the processor tries to decide if the line is on or off.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Light Sensor:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Light sensors are perfect for making your robot more interesting. With some light sensors you can make your robot follow a light, hide in the dark or even turn on some funky headlights if the light level got a bit low (under a table for example).&lt;br /&gt;&lt;br /&gt;Light sensors are basically resistors that change their value according to how much light is shining onto them.&lt;br /&gt;&lt;br /&gt;They are easy to connect to the Robocore, with a simple circuit they can be plugged straight into a free analogue socket. Getting results from them can't be simpler. Get the processor to take a reading from the socket that the sensors connected to. A high value means not much light is falling on the sensor; a low value means a lot of light is falling on the sensor.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Motors&lt;/u&gt;&lt;/b&gt; are one of the most common methods used to move robots around. They can be connected to gears and wheels and are a perfect way of adding mobility to your robot. There are many types of motor, and this tutorial will cover the main ones useful for robotics.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DC Motors:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;These are the most common and easy to use motor available. They are connected to a power supply by two wires. The direction of the motor shaft rotates can be changed by reversing the polarity (swap the positive and negative wires) of the motor supply voltage.&lt;br /&gt;&lt;br /&gt;Unfortunately motors use quite a bit of current, so you cant just plug them straight into your processor and expect them to work, the processor won't be able to supply the motor with enough current. We need to find a way of turning the motors on and off using the processor. This can be done by many methods, including transistors, relays or a motor driver chip. The Robocore contains two motor driver chips that can control up to 4 DC motors simultaneously. Connecting motors to the Robocore couldn't be simpler. Just connect the 2 wires of each motor to one of the motor outputs on the Robocore and your ready to go. The motor is controlled by 2 output pins on the processor, lets say pin 1 and pin 2. The motors direction can be changed by different outputs of the pins. See table below&lt;br /&gt;&lt;br /&gt;               Pin 1            Pin 2                  Motor Output&lt;br /&gt;&lt;br /&gt;               On               Off                    Clockwise&lt;br /&gt; &lt;br /&gt;               Off               On                    Anti-Clockwise&lt;br /&gt;&lt;br /&gt;               Off              Off                    Motor Off&lt;br /&gt; &lt;br /&gt;For help programming the chip to do this have a look at the motor programming guide.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Servo Motors:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R7LvcW_wdBI/AAAAAAAAACc/oKC7Xipi3cg/s1600-h/small_servo1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R7LvcW_wdBI/AAAAAAAAACc/oKC7Xipi3cg/s320/small_servo1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5166454993035752466" /&gt;&lt;/a&gt; Servo motors are perfect control motors, They can be told to rotate to a specific position, making them ideal for anything that requires precision movement. Most servo motors can rotate through about 90 to 180 degrees, some rotate through a full 360 degrees. Servo's however, are unable to continually rotate, meaning they can't be used for driving wheels, but their precision movement makes them ideal for powering legs, controlling rack and pinion steering and much more.&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R7Lua2_wdAI/AAAAAAAAACU/iwuXFHT5_PM/s1600-h/small_inside_servo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R7Lua2_wdAI/AAAAAAAAACU/iwuXFHT5_PM/s320/small_inside_servo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5166453867754320898" /&gt;&lt;/a&gt;Servo motors are totally self contained. They contain a motor, gearbox and driver electronics, meaning they can be controlled directly from a microcontroller, without the need for interface electronics. The picture to the left shows the inside of a servo. You can see the gears, motor and control circuitry.&lt;br /&gt;&lt;br /&gt; Servos have 3 wires connected to them. 2 are for the power supply, usually between about 5 and 7 volts. The third wire is the control wire, which can be connected directly to the processor or micro controller (or an output of the Robocore). The position the servo rotates to can be controlled by sending pulses of electricity to the servo. Changing the delay between pulses directly controls the servos position.&lt;br /&gt;&lt;br /&gt;If you want to learn more about servo motors take a look at the intermediate section of the tutorials.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Stepper Motors:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Stepper motors work in a similar way to dc motors, but where dc motors have 1 electromagnetic coil to produce movement, stepper motors contain many. Stepper motors are controlled by turning each coil on and off in a sequence. Every time a new coil is energized, the motor rotates a few degrees, called the step angle. Repeating the sequence causes the motor to move a few more degrees and so on, resulting in a constant rotation of the motor shaft. For example, a stepper motor with a step angle of 7.5 degrees requires 48 pulses for a complete revolution, or 96 pulses for 2 complete revolutions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The diagram below shows how a stepper motor works. The magnet in the middle of the arrangement is connected to the motor shaft and produces the rotation. The 4 magnets around the outside represent each coil of the stepper motor. As different coils are energized the central magnet is pulled in different directions. By applying the correct sequence of pulses to the coils the motor can be made to rotate.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R7LwD2_wdCI/AAAAAAAAACk/x9Uv7uP_Gz4/s1600-h/stepperdiag1.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R7LwD2_wdCI/AAAAAAAAACk/x9Uv7uP_Gz4/s320/stepperdiag1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5166455671640585250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This design gives stepper motors the upper hand over DC motors. Varying the speed of the input sequence can exactly control the speed of the motor. Also, by keeping count of the sequence the motor can be made to rotate any number of times to any position&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-9016127041356009381?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/9016127041356009381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=9016127041356009381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/9016127041356009381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/9016127041356009381'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/robotics-tutorials-beginner-hardware.html' title='Robotics Tutorials For Beginner -Brain and Sensors'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_aNh_uVW1ahk/R7LvcW_wdBI/AAAAAAAAACc/oKC7Xipi3cg/s72-c/small_servo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7674169845545442085</id><published>2008-02-12T04:01:00.000-08:00</published><updated>2008-03-01T04:35:20.367-08:00</updated><title type='text'>Robot Timeline - Robot History</title><content type='html'>Hey Friends it is generally said if u wana build the future u should know about the past.&lt;br /&gt;&lt;br /&gt;So, here i present you the clear &lt;b&gt;History of Robotics&lt;/b&gt; and who made it...&lt;br /&gt; &lt;br /&gt;                                       Imagining Robots&lt;br /&gt;                                       (c270 B.C.-1949) &lt;br /&gt; 270 BC: Ctesibius, a Greek physicist and inventor makes organs and water clocks with movable figures.&lt;br /&gt;&lt;br /&gt;1495:  The anthrobot, a mechanical man, is designed by Leonardo da Vinci.&lt;br /&gt; &lt;br /&gt;1540:  A mandolin-playing lady is created by Italian inventor Gianello Torriano.&lt;br /&gt;&lt;br /&gt;1772: Swiss inventors Pierre and Henri Jacquet-Droz build a robotic child called L'Ecrivain (The Writer). It could write messages with up to 40 characters. L'Ecrivain's brain was a mechanical computer. A piano-playing robotic woman is also built at this time.&lt;br /&gt;&lt;br /&gt;1801: Joseph Jacquard invents a textile machine called a programmable loom. It is operated by punch cards.&lt;br /&gt;&lt;br /&gt;1818:  Mary Shelley writes "Frankenstein" about a frightening artificial life form created by Dr. Frankenstein.&lt;br /&gt;&lt;br /&gt;1830:  American Christopher Spencer designs a cam-operated lathe.&lt;br /&gt;&lt;br /&gt;1890's:  Nikola Tesla designs the first remote control vehicles. He is also known for his invention of the radio, induction motors, Tesla coils.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;1892: In the United States, Seward Babbitt designs a motorized crane with gripper to remove ingots from a furnace.&lt;br /&gt;&lt;br /&gt;1921: The first reference to the word robot appears in a play opening in London, entitled Rossum's Universal Robots. The word robot comes from the Czech word, robota, which means drudgery or slave-like labor. Czech playwright Karel Capek first used this term when describing robots that helped people with simple, repetitive tasks. Unfortunately, when the robots in the story were used in battle, they turn against their human owners and take over the world.&lt;br /&gt;&lt;br /&gt;1938: Americans Willard Pollard and Harold Roselund design a programmable paint-spraying mechanism for the DeVilbiss Company.&lt;br /&gt;&lt;br /&gt;1940's: Grey Walters creates an early robot called Elsie the tortoise, or Machina speculatrix.&lt;br /&gt;&lt;br /&gt;1941: Science fiction writer Isaac Asimov first uses the word "robotics" to describe the technology of robots and predicts the rise of a powerful robot industry.&lt;br /&gt;&lt;br /&gt;1942: Asimov writes a story about robots, Runaround, which contains the "Three laws of robotics".&lt;br /&gt; &lt;br /&gt;1946: George Devol patents a general purpose playback device for controlling machines. It uses a magnetic process recorder. American scientists J. Presper Eckert and John Mauchly build the first large electronic computer called the Eniac at the University Pennsylvania. The second computer, the Whirlwind, solves a problem at M.I.T. The Whirlwind is the first general-purpose digital computer.&lt;br /&gt;&lt;br /&gt;1948: Norbert Wiener, a professor at M.I.T., publishes his book, Cybernetics, which describes the concept of communications and control in electronic, mechanical, and biological systems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Birth of the Industrial Robot&lt;/b&gt;&lt;br /&gt;           &lt;b&gt;(1950-1979)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1951: A teleoperator-equipped articulated arm is designed by Raymond Goertz for the Atomic Energy Commission.&lt;br /&gt;&lt;br /&gt;1954: The first programmable robot is designed by George Devol. He coins the term Universal Automation.&lt;br /&gt;&lt;br /&gt;1956: Devol and engineer Joseph Engelberger form the world�s first robot company, Unimation.&lt;br /&gt;&lt;br /&gt;1959: Computer-assisted manufacturing was demonstrated at the Servomechanisms Lab at MIT. Planet Corporation markets the first commercially available robot.&lt;br /&gt;&lt;br /&gt;1960's: Johns Hopkins creates the beast. It is controlled by hundreds of transistors and able to seek out photocell outlets when its battery runs low.&lt;br /&gt;&lt;br /&gt;1960: The General Electric Walking Truck was a 3,000 pound, four-legged robot that could walk four miles an hour. It was powered by a computer. Ralph Moser developed the machine.&lt;br /&gt;&lt;br /&gt;1960: Unimation is purchased by Condec Corporation and development of Unimate Robot Systems begins. American Machine and Foundry, later known as AMF Corporation, markets a robot, called the Versatran, designed by Harry Johnson and Veljko Milenkovic.&lt;br /&gt;&lt;br /&gt;1961: The first industrial robot was online in a General Motors automobile factory in New Jersey. It was Devol and Engelberger's UNIMATE. It performed spot welding and extracted die castings.&lt;br /&gt;&lt;br /&gt;1963: The first artificial robotic arm to be controlled by a computer was designed. The Rancho Arm was designed as a tool for the handicapped and its six joints gave it the flexibility of a human arm.&lt;br /&gt;&lt;br /&gt;1964: Artificial intelligence research laboratories are opened at M.I.T., Stanford Research Institute (SRI), Stanford University, and the University of Edinburgh.&lt;br /&gt;&lt;br /&gt;1965: DENDRAL was the first expert system or program designed to execute the accumulated knowledge of subject experts.&lt;br /&gt;&lt;br /&gt;1968: The octopus-like Tentacle Arm was developed by Marvin Minsky.&lt;br /&gt;&lt;br /&gt;1969: The Stanford Arm was the first electrically powered, computer-controlled robot arm.&lt;br /&gt;&lt;br /&gt;1970: Shakey was introduced as the first mobile robot controlled by artificial intelligence. SRI International in California produced this small box on wheels that used memory to solve problems and navigate. At Stanford University a robot arm is developed which becomes a standard for research projects. The arm is electrically powered and becomes known as the Stanford Arm.&lt;br /&gt;&lt;br /&gt;1970's: Scientists at Edinburgh University create the Freddy robot, taking steps in hand-eye coordination technology. This first assembly robot constructed a toy boat and car from a heap of mixed parts tipped onto a table.&lt;br /&gt;&lt;br /&gt;1973: The first commercially available minicomputer-controlled industrial robot is developed by Richard Hohn for Cincinnati Milacron Corporation. The robot is called the T3, The Tomorrow Tool.&lt;br /&gt;&lt;br /&gt;1974: A robotic arm (the Silver Arm) that performed small-parts assembly using feedback from touch and pressure sensors was designed. Professor Scheinman, the developer of the Stanford Arm, forms Vicarm Inc. to market a version of the arm for industrial applications. The new arm is controlled by a minicomputer.&lt;br /&gt;&lt;br /&gt;1976: Robot arms are used on Viking 1 and 2 space probes. Vicarm Inc. incorporates a microcomputer into the Vicarm design.&lt;br /&gt;&lt;br /&gt;1977: ASEA, a European robot company, offers two sizes of electric powered industrial robots. Both robots use a microcomputer controller for programming and operation. Unimation purchases Vicarm Inc. during this year.&lt;br /&gt;&lt;br /&gt;1978: Vicarm, Unimation creates the PUMA (Programmable Universal Machine for Assembly) robot with support from General Motors. Many research labs still use this assembly robot.&lt;br /&gt;&lt;br /&gt;1979: The Standford Cart crosses a chair-filled room without human assistance. The cart is equipped with a television camera mounted on a rail that takes pictures and relays them to a computer so that distances can be analyzed.&lt;br /&gt;&lt;br /&gt;                      &lt;b&gt;The Robotic Age Takes Off&lt;/b&gt;&lt;br /&gt;                            &lt;b&gt;(1980-Present)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1980: The robot industry starts its rapid growth, with a new robot or company entering the market every month.&lt;br /&gt;&lt;br /&gt;1983:  The Remote Reconnaissance Vehicle became the first vehicle to enter the basement of Three Mile Island after a meltdown in March 1979. This vehicle worked four years to survey and clean up the flooded basement.&lt;br /&gt;&lt;br /&gt;1984: The CoreSampler drilled core samples from the walls of the Three Mile Island basement to determine the depth and severity of radioactive material that soaked into the concrete.&lt;br /&gt;&lt;br /&gt;1984: The Terregator pioneered exploration, road following and mine mapping. It was the world's first rugged, capable, autonomous outdoor navigation robot.&lt;br /&gt;&lt;br /&gt;1985: REX was the world's first autonomous digging machine. It sensed and planned to excavate without damaging buried gas pipes. This robot used a hypersonic air knife to erode soil around pipes.&lt;br /&gt;&lt;br /&gt;1986: The Remote Work Vehicle was developed for a broad agenda of clean-up operations like washing contaminated surfaces, removing sediments, demolishing radiated structures, applying surface treatments, and packaging and transporting materials.&lt;br /&gt;&lt;br /&gt;1986: NavLab I pioneered high performance outdoor navigation. NavLab deployed racks of computers, laser scanners, and color cameras providing cutting-edge perception in its time.&lt;br /&gt;&lt;br /&gt;1988: The Pipe Mapping computes magnetic and radar data over a dense grid to infer the depth and location of buried pipes. This outperforms hand-held pipe detectors.&lt;br /&gt;&lt;br /&gt;1988: The Locomotion featured a chassis that steers and propels all wheels so that it can spin, drive, or spin while driving. Its software can emulate a tank, car or any other wheeled machine.&lt;br /&gt;&lt;br /&gt;1990: The Ambler was a walking robot that enables energy-efficient overlapping gaits. Developed as a testbed for research in walking robots operating in rugged terrain.&lt;br /&gt;&lt;br /&gt;1992: Neptune articulates magnetic tracks to roam the interiors of fuel storage tanks. It evaluates deterioration in floors and walls using acoustic navigation and corrosion sensing.&lt;br /&gt;&lt;br /&gt;1992: Dante I rappels mountain sides using a spherical laser scanner and foot sensors. It entered the crater of Antarctica's Mt. Erebus but did not reach the lava lake.&lt;br /&gt;&lt;br /&gt;1992: NavLab II was the automated HUMMER that pioneered trinocular vision, WARP computing, and sensor fusion to navigate offroad terrain.&lt;br /&gt;&lt;br /&gt;1993: Demeter autonomously mows hay and alphalpa. It navigates with GPS and uses camera vision to differentiate cut and uncut crops.&lt;br /&gt;&lt;br /&gt;1994: The Dante II, build by CMU Robotics, samples volcanic gases from the Mt. Spurr volcano in Alaska.&lt;br /&gt;&lt;br /&gt;1997: NASA�s PathFinder lands on Mars and the Sojourner rover robot captures images.&lt;br /&gt;&lt;br /&gt;2000: Humanoid robots, Honda Asimo, Sony Dream Robots (SDR), and the Aibo robot dog are showcased.&lt;br /&gt;&lt;br /&gt;2004: The humanoid, Robosapien is created by US robotics physicist and BEAM expert, Dr. Mark W Tilden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7674169845545442085?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7674169845545442085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7674169845545442085' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7674169845545442085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7674169845545442085'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/world-we-live-in-is-complex-place.html' title='Robot Timeline - Robot History'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-2642127807810761629</id><published>2008-02-12T03:53:00.000-08:00</published><updated>2008-02-12T04:01:09.394-08:00</updated><title type='text'>Robotics Tutorials for Beginners</title><content type='html'>Building robots is great fun, but just imagine a robot that can 'think' for its self. Adding a brain to your robot need not be a hard process, and will allow your robot to follow instructions and rules. Basically, robot brains come in two forms, analogue and digital.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;BRAINS&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Analogue Brains&lt;br /&gt;&lt;br /&gt;It is possible to control your robots actuators (motors etc) using 'hard wired' circuits. By making circuits from capacitors, transistors and resistors you can make robots that can follow simple rules. For example, if they hit a wall a simple switch positioned on the front of the robot would be pressed in and the robot would be able to reverse and turn, hopefully avoiding the obstacle on its next pass.&lt;br /&gt;&lt;br /&gt;Analogue brains have their disadvantages though. They require quite a good knowledge of electronics to design, and once they are built are very difficult to change. If you want to change the behavior of your design you will probably need to totally rebuild your analogue brain.&lt;br /&gt;&lt;br /&gt;Analogue circuits are generally not recommended for beginners in electronics or robotics.&lt;br /&gt;&lt;br /&gt;Luckily for experimental roboticists there is another option: Digital Brains&lt;br /&gt;&lt;br /&gt;Digital Brains&lt;br /&gt;&lt;br /&gt;Devices called micro controllers make perfect 'brains' for robots. They are small computers on a single chip, containing their own memory and processor, and can be programmed by a PC to control your robot in any way you can imagine.&lt;br /&gt;&lt;br /&gt;What makes micro controllers so good is that they can be re programmed again and again with just a click of a mouse. There is no need to get the soldering iron out and start messing with components like analogue circuits.&lt;br /&gt;&lt;br /&gt;Programming these chips is fairly easy to learn, but may take a bit of patience to fully understand. Learning to program by sticking your head in a textbook and trying to memorize programs is a very slow and boring way to learn. By far the easiest way to master programming is to have a go, work through a few tutorials and try out some examples. By playing about and trying ideas you'll soon get an understanding of how programs work, and how you can write your own.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-2642127807810761629?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/2642127807810761629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=2642127807810761629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2642127807810761629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/2642127807810761629'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2008/02/robotics-tutorials-for.html' title='Robotics Tutorials for Beginners'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-1241976084754384791</id><published>2007-12-29T06:13:00.000-08:00</published><updated>2008-07-26T08:17:04.054-07:00</updated><title type='text'>ACTUATORS</title><content type='html'>ACTUATORS - AC MOTORS&lt;br /&gt;&lt;br /&gt;      AC Motor AC Motor&lt;br /&gt;&lt;br /&gt;      note: I have never actually used an AC motor, so feel free to correct and verify this information&lt;br /&gt;&lt;br /&gt;      note: this page is a place holder until a better tutorial is written&lt;br /&gt;&lt;br /&gt;      Unlike DC motors which work using a single constant current, AC motors run under 3 phase current. To have 3 phase power on a robot, you either need a big bulky/expensive DC-&gt;AC converter, or you must tether it to a wall socket. You probably won't use AC motors unless your robot is stationary, such as a robot arm or robot pancake maker. Unless you want the pancake maker to also walk your dog or something . . . But here they are anyway:&lt;br /&gt;&lt;br /&gt;      Voltage&lt;br /&gt;    * Polarized (current cannot be reversed)&lt;br /&gt;    * Typically from 120-240V AC, usually to match mains power&lt;br /&gt;    * Higher voltages generally mean more torque, but also require more power&lt;br /&gt;    * Rarely used on mobile robots due to power requirements&lt;br /&gt;    * note: A universal motor has brushes like a DC motor, but will operate on AC or DC&lt;br /&gt;&lt;br /&gt;      Current&lt;br /&gt;    * When buying a motor, consider stall and operating current (max and minimum)&lt;br /&gt;    * Stall Current - The current a motor requires when powered but held so that it does not rotate&lt;br /&gt;    * Operating Current - The current draw when a motor experiences zero resistance torque&lt;br /&gt;    * It is best to determine current curves relating voltage, current, and required torque for optimization&lt;br /&gt;    * When a motor experiences a change in torque (such as motor reversal) expect short lived current spikes&lt;br /&gt;    * Current spikes can be up to 2x the stall current, and can fry control circuitry if unprotected&lt;br /&gt;    * Use diodes to prevent reverse current to your circuitry&lt;br /&gt;    * Check power ratings of your circuitry and use heat sinks if needed&lt;br /&gt;&lt;br /&gt;      Power (Root-Mean Squared Voltage x Current)&lt;br /&gt;    * Running motors close to stall current often, or reversing current often under high torque, can cause motors to melt&lt;br /&gt;    * Heat sink motors if not avoidable&lt;br /&gt;&lt;br /&gt;      Torque&lt;br /&gt;    * When buying a motor, consider stall and operating torque (max and minimum)&lt;br /&gt;    * Stall Torque - The torque a motor requires when powered but held so that it does not rotate&lt;br /&gt;    * Operating Torque - The torque a motor can apply when experiencing zero resistance torque&lt;br /&gt;&lt;br /&gt;      Velocity&lt;br /&gt;    * Motors run most efficient at the highest possible speeds&lt;br /&gt;    * Gearing a motor allows the motor to run fast, yet have a slower output speed with much higher torque&lt;br /&gt;    * Remember that torque determines acceleration, so a fast robot with poor acceleration is really a slow robot&lt;br /&gt;    * If uncertain, favor torque over velocity&lt;br /&gt;&lt;br /&gt;      Efficiency&lt;br /&gt;    * More efficient than DC motors&lt;br /&gt;    * Typically most efficient at rated voltage and frequency&lt;br /&gt;    * Use gearing (opt to buy motors with built-in gearing or gear heads)&lt;br /&gt;&lt;br /&gt;      Control Methods&lt;br /&gt;    * Modifying the AC frequency can alter speed and torque&lt;br /&gt;    * Encoder - device which counts rotations of wheel or motorshaft to determine velocity for a control feedback loop&lt;br /&gt;    * Tachometer - device which measures current draw of motor to control output torque&lt;br /&gt;&lt;br /&gt;      This circuit will allow you to control the speed of an AC motor.&lt;br /&gt;      The bridge rectifier produces DC voltage from the 120VAC line.&lt;br /&gt;      A portion on this current passes through the 10K ohm pot.&lt;br /&gt;      The circuit comprised of the 10k pot rated at 3W+, the two 100 ohm resistors and the 50uf capacitors delivers gate drive of the SCR.&lt;br /&gt;      The diode D1 protects the circuit from reverse voltage spikes.&lt;br /&gt;      The ratings of the bridge rectifier and the SCR should be 25 amps and PIV 600 volts.&lt;br /&gt;      The diode D1 should be rated for 2 amps with PIV of 600 volts.&lt;br /&gt;      The circuit can handle a load up to 10 amps. The SCR should be very well heat sinked.&lt;br /&gt;&lt;br /&gt;      AC Motor Speed Control Schematic&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-1241976084754384791?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/1241976084754384791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=1241976084754384791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1241976084754384791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1241976084754384791'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/12/actuators.html' title='ACTUATORS'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-1656682942639701441</id><published>2007-12-15T02:14:00.000-08:00</published><updated>2007-12-15T02:16:01.639-08:00</updated><title type='text'>BEGINNER TO ROBOTICS</title><content type='html'>&lt;h2 class="date-header"&gt;&lt;br /&gt;&lt;/h2&gt;                      &lt;a name="6695672550256225749"&gt;&lt;/a&gt;            &lt;h3 style="color: rgb(0, 0, 0);" class="post-title entry-title"&gt;                          &lt;a href="http://roboticera.blogspot.com/2006/11/beginner-to-robotics-iii-circuit.html"&gt;&lt;br /&gt;&lt;/a&gt;                      &lt;/h3&gt;                        &lt;p&gt;&lt;a href="http://photos1.blogger.com/x/blogger2/99/4545/1600/213375/DSC02819.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://photos1.blogger.com/x/blogger2/99/4545/400/326457/DSC02819.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;a href="http://photos1.blogger.com/x/blogger2/99/4545/1600/915806/DSC02816.jpg"&gt;&lt;img style="margin: 0px 0px 10px 10px; float: right;" alt="" src="http://photos1.blogger.com/x/blogger2/99/4545/200/203162/DSC02816.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger2/99/4545/1600/567430/circuitary.jpg"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://photos1.blogger.com/x/blogger2/99/4545/200/628528/circuitary.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Hi Guys,&lt;br /&gt;&lt;br /&gt;I hope the funda of C.G location, drives, gears,etc is clear from the past two chapters.&lt;br /&gt;Now lets begin with the 3rd chapter ie. The circuitry of a normal robotic car.&lt;br /&gt;This circuitry will enable the robo to move forward, backward, left and right.&lt;br /&gt;&lt;br /&gt;Now starting with circuitry we need 2 two way switches. These switches conduct in both directions hence the name two way switches.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Firstly we sort the terminals&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;1 and 6 { first switch}&lt;/li&gt;&lt;br /&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;2 and 5 { “ }&lt;/li&gt;&lt;br /&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;1’ and 6’ { second switch}&lt;/li&gt;&lt;br /&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;2’ and 5’ { “ }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then we choose the terminals of first switch ie. 5 as positive or 6 as positive . either way one wants to, can do so.&lt;br /&gt;But one thing has to be kept in mind that if 5 is positive in 1st switch then 5’ should be the + ve terminal of 2nd switch.&lt;br /&gt;The same convention for negative terminal.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;POWER SUPPLY&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;Terminals 3,4 from 1st switch and terminals 3’, 4’ from 2nd switch are the power supply terminals.&lt;br /&gt;In this too we have to use the same convention like the +ve and –ve terminals of either switches.&lt;br /&gt;If we take 3 as +ve than we have to take 3’ as +ve and give this combined combination to the powe supply as +ve.&lt;br /&gt;The same case for negative ie. Combination of 4 and 4’ for negative.&lt;br /&gt;Or the reverse can also be done.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;The terminals 3 and3’ are sorted with the help of wires and similarly we sort the terminals 4 and 4’.&lt;br /&gt;The output single wire from 3 and 3’ combination will be given to + ve of the power supply and the output single wire from the combination of 4 and 4’ will be given to the – ve of the power supply.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Power supply can be an adaptor or an eliminator of 12 volts.&lt;br /&gt;&lt;br /&gt;This is the connection we make in switch. Now how to proceed with combining this connection with motors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: rgb(0, 0, 0);"&gt;&lt;em&gt;MOTOR CONNECTION&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;We will call the top and bottom motors on left hand side the left pair and&lt;br /&gt;The top an bottom motors on right side the right pair&lt;br /&gt;The above picture shows the left pair . similarly we have to connect the right pair.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;LEFT PAIR MOTORS&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;We will bring together the positive of both the top and bottom motor on left hand side and sort them . similarly we will sort the negative of both the motors of the left pair.&lt;br /&gt;&lt;/span&gt;&lt;em style="color: rgb(0, 0, 0);"&gt;RIGHT PAIR MOTORS&lt;/em&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Now as we did in the left pair we will sort the +ve wire of both motors together and sort the –ve of the motors .&lt;br /&gt;&lt;br /&gt;So in all we get 4 output wires from the motor connection .&lt;br /&gt;2 from left pair and 2 from right pair.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong style="color: rgb(0, 0, 0);"&gt;&lt;em&gt;COMBINING THE SWITCH AND MOTOR CIRCUIT&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Now to connect the switch to motors we have to choose four output from the switch connection as we have four output from the motor connection.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;We will consider the terminal 5 and 6 from the first switch and 5’ and 6’ from second switch.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Considering the terminal 5 from first switch positive terminal 5’ will be positive from second switch. Similarly 6 and 6’ are considered as negative.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Now the connection goes this way&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;positive wire combination from left pair motors will be connected to point 5&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;negative wire combination from left pair motors will be connected to point 6&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;positive wire combination from right pair will be connected to point 5’&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;negative wire combination from right pair will be connected to point 6’&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;these connections are made with the help of intermediate wires called the rainbow wires. I suppose…..&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;these are a bunch of thin wires used for internal circuitry.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;If suppose u connect positive wire from left hand pair from motors to red wire then the other end of red wire will be connected to point 5.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Similarly for all connections.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The length of the intermediate wire depends on the user. Normally we take 8 to 9 meters. That will be the range of your robo.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-1656682942639701441?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/1656682942639701441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=1656682942639701441' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1656682942639701441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1656682942639701441'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/12/beginner-to-robotics-iii-circuit-hi.html' title='BEGINNER TO ROBOTICS'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-3812568082826899018</id><published>2007-12-12T05:33:00.000-08:00</published><updated>2008-03-07T08:01:43.553-08:00</updated><title type='text'>Micro Robots</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_aNh_uVW1ahk/R8VmEG_wdLI/AAAAAAAAADo/y_wVsx_P3Pw/s1600-h/micro-flying-robot.thumbnail.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_aNh_uVW1ahk/R8VmEG_wdLI/AAAAAAAAADo/y_wVsx_P3Pw/s320/micro-flying-robot.thumbnail.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5171651967888422066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Swarm robotics&lt;/b&gt; is a new approach to the coordination of multirobot systems which consist of large numbers of relatively simple physical robots. The goal of this approach is to study the design of robots (both their physical body and their controlling behaviors) such that a desired collective behavior emerges from the inter-robot interactions and the interactions of the robots with the environment, inspired but not limited by the emergent behavior observed in social insects, called swarm intelligence. It has been discovered that a set of relatively primitive individual behaviors enhanced with communication will produce a large set of complex swarm behaviors.&lt;br /&gt;&lt;br /&gt;Unlike distributed robotic systems in general, swarm robotics emphasizes a large number of robots, and promotes scalability, for instance, by using only local communication. Local communication is usually achieved by wireless transmission systems, using radio frequency or infrared communication.&lt;br /&gt;Potential application for swarm robotics include tasks that demand for extreme miniaturization (nanorobotics, microbotics), on the one hand, as for instance distributed sensing tasks in micromachinery or the human body. On the other hand, swarm robotics is suited to tasks that demand for extremely cheap designs, for instance a mining task, or an agricultural foraging task. Artists are using swarm robotic techniques to realize new forms of interactive art installation.&lt;br /&gt;Both miniaturization and cost are hard constraints that emphasize simplicity of the individual team member, and thus motivate a swarm-intelligent approach to achieve meaningful behavior on swarm-level.&lt;br /&gt;Further research is needed to find methodologies that allow for designing, and reliably predicting, swarm behavior, given only features of the individual swarm members. Here, video tracking is an essential tool for systematically studying swarm-behavior, even though other tracking methods are available. Recently Bristol robotics laboratory has developed an ultrasonic position tracking system for swarm research purposes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;font size="3"&gt;Swarm intelligence (SI)&lt;/font&gt;&lt;/b&gt;:Swarm intelligence (SI) is artificial intelligence based on the collective behavior of decentralized, self-organized systems. The expression was introduced by Gerardo Beni and Jing Wang in 1989, in the context of cellular robotic systems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SI&lt;/b&gt; systems are typically made up of a population of simple agents interacting locally with one another and with their environment. Although there is no centralized control structure dictating how individual agents should behave, local interactions between such agents lead to the emergence of global behavior. Natural examples of SI include ant colonies, bird flocking, animal herding, bacterial growth, and fish schooling.&lt;br /&gt;In SI systems, the agents follow very simple rules generally out of the need for survial which leads to very complex rules/algorithms at the systems level.&lt;br /&gt;The application of swarm principles to robots is called swarm robotics, while 'swarm intelligence' refers to the more general set of algorithms.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;font size="3"&gt;Example algorithms&lt;/font&gt;&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ant colony optimization:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Ant colony optimization&lt;/u&gt; is a class of optimization algorithms modeled on the actions of an ant colony. Artificial 'ants' - simulation agents - locate optimal solutions by moving through a parameter space representing all possible solutions. Real ants lay down pheromones directing each other to resources while exploring their environment. The simulated 'ants' similarly record their positions and the quality of their solutions, so that in later simulation iterations more ants locate better solutions. One variation on this approach is the bees algorithm, which is more analogous to the foraging patterns of the honey bee.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Particle swarm optimization:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Particle swarm optimization&lt;/u&gt; or PSO is a global optimization algorithm for dealing with problems in which a best solution can be represented as a point or surface in an n-dimensional space. Hypotheses are plotted in this space and seeded with an initial velocity, as well as a communication channel between the particles. Particles then move through the solution space, and are evaluated according to some fitness criterion after each timestep. Over time, particles are accelerated towards those particles within their communication grouping which have better fitness values. The main advantage of such an approach over other global minimization strategies such as simulated annealing is that the large number of members that make up the particle swarm make the technique impressively resilient to the problem of local minima.&lt;br /&gt;Stochastic diffusion search&lt;br /&gt;Stochastic Diffusion Search or SDS is an agent based probabilistic global search and optimization technique best suited to problems where the objective function can be decomposed into multiple independent partial-functions. Each agent maintains a hypothesis which is iteratively tested by evaluating a randomly selected partial objective function parameterised by the agent's current hypothesis. In the standard version of SDS such partial function evaluations are binary resulting in each agent becoming active or inactive. Information on hypotheses is diffused across the population via inter-agent communication. Unlike the stigmergic communication used in ACO, in SDS agents communicate hypotheses via a one-to-one communication strategy analogous to the tandem running procedure observed in some species of ant. A positive feedback mechanism ensures that, over time, a population of agents stabilise around the global-best solution. SDS is both an efficient and robust search and optimisation algorithm, which has been extensively mathematically described.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Applications&lt;/b&gt;&lt;/u&gt;:&lt;br /&gt;&lt;br /&gt;Swarm Intelligence-based techniques can be used in a number of applications. The U.S. military is investigating swarm techniques for controlling unmanned vehicles. ESA is thinking about an orbital swarm for self assembly and interferometry. NASA is investigating the use of swarm technology for planetary mapping. A 1992 paper by M. Anthony Lewis and George &lt;br /&gt;&lt;br /&gt;A. Bekey discusses the possibility of using swarm intelligence to control nanobots within the body for the purpose of killing cancer tumors. Artists are using swarm technology as a means of creating complex interactive systems or simulating crowds. Tim Burton's Batman Returns was the first movie to make use of swarm technology for rendering, realistically depicting the movements of a group of penguins using the Boids system. The Lord of the Rings film trilogy made use of similar technology, known as Massive, during battle scenes. Swarm technology is particularly attractive because it is cheap, robust, and simple.&lt;br /&gt;&lt;br /&gt;The inherent intelligence of swarms has inspired many social and political philosophers, in that the collective movements of an aggregate often derive from independent decision making on the part of a single individual. A common example is how the unaided decision of a person in a crowd to start clapping will often encourage others to follow suit, culminating in widespread applause. Such knowledge, an individualist advocate might argue, should encourage individual decision making (however mundane) as an effective tool in bringing about widespread social change.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-3812568082826899018?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/3812568082826899018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=3812568082826899018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3812568082826899018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3812568082826899018'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/12/cryptography.html' title='Micro Robots'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_aNh_uVW1ahk/R8VmEG_wdLI/AAAAAAAAADo/y_wVsx_P3Pw/s72-c/micro-flying-robot.thumbnail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-9097219560951945260</id><published>2007-11-25T05:29:00.000-08:00</published><updated>2008-03-28T10:08:55.192-07:00</updated><title type='text'>Information On Microcontrollers</title><content type='html'>Here's a list of Few of the many Microcontrollers which can b used in ROBOTICS..more updates will be there soon...&lt;br /&gt;&lt;br /&gt;1)&lt;b&gt;ATMEL AVR MICROCONTROLLER:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Features of &lt;b&gt;ATmega128-16AI Microcontroller&lt;/b&gt; &lt;br /&gt; &lt;br /&gt;• 128KB FLASH &lt;br /&gt;&lt;br /&gt;• 4 KB RAM &lt;br /&gt;&lt;br /&gt;• 4 KB EEPROM &lt;br /&gt;&lt;br /&gt;• 53 I/O pins &lt;br /&gt;&lt;br /&gt;• hardware multiplier &lt;br /&gt;&lt;br /&gt;• Programming Lock for Software Security &lt;br /&gt;&lt;br /&gt;• SPI Interface for In-System Programming &lt;br /&gt;&lt;br /&gt;• Real Time Counter with Separate Oscillator &lt;br /&gt;&lt;br /&gt;• 8-channel, 10-bit ADC:&lt;br /&gt;&lt;br /&gt;- 8 Single-ended Channels&lt;br /&gt;&lt;br /&gt;- 7 Differential Channels&lt;br /&gt;&lt;br /&gt;- 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x &lt;br /&gt;&lt;br /&gt;• Dual Programmable Serial USARTs (2x UART) &lt;br /&gt;&lt;br /&gt;•  Master/Slave SPI Serial Interface &lt;br /&gt;&lt;br /&gt;• 2x 8bit Timer, 2x 16bit Timer &lt;br /&gt;&lt;br /&gt;• 16MHz RISC &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ATmega128 TinyBoard Ver1.1&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ATmega128 Development Board with ATmega128-16AI (16 MHz)&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;• super thin only 34mm x 40mm x 8mm &lt;br /&gt;&lt;br /&gt;• full motherboard for ATmega128 &lt;br /&gt;&lt;br /&gt;• all pins are available on headers (2,54mm-/0,1" pitch), 2x15pins each &lt;br /&gt;&lt;br /&gt;• high computing power  &lt;br /&gt;&lt;br /&gt;• easy to use: just connect to power supply (+5V) and program device &lt;br /&gt;&lt;br /&gt;• separate grounds: analog and digital &lt;br /&gt;&lt;br /&gt;• extra shielded &lt;br /&gt;&lt;br /&gt;• ISP programming pins on right header &lt;br /&gt;  &lt;br /&gt;fully assembled board  includes:&lt;br /&gt;&lt;br /&gt;• ATmega128-16AI (-40 bis +85°C), X1 crystal 16 MHz, X2 crystal 32kHz (for &lt;br /&gt;asynchron timer) &lt;br /&gt;&lt;br /&gt;• header layout, schematics, programming tutorial  &lt;br /&gt; &lt;br /&gt;•  female connectors 2 pieces (2x15 pins) also available &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ATmega128 TinyBoard Ver1.2&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ATmega128 Development Board with ATmega128-16AI (16 MHz) with ISP Header&lt;br /&gt;same dimensions as Vers1.1 but with additional ISP header &lt;br /&gt;&lt;br /&gt;• automatically switches off lines on right header when in programming mode (prohibits "shortages" during programming with the rest of circuitry) &lt;br /&gt;&lt;br /&gt;• led indicates programming mode &lt;br /&gt;&lt;br /&gt;• 100% pin compatible with Ver1.1 &lt;br /&gt;&lt;br /&gt;• super thin only 34mm x 40mm x 8mm &lt;br /&gt;&lt;br /&gt;• full motherboard for ATmega128 &lt;br /&gt;&lt;br /&gt;• all pins are available on headers (2,54mm-/0,1" pitch) 2x15pins each &lt;br /&gt;&lt;br /&gt;• high computing power  &lt;br /&gt;&lt;br /&gt;• easy to use: just connect to power supply (+5V) and program device &lt;br /&gt;&lt;br /&gt;• separate grounds: analog and digital &lt;br /&gt;&lt;br /&gt;• extra shielded&lt;br /&gt;&lt;br /&gt;• fully assembled board  includes: &lt;br /&gt;&lt;br /&gt;• ATmega128-16AI (-40 bis +85°C), X1 crystal 16 MHz, X2 crystal 32kHz (for &lt;br /&gt;asynchron timer) &lt;br /&gt;&lt;br /&gt;• header layout, schematics, programming tutorial  &lt;br /&gt;&lt;br /&gt;• female connectors 2 pieces (2x15 pins) are also available&lt;br /&gt;&lt;br /&gt;2)&lt;b&gt;CYPRESS MICROCONTROLLER:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Features of CY7C68013A USB Microcontroller :&lt;br /&gt;&lt;br /&gt;• Software: 8051 code runs from:&lt;br /&gt;&lt;br /&gt;— Internal RAM, which is downloaded via USB&lt;br /&gt;&lt;br /&gt;— Internal RAM, which is loaded from EEPROM&lt;br /&gt;&lt;br /&gt;— External memory device (128 pin package)&lt;br /&gt;&lt;br /&gt;• 16 KBytes of on-chip Code/Data RAM&lt;br /&gt;&lt;br /&gt;• Four programmable BULK/INTERRUPT/ISOCHRONOUS endpoints&lt;br /&gt;&lt;br /&gt;— Buffering options: double, triple, and quad&lt;br /&gt;&lt;br /&gt;• Additional programmable (BULK/INTERRUPT) 64-byte endpoint&lt;br /&gt;&lt;br /&gt;• 8- or 16-bit external data interface&lt;br /&gt;&lt;br /&gt;• Integrated, industry-standard enhanced 8051&lt;br /&gt;&lt;br /&gt;— 48-MHz, 24-MHz, or 12-MHz CPU operation&lt;br /&gt;&lt;br /&gt;— Four clocks per instruction cycle&lt;br /&gt;&lt;br /&gt;— Two USARTS&lt;br /&gt;&lt;br /&gt;— Three counter/timers&lt;br /&gt;&lt;br /&gt;— Expanded interrupt system&lt;br /&gt;&lt;br /&gt;— Two data pointers&lt;br /&gt;&lt;br /&gt;• 3.3V operation with 5V tolerant inputs&lt;br /&gt;&lt;br /&gt;• GPIF (General Programmable Interface)&lt;br /&gt;&lt;br /&gt;— Allows direct connection to most parallel interface&lt;br /&gt;&lt;br /&gt;— Programmable waveform descriptors and configuration registers to define waveforms&lt;br /&gt;&lt;br /&gt;— Supports multiple Ready (RDY) inputs and Control (CTL) outputs&lt;br /&gt;&lt;br /&gt;• Vectored USB interrupts and GPIF/FIFO interrupts&lt;br /&gt;&lt;br /&gt;• Separate data buffers for the Set-up and Data portions of a CONTROL transfer&lt;br /&gt;&lt;br /&gt;• Integrated I2C controller, runs at 100 or 400 kHz&lt;br /&gt;&lt;br /&gt;• Four integrated FIFOs&lt;br /&gt;&lt;br /&gt;— Integrated glue logic and FIFOs lower system cost&lt;br /&gt;&lt;br /&gt;— Automatic conversion to and from 16-bit buses&lt;br /&gt;&lt;br /&gt;— Master or slave operation&lt;br /&gt;&lt;br /&gt;— Uses external clock or asynchronous strobes&lt;br /&gt;&lt;br /&gt;— Easy interface to ASIC and DSP ICs&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cypress CY7C68013A - 56 Development Board with USB2 HighSpeed MiniUSB&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;• Cypress CY7C68013A-56PVXC - low power Version of CY7C68013-56, full USB2 specified&lt;br /&gt;&lt;br /&gt;• tiny board, board dimesions 3,5cm x 5,1cm&lt;br /&gt;&lt;br /&gt;• USB2 High Speed (480Mbit/s)&lt;br /&gt;&lt;br /&gt;• Mini USB&lt;br /&gt;&lt;br /&gt;• EEPROM onboard&lt;br /&gt;&lt;br /&gt;• onboard voltage regulator (bottom side)&lt;br /&gt;&lt;br /&gt;• GPIF Interface&lt;br /&gt;&lt;br /&gt;• reset push button&lt;br /&gt;&lt;br /&gt;• power led&lt;br /&gt;&lt;br /&gt;• fully assembled board comes with MiniUSB-Cable and schematic&lt;br /&gt;&lt;br /&gt;• female connectors 2x (2x12 pins) also available&lt;br /&gt;FX2 / FX2LP Development Board&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cypress CY7C68013A - 128 Development Board with USB2 HighSpeed&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;• Cypress CY7C68013A-128AXC - low power version of  CY7C68013-128&lt;br /&gt;&lt;br /&gt;• USB2 High Speed (480Mbit/s)&lt;br /&gt;&lt;br /&gt;• EEPROM onboard&lt;br /&gt;&lt;br /&gt;• 2 serial interfaces&lt;br /&gt;&lt;br /&gt;• all pins out, ERNI-header&lt;br /&gt;&lt;br /&gt;• IDE interface&lt;br /&gt;&lt;br /&gt;• ERNI connector&lt;br /&gt;&lt;br /&gt;• memory extention with maximum addressable memory&lt;br /&gt;&lt;br /&gt;- 64 KB external SRAM with 15ns (memory included)&lt;br /&gt;&lt;br /&gt;• 2x I²C PortIO Expander (2x 8 = 16 additional ports)&lt;br /&gt;&lt;br /&gt;• reset push button&lt;br /&gt;&lt;br /&gt;• board dimensions: full Euro PCB (160cm x 100cm)&lt;br /&gt;&lt;br /&gt;• fully assembled board comes with USB-Cable and schematic&lt;br /&gt;&lt;br /&gt;&lt;b&gt;More Updates Soon Please Bear For Mean Time And If Any Specific Request Please A Comment.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-9097219560951945260?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/9097219560951945260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=9097219560951945260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/9097219560951945260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/9097219560951945260'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/please-check-this-out_25.html' title='Information On Microcontrollers'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7858088128435308531</id><published>2007-11-25T05:25:00.001-08:00</published><updated>2008-02-27T05:26:33.454-08:00</updated><title type='text'>Assembling A FLED Solar Engine Tutorials</title><content type='html'>&lt;blockquote&gt;         &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26564/3904_transistor.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        1. Take the 3904 transistor and         using a pair of long nose pliers carefully bend the collector leg         (that's the one on the far right) so that it is perpendicular to the         transistor body as shown in the photograph. Then again using long nose         pliers carefully bend the emitter leg (the one on the far left) first         perpendicular to the base leg (the middle one) but in the same plane and         then back up towards the base leg as shown in the photograph. If you're         not sure about this take a look at step 3 and 4 it might be clearer when         you can see the assembled engine.&lt;/p&gt;       &lt;/blockquote&gt;               &lt;blockquote&gt;         &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26564/3906_transistor.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        2. Take the 3906 transistor and         bend the emitter leg (the one on the far right in the photograph) first         perpendicular to the base leg but in the same plane and then over the         top of the transistor body. Then take the base leg and bend it         perpendicular to the transistor body as shown in the photo.&lt;br /&gt;        &lt;/p&gt;         &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26564/3904_3906_assembled.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        3. Hold one of the transistors         with a pair of long nose pliers so that the base leg of the 3904 is next         to the collector leg of the 3906. The legs should overlap by about 6mm -         8mm. With your other hand pick up your soldering iron (which should be         hot !), clean the tip and then melt a little pool of solder on the tip.         Apply the tip of your iron to the two legs of the transistors to be         joined for a second (no more !). The legs will be heated and the solder         should flow between them easily. Do not overheat (it may damage the         transistors). Continue to hold the transistors together for about two         seconds until the solder has solidified.&lt;br /&gt;       &lt;br /&gt;        &lt;strong&gt;Now wipe the sweat from your brow!&lt;/strong&gt;&lt;/p&gt;       &lt;/blockquote&gt;       &lt;p&gt; &lt;/p&gt;                &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26564/Resistor_added_pic.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        4. Solder the 2.2k resistor         between the collector leg of the 3904 and the base leg of the 3906 as         shown in the photo. This is best done by first 'tacking' both ends of         the resistor to the transistor legs with a small pool of solder on the         iron and then applying additional solder to make a more secure joint,         once the initial 'tack' has solidified. Using a pair of side cutters         trim the excess lead from the resistor.&lt;br /&gt;       &lt;br /&gt;        Almost there !&lt;br /&gt;        &lt;/p&gt;         &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26564/FLED.JPG" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        5. Carefully bend the negative leg         (the shortest one and also the one nearest the 'flat' on the FLED body)         of the FLED at right angles to the positive leg, as shown in the photo.&lt;br /&gt;       &lt;br /&gt;        &lt;/p&gt;         &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26564/FLED_covered.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        6. Slide a piece of heat shrink         tubing over the FLED and using a lighted match shrink the tubing over         the FLED body. Whilst the tubing is still hot pinch the end opposite the         leads to seal the tube, then cut off any excess tubing.&lt;br /&gt;       &lt;br /&gt;        &lt;/p&gt;         &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26564/FLED_added.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        7. Solder the negative lead of the         FLED to the emitter of the 3904 (the one that is bent backwards) and the         positive lead to the base of the 3906 (to which the resistor is also         connected)&lt;br /&gt;       &lt;br /&gt;        &lt;/p&gt;         &lt;img src="http://www.gorobotics.net/images/26564/FLEDSE_finished.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;       &lt;br /&gt;        8. Trim off the excess leads :         FLED negative, FLED positive and 3906 base - as shown in the photo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7858088128435308531?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7858088128435308531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7858088128435308531' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7858088128435308531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7858088128435308531'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/assembling-fled-solar-engine.html' title='Assembling A FLED Solar Engine Tutorials'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-860869139449696038</id><published>2007-11-25T05:25:00.000-08:00</published><updated>2008-07-26T08:13:58.901-07:00</updated><title type='text'>Microcontrollers</title><content type='html'>While people quickly recognised and exploited the computing power of the microprocessor, they also saw another use for them, and that was in control. Designers started putting microprocessors into all sorts of products that had nothing to do with computing, like the fridge or the car door that we have just seen. Here the need was not necessarily for high computational power, or huge quantities of memory, or very high speed. A special category of microprocessor emerged that was intended for control activities, not for crunching big numbers. After a while this type of microprocessor gained an identity of its own, and became called a microcontroller. The microcontroller took over the role of the embedded computer in embedded systems.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SIhUKKdSA4I/AAAAAAAAAQY/GJXvuWGzHbg/s1600-h/untitled.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SIhUKKdSA4I/AAAAAAAAAQY/GJXvuWGzHbg/s320/untitled.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5226519901146055554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So what distinguishes a microcontroller from a microprocessor? Like a microprocessor, a microcontroller needs to be able to compute, although not necessarily with big numbers. But it has other needs as well. Primarily, it must have excellent input/output capability, for example so that it can interface directly with the ins and outs of the fridge or the car door. Because many embedded systems are both size and cost conscious, it must be small, self-contained and low cost. Nor will it sit in the nice controlled environment that a conventional computer might expect. No, the microcontroller may need to put up with the harsh conditions of the industrial or motor car environment, and be able to operate in extremes of temperature.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SIhXtpbsmLI/AAAAAAAAAQw/aXZrwWJ8Uxs/s1600-h/microcontroller_architectur.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SIhXtpbsmLI/AAAAAAAAAQw/aXZrwWJ8Uxs/s320/microcontroller_architectur.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5226523809291212978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; A generic view of a microcontroller is shown in Figure. Essentially, it contains a simple microprocessor core, along with all necessary data and program memory. To this it adds all the peripherals that allow it to do the interfacing it needs to do. These may include digital and analog input and output, or counting and timing elements. Other more sophisticated functions are also available, which you will encounter later&lt;br /&gt;in the book. Like any electronic circuit the microcontroller needs to be powered, and needs a clock signal (which in some controllers is generated internally) to drive the internal logic circuits.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Microcontroller families&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/SIhUKOV_xzI/AAAAAAAAAQg/oAUdggqXaBI/s1600-h/k.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/SIhUKOV_xzI/AAAAAAAAAQg/oAUdggqXaBI/s320/k.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5226519902189242162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are thousands of different microcontroller types in the world today, made by numerous different manufacturers. All reflect in one way or another the block diagram of Figure. A manufacturer builds a microcontroller family around a fixed microprocessor core. Different family members are created by using the same core, combining with it different combinations of peripherals and different memory sizes. &lt;br /&gt;&lt;br /&gt;This is shown symbolically in Figure 1.9. This manufacturer has three microcontroller families, each with its own core. One core might be 8-bit with limited power, another 16-bit and another a sophisticated 32-bit machine. To each core is added different combinations of peripheral and memory size, to make a number of family members. Because the core is fixed for all members of one family, the instruction set is fixed and users have little difficulty in moving from one family member to another.&lt;br /&gt;&lt;br /&gt;While Figure below suggests only a few members of each family, in practice this is not the case; there can be more than 100 microcontrollers in any one family, each one with slightly different capabilities and some targeted at very specific applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Microcontroller packaging and appearance&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/SIhXtfoJc9I/AAAAAAAAAQo/gmTFvCUloBI/s1600-h/_microcontroller_sms.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/SIhXtfoJc9I/AAAAAAAAAQo/gmTFvCUloBI/s320/_microcontroller_sms.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5226523806659081170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Integrated circuits are made in a number of different forms, usually using plastic or ceramic as the packaging material. Interconnection with the outside world is provided by the pins on the package. Where possible microcontrollers should be made as physically small as possible, so it is worth asking: what determines the size? Interestingly, it is not usually the size of the integrated circuit chip itself, in a conventional microcontroller, which determines the overall size. Instead, this is set by the number of interconnection pins provided on the IC and their spacing. It is worth, therefore, pausing to consider what these pins carry in a microcontroller.&lt;br /&gt;&lt;br /&gt; The point has been made that a microcontroller is usually input/output intensive. It is reasonable then to assume that a good number of pins will be used for input/output. Power must also be supplied and an earth connection made. It is reasonable to assume for the sort of systems we will be looking at that the microcontroller has all the&lt;br /&gt;memory it needs on-chip. Therefore, it will not require the huge number of pins that earlier microprocessors needed, simply for connecting external data and address buses. It will, however, be necessary to provide pin interconnection to transfer program information into the memory and possibly provide extra power for the programming process. There is then usually a need to connect a clock signal, a reset and possibly some interrupt inputs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/SIhUKLJcMwI/AAAAAAAAAQQ/ltkZO9JtSzE/s1600-h/s.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_aNh_uVW1ahk/SIhUKLJcMwI/AAAAAAAAAQQ/ltkZO9JtSzE/s320/s.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5226519901331272450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Figure above, which shows a selection of microprocessors and microcontrollers, demonstrates the stunning diversity of package and size that is available. On the far right, the massive (and far from recent) 64-pin Motorola 68000 dwarfs almost everything else. The package is a dual-in-line package (DIP), with its pins arranged in two rows along the longer sides of the IC, the pin spacing being 0.1 inches. &lt;br /&gt;&lt;br /&gt;Because the 68000 depends on external memory, many of its pins are committed to data and address bus functions, which forces the large size. Second from right is the comparatively recent 40-pin PIC 16F877. While this looks similar to the 68000, it actually makes very different use of its pins. With its on-chip program and data memory it has no need for external data or address buses. Its high pin count is now put to good use, allowing a high number of digital input/output and other lines. In the middle is the 52-pin Motorola 68HC705. This is in a square ceramic package, windowed to allow the on-chip EPROM (Erasable Programmable Read-Only Memory) to be erased. The pin spacing here is 0.05 inches, so the overall IC size is considerably more compact than the 68000, even though the pin count is still high. To the left of this is a 28-pin PIC 16C72.&lt;br /&gt;&lt;br /&gt;Again, this has EPROM program memory and thus is also in a ceramic DIP package. On the far left is the tiny 8-pin surface-mounted PIC 12F508 and to the right of this is an 18-pin PIC 16F84A.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-860869139449696038?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/860869139449696038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=860869139449696038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/860869139449696038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/860869139449696038'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/microcontrollers.html' title='Microcontrollers'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aNh_uVW1ahk/SIhUKKdSA4I/AAAAAAAAAQY/GJXvuWGzHbg/s72-c/untitled.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-5562818635483797570</id><published>2007-11-25T05:19:00.000-08:00</published><updated>2007-11-25T05:22:50.825-08:00</updated><title type='text'>Building A BEAM Symet</title><content type='html'>&lt;a href="http://www.gorobotics.net/images/26548/P2270165.jpg"&gt;&lt;img style="width: 195px; height: 186px;" src="http://www.gorobotics.net/images/26548/sm_P2270165.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;             &lt;p&gt;The symet for       some reason always tends to be a three fold rotation symmetrical robot,       but I like to push the envelop a little. The Quaret, hence its name, is a       four fold rotation symmetrical robot. It's very small, very active, and a       lot of fun to watch. So enough chit chat lets find some parts!       &lt;/p&gt;&lt;p&gt; &lt;strong&gt;List of       parts&lt;/strong&gt;&lt;br /&gt;        (most are available at &lt;a href="http://www.digikey.com/"&gt;DigiKey&lt;/a&gt;)&lt;br /&gt;        -1 x cassette tape player motor (or equivalent)&lt;br /&gt;        -1 x Solar panel (i use the Panasonic       sunceram 37x33mm)&lt;br /&gt;        -Coil of heavy gauge wire (copper is good,       but anything will work!)&lt;br /&gt;        -1 x 2.2k resistor&lt;br /&gt;        -1 x CMOS 1381J (The letter denotes the       voltage it is triggered at, try    some higher or lower voltage       ones if you want!)&lt;br /&gt;        -1 x 2N3904 NPN transistor&lt;br /&gt;        -1 x 2N3906 PNP transistor&lt;img src="http://gorobotics.net/mint/?record&amp;amp;key=3638383639393539454269546345626e645431316d&amp;amp;referer=http%3A//www.gorobotics.net/Articles/Robots/Building-a-Maze-Solving-Robot-%11-My-Experiences/&amp;amp;resource=http%3A//www.gorobotics.net/Articles/Robots/Building-A-BEAM-Symet/&amp;amp;resource_title=Robotics%20News%20and%20Robot%20Projects%20-%20Building%20A%20BEAM%20Symet&amp;amp;resource_title_encoded=0&amp;amp;1195996897265" alt="" style="position: absolute; left: -9999px;" onload="this.parentNode.removeChild(this);" /&gt;&lt;br /&gt;        -4 x 1000uF capacitors (these can be       substituted for any rating wanted, just remember, the more capacitance the       longer charge)&lt;br /&gt;        -small diameter heat shrink (for motor       actuator)&lt;br /&gt;        -4 x small washers (you'll see)&lt;br /&gt;        -plenty of electrical tape!       &lt;/p&gt;&lt;p&gt;Now go find those parts!!       &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Now that       you have the parts&lt;/strong&gt;       &lt;/p&gt;&lt;p&gt;So you finally got all of the parts, good! It's a       lot easier to build this bot when you have all those parts lying right in       front of you, trust me!       &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Lets build       our chassis&lt;/strong&gt;       &lt;/p&gt;&lt;p&gt;&lt;img src="http://www.gorobotics.net/images/26548/motorchasis.JPG" border="0" height="167" width="200" /&gt;       &lt;/p&gt;&lt;p&gt;Gather together your tape player motor, your       large value caps, and some heavy gauge wire. To build you chassis you'll       need to glue you caps onto the sides of the motor, just remember we need       to put those caps in a parallel circuit. You should either glue the caps       with all the positive ends facing out, or with all the negative ends       facing out (see illustration).       &lt;/p&gt;&lt;p&gt;Once you have all of those caps on there, you       need to solder the post together (see illustration). The outside post       probably won't reach each other, so get that wire out. Make the wire into       a small ring just big enough to fit around the posts, solder it into the       ring. Then take and solder all those posts onto the ring (see       illustration). The last step is to solder the inner post together, these       should reach each other but if they don't, use the wire again.       &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gorobotics.net/images/26548/P2270166.jpg"&gt;&lt;img src="http://www.gorobotics.net/images/26548/sm_P2270166.jpg" border="0" height="71" width="80" /&gt;&lt;/a&gt;&lt;br /&gt;      (click for bigger pic)&lt;/p&gt;       &lt;p&gt; &lt;strong&gt;On to the       SE&lt;/strong&gt;       &lt;/p&gt;&lt;p&gt;Lets define what exactly a solar engine is       &lt;/p&gt;&lt;p&gt; Solar Engine - a circuit used to drive a       motor which requires several tens of   milliamps, with a solar       panel that produces only a few milliamps.       &lt;/p&gt;&lt;p&gt;See the illustration for the freeformed layout of       the 1381J SE. Pretty simple. If you've been involved with BEAM before,       this circuit should seem quite familiar! Keep in mind when you make this       circuit that you want to have plenty of lead to solder to, but not to much       that its a burden.       &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Combining&lt;/strong&gt;       &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gorobotics.net/images/26548/SEcircuit.JPG"&gt;&lt;img src="http://www.gorobotics.net/images/26548/sm_SEcircuit.JPG" border="0" height="234" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;      (click for bigger pic)       &lt;/p&gt;&lt;p&gt;You have the SE and the chassis lying next to       each other, right? From here on out its a piece of cake. First thing to do       is to solder you positive and negative leads to the rings on the caps,       once you have that take you motor (some motor might have wire leads, some       have solder tabs, use precaution either way, even the best screw up       motors!) and hook it up according to the drawing of the SE, that middle       lead goes to the negative and then you can hook up the other end to the       positive (you can reverse that so the motor positive goes to the middle       lead, but I just happened to draw it that way). Those leads should be       stiff enough to hold up that solar cell, but if they aren't, you can use       glue or anything to hold it down, just make sure it works first!       &lt;/p&gt;&lt;p&gt; &lt;strong&gt;Finishing       touches&lt;/strong&gt;       &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gorobotics.net/images/26548/P2270168.JPG"&gt;&lt;img src="http://www.gorobotics.net/images/26548/sm_P2270168.jpg" border="0" height="80" width="107" /&gt;&lt;/a&gt;&lt;br /&gt;      (click for bigger pic)       &lt;/p&gt;&lt;p&gt;It works, but doesn't move to well, eh? This is       where the heat shrink and washers come in. first off, take some heat       shrink and put it on that motor shaft, chances are that it will slip off       right away. To rectify that put on another layer. From there you can add       as many layers as you see fit, just remember, to get that nice rounded       finish, cut the inner most ones shorter than the outer ones so they shrink       inward to round off the edges. Now your Quaret works, but goes in little       circles. It's time to talk about symet behavior.       &lt;/p&gt;&lt;p&gt;Symets exhibit random behavior depending on their       surroundings and the available light. The key to making a symet       interesting to watch lies in the angle it leans at. If your symet leans at       a 20 degree or more angle, chance are that its hard to tip and it just       makes little circles. If you symet leans at a 18 degree or less angle it       will travel almost in a straight line. If its too small an angle, it will       tip ever trigger. So here's the down low on getting it to travel straight.       The symet should trigger and the edge its leaning on should cause it to       turn, but if you decrease the leaning angle, the motor shaft is more       perpendicular to the ground causing it to torque the symet the opposite       direction of the turn, making it travel straight!       &lt;/p&gt;&lt;p&gt;The washer can be glued to the bottoms of the       caps (see picture) to rectify angle. use hot glue here, this way, if want       to move them to adjust angle, take a heat shrink gun (or equivalent,       a.k.a. something hot) and melt the glue so you can move the washer.       &lt;/p&gt;&lt;p&gt;One more finishing touch is to add electrical       tape around the edges of the solar panel, it help to protect you solar       panel from nicks and cuts. Just remember, A for aesthetics, keep it       pretty!       &lt;/p&gt;&lt;p&gt; &lt;strong&gt;How does it       work?&lt;/strong&gt;       &lt;/p&gt;&lt;p&gt;By now your Quaret should be up and running, work       well? I hope so, cause i was pleased with mine. Now its your turn to       experiment, Symets are so simple you can easily come up with your own       plans. Hope you no longer refer to them as the brainless 'bots, because a       good symet can even display problem solving abilities, as well as brute       strength.&lt;br /&gt;              &lt;/p&gt;&lt;p&gt; KEEP ON BEAMing!!!       &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-5562818635483797570?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/5562818635483797570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=5562818635483797570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5562818635483797570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5562818635483797570'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/building-beam-symet.html' title='Building A BEAM Symet'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7699734428569381207</id><published>2007-11-25T04:52:00.000-08:00</published><updated>2007-11-25T05:00:36.497-08:00</updated><title type='text'>Introduction To BridgeWare</title><content type='html'>&lt;table style="width: 542px; height: 1040px;" id="table1" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td&gt;   &lt;p align="center"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;b&gt;What is bridgeware?&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;Short answer: Bridgeware are components that bridge the gap between    the worlds of computer programming and electronics.    &lt;p&gt;Longer answer:  Bridgeware components translate the signals of external    electronics hardware into a signal a computer can understand. They can    be thought of as a form of adaptor board or signal converter board.    Essentially bridgeware allows computer programmers to interface with    electronics such as sensors and motor controllers right from their    native programming environment. Most bridgeware comes with a software    API which expose particular device functions to the developer. Some    bridgeware has simple common serial interfacing and it's up to a    developer to create their own API/Wrapper. Either way bridgeware allows    programmers to do one important thing; reach out off their computer    screens and allow their code to interact with the real world.&lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;b&gt;Who uses bridgeware?&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;Bridgeware components are used in robotics, home automation, data    collection, RFID, and other similar areas.  Bridgeware is most    often used by educators, students, hobbyists, researchers, small    businesses, and even artists.&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;b&gt;What can I do with bridgeware?&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;The quick answer to that is, just about anything your imagination    can think of. People build robots out of their PCs, automatic dog    feeders, backyard water spraying defense systems, grill temperature    monitoring systems, science experiments, school projects, quick pay RFID    systems for restaurants, and all kinds of other fun projects.&lt;p&gt;Any kind    of bridgeware boils down to one of two main types of actions, sensory    input or control output. Just exactly what you do with these two things    is totally up to you!&lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;   &lt;p align="center"&gt;&lt;img style="width: 325px; height: 38px;" src="http://www.trossenrobotics.com/images/tutorials/BWAllowsSInput.jpg" /&gt;&lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;   &lt;p align="center"&gt;&lt;img style="width: 506px; height: 125px;" src="http://www.trossenrobotics.com/images/tutorials/SensorInput.jpg" /&gt;&lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;   &lt;p align="center"&gt;&lt;img style="width: 342px; height: 37px;" src="http://www.trossenrobotics.com/images/tutorials/BWAllowsSCOutput.jpg" /&gt;&lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;   &lt;p align="center"&gt;&lt;img style="width: 488px; height: 126px;" src="http://www.trossenrobotics.com/images/tutorials/ControlOutput.jpg" /&gt;&lt;/p&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;&lt;b&gt;Where can I see a list of all the types of bridgeware available?&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;   Funny you should ask! It just so happens that we are the largest    retailer of bridgeware. You can browse the catalog to see what kind of bridgeware components are    out there.&lt;br /&gt;&lt;a href="http://www.trossenrobotics.com/store/c/3090-I-O-Boards-Robot-Controllers.aspx"&gt;   I/O Boards &amp;amp; Robot Controllers&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.trossenrobotics.com/store/c/2664-Motor-Controllers.aspx"&gt;   Motor Controllers&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.trossenrobotics.com/store/c/2668-Sensors.aspx"&gt;   Sensors&lt;/a&gt;&lt;br /&gt;Or visit the whole   &lt;a href="http://www.trossenrobotics.com/robot-parts.aspx"&gt;Parts Section&lt;/a&gt;    to see everything&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;To Know More About BridgeWare Check The Link In The Reference Section&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7699734428569381207?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7699734428569381207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7699734428569381207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7699734428569381207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7699734428569381207'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/introduction-to-bridgeware.html' title='Introduction To BridgeWare'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-6826963208021796071</id><published>2007-11-25T04:46:00.000-08:00</published><updated>2007-11-25T04:48:48.405-08:00</updated><title type='text'>Introduction To PC Based Robotics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_aNh_uVW1ahk/R0lu9i2BFcI/AAAAAAAAABE/6XWlNDHgTPs/s1600-h/PICO350.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_aNh_uVW1ahk/R0lu9i2BFcI/AAAAAAAAABE/6XWlNDHgTPs/s320/PICO350.jpg" alt="" id="BLOGGER_PHOTO_ID_5136758853597205954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table id="table2" border="0" width="700"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;      What do we mean by PC based robotics?&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;We use the term PC based robotics in a very general sense. It refers to  robotics that use any type of the wide ranging format of personal computers that  we know today; desktop, laptop, mini, hand held, or a single board computer  (SBC) for example. It can be running any kind of operating system and either be  physically on the robot or used through distributed computing. Some defining  factors are that the computer would have the familiar I/O and communications  associated with modern computers; USB, serial, wireless communications, monitor,  mouse, &amp;amp; keyboard ports.&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;&lt;b&gt;Why is the PC ready now when it wasn't before?&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;There were three main reasons why roboticists  were not adopting the use of computers as a processor platform of choice in the  past:&lt;br /&gt;1) Cost was too high&lt;br /&gt;2) Size was too large&lt;br /&gt;3) No robotics I/O available&lt;br /&gt;&lt;br /&gt;The first two problems, cost and size, have largely been solved. Single board computers (SBCs) are now getting down to the size of credit cards for a few hundred dollars. Size will continue to shrink as technology advances and form factors will also continue to emerge more suited for the needs of robotics. Low cost networking technologies are also now available for using computers which are not physically on a robot.&lt;p&gt;The largest hurdle for roboticists in using a computer as their choice of processor platform was the lack of proper I/O needed for robotics. Common computers don't have analog and digital inputs or motor controller output ports. There are  no A/D converters or places to input encoder signals like there are on more simple microcontrollers. In recent years a new realm of computer peripherals have emerged called &lt;a href="http://www.trossenrobotics.com/tutorials/bridgeware.apsx"&gt;bridgeware&lt;/a&gt; which solve the I/O issue for  roboticists interested in using computers for their projects. Bridgeware  components convert common computer I/O into robotics I/O, you can learn more  about them &lt;a href="http://www.trossenrobotics.com/tutorials/bridgeware.apsx"&gt;here&lt;/a&gt;.     &lt;/p&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;p align="center"&gt;&lt;img src="http://www.trossenrobotics.com/images/tutorials/intro/BenefitsComputer250.jpg" /&gt;&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;&lt;b&gt;What do computers bring to Robotics?&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;&lt;b&gt;A Standard Platform&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;As long as everyone is building robotics on vastly different processors we  will never reach a point where there is transferability of technology in  robotics. Moving to the 32 bit processor with the common I/O of computers allows  roboticists to tap into the standards rich world of computers. This allows both  software and hardware to become more transferable between users which allows for  accelerated advancements.&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;&lt;b&gt;High level Object Oriented languages, IDEs, and GUI&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;Software development on computers is a very mature and feature rich  environment. The languages are powerful, the development environments are robust  with extensive graphical tools, thousands of third party vendors build  supporting tools for dozens of languages. Using a computer as the processor  platform delivers all the powerful tools of computer programming and application  development to the world of robotics development.&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;&lt;b&gt;Tapping into the worlds largest pool of technical talent&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;The entry level bar for robotics currently is set pretty high. A person  needs to be able to work with mechanics, electronics, and programming in order  to build a robot. This poses a problem for the technology advancing since it  reduces the amount of potential technicians that will be in the space. The  electronics barrier is the most constricting of the three. For every electronic  engineer in the world there are thousands of computer programmers. Computer  programming is the most common technical skill in the world. Using computers and  bridgeware in robotics development removes the electronics barrier to entry and  allows robotics as a technology to tap into the massive talent pool of computer  programmers all over the globe. This is something that will propel robotics  forward. &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-6826963208021796071?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/6826963208021796071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=6826963208021796071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6826963208021796071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/6826963208021796071'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/introduction-to-pc-based-robotics.html' title='Introduction To PC Based Robotics'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_aNh_uVW1ahk/R0lu9i2BFcI/AAAAAAAAABE/6XWlNDHgTPs/s72-c/PICO350.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-3602817921916258378</id><published>2007-11-22T05:04:00.000-08:00</published><updated>2007-11-25T05:17:42.600-08:00</updated><title type='text'>Building a FRED Photopopper</title><content type='html'>Fred is my first       'photopopper' style bot. I had designed and built a similar bot before,       but that one had three motors arranged radialy around a central axis. It       didn't work nearly as well as Fred does.&lt;br /&gt;     &lt;br /&gt;      The secret to Fred's success is the modified FLED solar engine circuit. I       tried a FLED circuit, but the low-light performance was abysmal. I needed       to put my 60W reading lamp 10 cm away from the solar panel before it would       fire! This was clearly inadequate, so something had to be done. I tried       putting in extra diodes, extra capacitors, extra resistors, and eventually       settled on the design shown here.&lt;br /&gt;     &lt;br /&gt;      Now Fred will pop away quite happily 40 cm from my desk lamp, which is the       height that it normally sits when I'm reading. He will also pop all day       when indoors, so long as a window is nearby to let in some diffuse       daylight.&lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Specifications:&lt;/strong&gt;&lt;br /&gt;     &lt;br /&gt;      Voltages:&lt;br /&gt;      Switch-on: 2.4 Volts&lt;br /&gt;      Switch-off: 1.4, or 0.7 Volts, depending on what mood Fred is in.&lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Dimensions:&lt;/strong&gt;&lt;br /&gt;      43 (length) x 27 (height) x 38 (width) mm.&lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Solar Cells:&lt;/strong&gt;&lt;br /&gt;      One 33 x 24 mm Panasonic 5 Cell amorphous array (Part # BP-243318).&lt;br /&gt;      Storage Capacitors:&lt;br /&gt;      One NEC 0.033 Farad capacitor, with a 47uF cap in parallel to lower the       internal resistance at switch-on.&lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Motors:&lt;/strong&gt;&lt;br /&gt;      Two namiki pager motors, with extra padding on the shaft, directly resting       on the ground.&lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Electronic components:&lt;/strong&gt;&lt;br /&gt;      2 x BC337 NPN transistors&lt;br /&gt;      2 x BC327-25 PNP transistors&lt;br /&gt;      2 x Red Flashing LED (FLED)&lt;br /&gt;      2 x 3.3 K resistors&lt;br /&gt;      2 x 33 K resistors&lt;br /&gt;      2 x 4.7 uF capacitors&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Performance:&lt;/strong&gt;&lt;br /&gt;      Fred is quite an active bot compared to my other mobile bots. At 11:00 in       the morning sun, he takes two seconds to recharge after a big step, and       one second to recover from a small step. Sometimes he takes big steps,       sometimes he takes small steps. When he takes a big step, the capacitor       discharges all the way to around 0.8 Volts, but when taking a small step       the cap discharges to only 1.5 or so volts.&lt;br /&gt;      This results in interesting behavior. It seems that he takes small steps       when directly facing the sun, and big steps when facing at 90 degrees or       more. If Fred starts out facing into the sun then he will take lots of       quick, little steps of maybe 45 degrees and follow the sun around the sky.&lt;br /&gt;      But if you start with the bot facing away from the sun, or at 90 degrees,       then he will take giant 180 degree strides, alternating sometimes with       little steps to aim more towards the center of the light pool.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Construction and development:&lt;br /&gt;      &lt;/strong&gt;&lt;br /&gt;      I originally breadboarded a single FLED solar engine, and tested the       circuit using this setup. This resulted in the poor performance that many       FLED SE builders have experienced and cursed. I'm the sort of person who       doesn't give up very easily (My friends just call me stubborn!) so I toyed       with the circuit until it reached the stage it is now.&lt;br /&gt;     &lt;br /&gt;      I started by experimenting with the 3.3k resistor. I found that the reason       that many FLED SE's lock up in lower light levels is that the FLED is       being kept high by this resistor. Current is going through the motor,       through this resistor, feeding the FLED, but every time the FLED fires, it       discharges a little bit from the storage cap. If the light level isn't       sufficient to replace the charge lost each time the FLED fires, then you       reach an equilibrium point where the SE appears to 'lock up'. I tried       adding a diode in series with this resistor, but that didn't solve any       problems - in fact it created some more! The SE would lock up at 0.6 volts       instead of the more usual 2.2 V!&lt;br /&gt;     &lt;br /&gt;      By this stage I was thinking about making the popper phototropic as well.       I added a phototransistor to the anode of each FLED. This raised the       switch-on level, but made the bot nicely follow the light.&lt;br /&gt;     &lt;br /&gt;      I then thought about putting a capacitor in series with the FLED. My       reasoning being that since the FLED only has to trigger the two       transistors, not actually hold the base down, then you only need a little       spike, not a long on-time. This proved to be the key to good performance.       Of course, I also needed another resistor to discharge the 4.7 uF cap in       between FLED flashes. I found that the best place to put this was on the       motor terminal, instead of the base of the PNP transistor. The reason for       this is that the motor terminal swings a lot more than the base of the PNP       (2.2 V as opposed to 0.7 V), so it helped to 'latch' the circuit more       easily.&lt;br /&gt;     &lt;br /&gt;      My problem now was that the damn phototransistors were affecting the       switch-on level too much. I wanted the bot to have a lower switch-on level       in low light (because the solar panel won't produce as much voltage) but       when I wired the PTs in that configuration, the switch on level would       shoot up to 2.9 volts! This was way too high for me, so I decided that       since no-one was looking, I would dispense with the PTs altogether and see       how much the FLEDs were affected by changes in ambient light. To my       delight, Fred saw the light and turned towards it! The changes in ambient       light were enough to change the characteristics of the FLEDs, and make       Fred choose the brighter side over the duller side when ready to fire a       motor.&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Tuning:&lt;br /&gt;      &lt;/strong&gt;&lt;br /&gt;      If you have a look at the &lt;a href="http://www.gorobotics.net/fred.shtml"&gt;schematic&lt;/a&gt; for Fred, you       will notice that there is no way to 'tune' the circuit if one side of your       photopopper is more likely to turn on than the other in equal light.&lt;br /&gt;      Bad luck.&lt;br /&gt;     &lt;br /&gt;      The way I tuned Fred is that I selected two FLEDs that were as equal as I       could find, in the selection that I had. The FLEDs are the most critical       part of tuning. Get them right, and the rest just takes care of itself. So       how do you choose two FLEDs that are about equal? Simple.&lt;br /&gt;      All you need is a solar panel (or a power supply with a 2.2k resistor in       series), and a reasonably large storage capacitor. Put the solar panel,       the cap, and two FLEDs in parallel, + to +, - to -. Short out the cap, and       wait for it to charge up. The FLEDs should come on at around the same       time, and should flash with equal brightness as the storage cap charges       up. Go through your selection of FLEDs to find two that are as similar as       you can find.&lt;br /&gt;     &lt;br /&gt;      A better way to do it is with a multimeter. Put the meter on resistance       measurement, put the FLED in a dark environment, and measure the       resistance. Do this for all your FLEDs. I was amazed at how much variation       there is in a batch of the same FLEDs: I had measurements from 0.5       MegaOhms to 8 MegaOhms. FLEDs within 95% of each other should work fine.       Putting a 0.5M and a 8M FLED into the one popper will give a very lopsided       outlook on life.&lt;br /&gt;     &lt;br /&gt;      Measure the resistance twice to see how much your test setup has changed       between measurements. This will give you an idea of how sensitive these       components are.&lt;br /&gt;      Of course be careful not to let your fingers touch both leads at once!       This will distort your measurement a lot.&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;       Here you can see all the parts that you need to get going:       &lt;/p&gt;&lt;p&gt; &lt;/p&gt;       &lt;p&gt;&lt;img src="http://www.gorobotics.net/images/26389/5.jpg" border="0" /&gt;&lt;/p&gt;       &lt;p&gt; &lt;/p&gt;       Here's a parts list to get you started:       (from left to right, back row first)&lt;br /&gt; &lt;p align="left"&gt;       1 x 3300 uF capacitor &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      2 x fuse clips - Hardware store&lt;br /&gt;      2 x 0.22 uF tantalum capacitors &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      2 x BC327-25 PNP transistors (2N3906 can be substituted)       &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      2 x BC337 NPN transistors (2N3904 can be used instead)       &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      2 x pager or similar motors- &lt;a href="http://www.solarbotics.com/"&gt;Solarbotics&lt;/a&gt;,       &lt;a href="http://www.mpja.com/"&gt;MPJA&lt;/a&gt;, &lt;a href="http://www.bgmicro.com/"&gt;Big       Micro&lt;/a&gt;&lt;br /&gt;      2 x 33k resistor (orange orange orange, &lt;strong&gt;or&lt;/strong&gt; orange       orange black red) &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      2 x 3.3k resistor (orange orange red, &lt;strong&gt;or&lt;/strong&gt; orange       orange black brown) &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      2 x red FLED (Flashing LED) &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      1 piece of 3mm heatshrink &lt;a href="http://www.digikey.com/"&gt;- DigiKey&lt;/a&gt;&lt;br /&gt;      1 paper clip&lt;br /&gt;      1 solar panel (at least 2.4 volts) - &lt;a href="http://www.solarbotics.com/"&gt;Solarbotics&lt;/a&gt;,       &lt;a href="http://www.adaptobotics.com/"&gt;Adaptobotics&lt;/a&gt;&lt;br /&gt; &lt;/p&gt;  &lt;p align="left"&gt;        The storage capacitor here is 3300 uF. You can try any value up       to 0.047 F, but 2200 - 3300 uF will work the best.&lt;br /&gt;&lt;br /&gt;             ? And here's a schematic to refer to later on:        &lt;img src="http://www.gorobotics.net/images/26389/schematic3.gif" border="0" /&gt;          &lt;/p&gt;   To start with, you should breadboard the entire circuit.   &lt;img src="http://www.gorobotics.net/images/26389/1.jpg" border="0" height="282" width="422" /&gt;&lt;br /&gt;&lt;br /&gt; If you don't have a solar panel, then you can replace it with a battery (more   than 3 volts) and a 2.2 k resistor in series with the battery. Hooking a battery   up directly will probably damage your transistors, so remember to use at least a   470 Ohm resistor when using batteries.&lt;br /&gt;&lt;br /&gt; To find two matched FLEDs, you will need a multimeter. Put the meter on   resistance measurement, put the FLED in a dark environment, and measure the   resistance. Do this for all your FLEDs. I was amazed at how much variation there   is in a batch of the same FLEDs: I had measurements from 0.5 MegaOhms to 8   MegaOhms. FLEDs within 95% of each other should work fine. Putting a 0.5M and a   8M FLED into the one popper will give a very lopsided outlook on   life.&lt;br /&gt;Measure the resistance twice to see how much your test setup has   changed between measurements. This will give you an idea of how sensitive these   components are.&lt;br /&gt;Of course be careful not to let your fingers touch both leads   at once! This will distort your measurement a lot. If you absolutely can't find   two FLEDs that are similar, then you will need to use the schematic at the   bottom of this page to balance your FRED and stop him going in circles.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Testing:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Put some light on the solar panel, and watch the motors.   If one of them fires then well done! The most common mistake here is to not let   the motor leads make good contact with the holes. This will result in a cap   voltage that will sit at about 0.7 volts. Put some extra solder on the motor   leads or solder them to some normal hookup wire to sove this problem.&lt;br /&gt;&lt;br /&gt; You should be able to make a particular motor fire by covering that FLED with   your finger. This will put that side into darkness, so that side should fire. If   you can make both sides fire like this then congratulations! Go on the   construction.&lt;br /&gt;&lt;br /&gt; If only one side fires, then take the FLED out for that side. Then debug the   side that isn't firing. If your other side now fires then your FLEDs are   mismatched and you either need to find some better matched FLEDs or use the   schematic at the bottom of this tutorial.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Construction:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;        Lets start with some mechanics.   While your soldering iron is heating up, grab a pair of pliers and the   paperclip.&lt;br /&gt;&lt;br /&gt; You need to cut both the inside and the outside loops of the paperclip at the   point where the inner loop bends. This will give you aroundd rectangle, the size   of which is dictated by the size of your paperclip.&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/26389/6.jpg" border="0" height="74" width="146" /&gt;&lt;br /&gt;&lt;br /&gt; By the time you've gotten that puzzled out your soldering iron should be well   and truly hot. Tin (put solder on) the top of both fuse clips and the outer   bends of the paper clip. Make sure that you heat all metal pieces up till they   are very hot - and don't have the motors in the fuse clips when you do this!   Attach the fuse clips to a fuse or something that doesn't mind heat. The solder   should flow on easily, and shouldn't be able to be picked off later with a   file.&lt;br /&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26389/2.jpg" border="0" height="231" width="352" /&gt;      &lt;br /&gt;&lt;br /&gt;Don't leave the motors in the fuse clips for the next step. Use a       couple of old fuses or pencils or something, but don't use motors. You now       need to put the paper clip on top of the solder blobs, and attach both       fuse clips to the paperclip. This is harder than it sounds. Remember to       orient the fuse clips at 45 degrees to the paperclip (so they are at 90       degrees to each other) and get the little tab on the fuse clip around the       right way so that your motors will actually fit in the way they are       intended (pointing away from each other, not towards each other).&lt;br /&gt;&lt;br /&gt;      This is what it should look like when you're done:&lt;br /&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26389/7.jpg" border="0" /&gt;      &lt;br /&gt;&lt;br /&gt;(Note the amount of solder I used. This isn't due to mechanical       ineptitude... at least that's my excuse and I'm sticking to it!)&lt;br /&gt;&lt;br /&gt;      Now wait until it's all cooled down and stick your motors in. Check       that the angles are vaguely symmetrical. If not, start again :-)&lt;br /&gt;&lt;br /&gt;      Now attach the negative lead of the capacitor to the center of the top       rail of the paperclip. The paperclip should be on the opposite side of the       motors to the capacitor. Bend the capacitor lead around the paperclip, and       belt it with some heat and solder. Make sure that the positive lead       doesn't touch the bottom rail of the paperclip. You are going to stick the       solar panel on top of the cap and motors, so make sure that they create a       flat surface to anchor the solar panel to.&lt;br /&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26389/8.jpg" border="0" /&gt;       &lt;br /&gt;&lt;br /&gt;      Now it's time to start on the hard part: the electronics.&lt;br /&gt;&lt;br /&gt;   Firstly note the differences between BCxx type and 2N39xx type. This tutorial is aimed at using BC   style transistors. If you're using 2N39xx transistors then the pinouts are different, so you'll have to   be very aware of how your transistors should go in.&lt;br /&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26389/TRANS.GIF" border="0" /&gt;       &lt;br /&gt;&lt;br /&gt;Put the BC327's into the body of the FRED, next to the capacitor, and connect up the emitters:&lt;br /&gt;&lt;br /&gt;   &lt;img src="http://www.gorobotics.net/images/26389/CONST1.GIF" border="0" /&gt;       &lt;img src="http://www.gorobotics.net/images/26389/9.jpg" border="0" /&gt;   &lt;br /&gt;&lt;br /&gt;      Now put the BC337's into the FRED, connecting up their emitters as well:  &lt;br /&gt;&lt;br /&gt;       &lt;img src="http://www.gorobotics.net/images/26389/fredconst2.gif" border="0" /&gt;&lt;img src="http://www.gorobotics.net/images/26389/11.jpg" border="0" /&gt;      &lt;br /&gt;&lt;br /&gt;       &lt;strong&gt;If you are using 2N39xx transistors, then these diagrams are incorrect. Flip these diagrams horizontally, and they will be right.&lt;/strong&gt;  &lt;br /&gt;&lt;br /&gt; &lt;strong&gt;*** Important ***&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Check&lt;/strong&gt;, &lt;strong&gt;check&lt;/strong&gt; and &lt;strong&gt;recheck&lt;/strong&gt; all the transistor connections. Go back to the transistor pinout diagram and the schematic,   and make sure that all the right pins are connected to the right places. It's easier to do it now than later, trust me.&lt;br /&gt;&lt;br /&gt; If you don't do it &lt;strong&gt;now&lt;/strong&gt;, you &lt;strong&gt;will&lt;/strong&gt; be doing it later.&lt;br /&gt;&lt;br /&gt; Now connect the base of the BC337 to the collector of the BC327:  Note: Thanks to the eagle-eyed Joel Hirtle for picking up the mistake that was in the last sentence!  &lt;br /&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26389/fredconst3.gif" border="0" /&gt;  &lt;br /&gt;&lt;br /&gt;       You will now need to put the 3.3k resistors in, connected between the collector of the BC337, and the base of the BC327:    &lt;br /&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26389/fredconst4.gif" border="0" /&gt;  &lt;br /&gt;&lt;br /&gt;        Here's what it will actually look like from above:&lt;br /&gt;&lt;br /&gt;   &lt;img src="http://www.gorobotics.net/images/26389/fredconst5.gif" border="0" /&gt;&lt;img src="http://www.gorobotics.net/images/26389/12.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;       Now lay the 33k resistors to the side of the 3.3k resistors and connect one end of the 33k to the back end of the 3.3k:   &lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/26389/fredconst6.gif" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;  Now connect your 0.22 µF capacitor between the forward ends of both the resistors:&lt;br /&gt;&lt;br /&gt;       &lt;img src="http://www.gorobotics.net/images/26389/fredconst7.gif" border="0" /&gt;&lt;img src="http://www.gorobotics.net/images/26389/13.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;       You now need to attach your FLEDs to the robot. Bend the FLEDs in the angle   shown here: (the negative side of the FLED is at the top of this picture)  &lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/26389/15.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt; The negative lead of the FLED should now be attached to the blob of solder on   the top of the robot that conects the negative lead of the capacitor to the   paperclip.&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/26389/16.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;  The positive lead of the FLED is attached to the 33k resistor and 0.22 µF   capacitor:&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/26389/fredconst8.gif" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;  All that remains now is to attach the motor leads and the solar panel.  To check the motor lead polarity, grab a 1.5 V battery, and connect it up to   a motor. Figure out which way around gives you a forward kick. Do this for the   other side as well. (one batch of pager motors went different ways - the only   way to know is to do this check).  Now, attach the lead of the motor that you had attached to the positive   terminal of the AA to the positive lead on the capacitor. Attach the other lead   of the motor to the back end of the 3.3k resistor on the side that the motor   lives on.&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/26389/17.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;  This shot isn't that clear, but you should be able to see the orange leads   from the motors here. The black leads seem to be lost in the ether...  Now for the final connections: the solar panel.  Connect the positive lead of the solar panel to the positive lead on the   capacitor, and the negative lead to the paperclip:&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/26389/18.jpg" border="0" /&gt;  &lt;br /&gt;&lt;br /&gt; Now for the acid test: Hold your creation up to a light globe or the sun. If   the motors fire, then well done! If not, then check all your connections again.   This circuit is a bit chaotic in nature - if the 'dark' motor doesn't fire the   first time around then it might fire the second time around. Don't give up hope   the first time the 'wrong' motor fires.   Remember: your circuit worked on the breadboard, so it should work when   freeformed. You &lt;strong&gt;did&lt;/strong&gt; breadboard it, didn't you?&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/26389/19.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt; If you are having trouble getting your FRED engine to fire well, put a 1 uF   cap across the motor terminals. This is a bit counterintuitive but for some   reason this makes the motors turn on harder. Thanks to Kyle Simmons for this   tip!&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/26389/FRED1_3.GIF" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;   For the more adventurous, here's the schemtic of the complete FRED popper,   complete with touch sensors, and a balance pot to make sure that your little   FRED goes in a straight line. The bits in red are there to balance out any   differences in the FLEDs, and the blue parts are there so that you can add   tactile sensors to your creation.  Good luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-3602817921916258378?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/3602817921916258378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=3602817921916258378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3602817921916258378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/3602817921916258378'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/please-check-this-out.html' title='Building a FRED Photopopper'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-1939450869211640658</id><published>2007-11-22T04:47:00.000-08:00</published><updated>2007-11-25T05:47:43.117-08:00</updated><title type='text'>How to Build A BEAM Trimet</title><content type='html'>&lt;p align="left"&gt;&lt;strong&gt;Tools and equipment       required:&lt;br /&gt;      &lt;/strong&gt;&lt;br /&gt;      - &lt;strong&gt;Soldering iron (about 18W with       a fine bit) and solder&lt;br /&gt;      &lt;/strong&gt;- &lt;strong&gt;Safety       glasses (wear them at all times)&lt;br /&gt;      &lt;/strong&gt;- &lt;strong&gt;Long       nose pliers&lt;br /&gt;      &lt;/strong&gt;- &lt;strong&gt;Side       cutters&lt;br /&gt;      &lt;/strong&gt;- &lt;strong&gt;Wire       strippers (optional)&lt;br /&gt;      &lt;/strong&gt;- &lt;strong&gt;Hot       glue gun and glue sticks (or an epoxy)&lt;br /&gt;      &lt;/strong&gt;-&lt;strong&gt;       3 large capacitors (e.g 4700 µf)&lt;br /&gt;      &lt;/strong&gt;-&lt;strong&gt;       1 efficient motor (e.g. portable CD player, Walkman, etc. motor)&lt;br /&gt;      &lt;/strong&gt;-&lt;strong&gt;       FLED Solar Engine&lt;/strong&gt;&lt;br /&gt;      &lt;/p&gt;       &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26566/totaltrimet_one.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      1. Attach the three capacitors to       the motor body using a hot glue gun (you can use epoxy-resin but it's       easier with hot glue). Apply the glue to the lighter colored stripe on the       capacitor body (this stripe identifies the negative lead). Align the       capacitors vertically so that the bottom of each capacitor is       approximately 4 mm below the bottom face of the motor.&lt;br /&gt;      &lt;/p&gt;      &lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26566/totaltrimet_three.jpg" align="left" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;             &lt;p align="left"&gt;&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;      2. Bend the three negative       leads together and solder them as shown in the photograph.&lt;/p&gt;       &lt;p align="left"&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26566/totaltrimet_four.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      3. &lt;a href="http://www.gorobotics.net/fled.shtml"&gt;Construct       a FLED solarengine.&lt;/a&gt;&lt;/p&gt;                &lt;blockquote&gt;       &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26566/totalTrimet_five.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      4. With the two transistors resting       on the tops of the front two capacitors solder the emitter leg of the 3904       to a negative capacitor lead and the emitter leg of the 3906 to a positive       capacitor lead (the 3906 is a PNP transistor).&lt;/p&gt;     &lt;/blockquote&gt;     &lt;blockquote&gt;       &lt;p align="left"&gt;&lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26566/totalTrimet_six.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      5. Now solder the black (negative)       motor lead to the protruding collector leg of the 3904 transistor (to       which the resistor is attached) and the red (positive) motor lead to any       one of the positive capacitor leads.&lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Congratulations you're almost       there !&lt;/strong&gt;&lt;/p&gt;     &lt;/blockquote&gt;     &lt;p align="center"&gt; &lt;/p&gt;     &lt;blockquote&gt;       &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26566/totalTrimet_seven.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      6. From the two brass coated paper       clips supplied construct a ring with a diameter of approximately 85mm -       90mm. Bend the clips with a pair of long nose pliers (wear safety glasses       when you're doing this) and also trim to length with the pliers. Solder       together the ends of the wire to form the ring.&lt;br /&gt;      &lt;/p&gt;       &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26566/totalTrimet_eight.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      7. Attach the ring to your Trimet       using the positive leads of the three capacitors. Form a hook with the       leads to secure the ring prior to soldering. You will probably need to       extend the lead of the front right capacitor (see photograph) - use a       piece of the brass coated paper clip that you trimmed off in the previous       operation.&lt;br /&gt;     &lt;br /&gt;      We've got the traction, the fuel tanks, the engine and the sensor now all       we need to add is the fuel converter and the drive wheel.&lt;/p&gt;     &lt;/blockquote&gt;    &lt;br /&gt;    &lt;blockquote&gt;       &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26566/totalTrimet_nine.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      8. Solder two short (30mm long)       pieces of the PVC coated multi-strand wire to the solarcell. Solder the       red lead to the positive pad and the black lead to the negative. Take care       when doing this - do not over heat the tinned pads on the solarcell. These       are easy to solder because there is already a generous amount of solder on       the pads. Solder the red lead so that it runs parallel to the 'Panasonic'       text on the cell and the black lead so that it runs perpendicular to the       'Panasonic' text as shown in the photograph.&lt;/p&gt;     &lt;/blockquote&gt;           &lt;blockquote&gt;       &lt;p align="left"&gt;&lt;img src="http://www.gorobotics.net/images/26566/totalTrimet_ten.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      9. Solder the leads attached to the       solarcell to the capacitor leads - red lead to a positive capacitor lead       (any of those attached to the sensor ring) and black lead to a negative       capacitor lead (the lead nearest the light stripe on the capacitor).       Secure the solarcell to the body using a little hot glue (or a little       epoxy-resin). Do not allow the solarcell pads to touch any of the       component leads.&lt;/p&gt;     &lt;/blockquote&gt;           &lt;br /&gt;      &lt;img src="http://www.gorobotics.net/images/26566/totalTrimet_eleven.jpg" align="middle" border="1" height="200" hspace="10" width="250" /&gt;&lt;br /&gt;     &lt;br /&gt;      10. Cut a short section of hot glue       stick (about 6mm - 7mm long) with a pair of scissors or a craft knife       (take care!), melt a small hole in one end of the piece of glue stick (not       in your finger - it hurts!) and push the 'wheel' onto the motor shaft.       Position the 'wheel' so that there is between 5mm - 7mm from the bottom of       the 'wheel' to the bottom of the capacitors. This will allow the Trimet to       lean over onto two of the capacitors at the appropriate angle. You can       adjust this dimension later to produce the optimum performance. Ideally       you want the Trimet to skid along in a straight line - have you seen the       James Bond film where he drives a car on two wheels down a narrow alley -       like that!&lt;br /&gt;     &lt;br /&gt;      &lt;strong&gt;Oh and by the way you've       finished.&lt;/strong&gt;&lt;br /&gt;     &lt;br /&gt;      Place your Trimet (wheel down) on a smooth surface (plastic table top,       piece of polished timber, etc) in sunlight (doesn't have to be full sun)       and wait for her / him to trigger (every 3 - 5 seconds in full sun). In       the absence of daylight you can also use a halogen lamp or an ordinary       bulb (although it will take longer to trigger).&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-1939450869211640658?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/1939450869211640658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=1939450869211640658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1939450869211640658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1939450869211640658'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/how-to-build-beam-trimet.html' title='How to Build A BEAM Trimet'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-1044530714933605480</id><published>2007-11-22T03:02:00.000-08:00</published><updated>2008-02-03T21:42:51.184-08:00</updated><title type='text'>A Simple Antweight R/C combat robot-for Intermediate Level</title><content type='html'>&lt;h3 class="post-title entry-title"&gt;                          &lt;a href="http://prince1893.blogspot.com/2007/06/simple-antweight-rc-combat-robot-for.html"&gt;&lt;br /&gt;&lt;/a&gt;                      &lt;/h3&gt;                        &lt;p&gt;&lt;span style="font-weight: bold;"&gt;INTRODUCTION:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this guide u will see how to make a simple ant weight R/C combat robot using a Sabertooth 2X5 R/C. The 'bot doesn't necessarily have to be used in combat - it is a pretty fun toy to drive around the office too! . The Sabertooth 2X5 R/C will be used to interpret signals from a radio control system, and vary the motor speed so you can drive the robot around. The project requires basic knowledge of electronics (Volts, amps, battery polarity and wiring) and intermediate soldering skills.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Parts list:&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Sabertooth 2X5 R/C motor driver&lt;br /&gt;Motors,wheels,and chasis&lt;br /&gt;Hobby radio control transmitter and receiver&lt;br /&gt;Batters(atleast 6V)&lt;br /&gt;Ceramic capacitors&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Misc wire and soldering tools&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;Overview&lt;/strong&gt; &lt;/p&gt;&lt;p align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tl8ZilX6rWQ/Rm62cPNUFHI/AAAAAAAAAF0/1MFlOslfZMk/s1600-h/1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_tl8ZilX6rWQ/Rm62cPNUFHI/AAAAAAAAAF0/1MFlOslfZMk/s320/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5075194426328093810" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;As you can see, power will go from the battery in to the Sabertooth motor driver. The Sabertooth has an internal 5V regulator that it will use to power the receiver. The receiver will pick up your control info i.e. the direction you want to drive in, and it will signal that information back to the Sabertooth. The Sabertooth will then process this information, and vary the voltage and direction going to the motors. We will wire the 2 motors in parallel on each side so they will appear as one motor to the Sabertooth.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The chassis&lt;br /&gt;&lt;/strong&gt;One of the most time consuming things in building robots is constructing the chassis. If you do not have metalworking machinery available to you, you might want to check out Inertia lab's website . It will allow you to start work on your robot right away without having to deal with metal shavings embedded in your eyes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tl8ZilX6rWQ/Rm6xKvNUE9I/AAAAAAAAAEk/MUC_UUYB8Xk/s1600-h/1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 262px; height: 165px;" src="http://bp2.blogger.com/_tl8ZilX6rWQ/Rm6xKvNUE9I/AAAAAAAAAEk/MUC_UUYB8Xk/s320/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5075188628122244050" border="0" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;TO KNOW ABOUT THE  &lt;span style="font-weight: bold;"&gt;BATTERY , &lt;/span&gt;&lt;strong&gt;SETTING OF THE MOTOR ,&lt;/strong&gt;&lt;span style="font-weight: bold;"&gt;RADIO AND RECEIVER&lt;/span&gt; PLEASE COPY AND PASTE THE LINK OF THE SITE MENTIONED BELOW&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;http://www.dimensionengineering.com/appnotes/simple_robot/simple_robot.htm&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-1044530714933605480?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/1044530714933605480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=1044530714933605480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1044530714933605480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/1044530714933605480'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/simple-antweight-rc-combat-robot-for.html' title='A Simple Antweight R/C combat robot-for Intermediate Level'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_tl8ZilX6rWQ/Rm62cPNUFHI/AAAAAAAAAF0/1MFlOslfZMk/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-456679575726349332</id><published>2007-11-22T03:01:00.000-08:00</published><updated>2007-11-22T03:02:12.857-08:00</updated><title type='text'>Introduction To Micro controller</title><content type='html'>&lt;h3 class="post-title entry-title"&gt;                          &lt;a href="http://prince1893.blogspot.com/2007/06/information-on-micro-controller.html"&gt;&lt;br /&gt;&lt;/a&gt;                      &lt;/h3&gt;                        &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tl8ZilX6rWQ/Rm5ySPNUE7I/AAAAAAAAAEU/zchWnXMt2wU/s1600-h/1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_tl8ZilX6rWQ/Rm5ySPNUE7I/AAAAAAAAAEU/zchWnXMt2wU/s320/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5075119487738713010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The integrated circuit from an Intel 8742, an 8-bit microcontroller that includes a C.P.U. running at 12 MHz, 128 bytes of RAM, 2048 bytes of EPROM, and I/O in the same chip.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A &lt;b&gt;Micro controller&lt;/b&gt; (or)&lt;b&gt;M.C.U.&lt;/b&gt; is a computer on a chip . It is a type of Microprocessor emphasizing self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor (the kind used in a &lt;span style="font-weight: bold;"&gt;PC&lt;/span&gt;). The only difference being in a microcontroller and a microprocessor is that a microprocessor has three parts - ALU, Control Unit and registers(like memory), but the microcontroller has additional elements like ROM, RAM etc.&lt;br /&gt;&lt;span class="mw-headline"&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-size: 130%;"&gt;Programming Environments&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;Originally, micro controllers were only programmed in &lt;span style="font-weight: bold;"&gt;Assembly language&lt;/span&gt;, or later in &lt;span style="font-weight: bold;"&gt;C&lt;/span&gt; code. Recent micro controllers integrated with on-chip debug circuitry accessed by &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; In-circuit Emulator via &lt;span style="font-weight: bold;"&gt;JTAG&lt;/span&gt; enables a programmer to &lt;span style="font-weight: bold;"&gt;debug&lt;/span&gt; the software of an embedded system with a &lt;span style="font-weight: bold;"&gt;debugger&lt;/span&gt; &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;.&lt;/p&gt; &lt;p&gt;Some micro controllers have begun to include a built-in &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;High Level Programming Language Interpreter&lt;/span&gt; for greater ease of use. The &lt;span style="font-weight: bold;"&gt;Inter 8052&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Zilog Z8&lt;/span&gt; were available with &lt;span style="font-weight: bold;"&gt;BASIC &lt;/span&gt;very early on, and BASIC is more recently used in the popular&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; BASIC STAMPS MCUs.&lt;/p&gt; &lt;p&gt;Some micro controllers such as Analog Device's &lt;span style="font-weight: bold;"&gt;Blackfin&lt;/span&gt; processors can be programmed using  &lt;span style="text-decoration: underline; font-weight: bold;"&gt;LabVIEW&lt;/span&gt;, which is a high level programming language.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-456679575726349332?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/456679575726349332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=456679575726349332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/456679575726349332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/456679575726349332'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/introduction-to-micro-controller.html' title='Introduction To Micro controller'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_tl8ZilX6rWQ/Rm5ySPNUE7I/AAAAAAAAAEU/zchWnXMt2wU/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-5064396867078278898</id><published>2007-11-22T02:59:00.000-08:00</published><updated>2008-02-27T05:22:27.639-08:00</updated><title type='text'>A Simple Beetle Bot For Begineers</title><content type='html'>It's great for beginners and easy to do.&lt;br /&gt;&lt;br /&gt;  This is the Beetle Robot v. 3 you are going to build:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/34c55000.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;Before starting, I suggest you to read the complete tutorials. This will greatly lower the chances of you making a mistake.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;&lt;br /&gt;Tools Needed: &lt;/strong&gt; &lt;ul&gt;&lt;li&gt;soldering iron  ( &lt;a href="http://www.aaroncake.net/electronics/solder.htm"&gt;here's a helpful tutorial on soldering&lt;/a&gt; ) &lt;/li&gt;&lt;li&gt; electronic solder&lt;/li&gt;&lt;li&gt;diagonal cutter&lt;/li&gt;&lt;li&gt;Mini glue gun&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;Components for the robot &lt;/strong&gt;     &lt;ul&gt;&lt;li&gt;2x - small 1.5 Volts motors &lt;/li&gt;&lt;li&gt;2x - small paperclips &lt;/li&gt;&lt;li&gt;2x - big paperclips &lt;/li&gt;&lt;li&gt;2x - batteries AAA or AA&lt;/li&gt;&lt;li&gt;1x - battery holder AAA or AA&lt;/li&gt;&lt;li&gt;1x - 2 cm of heat shrink&lt;/li&gt;&lt;li&gt;1x - wooden pearl  (for the caster) &lt;/li&gt;&lt;li&gt;1x - meter of electric wire&lt;/li&gt;&lt;li&gt;2x - Sub-mini lever SPDT switches&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/3a9b7570.gif" alt="Image" title="Image" border="0" height="87" hspace="6" width="183" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;    Here are the serial numbers of the components and tools from &lt;a href="http://www.radioshack.com/"&gt;RadioShack &lt;/a&gt;.&lt;br /&gt;&lt;table border="0" cellpadding="1" cellspacing="1"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="195"&gt;&lt;strong&gt;Component &lt;/strong&gt;&lt;/td&gt;     &lt;td&gt;&lt;strong&gt;Number &lt;/strong&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;table border="0" cellpadding="1" cellspacing="1"&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width="195"&gt;soldering iron &lt;/td&gt;     &lt;td&gt; 64-2184 &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td&gt;electronic solder &lt;/td&gt;     &lt;td width="85"&gt;64-006 &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td width="195"&gt;diagonal cutter &lt;/td&gt;     &lt;td&gt; 64-2951  &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td width="195"&gt;1.5 Volts motor &lt;/td&gt;     &lt;td&gt; 273-223 &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td width="195"&gt;battery holder &lt;/td&gt;     &lt;td&gt;270-398 &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td width="195"&gt;SPDT switch &lt;/td&gt;     &lt;td&gt;275-016 &lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; Most of the components can be bought for much cheaper at &lt;a href="http://www.digikey.com/"&gt;Digi-Key&lt;/a&gt;, &lt;a href="http://www.jameco.com/"&gt;Jameco&lt;/a&gt;, or similar. At &lt;a href="http://www.solarbotics.com/"&gt;Solarbotics &lt;/a&gt;you can find the dual AA battery holder and the Mabuchi motor. You can find these components at any good electronic store.&lt;br /&gt;&lt;br /&gt;Here is all the parts for the construction the beetle robot.&lt;br /&gt;&lt;br /&gt; &lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_2_1.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. &lt;/strong&gt;Cut the electric wire in pieces of 6 cm each, 13 times.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_2_2.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;Strip 1 cm at each end.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_2_3.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. &lt;/strong&gt;Regroup all the components.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_2_4.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. &lt;/strong&gt; Solder each wire to each components except the two batteries.&lt;br /&gt; &lt;br /&gt;  &lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_3_1.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt; &lt;br /&gt;  &lt;strong&gt;4. &lt;/strong&gt; Take the battery holder and make a connection to the connection.&lt;br /&gt;  &lt;br /&gt;  &lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_3_2.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt; &lt;br /&gt;This will give a third connection.See picture below,&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_3_3.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;The blue wire is the third connections&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_3_4.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. &lt;/strong&gt;  Turn the battery holder up side down so the batteries point to the ground. Glue the two switches on the battery holder in a V form.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_4_1.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_4_2.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_4_3.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. &lt;/strong&gt;  Glue the motor beside each switch so that the shaft touches the ground&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_4_4.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_5_1.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_5_2.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7&lt;/strong&gt;. Take the big paperclip and make the caster like the picture below.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_5_3.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;You can make a nice looking caster or a normal one&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_6_1.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_6_2.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;I prefer the nice one&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_6_3.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8.&lt;/strong&gt; How to make the connection&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_6_4.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_7_1.gif" alt="Image" title="Image" border="0" height="204" hspace="6" width="366" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_7_2.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9.&lt;/strong&gt; Take the small paper clip and bend them to make antenna.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_7_3.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;Glue them to the switches and don't put to much glue.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_8_1.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;Add 1 cm of heat shrink to the shaft of each motor.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_8_2.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_8_3.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;10. &lt;/strong&gt;Add  the batteries in the battery holder and put it on a flat surface &lt;em&gt;to see your creation take life. Congratulation!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_8_4.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.gorobotics.net/images/stories/beetle_robot/pg_9_1.jpg" alt="Image" title="Image" border="0" height="256" hspace="6" width="341" /&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-5064396867078278898?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/5064396867078278898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=5064396867078278898' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5064396867078278898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/5064396867078278898'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/simple-beetle-bot-for-begineers.html' title='A Simple Beetle Bot For Begineers'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-7079105853759549804</id><published>2007-11-22T02:48:00.001-08:00</published><updated>2008-03-25T09:12:37.483-07:00</updated><title type='text'>Artificial Intelligence</title><content type='html'>The term "artificial intelligence" is defined as systems that combine sophisticated hardware and software with elaborate databases and knowledge-based processing models to demonstrate characteristics of effective human decision making. The criteria for artificial systems include the following: 1) functional: the system must be capable of performing the function for which it has been designed; 2) able to manufacture: the system must be capable of being manufactured by existing manufacturing processes; 3) designable: the design of the system must be imaginable by designers working in their cultural context; and 4) marketable: the system must be perceived to serve some purpose well enough, when compared to competing approaches, to warrant its design and manufacture. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R7L7DG_wdGI/AAAAAAAAADA/lY5swmP3jDg/s1600-h/mr1.ht2-AI-angelusresearch-com.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R7L7DG_wdGI/AAAAAAAAADA/lY5swmP3jDg/s320/mr1.ht2-AI-angelusresearch-com.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5166467753383588962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Robotics is one field within artificial intelligence. It involves mechanical, usually computer-controlled, devices to perform tasks that require extreme precision or tedious or hazardous work by people. Traditional Robotics uses Artificial Intelligence planning techniques to program robot behaviors and works toward robots as technical devices that have to be developed and controlled by a human engineer. The Autonomous Robotics approach suggests that robots could develop and control themselves autonomously. These robots are able to adapt to both uncertain and incomplete information in constantly changing environments. This is possible by imitating the learning process of a single natural organism or through Evolutionary Robotics, which is to apply selective reproduction on populations of robots. It lets a simulated evolution process develop adaptive robots. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R7L7kG_wdHI/AAAAAAAAADI/Ce4HSCqXe8s/s1600-h/Kismet.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R7L7kG_wdHI/AAAAAAAAADI/Ce4HSCqXe8s/s320/Kismet.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5166468320319272050" /&gt;&lt;/a&gt;The artificial intelligence concept of the "expert system" is highly developed. This describes robot programmers ability to anticipate situations and provide the robot with a set of "if-then" rules. For example, if encountering a stairwell, stop and retreat. The more sophisticated concept is to give the robot the ability to "learn" from experience. A neural network brain equipped onto a robot will allow the robot to sample its world at random. Basically, the robot would be given some life-style goals, and, as it experimented, the actions resulting in success would be reinforced in the brain. This results in the robot devising its own rules. This is appealing to researchers and the community as it parallels human learning in lots of ways. &lt;br /&gt;&lt;br /&gt;Artificial intelligence dramatically reduces or eliminates the risk to humans in many applications. Powerful artificial intelligence software helps to fully develop the high-precision machine capabilities of robots, often freeing them from direct human control and vastly improving their productivity. When a robot interacts with a richly populated and variable world, it uses it senses to gather data and then compare the sensate inputs with expectations that are imbedded in its world model. Therefore the effectiveness of the robot is limited by the accuracy to which its programming models the real world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-7079105853759549804?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/7079105853759549804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=7079105853759549804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7079105853759549804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/7079105853759549804'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/components-of-robots.html' title='Artificial Intelligence'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aNh_uVW1ahk/R7L7DG_wdGI/AAAAAAAAADA/lY5swmP3jDg/s72-c/mr1.ht2-AI-angelusresearch-com.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1362650730047230957.post-900210834186095862</id><published>2007-11-22T02:41:00.000-08:00</published><updated>2008-02-17T02:08:26.611-08:00</updated><title type='text'>Introduction to robotics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R0Vd-C2BFWI/AAAAAAAAAAM/1PPZSx5M_Sk/s1600-h/180px-Shadow_Hand_Bulb.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R0Vd-C2BFWI/AAAAAAAAAAM/1PPZSx5M_Sk/s320/180px-Shadow_Hand_Bulb.jpg" alt="" id="BLOGGER_PHOTO_ID_5135614270582625634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;p&gt;&lt;b&gt;Robotics&lt;/b&gt; is the science and technology of robots, their design, manufacture, and application. Robotics requires a working knowledge of electronics, mechanics and software, and is usually accompanied by a large working knowledge of many subjects.A person working in the field is a roboticist.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;Although the appearance and capabilities of robots vary vastly, all robots share the features of a mechanical, movable structure under some form of autonomous control. The structure of a robot is usually mostly mechanical and can be called a kinematic chain (its functionality being akin to the skeleton of the human body). The chain is formed of links (its bones), actuators (its muscles) and joints which can allow one or more degrees of freedom. Most contemporary robots use open serial chains in which each link connects the one before to the one after it. These robots are called serial robots and often resemble the human arm. Some robots, such as the Stewart platform, use closed parallel kinematic chains. Other structures, such as those that mimic the mechanical structure of humans, various animals and insects, are comparatively rare. However, the development and use of such structures in robots is an active area of research (e.g. biomechanics). Robots used as manipulators have an end effector mounted on the last link. This end effector can be anything from a welding device to a mechanical hand used to manipulate the environment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="4"&gt;&lt;b&gt;Components of robots&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R7gE4m_wdII/AAAAAAAAADQ/zICSkvJPC9s/s1600-h/120px-2005-11-14_ShadowLeg_Finished_medium.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R7gE4m_wdII/AAAAAAAAADQ/zICSkvJPC9s/s320/120px-2005-11-14_ShadowLeg_Finished_medium.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5167885942994793602" /&gt;&lt;/a&gt;Actuation&lt;br /&gt;&lt;br /&gt;A robot leg, powered by Air Muscles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The actuators are the 'muscles' of a robot; the parts which convert stored energy into movement. By far the most popular actuators are electric motors, but there are many others, some of which are powered by electricity, while others use chemicals, or compressed air.&lt;br /&gt;&lt;br /&gt;    * Motors: By far the vast majority of robots use electric motors, of which there are several kinds. DC motors, which are familiar to many people, spin rapidly when an electric current is passed through them. They will spin backwards if the current is made to flow in the other direction.&lt;br /&gt;    * Stepper Motors: As the name suggests, stepper motors do not spin freely like DC motors, they rotate in steps of a few degrees at a time, under the command of a controller. This makes them easier to control, as the controller knows exactly how far they have rotated, without having to use a sensor. Therefore they are used on many robots and CNC machining centres.&lt;br /&gt;    * Piezo Motors: A recent alternative to DC motors are piezo motors, also known as ultrasonic motors. These work on a fundamentally different principle, whereby tiny piezoceramic legs, vibrating many thousands of times per second, walk the motor round in a circle or a straight line. The advantages of these motors are incredible nanometre resolution, speed and available force for their size. These motors are already available commercially, and being used on some robots.&lt;br /&gt;    * Air Muscles: The air muscle is a simple yet powerful device for providing a pulling force. When inflated with compressed air, it contracts by up to 40% of its original length. The key to its behaviour is the braiding visible around the outside, which forces the muscle to be either long and thin, or short and fat. Since it behaves in a very similar way to a biological muscle, it can be used to construct robots with a similar muscle/skeleton system to an animal. For example, the Shadow robot hand uses 40 air muscles to power its 24 joints.&lt;br /&gt;    * Electroactive Polymers: These are a class of plastics which change shape in response to electrical stimulation. They can be designed so that they bend, stretch or contract, but so far there are no EAPs suitable for commercial robots, as they tend to have low efficiency or are not robust.[ Indeed, all of the entrants in a recent competition to build EAP powered arm wrestling robots, were beaten by a 17 year old girl. However, they are expected to improve in the future, where they may be useful for microrobotic applications.&lt;br /&gt;&lt;br /&gt;&lt;font size="4"&gt;Locomotion&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_aNh_uVW1ahk/R7gGIm_wdJI/AAAAAAAAADY/KX9z1xAXlnc/s1600-h/180px-Segway_01.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_aNh_uVW1ahk/R7gGIm_wdJI/AAAAAAAAADY/KX9z1xAXlnc/s320/180px-Segway_01.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5167887317384328338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Rolling Robots&lt;br /&gt;&lt;br /&gt;For simplicity, most mobile robots have four wheels. However, some researchers have tried to create more complex wheeled robots, with only one or two wheels.&lt;br /&gt;&lt;br /&gt;    * Two-wheeled balancing: While the Segway is not commonly thought of as a robot, it can be thought of as a component of a robot. Several real robots do use a similar dynamic balancing algorithm, and NASA's Robonaut has been mounted on a Segway.&lt;br /&gt;    * Ballbot: Carnegie Mellon University researchers have developed a new type of mobile robot that balances on a ball instead of legs or wheels. "Ballbot" is a self-contained, battery-operated, omnidirectional robot that balances dynamically on a single urethane-coated metal sphere. It weighs 95 pounds and is the approximate height and width of a person. Because of its long, thin shape and ability to maneuver in tight spaces, it has the potential to function better than current robots can in environments with people.&lt;br /&gt;    * Track Robot: Another type of rolling robot is one that has tracks, like NASA's Urban Robot, Urbie.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Walking Robots&lt;br /&gt;&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_aNh_uVW1ahk/R7gGw2_wdKI/AAAAAAAAADg/3XCybGL7V3Q/s1600-h/Icub.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_aNh_uVW1ahk/R7gGw2_wdKI/AAAAAAAAADg/3XCybGL7V3Q/s320/Icub.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5167888008874063010" /&gt;&lt;/a&gt;Walking is a difficult and dynamic problem to solve. Several robots have been made which can walk reliably on two legs, however none have yet been made which are as robust as a human. Typically, these robots can walk well on flat floors, can occasionally walk up stairs. None can walk over rocky, uneven terrain. Some of the methods which have been tried are:&lt;br /&gt;&lt;br /&gt;Zero Moment Point (ZMP) Technique: is the algorithm used by robots such as Honda's ASIMO. The robot's onboard computer tries to the keep the total inertial forces (the combination of earth's gravity and the acceleration and deceleration of walking), exactly opposed by the floor reaction force (the force of the floor pushing back on the robot's foot). In this way, the two forces cancel out, leaving no moment (force causing the robot to rotate and fall over). However, this is not exactly how a human walks, and the difference is quite apparent to human observers, some of whom have pointed out that ASIMO walks as if it needs the lavatory. ASIMO's walking algorithm is not static, and some dynamic balancing is used (See below). However, it still requires a smooth surface to walk on.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Hopping&lt;/u&gt;: Several robots, built in the 1980s by Marc Raibert at the MIT Leg Laboratory, successfully demonstrated very dynamic walking. Initially, a robot with only one leg, and a very small foot, could stay upright simply by hopping. The movement is the same as that of a person on a pogo stick. As the robot falls to one side, it would jump slightly in that direction, in order to catch itself. Soon, the algorithm was generalised to two and four legs. A bipedal robot was demonstrated running and even performing somersaults. A quadruped was also demonstrated which could trot, run, pace and bound. For a full list of these robots, see the MIT Leg Lab Robots page.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Dynamic Balancing&lt;/u&gt;: A more advanced way for a robot to walk is by using a dynamic balancing algorithm, which is potentially more robust than the Zero Moment Point technique, as it constantly monitors the robot's motion, and places the feet in order to main stability.[ This technique was recently demonstrated by Anybots' Dexter Robot, which is so stable, it can even jump.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Passive Dynamics,&lt;/u&gt;: Perhaps the most promising approach being taken is to use the momentum of swinging limbs for greater efficiency. It has been shown that totally unpowered humanoid mechanisms can walk down a gentle slope, using only gravity to propel themselves. Using this technique, a robot need only supply a small amount of motor power to walk along a flat surface or a little more to walk up a hill. This technique promises to make walking robots at least ten times more efficient than ZMP walkers, like ASIMO.&lt;br /&gt;&lt;br /&gt;&lt;font size="4"&gt;Other methods of locomotion&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;    * &lt;u&gt;Flying&lt;/u&gt;: A modern passenger airliner is essentially a flying robot, with two humans to attend it. The autopilot can control the plane for each stage of the journey, including takeoff, normal flight and even landing. Other flying robots are completely automated, and are known as Unmanned Aerial Vehicles (UAVs). They can be smaller and lighter without a human pilot, and fly into dangerous territory for military surveillance missions. Some can even fire on targets under command. UAVs are also being developed which can fire on targets automatically, without the need for a command from a human. Other flying robots include cruise missiles, the Entomopter and the Epson micro helicopter robot.&lt;br /&gt;&lt;br /&gt;    * &lt;u&gt;Snake&lt;/u&gt;: Several snake robots have been successfully developed. Mimicking the way real snakes move, these robots can navigate very confined spaces, meaning they may one day be used to search for people trapped in collapsed buildings. The Japanese ACM-R5 snake robot can even navigate both on land and in water.&lt;br /&gt;    * &lt;u&gt;Skating&lt;/u&gt;: A small number of skating robots have been developed, one of which is a multi-mode walking and skating device, Titan VII. It has four legs, with unpowered wheels, which can either step or roll. Another robot, Plen, can use a miniature skateboard or rollerskates, and skate across a desktop.&lt;br /&gt;    * &lt;u&gt;Swimming&lt;/u&gt;: It is calculated that some fish can achieve a propulsive efficiency greater than 90%. Furthermore, they can accelerate and manoeuver far better than any man-made boat or submarine, and produce less noise and water disturbance. Therefore, many researchers studying underwater robots would like to copy this type of locomotion.[ Notable examples are the Essex University Computer Science Robotic Fish[, and the Robot Tuna built by the Institute of Field Robotics, to analyse and mathematically model thunniform motion&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1362650730047230957-900210834186095862?l=aurorian.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aurorian.blogspot.com/feeds/900210834186095862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1362650730047230957&amp;postID=900210834186095862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/900210834186095862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1362650730047230957/posts/default/900210834186095862'/><link rel='alternate' type='text/html' href='http://aurorian.blogspot.com/2007/11/introduction-to-robotics.html' title='Introduction to robotics'/><author><name>aurorian</name><uri>http://www.blogger.com/profile/05173864050929094659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_aNh_uVW1ahk/R0Vd-C2BFWI/AAAAAAAAAAM/1PPZSx5M_Sk/s72-c/180px-Shadow_Hand_Bulb.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
