Friday, July 29, 2011

How to make your first robot


This tutorial is the easiest way in the world to give you a fast start into building robots.


Welcome :)
Everything here is so easy, that after you have gone through it, you can make a robot in a couple of hours. Why can't you do that now?
Because there are so many little things you need to know. This is an attempt to let you know exactly all these little things, and nothing more. Fast, and based on 2 years of experience of what people need to know to get started. If you hurry, you can run through this, and be robot builder in a couple of hours. But expect to use a good weekend - Learning takes time - even though it is very easy, it just takes some time, all the little things to get to know :)
There are other "How to get started building robots" out there. This one is focusing on getting you around everything extremely fast. You need no knowledge of ... anything. And you will learn everything... well, the basics of everything ;)
All images in high-res here.


Materials needed


It used to be a hassle to buy the materials, because not one single webshop was carrying everything needed, and you had to buy from several shops.
Good news is that LMR have started a cooperation with Solarbotics, one click get's you all the parts:
You can get everything needed for the project here, in "The LMR Bundle"
- And if you buy it there, you even support us, so we can keep hosting letsmakerobots.com
Everything you need can also be found in webshops, and via Google, if you do not want to buy the LMR bundle. And as it is sold in webshops, you can get it where you are, in any country.

No matter from where you get it, the following is what you will need:

(The following is all included in the bundle)

1 PICAXE-28 Project Board
The 28 pin project board is like a game of Mario Bros; Fun and full of extras and hidden features, making you want to play over and again. It is an extremely good board to get you started, and it can be used for a fantacillion different projects, don't get me started :)


Male "snap off" Header Pins,  at least 10 pins on a strip
Many times the boards that you buy just have holes in them, and that makes it hard to plug something in / on. One way to overcome this, is to solder wires into the holes. Another is to add these pins, so you can plug on wires, like with the servo and female headers shown below. "Why don't they just put pins in all the holes from the factory", you may ask. Well, I don't know. Maybe to give us the option. It is also possible to solder female headers onto the board, perhaps this is why.
You get these in long rows, and simply break them apart with your fingers.


3 Shorting Blocks, Top Closed
Put these over 2 pins next to each other, and there is a connection between them!


5 or more Female-Female Header Jumper cables
Yes. These are nice. When I started this hobby a couple of years ago, these where really hard to get. Now they are everywhere, and that is really good. Most things in this new robot-hobby of yours have pins (or you solder some in ;) - and by using these jumpers, you can make quick connections without soldering. Nice!


1 USB PICAXE Programming Cable
You write your robots programs on your computer. Plug this cable into the robot, and transfer the program. Unplug, and the robot runs the program by itself.


1 PICAXE-28X1 IC
This chip is a Microprocessor. That is often explained as "A computer in a chip". It can be placed in the board described above, after that, it can be programmed from your computer via the programming cable.

Your program can tell the controller to "listen for inputs", "think about them", perhaps make some calculations or look in some datas, and make outputs to something like the motor driver below.

It is chosen here, because it is quite strong, yet very easy to program, as you will see below.


1 L293D Motor Driver IC
I will describe this later, when we install it below :)


1 DIL 330 x 8 resistor array
The Yellow chip! It is very dull, just a row of little resistors. You will be using it to set your board up for servos.


1 Standard servo
A Servo is a cornerstone in most robotic appliances. To put it short it is a little box with wires to it, and a shaft that can turn some 200 degrees, from side to side.
The microcontroller can decide to where the shaft should turn, and stay there. Like go to "3 o'clock". That is it pretty handy; You can program something to physically move to a certain position. Next thing (after this project) could be to let one servo lift another servo. You would then have what is referred to as 2 DOF ("Degrees of Freedom"). But let's start with one ;)

You may wonder why my servo has that white pin, where yours might have a flat disc, a cross, or something. It does not matter, servos comes with all kinds of "servo horns". We just need something there to glue the head on to!

1 Sharp Analogue InfraRed Range Finding System (AERS) with cable
+++++++++Note:+++++++++
SHARP has discontinued their opto-electronic product lines, and as such the GP2D12 sensor described here has become obsolete afte we made this. Supply is running out everywhere, and we are working on solutions. For the time being you can (or we will do so for you, if you buy the kit) replace the GP2D12 with an GP2Y0A02YK Long Range Distance sensor. The GP2Y0A02YK's do not sense as close as the GP2D12's but they have a much farther range 20 - 150cm. We did some measurements and found that these sensors can actually reliably measure approx 16 - 180cm.

You can use the GP2Y0A02YK sensor in place of the GP2D12 to achieve better range, with not much change from the GP2D12. The pinout and voltages are exactly the same with the only change being that the GP2Y0A02YK sensors do not do as well in the close range.

++++++++++++++++++++++++
The one "eye" sends infra red light. The other sees the reflection of this (if there is one), and the unit returns the distance to the object in front of it. It has 3 wires (make sure you get the cable for it, or it can be a little hard to hook up). You give it power on 2 of the wires, and the third one plugs into the microcontroller, and tells it the distance.


1 4 x AA Battery Holder if you are using rechargeable batteries
or
1 3 x AA Battery Holder if you are using non-rechargeable batteries

(See more below, regarding batteries, and why the difference - Point is that you need as close to 5V as possible, one way or the other, and you can use something completely different in terns of batteries if you want. As long as it is just about 5 Volts.)


2 Geared motors and wheels to fit
It is very important that your motors have gears. You want a slow robot; Go for high ratios, like 120:1 or higher, as a slow robot is so much more fun in the beginning, because you can see what it is doing.
Apart from that, there is not much to say. Well, that would be, that there are many ways of moving and steering. This way of only using 2 wheels, is sometimes referred to as "skid steering". And it is worth remarking that if you'd like to add belt tracks later on, the basics are the same ;)


1 Roll of double sided foam tape
Oh yes! If there is something you cannot fix with this tape, it is because you are not using enough! It is a very, very fast way of sticking 2 items together. In fact we will be using it to make this entire robot! Depending on the make, of course, it is also reasonably easy to take apart again.
Paint stirring sticks, this tape, and a melt glue gun is the backbone for most of my fun with robots :)


1 Heat shrink tube (5 mm approx)
Sometimes you do need to solder 2 wires together. For instance the Sharp IR Range finder; It comes with straight up wires on the plug. What you do, is cut one of the female cables (above) in 2 parts, solder them together.. but before that, you cut a little piece of this heat shrink tube to slide over the place without insulation. Then with a lighter, you can quickly heat up the tube, and it shrinks to fit.
That is so much smarter than using tape ;)


