I am brand new to robotics and I am about to try and build my first robot as a learning experience to get familiar with the basics (based on the "Start Here" design by Frits). I'll be using and Arduino Uno board instead of a Picaxe however. After reading some other posts I have come up with a list of parts and several questions. I actually have some of these parts already but wanted to sanity check that I am on the right track. I am pretty comfortable with learning the programming aspect of this but want to make sure I have a good start on the right hardware configuration. I'm a little lost when I see postings discussing use of resistors, transistors, and capacitors, but I am anxious to learn all this (and it sounds like this simple robot is a good way to get started). So here's my parts list.
1 Arduino Uno
1 Adafuit Motor Shield http://www.adafruit.com/products/81 (decided to use this vs. a breadboard with a motor chip)
1 Sharp IR sensor http://www.pololu.com/catalog/product/1136
1 Standard servo (Radio Shack) to control the IR sensor
2 DC geared motors (1:120) http://www.pololu.com/catalog/product/1121
2 Solar robotics GMPW-B Wheels (http://www.pololu.com/catalog/product/199)
Batteries and wiring for (9v or 4 AA)?
Here's a few questions:
1. I'd like to also experiment with an ultrasonic sensor (SRF-06) - http://arduino-direct.com/sunshop/index.php?l=product_detail&p=115
I did not see the SRF-05 for sale anywhere, but I assume the SRF-06 will work fine with the hardware list above?
2. I saw a post which said continuous rotation servos can also be used to drive wheels so I'd like to experiment with that as well. What are the basic pros and cons of using DC motors vs continuos servos for driving the wheels of basic robots? Do the servos give you more precise control of position? Are DC motors simpler to make work? etc.... Can you recommend a continuous servo for this application? Would this one work ok: http://www.pololu.com/catalog/product/1248 (SpringRC SM-S4303R)?
3. Since I want to control motors I assume that drives my decision to use a motor shield and that I can just use the other available pins on the motor shield (that connect to the Arduino) to connect my sensor too? Is it typically recommend (or pretty much required) to use a motor shield or a motor chip to control motors or can this also be accomplished directly with Arduino Uno? I see that there are many more advance Arduino boards but haven't gotten that far yet (maybe those are more capable for controlling motors)?
4. Is there a way to attach a sensor shield to the (ArduinoUno/MotorShield) combination for more involved projects that have more sensors?
5. Can I power all this through the external power jack with a single power source (either a 9v battery or 4 AA 1.5v batteries)? Would one be better than the other (6v or 9v)?
6. Is it possible to provide more than one power source (i.e., that would be dedicated to certain motors or sensors for example)? I'm really interested in understanding what the power options are for future projects that may have more motors and sensors (given that I am using just a single Arduino and motor shield).
Many thanks for any advice you may have to help me get started!
Hi and welcome to LMR!I have
Hi and welcome to LMR!
I have designed a few products to help beginners build their robots with Arduino. Thinking that any robot needs sensors, servos and motors, I have created a shield and then a complete Arduino compatible controller board that allows to to easily build a Start Here robot and have room for expansion. Using different shields on an Arduino can be problematic, since there may be incompatibilities between the shields. Also, getting an Arduino and a shield will cost more than getting a compatible microcontroller with the features of the shield built in. But you decide what’s best for you. If you scroll down this page of the Start Here robot, you will see some pictures of my robot built with these boards.
Now let’s answer your questions:
1. I would advice to get a similar sensor from YourDuino.com, the price difference will certainly cover the shipping alone, plus you can get other cool parts from there too.
2. You can use any continuous rotation servo with Arduino or any other microcontroller. You will control it using regular servo commands and you need a shield that has servo connectors on it. But servos are more noisy (loud) than regular geared DC motors.
3. You definitely need a motor shield to control motors with any microcontroller, because motors need a higher current than the microcontrollers can provide for functioning. There is an H-bridge chip on that shield that takes care of the motor control, but that is sized for a max current too, so you need to know the current draw of your motors at stall to be shure that the h-bridge chip on the chosen shield can handle that. For instance, your motors draw 800mA at stall, my RBS shield can deliver 1A per motor continuous, 2A for short times. A shield that has a L293D H-bridge may fail, since it can handle 600mA continuously and 1A for short times, so if the motors stall for too long the chip will burn out.
4. There are sensor shields out there, but like I said, your best bet is a shield that already has motor, sensor and servo connectors on it.
5, 6. Yes, you can power everything with one power source. The RBS allows that through a jumper, although if the power is less than 7.2V the voltage regulator on the Arduino will not provide perfect 5V for logic. But that’s ok, because the microcontroller can work with voltages as low as 2.5V so you won’t notice any difference. There may be some special sensors however that need exact 5V to function properly, if you think it will ever be a problem, just look for the RBR board that has a more capable voltage regulator at low input power . Care must be taken to avoid a too high battery voltage so you don’t destroy your servos. Again, the RBR allows you to power 2-3 servos directly from the voltage regulator (not supported on an original Arduino) so you can use a higher battery voltage for your motors (not actually needed for your motors, 6V is perfectly fine).
Everything depends on what kind of projects you want to tackle. There are many ways to acomplish the same things so take your time and compare all the solutions available and get what works best for your particular project. Since microcontrollers are becomming cheaper, you will end up getting more of them as you progress and keep the robots you built instead of removing parts from them to build the next robot. After a while you may end up designing your own microcontroller board. That’s how I got here and many of other LMR members too. If you want to work with Arduino, definitely get either an original (or clone) plus shields or a compatible board that has shield support. Next thing you’ll want to control your robot wirelessly and a shield will come in handy.
Hi,Couple comments and
Hi,
Continuous rotation servos are simple to use, and have their own motor driver inside.
The solution I like is an Arduino compatible that has the 3-pin connectors built in so you don’t need a sensor shield unless you are doing ALL the Arduino pins that way. Here’s an example that’s $22.50:
There's a cheaper Ultrasonic here: http://arduino-direct.com/sunshop/index.php?l=product_detail&p=182 just doesn't have quite the absolute accuracy/stability of the HS-06
Scanning Sensor: The Sharp is expensive compared to an Ultrasonic. The properties are a little different.
Servo to move the scanning sensor: http://arduino-direct.com/sunshop/index.php?l=product_detail&p=238 is only $3.50 and you don't need strength to sweep the sensor.
Wheels are expensive; I'm trying to find some toy-related ones that are cheap. You can screw/glue a continuous-rotation servo round attachment to almost any wheel, but it ain't elegant. There are wheels to fit directly on Servos but they're expensive.
Ro-Bot-Ix has a nice controller on his site with DC motor controller built in.
Oddbot has a new one coming also.
Let us know how you're making out!
Regards, Terry King ...On the Mediterranean in Italy [email protected]
Something to consider with batteries.
You were asking about the difference between a 9v and 4AA providing 6v. Wikipedia lists the current (mAh) output for standard 9v at about 500 mAh and Lithiums at double that or 1000 mAh. AA batteries are listed at around 1700 mAh and double that for Lithium. Realize the batteries actually list ranges of power output and not specific current outputs. My point about listing the current output is that 9v batteries powering motors of any type and a microcontroller will fail pretty quickly as they can only offer about .5A to 1A for an hour or so. While, AA batteries can offer many times that available current and therefore last much longer under the same circumstances.
9v batteries are fine for stand alone sensor circuits (ie smoke detector) any kind of high current draw circuit will kill off a 9v rather quickly and you should at the very least plan on using AA batteries. Li-Po s or Lipoly s are a better choice, but, I have no experience with them. I only know they require special care and feeding versus more standard NiMh or NiCad rechargeables.
Thanks (better matched DC motors?)
I really appreciate all the great feedabck. I had already ordered both cards (Arduino and motor shield) so I’ll try working with those first, but I can see that I should have posted this before ording anything. A little anxious to get started I guess.
Since the DC motors I have draw 800ma at stall and the motor shield I have only supports 600ma should I consider looking for different DC motors for this basic project or will this be ok to get started with (ie, will the robot still work under most normal conditions on a flat surface or is this going to be a real problem)? Is the risk that if the robot encounters a stall condition I will burn out the motor chip? If that is true, does a “stall” condition occur when you give the robot too much to deal with (like placing it on shag carpet vs. a hard surface)? If I should be using another DC motor for the wheels do you have a reccommendation for a motor that is better matched to the Adafruit motor shield (with L293D).
Also, what about the gear ratio (1:120)? Frits’ post recommended 1:120 or higher, but I wasn’t sure how much higher so I stuck with 1:120. For example, there was another similar motor that was 1:200.
I did see another post last week that mentioned using this chip ‘SN754410’ from Texas Instrmmets beucase it supports up to 1.2amps per channel (vs. 0.6amps for the L293D that is on the motor shield I have), but I opted for the Adafruit motor shield becuase it looked like a popular and convenient board for Arduino Uno and figured it was probably ok for a very basic robot.
Thanks again for the helpful hints. This is great.
Bill
You could buy separate
You could buy separate SN754410 chips and replace the L293D with them, they are pin to pin compatible. SN754410 is the H-bridge that I use in my products, it supports 1A per motor, 2A peak (for a short time). For larger motors (1.2A micro metal geared motors from Pololu for example) you can solder 2 chips one on top of the other.
Regarding the speed, I like my robots to go fast, but I don’t look at the gear ratio. Look for the motor’s RPM (rotations per minute), you should aim for 100-150 RPM, with a regular 2.5" wheel diameter. Smaller diameter wheel needs more RPM to keep the same speed.
Thanks, I recall reading
Thanks, I recall reading they were basically the same chip but did not think abou just swapping them. I’l try that too.
When you say solider two chips together (to handle larger motors) do you have a picture of what that actually looks like? Obviously beyond what I need to get started, but I’m curious what that configurtion looks like if you have something handy to post.