Microcontroller suggestions for high school course?
Moderators: adafruit_support_bill, adafruit

Microcontroller suggestions for high school course?

by schlomo42 on Sun Mar 11, 2012 5:28 pm

I'm planning an independent study microcontroller course for my high school. I want to break the course into two parts: a unit on a 8/16-bit small and low-power platform that will lead up to a unit on a complex 32-bit system. (Is this a good idea?)

For the 8/16-bit microcontroller platforms, I'm looking at the AVR mega/xmega families or the MSP430 series. For the 32-bit platforms I'm thinking about an ARM Cortex M0 because it seems to be the most beginner-friendly chip in the ARM ecosystem. I don't really know much about 32-bit MCUs because I've only used 8-bit AVRs so far.

There seem to be thousands of options: PICs, AVR32, 68HC11, 8052, etc. I've tried to search for microcontroller comparisons, but they seem to be either inconclusive or just commercial hype.

What MCUs are popular (with hobbyists and companies alike), useful, and powerful yet approachable to beginners?
schlomo42
 
Posts: 13
Joined: Tue Mar 22, 2011 3:52 pm

Re: Microcontroller suggestions for high school course?

by philba on Sun Mar 11, 2012 7:54 pm

I'm sure others will chime in. For the 8 bit one, the arduino really is the way to go. It's falling off a log easy to get going. There is a huge amount of help out there. Lots of libraries for all sorts of things and plenty of hardware to choose from. I personally prefer an aduino version that plugs into a breadboard (like the teensy or boardino) - it makes for very easy prototyping. Shields are fine but for experimentation/prototyping, I like having it all on one breadboard.

For a 32 bit system, I'd consider the PIC32 as there are several nice possibilities and they are inexpensive. ChipKit has some traction and leverages the arduino base. The PIC 32 USB Bitwhacker is pretty well done. Though, no one would fault you for using a cortex.
philba
 
Posts: 387
Joined: Mon Dec 19, 2011 5:59 pm

Re: Microcontroller suggestions for high school course?

by ericgu on Sun Mar 11, 2012 9:48 pm

Sounds like a fun course to set up and run.

Coming up with a good curriculum is a lot of hard work, so I would recommend building on the work of others. I think the obvious choice is to base your program on the Arduino. It's fairly cheap, easy to use, has lots of shields available, and best of all, lots of other people have already written instructional material using it. But it has enough raw power that you can do some impressive things.

You are also to go from the "use a shield to do <x>" to "build the circuit to do <y> yourself".

I wouldn't bother with 32-bit microcontrollers. There's a lot of power in an 8-bit chip, and I don't think most high-school students would be able to complete projects that needed the power of a 32-bit chip.

My other suggestion is that you write up some goals - what you would like the students to learn in each lesson, and then make sure that the lessons work towards that end. It's really easy to put more in than students can handle.

I'd also be prepared for vastly different progress by different students.
ericgu
 
Posts: 57
Joined: Mon Oct 18, 2010 10:24 pm

Re: Microcontroller suggestions for high school course?

by paulstoffregen on Mon Mar 12, 2012 12:41 am

The trouble with most microcontroller comparisons is they don't focus on what high school or even undergrad college students can reasonably accomplish starting from zero experience and working with non-ideal equipment and resources, and on a tight time-table within just one of many classes pulling for their attention.

Sure, a high-end Cortex chip can to wonderful things in the hands of an experienced engineer armed with expensive proprietary software and hardware tools and a well-funded prototyping lab, spending dedicating full-time effort 40+ hours/week effort on the project. Or a team of such experts....

The truth is, an inexperienced student can usually make a 16 MHz Arduino compatible board in the scope of 1 class for 1 term accomplish far more than they could with a much more technologically capable processor, only because the free software is much easier to learn and comes with many examples and libraries that provide useful functionality. When you've only got between 3 to 8 weeks to really work on a project, and realistically probably only 2 to 6 hours/week (if their attention span lasts that long), your best bet is something simpler that doesn't take as long to learn and provides as much as possible ready-to-go. Arduino, despite many technical limitations, really delivers on those fronts.