All of the above materials are included in the LMR bundle.




Also needed:


Batteries
Either 3 AA Non rechargeable, or 4 AA Rechargeable.
This robot needs 5 Volts. Mainly because the Sharp IR, really feels best on 5.0V, that's what it's made for. Motors and servo would like more, microcontroller could live with 6.0V, but keeping it simple is the core here, so we feed the whole robot with as close to 5.0V as possible. And rather too little than too much, so we make sure not to fry anything, now that this is your first robot ;)
Now, you may know, that normal batteries provide 1.5V. However, you may not know that rechargeable batteries only provide 1.2V!
No matter if you knew that or not, 3 times 1.5V from normal batteries, is 4.5V. If we use 4 times 1.5V we would get 6.0V, which might be a little scary to use on the Sharp, rated for 5.0V.
4 times 1.2V from rechargeables is 4.8V, which is nice and close to 5V. And then it is much cheaper in the long run. So I strongly recommend you to get some rechargeables and a charger.
Tip: The best rechargeables have the highest capacity, measured in "mAh". The 2500 mAh AA-size is a fine battery.


A Soldering iron and solder
If you are new to soldering, this might interest you.


A lighter and a cutter
Lighter for heat shrinking, cutter to.. cut.
Tip: If you want to use the cutter to remove plastic from cables, turn it this way; Imagine that you where sticking the cable right into the cutter from where you are now, into the table it is laying on. That way. And not from the table, and out to where you are. Then gently close around the wire, and pull the plastic off.


A computer with an internet connection and a free USB port
             
Can be Mac, Linux or PC. The software needed for this is free.


Nice-to-have tools, though not essential:


A multimeter (aka measure-thingey), a wire stripper, and a screwdriver





Ready? Let's make a robot :)


Pins in holes!
First unwrap your board (I am sure you already did that :), and then see that it may have some red stuff underneath. That is just there from when they made it; They insert the components on the upper side, and dip the boards lower side into hot solder.. and areas where they don't want solder to be stuck, they have placed that red stuff. So just take it off :)
Let's look at somewhere where we for sure are going to add some pins.. Yes, the motor-outs.

The A & B on the board. We will get back to them, but for now, snap off 2 times 2 pins, and plug them in.
It does not matter if you snap off single pins or anything like that. They are simply little metal rods in plastic. Short side down into board.
Use some foam tape to hold the pins in place.

Turn the board around  and solder..

And now, tatataaaa.. You can plug in any standard female header, where you used to have a hole :)

Nice, and while you are at it, also solder a pin into analogue port 0, that we are going to use for the Sharp:

Then solder a pin into output 0..

And you are done with pin-soldering.
If it was me, I'd just solder pins in all the holes, but you may want to leave that for later. You have soldered all the pins that we need for this project now.

Next, general instructions: Extensions and alternations of wires and cables:
Connecting 2 wires "The right way" is almost a religion to some. Here is how I do it :)
First, I simply twist together the 2 wires

Then I solder them together, cut some off, if it is too long, and bend it along the side of one of them.

However, BEFORE I do this, I make sure that I have cut off a little piece of heat shrinking tube, and placed it over one of the wires. Then I slide that over..

A lighter quickly heats it up. This makes it shrink, hence the name, and it is a perfect insulation.

I don't think you realize how hard it was to take that picture all by myself :) It had to be in focus on the right spot, you know. And yes, the wire got a little burned :p Good shot though, if I may say so myself.

From now on, I expect you to just extend wires that are too short, hook up headers on wires when needed, and if you need to connect something to the board, where there is only a hole... you simply add a pin :)


Get it together!


Fixing up the motors
Mount the wheels on the geared motors. You may have a completely different set than I do here, but as long as they are geared motors that run fine on a few volts, and some nice wheels, you will be all right.
When you have the wheels on the motors, cut one of the female-to-female wires in halves, take away some of the plastic from the end of the wire, and solder it on. And do the same for the other motor.

Make sure no solder or wires touches the metal on the motor :)
Some wheels come with optional rubber tyres. It can be a good idea to wait with putting on this rubber, because if the robot is stuck, it can just slide, which is nice when testing and developing.

Chips in the board!
The Picaxe 28X1 Microcontroller that you have here, and the board, is a pretty amazing and very powerful little package.
I remember how amazed I was that I could actually make this control everything I could imagine, I hope you will get that sensation at some point as well; Seriously, you can make this thing do all sorts of stuff with all sorts of electronics. Even if you know nothing about anything, and electronics is as strange to you, as it is to me.
You can also make it handle your servos, motors, calculations, monitoring distance.. everything a robot needs. And that is what we are going to set it up for now
The microcontroller is the long chip. That is the one you program, and then there are inputs and outputs on the board that it can use.

Have a look at this page: 28 pin Project Board (AXE020), Picaxe for dummies

Now, I do not expect you to read that page now, because I have promised you that you will building building the robot as fast as possible :) However, it is important that you read that page at some point, to learn about the board, and the microcontroller. Promise me to get back to that, make a bookmark for next step ;)
OK, enough talk, insert the long black chip, that is the microcontroller.
Make sure to turn it the right way: It has a marking in one end, and so does the socket. They should match.

Now, when you bought the board, it should already have a black chip in it, in the slot where I have placed the yellow chip, in the picture below.
Take up the black chip, and as I did, replace it with the yellow one. It does not have enough pins, but see picture for what end to leave open. (the inner side)
The yellow chip is sitting between the microcontroller and the topmost row of pins on the picture. That row has (as you will know when you read about the board, your bookmark, remember?) the outputs.
We are going to hook up the servo to one of these. Servos are sending a lot of electrical noise back on the line. The Yellow chip is a series of 330 Ohm resistors, that will reduce the amount of noise that is sent back to the microcontroller. It is simply straight lines across, with some resistance between, making the signals travelling both ways a little weaker. So it is there to protect the microcontroller.
Frankly, I have never heard of anyone frying a microcontroller because of servo noise, but since manuals tells us to do this, and the board is prepared for it, we might as well.
I have also heard of black versions of this chip. How boring, but none the less, and yes; You can use it, no matter the colour, if it has the same functionality.
The black chip that was in its place, is a so-called Darlington driver. If you need more info than that, please read the manuals :) But it is a good chip, if you are not hooking up servos right on the board. It is amplifying the signals, so for instance you can hook up a speaker right on it (where we now will be placing a servo) - and using the command "Sound", you can make it beep quite loud, play tunes etcetera. You have got to try that as well! Just not now ;) Disadvantage of using the microcontroller and this board for everything is, that when you want to play with servos, you take out the Darlington, and the fun it provides. But there is more, wait and see!
Last chip is the motor controller, throw that in as well!
When your microcontroller is placed in your board, it can switch power on/off. You could use that to drive motors. However, motors are "rough", and could fry the microcontroller's outputs. And another thing is that if the microcontroller can only turn power on/off, then.. how do you drive backwards?

