Newbie: getting started in robotics. uC and board questions

I have been thinking about playing around with robotics in my spare
time and have been searching the net and newsgroups for information but
have become overwhelmed with all the information flying around.
I want to try and build a robot that will use extensive servos
(hexapod or arm type of project) that will use sensors and its own AI
rather than human controller.
THe current controllers I have been looking at are the OOpics and the
AVRs (STK 500). I program in C/C++ and Java so those 2 looked pretty
good. I took a look at the IsoPod/IsoMax stuff but don't want to have
to pay that much and learn a new language just starting off.
THe OOpic stuff looked good but I felt that to much of the stuff was
already programmed into it and that it would take much of the nitty
gritty stuff out so I wouldn't learn as much. Anyone else feel the
same way?
I've taken a look at avrfreaks.com and tried to grasp some of the
basics of the AVR, but still seems confusing. But it seems many people
are raving about these.
Any help would be greatly appreciated.
Reply to
nealbrains
Loading thread data ...
I think the STK-500 would be a solid way for you to get into microcontroller programming. I initially tried using the tutorials at avrfreaks to learn how to program AVRs - but luckily I found
formatting link
which is orders of magnitude better for beginners. I would reccomend that once you've written a couple programs in assembly you only then think about switching to C. Best of luck
-M Noone
Reply to
Michael J. Noone
Well, you don't have to pay that much, and you won't get that much either. But since I make the IsoPod(TM) and invented IsoMax(TM) etc. you can assumed I'm biased.
These sorts of post, "which processor" are rather perenial, and usually touch off a "processor war" because we all have our own favorites. Some guys get very fond of one particular processor and stick with it, and some of us switch our favorites over the years as newer things come out.
You are more likely to find more PIC and AVR users, because they have been around since (approximately) 1990 and 1997 and many folks stick to what they start with. There will be more literature and also many examples because they have accumulated over time. (But for that matter, the 68HC11 is also a good choice with lots of robotics literature.)
You can do a considerable amount of computing with a PIC or an AVR, (or HC11) but you usually have to resort to assembly level programming with interrupt driven programming to get the very most out of them.
On the other hand, since you might want to stick with what you start with, it would make sense for a beginner to go with something more modern, with more capacity and more future growth potential. I'm very impressed with the ARM lately. Our ARM boards are running neck and neck with our 'PODs and there are many ARM chips running even faster, hundreds of MHz. Philips announced last week a series of ARM chips that sell for $1.47 in 10K quantity. That's pretty amazing: a 32-bit processor with big memory under two bucks. I don't know of anything else out there that can compete with so much bang for the buck.
I think if I were starting out today, and could only do one, I'd go ARM.
Reply to
Randy M. Dumse
"Randy M. Dumse" wrote
I've started using PIC and mikropascal a year ago and I'm very happy with it. But the ARM keeps drawing my attention. I have a dev board with a philips LPC2*** that I'm trying to get me motivated to do something with it. The only disadvantage I see with ARMS (and please correct me if I'm wrong) is that packages are too small and SMD only... in order to do a quick and dirty prototype you'd need to have an adapter board or something similar.
Padu
Reply to
Padu
have a read of:
formatting link
may help.
Don...
Reply to
Don McKenzie
Came across this
formatting link
at Digilent's site today. Looks interesting; may have to get one.
Where are you getting stuck WRT the AVRs?
Reply to
Rich Webb
I don't know if a micro can be too small. I like 'em small. Particularly now that they are rather complete systems with plenty of RAM and FLASH inside. Mostly they just need some small amount of support extrernal.
As far as dealing with SMT... there's always some supplier that will make a nifty little board with the chip mounted for you.
My company, New Micros, is one. We are offering the LPC2131 with 8K Ram 32K Flash, and a 60MHz 32-bit ARM7 processor all mounted with RS-232 conversion, power regulation, crystal, LED's, etc., for $29.
We've just brought out signal pins to a dual in-line .1" connector that are easy to use on a prototype baord, or in a strip socket. So at about half the price of a Stamp-like processor, you've got something like 20X the computing power, in a similar foot print (narrower). Hopefully that will make your quick and dirty prototypes even faster to whip out, wtihout having to mess with SMT or the support circuitry.
So back to the original poster's question, I'm not sure I'd bother with an 8-bit PIC from the past, anymore than I'd recommend you start with a 16 MHz 286 (designed about the same year) to use for your starting desk top. Why? No modern software even runs on that processor.
By the time you're proficient with the PIC, you'll be about two decades behind everybody else, or with a AVR, about a decade and a half. I'm really lost on why people are so engrained in a past, that's ... well,... past. What's up with that?
Reply to
Randy M. Dumse
Back in the early 90's I was working for the USAF keeping track of utility purchases and resale at a couple of thousand sites in the Dakotas and surrounding states (missile sites, bombing ranges, ect). This was around the time that 486's were coming out. I was handling all of this on a Zenith 100 which was a partially compatible 286 machine. It got the job done.
The point of this is that you don't need the latest technology to get the work done. PIC's and AVR's are cheep. There are lost of examples out there describing how to use them. There are plenty of different programmers and programming languages available for them. At some point I'll need to use a POD or an ARM7 because I can't do it any other way, but for now, I am making entire robots for less than the cost of a TinyPOD.
Randy, you make a great product and it can be used fairly easily by a beginner, but for a beginner to use a POD to run a line follower or a sumo bot is sort'a like using a Humvee instead of a bike to deliver papers in your neighborhood - overkill. On the other hand, a Humvee is great for desert recon where a bicycle would fail miserably just like your POD's can easily handle some very complex problems that take multiple PIC's and incredible programming finesse to even attempt. The right tool for the job.
Eventually, DSP's and ARM7's will be so cheep that they will be used for every little project, but PIC's have at least a good five years left and AVR's at least a decade. By then, the early adopters will have plenty of code examples and a broad choice of highly efficient free compilers for upper level languages that working with them will be easy even if you spend the last decade working with the old tech.
Paul Pawelski Randy M. Dumse wrote: ...
...
Reply to
catman
The great thing with the newmicros boards is you do not need anything else or other software. Everything is in the box when you get it.
All you need is a serial terminal program and that is it.
With their arm based products you can use arm gcc for c or c++ with eclipse ide or your favourite text editor - all free. You don't just have to use forth or isomax.
There is also multiple c compilers for the 56f80x chips.
The stk500 is nice and can be programmed directly from avr studio.
Some cheap boards at
formatting link
formatting link
Can get a basic for the avrs Bascom avr there is a free lite version
formatting link
Free c compiler for avrs win avr (gcc port for avr) Available from avrfreaks or
formatting link
My favourite of the commerical avr compilers is Imagecraft ICC avr
formatting link
for 45 days then becomes has a 4k code size limit
Free c compiler for the 18f pics from microchip. Student version that stops optimising code after 60 days. It works from inside mplab C18
mplab
Reply to
Alex Gibson
The new lpc2101/2/3/ are going to be in plcc44 Supposed to be available from end of november.
formatting link
Alex
Reply to
Alex Gibson
[snip]
Philips just announced a few new lower priced arm7 chips LPC2101 (8KB flash, 2KB SRAM) LPC2102 (16KB flash, 4KB SRAM) LPC2103 (32KB flash, 8KB SRAM)
see very bottom for announcement text
formatting link
notes
formatting link
formatting link
Which are going to be cheaper than pics , may take a while for pricing to trickle down for small quantities.
70MHz , 17MHz IO speed , 2 uarts , 10 bit adc ,2 timers up to 32 5v tolerant inputs , on chip oscillator
Big bonus is plcc 44 , aimmed at replacing the plcc44 8051 and pic plcc44 chips.
Seems plcc44 will be available some time after the tqfp.
Gcc for arm7 is already fairly easy to use.
Make files can be a a pain to learn.
These tell you how to set it up with the free eclipse ide see
formatting link
and
formatting link
Can use the demo version of Keils ide + armgcc or their compiler. GCC isn't restricted in any way only Keils debugger only supports programs up to 16KB
formatting link
Same with the Kickstart versions of IAR's arm tools for the lpc2xxx chips
formatting link
Alex
Philips today announced the 3 newest members of the LPC2000 family, the LPC2101, LPC2102 and LPC2103.
Built on 0.16um flash process, with 128-bit wide access, the trio operate up to 70HMz, 63 MIPs, making them the fastest Flash ARM7TDMI- S-based microcontrollers on the market. In addition, the new LPC210x members feature Fast I/O capability allowing bit-toggling operation of 17.5MHz, more than 4 times faster than other competing ARM microcontrollers. At the same time, these MCUs incorporate innovative power management features that allow deep power down current consumption, with the real-time clock running, to be less than 10uA.
LPC2101 (8KB flash, 2KB SRAM), LPC2102 (16KB flash, 4KB SRAM), and LPC2103 (32KB flash, 8KB SRAM) will be available starting November 2005. The per unit Manufacturer Suggested Retail Price in quantities of 10,000 are USD $1.47, $1.85, and $2.20 respectively. Packages are available in 7mm x 7mm TQFP-48 and PLCC-44. These new devices are specified at an operating temperature range of -40°C to +85°C.
For more details, go to:
formatting link

