dean brock, rebecca bruce and susan reiser, ccsc se 2009 using arduino material taken from todbot...

40
Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Using Arduino terial taken from Todbot terial taken from Todbot blog Bionic Arduino blog Bionic Arduino

Upload: barbra-chandler

Post on 24-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Using ArduinoUsing Arduino

Material taken from Todbot Material taken from Todbot blog Bionic Arduinoblog Bionic Arduino

Page 2: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

What is the Arduino

Page 3: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Page 4: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Arduino Duemilanove• 13 digital input/output pins

– Including 6 with PWM for analog output

• 6 analog input pins• USB connection

– For serial I/O and uploading board• ATmega168 or ATmega328 processor

– 16k or 32k for program, 1k or 2k for data

• Arduino bootloader• ~ $30• More Info

Page 5: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Other Arduino Boards

• Arduino Mega– Lots of I/O pins and lots (128k) of program space

– ~ $65• LilyPad

– For wearable applications– ~ $20

• Boarduino– Fits within a breadboard– ~ $20, but must be soldered!

Page 6: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 1• Start the Arduino IDE from the terminal window with the command: arduino

• Make sure to connect the PC to the Arduino using the USB cable.

• Designate the connection port and processor type.

• Try out the “blink” example– Select: File > Examples > Digital > Blink

Page 7: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Connect the USB Cable

Page 8: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Select Connection and Type

atmega328

Page 9: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Arduino IDE

Page 10: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Page 11: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Status Messages

Page 12: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 1 Modified---Add an External LED to

pin 13• File > Examples > Digital > Blink

• LED’s have polarity – Negative indicated by flat side of the housing and a short leg

www.instructables.com

Page 13: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Terminology

Page 14: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Arduino Control

• Very much like Processing/Java– if, then, while, switch– Functions, expressions

• setup()– Runs once at beginning (or reset)

• loop()– Runs continuously

•Like draw()

Page 15: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Arduino Digital I/O

• pinMode(pin, mode)– Sets pin to either INPUT or OUTPUT

• digitalRead(pin)– Reads HIGH or LOW from a pin

• digitalWrite(pin, value)– Writes HIGH or LOW to a pin

• Electronic stuff you can ignore– Output pins can provide 40 mA of current

– Writing HIGH to an input pin installs a 20KΩ pullup

Page 16: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Arduino Timing

• delay(ms)– Pauses for a few milliseconds

• delayMicroseconds(us)– Pauses for a few microseconds

Page 17: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Circuits

Page 18: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

All holes in each of the four long columns are connected internally.Use these to route power and ground.

Connect this columnto GND (0 volts)

Connect this columnto GND (0 volts)

Connect thiscolumn to 5V

Connect thiscolumn to 5V

There are ten holes that form the rows.These are divided into two sets of five holes.All holes in each set of five are connected

Breadboard Fundamentals

Page 19: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 2• File > Examples > Digital > Melody

• Speakers have polarity. Positive indicated by small + or dot on piezoelectric speaker.

Page 20: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 2• Get a breadboard and a piezoelectric speaker

• Assemble as shown

Image credit: Tod Kurt

• Try out the built-in “melody” example– Select: File > Examples > Digital > toneMelody

• Try this version of Melody.pde

Page 21: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Digital? Analog?• Digital has two values: on and off• Analog has many (infinite) values• Computers don’t really do analog, they quantize

• Remember the 6 analog input pins---here’s how they work

Image credit: Tod Kurt

Page 22: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Analog to Digital• Number of states or “bins” is the resolution

• Arduino resolution is 10-bits (1024 values)

• 5/1024 = 4.8 mV smallest voltage change you can measure

Image credit: Eoin Brazil

Page 23: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Analog Output

• Computers can’t output analog voltages– Only digital voltages (0 volts or 5 volts)

• Simulating an analog signal with Pulse Width Modulation (PWM)– Can’t directly supply 2.5V, but can pulse the output on and off really fast to produce the same effect---the same effective voltage.

Page 24: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Analog Output

Vary the effective voltage by modulating the width of the high pulse

Image credit: Tod Kurt

Page 25: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 3• Hardware Needed:

– Resistor (in 220-500 Ohm range)– Breadboard– LED– Wire

• Assemble as shown(MOVE the piezo speaker to pin 7)

–Select: File > Examples > Analog > Fading

Image credit: Tod Kurt

Page 26: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

PWM is Everywhere

• Lamp dimmers, motor, speed control, power supplies, noise making, etc.

• Now on to analog input using sensors---DON’T DISASSEMBLE your breadboards

Page 27: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Sensing the Dark: Photoresistors

• a.k.a. a photocell or light-dependent resistor

• It is a variable resistor– Brighter light => lower resistance

• Create a voltage divider to use the photoresistor

Image credit: Tod Kurt

Page 28: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 4

• Hardware Needed:– Resistor (approx. 10k Ohm)– Breadboard– Photoresistor– Wire

• Assemble as shown

Image credit: Tod Kurt

Page 29: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

A Theremin• Create a theremin using the photoresistor– A spooky sound machine

•Works by measuring your body’s electric field

– We’ll use light to control the tone produced

• We’ll also control the brightness of the LED using the photoresistor.

• Verify your breadboard configuration!

Page 30: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Theremin Breadboard Configuration

Hardware Needed: Resistors, Breadboard, Wire, Photoresistor, Piezo speaker, LED

Page 31: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

The Theremin Program

Load and run the TherminAndLEDprogram

Page 32: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Sensors

• There are many analog sensors that could be used in place of the photoresistor

• Check out our “theremin” demos created using other sensors

Image credit: Tod Kurt

Page 33: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Communication Between the Arduino and Your

Computer

ArduinoProgram

ProcessingProgram

ArduinoBoard

YourComputer

Serial (TTL)Communication

Page 34: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Processing• Includes libraries supporting serial communication, video capture, audio processing…

• VERY IMPORTANT: enter the following command in the terminal window to update the serial library:~brock/bin/serialfix

• Start Processing from the terminal window

Page 35: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 5 • Hardware Needed:

– Resistor (10k Ohm)– Breadboard– Photoresistor– Wire

• Don’t reassemble - this is the same schematic as Activity 4.

Image credit: Tod Kurt

Page 36: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Activity 5

• Open SimpleWrite.pde into the Arduino IDE.

• Open SimpleRead.pde into Processing.

Page 37: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Serial Communication in Arduino

Page 38: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Serial Communication in Processing

Page 39: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Clarifications

• SimpleWrite spends the first second sampling the photocell readings and setting limits.

• The Arduino program restarts when the Processing program starts.

• If the Processing program begins behaving badly, try pressing the restart button on the Arduino.

Page 40: Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009 Using Arduino Material taken from Todbot blog Bionic Arduino Todbot blog Bionic ArduinoTodbot

Dean Brock, Rebecca Bruce and Susan Reiser, CCSC SE 2009

Project 2

• Project 2