Which one is easier to program in? Can they both use sensors from parallax?
Is either one more versatile? What is better value for the price.
I want to make some kind of robot that can navigate around the house (perhaps map it). I'm guessing the most cost effective way is having some kind of sensor to measure the distance traveled and in what direction, and to periodically 'sync' its position to some kind of a fixed beacon.
Perhaps there is some kind of pre-made robotic platform that I can get with basic navigational instruments?
I've been using Arduino to develop a robot mobile base. I use both the Ping sensor from Parallax and the Devantech equivalent. Arduino has a pulseIn() command that makes reading these sensors quite simple. And as many people here on the forums like to point out, the Arduino with its RISC architecture can leave Basic Stamps and PICs in the dust speed-wise.
Are there other sensors you are considering?
If you know nothing about programming then the Basic stamp is probably easier to learn.
But if you've dabbled in it before then you'll be wanting the AVR as it allows you to program in C/C++.
As eustace said, the AVR is significantly faster than PICs and Basic stamps.
The AVR does one instruction per clock cycle (for most instructions) while the other two require several cycles per instruction.
AVRs are usually dirt cheap and can use nearly any sensor you can find.
Oh thanks phill. So is that the difference between the USB Board and the Stamp? They both don't accept C code?
Or do you mean there is something separate from the stamp that can be used? Does this use C or not?
I was thinking I should get a list of things I'll need to start having some fun! Get ready for some questions
Arduino + breadboard + wires + what else? capacitors,? potentiometers?
PING from Parallax
Compass from parallax
Robot Base -with wheels (from where??)
PWM control of wheels.
Cliff Sensor of some description. Stairs are nasty!
Ability to turn on and off devices (transistor needed?) Whats the difference between a transistor and a solid state relay? And where do I get 'em?
Something needed to track distance moved, NOT using wheels. (Well this is what I originally though because if there is slippage, then it would be inaccurate, but judging by some previous posts, it accounts for that automatically? - I was thinking some kind of optical laser to track movement pointing down towards the floor)
Some kind of wireless back to the computer that can receive data in visual basic,
What happens when you run out of inputs & outputs on arduino? Does it have only 8? I guess that means no LCD!
How would I make an arduino talk to another arduino without taking up too many inputs/outputs
Perhaps a miniature windows PC instead of arduino? Costs alot more, needs wifi card as well.
I think that if you're lusting after Parallax's sensors, you'll be better off with a Basic Stamp. It's not that the arduino can't interface to them, but you won't have a company like parallax standing behind you SUPPORTING the interfacing of the sensors to the computer. The arduino community is good, and you might be lucky, but the Stamp community is older, larger, and has Parallax with them.
The arduino has a very significant, but perhaps not relevant, performance advantage.
With that long list of parallax sensor modules, I'm guessing that the CPU price differences aren't too important to you.
Arduino has a total of 20 I/O pins. There are various sorts of "expanders" you can use to add more (very similar to the basic stamp)
I want to make some kind of robot that can navigate around the house (perhaps map it).
This sounds a lot like my goal; learn how to make a robot base first, later add camera, hand, etc.
Arduino + breadboard + wires + what else? capacitors,? potentiometers?
PING from Parallax
Robot Base -with wheels (from where??)
PWM control of wheels.
I put together the Tamiya tracked vehicle chassis, and the Tamiya twin motor gearbox (geared low, with faster slot car motors).
I use the Solarbotics L298 motor driver (pcb kit) to drive the motors. You need 2A to drive the low voltage motors. I use a 7.2V NiCd battery from a radio control car to supply both the L298 board and the Arduino.
There is a lot of assembly in this parts list, but it is inexpensive. I've just added IR sensors and encoder wheels; once I write code I'll have feedback for the drive system. And my Pings serve for "bumpers".
The chief virtue of this approach I think is that you only spend a little money at a time. But I hope this helps you; it sounds like our approach to robotics may be similar.
So basic stamp is a bit slower. Which one has more memory? Can they store information when there is no power connected? what I use to enable that?
The Basic Stamp is MUCH slower. Parallax rates their fastest stamp at about 20000 "instructions" per second (and the slowest at 2000 i/s) while the comparable number on the Arduino is closer to 2million i/s (the AVR is fundamentally about 1 instruction per clock (16M i/s), and I'd guess an average "statement" to be 8 AVR instructions or so. Sort of. So: 100x faster than a basic stamp. Like I said before, there aren't that many cases where that's likely to be very important. Really.
Arduino has significantly more RAM space for variables, but it's a little complicated. The Arduino has more program memory than MOST of the basic stamps, but that's complicated too (cause the stamp uses the program memory more efficiently, but in a more complex way, I think.) Both have no-power memory that you can save stuff in.
I mean, I really think the Arduino is "better", but the stamp is more "ready to go" if you plan on using the Parallax sensor modules and similar. It's really easy to be led down a rocky path by "better" when you should have stuck with "easier."
Well the arduino is cheaper, faster, and has more memory, so I think I'll go with it!
Although It may not be the EASIEST way to go, I think I'll be happier in the long run even if it takes twice as long to figure stuff out.
Everyone's talking about wheel encoders - what exactly are they, are they separate from the wheel? I know iRobot has wheel modules now... I wonder if these would be a good cheap all-in-one solution?
Well I just bought the following from Sparkfun:
Arduino USB Board
Jumper Wires Premium M/M
Jumper Wires Premium F/F
Mini Push Button Switch
Breadboard Small Self-Adhesive
Optoisolator - 4 Channel
Basic 16x2 Character LCD FSTN - White on Black
Ambient Light Sensor - TEMT6000
Resistor 10k Ohm 1/6th Watt PTH
Resistor 330 Ohm 1/6th Watt PTH
Triple Output LED RBG
Buzzer - PC Mount 12mm 2.048kHz
Common BJT Transistors - NPN 2N3904
And the following from Parallax:
PING
Compass Thing
PIR Sensor
Stepper Motor
Yay for me. In total, all of the above has cost me about $320 AUD (wallet says ouch). (Some things I bought more than 1 of, Resistors, LEDs etc)
I didn't buy any electric motors of wheels or wheel encoders because I am still unsure of what I need in that regard...
That's a nice collection of things to get you started with all kinds of experiments that will allow you to build some experience as a foundation for your robotic project.
You should seriously consider adding a few potentiometers to your toolbox though. Just a few 10K or 100K will do it.
They are really god for making experiments with analog input, and for controlling things.
After a while of working with the Arduino board you will probably also find yourself wanting some of the more specialized IC's like shift registers, multiplexers and stuff like that. These will allow you to increase the amount of inputs and output on the Arduino board. The good news is that most of them are very cheap. Other things you might want in the future is power transistors (like TIP120) or transistor arrays, (like ULN2003) and relays that will allow you to control stuff that draws more current than the Arduini board can supply.
I know you are going to have a lot of fun, i hope you will keep the forum posted on your progres
Motors are a really big subject. I tried to simplify that part of it by getting an inexpensive kit from Tamiya. To drive them you need to send PWM output to an H-bridge, which supplies power to the motor. Arduino has PWM ouputs - 6 of them, of which you will use 4 to drive left forwards, left backwards, etc.
Picking an H-bridge is tough. If you use low voltage motors, you will need more current to get the same amount of work done. High voltage motors use less current. Exactly how much current you need at a given voltage for a given pair of motors is difficult to determine if you don't use a solution someone else has already worked out.
H-bridges also have varying degrees of availablility (some look great on paper, but you cant actually buy them anywhere!). They usually come in the form of an IC, although you can build your own out of discrete devices (bipolar transistors or MOSFETs with drivers) if you have mad EE skillz.
There is a thread going on now under Hardware Development regarding a motor shield for Arduino. If you pay attention to it, you may find that the shield will supply your H-bridge needs for a motor pair you have (or have in mind). I use kit motor driver pcbs built around the L298 chip.
Wheel encoders are used to capture the speed with which either your wheels or your motor are spinning.
I have a pair, but I'm still learning how to use them. The goal is to take the actual speed that the drive is turning at and use feedback to adjust the PWM output from Arduino. This feedback loop makes it possible for differential drive robots to do what comes easily to some other drive systems - move in a straight line!
I also have a BS2, but since I got the arduino, I don't use it any more. Arduino is much more powerful (analog in, hardware serial, hardware PWM, 1k ram, 16k flash), I mean, arduino has 1 kilo byte of RAM, the BS2 only has 26bytes, and only 4k flash memory! But the BS is much better documented.
Documentation makes a big difference if your goal is to get a robot moving in the near future; I'm feeling the sting of that at the moment, having just bought a Traxster kit from a robotics shop in Los Alamitos that's going out of business. The Traxster is from RoboticsConnection, an outfit I already know is in the habit of pulling its online documentation the minute a new version of something is released. Sigh. Thank heavens for Google caching.
Even if you are building a robot to learn how to build robots, you want to bring it to life quickly; and nothing beats Lego Mindstorms for that - quickly putting a robot together and coding it in hours. Expensive but very fast; and if you can persuade National Instruments that you want to learn to develop Mindstorms software you get a student version of LabView to play with! Woohoo!
But sooner or later you want to roll your own (like zitron did!); and nothing out there now beats Arduino for simplicity and power. IMHO.
The pot for tyhe contrast is not strictly needed, you can use a fixed resistor, but the pot is really handy to figure out what size the fixed resistor should be
Optocouplers and tyransistors are two ays to switch / drive stuff. You might need other things depending on how much current the things you want to control draw. Power transistors like TIP 120, or relays for instance. But i really depends on what you want to control.
Using transistors to turn your motor on and off is fine. The arrangement of transistors (bipolar, MOSFET, or integrated circuit) that lets you turn your motor on and off in both directions is called an H-bridge.