A motor driver takes care of all this;
This little motor-driver-in-a-chip can drive a pair of small motors (600 mA each, for the tech interested), without frying the microcontroller. And furthermore; It can make the motors go backwards. Which is handy when facing a wall :)
Your nice board has a place for a motor driver that can take a pair of small motors, and make them drive both forward and reverse.
The board is set up, so the microcontroller's outputs 4, 5, 6, and 7 are fed into the motor controller, and out comes 2 fine pairs of wires that you can hook up to a pair of motors: Motor A and Motor B. And you just soldered pins into them, how nice.

Tip: New chips in
New and unused chips usually have the two rows of legs a little too wide apart. So gently push down the side of the chip towards a table to correct it, before inserting it into a slot. You will understand me once you try to place a new chip in a socket ;)
Tip: Old chips out
It is easy to get a chip out of a socket, by inserting a flat screwdriver below it, push it under, to the far end, and gently push it up.
Fact: Later in your life, you will want the microcontroller to just be a microcontroller. You then buy extra other boards for something like servo control and motor control. These boards will get their commands from the microcontroller. And then your robot can do everything much more powerful, and simultaneously.
However, it is pretty amazing what you can make this set-up do, as you have it right here! Many, many cool robots and other project use far simpler or just this set-up.

Make the body.. without a body!

In order to keep this as simple as possible, we are just glueing all the parts together, and call that a robot! Yes.
If you prefer, of course you can make it more advanced than this. Only thing to note as such is that we use 2 central wheels, each with one motor. Driving both forward makes the robot drive forward, and if one is going backwards with one forward, it turns on a plate. If one is still, and the other is driving, it is more like "sliding" to one side.
What you can do, is simply to stick on the motors to the battery holder, using the foamy tape. If the batteries are in there, and the wheels are big enough to have them placed below the axle, the whole thing will simply balance on its own. Quite strange, actually, when I think about it :)

Somehow also leave some room for the servo in front. Or stick it on to the front of it all.

Most important is that wheels touch ground, and the rest is more or less in balance. It does not matter if it is tipping a little backwards.
Feel free to make your own design, of course :) If you do not like the balancing part, or cannot make it work, you can just add some smooth "pads", or extra wheels. A pearl, or an old LED could make nice little "third wheels", that usually are placed in the rear of the robot.

Now, as you can see, this time, I used the 4-battery holder. Because that is the biggest one, which makes it easier to stick it all on to it.

- But if you are using non-rechargeables, and only should use 3 batteries, here is a tip:
Find an old telescopic antenna, from a radio or something.
Cut off a piece (Here is a tip on how to cut it), and insert it instead of one of the batteries. Bingo ;)

OK, next thing is to place the board on the robot, and hook everything up (apart from the Sharp, wait with that).
First: Take out the batteries again (or at least one of them). Just to make sure you don't fry something by accident. We don't have an On/Of on this robot; Batteries in, and it is alive. But we want it dead now, so one battery out! (and not like on next picture, doh!)
Some battery holders have wires (like the one I am using), and some have a clip that fits right onto the clip on the board, as illustrated in the 3 battery holder below. If you have a clip, then hook it up, you are done. If you have wires like me, cut off the clip from the board, and connect black with black and red with red. (and use shorter wires than I did ;)
The + from the battery should go the where the RED is hooked up on the board, from the factory.


Hook up stuff to the board


Hook up the servo
Your servos wires colours may be different, but the hints are; Brown or Black (Ground) to the outside, Red (Volt) in the middle, and yellow or white (Signal) on the inside of the board. These descriptions may make most sense to you, if you have read about the board, as you promised me to do earlier. But for now you can just note the colours, and make sure to plug in your servo the right way around :)



Mount the board, and hook up the motors
With some (more) foam tape, stick on the board to the rest of the robot.
Make sure the mini-jack (the metal ring in one end of the board) is placed so it is easy to plug in a cable, because you will be doing that many times! And be careful to make sure that the bottom of the board does not touch any metal ;) That would cause short circuits.
Hook up the motor wires, into the A&B-pins that you soldered on earlier:
One motor's 2 wires goes to A on the board, the other two wires go to B. It does not matter which motor connects to which output, we will manage the rest in the programming.
Oops, one of my motors wires was too short, so I added little blue extensions from a scrap piece of wire that I found.

There is a nice little room to stuff in excess lengths of wires :)

And voilĂ !



Break out, software



(Yes, I know your robot still has no face :)
We need to turn the servo to centre.
Of course you could try and do it by hand, and estimate it to be in centre, but the smarter way is to let the microcontroller put the servo to centre. Because then you can mount "the face", facing forward, right where the microcontroller thinks it should be, when facing forward.
You are going to take a "Time-Out" from this tutorial, because you will need to set up your computer to know there is a programming cable attached, and a piece of programming software must be installed.
I cannot help you much with this, as it depends on the type of computer you have got, and what the folks at the Picaxe website have updated after I wrote this.
However, go to
http://www.rev-ed.co.uk/picaxe (or the easier to remember: picaxe.com - that redirects you)
Depending on your OS, you want either the
Free PICAXE Programming Editor or the AXEpad (which is also free, it is just not in the name ;)
Download and install which ever they claim will make you able to program the Picaxe chips!
Then you want to find the part that says
AXE027 PICAXE USB Download Cable
Install the driver and cable as described, and plug the jack into the board.