Reply to
Alex Gibson
Quite honestly, I can't imagine what you guys can be building. At the same time, I haven't a clue what I would do with a LQFP64 package. 18 pin thru hole DIPs is much closer to what I can make use of. Small qty chip prices aren't that far apart between PICs and the ARM, but what do you prototype on? Am I the only one without a wave solder station at home, or do you guys just buy the $200 dev kits?
Reply to
Mike Young
Really? Not to be contrary, but, I find I can tax out a processor pretty completely these days. Let me give you a brief accounting of my very recent efforts...
At the moment I'm in the 18 servo hexapod walker code, trying to figure out how to start a gait from standing, and return to standing from walking smoothly.
I'm also trying to figure how I can make the walker turn smoothly around a point. I thought I had a simple understanding of it based on Ackerman steering, but I was going at it a little too simplisticly. I was already doing quite a bit of trig to stretch the key pattern to fit the desired direction of the body. So now I realize I need a ton more trig functions to figure how to angle the legs, not just the stroke, relative to the commanded turning point.
I've found I can do gaits and walking pretty well. The turning is starting to stress my 80MHz DSP. I figure it's my fault because there has to be a simpler algorythm for what I'm trying to do. I am doing too many calculations per second.
In the mean time, I've set aside the Robomagellan Tank project I was working on. There I had two channels of PID control of the motors with Odometry, Navigation, Drive to a point, and GPS monitoring all running on one processor. I have yet to integrate in the CMUCam color tracking works. I'm not going to make it to the contests this year though, due to some health set backs.
A couple weeks ago, I got a 115200 baud radio link going for them with the SparkFun bluetooth interface. Nice to have your robot operating autonomously, and still have an interactive data channel to be able to gather data, and tweak values while it is on the move.
Can a PIC even bit bang a UART at 115200, and have any significant amount of cycles left over to do something useful? I'm rather doubtful, and I don't think they have UARTs that run that high, either. So using one of those processors would likely mean my data channel would be limited to much lower rates.Tragic? Maybe not. But what does it do to my productivity? What is my time worth. Are my tools enabling me, or hindering me?
My point is, I'm trying to push the envelope on robotics, and PIC's and AVR's are not well suited to play there. Even the wonderful processors with 20x performance I'm using are stressed there. And they have hardware support built in to handle tough motion control issues (without any processor intervention!) that lesser processors have to bit band to have at all.
So I know the future of robotics is not with the processors of the previous decades. And the future of robotics isn't with the processors of today, either.
Perhaps the next generation of processors will start to do what we really need done. Since it looks to me, the ARM has a clear path of non-obsolesence for a generation or two to come, that's why I wouldn't bother with lesser processors today, but if I could only learn one, I'd learn the ARM.
No, most don't have a wavesolder machine at home. I don't. In fact, what you'd need to do this SMT really is an IR oven anyway. No, most don't have those capabilities, so they buy the development kits.
But that's rather my point. My company will sell you a development kit for a LPC2131 for $29. It has all the hard stuff (multilayer, LED's Xtal, RS-232, power conversion) done. You just hook up to .1" pins. And if you find you run out of RAM or Flash (8K/32K), good news, we have a whole line that fits in that same board format, with up to 64K of RAM on one type board, and up to 512K of Flash on another. BTW, I see the DKits on these higher end units are less than $100. While I may have the low price point with our $29 board, I assure you, I am not the only vendor out there selling development kits for ARM's in this ball park.
So, back to the original poster's quandray, I don't know any other processor, than the ARM's, where you can buy one for less than $2 and buy another with the same base core that will challenge the computing ability of the best PDA's. ARM has just taken a unique place in computing history that no other processor has ever attained.
Reply to
Randy M. Dumse
"Randy M. Dumse"
This thread is being very instructive to me, it is closely related to the poll I posted earlier too.
Although I still think there will be plenty of live left for PICs, Atmels and other MCU's, for harder stuff I know it must be ARMs, DSPs or something better that could come up in the next few years.
So, knowing that there are kits and adapter boards available, I still want to be able to solder the IC to a board of mine. Is it still possible (note that I'm not asking if it's easy) to make my own board (photosensitive) at home and hand solder one of those little chips?
Reply to
Padu
The LPC chips come in a 0.5mm pitch QFP. Personally, I have no fear of soldering small quantities by hand onto commerical-quality boards.
I am not so sure about using a home-made board-- you're talking roughly the equivalent of 8 mil lines and spaces, which is fairly fine. It should be possible with photosensitive (preferably heat- laminated photoresist), probably not with toner transfer.
Best regards, Spehro Pefhany
Reply to
Spehro Pefhany
Good point! Anything that is slow and works beats anything that is fast but doesn't work.
Yes, but that's what I'm saying, that day... _is_ today.
This just happened. The balance just tipped. (In my opinion, for sure last week, with the new Philips price announcements to be certain.)
For example, we make a Barrel Racing Timer in our Pegasus subdivision. We use IR remote ciruits to make a break beam. We have a little LCD on the box, so you can read the run times right off the heads. So we used a little 8-pin PIC iirc. Less than $2. Has 2K of code space and a very small amount of RAM. My head of engineering did the programming on that chip.
Anyway, with feature creep, we got to where we needed just one more feature, to detect if we had a remote console attached. There wasn't room in the code. Ugh. After a couple months of messing with it, he got the feature in.
Now, today, if I were going to do the same product, do you think I'd consider a PIC? No way. For the same money, same assembly cost, just a different processor, I could have room for feature creep for generations without hitting the boundaries of the LPC2131. It has 16x the memory. And if I did feature creap out of the LPC2131, then there's the 2132, 2136, 2138 to switch to. The 2138 has 32K RAM and 512K flash. Same footprint. The larger memory part would solder down right to the same pads in the same product. Plus there are far more features, faster UARTs, A/D's, I2C, CAN, etc. etc. that can be brought to my product while staying in the same family. I could even have USB and talk to a host.
Further, when you talk about development: There is a build in boot loader in the ARM that is fast! There is a JTAG port on the ARM that can be used to debug the program. There are powerful debuggers.available as freeware. There are fine compilers available, freeware and professional. There are many language languages. This is a real processor that can do subroutine calls, and run real time OS's, do interactive debugging, and so on. Etc. Etc.
Man, why would I ever choose a PIC when I could have one of these ARMs at the same price?
Actually, I used to favor the HC908s. Now, I wouldn't consider them either. I'd start out assume a ARM would be the cheapest solution (in the run sizes I normally get involved with anyway).
To get a comparable AVR (ATMEGA128) albeit still slower, I'd have to pay ~$15. (I know, we sell them too on the same size boards.) The ARMs are way less than that.
That's what I mean when I say the day, when the ARM's are so cheap they are used in every little project, is here today.
Reply to
Randy M. Dumse
(115 kbaud? I think they do. USB works too well and too easily to bother.)
That's rather my point, as well. It's not $2 a chip to me, or even $29. It's more like $89 (Pluga21xx) to do anything useful. As the business owner, you already know that. Just the same, I don't mind spending the money where it's earned.
Alright, I'll play. Shopping from your shelves only, what do I need to get started (and be reasonably happy with 4 years from today, to match the PIC's track record)? I want to develop on my Windows or Linux box, push it to the processor, and have it act in a motor control and power management role. (Drive a few BLDC motors, some sensorless, some with Hall sensors, some with quadrature encoder; two three phase AC induction motors; read a few 10-bit or better ADC channels, monitor a handful of digital lines; converse with the controlling PC, exchanging status and command info. USB would be nice; IR or RF would be better; hardwired UART would need strongly compelling compensation.)
If you care to put together a list, add a "Buy Now!" button. I might be crazy enough to hit it. Tack on a dummy tax if you like, for doing my legwork for me.
Reply to
Mike Young
For what you are doing, you have the right tool. For what I am doing it would be the wrong tool. I just finished the first draft of the first article in a series that I plan to submit to Servo entitled "Beginning Robotics for $50 a month". While the first article was about necessary tools, how to solder, and things to look out for when shopping online, the second article builds a complete, programmable, expandable robot for $50. Even with the extremely good price of your $29 ARM board, I could not hit my price target if I used your board. I am using a DIP ATMega8, internal osc, simple cable programmer. It does what I need at a total price I can afford. My bots are running (well, one is half torn down so I can take pictures for the second article, but it was running before and will again) on a $5 processor with $2 worth of power conditioning. The $22 I saved compared to your board paid for motors, H bridge, and battery holders.
If I can fight my own laziness and write the entire series, I will be able to show all the basic sensor and communication interfaces with that AVR. Each month adding enough new capability to keep a novice interested in those tough early months. Beginners need cheep, simple, and easy to understand. POD's are simple and easy to understand, but they are not yet cheep. ARM's have dropped dramatically in price, but the need work with SMD makes you trade off either simple of cheep.
Like you, I got a Stewart tank waiting to become a robo-Megellan contender. If I ever get to it, I will probably need more powerful processors to make it work (although I am a sucker for distributed systems). At that point, I'll have to take a good look and see what is the right tool for the job. There is a good chance I'll place an order with you for one of those ARM boards, but there will probably be a PIC or two in there too.
Paul Pawelski
Reply to
catman
Unfortunately not getting enough time to play with the free Keil MCB2130 board I got from the recent circuit cellar contest
formatting link
(its being lent to a few people at uni anyway) as just started working on a video imaging project (TI DM642's / TMS320C6415 etc)
One of the example programs on the Keil MCB2130 dev board is voice play back. Record 5-7 3 second samples convert to format that can be compiled into a project then play it back.
For prototyping either make your own or buy modules from newmicros , olimex/sparkfun.com or one of the other small modules or cheaper boards. Have used a few newmicros boards - isopod , servopod , plug an arm.
I want one of these boards
formatting link
with a plug an arm. Randy any update on availability yet ?
You can battery power the olimex boards if necessary.
The wave / drag type tips for a standard type desolder station work wonders. If you think lqfp64 is bad, try a tsop56 package on a pcb that warps when heated.
Price wise the chips are all ready the same price or cheaper than 18f pics
usb or extra can bus versions are a bit priceier
lpc21xx Plcc44 is coming up soon from Philips, as I have sockets and other boards using plcc44 already, its not to bad to use veroboard.
Alex
Reply to
Alex Gibson
But you can push the envelope by using multiple processors.
Perhaps you could handle the turning easier if you had one processor per leg handling the kinetics and sensors for that leg. And a more central processor that handles the interaction of the legs.
In the future we'll have procesors that can do more. But for now we have to work with what is available. I've seen people do wonderful things on a small PIC, and see people flub a robot with a PC.
I think that it's what we do with what we have available that counts.
For now I'm looking for a good single-leg processor. It would need to: 1. Handle motor control for three/four motors 2. Read encoders from each motor 3. Read sensors on the leg to verify pressure and position. 4. Communicate with other processors in the system.
Perhaps the Tiny-ARM can do it. I don't know. Maybe even a Tiny-Pod (I like Forth). Heck, perhaps even an AVR or PIC can do it if I tune the algorithms right.
I don't know enough about the ARMs to make an intelligent decision. They look like they have the computing power, but do they have the microcontroller peripherals, like ADC and PWM?
And you have a pinout that I would have to create a custom PCB to use. The rows of pins are too close together to fit into a breadboard. I can use your dev kit but that adds money on top of the Tiny-ARM.
Also, I would have been *much* happier had you just had TTL-level serial communications instead of RS-232. I generally prefer to communicate with other processors. If you're going for an "RS", I would have preferred RS-485. Of course, that is personal preference. -- D. Jay Newman
formatting link
Reply to
D. Jay Newman

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.