Arduino in the Classroom: Getting Started

I teach computer classes for junior/senior high school students (ages 13-18). I have a background in programming (degree in Computer Science, mostly Perl experience), but no exposure to hardware. I have used Lego Mindstorms, but that's about the extent of it.

I'm interested in using the Arduino in my classroom. I'm completely new at this and a bit bewildered by it all, so I have a few questions:

  • Besides the Arduino itself, what would I have to buy to do a decent variety of useful and interesting things? I know the answer is "it depends", but some examples would be helpful.

  • I'm on a public school budget, so I'm pretty price-sensitive. I may not want the very cheapest board, though. What should I be looking for?

  • What skills would I need to pick up in order to use the Arduino effectively? I can program and I'm not afraid of learning a new language, but I've never touched a soldering iron. Would I need to get a deep background in electrical engineering before I try anything?

  • How sturdy is the Arduino? Will putting a wire in the wrong place make it burst into flames? Can I break it (or brick it) with bad code?

  • Realistically, is this something I could put in front of a 14-year-old whose only computer experience is playing World of Warcraft and typing papers in Microsoft Word?

what would I have to buy to do a decent variety of useful and interesting things

A fist full of LED, some switches and buttons and a motor or two, maybe a stepping motor. You can also do a lot of stuff with conducting foam and conducting plastic used as packing material industrial electronics.

I'm on a public school budget,

In the UK that would mean a very good budget indeed as that means a top fee paying school. However I assume you mean a State School. It depends on how many Arduinos you want, is it one per kid or are they to work in groups. Plan to spend half as much again as the arduino itself for ancillary parts. Look at the Earth Shine booklet for projects and ideas.

How sturdy is the Arduino

They are not bullet proof but not so fragile either. They need some care, it is good if kids know they have to be careful with them.

is this something I could put in front of a 14-year-old

Yes, some of them will love it and the occasional one will thank you for ever. :)

Both adafruit and Sparkfun have great starter kits with everything you would need to have fun and teach with, ranging from 60-90$ per kit. For instance I am getting the ARDX kits from sparkfun because they come with circuit diagram cards and motors and the sort of physical stuff that makes for exciting interaction beyond the standard LED setups.

The arduino UNO is the flagship, both in that it is the most widely used and supported, and it is big, which is great for learning but probably too large for many micro sized projects.

The arduino kits are pretty much all breadboard experience, so no soldering is needed. Beware of getting some arduino add-on shields to as many of them are assembly required with a soldering iron. Of course soldering all of those breadboards for your students will get you really good at soldering really quick.

The arduino is very easy to program, it is a breeze to pick up and a breeze to teach. thats why it is so popular, and again the community is great resource.

you should understand some basic electronics, and there are a few arduino specific books out there “getting started with arduino” that cover the electronic basics in addition to the programming basics.

the arduino is pretty robust, it can be toasted with a bad wire, but it is rare, and at a $30 replacement, is not terribly tragic. I have not had any cases where bad code bricks it, as the arduino IDE takes care of much of the coding for you and keeps the dangerous stuff hidden.

Absolutely you can set 14 year olds up with it…they will love it.

Speaking as a noob myself.. Some bargain packs of LEDS, resistors, connecting wire in various colours, a few breadboards and you can get them started. Later you can start investing in things like various chips, motors, servos etc as time allows. Or even get them recycling broken electronic toys for parts. . No need to solder until they get to the point where they are making permanent projects. You know what kind of level to aim at better than any of us I'm sure.

Honestly, the best idea I can think of is to get yourself a starter kit and see how you do. Then you could perhaps plan some classes around the projects in some of the books. The book for the ARDX kit, which is sold in many places and the Earthshrine book are freely downloadable PDFs. So you can get a good idea of what is involved without laying out any money at all.

http://www.oomlout.co.uk/starter-kit-for-arduino-ardx-p-183.html

http://www.earthshineelectronics.com/10-arduino-duemilanove-compatible-starter-kit.html

Link to book download at the bottom of each page