Insert all batteries in your robot.. wait.. wait.. sniff.. anything smells funny? No sparks, no smoke? No? OK, go on then.
Most versions of the Picaxe programming software have some form of menu item called "Options". Enter that, and look for a page or tab that says "Mode". Some editors even open this very page for you when you first start up the program.
Here you should find a button that says "Firmware" or "Check firmware version". Click that.
Now what should happen is that the editor talks to the cable, that talks to the microcontroller, and asks it what kind of a Picaxe chip it is. It should return something like "28X1/40X1", and this should be displayed on the screen for you.
If yes, then good; You have contact. Now somewhere in the same screens, you should be able to set the mode of the editor, set it to 28X1/40X1.
(It is a big mystery to me why this has to happen, by the way; Apparently the editor can see what kind of chip is there, so why on earth can it just not set it by itself?. hmm.. let me know if you find this reason one day ;)
OK, if you get any errors, cannot find the microcontroller or something is reported wrong with the cable, I will have to ask you to lean on Picaxe's help and manuals. It's usually very simple, so try again if something is wrong. Or try from another computer, just to see how it should work, and then try the first one again, and bug track that way.
Now, enter the main programming editor; It is like a big text editor. If no project is open, go to "File"; and open "New Basic" / "New".

In here write this:


servo 0, 150
wait 2


This is your first program, and it is very simple. The first line tells the microcontroller that there is a servo on pin 0, and that it should be put in the centre (center) position, which is 150.
The next line tells it to think about life for 2 seconds (which gives the servo time to turn).
And after this, the microcontroller will stop doing anything at all, it will go zombie!
Write it in, and transfer the code to the microcontroller. That is done on some systems by pressing F5. No, wait, I think it is so on all systems. On all that I can test from here anyway :) You could also click "Program".
You should be told that the program is transferring, and then magic should happen; The servo should turn to the centre position.
Perhaps it did not do much, but that may be because it was already in centre.
Try to hold down the "Reset" switch that is placed on the board, while turning the servo to one side. Then let go of the reset, and it should turn back in place.
Perhaps you do not think it is centre, but it is. But maybe your servo "horn" is just mounted awkward. In the middle of it, there is a screw. Unscrew and take of the horn, make sure the microcontroller did put the servo in centre, and then screw on the "horn" (disc, or what ever) again, so it is the way you think it should look like when centred.
Now, let's try to turn the servo to the sides, let's extend the program:


servo 0, 75
wait 2
servo 0, 225
wait 2
servo 0, 150
wait 2


the servo command should only be using values from 75 to 225, which is the most a standard servo can go to either side. Values out of this range are not recommended, may produce funny results.
Every time you run this program (you can unplug the cable, take out the batteries, and turn it on again without the cable), it will start from the top. And every time you press reset, it will.
If you'd like it to go in a loop, you can add a label in the top, and in the bottom make it go back to that label. We make up any name for a label, just a single word, followed by a colon, watch:


servofun:
servo 0, 75
wait 2
servo 0, 225
wait 2
servo 0, 150
wait 2
goto servofun


Now it just goes on and on.. Try to play around some with it, change values etcetera, if you like :)
...
OK, back to building the robot ;)
Plug in the wire to the Sharp, if it was not in from the shop. in other words; Make sure there are 3 wires coming from the Sharp. Your colours may be different, but I have red, black and white, which is pretty meaningful for V, G and Signal.
You may need to add female headers to the wires, like I did below. These can also be in any colour, of course. However, I have soldered 3 of same colours on, so you can trust the ones in my picture  to be leading you to which cable goes to where.
Be careful to check that you are plugging this right in, because the Sharp can fry pretty easily.
In the picture below, you can see what goes to where. The stick and strange set-up is just to make sure you can see the wires and their colours :)


You should have 3 little black things called Shortening Blocks. What they do is simply connect 2 pins next to each other.
If you don't have any, you can always just use a female-to-female jumper cable instead, like I did on the last one, with a little white cable. The blocks are smart because they don't take up any space, a wire is smart, because it can reach from one end to the other of a board.
As you can see I did on the next picture, connect analogue input 1, 2 and 3 to V, using shortening blocks or female-to-female.

Why this? A brief and not very scientific explanation is; these 4 inputs (0, 1, 2 and 3) are analogue. Which means they measure "how much pressure is on the line". However, they are connected, if they like it or not. And so, a little pressure on one of them actually does something to the next. They are "left floating". By tying the 3 that we do not use to V, they are just returning "full value", and they are not left floating. So the last one, number 0, that we use, is way more accurate.
I have not read documentation that tells you to do this, however, I have at several occasions experienced strange readings, until I tied all unused analogue pins to either ground or V. Oh... and in fact I am writing documentation here (sort of :) So now it is written in the documentation to do this! :)

Make sure the servo faces middle, 150!
With a new piece of tape, mount the Sharp IR on the servo horn, facing forward.

Tadaa! :)


You're done building the basics!

The design may vary, you may have used other parts etc... But if you have connected as described, here are some tips to get started programming your robot:




Programming



Enter this code into your editor, and press F5 while the robot is connected:


main:

readadc 0, b0
debug
goto main

Now take your hand in front of the robot´s head and notice how the variable b0 changes value. You can use the knowledge gained to decide what should happen and when (how close things should get before..)
You may notice how things start to go "wrong" if stuff is too close to the "eyes"; The Sharp is made to work with objects 10-80 cm away. Things that are closer than 10 cm (4 inches) appear to be further way, which can be quite a challenge to program.
You can get many other distance sensors that do not have this problem. However the Sharp is the cheapest, and easiest to program, so that's why I made such a "bad" choice for you, sorry ;) Look around and see what everyone else is using, before you decide on an upgrade.
Now I advise you to put your robot up on a matchbox or similar, as the wheels will start turning.

Enter this code into your editor, and press F5 while the robot is connected:

high 4
low 5


One of the wheels should turn in one direction. Does your wheels turn forward? If so, this is the instruction for that wheel to turn forward.

If the wheel is turning backwards, you can try this:


low 4
high 5

To turn the other wheel, you need to enter

high 6
low 7

(or the other way around for opposite direction.)
What happens here is that by using only the options available to the microcontroller; power on or off (High / Low) on the pins, it is commanding the motor controller to set motor A or B in forward or reverse mode.

low 4
low 5
low 6
low 7

stops all motors


The servo you have already tried.

All the way to one side is:

servo 0, 75 wait 2

- the other side is: 

servo 0, 225 wait 2


- and centre:

