Go Down

Topic: Creating an Arduino workshop for the non-programer (Read 962 times) previous topic - next topic

katherine bennett

Hi,

I teach Physical Computing and also electronics.  I am creating a hybrid course with another department for the upcoming semester.

I was wondering if anyone had any advice, in regards to programming workshops (and electronics) for those that have no experience.  I imagine that I'll have 3-4 days.

I'm hoping to cover the basics, and motor control.

I don't want to overwhelm them, but I do want to enable them to be able to create working projects.

Any suggestions would be much appreciated.

Thank you!

pracas

Welcome to the forum.

non-programmer with some programming knowledge? I think it should be doable. once people see a few leds blink i'm sure they will get hooked up and learn the stuff.

anyways checkout our workshop content www.simplelabs.co.in

cheers,
Pracas
Be The Change...

JonathanS

#2
Dec 17, 2009, 09:01 pm Last Edit: Dec 17, 2009, 09:05 pm by jopasm Reason: 1
I taught beginner workshops in computer topics in the past (not arduino based though).  I'm new to the arduino environment, but I have a background in programming.  As I've worked through the different tutorials online I've been thinking of how to adapt it for a non-programmer since I suspect I will be called on with arduino questions soon from non-programmers who are also just starting.  Anyway - here's a few suggestions, they're pretty basic, but maybe you can find some use:

- start with pre-configured hardware and spend the first day programming.  Start with the blinky light example.  You can let them plug a LED into Pin 13 and GND or use the onboard LED.  This way by the end of the first day (or half day, depending on how fast paced things are) they'll know how to hook up an arduino, compile the program, upload a program, and see the results.  They should be beginning to understand how the program works by this point.  Let them play with with the blinking duration - it's an easy change to the code and it has immediate results.  You can get into the basics of programming such as what {} is for and why you need a semicolon after each line, and an introduction to variables.  

- The next segment can introduce a switch and the code to read whether the switch is on or off.  I'd be tempted to use a toggle switch instead of a momentary switch because you can skip bouncing issues.  Let them write the code to turn their blinking light on and off with the switch.  

- next segment, analog sensors and controlling an LED or motor.  This is where people are likely to begin struggling.  This will let you go into more detail on the programming.  This might be too advanced, but I know I'd like to know how to handle PWM to dim an LED and how to read a temperature sensor, light sensor, or even a potentiometer.  I'd probably be sure to provide code examples and spend the last portion of the teaching period letting everybody modify the code or experiment with new sensors.

- last section, hardware design.  really hit them with the electronics side of things.  By now they should be somewhat comfortable with the very basics of programming, today's the day to learn what resistors are for.  You won't be able to do an EE course in a day, obviously, so focus on reading schematics and and the basics of building a circuit on a breadboard.  

I'm envisioning using simple components that require a minimum circuit to drive them - no more than a resistor or two.  It keeps things simple.  I picked up an LM335 temperature sensor, some CdS photocells, and a potentiometer to play with as I start out.  They're simple to interface, inexpensive, and robust.  Add in a handful of LEDs and you're good to go.  

I would usually try to prepare an "advanced" project for the students who finished quickly.  It kept them busy while I worked with the students who needed more help and made them feel they were getting their money's worth (the classes I did were adult education type classes).  The advanced project could be something like using PWM and a 3 color LED to generate different colors.  It would serve as an advanced in-class project and students could take the notes home and have a technique that's useful in everything from art displays to robotics at their disposal.

I'm far from a professional instructor, and this is just a basic layout of how I'd structure the course and what I'd try to cover.  I'd really like to know what you end up doing and how well it goes!  I'd love to try to arrange some sort of introduction to arduino class locally just to increase the number of people using it locally with an eye towards building an active meet-up group or communal workshop.

jabber

Quote
If,  I don't  get any help,  


If you post some more details here you will find many people willing to help. You seem to have had an unfortunate experience but for the 99.999% of other people the whole Arduino experience is a positive one.  

AccVlad

If interested, you'll  find  more details about Accordion MIDI Contoller Project  in special topic deveted to this project. Sorry,  it was displaced in this section.
AccVlad

katherine bennett

Thanks for all of your insights.  I'll keep you posted as I move forward.  Simple is best for beginners, I agree.

Cheers!

jabber

Now I know why some posts don't seem to make sense, like mine above. Several other posts in between have disappeared/been deleted  :)

Grumpy_Mike

I always used to do the bendy wire project with my students - passing a loop of wire along an undulating wire without touching it.

This is good because you can start simple, just touch the wire and it prints a message. Then you extend it to have end stops, with a start and stop message. Then you add a time for the run. Then you can add beeps and LEDs lighting. You can do most of it with a wire coat hanger and a block of wood.

Go Up