The Arduino language is pretty much C, so if you are familiar with that, then it shouldn't be too difficult for you.

LEDs and switches...well, OK, but in my experience, kids like to see things do stuff. Maybe a couple of servos, and make things move.

I have no direct experience but I think the products rugged circuits produce sound ideal for your needs: http://ruggedcircuits.com/html/mb324p_nc.html

  • Besides the Arduino itself, what would I have to buy to do a decent variety of useful and interesting things? I know the answer is “it depends”, but some examples would be helpful.

LEDs everyone likes blinking lights, but the kids will tire of ‘blink’ about as fast as a programmer gets tired of ‘hello world’. Resistors, Potentiometers. Small breadboards. Lots and Lots of jumper wires. Some small DC motors. I don’t think anyone has mentioned LCDs. Cheap temperature sensors. Shift registers to demonstrate serial vs. parallel.

If you budget can stretch a pair of XBee modules for some wireless fun. Probably not practical for everyone to have them but nice to have a pair to demo remote control stuff.

You should also plan on getting a voltmeter or two (there are some real cheap ones out there that can be had for <$10 not great but do the job.) If you can beg, borrow or steal an oscilliscope all the better (I’m assuming $500 or so for one is off the table). Same with a decent soldering iron.

  • What skills would I need to pick up in order to use the Arduino effectively? I can program and I’m not afraid of learning a new language, but I’ve never touched a soldering iron. Would I need to get a deep background in electrical engineering before I try anything?

Learn how to troubleshoot simple electronics. How to read a simple schematic. Learn some of the EE lingo. So, when Grumpy_Mike says “add decoupling caps” you know what he means ;).

I by no means suggest you need to become an expert, but if someone here draws a schematic with a couple of resitors, and an LED you know how to figure out if it is hooked up correctly and if it works like it is supposed to. Because the kids will expect you to help them.

We are willing to help as we can, but if you can partner with a local high-tech firm, University, or hobbyist at a hacker space, all the better. I used to mentor high school age kids building an electric car; wish I had Arduino back then.

You probably should learn how to make passable solering connections. Chances are things will get broken and have to be fixed or you will need to make up some connectors or the like.

  • How sturdy is the Arduino? Will putting a wire in the wrong place make it burst into flames? Can I break it (or brick it) with bad code?

Most electronics do their best to protect themselves, but stuff will break (hence the need for troubleshooting skills and soldering skills). The most likely thing to fry is the micro itself, so have some spares on hand and maybe be able to flash the bootloader yourself. The chip itself can be had for $3.

  • Realistically, is this something I could put in front of a 14-year-old whose only computer experience is playing World of Warcraft and typing papers in Microsoft Word?

I certainly hope so. I would definately have experiments for them to do, as I already mentioned ‘blink’ becomes real tiresome quickly, especially consider the typical attention span of youth.

Are you wanting to teach them more programming, more electronics theory, or what exactly do you them to take away from this. I think it is a great idea to actually encourage skills that are useful in engineering and hopefully it will expose kids to electronics like they probably never seen.

I’ll throw out one idea. Build a weather station as a class project. Have each group assigned a different sensor.

  • Indoor temperature and humidity. (Analog or digital sensor?)
  • Outdoor temperature and humidity (you got that wireless Xbee working right?).
  • Wind direction and speed. (direction encoder and pulse counter)
  • Rain gauge
  • Barometric pressure
  • Display/alarms
  • Data logging
    So, each group works on their own sensor individually. So they would have their own Arduino and several types of sensors to choose from. When each group is finished they have to then hook up their sensor to the final installation. Somebody better keep track of which input each is using and how to integrate each sensor into the system. It would teach them to break down a huge project into managable chunks. How to write and manage code to perform one task (a single function) but be able to put into a larger program. They would need to work together towards the same goal. I see a lot of teachable points in a relatively simple project, not to mention it even touches on atmospheric science

I know theres at least 12yr old on the forum.
As for the rest, it depends entirely on the children.