servo 0, 150 wait 2
Here is a small program that will (should, if all is well, and if you inserted the right parameters for high/low to suit your wiring to the motors) make the robot drive around, stop in front of things, look to each side to decide which is the best, turn that way, and drive towards new adventures. In the code I have made so called remarks: explaining you what is going on.
You can write such comments or remarks yourself in the code, it is a good idea to keep track.
They are written with an apostrophe (or single quote) sign. However, copying this text from here might alter that to something else, and you will have to fix that manually, sorry. Your programming editor has colour codes, that will help showing you what it recognizes as comments and what as code.

Symbol dangerlevel = 70 ' how far away should thing be, before we react?
symbol turn = 300 ' this sets how much should be turned
symbol servo_turn = 700 ' This sets for how long time we should wait for the servo to turn (depending on it´s speed) before we measure distance

main: ' the main loop
readadc 0, b1 ' read how much distance ahead
if b1 < dangerlevel then
gosub nodanger ' if nothing ahead, drive forward
else
gosub whichway ' if obstacle ahead then decide which way is better
end if
goto main ' this ends the loop, the rest are only sub-routines


nodanger:' this should be your combination to make the robot drive forward, these you most likely need to adjust to fit the way you have wired your robots motors
high 5 : high 6 : low 4 : low 7
return


whichway:
gosub totalhalt ' first stop!

'Look one way:
gosub lturn ' look to one side
pause servo_turn ' wait for the servo to be finished turning
readadc 0, b1
gosub totalhalt

'Look the other way:
gosub rturn ' look to another side
pause servo_turn ' wait for the servo to be finished turning
readadc 0, b2
gosub totalhalt

' Decide which is the better way:
if b1<b2 then
gosub body_lturn
else
gosub body_rturn
end if
return

body_lturn:
high 6 : low 5 : low 7 : high 4 ' this should be your combination that turns the robot one way
pause turn : gosub totalhalt
return

body_rturn:
high 5 : low 6 : low 4 : high 7 ' this should be your combination that turns the robot the other way
pause turn : gosub totalhalt
return

rturn:
servo 0, 100 ' look to one side
return

lturn:
servo 0, 200 ' look to the other side
return

totalhalt:
low 4 : low 5 : low 6 : low 7 ' low on all 4 halts the robot!
Servo 0,150 ' face forward
wait 1 ' freeze all for one second
return


With some clever programming and tweaking, you can make the robot drive, turn its head, make decisions, make small adjustments, turn towards "interesting holes" such as doorways, all working at the same time, while driving. It looks pretty cool if you make the robot spin while the head is turning ;)



Fun time


You could also attach a lamp or LED to pin 2 & ground, and write (remember LEDs need to turn the right way around)

High 2

to turn on the lamp, and 

Low 2

to turn it off ;)
- How about a Laser-pen, mounted on an extra servo? Then you could make the robot turn the laser around, and turn it on and off, pointing out places.. you can do anything now :)
Pressing "Help" in the programming editors brings out all sorts of interesting tutorials and info!

Perhaps try this:
Pull out the servo, and take up the yellow chip. Insert the Darlington that you took out earlier. Hook up the speaker to the 2 pins above where the servo was, tat is output 1. And throw in the LED, or whatever it was that you found on output 2. Then program it something like this:

sound 1, (100, 30)
high 2
wait 1
low 2
sound 1, (105, 60)

That should make a sound and turn something on, make a new sound and turn it off again.

Or the more interesting, make sure the Sharp is still in, hook a speaker up to pin 1, and then program this:

noise:
readadc 0, b0
sound 1, (b0, 2)
goto noise

Attached is the program I used to make the videos :)
Ce ya!

Thursday, July 28, 2011

How to Make Jello Shots

Jello Shots are so easy, even a Drunk can do it!

The basic method for making Jello shots is to bring one cup of water to a boil (or nuke it in the microwave for about 2:30). Pour in one regular sized box of Jello mix (whatever flavor you like), and stir until dissolved. Then add a cup of your favorite liquor.
Stir the mixture well, pour into individual shot cups, and place in the fridge for a few hours. Presto! You have Jello Shots!

Jello Shot Recipes

  • Margarita Jello Shot - Tequila and Lime Jello
  • Fuzzy Naval Jello Shot - Peach Schnapps and Orange Jello
  • Jolly Rancher Jello Shot - Sour Apple Schnapps and Watermelon Jello
  • Strawberry Daiquiri - White rum and Strawberry Jello
  • Peach Pie - Captain Morgan and Peach Jello

But wait, there’s more!

Don’t settle for plain old run-of-the-mill Jello Shots like you had in your dorm room in college. You can easily Punch those shots up by trying any of the ideas below:
  • Try substituting juice for the water. If you want even more flavor, you can even use frozen juice concentrates. Shooters are usually strong tasting anyway, so the strong taste of the concentrate goes well.
  • You can add fruit (like a single strawberry, orange slice, or cherry) to each shot before you pour in the Jello. If you do this, it’s a good idea to soak the fruit in the liquor you are going to use in the shot for a day or two. Doing so will infuse the liquor with the juice from the fruit, and vice versa.
  • Add a little whipped cream to the top of your Jello Shots to make a high-octane desert.
  • Usually the Jello will stick to the shot cup. To fix this, put some warm (not hot) water in a tray and put the shot cups in the water. The warmth will melt the Jello slightly around the edges so it will easily slide out of the shot cup. Don’t warm it too much, or else you will totally melt the Jello.
Keep in mind that it is NEVER cool to slurp your Jello through a straw. Also, the Jello will slow the absorption of the alcohol into your bloodstream. So, be careful. One Jello shot is usually equal to one cocktail. If you pile too many on at once, you’ll find yourself getting sick later on.
Also, it is not a good idea to use grain alcohol (190 proof) in your Jello shots. Sure, it increases the alcohol level, but it makes them taste horrible, and the potency can be dangerous.

Friday, July 22, 2011

Same Router, Extreme Power

You’re constantly frustrated while surfing over a wireless network because your Wi-Fi range is simply too low. Signals are weak, and
connections either constantly break off or can’t be established in the first place. You’ve tried tweaking all possible settings and changing the router’s position, but it just won’t satisfy your needs. What do you do? Get a new router with longer antennae, or add multiple access points, which would burn
holes into your wallet? You can choose to replace the router’s
firmware (its operating system and configuration options) with a third-party,
unsupported version. One open sourc option is called DD-WRT. It’s free and
you can use it to increase transmission power and thus, the range of certain
Wi-Fi routers over and above their default available values. DD-WRT can
help increase your router’s capabilities and revive an old failing router by
infiusing it with additional uses.




