Friday, March 27, 2009

MicroMouse Part-I


Recently, I have been working on another project which is related to electronics and hardware, in which I always had my interest but never got enough opportunities to work full fledged on any of these things. But now, I got one and thought it would be a nice thing to share.

Well first of all, it's not the micromouse which one is supposed to build for a technical fest competition. This is for real, yeah it can solve a maze on its own, and we havnt used the components of any car (\o/).

Okay, lets start with the basic architecture of the machine. Well there were two approaches to it, Firstly, we could have the logic device mounted on the machine ,i.e. Use a microprocessor, sadly I had started developing it in last semester, so at that time Microprocessor looked like a very big term. Second approach was a bit simpler for me, that was to connect the uMouse to the computer and let Mr. Computer dictate that poor creature on his own terms.
Well, we followed the latter.

Next, was the decision regarding the mechanical design of the machine, well we took a brave decision and went ahead with a two wheel drive (and with a small support of a small supporting wheel at the tail, yeah this mouse had a tail even).
The stability of the mouse was maintained by keeping the vehicle (maybe I should be writing mouse) low floored.

Also, there was a very important decision to be took and that was regarding, which type of motors to be used. In this case precision was to be given the maximum priority, so we went with stepper motors. These are sort of digital motors, they would move totally by your command, one can control them even to the degree of 1 to 2 degree of angle rotated by them. Well but good things come at a price, (yeah they were highly priced too) and that was their driver circuit. the first time I saw these motors, I was in a shock, I had 6 wires infront of me and till then I had the believe that almost every electrical appliance requires only 2 wires to get the requisite power to drive.
But this time the scene was different, stepper motors require a driving circuit for driving them, one is required to buy and use a UCN chip for the same.

The biggest problem that I faced in my earlier projects was that, the motors had a different voltage rating than the controlling circuit. well that's generally not a very big issue for electronics junkey type of people but anyhow I was dumb enough to be unaware of the solution of using a voltage regulator for the same.
It is used to convert a high voltage input into a low voltage supply, and yeah its very much different from a transformer. (In practical use it will screw your life, as it blows up very often, I remember we screwed up 10 of them on one single day ).

The next hurdle was regarding how to take the input from the vehicle and for that there was a simple solution of using IR sensors, these were the things which never gave a problem (I guess so, or maybe I wasnt made aware of them ). They were easily available, worked fine all the time, the ircuit for assembling them seemed easy and stable, yeah the only problem that i can remember related to sensors was the range of the sensors, which was supposed to be adjusted again and again, and their physical orientation on the vehicle. The physical orientation of the sensors on the vehicle was a tricky thing as they were required to check for he presence of walls on front and sides, as well as the alignment of the vehicle.

The next thing to be worked upon was how to connect the vehicle to Mr. Computer. In this case first we were aiming at using bluetooth network to communicate with the computer. But, after one full day of aggresive googling when we werent able to find any device which we could have been mounted on the vehicle and could have communicated with with the external circuits, we dropped the idea and went in for RF (Radio Frequency) Transmitters. and they worked we were very easily able to get a chip to do the same, and also construct an antenna for the same and make the transmitter and reciever circuits. and it worked too..

The final thing in the development of the Micromouse was about how to connect the RF transmitter reciever circuit to the computer and how to operate it, and also about which coding language should be used for making the algo. The answer to "How to connect??" was simple and it was the parallel port of the PC. Regarding the language I was in the opinion of using Python because of my recent obsession for the same, but since other members of the team were not familiar with Python we went for good old 'C'. The main hurdle in this was about how to connect to the parallel port in 'C', earlier versions of Windows (those before XP ) provided direct peripheral access to the ports but they screwed up that from XP onwards. So, we had to use a DLL for the same which could easily communicate with the device driver of the port. and luckly it worked after a little bit of tinkering around with the things. We were able to take input from the RF reciever as well a give output to the RF transmitter.

After we were almost done with everything, now it was time for us to get on to testing. I scare this step the most, but this time things went in altogether a different way. It seemed like everything is crashing and falling around us. Well, wha else could I say, we even fused the MCB of the whole building, once(Although that was done in the process of providing us with proper lighting). But anyways, after a few more trials in three to four days things started getting sorted up and we were finally in a situation when we could have created a maze and do trials on it. And yeah although the machine didnt turned out to be a perfect Micromouse at the end, but it was quite close to that. Atleast, it crossed the expectations of all the team members. Or say, all the team members crossed their own expectations.

Well this part 1 was regarding the technical aspects of the project. I would be focusssing the second part of it on the social aspects of the project. which would be like how we (the team) machaofied during the process of making this machine. and yeah it would also focus on our great Team from Miranda House. and a lot many things, so do keep watching the blog for that.