Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

What Micro-Controller Would You Use to Teach With?

Cliff posted more than 7 years ago | from the technology-in-a-school-environment dept.

Education 175

Rukie asks: "I'm looking into starting some sort of robotics class for my high school, which severely lacks any sort of technological classes. I am now wondering what micro-controllers are best for an educational environment. I definitely want something more advanced than the Legos, but something that won't fly over people's heads. Are there cheap, scaleable micro-controllers for learning in a classroom or at home? I'm curious how my fellow readers have hacked up toys to make their own robotics at minimal cost."

cancel ×

175 comments

Sorry! There are no comments related to the filter you selected.

Personally.. (1)

StikyPad (445176) | more than 7 years ago | (#17838516)

I like this one [g4tv.com] .

Parallax and the Basic Stamp (3, Informative)

JimMcc (31079) | more than 7 years ago | (#17838524)

Check out http://www.parallax.com/ [parallax.com] and their Basic Stamp series. They have a wide range or processors and great educational programs based on them. The also have robots and robotics based programs based upon the Basic Stamp.

Re:Parallax and the Basic Stamp (3, Informative)

WndrBr3d (219963) | more than 7 years ago | (#17838682)

I've also used the Parallax boards and I have to agree that they are the best for simple robotics and teaching low level computing in the classroom.

Personally, I would suggest using their Java [parallax.com] based Stamp, only because your students would not only be learning robotics and electronics, but also a standard language in use everywhere today.

Their other controllers use a language much like BASIC but is unique to the Parallax hardware, not much value there.

Cheers!

Re:Parallax and the Basic Stamp (1)

AndresCP (979913) | more than 7 years ago | (#17839216)

The Basic stamps are great. My university uses the line to teach the intro to electrical engineering course. At the end of the class, there's a obstacle course-type design competition using the Robotics kits parent mentioned. Those are great, by the way. Extremely easy to build and capable of a great range of autonomous stuff. Excellent sensor package options, too.

Fuck NO!! (1, Informative)

Anonymous Coward | more than 7 years ago | (#17840014)

That's about the worst advice one can give IMO. Most of these MCUs programmed with basic are much more expensive than the other MCUs. And the memory fills all too quickly (as if it's not bad enough using C). And they're usually pretty slow. In think those 3 points kinda defeats the whole point of using MCUs in the first place. And if they're ever going to use 'em for anything (beyond this basic class), it's NOT going to be using basic anyways (makes me shudder just as much as the thought of teaching VB to people wanting to learn programming).

What to use? There's lots of good stuff out there, but my favorite: Atmel AVR MCUs. Used with AVR Studio, WinAVR and a port of GCC/LibC - good dev environment for 0$ (there are free linux tools too). Works great. Simple to use. Inexpensive. Wide range of devices. You can use any other text editor you so please. There's tons of other compilers for it (like IAR). Mature tools. Lots of great docs on atmel's site. Very good communities like avrfreaks. Programmed using one of the 2 languages everybody else uses (C, or the specific MCU's assembly) Making programmers for the chips is trivial and inexpensive. There's tons of good and inexpensive development boards out there (atmels' and 3rd party). The only thing I can think of that makes me still consider the others is the new ICE MkII that's required if you want to use debugwire on some of the new tiny MCUs (expensive).

In second choice, I'd pick Microchip PICs, but there are lots of other alternatives like the 8051 and 68HC11 based ones. I'd pick Basic Stamp stuff dead last.

FP? (0)

Anonymous Coward | more than 7 years ago | (#17838538)

Basic Stamp

FP (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#17838544)

FFFFPPP

Snuh! (1, Informative)

Anonymous Coward | more than 7 years ago | (#17838552)

AVR.

Re:Snuh! (2, Informative)

Anonymous Coward | more than 7 years ago | (#17838568)

AVR, and WinAVR (AVR-GCC) for the win.

PicAxe by far (1, Insightful)

Anonymous Coward | more than 7 years ago | (#17840144)

Amazing. He asks for a high-school level system and most of you guys are reccomending systems that require makefiles, compilers, linking, programmers, $50 Stamp chips and a truckload of groundwork before you even get to flash a LED.

The guy who reccomended PicAxes is right on the money. I know they arent that well known in America yet, but even experienced Micro Gurus would do well to check them out. $5 chips that a 12yo can program in basic with flowcharts with 3 wires connected to a serial port.

Inbuilt routines for Infrared, Radio Control Servo inputs and outputs, hardware PWM's, A/D converters, Motor Control, you name they've got it.

I can program Pics, AVR's, and nearly every 8 bit micro starting from 6502, 6809 and z80 days onwards, and I still reach for a PicAxe when I want to get something happening quickly and easily. I know about the mother duck principle, but believe me Microcode Gurus, have a look at these things. They have been called the "555 timer of the new millenium" and its very true.

To flash an LED -
DO
          TOGGLE 1
          PAUSE 100
LOOP

thats it !

no header files, no definitions, no compiling, linking, hex files. type that in, plug it in, push program, and you are away

Check them out, they rock.

http://en.wikipedia.org/wiki/Picaxe [wikipedia.org]

Re:Snuh! (1)

Andy Dodd (701) | more than 7 years ago | (#17842230)

I have to admit, while I usually prefer open-source tools, CodevisionAVR is an EXCELLENT tool with amazing support.

CVAVR was what my undergrad microcontrollers class (Cornell's ECE 476) used, and I believe still uses. In the rare cases when our professor found a compiler bug, he would often have a one-day turnaround on bugfixes.

Admittedly, we were a pretty big customer with a large site license, but I've heard many good things about CVAVR.

Well... (0, Offtopic)

Creepy Crawler (680178) | more than 7 years ago | (#17838562)

Good luck with that.

If you dont use something simple like Legos and their language, it'll go over all their heads. Most of these kids you'll teach probably wont have a mastery of algebra, let alone have the mental concept of complex systems like robotics. There's always a few that do, but they'd benefit from an extracurricular group after school.

You'd be best teaching how a computer works (from ground up), how circuits work, basic circuit theory, and basic radio theory.

Building computers from junk parts, and installing Linux would teach them a lot.
Understanding how to use a 555 timer with other basic inputs would teach them how to control input to output, along with basic principles of common "parts".
Radio theory could teach that all signals are EM, and given proper parts, we can listen and create them. Show how to build a crystal am radio and then turn it into a transmitter. Apply to current theory.

Re:Well... (3, Insightful)

WarlockD (623872) | more than 7 years ago | (#17838746)

I don't know, I think he is going more for a "fun" angle. Lets face it, without even the basics of electronics, going to digital circuits is tricky at best.

That being said, I would recommend a Basic Stamp from http://www.parallax.com/ [parallax.com] . While their chips are not the fastest, cheapest, or fully featured they offer EXCLELENT learning tools, books as well as a wealth of free code. There are plenty of robot kits you can get and easy to plug in designs. You can quite possibly even get a bulk discount for a school.

To be honest, I would rather have a class where the first half of the semester is designing AND building your radio. (Preferably FM) I learned microcontrollers first before I learned anything about analog components and a radio is the best way to teach that.

Re:Well... (0)

Creepy Crawler (680178) | more than 7 years ago | (#17839062)

---I don't know, I think he is going more for a "fun" angle. Lets face it, without even the basics of electronics, going to digital circuits is tricky at best.

Too true, though I was thinking more on the lines of basic circuits, usage of a serial port, parallel port, and other simple older computer functions. I can think of some nifty projects for parallel and serial: Make your own game controller, sending text to those propeller-led text devices (and making it), designing from schematic a mp3 player for an altoids tin. And just look at all the projects that are rat shack part listed so it's easy to order and build.

And to mention building boards, how about teaching soldering technique? My dad can microsolder with a standard iron and a small tip. For a while, he was modding PSX's (yep, the little cpu pads)

---That being said, I would recommend a Basic Stamp from http://www.parallax.com/ [parallax.com] . While their chips are not the fastest, cheapest, or fully featured they offer EXCLELENT learning tools, books as well as a wealth of free code. There are plenty of robot kits you can get and easy to plug in designs. You can quite possibly even get a bulk discount for a school.

Thats the problem, I tend to think these are too complex for high schoolers, at first. If the school doesnt have any tech classes like this, going into microcontrollers would be a mistake. Legos would be a good start, and then you could teach analog, then perhaps in the next year, digital. There's just soo much stuff you could concentrate on that has much value. Analog would teach these kids about signal and how it flows and is modified. Figuring it out would also require use of a oscilloscope, and would take quite some time.

---To be honest, I would rather have a class where the first half of the semester is designing AND building your radio. (Preferably FM) I learned microcontrollers first before I learned anything about analog components and a radio is the best way to teach that.

No, teaching basic EM theory would be best, in that they could tether any means of communication to talk to their circuits. Once you have an input path, all neato things are possible. We can do 1-wire, serial, usb, radio, ir/photoresistor, led, and a few more types on the cheap.

Re:Well... (1)

rblancarte (213492) | more than 7 years ago | (#17839520)

I have to admit, I agree, Legos might be the way to go for a start.

However, I agree, he does have the makings of a fun class here. I would say the way to go would be to probably do all of the code himself, and then just give them the plans to build their devices. I was going to recommend the boards from Tech Arts [technologicalarts.com] . They may be a bit advanced for this type of class, but if done right (like I said, give them code, and hardware design) they could work out really well.

If you do the class, good luck.
RonB

Re:Well... (3, Interesting)

phantomcircuit (938963) | more than 7 years ago | (#17839324)

I'm a high school senior. I go to a crappy inner city school (i'm not getting up at 5am for better desks). I have taken every technical class the school has to offer. Frankly I could have learned more if I had spent the time from just one of those classes reading about the topic.
 

Most of these kids you'll teach probably wont have a mastery of algebra, let alone have the mental concept of complex systems like robotics. There's always a few that do, but they'd benefit from an extracurricular group after school.
Anybody even remotely interested in serious robotics at a high school level will have already completed Algebra in 8th grade. Everyone else is to busy talking about/having sex to care.

Extracurricular groups sound great, except no one ever has time for them. I cannot spend my time doing an extracurricular activity when I have 4 hours of homework each night. Again students interested in robotics will have significant homework each day.

You'd be best teaching how a computer works (from ground up), how circuits work, basic circuit theory, and basic radio theory.
I agree with that, except that AP Physics C covers a great deal of the basics of circuits and EM.
 
AP Physics C should be offered at ALL high schools, if it is not then he shouldn't be trying to add another elective.

Teaching how a computer works is a GREAT idea. Frankly no one really gets it.

Internet resources for figuring out how computers work is great and all, but a real classroom experience cannot be beaten here.

As a side note:

Most people have absolutely no idea how a computer works. I don't care. No they don't need to know. No I'm not going to tell them they are stupid. I don't know how to do a French manicure, does that mean I'm stupid? didn't think so

Re:Well... (1, Interesting)

Anonymous Coward | more than 7 years ago | (#17839938)

> Anybody even remotely interested in serious robotics at a high school level will have already completed Algebra in 8th grade.

What the hell makes you think all geeks are math geeks? Some like to hardware hack precisely because it isn't such an abstract thing.

Re:Well... (2, Insightful)

TapeCutter (624760) | more than 7 years ago | (#17841104)

"Most of these kids you'll teach probably wont have a mastery of algebra, let alone have the mental concept of complex systems like robotics."

I disagree (not with the algebra bit), they are teenagers and will see leggo as a kids toy (what teenager want's to be mentally defeated by a "toy", better to just ridicule it from day one). A well designed project that results in a simple robot that reacts to light and/or sound will encourage some of them to find out more by themselves. That's what HS is supposed to be about, giving you a basic education and a taste of things that might interest you later.

As an example when one of my kids was in HS he came home from his first computer class with one sheet of paper and said to me "they reckon this is a years worth of work". I read the project he had been given, it was basically the requirements for a simple database with each stage of the project adding more complexity. I gave it back and said that if he could do that in a year and pass he could claim to know something about programming and databases. He did a great job and at the same time he setup and ran his own BB on an old PC (circa-1995). My youngest kids HS maths teacher used a spreadsheet to teach basic algebra (when a lot of teachers were still avoiding the new fangled "computer room"). Both were fucking brilliant ideas for teaching the subject at hand and the kids were actually interested in what they were doing.

As for TFA, I won't say anything about electronic because I know just enough to get laughed at on slashdot, however as some other posters have suggested, use a popular language, maybe "template" the source and let them fill in the blanks to flatten the learning curve a bit.

Not sure what the budjet is, but perhaps each kid could build a simple "robotic cricket" and let them all loose in the gym at the end of the course.

Parallax? (1)

Jeff DeMaagd (2015) | more than 7 years ago | (#17838584)

Parallax sells these simple microcontroller devel systems with mini breadboards and a circuit project book. I've seen one for $60 or $80 at Radio Shack. I'm way beyond that though, so I have not really tried them. The big downside is it's probably programmed in BASIC.

Re:Parallax? (1)

FooAtWFU (699187) | more than 7 years ago | (#17838724)

Yeah, well, it's a little microcontroller stamp, what did you expect? Assembly, perhaps? Eh... Well, yes, it's quite amusing to read through the manual and find that you are allowed to have calls up to four GOSUBs deep! :)

Anyway, it seems like a decent kit, as far as those go. We are using one of their kits (the BOEbot) in our AI class (Wake Forest University), and it is replacing the Lego Mindstorms this year for the first time here. Ultimately, I believe, we plan to attach it to a Bluetooth adapter and just use a BASIC program to communicate to and fro from that - then we can put the hard AI stuff on a laptop and operate it from there.

options (3, Informative)

drrrl (949518) | more than 7 years ago | (#17838590)

I like the Brainstem from Acroname. I haven't done any big projects with one, but I've played with a couple and they definitely hit the spot in terms of easeability, powerfulity and economicalness. I've used the SV203 from Pontech in the past and it's a solid & simple board. Great if you're keeping the board tethered to a computer and not doing any actual processing on board. Brainstem gives you a little/lot more high level power.

Re:options (4, Informative)

IceCreamGuy (904648) | more than 7 years ago | (#17838836)

I love the Brainstem, it's got 5 digital I/O ports, 5 analog I/O ports, 4 servo outs, GP2D02 port, RS232 port and an IIC bus. All of the functionality you could need, such as sonar, IR, servo, text-to-speech, even pyroelectric (human heat-signature sensor), and many more are implemented in pre-built, extensive libraries. You can run 4 VMs at once and swap them out among 11 different 1MB programs, with 1MB of shared scratch space. You can also program low level "reflexes" to run independently of the VMs. They're programmed with the TEA, or Tiny Embedded Application, language (you "steep" .tea files into .cup files, which are the binaries :-D), which is a stripped-down, easy to use, C-syntax language that's really easy to learn and program with. The compiler is just a tiny little console that can be downloaded for free and even runs on PalmOS. Did I mention they're really easy to interface with Palm Pilots? They're great for post-intro robotics classes when you want more functionality and would like to really get down into nuts and bolts construction. As well as being cheap and easy to use, there are a ton of kits and libraries for platforms that specifically use the Brainstem. After doing research at my university's robotics lab with several different platforms for over 3 years now, I'd recommend these over anything else, of course, that's just my personal opinion and there's a ton of other great controllers out there, especially the BASIC, JAVA and other Stamp controllers. Here's the link http://www.acroname.com/robotics/parts/S1-GP-BRD.h tml [acroname.com] -Julius

Re:options... sorry, wrong size (1)

IceCreamGuy (904648) | more than 7 years ago | (#17838872)

Whoops, I meant 1K files... it can store 11 1K programs, not 1M. Sorry about that.

PIC (2, Informative)

Anonymous Coward | more than 7 years ago | (#17838608)

I would go for PIC: they are cheap, programmers are available everywere, free assembler/IDE and net is full of information. Yes they are stupid small ram devices, but also very easy to use.
 

Re:PIC (2, Informative)

zarthrag (650912) | more than 7 years ago | (#17839896)

That's what I learned on. Hitech's PIC C compiler is a wonderful companion - and quite powerful. Not to mention in-circuit debugging/programming/emulation, advanced features, serial communication, PWM, and simplified clock construction (xtal, some caps, and you're ready to go).

Re:PIC (2, Informative)

thegrassyknowl (762218) | more than 7 years ago | (#17841002)

I taught a second-year engineering class to program PICs in 4x2 hour sessions. Most of these students wouldn't have been able to work out basic digital logic or write hello world in C even though they had done the courses.

The PIC's assembly language is simple enough and with a bit of hand holding they were working out how to read and write from memory locations, and turn on pins at the outpus. Teach them to work out what they need (peripheral interfacing) from the data sheets and most of them actually became pretty fluent at writing simple programs.

Nearly all of the class got competent enough to build a simple storage scope using the in-built ADC and an r2r ladder connected to one of the 8-bit ports.

MOD PARENT UP - Re:PIC (2, Informative)

speculatrix (678524) | more than 7 years ago | (#17841182)

100% agree. Microchip's [microchip.com] products are really great as they do a range of devices from cheap and simple devices up to quite complex ones. They are fun to use and quick to learn - sure, in the real world, high level languages like Java are desired by employers, but these are so abstract that you don't get a feel for the actual workings of the computer. Its vital that people understand how the actual machine works, and there's nothing like a bit of assembler and some flashing LEDs and push buttons to do this.

Re:PIC (0)

Anonymous Coward | more than 7 years ago | (#17841324)

I agree. The pic is the best way to teach a low level programming course. It teaches optimization and basic logic and computer functionality. It makes the program counter and call stack obvious, while still having a simple command set. Basic and Java are high level languages so the Pic is better than any of the microcontrollers that use them to teach with because Basic and Java hide the inner workings of the chip.

The leaf project? (2, Informative)

noopm (982584) | more than 7 years ago | (#17838622)

The Make magazine [makezine.com] featured the leafproject [leafproject.org] recently which uses a custom board [leafproject.org] [2] [leafproject.org] for their "open source robot using artificial intelligence and vision"

Motorola 68HC11 (1, Insightful)

Ryan Stortz (598060) | more than 7 years ago | (#17838638)

I'm currently taking a Microprocessors class at Ferris State University [ferris.edu] . We're using the Motorola 68HC11. It's a CISC processor with simple nmenonics. We both have quite a few physical boards, but we also use a Windows-based emulator called Wookie with MiniIDE [ecu.edu.au] as the IDE/assembler.

I'm enjoying the class so far.

Re:Motorola 68HC11 (0)

Anonymous Coward | more than 7 years ago | (#17838806)

There are better mcu's than the 68HC11, like the pic series. Can even upgrade to the ds-pic series.
avr is also cheap and simple. Seriously, get something with enough internal flash, that doesn't require external chips to be tacked on.

Re:Motorola 68HC11 (1)

bakana (918482) | more than 7 years ago | (#17838912)

I went to Vanderbilt, we used the Motorola 68HC11. It wasn't hard to learn and the programming was easy enough. Can have students learn all kinds of things with this board.

68HC11 (0)

Anonymous Coward | more than 7 years ago | (#17838648)

Great features top of its head to tip of its toes.

Freescale/Motorola 6808 (4, Informative)

StarWreck (695075) | more than 7 years ago | (#17838652)

The 6808 micro-controller (long version of the name is M9S08GB60) would be excellent for teaching a class on robotics. As its been around since the dawn of time, there's a lot of support readily available for it. Complete, detailed reference manuals are freely available, Freescale will even ship printed copies to you for free. Compilers are available that allow you to program in your choice of assembly, C, or C+. The "M68DEMO908GB60" demo board is available from many online retailers for around $50 which makes it easier to use the microcontroller for prototyping as well as experimentation and class labs.

What lends the 6808 microcontroller is its Pulse-Width-Modulation components (it has 2 modules, one with 5 channels and the other with 3 channels and all channels can be set up for either incoming our outgoing). In addition to all that it runs up to 40MHz without cooling and includes 4K of RAM and 60K of ROM all on-die, so no extra chips for those. It has more power than you could ever hope to use in a class-room.

A good example project is available here: http://home.comcast.net/~starwreck/FinalReport.pdf [comcast.net]

Re:Freescale/Motorola 6808 (1)

ratboy666 (104074) | more than 7 years ago | (#17842064)

I second this choice.

Either that, or the venerable 68hc11 part. 8k eeprom and 192 bytes of ram. Easy to program -- gives early exposure to assembler.

PICmicro (2, Interesting)

_merlin (160982) | more than 7 years ago | (#17838666)

The Microchip PICmicro is a very good choice. Try the PIC16F84 [microchip.com] - the chip is cheap, programmers that connect to a PC parallel port are simple to build, a chip can be electronically erased and reprogrammed hundreds of times.

The assembly language is also very simple. There are only thirty-five instructions and two addressing modes. It's also very easy to calculate instruction timing (for delay loops, etc.). I learned to program those things when I was at high school.

Things like the BASIC stamp are less than helpful. You aren't close enough to the metal. If you don't like the PICmicro, an AVR chip would be my second choice.

Re:PICmicro (1)

Eckzow (754643) | more than 7 years ago | (#17838824)

I second Microchip. Used in industry a lot, essentially impossible to fry with a mis-built circuit, easy to program, freely available student version C compiler along with 100% free assembler...

I 3 Microchip.

Re:PICmicro (1)

John Miles (108215) | more than 7 years ago | (#17838906)

Go with AVRs and get a real [sourceforge.net] free C++ compiler. Assembler? Dunno, I've never needed to touch it.

Re:PICmicro (1)

coniferous (1058330) | more than 7 years ago | (#17838850)

PICs Are great, they are even good to integrate with a basic electronics course. Heck, if you wanted to go even simpler you could use picaxe chips. http://www.rev-ed.co.uk/picaxe/ [rev-ed.co.uk] . they use a basic-esque command set thats preloaded on the chip, comes with all software and a programming manual that students can easily read an learn by themselves. The best part is that as soon as they're done the basics, you can move on to actually programming them with native instructions.

Re:PICmicro (1)

sarahbau (692647) | more than 7 years ago | (#17839282)

PIC microcontrollers are great. I don't know why some people here knock them. They may not be the most advanced chip available, but they are very widely used, so anything a new student learns is likely to be useful later on. Last semester part of my co-op work was researching the possibilities of designing a new course around the PIC. So I got a PIC book, taught myself Assembly, and in just a couple days, I was creating useful circuits using the PIC. One of my favorite features, which wasn't available in some of the competitors' software, was that you can debug code completely in software, without needing a hardware debugger. This would allow students to work on their programs at home (using the free software) without the need to buy a debugger or programmer.

Re:PICmicro (0)

Anonymous Coward | more than 7 years ago | (#17839474)

>They may not be the most advanced chip available, but they are very widely used,

Widely used by who? As far as I know, they're a negligible part of the microcontroller market.

Re:PICmicro (1)

_merlin (160982) | more than 7 years ago | (#17839586)

A lot of computer mice use them, and they are used in motion controllers.

Re:PICmicro (1)

yope (656090) | more than 7 years ago | (#17839776)

Please stop recommending braindead technology from 2 or 3 decades ago, like the PIC's from Microchip. Those chips won't teach anybody good design and programming practices. I never fully understood why PIC's are so popular, given that they are hard to program (the PIC16 series instruction set is not complete enough to write a modestly working C compiler for it), have very poor performance compared to recent microcontrollers, very little on-chip resources (almost no RAM, very little flash memory, and very limited set of peripherals), and are not cheap either.
The same goes for 8051 derivatives (including the Rabbit line of micros), and even the old-school freescale 68xx derivatives. They are old, outdated and inefficient technology.
The Atmel AVR line is still something you could talk about, although I am not sure if you really want the limitation of 8-bit processors, when you can have a full-blown 32-bit ARM controller for almost the same price (NXP (ex Philips) LPC2103 for little less than US$ 2.- a piece).
I would really recommend looking at more modern designs, like the range of ARM-base microcontrollers from Atmel, NXP (ex-Philips) and ST for example. Those are very powerful, extremely cost-effective and easy to use. They are programmable in C and C++ (GNU toolchain), with all the luxury of a 60MHz core clock and 32-bit registers, decent and flexible PWM generators, UARTS (even 16C550-compatible in the case of NXP), and a whole lot of other nice peripherals.

Re:PICmicro (1)

salec (791463) | more than 7 years ago | (#17840288)

AFAIK, Rabbit's are ascendants of Z80, not of 8051.

Reluctantly recommending the basic STAMP (4, Interesting)

Uncle Ira (586682) | more than 7 years ago | (#17838668)

As much as I love the open source Arduino [arduino.cc] board for my own personal use, and even though the basic STAMP is raher expensive (even with the education discount), Parallax has an extremely thourough set of documentation that is perfect for an educational environment. They have a fee book available for download called "What is a Microcontroller" [parallax.com] that should fit all your needs. It contains a series of predesigned lessons that assume no technical experience for your students. All your lesson plans are done for you.

In defense of the Arduino (1, Informative)

Anonymous Coward | more than 7 years ago | (#17841124)

You are absolutely right about the advantages of having pre-made educational resources. The situation is quite different depending on whether all the students are doing an activity or if just one or two of them are doing it as an activity. A single student or small group can be very motivated and can cope with almost anything. If you've got a whole class, you need something pretty bullet-proof.

Having said the above, I have a student using an Arduino. He has already used other standalone chips but finds the Arduino much easier to deal with. It uses an AVR Atmel chip which seems to be the favorite among the other posters. It is cheap, is already connected to your computer and doesn't need an extra chip burner. It is designed as a multi-media interface and they've worked out connections to a wide variety of multi-media and web enabled programs. It really is excellent as a controller for robotics projects.

Atmel (1, Informative)

Anonymous Coward | more than 7 years ago | (#17838686)

I would recommend either an 8051-based microcontroller or an AVR. Atmel makes both. They're easy to design hardware around, often include on-chip flash ROM, are very well documented, and simple to program. You can also get kits and evaluation boards if you don't feel like building your own hardware.

Re:Atmel (0)

Anonymous Coward | more than 7 years ago | (#17839316)

How dare you suggest anyone ever use an 8051, much less children!!
You might as well beat them with a rubber hose.

PIC (1)

quanticle (843097) | more than 7 years ago | (#17838690)

The University of Minnesota just moved to the PIC [microchip.com] because of its ease of programming as compared to the Motorola 6800 series microcontrollers that were in use before. The PIC comes in 8 and 16-bit varieties and has a range of available memory sizes. I'm not sure about pricing, but they are somewhat of a standard "learning" microcontroller, so your students will have a leg-up when they get to college.

Re:PIC (1)

John Miles (108215) | more than 7 years ago | (#17838924)

That is just bizarre. I will never understand why people choose PICs over AVRs in applications like that. Guess it's just a matter of what the instructor or department head is familiar with.

Avoid PICs at all costs (2, Informative)

Flavio (12072) | more than 7 years ago | (#17838798)

PIC is a braindead horror show architecture from the 70s, and Microchip's microcontrollers are the hardware equivalent of spaghetti code, built with kludge upon kludge.

Go with a simple yet elegant architecture, as it will teach good design practice. With PICs these kids will spend a lot of their time writing tricks to compensate for the hardware's flaws, and may get the impression that programming amounts to writing "clever", unmaintainable code.

Avoid the frustration and go with the AVR lineup. If you want to showcase a traditional design, introduce them to the 8051 (but don't necessarily have them in the lab). If you need more features, use the Freescale HCS12 with the GCC toolchain (coding in assembly for the HCS12 isn't practical, since it essentially implements the old fashioned, register starved 68HC11 instruction set). And if you want performance for higher level applications (which may not be the case), go with an ARM part.

Re:Avoid PICs at all costs (1)

Space cowboy (13680) | more than 7 years ago | (#17838884)

Agree with the PIC vs the AVR. It's the same as the i386 vs m68k... One is a disgusting kluge, the other is an elegant architecture.

In this modern age, though, I'd ditch both and go for the ARM - the kits aren't that much more these days (eg: from $30 [olimex.com] ), and you can do a *lot* more with them... Obviously, the more you pay (up to ~$200) the more-capable the board you get...

Simon

Re:Avoid PICs at all costs (1)

Deorus (811828) | more than 7 years ago | (#17839422)

Seconded on the ARM opinion, although I must admit that the only other architecture in which I have low level experience besides ARM is x86. Anyway when compared to x86, ARM is a walk in the park, a well thought architecture with a simple and organized instruction set with a lot of multimedia capabilities.

Re:Avoid PICs at all costs (1)

coniferous (1058330) | more than 7 years ago | (#17838896)

If they're doing something that requires you to trick the hardware, they should probably be using something more advanced - i'll agree with you to that point, but there are no circumstances in a beginners course that would require that. none that i can think of anyways.

Re:Avoid PICs at all costs (2, Informative)

hjf (703092) | more than 7 years ago | (#17839096)

What the hell are you talking about? I use PICs since 2001, when they taught me that in college. Since then, I have done quite a few projects with these microcontrollers. I started with the good 'ol F84, but since 2003 i have switched to the 16F628. I also programmed with the 16F88, the '877, the 18F4520, 12F629/675, etc.

MPLAB macros help a lot, #defines can help you use your same ASM code over different families (12 and 16F for example), and make it straightforward to port the same code between different microcontrollers of the same family. The hardware peripherals (A/D, USARTs, CCP, Timers) are very easy to use. In short, I love PICs. Tried to switch to Motorola once. Couldn't find a programmer. With PICmicro, you use only one programmer (I use my homemade ICD2, which lets me step and set breakpoints on the target circuit, and it has helped me a lot with debugging, for a project that costs $20, is wonderful). MPLAB is SO powerful, everyday I find new tricks and new ways to do things. For Motorola, a few years ago, I couldn't find an IDE either.

Recently I started using the 18 series, with their own C compiler. Rather nasty at first, but when I finally understood it, it was straightforward.

Besides, PICs are dirt cheap too. I love the way Microchip has made it easy for the hobbyist to access development tools (the ICD2 is really cheap, less than $200. And the REAL ICE, for $500, is great), and the amount of literature you can find on the internet is invaluable (due to the amount of people using PICs for a hobby)... forum.microchip.com and piclist.com are basically all you need (besides the data sheets).

Re:Avoid PICs at all costs (1)

Andy Dodd (701) | more than 7 years ago | (#17842298)

The way you describe it, it sounds like Microchip is fixing the kludginess of their CPUs with workarounds in their development tools (MPLAB).

And the original poster was reccommending Atmel AVRs - how the hell did you get on your Motorola rant? He only mentioned Motorola tools as an example of a "traditional" design and then went into a number of reasons NOT to use them because more modern variants exist.

Definitely AVR (1)

Pseudonym (62607) | more than 7 years ago | (#17839228)

I definitely agree with the AVR. It has lots of nice Linux tools, and has models with just about everything on board, including FPGA.

Re:Avoid PICs at all costs (1)

HeavyMS (820705) | more than 7 years ago | (#17839510)

"PIC is a braindead horror show architecture from the 70s" What are you talking about? I have made a PIC16F84 implementation in VHDL and i can't understand where you get the impression that it's a "braindead horror show architecture". I find it small and good at what it is suposed to do. "tricks to compensate for the hardware's flaws" have you ever used a pic for real? Plz tell me about these flaws. No you are wrong the PIC is good controller when you need a small effisent and SIMPLE micro (remember kids: use the best tool for the job). I fear that the real issue here is that most "real" engineers feels that the PIC is to primivite and to limiting. It lacks the bling bling of other Micros (who needs a stack that you can "use" when your app is 400 lines of assember?). And the "real" engineers have collectevly decided that the PIC is CRAP and thats that.

Re:Avoid PICs at all costs (1)

Jeff DeMaagd (2015) | more than 7 years ago | (#17841650)

The main problem is the memory banks, and that's about it, I think.

I just use a C compiler with my PICs and it's fine because I don't have to deal with that at all. It's very easy to program, pin-addressable and so on. I have no problem using the special function units or interrupts either.

ATMEL (1)

WED Fan (911325) | more than 7 years ago | (#17838826)

I like the ATMEL line. They are straight forward and highly functional.

Check out "Wiring" (1)

Animats (122034) | more than 7 years ago | (#17838852)

Take a look at Wiring [wiring.org.co] . This is a microcontroller development system for artists. There's a board with an Atmel microcontroller and I/O interfaces. There's an integrated development environment with a simplified programming language. All open source. IDE runs on Linux, MacOS, or Windows.

The neat thing about this system is that it uses a modern microcontroller, the Atmel ATMega128, with 128K of memory and a 16MHz clock. This is a substantially more powerful machine than the PIC or the Basic STAMP. The development environment is really GCC, generating machine code; it's not an interpreter. So you can actually do non-trivial work on the thing.

All this is packaged up with an IDE and a set of documentation designed to be used standalone; all you need is their big download to install the IDE, and their web site to tell you how to use the board. You don't have to dump a set of Atmel manuals and a GCC manual on the user.

ARM, perhaps? (1)

msloan (945203) | more than 7 years ago | (#17838870)

I've never used it for robotics (used Stamps and 68hc11s before, though), ARM is a pretty sweet architecture. They're low cost, low power, and have really nice assembly code.

fpga's anyone? (1)

sanimalp (965638) | more than 7 years ago | (#17838920)

An FPGA would be a great way to get people started with embedded systems. Something like the Spartan 3 starter board would be a good sub-$100 system to start with. Rather than have to piece together a working circuit, have them program one in one of the Hardware Description Languages. I'll be the first to admit that it is not easy, but it is a great way to learn about how various components can come together to make a useful device. and with the Spartan 3 board, you get a svga controller, a few buttons and switches, and a ps2 port for mouse or keyboard. Xilinx has a free software system you can download to develop HDL systems and apply the systems to the FPGA. The future of computer science and EE, in my opinion, will put more and more emphasis on FPGA's as a very high speed platform for development of hardware embedded systems.

Re:fpga's anyone? (1)

John Miles (108215) | more than 7 years ago | (#17838998)

Awesome, give a bunch of random schoolkids an FPGA devkit.

At least you'll find out if one of the kids is going to be the next Woz. Everybody else will take one look at it and spend the rest of the day in the library sniffing paste.

Re:fpga's anyone? (1)

hjf (703092) | more than 7 years ago | (#17839000)

while FPGAs are great and all, I personally have the Spartan-3 board. I find it VERY difficult to program. I mean, no to actually program it, but to think what I have to do. I tend to think of a computer as a machine that executes a series of instructions. An FPGA is more than that. It's exactly that, if you want it to be. But it can be more. The problem with the FPGAs is that you need, indeed, to forget all you know about "computers", and think more outside the box. Remember that the FPGA executes all "instructions" at once, which can be confusing. A person programming with VHDL would think that, because of putting a sequence of instructions, that sequence will run in that order. Wrong, all of the instructions will be run at once. If you need a sequence, then you need to make yourself a Finite State Machine.

so, for hardware engineers, FPGAs are a good option. but for your regular "computer" class, traditional sequential languages are the way to go.

Re:fpga's anyone? (0)

Anonymous Coward | more than 7 years ago | (#17839322)

>An FPGA would be a great way to get people started with embedded systems.

He asked for a micro-controller, dude. Unless you are suggesting that he plan to teach high school students courses digital logic & computer archtecture *and* enough of a HDL to implement a processor *and* the rudiments of assembly language that the guy wanted to teach in the first place, what good is your suggestion?

Re:fpga's anyone? (1)

sanimalp (965638) | more than 7 years ago | (#17840094)

>He asked for a micro-controller, dude. Unless you are suggesting that he plan to teach high school students courses digital logic & computer archtecture *and* enough of a HDL to implement a processor *and* the rudiments of assembly language that the guy wanted to teach in the first place, what good is your suggestion? I expected someone would mention this after I posted. You don't need to implement a processor at all. That is way beyond what I was thinking. Instead, use the HDL to develop simple and, or, and not gates, and show them how to build a simple 2 bit calculator using the leds as output, and buttons and switches as input, by stacking up the gates that they built. You still get to throw the classic debounce problem in for the buttons and switches. If nothing else, help these kids realize what kind of power they have with these new tools and a dynamically reconfigurable chip. My purpose in posting about FPGA's really was just to mention something that may not have been considered otherwise. As a side note, Xilinx licenses an hdl microproccesor, called the microblaze, which can be programmed in c with some Xilinx libraries. Im not sure how much it costs for a license, probably not cheap, but it is an option for use as a micro-controller.

FIRST Robotics (2, Interesting)

Quzarx (986221) | more than 7 years ago | (#17838932)

There are some robotics groups out there already. FIRST http://usfirst.org/ [usfirst.org] Robotics has been around for years. However, the cost is a bit steep, so a sponsor is needed. The team I work with was able to get a sponsor after one year of searching. The robots are pretty simple, you are handed a kit for electronics, and a base chassis, from there, you can add on accelleromters, gyroscopes, cameras, and other sensors to make things more complicated. Everything is custom made, so it is a great way to learn how to engineer things.

Texas Instruments MSP430 (1)

scoot80 (1017822) | more than 7 years ago | (#17838942)

For basic programming, you can use the MSP430F1121. They are very simple to use, as well as being the best low power processor out there. The prices for it aren't too bad either. There is a whole range of MSP430's, and depends what level you want to teach at. MSP4301232 is the same as 1121 except it has an ADC, so you can perhaps get students to do a simple temperature sensor.
Either way, there are many around. Atmel micros aren't too bad, I am not a big fan of Motorola's.. In the end, I work on MSP430s all day long, designing hardware and writing C.. so I'd go for them. As a matter of fact, I learned about micros on a 1121.

Re:Texas Instruments MSP430 (1)

nahpets77 (866127) | more than 7 years ago | (#17839190)

I agree that the MSP430 is a good processor. The micro-processors course at my university has been using it for 2 years. Crossworks for MSP430 [rowley.co.uk] is a nice IDE that has an educational license for $299. If that's too steep, you can go with the open source mspgcc [sourceforge.net] .

Re:Texas Instruments MSP430 (1)

scoot80 (1017822) | more than 7 years ago | (#17839830)

Along with mspgcc, a great IDE is conTEXT, and you can set up function keys for make, and msp430-downloader tool, while having the console information returned to you in the IDE window, making it a very easy to use development enviroment, and all for free.
mspgcc also supports the usb jtag (tool for downloading your firmware into the micro), so you aren't stuck with parallel ports.

Atmel AVRs (4, Informative)

lordlod (458156) | more than 7 years ago | (#17839024)

I'd go with Atmel AVRs.
They are widely used, well documented and well supported.
There are a large range of chips with a consistent instruction set, so they can learn on a simple eight pin 1-Kbyte chip and then apply that knowledge the next day on a large 32-pin 16-Kbyte device.
They are extensively used in industry so students can feel like they are learning something practical.

Atmel AT91SAM7S256 or better (0)

Anonymous Coward | more than 7 years ago | (#17839036)

1) They have heaps of I/O options
2) They have USB
3) They are seriously capable chips (no real need to screw around with assembler)
4) They are cheap
5) The scale.

Once you are comfortable with the 'low end' (>50MHz) part, you can scale up to better chips that do htings like run PDA's. The architecture stays the same, just lots of new I/O options and better performance and memory and...

It's not so much a chip, as a family. They are simply brilliant.

Forget Stamps, PIC's, AVR's. They are just old technology.

TI MSP430 series? (1)

cgreuter (82182) | more than 7 years ago | (#17839048)

Texas Instruments has $20 USB-based development boards [ti.com] for the MSP430 series microcontrollers. The MSP430 is a nice, clean C-friendly 16-bit architecture. It's practically luxurious, by microcontroller standards.

Although perhaps, as others have said, microcontrollers are a bit too hardcore for students. A better idea might be to use full-fledged PCs running DOS (FreeDOS if there are licensing issues), either by scavenging old laptops or by running a cable to the robot from a desktop PC. DOS is nice and simple, well-documented and well-supported with development tools.

(Disclaimer: I am employed in the creation of MSP430 development tools.)

Re:TI MSP430 series? (1)

Locutus (9039) | more than 7 years ago | (#17840018)

I was thinking along the lines of a standard PC mobo also. Old ones with RS232 ports are cheap and the older memory is cheap too. Now, add an CF->IDE interface board and there's no need for a harddrive. I would go with something like DSL( Damn Small Linux ) and include the Java package. Note that this is all pre-course prep work for the instructor so that the kids have a platform to work with.

There's also an open source Java based robotics simulator that'll let the kids control virtual robots on desktop computers first and then, move the code to the CF card and then plug it into the 'robot'. Ofcourse, some kind of wheeled platform is needed and I would look into seeing if Roomba would give a discount on some of their Create kits.

It's not plug-n-play but with a little work, a pretty cool teaching platform could be built and darn cheap too.

LoB

MC68332 RoboMinds SBC (2, Informative)

RoRo_the_Troll (562987) | more than 7 years ago | (#17839072)

I'm personally using this : http://www.robominds.com/ [robominds.com] There are good available libs for robotics purpose : http://www.motorobots.org/ [motorobots.org] I also saw others recommending the parallax which might fit better in your budget

Hands down! The PICAXE microcontroller!!! (2, Informative)

Brietech (668850) | more than 7 years ago | (#17839082)

This is basically what the Picaxe microcontroller series was made for. Their website is at http://www.picaxe.co.uk/ [picaxe.co.uk] and a reseller for them in the united states is located at www.phanderson.com. It is basically a PIC microcontroller (they use various models, from 8-pins to 40, so the scalability factor is there), with a custom ROM flashed onto them that has a BASIC interpreter. Think of a Parallax BASIC-STAMP, only all in one chip, and the chips range from $3-10 for most of them, so its almost as cheap as you can get it. Additionally, the BASIC software development environment is free to download, has no limitations, and is geared towards an academic setting (it even includes the ability to draw out simple logic circuits and have it convert them to basic code). Also, THEY DO NOT REQUIRE A SEPARATE PROGRAMMER. To program a PIC normally, you would need a ~$50-100 programmer for each student, but these hook directly up to the serial port (a cable is just 3 wires coming out of a DB9 connector), so each student can easily reprogram their own, or even do it from home. They're incredibly versatile (check out the forum at their main site), and perfectly suited to academic use, for both younger and older students

Mod parent up (1)

SpeedyGonz (771424) | more than 7 years ago | (#17842150)

Man, thank you very much, following your links I found out that I have a PICAXE distributor here in my country, actually an online electronics store I didn't know about.

A few ideas (1, Informative)

Anonymous Coward | more than 7 years ago | (#17839146)

This is a common topic on comp.robotics.misc... search the archives -- its come up at least once in the past couple of months. Instead of using embedded processors, why not use the PC with an I/O board?
http://www.phidgets.com/ [phidgets.com]
http://wiring.org.co/ [wiring.org.co]

And single-board computers are getting affordable...
http://www.sparkfun.com/commerce/product_info.php? products_id=8207 [sparkfun.com]

iRobot Create Development platform (1)

Crash McBang (551190) | more than 7 years ago | (#17839164)

How about the iRobot Create [irobot.com] platform? You can get ten of them for $1k, it's got the controller as well as the mechanics in a robust package.

Are you doing more hardware or software? (1)

dlleigh (313922) | more than 7 years ago | (#17839202)

Some micros are easier for one and harder for the other. If you're doing more software, are you going to be using a compiler, or will you be teaching them assembly? How critical is timing? If you're doing more hardware, you might think of what kind of microcontroller peripherals (i.e timers, UARTs, PWMs) will be useful to you.

I prefer 16-bit micros because they're easier to program on, and thus easier to teach to beginners. If you go 8-bit, you will be dealing with pointers in weird ways which will distract from the real task.

I like the MSP430 a whole lot, but it doesn't have 5V tolerant I/O so it will be a pain for novices to hook it up to interesting things.

If I had a time machine, I'd choose a 68000 variant. It has a nice architecture that is easy to program.

Avoid anything from Microchip. Their architecture is hideously evil and will cause your students to give up technology and go to law school.

The Renesas M16C line is very pleasant to program and simple to interface. It's easily available, but not as popular as others. Unfortunately, there's no GCC port.

ARMs are nice in a lot of ways. They're fast, cheap and and have lots of tools available, but they require quite a bit of setup and are not simple to program for. If you're going to program in C and you're willing to hand your students a starter environment, an ARM could work quite well.

Cerebellum from Carnegie Mellon (1)

viperstyx (578360) | more than 7 years ago | (#17839402)

check out the cerebellum from Carnegie Mellon. personally, though, i think lego mindstorms toolkits can take a high school student very far. in high school a friend of mine used one and did some pretty cool stuff with it in C. we learned a lot about stacks (we overflowed that a couple times...recursion can be a bad idea ;) and we even learned about multi threading (yes, it can do it!) but if you're looking for something more advanced, i definitely recommend the cerebellum. its what a lot of first year CMU kids start using for their robotics projects.

http://www.cs.cmu.edu/~myrover/cerebellum/ [cmu.edu]

disclaimer: i'm a CMU student.

Re:Cerebellum from Carnegie Mellon (1)

Xerotope (777662) | more than 7 years ago | (#17842190)

I second the motion for Cerebellums. They are made and sold by Botrics [botrics.com] , however they're no longer selling them in small quantities.

The good news is they'll soon be selling an even better micro-controller board.

AVR Butterfly (2, Informative)

Anonymous Coward | more than 7 years ago | (#17839500)

If you want to start off with C, I recommend the AVR Butterfly.

You can get an AVR Butterfly http://www.atmel.com/products/AVR/butterfly/ [atmel.com] for $20 at digikey... it comes with an LCD screen, a five way joystick-like button, a speaker, some sensors, RS232 level converters, and an ATMega processor. To program it, you just wire up an RS232 plug to the board and download the C/Assembly compiler from their web site. GNU tools for this are also available. No specialized programmer required.

The advantage of a board like this is it's quick. You don't need to wire up a micro with an oscillator and some output devices. You don't need a special programmer. You don't need to buy a C compiler. It's all there, and $20 is fairly cheap. If the kids like 'em, they can buy their own for home.

If you want to start off with something easier, like BASIC, the BASIC stamp seems like the way to go.

Good luck!

better things (2, Interesting)

KG6 (1007815) | more than 7 years ago | (#17839536)

I think you're students will become extremelly enthusiastic towards robotics if they get involved in a program like FIRST [usfirst.org] robotics. Check out regional event this year and talk to some of the students, a huge majority of them will tell you that because of FIRST they intend to persue a carrer in engineering.
Check what people are working on at chiefdelphi [chiefdelphi.com] , the environment there is very much like what the students are like at their schools. They ask questions, chat with each other, have fun, and mentors offer guidance for some of the tougher problems.

Atmel AVR. No contest. (5, Interesting)

Miamicanes (730264) | more than 7 years ago | (#17839596)

I'd recommend Atmel AVRs without a moment's hesitation.

The PIC and 8051 grew from architectures that were considered spartan and stripped to the bone a generation ago, and got a foothold only because (compared the "real" CPUs) they were somewhat affordable. They've matured, of course... but people who start on PICs almost inevitably get saddled with all the legacy baggage. In contrast, people whose first exposure is to Atmel or Motorola take one look at the PIC's legacy stuff, say "eeeewwww!", skip the first 20 chapters of the book, and go right to the good (modern) stuff.

The Motorola/Freescale MCUs are powerful, but they're NOT for newbies.

The nice thing about AVRs is that they're fairly robust and hard to permanently kill. I've abused AVRs pretty badly, and I've NEVER had one permanently die on me. There were a few I'd thought were dead, but ultimately they were all resurrected via high-voltage programming or by supplying an external clock signal to them. I've grossly exceeded the i/o pins' current-draw capabilities, connected power backwards, created pin-to-pin shorts, and still lived to tell about it. From what I've read, other platforms aren't quite as forgiving and wantonly abusable as AVRs. I know people who've driven 5v-relays straight from AVR i/o pins.

AVRs also have a great resource -- avrfreaks.net

AVR development tools are fairly cheap. An ISP-only programmer costs around $30-35. The Dragon costs $50, but adds support for high-voltage programming (handy for fixing messed up fusebits and reviving chips that otherwise appear to be dead) and Debugwire (think of it as single-wire JTAG for debugging). Unless you actually care about compatibility with Atmel's old chips, I'd recommend a Dragon over the STK500, if only for the Dragon's Debugwire capabilities.

AVR Studio is a free IDE (Windows only, though... but I think there's a Linux alternative) that natively supports assembly, but also integrates seamlessly with WinAVR for C/C99/C++ (of the 3, C99 is the one I find the most useful... it basically gives you the linguistic niceties of C++, like parametric polymorphism, without the huge libraries and resource requirements normally required for full-blown C++).

One major tip: if you want to use C (or eventually C99 or C++), buy John Pardue's book ("C Programming for Microcontrollers) and a Butterfly. He sells it directly from his website (smileymicros.com) for less than it costs from Amazon, and you can pick up the relevant hardware from him for less than you'd spend buying it all from Digikey. No, it's not the greatest book on C programming ever written... but it's the single best book you can get for learning C as it applies to AVR microcontrollers. Remember, 99% of C is learning how to use its libraries. Let's just say that time spent learning to use stdio in a generic C programming book isn't going to do much for your AVR programming skills...

Architecturally, AVRs are fairly well-behaved. The biggest problem I've had is the fact that they're SO well-behaved, it's easy to get a false sense of security and overlook details that are different between them. Unfortunately, Atmel's datasheets seem to have the same general editorial philosophy as the first O'Reilly books (say it once, never repeat anything, and bury important details in the middle of otherwise nondescript paragraphs on page 183, without so much as a gray box or sidebar to call attention to it). However, everyone at avrfreaks.net is painfully aware of those documentation shortcomings, and when somebody gets snared by one of them, someone else usually notices within 5 minutes, sighs, yawns, and politely points them in the right direction. It's exceptionally rare for anyone to get flamed.

As far as robots go, AVRs definitely seem to be just about everyone's favorite 8-bit processor. 6809s are popular with some more advanced users (though many of them freely admit that they aren't quite sure why they used a 6809 instead of an AVR), and the 68332 is a longtime favorite at the high end... but ARM just doesn't seem to get a whole lot of love from robot builders, and the Coldfire replacement for the 68332 doesn't seem to have been as warmly embraced. I think it's because Motorola apparently was a lot like Atmel and constantly handed out free stuff, while Freescale seems to be a LOT stingier about it. From what I've read, back in "the old days", Motorola would actually ship 20 pounds of reference manuals to you at their expense just for asking, and gave away CodeWarrior for free. The last time I checked, Freescale now charges around $10,000 for it. Ouch.

The Netburner Coldfire modules (like the Mod5213) seem to have lots of potential and decent prices, but IMHO, Netburner is WAY too secretive about things that they have no good reason to be secretive about. Apparently, they're good about answering email... but I've gotten badly spoiled by Atmel. Atmel doesn't feel any need to go through avrfreaks.net daily pruning away postings that criticize them or make them look bad, because anyone who bothers to make half an effort to read the replies and general context quickly figures out that things aren't nearly as bad as the poster might have thought. Atmel's not afraid to post appnotes whose general theme is "how to solve (some problem) in (our chip)", while Netburner's marketing dept. and lawyers seem to be hellbent on presenting a well-scrubbed & carefully-polished image of a universe where everything is always perfect and trouble-free. They just don't give off that same happy, carefree, information-wants-to-be-free vibe that Atmel does. And it's a shame, because I really want to like them.

I wouldn't recommend ARM for newbies, but for anyone considering them as the next logical step above AVRs, NXI's ARM chips seem to be the most "AVR-like" in terms of on-chip peripherals and capabilities. Check out sparkfun.com's NXI-based ARM modules.

MOD PARENT UP (1)

Deef (162646) | more than 7 years ago | (#17840154)

Good info on the AVR series. I have had similar positive experiences with the AVR microcontrollers and community.

Re:Atmel AVR. No contest. (1)

Jeff DeMaagd (2015) | more than 7 years ago | (#17841922)

Regarding the documentation, I suggest starting a wiki to record all the typical gotchas, and maybe make a third party data sheet system. That would help cut out the verbose cruft that most CPU data sheets seem to have.

It sounds like an interesting chip family. As I use a compiler, I don't have to deal with the memory banks, which was the PIC's biggest issue. Everything else is great, I think, the documentation and sample code was clear and easy, in my opinion, and the book Easy PIC'n was a good start. I can generally implement major new features from zero to fully functional in a couple hours without prior experience with that type of feature.

At any rate, I suggest that someone make a starter project book for the AVRs.

Lego Mindstorms NXT has a 32 bit ARM cpu! (2, Interesting)

gwait (179005) | more than 7 years ago | (#17839832)

That's no lightweight system, and it comes with a serious set of development tools who's big brother version is used in the real world.

Looks like they offer an educational version too:

http://www.arm.com/markets/embedded_solutions/armp p/14149.html [arm.com]

GA Tech and microsoft. (1)

si1houette (1057812) | more than 7 years ago | (#17840184)

Georgia institute of Technology is playing around with some robotics (made by Microsoft :( ) for their introduction to Computer Science class. These robots will probably be simple enough for your class, but more advanced than legos. while I hate (really hate) to be an add for Microsoft, here are the links to the info http://www.microsoft.com/presspass/press/2006/jul0 6/07-12PersonalRobotsEducationPR.mspx [microsoft.com] http://www.roboteducation.org/ [roboteducation.org] this program is just starting up, but you should keep an eye on it. If microsoft doesn't screw this up, then this will probibly be helpful to you. as far as cheep goes, i can't tell you how good this will be. (crazy thought) you might be able to contact m$ and they may be interested in starting something like this in the high schools. so they might have money set aside just for that. you might get lucky. I doubt it, but you might. there is no harm in trying. good luck, i hope this helps.

How far do you want to go? Z80 (1)

splutty (43475) | more than 7 years ago | (#17840232)

Since if you want to do everything from the ground up (understanding of servos, of the electronics involved to run said servos, actually building the electronics, etc), I think that a Z80 would be a rather good choice.

They're very cheap, very useful little toys, and no need for complex electronics either, generally no need for buffer structures, has its own ram refresh, you can just plug in an eprom pretty much without a problem, build the whole thing on standard experimental PCB, and has a very simple straightforward assembly language with direct IN/OUT which can drive a lot of commonly available ICs for servo control, light control, sensor control, etc.

The cheap factor is kinda handy ;) I never bothered putting in safeties, if I blew a Z80 I'd just plug in a new one.

http://digilentinc.com/ (1)

binford2k (142561) | more than 7 years ago | (#17840494)

I'll plug the guys I know: http://digilentinc.com/ [digilentinc.com]

I've worked with a handful of their boards and they are pretty nice. These guys exist to serve the academic market and even take a hit on some of the boards they sell at academic pricing. If you work with them, tell them the WSU LUG sent you.

cheap, scalable (1)

salec (791463) | more than 7 years ago | (#17840680)

IMHO, although I am not that much fond of their architecture, PICs are as scalable as you can get, from tiny little 5-pin SOT mites to serious high pin count have-it-alls.

Just make sure you jump them on time when scale (functional, software complexity) grows too big, as they don't agree quite well with mainstream computer science paradigms, by which I mean: "no hardware supported general purpose stack in RAM".

However, that probably will never be a problem for high school simple robotics projects.

Zilog eZ8 Encore! works for us (1)

not-quite-rite (232445) | more than 7 years ago | (#17840858)

Zilog has a nice range of chips with a very good amount of peripherals built in. Their development environment is very nice for stepping through and debugging code. Pity it is only for windows, and their really could be more sample code out there.

And they run plenty of competitions with circuit cellar, so you can often get free devel kits.

Parallax (0)

Anonymous Coward | more than 7 years ago | (#17841160)

Go with Parallax. You arent looking to turn them into industry geniuses in your class, so get them excited about it by using a parallax basic stamp. There are tons of code examples on thier site as well.

Maybe introduce them to others at the end of the class year, like the AVR/PIC/Renesas micros.

Vex! (1)

nullset (39850) | more than 7 years ago | (#17841302)

The Vex robotics kit (from IFI, the folks behind First Robotics) is geared towards what you're talking about.

It can even be programmed visually, in "Easy-C". This lets people drag and drop into a visual editor, essentially making a flow chart. It displays the generated C code.

When you tire of that, you can program it in C using the MPLAB compiler (and possibly others).

I, too, would recommend First Robotics (www.usfirst.org) as well as the Best robotics competition, which has a lower cost of entry, but no programming to my knowledge. http://www.bestinc.org/ [bestinc.org]

ttyl,

--buddy

Oopic (1)

keithhackworth (902524) | more than 7 years ago | (#17841376)

I teach my 11 year old daughter with an Oopic controller. It's simple, programmable in BASIC, Java, or C++. It's simple and fairly easy for her to understand. It's also affordable!

Here's the website: http://oopic.com/ [oopic.com]

Keith

Parallax BASIC STAMP. (1)

gmarsh (839707) | more than 7 years ago | (#17841450)

When I went to high school, we played with a Lego 'Dacta' system. It seems more than sufficient - I have fond memories of a 'gun' we made that would only shoot blue pieces, and only a distance of about a foot. ;) I can't see why a Mindstorms kit isn't good enough for education.

But anyway, if you're doing microcontroller level education... Parallax BASIC STAMP.

They're ridiculously expensive for their capabilities, they have nowhere near as much I/O as your standard AVR or PIC chip... but they're probably the best thing on earth for educational use because they're ridiculously easy to work with and program. You can easily explain BASIC to kids on a chalkboard. "int main(void)", not so much. Assembly code? completely forget it.

Handyboard (1)

BennyB2k4 (799512) | more than 7 years ago | (#17841876)

We use the Handyboard http://handyboard.com/ [handyboard.com] which is kinda old-tech with a Motorola 68HC11, but is very beginner friendly. There is a free C compiler available http://www.botball.org/educational-resources/ic.ph p [botball.org] that is also very easy to use. With the expansion board there are many interfaces: analog inputs, digital in/out, sonar, motor drivers, servos, LCD screen.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>