How to Troubleshoot Apps for the Modern Connected Worker
NSTA 2013 Denver - ArduBlock and Arduino
1. Engineering the
Engineering: Connecting
the Why to the How
Unleashing Your Students'
Inner Inventor—Robots,
Video Games, and DIY!
Brian Huang
Education Engineer
Email: brian.huang@sparkfun.com
Twitter: @bri_huang
#sparkfun
4. A little background
(Ignite style)
Ignite presentation format: (a.k.a. Pecha
Kucha)
•
•
•
•
20 Slides
15 seconds per slide
Slides are on auto-advance
Total Time: 5 minutes
5.
6.
7. About us...
Founded in 2003 by Nathan Seidle.
At SparkFun, our focus is all about creation, innovation,
and sharing information.
Open Source Hardware is at the core of our business. We
emphasize researching, re-mixing, adapting, making
improvements, and sharing with the world!
8.
9.
10. Today
You will use a microcontroller &
ArduBlock to design, develop, and
build interactivity and “intelligence”
with digital electronics, LEDs, and
sensors.
16. Introducing Arduino…
(circa 2005) Small, low-cost micro-controller (mini-computer).
Describes both the hardware (board) and the programming language.
Developed off the Atmel ATMega328 chip.
Designed with Artists, Students, and Non-Engineers in mind…
18. In science???
• Data logging / collection
• Control of motors, LEDs, experiments
• Design of atmospheric and Space-based
experiments and apparatus
• Inventions!
• Making Art!!!
25. First thing you need is…
Download Arduino from:
www.arduino.cc/download
Follow their directions on installation.
26.
27.
28. 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
30. 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!!!
31.
32. What is all this stuff???
Components
the Brain
ATmega328
(16 MHz clock)
Temp.
Sensor
Light
Sensor
Buzzer /
Speaker
33. What is all this stuff???
Silk Screen & Pins
Actual Pins
on Atmega328
36. Lesson #0a – Setting up Arduino
1. Setup Board
(LilyPad Arduino w/ ATmega328)
2. Setup COM Port
PC – Highest COM #
Mac – /dev/tty.usbserial-A####xXx
42. What is ArduBlock?
•
•
•
•
Graphical Introduction to Programming
Scratch-like interface
Clear transition to text-based coding
Generates real Arduino code in the
background.
43. Block Organization
Manipulating or modifying the program
flow or behavior.
Reading or setting values (voltages) to
pins on the microcontroller.
Boolean logic operations and
comparisons.
Simple and complex math operations.
Creating, assigning, or using constants,
variables, or arrays.
Special utilities: Tone, servo, and
ultrasonic sensors
Serial and I2C communication:
transferring data between devices & PC
46. Click back to the Arduino window to
check for status messages
47. Example #1 - debrief
What is the difference between setup() and
loop()?
When you add multiple blink blocks, describe
the behavior of the LEDs?
What new feature might you want to create?
48.
49. Example #2
See if you can come up with the steps needed
to make an LED blink.
51. Pins with an A are Analog INPUT pins –
but they’re really identified as…
Digital Pins are numbered 0 to 13.
Analog Pin Mapping
Analog Input Pins are A0 to A5. but, actually…
Analog Pin
Digital I/O ID
A0
14
A1
A2
A3
A4
A5
15
16
17
18
19
52. Example #2 - debrief
1) Can you write a program that blinks on and off with a 1 second
delay in between? What is the period of this pattern?
2) Can you write a program that blinks 10 times per second? What
delay time did you use? What about 50 times per second? What
delay time did you use?
3) Creative: Modify your program to create a heartbeat pattern.
4) Extension: Add extra LEDs to create an LED chaser or Larson
Scanner. Use as many of the LEDs on the Lilypad Development
Board as you like. How fast do you want it to run?
53. set digital pin
Allows the control of the pins on the Atmega328
chip – turning them on or off (like the light
switch)
Different shapes?
Any number… except,
Pin# is limited to a
range of:
or
ON
OFF
Digital Constant Block
to
Numeric Constant Block
55. set analog pin
Allows the control of the pins on the Atmega328
chip – turning them partially on or partially off
(like a dimmer switch)
Because of certain hardware
settings, set analog pin only
works with pins 3, 5, 6, 9, 10,
& 11.
Rather than having just HIGH
and LOW, you can set the
pin to any value from 0 to
255.
Analog Output Values
to
56. 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)
58. Example #4 - debrief
What was the maximum value you saw from the light
sensor?
What was the maximum value you saw from the temp
sensor?
Analog sensors are read by a 10-bit Analog to Digital
(AD) converter. It “quantizes” a voltage at the input
pin into 1023 “bins.” 5 V = 1023 and 0 V = 0.
62. Preview of Digital SandBox
Temp Sensor
Light Sensor
Microphone
Arduino
Push Button
LED Array
RGB LED
Motor /
Speaker Out
Switch
Slider / Potentiometer
63. Extension Project
Create a musical and interactive lighting
display.
Plan out what you want the project to do,
first! Use an outline, flow-chart, or thinking
map to accomplish this.
65. SparkFun Inventor’s Kit
KIT-12001
Circuit 1: Blinking an LED
Circuit 2: Reading a Potentiometer
Circuit 3: Driving and RGB LED
Circuit 4: Driving Multiple LEDs
Circuit 5: Push Buttons
Circuit 6: Reading a Photo Resistor
Circuit 7: Reading a Temperature Sensor
Circuit 8: Driving a Servo Motor
Circuit 9: Using a Flex Sensor
Circuit 10: Reading a Soft Potentiometer
Circuit 11: Using a Buzzer
Circuit 12: Driving a Motor
Circuit 13: Using Relays
Circuit 14: Using a Shift Register
Circuit 15: Using an LCD
68. Thank you!
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
69. 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
70.
71. Save your Project
• Save early, Save
often!
• Enumerate your
iterations – (e.g.
blink_10.adp,
blink_11.adp,
blink_12.adp…)
72. 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
87. Other than just turning an LED on
and off…
What else might we want to do / control?
88. 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.
89. 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)
90. Color Mixing with 3 LEDs
RGB LED
LED PINS
RED = 9
GREEN = 11
BLUE = 10
Change either of these
values… See what happens!
91. 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).
5V
The signal line is connected to the bottom of each
LED.
Don’t worry - it’s just a different method of
completing a circuit!
Value = 0 (LOW) LED is ON
Value = 255 (HIGH) LED is OFF
Pin
9
Pin
11
Pin
10
92. 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.
96. A Simple Example
DIG
INPUT 2
Try this bit of code.
What do you think will happen? Test it
and write down your observations.
97. digital Inputs
Buttons / Slide Switches
Analog Pin Mapping
What about
this??
Analog Pin
Digital I/O ID
A0
14
A1
A2
A3
A4
A5
15
16
17
18
19
INPUT A5
INPUT A5
(a.k.a. 19)
98. digital Inputs
Buttons / Slide Switches
Same as
Pin A5
Challenge 3a:
Re-arrange the blocks or add new ones to:
• Blink LED quickly when the button is pressed.
• Otherwise blink slow
99. 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.
100. Reading the
Light Sensor?
What is the biggest and smallest value the analog pin will
“measure”? [Hint: open your serial monitor to find out!]
101. 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 ___________.
104. 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.