Many of the "advanced" chips have little or no software available for free, other than a "demo" version of extremely expensive software which expires in 30 days or comes with a very limited code size. Even those tools tend to have a steep learning curve, because they're designed for professional engineers who will use then 40+ hours/week. Often the available open source software involves a lot of cumbersome setup. That's fine for experts.
paulstoffregen
 
Posts: 295
Joined: Sun Oct 11, 2009 10:23 am
Location: Portland, Oregon, USA

Re: Microcontroller suggestions for high school course?

by schlomo42 on Mon Mar 12, 2012 4:27 pm

I wouldn't bother with 32-bit microcontrollers. There's a lot of power in an 8-bit chip, and I don't think most high-school students would be able to complete projects that needed the power of a 32-bit chip.


The trouble with most microcontroller comparisons is they don't focus on what high school or even undergrad college students can reasonably accomplish starting from zero experience and working with non-ideal equipment and resources, and on a tight time-table within just one of many classes pulling for their attention.

Sure, a high-end Cortex chip can to wonderful things in the hands of an experienced engineer armed with expensive proprietary software and hardware tools and a well-funded prototyping lab, spending dedicating full-time effort 40+ hours/week effort on the project. Or a team of such experts....


I agree; it *is* probably best to stick with 8-bits for now. Especially for a one-year course, we will want to focus, say, on AVR and MSP430 platforms. After trying to plow through the hundreds of datasheets for the Cortex M0, I am ready to go back to trusty AVRs!

(However, looking at the LeafLabs Maple family does make a 32-bit MCU very tempting for the beginner!)
schlomo42
 
Posts: 13
Joined: Tue Mar 22, 2011 3:52 pm

Re: Microcontroller suggestions for high school course?

by westfw on Mon Mar 12, 2012 8:10 pm

it *is* probably best to stick with 8-bits for now.

I wouldn't rule out MSP430 or PIC24 just because they're "16 bit" cpus, though. It's the overall complexity that you're trying to limit, not the ALU size... (and by extension, one of the smaller Cortex-M0 parts might still be OK.)
I would avoid parts with highly "individualistic" single-sourced architectures (PIC16, PIC18, AVR32)
User avatar
westfw
 
Posts: 1373
Joined: Fri Apr 27, 2007 12:01 pm
Location: SF Bay area

Re: Microcontroller suggestions for high school course?

by Juan21 on Fri Mar 23, 2012 7:11 am

Hi,
I'm planning an independent study microcontroller course for my high school. I want to break the course into two parts: a unit on a 8/16-bit small and low-power platform that will lead up to a unit on a complex 32-bit system. (Is this a good idea?)

For the 8/16-bit microcontroller platforms, I'm looking at the AVR mega/xmega families or the MSP430 series. For the 32-bit platforms I'm thinking about an ARM Cortex M0 because it seems to be the most beginner-friendly chip in the ARM ecosystem. I don't really know much about 32-bit MCUs because I've only used 8-bit AVRs so far.

There seem to be thousands of options: PICs, AVR32, 68HC11, 8052, etc. I've tried to search for microcontroller comparisons, but they seem to be either inconclusive or just commercial hype.

What MCUs would you recommend that are popular (with hobbyists and companies alike), useful, and powerful yet approachable to beginners?

Thanks for the help.
--m
You can if you think you can", George Reeves
Juan21
 
Posts: 1
Joined: Fri Mar 23, 2012 7:06 am

Re: Microcontroller suggestions for high school course?

by paulstoffregen on Fri Mar 23, 2012 8:34 am

Juan21 wrote:(Is this a good idea?)


Probably not. They'll learn more if you focus on just one platform.

There seem to be thousands of options: PICs, AVR32, 68HC11, 8052, etc. I've tried to search for microcontroller comparisons, but they seem to be either inconclusive or just commercial hype.


