Introduction to Arduino
With ArduBlock & LilyPad Dev
Brian Huang
Education Engineer
brian.huang@sparkfun.com
Pre-Class Survey
http://bit.ly/14Xk3Ek
Resources
This PPT
ArduBlock Download & Installation
http://www.ardublock.com/
General Rules
Raise your hand if you have a question.
Be respectful.
When I raise my hand…
Share your findings with the people near
you.
Poke around, experiment, and have fun…
Imagine, create, and play!!!
Objectives
Provide a thorough introduction to the Arduino
programming environment.
Develop a use of simple functions to interact
with the LEDs, light sensor, push button, and
buzzer on the Protosnap Pro Mini.
Arduino LilyPad Protosnap Dev
What is it?
What can it do?
Who cares?
What is it?
Heart of it – ATMega328 (a $4 microcontroller)
Open Source
High tolerance for ESD and “bad” electronics
practices…
Provides easy way to interact with a computer
physically – a.k.a. physical computing
What can it do?
-Great for prototyping
ideas
-Great to teach Intro to
Programming Arduino (no
assembly required!)
-Lots and lots of options!
-Large pads can be sew-
able
Who cares?
Hackers / Makers
Engineers
Artists
Musicians
Kids!
Teachers!!
You!!!
Physical Computing
Components, Silk Screen & Pins
What is all this???
the Brain
ATmega328
Temp.
Sensor
Light
Sensor
Buzzer /
Speaker
Actual Pin-outs
ArduBlock
Introduction to Programming
Scratch-like interface
Clear transition to text-based coding
Block Organization
Control
Block Organization
Pins
Block Organization
Numbers/Constants
Block Organization
Operators
Block Organization
Operators
Block Organization
Utilities
Block Organization
Utilities I2C
Understanding Input vs. Output
Referenced from the perspective of the microcontroller (electrical board).
Inputs is a signal / information Output is any signal exiting the
going into the board. board.
Almost all systems that use physical computing will have
some form of output
What are some examples of Outputs?
Startup Arduino IDE
Double-click on either
the Arduino Icon or
wherever you installed
(saved) the Arduino
program.
Plug it in
Lesson #0 – Configuring Arduino
1. Setup Board
(LilyPad Arduino w/ ATmega328)
2. Setup COM Port
PC – Highest COM #
Mac – /dev/tty.usbserial-A####xXx
Settings: Tools Board
Settings: Tools Serial Port
Other Board Types
Load ArduBlock
Lesson #0 – Test Upload
Check for Status Messages
Let’s get to hacking…
Lesson #1 – Blinking an LED
“Hello World” of Physical Computing
Psuedo-code – how should this work?
Turn
Turn Rinse &
Wait LED Wait
LED ON Repeat
OFF
Let’s get to hacking…
Lesson #1 – Blinking an LED
“Hello World” of Physical Computing
LED Pins
16 18 17
How are Analog Pins really
identified?
Digital Pins are numbered 0 to 13.
Analog Input Pins are A0 to A5.
A0 = 14
A1 = 15
A2 = 16
A3 = 17
A4 = 18
A5 = 19
Alright? Let’s blink!
Challenge 1a – Blink multiple LEDs
Plan out a pattern – can you make it?
Challenge 1b – Blink to mimic a heartbeat
Challenge 1c – Multiple LEDS – Knight
Rider style
Save your Project
• Save early, Save
often!
• Enumerate your
iterations – (e.g.
blink_10.adp,
blink_11.adp,
blink_12.adp…)
Concept: Analog vs. Digital
Microcontrollers are digital devices – ON or OFF.
An Analog signal is anything that can be a full
range of values. What are some examples? Think
of like a ramp or a hill.
Concept: Analog vs. Digital
To create an analog signal, the
microcontroller uses a technique called
PWM.
Pins 3, 5, 6, 9, 10, 11 are capable of producing an
Analog Output
Pulse Width Modulation (PWM)
Color Mixing with 3 LEDs
analogWrite()
Challenge 2a:
1) How do you turn on the RED LED?
2) Experiment with different values – what do you observe
happens?
3) How do you turn on the GREEN or the BLUE LED?
Color Mixing with 3 LEDs
Tri-color LED
The RGB LED is a Common-
Anode (means the positive side 5V
of the LED is all tied to Vcc).
The signal line is connected to the
bottom of each LED.
Don’t worry - it’s just a different Pin
9
Pin
11
Pin
10
method of completing a circuit!
Color Mixing with 3 LEDs
analogWrite()
Challenge 2b:
Experiment with different values of Red, Green, and Blue
to create a couple different colors.
Write down the values you used. Check these values
with www.colorpicker.com
Challenge 2c:
Create a unique lighting display that integrates a blink,
fade, or a switching of colors. Be prepared to have a
name for your art piece and show this to the rest of the
class.
Save your Project #2
Concept: If(), If() – else…
conditional logic
Concept: If(), If() – else…
conditional logic
A Simple Example
DIG
INPUT 2
Try this bit of code.
What do you think will happen?
Test it and write down your
observations.
digital Inputs
Buttons / Slide Switches
What about
this??
Analog Pin Digital I/O ID
Analog Pin Mapping
A0 14 INPUT A5
INPUT A5
A1 15 (a.k.a. 19)
A2 16
A3 17
A4 18
A5 19
A6 20
digital Inputs
Buttons / Slide Switches
Same as
Pin A5
Challenge 3a:
Re-arrange the blocks or add new ones to:
• Turn ON an LED when the button is pressed.
• Otherwise blink continuously…
digital Inputs
Buttons / Slide Switches
Challenge 3b:
Now, using the button / switch – to start a disco/light changing
pattern
Challenge 3c:
Now, using the button / switch – to turn on and off the VIBE
motor.
Serial Monitor
Serial print
command
Any
message
“glue”
Data
Example
Open up Serial Monitor
Reading the
Light Sensor?
Challenge
Use the light sensor input to affect the blink
rate of the LEDs.
Use the light sensor input to affect the speed
of a “knight-rider” or cylon display.
Use the light sensor to ___________.
Save your Project #3
Sensors
Making Music
Setting up the Speaker
Making Music
Let’s Play a song…
Twinkle-Twinkle:
CC GG AA G FF EE DD C GG
Happy Birthday:
GGAGCBGGAGDCGGGECCBA
Hot Cross Buns:
B A G <> B A G <> G G G G <> A A A A B A G
Mary Had A Little Lamb:
B A G A BB B <> AA A <> BB B <>
B A G A BBBB AAA BAG.
Musical Notes / Frequencies
Note Frequency (Hz) Note Frequency (Hz)
C4 261 C5 523
C#4/Db4 277 C#5/Db5 554
D4 293 D5 587
D#4/Eb4 311 D#5/Eb5 622
E4 329 E5 659
F4 349 F5 698
F#4/Gb4 369 F#5/Gb5 739
G4 392 G5 783
G#4/Ab4 415 G#5/Ab5 830
A4 440 A5 880
A#4/Bb4 466 A#5/Bb5 932
B4 493 B5 987
Save your Project #4
Tone
Getting started with Arduino
Additional Resources
http://www.sparkfun.com
http://learn.sparkfun.com
http://www.arduino.cc
http://www.bildr.org
SparkFun Tutorials and Projects
- GardenBot:
www.sparkfun.com/news/598
- High Altitude Balloon:
www.sparkfun.com/tutorials/180
- GPS Clock:
www.sparkfun.com/tutorials/47
- Earthquake Data Logger:
www.sparkfun.com/tutorials/235
Thousands of Amazing ideas…
The Cat Defender…
http://www.plasma2002.com/blenderdefende
r/
List of projects at Sparkfun:
http://goo.gl/2M3AM
Questions?
Feedback?
Before leaving, please fill out a quick survey
so that I can get your e-mail and a little
info about your familiarity with Arduino /
Sparkfun.
Thanks!
http://bit.ly/ZAmDMk
www.sparkfun.com
6175 Longbow Drive, Suite 200
Boulder, Colorado 80301
Buttons / Slide Switches
Digital Input, Pull-up Resistors, and
digitalRead()
DIG
INPUT
Buttons / Slide Switches
Digital Input, Pull-up Resistors, and
digitalRead()
DIG
INPUT