All the ones I know (~12 or so) have absolutely no interest whatsoever in anything technology related. Just as long as it plays games, texts or chats with their peers. Just as long as it works, and they know how to use it, thats the extent of their interest.
Personally, I’ve always wondered how stuff works… and tried to figure stuff out (coding was one of those things, finishing up my degree this year fingers crossed).
So I reckon it will depend a lot on the children, whether they have the interest to find out how… the vast majority of stuff in the world works. Lets face it, TV’s, tomtom, phones, etc… they’re all ‘embedded applications’. I myself have found that some things stay fun… despite their mind numbing simplicity. For instance, an IR receiver and a servo. A (TV) remote controlled servo. Its still fun having something like that work, just because I made it!

In short, what I reckon they’ll find interesting… is remote controlled stuff. IR is a cheap and effective way to do this (IR LEDs are well, LEDs… can be purchased in large quantities for next to nothing from china, the receivers can be pretty cheap too). Servos would be the most expensive part, because I agree that blinking stuff is great, but moving stuff is even better!
And you don’t have to buy the remotes, just let them ‘borrow’ the remote from home ;D

I agree with Imahilus on that it depends with the group of children. I remember back in high school there were some classes I took that were just full of delinquents and others who actually applied themselves with all sort of Advance Placement courses.

If your classes are consistently composed of 'good' kids, I would say Arduino is safe and fun to use for them to learn. Motors, speakers and IR remotes like what people stated above are agreeably fun to learn to use. I would even consider photocell sensors and maybe thermosats too so they can see some practical applications of the board.

If your class consists of kids who like to stick their gum under the chair, tardy to class and be disruptive, I would just stick to programming on the computer to do simple things like print things on the screen (i.e. "Hello") and ask for inputs from the keyboard. The less things kids can get their hands on and steal, the better for school.

Another suggestion would be to have the students buy some simple electronic kit that way you don't really spend anything and you & the school do not have to worry about vandalism or theft. Just get a head count and a student agreement form saying they will pay for 'blah' if they are to be enrolled in your class. It's realistic for some individuals while others may be over their heads; just got to work with their attention spans.

(The public high school I attended was full of assholes and thieves. Just something to be mindful of)

What skills would I need to pick up in order to use the Arduino effectively?

Considering you have a computer science background, you would not need to learn much other than knowing where to put what. Programming part of arduino is the most challenging aspect for me (c language). The rest, like the circuitry and how to wire motors, lights, etc., is easy. I tend to google (search online) diagrams and schematics and usually find what I am looking for (i.e. bi-polar stepper motor schematic with Quad H-bridge driver). There are certain things to be aware of such as color coding of resistors (just find a legend somewhere online and print it large on a poster board and tack it to the wall in your classroom).

So to put it as simply as I can, you would need to know how to search the web to learn how to build certain circuits. (Using google images is the best)

I can program and I'm not afraid of learning a new language, but I've never touched a soldering iron. Would I need to get a deep background in electrical engineering before I try anything?

So easy, a caveman can do it. Just a few pointers with a soldering iron is 1. don't touch the metal part of it unless you like seared flesh or want to train for tatoo pain 2. Pull solder away from the spot your soldering first THEN the soldering iron

In general, I would recommend using solderless breadboards that way you just plug everything in and completely avoiding the soldering iron issue of someone burning themselves in class. I would recommend that the kids wear safety goggles. A classmate in my Circuits and Instrumentation lab short circuited a 9v battery on accident and it shot straight up a good 2-3 feet busting the casing of the battery and leaving it very hot.

Wikipedia can give you the short versions of functions of different things like resistors, capacitors, etc. if they are in parallel or in series. Stuff like that.

I hope this wasn't too much on your plate for me to tell you. Hope everything works out well.

Thanks, everyone. This was a lot of very helpful information. I think what I'll do is ask Santa for a kit for Christmas and spend my break playing with it. Provided that I can pick it up quickly enough, I'll look into adding it into the curriculum later in the spring. That way, I'll have a bit more time to play with it and get a handle on things, and the kids will have some time with pure programming before we move on to the electronics bits.