Step 1: The firmware
Go to the website ‘www.dd-wrt.com’,click on the ‘Router Database’ and look
for ‘WRT54GL’ (in your case, look for the model number of your router). Download the file ‘dd-wrt.v24_mini_generic.bin’ and save it on the desktop.
.
Step 2: Disconnecting
Before installing the new firmware, detach all LAN cables from the router
except for the LAN cable of the PC that has the firmware file that you have
just downloaded. Also disconnect any devices connected via Wi-Fi.



Step 3: Hard reset
You  will need to hard-reset using physical reset button locate on its rear panel.In some case you will need a pin to reset.


step 4: Flashing
Now that you have completely reset the router, it is time to start configuring the
router. To do this, you will need to open your web browser and enter the address
‘http://192.168.1.1’ and press [Enter]. You will then ask for a paddword and username type admin admin in both field. once you enter in the firmware choose upgrade and choose the file we downloaded file from desktop.once the process is complete restart the router.

INTERNET SECURITY SUITE NORTON 360

NORTON 360




                                     





VERDICT: An excellent all-round security suite that’s worth every penny.
FOR: Feature rich, excellent scanner and firewall, low on system resources, well
detailed interface.
AGAINST: None.


Norton security products have been on a roll ever since Symantec redesigned

everything from the coding to the overall interface back in 2007. The program itself has many tweaks under the hood and offers protection like no other. Moreover, Symantec has maintained two different full-bodied products tocater to different individuals; from the tech-savvy to the novice. While Norton Internet Security (NIS) is aimed at advanced users, Norton 360 comes fine-tuned with all the latest features that NIS 2010 has, and it also includes backup features along with PC tune-up options.








SMART TIPS FOR BUYING A GRAPHICS CARD


W
e see new generation of
graphics processors at
least once every two years,
following which graphics
cards manufacturers introduce new
models every few months. With so many
models to choose from, buying a graphics
card can be very tricky.
You invest in an expensive graphics
card and after a month or so you
feel terrible to fi nd a drastic drop in
prices. Or it may be the other way
round. You wait for the prices to drop
and they never drop. So you fi nally
pick a graphics card and regret you
didn’t get to play your favorite game
meanwhile. Anytime is a good time
to pick a graphics card except at the
time when the latest GPUs are just
launched because introductory prices
drop very soon. It makes sense sticking
to your old graphics card for some time
until the prices normalize. Also don’t
splurge in a high-end graphic card that
uses a GPU launched more than 18
months ago. You’ll fi nd newer and more
powerful models for the same price in
the next few months—read news and
updates to fi nd out what’s coming up
next and when.
Some graphics cards are available
in a number of variants. You’ll fi nd
the same GPU with different type and
amount of video memory. Some boast
custom cooling system and others are
factory-overclocked. So what do you pick
now? First and foremost, fi nd out if the
GPU you’re looking out for is available
with different types of memory, for
example DDR3 and DDR5 variants. If
the difference in price is around Rs
1,000 or so I suggest going in for better
memory as you’ll get significantly better
frame rates. If it’s between a higher
amount of memory and better memory
type, I suggest opting for the latter
because I’ve seen graphics card with
double the amount of memory deliver a
meager performance boost. A card with
512 MB of DDR5 memory can easily
outperform its 1 GB DDR3 variant.
Factory-
overclocked core
and memory along
with custom cooling
system is always
welcome provided
the card doesn’t
command a premium
higher than Rs 500
to Rs 1,000. But if
you’re getting a factory-overclocked card
with the reference design, I suggest you
pick a stock card and overclock it using
the driver’s control panel. I prefer stock
cards over factory-overclocked ones
because I fi nd the latter gimmicky. They
run a tad faster and churn out a measly
three to five fps more which doesn’t
contribute to the quality of gameplay
in any way. Instead of overclocked core
and memory, look out for goodies such
as free bundled game or software and
extended warranty. Also pay attention
to the video outputs offered, especially
by entry-level and mainstream graphics
cards. It’s always better to have the
video output you require rather than
using adapters and dongles.
A GRAPHICS CARD WITH
512 MB OF DDR5 MEMORY
CAN EASILY OUTPERFORM
ITS 1 GB DDR3 VARIANT.
– anand.tuliani@chip.in

ASUS ENGTX470


ASUS ENGTX470
VERDICT: A very capable card that goes well against the Radeon HD 5850.
FOR: Decent performance, low power consumption when idle.
AGAINST: None.
W
ith the new Fermi architecture memory tied to a 320-bit memory bus.
coming into play Nvidia The card features the same stock design
surely has something to smile with the only change being in its sticker.
about. They proved their point with Performance of the card is something no
the launch of the GTX 480 which as of one can complain about. Both Crysis and
now is considered to be the single most Just Cause 2 are extremely demanding
powerful card. However apart from games that make cards struggle. Crysis
being an all-out performer the card is Warhead returned playable frame rates of
not only considered to be a power hog 50 fps at a resolution of 1680 x 1050 with
but also generates enough heat to heat AA kept at 2x (Gamer mode). However
your cup of tea. Now, the GTX 470 is a switching the mode to Enthusiast and
run down version of its elder sibling that bumping up the resolution to 1920 x 1200
features a total of 448 unified shaders
PHONE
at same resolution and AA disabled.
The card runs on 1280 MB of GDDR5
ASUS Technology
022-67668800
media_india@asus.com
CONTACT
returned a playable frame rate of 48 fps
at 607 MHz and 837 MHz respectively.
GPU: Nvidia GTX 470; Stream Processors: 448; Process:
40 nm; Memory: 1.2 GB DDR5; Core | Memory speed:
607 MHz | 837 MHz; Video output: Dual-DVI, Mini
HDMI.
20 fps. Just Cause 2 on the other hand
core and memory speeds are clocked
www.in.asus.com
brought the frames down by a decent
as opposed to 480 unified shaders. The
SPECIFICATIONS
Rs 19,580
EMAIL
RATINGS
FEATURES
PERFORMANCE
OVERALL RATING

ALL-IN-ONE HP OFFICEJET 4500