Assuming you're actually going to have them use hardware, rather than just read about it and try to memorize facts for a quiz, they're not going to spend their time with the actual microcontroller details. That stuff really don't matter much.

What does matter is the software and programming language/environment. The method of physically connecting the parts (eg, a solderless breadboard) also matters greatly. Those are the places where they will actually be working. Even if you're going to have them use special on-chip feature or peripherals, ultimately they're going to do so by physically connecting stuff together and actually using software on computers.

You may feel like I haven't answered your question? But consider if you were going to teach PC computer skills? Would you focus on CPU speeds, hard drive sizes, types of graphics cards and other specs of the innards inside the PC? When you go buy a computer, that's the stuff they tell you about. Likewise when you shop for microcontrollers, comparisons give you lots of specs on the internal capabilities. But just like with ordinary computers, when you actually go to use the machine for something useful, while those many specs do have some impact on how effectively it can perform more demanding tasks, you generally don't focus on that stuff while you're actually using a PC to do anything useful. Especially if you're doing simpler stuff that doesn't push the hardware to its limits, which seems likely at the high school level, all those tech specs and internal details of the machine really don't matter greatly. What does matter is choosing easy-to-learn software and focusing on achievable tasks or goals, so the net learning result is some useful experience actually using the whole system to accomplish something.
paulstoffregen
 
Posts: 295
Joined: Sun Oct 11, 2009 10:23 am
Location: Portland, Oregon, USA

Re: Microcontroller suggestions for high school course?

by paul66055 on Sun May 20, 2012 11:16 pm

Hi,

You can easily work with MSP430 series for 16 bit MCU and if you also want to work with any 32 bit then to start with Luminary and ST micro are best options.
paul66055
 
Posts: 7
Joined: Thu Feb 23, 2012 11:58 pm

Re: Microcontroller suggestions for high school course?

by cstratton on Thu Jul 26, 2012 8:45 pm

paulstoffregen wrote:Many of the "advanced" chips have little or no software available for free, other than a "demo" version of extremely expensive software which expires in 30 days or comes with a very limited code size. Even those tools tend to have a steep learning curve, because they're designed for professional engineers who will use then 40+ hours/week. Often the available open source software involves a lot of cumbersome setup. That's fine for experts.


The learning curve and setup comments are very true, but the tools cost conclusion is not.

I'm working with the STM32F10x series chips using entirely open source software in a Linux environment. The eval boards were $13, they are now $8-10.

I'd consider this platform usable in a group setting lead by someone who had already made them work; going it alone would be a lot more challenging.
User avatar
cstratton
 
Posts: 254
Joined: Wed Sep 29, 2010 2:52 pm

Re: Microcontroller suggestions for high school course?

by Chuckz on Thu Sep 27, 2012 10:29 am

schlomo42 wrote:What MCUs are popular (with hobbyists and companies alike), useful, and powerful yet approachable to beginners?


I believe that ARM prices will come down to rival most chips and they have a real CPU department.
ARM chips can be programmed in BASIC as well as other chips.

My other argument is "What happens if Atmel went bankrupt?" Atmel has been in the red before. What happens when the microcontroller market moves on and bootloaders like C or Basic in java wrapping don't cut it anymore? Do students have the skills to move on? It happened with Commodore 64 users. Their computer company went bankrupt and people knew how to program in BASIC but did they know enough machine language or higher level languages to move on? This is why I would avoid learning bootloaders because you have to know how to do things yourself or you could get lost in the next decade.

A lot of sites are horrible at teaching because the writing is geared for engineers instead of normal every day people, their projects are show and tell instead of giving you a part list and instructions, and they are sometimes complicated. You are basically having to teach language, hardware and electronics all in one course whereas each could take a semester. The truth is that a normal person could spend years on the internet reading about projects until they learn enough to do it themselves. The trick is to get them to go out and do it which requires reading, periodicals, programming and lab time (doing it).

Microcontroller topics to master

http://dangerousprototypes.com/docs/Mic ... _to_master
Chuckz
 
Posts: 159
Joined: Mon May 30, 2011 10:54 am