8. Installation Process
ArduBlock is a run-time Java script that must be
saved to a specific location on your computer.
The file ardublock-xxxx.jar must be inside the
following file structure within your Arduino
sketchbook:
ArduinotoolsArduBlockTooltool
Note: Folder names are case sensitive
9. 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!!!
10. 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.
13. 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
14. 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
27. What is ArduBlock?
• Graphical Introduction to Programming
• Scratch-like interface
• Clear transition to text-based coding
• Generates real Arduino code in the
background.
28. Block Organization
Manipulating or modifying the program
flow or behavior.
Serial and I2C communication:
transferring data between devices & PC
Special utilities: Tone, servo, and
ultrasonic sensors
Creating, assigning, or using constants,
variables, or arrays.
Simple and complex math operations.
Boolean logic operations and
comparisons.
Reading or setting values (voltages) to
pins on the microcontroller.
30. Pin # – any number
from 0 to 19
Values –
Pin # – 3, 5, 6, 9, 10, or
11 .
Values –
Allows the control of the pins on the Atmega328
chip – turning them on or off (like the light
switch)
Block Organization
Pins
or to
Notice the different
shapes?
Digital Values Analog (Number) Values
31. Lesson #0b – Test Upload
Notes:
• Click and drag blocks from the left pane to the Programming Area.
• Blocks should snap/click together.
• Right-click to copy-paste (clone) a block
• Drag blocks back to the left pane to discard.
Click Upload to Arduino and watch…
Create the following program -- What do you expect this to do?
32. Click back to the Arduino window to
check for status messages
36. Let’s get to hacking…
Lesson #1 – What if I want to Blink?
“Hello World” of Physical Computing
Psuedo-code – how should this work?
Turn
LED ON
Wait
Turn
LED
OFF
Wait
Rinse &
Repeat
37. Let’s get to hacking…
Lesson #1 – What if I want to Blink?
“Hello World” of Physical Computing
Runs once at the beginning of code.
Repeats – continuously over and
over and over…
40. Pins with an A are actually Analog INPUT
pins – but they’re really identified as…
Digital Pins are numbered 0 to 13.
Analog Input Pins are A0 to A5. but…
Analog Pin Digital I/O ID
A0 14
A1 15
A2 16
A3 17
A4 18
A5 19
AnalogPinMapping
41. Alright? Let’s blink!
Challenge 1a – Blink to mimic a heartbeat
Challenge 1b – Blink multiple LEDs
First -- plan out a pattern on paper – then
start coding
Challenge 1c – Multiple LEDS – Knight
Rider (Cylon)-esque
42.
43. Save your Project
• Save early, Save
often!
• Enumerate your
iterations – (e.g.
blink_10.adp,
blink_11.adp,
blink_12.adp…)
44. Speeding up and Slowing
Down…
What if we wanted to create a pattern that starts off
with a slow blink and gets faster and faster?
What part do we need to be able to change?
constant
59. Other than just turning an LED on
and off…
What else might we want to do?
60. Concept: Analog vs. Digital
Micro-controllers are digital devices – ON or OFF.
An Analog signal is anything that can be a full
range of values. xWhat are some examples?
Think of like a ramp or a hill.
61. Concept: Analog vs. Digital
To create an analog signal, the
microcontroller uses a technique called
PWM.
Pulse Width Modulation (PWM)
Pins 3, 5, 6, 9, 10, 11 are capable of producing an
Analog Output
62. Color Mixing with 3 LEDs
RGB LED
Challenge 2a:
1) Experiment with different values – what do you observe
happens? Be prepared to share with the class – what
did you try, and what did you see?
2) Do you observe anything strange about the behavior?
3) How do you create Orange? Purple? Magenta?
LED PINS
RED = 9
GREEN = 11
BLUE = 10
Change either of these
values… See what happens!
63. Color Mixing with 3 LEDs
Tri-color LED
The RGB LED is a Common-Anode (means the
positive side 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 method of
completing a circuit!
Pin
9
Pin
11
Pin
10
5 V
Value = 0 (LOW) LED is ON
Value = 255 (HIGH) LED is OFF
64. Color Mixing with 3 LEDs
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 blinks, fades, or
switches colors. Be prepared to have a name for your art
piece and show this to the rest of the class.
67. A Simple Example
Try this bit of code.
What do you think will happen? Test it
and write down your observations.
DIG
INPUT 2
68. digital Inputs
Buttons / Slide Switches
INPUT A5
INPUT A5
(a.k.a. 19)
What about
this??
Analog Pin Digital I/O ID
A0 14
A1 15
A2 16
A3 17
A4 18
A5 19
AnalogPinMapping
69. digital Inputs
Buttons / Slide Switches
Challenge 3a:
Re-arrange the blocks or add new ones to:
• Blink LED quickly when the button is pressed.
• Otherwise blink slow
Same as
Pin A5
70. 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.
71. Reading the
Light Sensor?
What is the biggest and smallest value the analog pin will
“measure”? [Hint: open your serial monitor to find out!]
72. 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 ___________.
75. Making Music
Let’s Play a song…
Twinkle-Twinkle:
CC GG AA G FF EE DD C GG
Happy Birthday:
G G A G C B G G A G D C G G G E C C B A
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.
80. 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
81. Thousands of Amazing ideas…
The Cat Defender…
http://www.plasma2002.com/blenderdefende
r/
List of projects at Sparkfun:
https://learn.sparkfun.com/tutorials
83. 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://www.sparkfun.com/WorkshopFeedback
Feedback?