Thursday, July 22, 2010

First step towards robotics for dummies

In my last post you listened my boring story of how I got interested in field of robotics. Now lets get to the point. This post is for those robotic enthusiasts, engineering students who don't have any prior knowledge in robotics and want to kick start their journey in field of robotics. Basically there are three parts in the field of robotics:-1. Electronics Part
2. Programming Part
3. Mechanical Part
Each of the above part has its own importance. Okay, one can handle all the parts if you are making some simple & conventional robot[like some line follower/obstacle avoider]. But if you want to try something different like robotic arm/quadropter etc then you need different team members from these above mentioned fields. You should have a basic knowledge in all the above mentioned fields. Then after acquiring basic robotics skills you can make yourself specialized in any one field mentioned above.
Importance of TEAM:- To better learn robotics you should always work in teams. An ideal team can consist of three members preferably one from electronics, one from computer science and one from mechanical engineering. A single student can not master in all the three fields.  If anyone wants to learn robotics he needs to have lot of patience. So If you are a single then you will smash off things if you fail multiple times. And if you are in a team then atleast your team members will provide you some support. Also if you are working as a team you can handle different parts as per your interest. For example a computer geek can handle programming part easily on the other hand he might not get a shit about electronics or mechanical part. In the same way a mechanical guy can easily design the robot chassis while a computer or electronic guy might not do it well. Similarly a electronics freak can design the circuits better. So better work in teams. But before choosing your team members make sure that your team members are not short tempered because you are not going to achieve success in one or two shots. May be you will fail a hundred times but never loose the hope. Always divide your work in small modules and work on them individually first. This will also help you in debugging in future. 
What's the right TIME to start off? -- Well I think you should start at the end of first year. Make sure you have learnt these courses in your college--
1. Programming in C/C++[Both theory and practical]
2. Basics of Electronics and communication Engineering
3. Elements of Mechanical engineering/Engineering Mechanics.
By the end of your first year you will be done with all the above courses. As I told you earlier each one of you must know the basics of robotics so all of you should start learning robotics individually in your summer vacations after first year.
How to get started? -- In all engineering colleges every student gets a vacation of about two and a half months in summer after his/her first year. Everyone usually wastes this time without doing anything. This time is very precious to you if you want to learn something extra. I am not forcing you to waste whole vacation in practicing & learning robotics. You can always go for an outing for half month with your family and friends. But please not more than that. Okay I am assuming that you understand electronics and programming like me. And I am telling you I am an average engineering student. So don't worry:-). To start off you need these important things:-

1.A good microcontroller development board having some test switches, LEDs and motor driver I.Cs.
2. A USB programmer
3. Atmega16 microcontroller
4. DC motors
5. Stepper motor/Servo motors
6. 16x2 LCD display
7. A 9v adapter to power your board.
8. A multimeter
9. A good quality soldering iron with solder and flux.
10. A laptop having a USB port for programming

I will recommend you to buy all these things before getting started. I know you might not be in a position to understand some of the terms in the list above. But leave it for now and go to some online robotics store and order these things as early as possible. If you are a Delhite then you can search for these things in Lajpat Rai Market near Chandni Chowk. You will get everything there. I don't know much about other cities in India. If you don't want to take the head ache of searching things in the market like a dog then you can order these things online. Well, you can assemble the whole microcontroller board, USB programmer by yourself by copying circuits available on the internet. But I don't want to freak out your head copying these circuits on P.C.B so you should buy a ready made one. If you are an electronics freak then you can try building these circuits in home but remember you need to know the use of a multimeter and you should have enough soldering skills otherwise you will burn your I.Cs. Here I am uploading pictures of all the things listed above so that you can have a look how they look like:-
A microcontroller development board
This is the iBoard designed by ThinkLABS. Nice board to start off.

A USB programmer

This is a USB programmer developed by Extreme Electronics India.
Atmega16 Microcontroller

    This is Atmega16 M.C.U[Microcontroller unit] developed by Atmel.
DC Motors
 Servo Motors
This is a standard Futaba S3003 servo.
Stepper Motor

16x2 LCD display

Multimeter
Soldering Iron

I will recommend you to buy xBoard v2.0 from extreme electronics or iBoard v1.0 from ThinkLABS robo shop. They are nice boards to start with. They have all the required  features like motor drivers, connector for connecting a standard alphanumeric 16x2 LCD display, test switches, test L.E.D, I.S.P header, RF Module[with xBoard v2.0], potentiometers, IR reciever[with xBoard v2.0], analog sensor ports etc. They will cost you around Rs.1200-1500. Similarly buy a decent USB programmer from any roboshop. 

Now friends its time to say good bye. I will meet you in my next tutorial "World of Microcontrollers".
Enjoy this video..

Sunday, July 18, 2010

Should I start a blog on robotics?

