Arduino Workshops
These workshops will assume you have an Arduino Uno, some breadboard to plug your components into, some jumper wire (specially made or just single core wire with the ends stripped) and some components. There are a few important things to remember:
Don't make/break connections when the Arduino is plugged in!
The Arduino has exposed circuit traces on it, keep it off of metal surfaces, don't drop metal things on it or work in an area with lots of bits of metal clippings from your wires all over the place. Keep your work area tidy and you may even want to stick something non-conductive to the bottom of your Arduino like sticky back foam.
Be aware that some of the stuff you are using is statically sensitive. I have worked for years without any static protection and not had an issue, but if you work in an environment with thick pile carpets and have a habit of dragging your feet on the floor, you will fry something sooner or later! If you are constantly getting shocks when you touch metal things then you will need to do something about static. You can get anti-static wrist straps if you really need them or try and remember to touch some grounded metal before you touch your sensitive electronics.
N.B. - Breadboard traces are connected as shown below, with the blue rail generally used for Ground and the red for power (+V). On some breadboard you will see a break in the red line which means the rail is not connected over that line so you may need to use a wire to jump across the gap.
First, pins and numbers
The Arduino pins (IO pins for input/output) are what we use to control outputs or listen to inputs, with different functions available on different pins. Inputs are really measuring voltage and outputs controlling it, but this is all turned into numbers and values by the Arduino so its more helpful to think of it in the following way:
Digital Input or output (e.g. a button or an LED) = on/off = 5V/0V = HIGH/LOW
Analogue Input (e.g. a knob) = range between 0 - 5V = 0 - 1024
When we use an Analogue Output (e.g. to fade an LED) we are really pulsing 0 and 5V on and off using something called PWM (pulse width modulation). We control the width of the pulse, i.e. how much it is on compared to how much it is off, with a value between 0 and 255, more on this later…
Workshop 1- Hello World!
Simple use of a button (a digital input) to turn an LED on
Workshop 2 - Analog inputs/outputs
Reading a fader/knob/sensor (analog input) to fade an LED
Workshop 3 - PWM and servo motors
Control a servo motor using Pulse Width Modulation
Workshop 4 - Fritzing!
Having a look at circuit design using Fritzing
Workshop 5 - Soldering
Some tips on soldering
Workshop 6 - Serial Communication
Exploring how to communicate with the computer via serial
Workshop 7 - Controlling Max MSP
A look at Max MSP and how we can speak to it from Arduino
Workshop 8 - Making a video system
A look at some of the built in video modules of Max and using Arduino to control them
Workshop 9 - Max to Arduino
Going the other way and using a Max user interface to control Arduino hardware