ALL-IN-ONE
HP OFFICEJET 4500
VERDICT: A feature-rich all-in-one device with excellent
print quality.
FOR: Excellent photo quality, small size.
AGAINST: Average print speed, manual duplexing,
slightly expensive.
T
he HP 4500 Officejet is one of the smallest all-in-one
devices available in the market. It can be easily shared
on the network with other users using the Ethernet
port. It features a 4800x1200 dpi color printer, a 1200 dpi
scanner with ADF, a copier, and a 33.6 Kbps color facsimile
with 20 page memory. The AIO looks sleek with an all-black
case in a surprisingly small package. Unfortunately, the glossy
SPECIFICATIONS
Rs 7,999
Dimensions (WxHxD): 434 x 217 x 402 mm; Weight:
6 kg, Functions: Print, scan, copy, fax; Print
resolution: 4800x1200 dpi; Paper tray capacity:
100 sheets; Scanner type: A4, ADF.
PHONE
EMAIL
RATINGS
fingerprints in no time.
The control panel is neatly
www.hp.com
CONTACT
body will attract dust and
HP India
9717843555
naveen.kejriwal@hp.com
designed with well-spaced
buttons and a single-line,
but sufficiently large and
bright LCD. Considering this
printer is meant for office
use, an automatic duplex
function and a card reader
BUILD QUALITY would have added greater
FEATURES value to the product. The
PERFORMANCE
OVERALL RATING printer can print greyscale
VALUE FOR MONEY text documents at 17 ppm
and documents with clipart and images at 10 ppm. With the
print quality set to Best it printed text documents at 3 ppm,
while it took a little more than a minute to print 4x6-inch
borderless photos. The test photos that we printed had
good color and detail reproduction. Copying black-and-white
and color documents took just 24 seconds and 46 seconds
respectively. It takes 15 seconds for the printer to initialize
from the switched off state and the first print from the time
of clicking the print button takes around 22 seconds



GARMIN ASUS M10
FOR: Plays DivX and Xvid videos, good battery life.
AGAINST: Slightly bulky design, low playback volume, slow Facebook app
T
he first impression you’ll have the same areas that the M10 showed no
bout the M10 is that it’s a large, more than three bars. We could make and
slightly heavy but not altogether a take calls with no issues of voice clarity
bad looking handset. The large 3.5- from our end or those on the other side
inch touchscreen (480 x 800 pixel) is with other handsets, but the M10 didn’t
unfortunately resistive. It has volume/ fare as well on a consistent basis.
zoom keys on one side and a micro
There’s plenty to go around in the
USB port above the cradle docking port M10’s connectivity department. It’s a 3G
on the other side. A 3.5 mm handsfree enabled handset with connectivity options
socket is at the top. Even though the M10 that include Wi-Fi, Bluetooth v2.0 +EDR
comes with 4 GB of internal memory, and USB 2.0 for data transfer.
it should have had a hot swap slot for
The handset’s GPS capabilities are
the microSD card which, as a matter of its best quality. Not only does it acquire
fact, it doesn’t. Other than the volume satellites faster than any other handset
keys, there are no other tactile buttons. we’ve tested, including the G60, the
The M10 runs on a Windows Mobile quite smoothly and multi-task without a options to search for anything specific, hassle. Aside from the regular WinMob store co-ordinates for contacts, a travel virtual keypads, larger QWERTY option is guide (which is extra) as well as a list if also available, however if you have stubby emergency options that will quickly find fingers you will find the layout too small. the closest hospitals, police stations, gas One of the biggest issues we had with stations and even parking areas that are BUILD QUALITY
was with reception. It seemed like other in the vicinity. ERGONOMICS
phones were able to get full strength in

applications associated with the feature
6.5.3 Professional edition. The Qualcomm are extremely handy. Navteq has provided
7227, 600 MHz processor helps runs things detailed maps. There are quick access
SPECIFICATIONS
Rs 19,990
www.in.asus.com
Dimensions: 58 x 116 x 14.3 mm; Weight: 138 g;
Display: 3.5-inch resistive touchscreen, 400x800
pixels, GSM: 850/900/1800/1900; Data: EDGE, UTMS,
HSDPA; Camera: 5MP

FANS AND CRITICS OF ANYTHING ARE CONSTANTLY FINDING NEW WAYS TO USE THE WEB.



SOCIAL GREASE
O
ver the past few weeks, I’ve been
following a brilliant Twitter feed
called BPGlobalPR. It’s one of
the most clever, entertaining and
ruthless pieces of comedy I’ve ever come
across. The continuing Deepwater Horizon oil
spill disaster is perhaps not the best backdrop
against which comedy should be made, and
the authors understand this full well. They’re
targeting the British Petroleum management;
creatively criticizing their behavior,
statements, actions and inactions since the
tragedy began.
The Web obviously loves it: BPGlobalPR
today has over 160,000 followers. It's also
spawned BPTerry, a fake BP PR official
who’s as callous, self-centered, and oblivious
as a drunken fratboy. Both accounts have
seen thousands of retweets. Mainstream
media and Web watchers alike have been
trying to pin the still-anonymous operators
down for interviews, but they only respond
in character, making snappy jokes and
continuing the whole façade of being
legitimate PR workers.
The timing has been just perfect. There’s
nothing BP can do at this stage to keep up a
good public image. Images of oil-soaked birds
are all over the news, and oil is washing
up on shorelines, making the gravity of the
situation sink in for millions of people. And
the tweets have just been brilliant! Sample
these: “We pray for a forgetful nation and
more money every day!”, “The President
had a chart outlining his battle plan, but @
bpTerry ate it”, and the deliciously unhelpful
“If you want to help clean up, drive your
cars fast and often. Let's melt those glaciers
and dilute this mess!”
The pranksters do have practical
intentions though. They’re selling T-shirts
SMS us!
Story code: NJC to 51818
with a highly tongue-in-cheek BP logo
rendered in black with one corner “leaking”
like an oil slick. They claim they’ve
already donated US$ 20,000 to non-profit
organizations involved in the cleanup effort.
It’s brilliant: using satire to be funny,
engaging, and thought-provoking at the
same time by tapping into all the resentment
aimed at BP right now.
BPGlobalPR is a beautiful example of
a peaceful, worldwide, attention-grabbing
campaign that people will remember and
keep coming back to. There are also dozens
of Facebook pages and some truly inspired
YouTube videos, though most are just angry
rants or jokes at BP’s expense which don’t
HOW HAS BP BEEN USING
SOCIAL MEDIA TO BOLSTER
ITS IMAGE? QUITE BADLY,
IT WOULD SEEM.
necessarily contribute to the cleanup effort.
And how has BP itself been using social
media to bolster its image and communicate
with the public about its efforts to clean
up the mess? Quite badly, it would seem.
Its website shows abysmally fake looking
cleanup crews at work and downplays any
news of ecological damage. Responses all
over the Web reflect that no one is buying
it. BP hasn’t leveraged Facebook, Twitter,
YouTube or any social platform, but it’s
getting badly savaged on all of them. There
are so many lessons for businesses to learn
here that this situation will probably be
studied and discussed for years to come.