Should I start a blog on robotics? I was very much confused whether I should start writing a blog on such an old beaten topic "robotics". There are thousands of blogs on robotics available on the net. Then why should I write a blog? Then I thought if there are thousands of blog on robotics then lets increase its population by 10 raise to the power 0. :-) Okay leave this question as of now. 
Let me introduce myself first. Well, I am Shivesh Kumar, the author of this blog. I am a second year Mechanical engineering student at National Institute of Technology Karnataka Surathkal. Before joining this institue I was not even interested in technical things. I was more interested in some basic science subjects like physics, mathematics. Even I did not want to join an engineering college. And as we know there is a very little scope for basic science graduates in India so to have better job prospects, a better life in future I decided to join an engineering college like every other non medical science student in the country. Unfortunately I didn't get into a renowned IIT but at last I was end up getting mechanical in NITK Surathkal.
And this story begins at this institute itself. It was the end of October last year when I saw some robotics events at our college's tech-fest "Engineer". I got the feeling of being an engineer. These three words of the tag line of our tech-fest  "Think, Create, Engineer" inspired me very much. I started following all the technical events of our college. I participated in many events but failed. Well that was quite obvious for a lazy guy like me. I have a very bad habit of doing things at the last moment. I don't even start anything before someone puts a rocket behind my ass. So to convince myself that I am a bond I put those events in "peshaab" category[Sorry, only an nitkian can understand this]. I knew I could not learn robotics on my own coz that requires a lot of will power and enthusiasm. Then I got to know about this company ThinkLABS(sexy name na?? and they write IITB behind this makes it more sexier). This company offers a 1 month summer training and internship program in four cities Delhi, Mumbai, Pune and Chennai. And fortunately I am a resident of Delhi. So I decided to learn robotics arm from Thinklabs. Though there are many companies in Delhi which offer these kind of programs but I joined thinklabs due to its name & fame[biggest mistake of this summer vacation]. They charged me a fees of Rs.10500/-. Before joining I thought it's not a big amount as they are providing a free robotics kit. Though some of my friends and seniors warned me that its a big amount and this course will not be worth that. But that robotics worm in my head told me, "Look Shivesh go ahead and join this course. The kit should be around Rs.6000 and what if they charge 4500 for teaching extra?" So I joined this course.
Strictly speaking if you want to learn robotics and you are not a student like me then never join such courses. They are a total waste of time and money. I am telling you it's my own experience. Coming to kit they provided, they provided us arm chassis, 3 dc motors[don't ask about quality :-( ], atmega16 development board[OK type], usb programmer[OK type], 3 pairs of encoder discs and encoder modules. They provided us motors that can not even bear the arm's weight[wtf?]. The arm chassis was a total shit. They didn't have a perfect course curriculum. The kit didn't reach on time. Even on the last day we got some parts which were necessary for building the arm. We needed to build an robotic arm[Articulate arm leave it if u dont understand now] having a function of direct kinematics[leave this too]. That arm had not even a chuck/claw to grab things. Their end effector was a pencil tip[U say this robotics?lolz]. Now coming to the scenario in class, the class consist of nearly 40 students majorly from outside Delhi. They were from  different state engineering colleges[No IITian even no NITian except us]. Most were 3rd or final year students all from electronics and communication branch. We didn't get anything in the class as most of the students know already what was being taught and whenever the teacher asked anything they nodded. We were as miserable as a 6th class student sitting in an IIT coaching class. We were the two Einsteins of our class who had just completed their 1st year and are from two branches(mechanical and civil) which have nothing to do with this electronics shit. As the days passed, my interest in robotics evaporated. We passed our time in class by surfing net and abusing this uninteresting robotics sitting at maximum distance from instructor. I was very desperate and was just waiting to get my certificate. This was the scene at closing ceremony of this program. We barely managed to make an arm as per curriculum and the best part of it, it didn't work. The last words from the mouth of our instructor,"This is the last day of this program. So try to program this at your home[wtf why I came here?goddamn it!!]. Do your project and keep in touch. I will provide you online assistance." Oh I forgot to tell you about this so called industry based project, one needs to do a project to get certificate from thinklabs. Me and my friend Parth decided to do something interesting and productive. So we chose to build a card shuffling and dealer robotic arm. At the time of deciding our project we didn't think about the technical difficulties. We just wanted it to be fun. I decided to take the programming part as I studied C++ in 12th grade and my friend took its mechanical design part. I have the feeling of programming but I didn't learn anything in embedded C there. On my way back to home after attending the last class and eating a burger in McDonald's, the robotic worm in my mind again gave me an interrupt,''You wasted Rs.10500, one month of summer vacation here and what are you taking away home? Just this robotic arm model which didn't worked. Now if you need this certificate you need to learn robotics on your own." This robotic worm programmed my mind like this--
while(1)
{
Shivesh you have to learn robotics;
}
So I spent sleepless nights searching about robotics tutorials on the net. My knowledge in this field increased as the nights passed. Some of my achievements were I managed to run stepper motors in steps, run simple dc motors in steps and with any velocity, interface 16x2 LCD display with Atmega16, interface some other input/output devices etc. I learnt everything which I needed to start working on my card dealer. I prepared an algorithm of the program and programmed it. I got success and my program worked after 2 nights of serious debugging. This was my story in which I learnt basics of robotics. Its not the end I am still learning it but now with double enthusiasm.
These are the six reasons why I started this blog--
1) I just wanted to have a blog.
2) I wanted to share what I have learnt.
3) Orient some dummies[please don't take it as an offense] how to get started in the first year of engineering without wasting their much of time & money.
4) Learn something from others.
5) Tutorials for making line follower, intelligent line follower, light follower, micromouse, obstacle avoider, my shit follower & avoider[;-)] blah blah are readily available on internet. But there were very less tutorials on building robotic arm. So I felt the need to start a blog on arm robotics.
6)The information available on net is very vast. It will take you hours to search about your problem and the probability of getting a feasible solution is very low. I will try to teach from very basics. Just follow me, it will be easier for you to learn.
Well my first post ends here. My next post will be--How to get started?..Till then bye bye & take care..
Enjoy this video and get a feeling of being an "Engineer"!!..