Slashdot Mirror


What Micro-Controller Would You Use to Teach With?

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."

175 comments

  1. Parallax and the Basic Stamp by JimMcc · · Score: 3, Informative

    Check out http://www.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.

    1. Re:Parallax and the Basic Stamp by WndrBr3d · · Score: 3, Informative

      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 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!

    2. Re:Parallax and the Basic Stamp by AndresCP · · Score: 1

      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.

      --
      "Just because you're eloquent doesn't mean you aren't a fucking crackpot." -Wavebreak
    3. Re:Parallax and the Basic Stamp by RespekMyAthorati · · Score: 1

      I teach an intro to robotics course and use this one: http://www.pololu.com/products/pololu/0225/
      It is powerful (Atmega8), complete with motor controller and LCD display and cheap ($50 complete). You can program it in C using WINAVR (free download) using any PC.

  2. FP? by Anonymous Coward · · Score: 0

    Basic Stamp

  3. Snuh! by Anonymous Coward · · Score: 1, Informative

    AVR.

    1. Re:Snuh! by Anonymous Coward · · Score: 2, Informative

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

    2. Re:Snuh! by Andy+Dodd · · Score: 1

      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.

      --
      retrorocket.o not found, launch anyway?
    3. Re:Snuh! by Nutria · · Score: 1
      CVAVR was what my undergrad microcontrollers class (Cornell's ECE 476) used, and I believe still uses.

      Except that a Senior-level (4xx is still senior level?) University course is populated by much more technologically advance group of people than a High School class is.


      --
      "I don't know, therefore Aliens" Wafflebox1
  4. Well... by Creepy+Crawler · · Score: 0, Offtopic

    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.

    --
    1. Re:Well... by WarlockD · · Score: 3, Insightful

      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/. 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.

    2. Re:Well... by Creepy+Crawler · · Score: 0

      ---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/. 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.

      --
    3. Re:Well... by phantomcircuit · · Score: 3, Interesting
      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

    4. Re:Well... by rblancarte · · Score: 1

      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. 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

      --
      It is human nature to take shortcuts in thinking.
    5. Re:Well... by Anonymous Coward · · Score: 1, Interesting

      > 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.

    6. Re:Well... by TapeCutter · · Score: 2, Insightful

      "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.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    7. Re:Well... by Anonymous Coward · · Score: 0

      what teenager want's to be mentally defeated

      "wants". (Jesus Christ, when is "wants" ever apostrophized (apostropheed?)?)

  5. Parallax? by Jeff+DeMaagd · · Score: 1

    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.

    1. Re:Parallax? by FooAtWFU · · Score: 1
      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.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
  6. options by drrrl · · Score: 3, Informative

    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.

    1. Re:options by IceCreamGuy · · Score: 4, Informative

      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 -Julius

    2. Re:options by Anonymous Coward · · Score: 0

      easeability, powerfulity and economicalness.
      *boggle*
  7. PIC by Anonymous Coward · · Score: 2, Informative

    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.

    1. Re:PIC by John+Miles · · Score: 1

      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.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    2. Re:PIC by zarthrag · · Score: 2, Informative

      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).

      --
      Why can't all fpga/microcontroller manufacturers just release free optimizing compilers???
    3. Re:PIC by thegrassyknowl · · Score: 2, Informative

      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.

      --
      I drink to make other people interesting!
    4. Re:PIC by Anonymous Coward · · Score: 0

      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.

    5. Re:PIC by Raven15 · · Score: 2, Informative

      I just recently started my microprocessor programming experiences, and a PIC is what I used. That said, the instruction set is pretty anemic. I didn't like the way that branching worked especially. I'm about to start on my next project, and I'll probably be using an Atmel AVR (ATmega8, most likely).

    6. Re:PIC by Temkin · · Score: 1



      Cheap: Yes
      Easy to Program: Yes
      Decent arch to learn on: Hell no!

      PIC's are crap. It's a oddball POS straight from 1975. It has limited addressing modes, small instruction set, no orthoginallity, and is difficult to program in a high level language.

      Looks at modern AVR's and derivative 8051's. If you want a real screamer, try Silabs.

  8. The leaf project? by noopm · · Score: 2, Informative

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

  9. Motorola 68HC11 by Ryan+Stortz · · Score: 1, Insightful

    I'm currently taking a Microprocessors class at Ferris State University. 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 as the IDE/assembler.

    I'm enjoying the class so far.

    --
    Bugs are just features that have been fixed.
    1. Re:Motorola 68HC11 by Anonymous Coward · · Score: 0

      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.

    2. Re:Motorola 68HC11 by bakana · · Score: 1

      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.

    3. Re:Motorola 68HC11 by LMN8R · · Score: 1

      I'll have to agree with this guy. For my microcontrollers class we used the 68HC12 - no doubt similar to the 11 that he used - and it was very good to learn with. Relatively simple to learn the instruction set.

    4. Re:Motorola 68HC11 by capnal · · Score: 1

      I learned on the HC11 and found it to be a good introduction into the world of microcontrollers. I've since been able to pickup and understand other procs like the Coldfire, PIC, OOPic and architectures like RISC with the foundation the HC11 gave me. It seems it was small enough to really learn inside and out, but complex enough to allow you to do all sorts of experimentation. Using pure assembly and then in later projects C, which was compiled down into Motorola assembly, it was possible to create programs do everything from just blinking an LED to running your own preemptive scheduler / mini embedded operating system.

    5. Re:Motorola 68HC11 by pjwhite · · Score: 1

      My favorite processors are the Freescale 68HC908 series and the Atmel 89C51RC. I use these all the time in my work. I have also done some projects with the Atmel Tiny series which are OK, too. The PIC is very low on my list of preferred devices due to its weird instruction set.
      I like the 8051 because the architechture has been around for decades and I figure it's pretty safe to design into a product with a long expected lifetime. I like the 68HC908s because the instruction set is very nice to work with and the Flash based parts are reprogammable.

      I would recommend assembly language programming for beginners for the reasons others have stated -- learning the underlying workings of the microprocessor.

  10. 68HC11 by Anonymous Coward · · Score: 0

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

  11. Freescale/Motorola 6808 by StarWreck · · Score: 4, Informative

    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

    --
    ... and in the DRM, bind them.
    1. Re:Freescale/Motorola 6808 by ratboy666 · · Score: 1

      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.

      --
      Just another "Cubible(sic) Joe" 2 17 3061
  12. PICmicro by _merlin · · Score: 2, Interesting

    The Microchip PICmicro is a very good choice. Try the PIC16F84 - 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.

    1. Re:PICmicro by Eckzow · · Score: 0

      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.

    2. Re:PICmicro by coniferous · · Score: 1

      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/. 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.

    3. Re:PICmicro by John+Miles · · Score: 1

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

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    4. Re:PICmicro by sarahbau · · Score: 1

      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.

    5. Re:PICmicro by Anonymous Coward · · Score: 0

      >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.

    6. Re:PICmicro by _merlin · · Score: 1

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

    7. Re:PICmicro by yope · · Score: 1

      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.

    8. Re:PICmicro by salec · · Score: 1

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

    9. Re:PICmicro by Lord+Ender · · Score: 1

      PIC is the best. A $2 chip will get you persistent memory, flash reprogrammability, and ADC. But remember: 16F84 is old and busted. 16F88 is the new hotness. It is superior to the 16F84 in every way, and it costs less.

      Also, Microchip will give you PICs for free!

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    10. Re:PICmicro by Anonymous Coward · · Score: 0

      The DEC AlphaServer DS10 uses a PIC17C44 processor for Remote Management Console (temperature sensor, remote reboot, etc) features. Not sure about other models of Alpha, but the PICs are popular on DEC Equipment.

    11. Re:PICmicro by Profane+MuthaFucka · · Score: 1

      They get knocked because they have a weird programming scheme with strange voltages that are unfamiliar. If you want to buy a PIC programmer, you have to wade through a very weird website with a confusing layout. Seriously, what is up with that? The Dontronics website is a confusing mess. I can barely figure out what I need to buy.

      And the instruction set is seriously funky too. It's a crusty mess of things attached like warts with bits going all over the place.

      On the other hand, despite all the craziness, the PIC is an extremely useful and practical chip to work with, and there's hundreds of different varieties which seem to pop into just about any application you can think of like magic. Don't let the weirdness keep you away from the PIC.

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    12. Re:PICmicro by Anonymous Coward · · Score: 0

      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)

      I have done many designs with PIC and most have not required any C. Assembly is clean, fast and, done right, maintainable. I ceratinly wouldn't have any introductory course start with C. good design and programming practices are not limited to high level languages.

      very little on-chip resources (almost no RAM, very little flash memory, and very limited set of peripherals)

      Pure crap. Latest offerings have up to 128k flash, 4k RAM and EEPROM. The onboard peripherals include UARTs, SPI, I2C, A/D converters, PWM, on and on...

      have very poor performance compared to recent microcontrollers

      20 MIPs ain't fast enough for ya? I have done things like real-time audio FFT, motor control with fuzzy logic loops and a host of other things. Speed has never been an issue with PICs. In addition, their nanoWatt technology makes PICs very attractive for battery/low power applications.

      and are not cheap either.

      There are variants that run less than $1. I have made significant cost-reductions in products just replacing random logic with a PIC in some cases.

      The same goes for 8051 derivatives (including the Rabbit line of micros)

      Rabbits have z-80 cores, not 8051. That's the final nail; you obviously don't know what the hell you are talking about!

    13. Re:PICmicro by nsaspook · · Score: 1

      How about #1 8bit microcontroller market share.

      http://ww1.microchip.com/downloads/en/devicedoc/39 746A.pdf

      I don't speak for microchip, just work there.

      --
      In GOD we trust, all others we monitor.
    14. Re:PICmicro by yope · · Score: 1

      Pure crap. Latest offerings have up to 128k flash, 4k RAM and EEPROM. The onboard peripherals include UARTs, SPI, I2C, A/D converters, PWM, on and on...
      That is indeed poor for top-of-the-line models nowadays. Latest offerings from Atmel, NXP and Fujitsu are having 512k Flash and up to 64k RAM or even more sometimes. If you compare performance/price ratios, the PIC's are indeed expensive.

      20 MIPs ain't fast enough for ya?
      No, it isn't. ARM7 cores do up to 70 MIPS moving 32-bit data, so that'll be around 12 times as fast, and that for the same or less money! Where's yor eceonomics going?

      There are variants that run less than $1
      Same goes for Atmel AVR 8-bit processors, and they have a much better instruction set IMHO. I also use cheap 8-bitters to replace discrete logic sometimes. In my latest design I used an Attiny13V as a cheaper Watchdog/Reset circuit for a Freescale MPC5200 running embedded linux. The Attiny13V can be (re-)programmed via the MPC5200's SPI port ;-)
      For around US$1.50 you'd already get a NXP LPC2101, 32-bit ARM core which you can program in C.

      Rabbits have z-80 cores, not 8051.
      This time you are absolutely right. Sorry for the mistake. Shame on me.

      You obviously don't know what the hell you are talking about!
      Well, if you refer to confusing z80 with 8051, you might be right, otherwise, I'm sure you're wrong ;-)
      P.S.: Next time don't be an anonmyous coward when you reply like this.
    15. Re:PICmicro by _merlin · · Score: 1

      You don't get it. It's not all about speed. In a lot of applications, you don't need anywhere near 20MIPS. In a lot of places 1MIPS is more than enough. The thing is a microcontroller, not a general purpose computer. Also, think about power consumption, operating temperature range, power supply noise reduction, etc. The PICmicro is very good at what it does, and cheap, too. It's also a very good learning tool.

      And you haven't refuted any of my original points: the PICmicro is easy to understand, with a simple instruction set, and it's easy to calculate timing. It's also cheap and readily available. This makes it a very good platform to learn about microcontrollers and embedded programming with.

    16. Re:PICmicro by yope · · Score: 1

      You don't get it.
      Try not to sound so agressive when you believe someone doesn't understand you. I perfectly do. Of course there are many applications for which 1MIPS is more than enough, that's why I suggested looking at Atmel's AVR line of uC's. Those are also cheap, easy to understand, readily available, but are of a less awkward architecture, that's not 30 years old, and was not originally designed to be just a sort of "intelligent peripheral" for a "real" microprocessor (yes, that's what PIC stood for originally: "Peripheral Interface Controller"). I know that PIC's have become more advanced over time, adding more instructions and more on-chip peripherals, and I have used and programmed PIC's myself, and it still feels like old, outdated technology, patched together and improved with various kludges.
      IMHO, if you start learning uC's now, and begin with a PIC, you are beginning with obsolete technology, studying what IMO is a bad design for a uC.
      If you really want to start with old, simple designs, start learning a more elegant machine, like for example the motorola (freescale) 68xx derivatives, or for history sake, the MOS 6502 (that was btw the first machine language I learned, and I still think that it's simplicity and elegance is remakable).
      Kids that want to learn about microcontrollers now, and want that knowledge to serve them after they finish school, are better confronted with learning tools that have a future, and not tube-radios ;-)
  13. Reluctantly recommending the basic STAMP by Uncle+Ira · · Score: 4, Interesting

    As much as I love the open source Arduino 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" 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.

  14. Atmel by Anonymous Coward · · Score: 1, Informative

    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.

    1. Re:Atmel by Anonymous Coward · · Score: 0

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

  15. PIC by quanticle · · Score: 1

    The University of Minnesota just moved to the PIC 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.

    --
    We all know what to do, but we don't know how to get re-elected once we have done it
  16. Avoid PICs at all costs by Flavio · · Score: 2, Informative

    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.

    1. Re:Avoid PICs at all costs by Space+cowboy · · Score: 1

      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), 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

      --
      Physicists get Hadrons!
    2. Re:Avoid PICs at all costs by coniferous · · Score: 1

      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.

    3. Re:Avoid PICs at all costs by hjf · · Score: 2, Informative

      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).

    4. Re:Avoid PICs at all costs by Deorus · · Score: 1

      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.

    5. Re:Avoid PICs at all costs by Jeff+DeMaagd · · Score: 1

      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.

    6. Re:Avoid PICs at all costs by Andy+Dodd · · Score: 1

      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.

      --
      retrorocket.o not found, launch anyway?
    7. Re:Avoid PICs at all costs by hjf · · Score: 1

      You Must Be New Here! (yes I saw your user id). Don't you know that people rant about anything here all the time?

      Besides, microchip isn't fixing anything. I have been using #includes from the first time I programmed PICs. MPASM (the assembler) is very powerful when you get to know it. It can give you a lot of flexibility and portability when you use it properly. MPLAB has a great simulator, with very useful features (such as the Stopwatch that allows you to count instruction cycles. I use it all the time for realtime apps).

      Now seriously, regarding AVR... could you give an example of what's wrong with PICs vs AVR? All I can find wrong with the PICs is that they aren't pipelined (they have a regular 4 Tc instruction cycle). I think that *could* be fixed, and that microchip *should* have done it for their newer PIC series (such as the 24FJ, but I haven't read too much about them so I can't speak for sure).

      From Wikipedia:

      The AVR instruction set is more orthogonal than most eight-bit microcontrollers, however, it is not completely regular:

              * Pointer registers X, Y, and Z have addressing capabilities that are different from each other.
              * Register locations R0 to R15 have different addressing capabilities than register locations R16 to R31.
              * I/O ports 0 to 31 have different addressing capabilities than I/O ports 32 to 63.
              * CLR affects flags, while SER does not, even though they are complementary instructions. CLR set all bits to zero and SER sets them to one. (Note that CLR is pseudo-op for EOR R,R; and SER is short for LDI R,$FF. Math operations such as EOR modify flags while moves/loads/stores/branches such as LDI do not.)

      wtf? Anyway, there are reasons to do it that way, the last instruction for example. I think is just like Microchips MOVWF and SWAPWF. Both move the contents of W to a register (SWAP of course swaps the nibbles), but MOVWF alters status bits while SWAPWF does not. This is useful when you need the Status bits untouched. For example, when the PIC calls an interrupt, it doesn't automatically do "context saving" (doesn't save the contents of PCLATH, STATUS and W). You need to do it by hand. So in order to save STATUS you do a MOVF STATUS,W and then SWAPWF STATUS_TEMP. Then you do your processing, and then back again SWAPF STATUS_TEMP,W; MOVWF STATUS. There's your status bits unaltered.

      PICs have their issues too, of course. Such as accessing "RAM" banks, which is annoying sometimes because you need to know what you want to address, or Program Memory pages which are even worse because the program counter is 8-bit (the lower part, PCL), so you can't make a table read of more than 256 bytes in an elegant way.

      Where am I going with all this rant? Well, I think there are no "bad" architectures, or instruction sets (Microchip mnemonics, I think, are a little more friendly). There is a tool for everything, and one should choose accordingly. I choose Microchip, obviously because I'm used to it, but also because I think it's the best overall (price, features, free tools, etc).

      Sure, I would use AVR chips. Just point me in the right direction (an IDE, a few examples, and an easy to make programmer) and I'll give it a try. I saw the ATtiny11 chips at $0.79 here while PIC12F629's are $1.30 here in my country. That would be a pretty good reason for me to switch (sure, the PIC has more memory but I rarely use it).

      Right now I have a project in mind: I want to make a car alarm (for an old car I have). I did the remote with RF modules from www.rentron.com and Keeloq chips from Microchip. I was going to do the alarm with a 12F629, but I think that would be a nice project to start with the ATtiny11 (it's just a flip-flop and a timer anyway...).

  17. ATMEL by WED+Fan · · Score: 1

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

    --
    Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
  18. Check out "Wiring" by Animats · · Score: 1

    Take a look at Wiring. 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.

    1. Re:Check out "Wiring" by CandyMan · · Score: 1

      The basic Arduino board is really a reference board for the cheaper ATmega8 chip (8 bit only) coupled with the Wiring software IDE+toolchain (based on GCC). Best of both worlds in my opinion. Cheap, powerful, and blessed with a very actively developed IDE. A friend of mine teaches robotics to the 12-year-old "problem-kids" in his school, and they take to it like a fish to water.

      The Wiring/Arduino language is a subset of C with a series of easy-peasy libraries, but you can also access the full C compiler if you need it. This way your students learn in an easy sandbox, but are not really confined to it, and can take their hardware expertise with them when they graduate to more complex projects.

      I have not followed Arduino lately and don't know whether it already supports interrupts. Interrupts and ethernet are the only things I missed on it when I was tinkering with it a year ago.

      --
      http://barrapunto.com/ - News for nerds, en español
    2. Re:Check out "Wiring" by Animats · · Score: 1
      I have not followed Arduino lately and don't know whether it already supports interrupts.

      They've made some progress. The IDE now supports interrupts, and Wiring has moved up to the AtMega 128. Actually, they support most of the Atmel line. You can use their IDE with Atmel boards other than the Wiring board, but you may have to make configuration files that describe the other board's pinouts.

    3. Re:Check out "Wiring" by ksheff · · Score: 1

      Does your friend have a website with any of the projects or resources that he uses for his classes?

      --
      the good ground has been paved over by suicidal maniacs
    4. Re:Check out "Wiring" by CandyMan · · Score: 1

      > The IDE now supports interrupts

      I am a happy man now!

      --
      http://barrapunto.com/ - News for nerds, en español
    5. Re:Check out "Wiring" by CandyMan · · Score: 1

      I am Madrid-based and so is my friend, so his material is in Spanish.

      He wrote an Arduino guide for teachers (Spanish) of high-school (I think it is for 13 and 14 year-olds), which you can also download in a big zipfile of doom.

      His personal site is karamaku.info, any new develpment from him should appear there.

      --
      http://barrapunto.com/ - News for nerds, en español
    6. Re:Check out "Wiring" by Animats · · Score: 1

      The "Wiring" board is kind of hard to get, but take a look at this $54 board. AtMega128, 2-line LCD, four buttons, relay, LED, buzzer, and connectors for most of the micro controller's interfaces. If that can be made to work with Wiring, you'd have a nice little self-contained board that students can learn on.

    7. Re:Check out "Wiring" by CandyMan · · Score: 1

      I haven't even seen a Wiring board, so I am talking on hearsay, but wasn't the Wiring board too expensive? I think that is what gave Arduino the edge: it was simpler, but much cheaper. As to making the AtMega128 work with Wiring, do you mean the Wiring-hardware version of the Wiring/Arduino IDE+toolchain?

      --
      http://barrapunto.com/ - News for nerds, en español
  19. ARM, perhaps? by msloan · · Score: 1

    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.

  20. Re:options... sorry, wrong size by IceCreamGuy · · Score: 1

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

  21. fpga's anyone? by sanimalp · · Score: 1

    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.

    1. Re:fpga's anyone? by John+Miles · · Score: 1

      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.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    2. Re:fpga's anyone? by hjf · · Score: 1

      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.

    3. Re:fpga's anyone? by Anonymous Coward · · Score: 0

      >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?

    4. Re:fpga's anyone? by sanimalp · · Score: 1

      >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.

    5. Re:fpga's anyone? by hjf · · Score: 1

      Opencores has a 16F84 core for free.

    6. Re:fpga's anyone? by Jesterboy · · Score: 1

      I have to agree with you. When I saw the headline of the story, I thought, "Oh, why not an FPGA?", but upon opening and seeing the words "high school", the idea quickly evaporated. It's just too complex for not enough pay off; in order for it to be used with any sort of robotics system would require hours and hours of work by the teacher, and it would fly over most of the kids heads anyway. Even though there are available microcontrollers, such as Picoblaze, I've used the Spartan 3 starter kit myself, in college, and it went over the heads of some professors.

      Sure, maybe one or two kids in the class would really enjoy it and just go nuts, but for the others, it would probably be the most boring thing they'd ever seen.

    7. Re:fpga's anyone? by John+Miles · · Score: 1

      I have the Spartan 3 and T-Rex C1 kits on my shelf, but they're just gathering dust, despite my efforts to come up with an excuse to develop something with them. What I find in my own projects is that either a simple AVR/ATmega chip is enough, or a full-fledged Mini-ITX motherboard is preferable.

      FPGAs just never seem to be the best part for control applications. Bus-level interfacing, sure... but there always seem to be higher-level solutions for that (often involving someone else's FPGA-based design). I'm not sure they belong in any classroom setting unless you're explicitly teaching advanced logic design.

      Of course, if I were building 1,000,000 units of something, I imagine the decision-making process would be pretty different.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
  22. FIRST Robotics by Quzarx · · Score: 2, Interesting

    There are some robotics groups out there already. FIRST http://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.

    1. Re:FIRST Robotics by Bugs42 · · Score: 1

      FIRST is bloody awesome. I was on a team back in high school, and I'm still helping them out now as a mentor. I would never say it's simple, but it's a helluva great experience. I think I've learned more from that than any of my college courses (so far, at least).

      --
      Programmer: an ingenious device that converts caffeine into code.
  23. Texas Instruments MSP430 by scoot80 · · Score: 1

    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.

    1. Re:Texas Instruments MSP430 by nahpets77 · · Score: 1

      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 is a nice IDE that has an educational license for $299. If that's too steep, you can go with the open source mspgcc.

    2. Re:Texas Instruments MSP430 by scoot80 · · Score: 1

      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.

    3. Re:Texas Instruments MSP430 by nahpets77 · · Score: 1

      That looks like a really nice editor. Thanks for the tip.

  24. Atmel AVRs by lordlod · · Score: 4, Informative

    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.

  25. Atmel AT91SAM7S256 or better by Anonymous Coward · · Score: 0

    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.

  26. TI MSP430 series? by cgreuter · · Score: 1

    Texas Instruments has $20 USB-based development boards 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.)

    1. Re:TI MSP430 series? by Locutus · · Score: 1

      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

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    2. Re:TI MSP430 series? by TerranFury · · Score: 1

      >I would go with something like DSL( Damn Small Linux )

      I'm doing something similar with a headless single-board computer. The one thing that you forget, that I thought would be easy, and which is now kicking the crap out of me, is that Linux is not out of the box hard realtime. Latency sucks for control applications.

      I thought I had a solution for this: RTAI. These are extensions to the kernel that allow you to do hard realtime tasks. But I can't get the damn thing to work. I can either compile a 2.2 kernel with an old version of RTAI which will boot but freeze the system if I try to access any of the realtime timers, or a 2.4 or 2.6 kernel with a newer and more mature version of RTAI -- but even without RTAI, neither the 2.4 nor 2.6 kernels seems to want to boot. So, I'm less-than-happy.

      If you can get realtime Linux working, more power to you. Many people apparently do. But don't try it on a tight schedule!

      DOS might be easier and make more sense. With a robot, you really want low-level control of the hardware, and DOS just hands that to you out of the box. You could try FreeDOS.

    3. Re:TI MSP430 series? by profplump · · Score: 1

      "Real-time" in an entry-teaching-level controller application is probably on the order of 0.01 seconds, or maybe even 0.1 seconds, which is well within the tolerance of a generic linux system. I know it won't *guarnatee* that response window, but the system would have to be awfully busy to miss a 0.1 second execution window.

    4. Re:TI MSP430 series? by Locutus · · Score: 1

      I wouldn't exect the specified class to be targeting the next Darpa Grand Challenge any time soon. From what I understand of the requirements, they don't need any high end realtime control, just something easy to learn and hopefully something easy to more which has a couple of motors, wheels, and a bump sensor or two.

      Given that, I'd go for something leveraging Java since it can be developed on most platforms, runs on most platforms, can be tought with good design techniques, there's free software available, a couple of good simulators available for free and written in Java. And, if you really want to go small, there's Gumstix, Snap, and a few other small singleboard/DIMM-sized boards which run Java.

      All the parts are there for what they need. And when they've graduated, they can go to DOS if that's what they really want/need.

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    5. Re:TI MSP430 series? by TerranFury · · Score: 1

      Fair enough. Actually, there's a robotics course here at college that is taught using basically that sort of setup. So I'm not writing off his idea -- just giving fair warning about some limitations (because, since I've run into them, I'm quite frustrated right now... and I'd rather the OP not be!).

      Anyway.

      If you're really not concerned with hard realtime stuff, and you're teaching kids, you know, you might even want to use a teaching language instead of Java (not that there's anything really wrong with Java...) Scheme? ;-)

    6. Re:TI MSP430 series? by cgreuter · · Score: 1

      The problem with Java is that it's garbage-collected. Normally, this is a good thing but the garbage collecter introduces unpredictable delays into your program and that makes it useless for robotics.

      The traditional robotics language is Forth, although C is just as good. Free Pascal might also be a good bet. It's novice-friendly but not garbage-collected.

      For similar reasons, regular vanilla Linux isn't ideal either. Since it multitasks, that means the scheduler will introduce random delays as well. There are realtime versions of linux (e.g. RT-Linux) but DOS sidesteps the whole issue by not multitasking at all. If your PCs are fast and you've stripped out all the unnecessary OS bloat, vanilla Linux may be responsive enough most of the time, but that drives up the cost of your hardware.

      If you really need multitasking, you should switch to a realtime OS (e.g. QNX or one of the realtime Linuxes).

      Also, Damn Small Linux is still enormously bloated for robotics. The Linux Router Project or one of the 1- or 2-floppy distributions would make for a much better starting point.

    7. Re:TI MSP430 series? by Locutus · · Score: 1

      Bummer that you're having so much of a problem patching in RT support. As you mentioned, others seemed to have been able to do it but I will agree, there is a 'nack' to getting all the ducks in a row when patching. I guess this is why a number of embedded Linux device makers use supported RT Linux kernels. So their developers can develop app code and not spend too much time on the environment/OS-subsystem.

      That leads me to the comment on language. Because there are alot of pieces to a robotics puzzle, it seems to me that there is an advantage to having a widely used language, such as Java, which has a wealth of tools available and scales from the desktop PC down to a small embedded system-on-a-DIMM module. The instructor might be biting off more than he can chew but atleast, with something like Java, he could build the class objects in advance and for "programming" lessons, have the class adding only those objects and using only the methods he's provided. You know, to show them how to put pieces together. My guess is that 30% of the class time would be spent on teaching how the program/code is developed on a PC and loaded into the robot. 30% on how those programs are put together from a skeleton, 20% on hands-on modifications to the skeleton, and 20% on a project to try and get the robot to move through a simple course in a given period.

      BTW, I will be looking at the MSP430 now that I've found an SPI library. It looks like a nice uCPU and TI does a nice job at letting you eval quickly and cheaply to get up on the uCPU.

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    8. Re:TI MSP430 series? by Locutus · · Score: 1

      As I said earlier, these kids are not building a Preditor UAV and I think the garbage collection is helpful in it takes that aspect of programming out of their hands. When they move on to high levels of learning they can get to know the 'finer' details of what it's like to develope and keep track of your memory.

      As far as 'regular vanilla Linux' goes, again, it's there, it's up to the task and in the case of DSL, there are a bunch of easy addon parts. Sure LRP could work but they would take the whole course just getting the pieces put together. I know, I used LRP years ago when no consumer routers existed. Still got the floppies and old 386/40 it ran on. Anyways, I think the idea here is getting a simple and quick system up where these kids can learn some programming and get the excitement of making software make things move and an good level of abstraction can be implemented to make sure the kids deal with only the parts they can handle in the time given.

      And though something like DSL isn't tiny, there's alot of stuff to add 'flavor' to the project. Like wireless capabilities, IR, a camera, etc and it'll still run on a gutted PC mobo with 128MB of RAM and a 1GB CF card. I think it's still the 2.4 kernel so it's got that going for it. ;-) Cost of the mobo is not going to be an issue and neither would performance at the level of learning required.

      I also think there is something to being able to run your robotics learning software on any PC while developing it, test it on that same PC connected to the robotics platform to watch motors turn, sensors sense, and then copy the bytecode or jar file over to a CF card and plug that in and watch it go on its own. AND, the consistency of the developement language is the same for what's being done on the robot and on the desktop.

      It's not the ultimate platform for robotics but I believe there are enough pieces, cheap pieces, good pieces to get the class up and running. And learning. Heck, they could make their robotics platform from an old UPS, some steppers from old floppy drived, scanners, printers, etc and a board from Trinamics with an RS232 port. Trinamics has a 3 port board they might get a discount on. The Trinamics interace language is pretty easy to make a Java wrapper for too.

      So it might not be ideal, but I still believe that a DSL-Linux/Java module/CF-IDE robotics platform on an old PC mobo, along with Eclipse or NetBeans on the desktop, would make a good, cheap, learning platform for robotics. And I just might have to eat my own dog food and build this myself. Almost everyone has the parts. Two old printers with clogged print heads collecting dust, an old UPS with atleast alittle battery life, an old AMD socket mobo in the backroom. The tricky part is the wheel drive controller but I have one of those Trinamic boards from anothe project so it'll work for me. Others would probably get something from sparkfun.com. Now, it's just a matter of an axle, wheels, drive belts, and some screws for the robot platform. The platform/dev/build env would be DSL and a USB-drive if the mobo will boot from it, otherwise an CF-IDE interface and an old CF card. Eclipse on the desktop rounds out most of the needed stuff. Well, and some time... ah, one more thing would make this alittle better. Instead of a big desktop powersupply to plug into the UPS/robot, how about a 12V mobo powersupply like those sold by mini-box.com for those mini-EPIA boards? Something with a lower price would be better though.

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  27. MC68332 RoboMinds SBC by RoRo_the_Troll · · Score: 2, Informative

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

  28. Hands down! The PICAXE microcontroller!!! by Brietech · · Score: 2, Informative

    This is basically what the Picaxe microcontroller series was made for. Their website is at http://www.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

    --
    I'm perfect in every way, except for my humility.
  29. A few ideas by Anonymous Coward · · Score: 1, Informative

    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/
    http://wiring.org.co/

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

  30. iRobot Create Development platform by Crash+McBang · · Score: 1

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

    --
    To put a witty saying into 120 characters, jst rmv ll th vwls.
  31. Are you doing more hardware or software? by dlleigh · · Score: 1

    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.

  32. Definitely AVR by Pseudonym · · Score: 1

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

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  33. Cerebellum from Carnegie Mellon by viperstyx · · Score: 1

    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/

    disclaimer: i'm a CMU student.

    1. Re:Cerebellum from Carnegie Mellon by Xerotope · · Score: 1

      I second the motion for Cerebellums. They are made and sold by Botrics, 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.

  34. AVR Butterfly by Anonymous Coward · · Score: 2, Informative

    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/ 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!

  35. better things by KG6 · · Score: 2, Interesting

    I think you're students will become extremelly enthusiastic towards robotics if they get involved in a program like FIRST 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, 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.

  36. Atmel AVR. No contest. by Miamicanes · · Score: 5, Interesting

    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 en

    1. Re:Atmel AVR. No contest. by Jeff+DeMaagd · · Score: 1

      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.

    2. Re:Atmel AVR. No contest. by Andy+Dodd · · Score: 2, Interesting

      "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."

      I recall one story from my ECE 476 professor regarding their robustness - At one point he accidentally connected power in reverse, the AVR overheated significantly and melted the plastic of the protoboard it was plugged into.

      He shut it down, pulled the AVR, and plugged it in correctly into a different protoboard.

      While the protoboard it had been previously used in was now destroyed, the AVR worked flawlessly.

      --
      retrorocket.o not found, launch anyway?
    3. Re:Atmel AVR. No contest. by drinkypoo · · Score: 2, Interesting

      Just one more note on AVR cost - it's JACK DIDDLY. I bought a full development board that would program any part available at the time, with eight buttons and eight LEDs on it, AND a second ATmega chip, for $100 from Digi-Key! If it's only $100 from digi-key, you KNOW it's cheap. That package comes with everything you need to get started; you download the latest software from the web. Only problem is, it uses a serial connection (or maybe parallel?) so if you have the latest greatest computers (I know, unusual in edu anyway) you need a USB to serial adapter. But there really is NO cheaper way to get started (using off the shelf components) than AVR.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    4. Re:Atmel AVR. No contest. by WarlockD · · Score: 1

      Yea, AVR's, in high school terms, ROCK. I have been using them for years now in pet projects and they are just a breeze to work with.

      I even went to a free seminar that Atmel was having here in Dallas and they given away free stuff, free butterflies as well as free food.

    5. Re:Atmel AVR. No contest. by iabervon · · Score: 2, Interesting

      For Linux, you want gcc, avr-libc, and avrdude. One nice thing about the AVR over the 8051 is that GCC supports it. This means that you can use perfectly standards-compliant C99 with all the trivial optimizations (which is really nice, because you can write your numeric constants as explanatory expressions without wasting cycles in the resulting code).

      It's also worth noting that the AVR datasheets are incredibly detailed and require very little background information. E.g., the section about I2C (aka TWI) is actually one of the best references for the bus protocol, as well as telling you exactly how to program the chip to do it. Of course, they're huge documents, but you only have to read a small portion of each of them, because the section on timer 2 doesn't assume that you've read the section on timer 0 and therefore explains from scratch how timers work on the AVR. Read the data sheets with a PDF reader with table of contents, index, and search.

    6. Re:Atmel AVR. No contest. by LordMyren · · Score: 1

      the tooling is pretty extensive for AVR, and although somewhat windows biased is still competent in linux. defiantely a huge plus.

      the other big plus is that the chips often have Read Only Memory with extensive functionality built in. in terms of startup, it can save a lot of effort; the uC will initialize itself for a variety of different modes.

  37. Lego Mindstorms NXT has a 32 bit ARM cpu! by gwait · · Score: 2, Interesting

    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

    --
    Bavarian Purity Law of Rice Krispie Squares: Rice Krispies, Marshmallows, Butter, Vanilla.
  38. Fuck NO!! by Anonymous Coward · · Score: 1, Informative

    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.

  39. PicAxe by far by Anonymous Coward · · Score: 1, Insightful

    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

    1. Re:PicAxe by far by bluelip · · Score: 1

      Stop confusing education with entertainment. Engineering is not a warm-and-fuzzy discipline. If you dumb down the course to cater to folks who don't have the ambition to edure the "pain" of getting the LED to blink, you're going to have morons graduating that aren't prepared for what lies ahead.

      As for cost, I'd select an AVR setup.

      If you still must "baby" the students and make them feel good about how great they are, give 'em a PSOC Express setup. Heck, you can program that thing without writing a line of code.

      --

      Yep, I never spell check.
      More incorrect spellings can be found he
    2. Re:PicAxe by far by Anonymous Coward · · Score: 1, Funny

      "Stop confusing education with entertainment. Engineering is not a warm-and-fuzzy discipline."

      Excellent point! Here are some other great activities to get high school kids interested in the realities of engineering:

      1. Writing device drivers
      2. Tracking down race conditions
      3. Finding the bad capacitor on a motherboard
      4. Calibration (of any kind)
      5. Filling out timesheets for 4 different customers, each having 3 levels of project codes

      Man, if these don't get the kids excited, nothing will!

    3. Re:PicAxe by far by ksheff · · Score: 1

      don't forget about filling in the templates for requirements, design, test cases, test procedures and whatever else is needed to make it SOX compliant.

      --
      the good ground has been paved over by suicidal maniacs
  40. MOD PARENT UP by Deef · · Score: 1

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

  41. GA Tech and microsoft. by si1houette · · Score: 1

    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 http://www.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.

  42. How far do you want to go? Z80 by splutty · · Score: 1

    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.

    --
    Coz eternity my friend, is a long *ing time.
    1. Re:How far do you want to go? Z80 by Alioth · · Score: 1

      I'm building stuff with the Z80 as a learning exercise right now. Sure, you have to have external ROM and RAM, but it's very simple to add, and I think for teaching the learning exercise of how to build the chip select logic would be very beneficial (as well as how to watch for your I/O address etc.) You also get a lot of flexibility you don't with a microcontroller with it all on board. Want to use dual ported SRAM? Sure, no problem.

  43. http://digilentinc.com/ by binford2k · · Score: 1

    I'll plug the guys I know: http://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.

  44. cheap, scalable by salec · · Score: 1

    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.

  45. Zilog eZ8 Encore! works for us by not-quite-rite · · Score: 1

    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.

  46. In defense of the Arduino by Anonymous Coward · · Score: 1, Informative

    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.

    1. Re:In defense of the Arduino by Uncle+Ira · · Score: 1

      The Arduino is a wonderful piece of technology. I use it for my own projects, and I wholehartedly recommend it for anyone with a good or even basic understanding of electronics and programming. I wish I could recommend it as an entry-level educational tool, but right now the underpowered and proprietary Basic STAMP has the edge in documentation and ease of use.

  47. Parallax by Anonymous Coward · · Score: 0

    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.

  48. MOD PARENT UP - Re:PIC by speculatrix · · Score: 2, Informative

    100% agree. Microchip's 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.

  49. Vex! by nullset · · Score: 1

    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/

    ttyl,

    --buddy

  50. Oopic by keithhackworth · · Score: 1

    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/

    Keith

    --
    Support bacteria. They're the only culture some people have.
    1. Re:Oopic by hjf · · Score: 1

      Damn! Where were these kind of girls when I was 11?

  51. Parallax BASIC STAMP. by gmarsh · · Score: 1

    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.

  52. This is cheap and seems easy by Anonymous Coward · · Score: 0
  53. Handyboard by BennyB2k4 · · Score: 1

    We use the Handyboard http://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 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.

  54. Mod parent up by SpeedyGonz · · Score: 1

    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.

  55. TI MSP430 ladder series? by Anonymous Coward · · Score: 0

    Great. Now are there any kits for learning ladder logic on a budget?

  56. Start With The BASIC Stamp Then Switch To AVR by Anonymous Coward · · Score: 0

    I've used both. The comments about the Microchip PIC (on which the Stamp is based) are correct - but it is a super simple place to start. Your students will be writing BASIC programs in no time and starting to learn the beginning ins and outs of microcontrollers. There are also a lot of robot kits available from Parallax and others.

    But, for more capability and for your more advanced students, definitely go AVR. The Butterfly demo board allows a lot of extra capability with the LCD display already built in.

    Might also look at Nuts & Volts magazine. Lots of ideas, resources, etc.

  57. Basic Stamp by jjmcwill · · Score: 1

    For high school kids?

    I think something like a Basic Stamp would be a better fit. You're not gonna have time to teach these kids Assembly Language or C programming AND still have time left over so that they can do something useful with it. I think you'd want to them over the hurdle of learning to program as quickly as possible so that they can move onto the fun stuff: making robots that can move, make decisions, sense their environment, etc.

    I think learning BASIC would be much easier. It's what we learned in 7th & 8th grade.
    We had 68HC11 Heathkit trainers in an advanced digital electronics class taught at the High School level. It took us a long time to learn to do even trivial things in assembly on those things, and we met for 10 hours per week. (Two 5 hour days).

    --
    Opinions expressed are my own and not necessarily those of my employer.
  58. What is the purpose of the class? by Plocmstart · · Score: 1

    What are you trying to teach the students? If you get a bare microcontroller like a PIC then you quickly have to spend a lot of time teaching electronics so that the students know how to properly connect hardware to collect sensor data and drive motors. You end up explaining different communications protocols (what is this RS232-TTL chip for, what is SPI and I2C, etc.) which may or may not be the purpose of the class. If the purpose is to "build a robot that does task x" then you're better off getting a kit of some sort that has some built-in interfaces for sensor inputs and motor outputs. I've had many years of experience with the Handyboard and must suggest it has a good choice, though $200-250 may be a bit pricey to get started. Oregon State and Atmel have teamed up to produce a system for their EE curriculum that looks promising, though you would have to get in contact with them to see how you might be able to purchase their boards in bulk (they have a website you can order some parts from, base kit is $105). If you want to teach "this is how you program a robot" then you can pick up any programmable robotics set and get going quickly. For younger students that haven't programmed before something more graphical may be better for them (Mindstorms for example, though you don't seem to want this sort of thing). Any way you go you'll probably end up teaching teamwork skills (and you should probably throw in some documentation skills also). There is a freshman program developed around the Handyboard that teaches such skills at Ohio State (dislaimer: I was a TA for this program) which has quite a few materials you may find useful. In summary, make sure you decide on your curriculm, then pick a controller that best fits into both that and your budget.

  59. Make a framework first. by FuzzyDaddy · · Score: 1
    Whatever microcontroller you choose (I'm partial to the AVR ATMEGA series, but I haven't used much else), it's important to start with a good reference hardware design and software framework. When I started using the ATMEGA16, there was a long period before I got the basic functionality - LED blinking, serial port talking, and DAC and ADC working. Once I got that going, things really picked up.

    I would advise that YOU get a design to that level before you present it to the students. The interested students can always "work backwards" if they are interested in that stuff, or build onto the framework to do actual robotics. (An interesting excercise might be to change the DAC chip to another manufacturer, and have them work out the code changes needed to make it work.)

    Some advice on a reference framework - put in a timing loop (so they can count seconds), put in some diagnostic LEDs (one just on the power bus, some to blink to make sure the software loop is still running, maybe two or three more for general debugging). The idea is to provide useful tools. Stay away from interrupts in the code at all costs (it just adds complication, and you almost certainly don't need the response time).

    As for which particular chip to use, you want something with free software tools, reasonable chip cost, and low hardware costs. The AVR is good on this front (programmer is $70, software tools are free). A nice bootloader is available at http://reza.net/avr/, although you can always use the programmer. You are stuck with C, which I like, but I don't have enough experience with high school kids (it's been a long time for me) to know if that's the best choice.

    --
    It's not wasting time, I'm educating myself.
  60. What about the Arduino? by r00t-69 · · Score: 1

    I own an arduino http://www.arduino.cc/ it is a development board based on the AVR. The AVR has a boot loader and interact with the computer over USB. The IDE is a c++-like language, but it hides all the obscure stuff, you define the pins, and use them. Very easy and simple to use.

    1. Re:What about the Arduino? by djcatnip · · Score: 1

      http://sparkfun.com/ is the USA distributor. I also highly recommend this platform because it connects via USB and has native IDEs for window, linux, and Mac OS X.

      --
      I make these: http://beatseqr.com
  61. GA Tech and Myro by zubernerd · · Score: 1

    On the roboteducation.org website they also offer a way to set up a robot using Myro (My Robotics) [http://www.roboteducation.org/guides.html] which is coded in Python, and runs on linux. I have used it with a Scribbler robot (scribblerrobot.com) and linux and it works well. Of course it does not really teach how to program a microcontroller as much as how to program a robot.

    --
    Accentuate the positive, don't waste your mod points on the negative.
  62. Re:Atmel AVR. No contest. -- Arduino by MyDixieWrecked · · Score: 3, Interesting

    If you really wanna dive into AVR programming, you could also check out the Arduino.

    It uses an AVR for the controller and doesn't require a PIC programmer, connects over USB to the computer, has support for Windows, Linux and OSX, and comes ready for working when you get it. The only part that is kinda limiting to people unfamiliar with programming is that it uses C++ as the language, but has a very simple instruction set, so the learning curve may be slightly steep for beginner programmers.

    --



    ...spike
    Ewwwwww, coconut...
  63. CMU Robotics Academy Curriculum by Xerotope · · Score: 1

    If you're interested in a whole curriculum out of the box, then CMU's Robotics Academy might be something worth checking out.

    The lesson plans involve either the LEGO NXT robotics kits, or the VEX robotics kits, and have been under development and used by school for several years now.

  64. 8051 by markalanj · · Score: 1

    I like the little 8051 chips from Silicon Labs http://www.silabs.com./ A good variety of diffrent 8051 chips with various perpherials. Dev kits for only $100 comes with an eval Keil C compiler but you can download SDCC http://sdcc.sourceforge.net/ that will integrate with the IDE.

  65. Why not Lego Mindstorms? by Braedley · · Score: 1

    Mindstorms is just as flexible and scalable as any micro controller, and you don't have to worry your students with learning low level C/C++. Even if you do find libraries for the controller you use, you still have no choice but to use C. At least with Mindstorms, your students can use a drag and drop GUI, or if they so choose, any number of high level languages, including C, C++, Java, and if they're really daring, assembly. Hardware debugging is much less painful (actually, almost eliminated), and the experience may be seen as more enjoyable by the students. The only time I would go with something other than Mindstorms is if you find a fully developed board with quick and easy peripheral connectors. Getting your students to wire up everything to a breadboard probably isn't all that desirable. In most cases, you'll probably still have to develop the libraries for any peripherals that you'll use. Unless your students are much more capable than what I give them credit for, stick them with something that they can actually master in 5 months.

  66. Re:Atmel AVR. No contest. -- Arduino by djcatnip · · Score: 1

    http://sparkfun.com/ is the USA distributor. I also highly recommend this platform... it's awesome.

    --
    I make these: http://beatseqr.com
  67. A different idea by DaveV1.0 · · Score: 1

    Maybe you should look into getting the TAB "Build your own robot" or "Build your own sumobot" kits.

    The bots are BASIC Stamp based, come with software for programming them, and the only thing needed to program one is a serial cable. They are expandable, fairly durable, easy to put together, cheaper than many of the other options I have seen on here, and the programs can be tried out immediately.

    --
    There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
  68. Consider BasicX over Parallax by dingleberrie · · Score: 1

    I used the Parallax basic stamp to teach several robotics classes for high-school students about 9 to 6 years ago and was disappointed in it's very limited basic.
    As I remember, Parallax basic only allowed for "if then goto ", and not "if then else ". Further, you could only travel about 4 gosubs deep in the stack. I don't know if this has changed.

    Then I found the BasicX 24 pin stamp, which is pin for pin compatible to the parallax basic stamp.
    The cost for one was about the same as the Parallax, but BasicX offered better volume discounts.

    The BasicX programming language was modelled after Visual basic, meaning you could have functions, arrays, and even interrupts.
    My first post-"hello world" program was to use interrupts to blink two lights on the chip. One interval was 3.14159 seconds, the other was 2.71828 seconds. I remember the code being fairly easy to write. Unfortunately, I never taught the high school class again to see how the students latched on. Instead I moved onto finishing my graduate degree, but this chip still sticks in my head.

    I strongly recommend looking at www.basicx.com before designing a curriculum.

    1. Re:Consider BasicX over Parallax by Anonymous Coward · · Score: 0

      was disappointed in it's very limited basic

      "its", "BASIC".

      www.basicx.com

      "<URL: www.basicx.com>", which produces a clickable link: http://www.basicx.com/

  69. What's wrong with Mindstorms? by dpilot · · Score: 1

    You immediately rule out Legos, and that may not be appropriate.

    I would agree that depending on the class level, the RCS programming may be overly simplistic. But by no means is RCS the only way to program the Lego Mindstorms. A quick peek at Google and you'll see things like NQC, a Lego Mindstorm with Linux Mini-HowTo, and a whole wealth of free stuff that keeps the Mindstorm relevant to a more experienced class level.

    The other nice thing about Mindstorms is that you can do things physical, not just things that you can see (LEDs, meters) or hear, and it's well integrated so you're fighting the task at hand, and not fighting making an ad-hoc collection of parts work together. (Though there is definitely value in the latter, it just depends on where you want to put the emphasis.)

    Heck, you can even find hits searching on "mindstorm" and "gentoo". Emerge THAT!

    --
    The living have better things to do than to continue hating the dead.
  70. Er, MIX? by davecb · · Score: 1

    --dave (With apologiis to Donald Knuth) c-b

    --
    davecb@spamcop.net
  71. Learning uControllers. by Carlk · · Score: 1

    The BEST simple cpu was used at OSU's EE dept: the Moto 6809!
    It is clean "orthogonal", exhibits modern addressing modes, has 2 tandem 8-b accumulators for 16-b ops. Software: Microware's OS9, Flex, out there. AND the BEST TEXT ever is Programming the 6809, Sybex Zaks.

      FPGAs can make a 6809 uController. See OpenCores.org.
    Or just buy an Atmel Butterfly, a $20 demo w an ATmega169, RAM, I/O. LCD, etc.
    But PICs are not RISC but LISC (Lobotomized Instr.Set).

  72. Re:Atmel AVR. (or 6809) by Carlk · · Score: 1

    The BEST simple cpu was used at OSU's EE dept: the Moto 6809!
    It is clean "orthogonal", exhibits modern addressing modes, has 2 tandem 8-b accumulators for 16-b ops.
    REsources. Software: Microware's OS9, Flex, out there. AND the BEST TEXT ever is Programming the 6809, Sybex Zaks.

        FPGAs can make a 6809 uController. See OpenCores.

    Or just buy an Atmel Butterfly, a $20 demo w an ATmega169, RAM, I/O. LCD, etc.
    But PICs are not RISC but LISC (Lobotomized Instr.Set).

  73. Motorola HC11 by Anonymous Coward · · Score: 0

    There are a few handy chips off the top of my head:

    The various PIC chips may be worthwhile, but probably not what you really want. A classic example is the Zilog Z80 (http://www.zilog.com/products/businessline.asp?bl =273) which offers some development boards, but is probably a bit expensive for this budget. The Motorola HC11, however, is probably perfect. There are dozens of vendors who offer various educational and prototyping boards. There is also vast amounts of information about such things and ample source samples and course materials involving it(for example http://www.coe.montana.edu/ee/cady/ee361/hc11lnks. htm).

  74. The old 8051 learned some new tricks... by Temkin · · Score: 1

    Several people have mentioned the Atmel AVR's, and I can't fault them. But don't overlook the 8051 derivatives. Atmel makes a nice line, as does Silabs, NXP and Dallas. One in particular is worth mention. The Atmel AT89C51ED2. It has 64k of flash, 2k EEPROM, and 1.7k of internal XRAM, and a bunch of useful extensions like SPI etc...

    The real trick is, it has a bootloader ROM. You hold reset high, and pulse PSEN (from memory, check the Datasheet), and it starts a bootloader. You can do this with a couple push buttons. You then program it via the UART. That chip, a MAX232 and a xtal is all you need. Intel's MCS-51 BASIC is available from numerous sites, and will run entirely internal on the chip. When you outgrow that, you have 64k of flash, and enough XRAM to code in C (go find SDCC on sourceforge).

    The AVR is nice, but single source, and for some reason, they don't make a version with a factory bootloader. The single source doesn't sound like a problem... until you go look at Silabs, Dallas, and NXP's offerings!

    The old dog has learned some new tricks.

    1. Re:The old 8051 learned some new tricks... by Miamicanes · · Score: 1

      I can definitely appreciate the "Single Source" issue... for Christmas, I built a string of RGB Christmas lights. I bought 128 Tiny25s from DigiKey, and basically wiped them out. As of early December, I probably had more Tiny25s in my possession than any other end-user in the world (every light consisted of an RGB LED driven by its own Tiny25) ;-)

      I would have liked to have bought a smaller number first to test my design, but I was scared to death that if I didn't buy them all up front, someone else might buy too many and leave me SOL before Christmas. Sadly, I only managed to get about 32 of the light modules to work by Christmas, and the whole network scheme I came up with that worked flawlessly with 3 modules on a breadboard fell flat on its face once I made the modules and wired them up into a single string, so all the lights were able to do on the tree was change colors. In a few months, when I'm no longer burned out of the project (I had no life for most of December), I'll pull out the hot air rework tool and salvage the chips from the nonworking boards and try again (I still have about 200 spare circuit boards) with a different serial scheme (the one I tried was edge-driven. In retrospect, there was probably too much electrical noise on the tree. Next year, I'll just do plain old-fashioned oversampling.)

      For pics, check out http://www.avrfreaks.net/index.php?name=PNphpBB2&f ile=viewtopic&t=35933&postdays=0&postorder=asc&sta rt=295

  75. ARMs by FrankSchwab · · Score: 2, Informative

    First off, I'd dump any mention of 68hc08, 68hc11, 8051, z80, etc. There are more of those doing more than you would ever believe out there in the world, but it's like suggesting that someone learn GUI programming by giving them an 8086 with dual floppy drives and 256K of memory, and a copy of Windows 1.0. Time has passed them by; learning the quirks and tricks necessary to get them running happily is more an exercise in dedication in the modern world than any way to learn modern processing.
    As a professional embedded programmer, I'm quite surprised by the number of recommendations for the AVR in this thread. I've never used it, but I may have to look into it. Quite a rabid following there.
    I would recommend getting into ARM. In the professional world, they have pretty much taken over the middle ground of 30-200 MHz 32-bit processors, especially in the custom-chip arena.
    With the NXP (nee Philips) LPC versions, you can have a 256KB FLASH/32KB RAM device with a USB port and a million on-board peripherals for the cost of a $10 chip (Digi-key quantity 1), a PCB, and a crystal. Pre-built development boards are a dime a dozen; I'm partial to the http://www.embeddedartists.com/ boards, and happen to have their http://www.embeddedartists.com/products/education/ edu_base.php LPC2148 Education board on my desk at the moment. It's a bit pricey at 99 EU, but without all the motors, LCD and LED displays you can get the basic board http://www.embeddedartists.com/products/boards/lpc 2148.php a bit cheaper.
    ARMS are extremely well supported by the excellent GNUARM toolset (http://www.gnuarm.com/), giving you a completely free C/C++/Assembly toolset, and there are a huge number of sample programs available from Embedded Artists, Keil, Olimex, etc., for doing almost anything you might want.
    Why teach them about code pages, completely screwey function call mechanics, 256 byte jumps, limited capability C libraries, etc., when they could be learning about putting their name on the display, spinning a motor, playing a tune, and shipping data up to a PC over USB?
    /frank

    --
    And the worms ate into his brain.
    1. Re:ARMs by mollymoo · · Score: 1

      Why teach them about code pages, completely screwey function call mechanics, 256 byte jumps, limited capability C libraries, etc., when they could be learning about putting their name on the display, spinning a motor, playing a tune, and shipping data up to a PC over USB?

      You don't have to deal with most of that crap with AVR, which is a big part of its appeal - it feels a lot like big iron to develop for, you rarely even have to care that it's Harvard (till you realise your strings are eating RAM, but the hoops to jump through to store them only in program space are minimal). And I'd call ARM big iron in the context of MCUs!

      I don't think either ARM or AVR is right for teaching high-school kids though, perhaps not even C unless they know basic (!== BASIC) programming already. There's too much overhead in the development process - compilers, makefiles, configuration registers.... I'd go for PicAxe, Basic Stamp or similar. But I wouldn't reject Lego either - if you want to do much more than flash some LEDs or write your name on a screen, you're going to need some sensors and/or mechanicals and Lego does that exceptionally well in this context. NQC for the "old" Mindstorms is reasonably close to "proper" embedded development but without the hassles.

      --
      Chernobyl 'not a wildlife haven' - BBC News
  76. Analog Devices Arm by atathert · · Score: 1

    I just taught a C programming class using the ADuC microcontroller from Analog Devices. ARM based device with ADCs, DACs, and a bunch of digital IO, plus the software, and you can get it all for about 20 bucks.

  77. Dumb typos by TapeCutter · · Score: 1

    "Jesus Christ, when is "wants" ever apostrophized (apostropheed?)?)"

    Only on slasdot are dumb typos apostle-ized. :-0

    You isensitive clod, no wonder you chose AC. I am the victim of a short lived "teaching revolution" in late 60's - early 70's, spelling and punctuation were ignored in favour of "raw expressiveness", I think it had something to do with the technology buzz over the space race. Anyhow, I realise it's a dumb typo but unfortunately my brain is now hard-wired in a way that does not see many of it's own typo's. People ten years younger often suffer from poor multiplication skills (the teaching theory was "multiplication is simply route memory for fast addition, therfore it's not maths"). I think that had something to do with the subsequent space race apathy. The best way to educate your kids, is to educate yourself. /spiel

    Thankfull the email system at work has a spiel chucker on it.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.