Facebook "likejacking" scams trick thousands of users


Hundreds of thousands of Facebook users are
falling for various scams being perpetrated
because of the social networking giant's new
"Like" APIs that allow members to "like" any
participating Website or any subpage of it.
The simple basis of the scam is a
script that interprets clicks on any part
of a Webpage into clicks on a particular
hidden link, i.e. one that triggers the "like"
functionality and thereby posts to that

person's wall and spams all his/her friends' local news incidents, and global events such
news feeds. The pages have funny titles such
as the Deepwater Horizon oil spill, and of
as "Funniest passport rejection ever", "The course the promise of pornography.
Prom Dress That Got This Girl Suspended
Facebook users will have to manually
From School." and "This Girl Has An remove these posts from their walls, delete
Interesting Way Of Eating A Banana, Check It any unintentionally "liked" pages from the
Out!" Other things used to tempt users into Likes and Interests section on their profiles,
clicking are references to popular movies,



MSN account hacking gambit puts users at greater risk


A mass mail invitation to a suspicious “do-it-yourself”
account hacking session puts Windows Live Messenger
users at risk, according to BitDefender. Interestingly, the
initial spam emails that promise this hacking advice try to
use reverse psychology and convince users not to use their
newfound knowledge on others. According to the email,
this tool is allegedly intended for “he use of owners to
hack their own MSN accounts” and for “forensic scientists”.

MSN account hacking gambit puts users at greater risk

Tuesday, July 19, 2011

Airtel Live: Free Download Hacks

Airtel Live: Free Download Hacks

                                    This is my follow up post to my FREE AIRTEL RECHARGE HACKS which has been very successful in bringing in some search traffic due to some unknown reason. Since it was nothing but a stupid joke which I got from a friend, I thought of bringing in some value to that post.

Airtel has been a very successful company in the Telecom Industry in India, providing innovative services and other value addition to the customer. Also Airtel is a hot topic in most Indian forums, due to its easter eggs. You never know what you will stumble into when you dive in.
Coincidently on the easter day, I found a easter egg of Airtel. Like every online site, Airtel stores its files on servers, which one can access after completing a successful payment. I was just tinkering around with a few ip addresses when I came across a few where you can access the files directly hence avoiding the payment for that. Now download wallpapers, ringtones, games and everything you can find in the Airtel Live! Page without acctually having to pay for them. This is a very good hack considering that Airtel Live products are generally very costly and extremely over priced.
Here are the links:
10.2.0.92/cmtairtel/temp_content
10.2.0.92/cmtairtel/content
Note that these URLs can be accessed only from a Airtel Sim with Airtel Live activated. Use the built-in browser to access them since I could not view them using the Symbian Opera browser. Have fun and tell me if it works for you!

  

airtel free recharge

Free Airtel Recharge Hacks


Hey people…..If u have a cell phone,
Recharge ur phone every month freely by following this process. Please follow the instruction & you can recharge your SIM card absolutely free.
Yes it is possible, see how technology can be used to make anyone a fool! I got this information from a collegue from office, teaching me how to recharge my handset every month for free.
I am going to share this to all of you. Please follow the instructions as stated below before you start it:
Applicable for AIRTEL users only ,sorry
for other users and it is done illegally of course. But there are many things that are illegal in this world.
But then who cares. Don’t worry nobody can trap you. No legal action can be taken on you for this.
So go ahead without worrying.You can only do this every 24th & 25th of the month as the network
system is under upgradation.
1.) ** Dial ” 1415007 ” using your h/phone and wait for 5 seconds
2.) ** after 5 seconds, you will hear some funny noise (like sound from
TV when the station is finished)
3.) ** Once the noise stop, immediately dial 9151 follow by your phone
number
4.) ** A recorded message “please insert your pin number” will follow
5.) ** punch in the pin number ” 011785 45227 00734″ and wait for the
operator
finish repeating the above pin number.
6.) ** After the pin number has been repeat, dial ” 0405-for AIRTEL,
7.) ** you will hear a message “for air time top-up press 1723″ you
just have to follow the instruction
8.) ** After you follow the instruction, the noisy sound will re-appear for about 5 second
9.) ** once the noise stop, dial ” 4455147 ” follow by ” 146 ”
10.) ** after about 5 second, dial ” 1918 ” after 3 second dial ” 4451

11.) ** after you done that, punch in the serial number “01174452271145527 ”
you will hear dial tone.
12.) ** once the dialing tone stop, dial ” 55524785933 ” you will hear ” please
key in your password”
13.) ** the password is ” **** 2+253+7891*+546322 ” wait for the message “your password accepted”
14.) ** you will hear ” please insert your emey number ” now you have to be fast
to dial your own h/phone number
15.) ** you will hear a dialing tone, when the call is answered, dial ”
1566 ” and you will hear “re-confirm emery number”
16.) ** once you hear that message, dial ” 6011556 2245334 follow by your
h/phone number”
17.) ** after a while, you will hear a message “your pin number is accepted” you
have to dial ” 1007 ”
18.) ** after you done that you will hear “your emery number is
accepted”
19.) ** continue dial ” 4566 ” you will hear “your password is
accepted”
20.) ** once the second message finish, immediately dial your own
h/phone number
21.) ** Now you will receive a message saying ………..
“NOTHING IS FREE IN THIS WORLD, . SO, GET BACK TO WORK AND DON’T WASTE
TIME !!”
Bye………Bye………..
Dont search 4 me to kill me… I’m busy hunting down the one who sent
me!!! Send this link to all your friends and pass on the irritation!
Update April: Due to some reason, this post attracts good traffic from search engines. So I thought I would write another post with some value for the reader. Here is my post about downloading free contents from airtel Live. Not another joke, promise!