personalrobotics.nl
Portal to the world of personal robotics.
| Robot news |
|---|
| Spykee Community |
|---|
|
| Chat with i-Qbot:01 |
|---|
|
|
| 50 Euro Robot stuff |
|---|
NEW NEW NEW![]() Part 2 ![]() Part 1 Backgrounds![]() ![]() Click on image to see high resolution picture. Then right-click large image and select "Save As" or "Use As Background". |
| Download RobotWorld simulator |
|---|
|
| i-Qbot:01 video tutorial |
|---|
|
| 50 Euro Robot - part 1 |
|
|
| Monday, 09 April 2007 | |
![]() Some people create paintings, some people create music, some write poems ... and some create robots! It can happen any moment. You are just awake and getting out of bed, or you are sitting in the train staring outside the window, or you're under the shower and suddenly there is that sudden moment of creativity when you mentally see and understand what you should create! I'm not sure when this moment occurred to me, but suddenly I knew I had to make a mobile robot that people can program themselves for less then 50. Probably because I'm Dutch money matters, so I wanted to make a cheap robot. On the other hand, I know many young people that want to build robots but do not have the money to buy for instance a Lego Mindstorms or Boe-Bot kit. Now that I had a vision I could make it my mission to see whether I could make a mobile and programmable robot for less than 50, build it and tell it to others. This is my story ... ;) Read it, do it, have fun and let me know at my forum at www.personalrobotics.nl what you think of it! What do we want?I knew that I wanted to make a robot for less than 50, but what should this robot look like? It is always a good idea to start with a wish list of things that you want your creation to contain; it's called the requirements of your design. The first requirement was simple as it is the whole goal of this project:requirement #1 The total costs of the parts used for making the robot should be less than 50. This was the whole idea of my vision. I exclude shipping costs and only count the actual price of the parts. The reason for doing so is that I only want to use standard parts that are available at various places. While someone could just go to some local store to get the parts, others prefer to do a postal order. But what would my second requirement be? This in fact was also easy. I programmed several other robots in the past. From this I know that programming robots is only fun when it can be done easily and without pain and frustration. While some people prefer to use exotic software and hardware tools to program microcontrollers, I'm more a guy who likes to use plug-and-play components. Therefore, the second requirement has to do with how easy it is to program the microcontroller that will be used for the project. requirement #2 A controller board should be used that can be connected to a PC using USB or serial connection, and which comes with a PC-based programming environment. The next requirement that I set for myself was that I wanted to make a mobile robot that is able to drive forward, backwards, turn to the left and right and whose velocity can be varied. requirement #3 The robot can drive forward, backwards, turn left and right with varying velocity. The final requirement I added to my project has to do with how the robot can act in the real world. While programming a fixed set of pre-programmed actions is nice, it's much more fun to program a robot that is able to sense its environment such that it can react to new situations. requirement #4 The robot should be able to sense its environment and to react properly to the sensor data. Now that I knew more precisely what I wanted to realize, I could start planning and searching for the rights parts. The overall planThe robot that I want to build consists of several parts (see also Figure 1). The central part is the controller board that contains a microcontroller that can be reprogrammed multiple times, so that I can do new experiments and write new programs. Then, as the robot should be able to turn to the left and right it should have two motors. Maybe there exists some clever mechanical designs that can make a robot turn left and right by only using one motor, I want to keep things simple and easy.![]() Figure 1 - Basic robot parts. Connecting motors to a microcontroller can almost never be done directly. The reason is that motors needs high currents that can not be delivered by microcontrollers. The solution is to use some electronics parts that convert the low current steering signals of the microcontroller into high current signals for the motors. These parts make up the motor driver. Another part of the overall robot design is the power supply which is needed for both the controller board and the motors. The final parts needed are the sensors that are used by the robot to sense its environment and to 'intelligently' react to the things that are happening in its environment. Selecting a controller boardThere are many alternative controller boards that can be used for robot projects. They range from assembling a controller board yourself to buying a PC-based solution, such as a PC104 board. While not everybody would be capable of designing and soldering their own controller board, and PC104 boards are too expensive for this project, I needed to search for a standard and ready-to-use controller board as the brains for the robot.One of the best known microcontroller for hobbyist projects is the BASIC stamp microcontroller developed by Parallax. The BASIC stamp is a microcontroller that can be programmed in the PBASIC language that is developed by Parallax. A program can be stored in EEPROM memory so that even when the power is off the microcontroller remembers the program. Programming in the PBASIC language is easy and different boards are available on which the BASIC stamp microcontroller can be plugged onto. The only drawback of the BASIC stamp for this project is the price: even the full budget of 50 would not be sufficient to buy a BASIC stamp microcontroller and board. ![]() Figure 2 - Arduino board. There exists alternative solutions that are comparable to the BASIC stamp. For instance, the BasicX, OOPIC and PICAXE are look-a-like solutions that have been developed over the past few years. While they differ in programming language all are easy to use for your own project. However, the only problem is the price they are all too expensive to built our 50 robot. Meanwhile I was getting a little frustrated because I could not find a cheap and easy to use microcontroller. In the end the solution came from a colleague if mine who told me about a new microcontroller board that he had bought and was testing. The board was easy to program and the part that I liked most the price was less then 23! The microcontroller board that my colleague told me about was the Arduino board. Arduino is an open-source physical computing platform based on an Atmel Atmega8 or Atmega168 processor. The one that I selected for this project is the USB-based Arduino board with Atmega168 processor. It has 13 digital pins (of which 3 can be used for PWM output) and 6 analog inputs. For a basic mobile robot project like this one these inputs and outputs are sufficient. In particular the PWM signals are usefull for varying the speed of the motors. An other aspect of the Arduino board I like is the free Arduino IDE that is used to program the board. The programming language that is used is called Wiring. This language is based on the open-source language called Processing that was developed as an easy-to-use language for students, artists, designers, architects, researchers and hobbyists. The language resembles the C language syntax. Figure 2 shows the Arduino board and Figure 3 shows the Arduino IDE and a basic programming example in Wiring of a blinking LED. ArduinoUsing the Arduino board is easy. First you need to download software from the Arduino website. The software consists of the Arduino integrated development environment (IDE) and a USB driver. Software packages for different computer systems are available, including one for Windows. Besides the software the Arduino site also provides many tutorials on how to use the Arduino board. The complete Wiring language reference manual is online as well as links to other projects that uses the Arduino board.The first example that I tried was to make a LED blink. For this I first connected a LED to pin 13 of the board. A handy feature of the Arduino board is that pin 13 has standard a 1k resistor, so that you directly can connect the LED to pin 13. Be aware to connect the LED correctly by connecting the positive pin (the longest leg of the LED) to pin 13 and the negative leg (short leg) to the ground GND. Before the Arduino board should be connected to the PC the FTDI driver should be installed. This driver allows the Arduino board to communicate with your PC using a virtual COM port. I went to the website http://www.ftdichip.com/Documents /InstallGuides/ to get the latest driver and installation instructions. ![]() Figure 3 - Arduino IDE. The Wiring example code of a blinking LED is by default available from the menu of the Arduino IDE. Goto File -> Sketchbook -> Examples to open the blinking LED example. Executing a piece of code starts with uploading the code to the Arduino board. Before uploading the blinking LED example to the board one should select in the Tools -> Microcontroller menu the type of processor you are using; in my case the Atmel168. Next the COM port should be selected. Because I'm using the USB Arduino board I needed to select COM3, but this may be different on your computer. Of course, I assume you've connected the Arduino board to your computer. Now that everything was setup correctly I could upload my program. The right steps to do this are 1.Push the Reset button on the board. 2.Click the Upload button in the IDE. When everything went correctly the message Done uploading. is shown in the status bar of the Arduino IDE. After a few seconds the LED starts to blink; my first Arduino program was working! YEAH ... The Robot BaseMy first major problem selecting a controller board for the 50 Robot was solved by choosing for the Arduino board. It was time to start solving the next problem: the robot base. The 50 Robot needs a base, together with wheels, motors and gearboxes. Finding a suitable base for a low price was my challenge.![]() Figure 4 - Tamiya Truck Tire Set (item 70101). The most important requirement (besides the costs) was that the base should allow the robot to move forward, backwards, turn left and right. Although some smart mechanical mechanism would allow to do this with only one motor, I wanted to have a two motor solution. With two motors it would also be more easily to program basic robot actions such as Turnleft, Forward, etc. Besides the freedom of movement the base also needs to carry all other parts of the 50 Robot, such as the Arduino board, batteries and other electronic components that will be used. My first idea was to use an electronic toy car as the base. During my graduation assignment in 1997 I build a neural-network controlled car that could balance a pendulum that was mounted on top of the car. The car that I used then was a defect Radio Controlled (RC) car that I had bought in a toy store in Amsterdam for only 2,27. The electronics of the RC car was defect, which was the reason of the low price, but the motors and gearbox were perfectly fine! Of course I had a little luck then that I found the RC car. For this project I wanted to see whether I had luck again. For a few days I went to visit several toy stores to see whether they would have toy RC cars that could serve as a base for the 50 Robot. Many nice looking toy cars I found and even some of them could technically have served as a base for this project. Unfortunately the prices of the toys that I found were too high. So I needed come up with another solution. The other solution I was thinking about was to buy parts to construct my own gearbox with wheels and motors. The base itself I could make from wood. After spending some time surfing the Internet I learned that there exists a huge and exciting world of hobby RC model trains, airplanes, cars, boats, helicopters and more. One of the companies active in this field is Tamiya, which has an extensive catalogue of items to build RC models. I discovered that Tamiya offers many wheels and gearboxes of various sizes. Finally I selected the Twin-Motor Gearbox (item 70097) together with the Truck Tire Set (item 70101). ![]() Figure 5 - Tamiya Twin-Motor Gearbox (item 70097). The Twin-Motor Gearbox (see Figure 5) is a construction kit that contains several parts, such as gears of various sizes, axis and motors. The manual explains that you can select one of three different setups for your gearbox. As there is only one setup that has two independent motors (the 'C type low speed' setup) making a selection was not difficult. Two independent motors are needed for making the robot turn left and right. The Truck Tire wheels (see Figure 4) did fit perfectly to the axis of the gearbox. Other partsWith a microcontroller and robot base we are almost done. Because I also wanted to do some experiments with different sensors and electronics I ordered a breadboard (See Figure 6) so that I can easily add and remove electronic components. I also purchased a Ball Caster, because a base with only two wheels is not stable. Again, Tamiya offers the right ball caster for this project (see Figure 7).![]() Figure 6 - Breadboard. The finals parts I purchased were a battery holder (4xAA), a red LED and a 1A H-bridge motor driver. I used the standard SN754410, which can be used to drive two motors. ![]() Figure 7 - Tamiya Ball Caster (item 70144). A careful reader would have noticed that I have not bought any sensors! The first experiment I will do with the 50 robot is to make it follow a light source. For this I use two light sensitive resistors (LDR's), which I already had as a leftover from an older project (hey, I wanted to keep things as cheap as possible :). In the next part of this article I will explain how I assembled everything and wrote my first program! ![]() Figure 8 - Various parts: battery holder, red LED and H-Bridge motor driver. ResourcesLego Mindstorms NXT BASIC stamp and Boe-Bot Arduino board PC104 PICAXE BasicX OOPIC Processing |
|
| Last Updated ( Monday, 09 April 2007 ) |
| < Previous |
|---|
I will start writing the second part very soon. I've been busy with setting up my Dutch Robots & Gadgets webshop (www.robotsandgadgets.nl). I hope to open this shop very soon when I have received my goods! :)
I have no secrets for the parts. I ordered them in the USA, at a company called Spark Fun Electronics. I got very good service from that shop (fast delivery)!
Hello Albert,
Very, very interesting.
Just a little question, i dont find yours parts prices in Europa, but in USA or China.
In Europa the prices seems to be 50/100 per cents more expensive than in Dollars :-(
Have you a hide, a secret, supplier in Europa ;-) ?
Jean Louis
thanx ...
I will start writing the second part soon, but expect it to publish somewhere next month!
Albert
Hi,
Good article, i will buy one when you finnish 2ͺ part with a list of all pieces and how to assemble it ;)
| Main Menu | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| SMO ShoutBox | |
|---|---|
|
|
| Robotics Book (Dutch) |
|---|
|
| Robots & Gadgets (NL) |
|---|
![]() 3D Poki Pico 4,95 ![]() Trooper 11,95 |


















