Engineering the
Engineering: Connecting
the Why to the How

Unleashing Your Students'
Inner Inventor—Robots,
Video Games, ...
Engineering the
Engineering: Connecting
the Why to the How

Brian Huang
Education Engineer
@bri_huang
#sparkfun
Write this down…
http://bit.ly/SparkFunNSTADenver2013
A little background
(Ignite style)
Ignite presentation format: (a.k.a. Pecha
Kucha)
•
•
•
•

20 Slides
15 seconds per slid...
About us...
Founded in 2003 by Nathan Seidle.
At SparkFun, our focus is all about creation, innovation,
and sharing inform...
Today
You will use a microcontroller &
ArduBlock to design, develop, and
build interactivity and “intelligence”
with digit...
Consumers

Creators / Makers
Engineers / Inventors
Maker Culture
Make to Learn
Seymour Papert &
Constructionism
I want ________ to ________.
Introducing Arduino…
(circa 2005) Small, low-cost micro-controller (mini-computer).

Describes both the hardware (board) a...
But, really… what is this “arduino?”
In science???
• Data logging / collection
• Control of motors, LEDs, experiments
• Design of atmospheric and Space-based
e...
A few project ideas
And, a couple more...
And, a couple more...
Whew!

Questions?
Let’s Start!
First thing you need is…
Download Arduino from:
www.arduino.cc/download
Follow their directions on installation.
Installation Process
ArduBlock is a run-time Java script that must be
saved to a specific location on your computer.
The f...
A little short-cut…

Unzip this file to your Arduino
sketchbook folder.
General Rules
•
•
•
•

Raise your hand if you have a question.
Be respectful.
When I raise my hand…
Share your findings wi...
What is all this stuff???
Components

the Brain
ATmega328
(16 MHz clock)

Temp.
Sensor

Light
Sensor
Buzzer /
Speaker
What is all this stuff???
Silk Screen & Pins
Actual Pins
on Atmega328
Startup Arduino IDE
Double-click on either
the Arduino Icon or
wherever you
installed (saved) the
Arduino program.
Plug it in
Lesson #0a – Setting up Arduino
1. Setup Board
(LilyPad Arduino w/ ATmega328)

2. Setup COM Port
PC – Highest COM #
Mac – ...
Tools  Board
Setup Board
Tools  Serial Port
Setup COM Port

PC –
Highest COM #

Mac –
/dev/tty.usbserialA####xxx
Other Board Types
Tools  ArduBlock
Load ArduBlock
Zoomed out
View

Programming
Blocks Palate

Programming
Area
What is ArduBlock?
•
•
•
•

Graphical Introduction to Programming
Scratch-like interface
Clear transition to text-based co...
Block Organization
Manipulating or modifying the program
flow or behavior.
Reading or setting values (voltages) to
pins on...
Block Organization

Control
Manipulating or modifying the program
flow or behavior.
Example #1
Click back to the Arduino window to
check for status messages
Example #1 - debrief
What is the difference between setup() and
loop()?
When you add multiple blink blocks, describe
the b...
Example #2
See if you can come up with the steps needed
to make an LED blink.
What other LEDs can we play
with?

16

18

17
Pins with an A are Analog INPUT pins –
but they’re really identified as…
Digital Pins are numbered 0 to 13.

Analog Pin Ma...
Example #2 - debrief
1) Can you write a program that blinks on and off with a 1 second
delay in between? What is the perio...
set digital pin
Allows the control of the pins on the Atmega328
chip – turning them on or off (like the light
switch)

Dif...
Example #3 - What’s next?
set analog pin
Allows the control of the pins on the Atmega328
chip – turning them partially on or partially off
(like a d...
Concept: Analog vs. Digital
To create an analog signal, the
microcontroller uses a technique called
PWM.
Pins 3, 5, 6, 9, ...
Example 4 - What about sensors?
Example #4 - debrief
What was the maximum value you saw from the light
sensor?
What was the maximum value you saw from the...
Example #5 – if statements
Example #6 – making sounds
(er… music)
Options, options, options…

Questions
?
Preview of Digital SandBox
Temp Sensor
Light Sensor

Microphone

Arduino

Push Button
LED Array
RGB LED
Motor /
Speaker Ou...
Extension Project
Create a musical and interactive lighting
display.
Plan out what you want the project to do,
first! Use ...
Getting started with Arduino
SparkFun Inventor’s Kit
KIT-12001
Circuit 1: Blinking an LED
Circuit 2: Reading a Potentiometer
Circuit 3: Driving and RGB...
Data Collection with Vernier
Discount / Promo Code
Promo Code: EDUNSTA2013
25% Discount – orders > $30
E-mail: education@sparkfun.com to create
an educ...
Thank you!
Before leaving, please fill out a quick survey
so that I can get your e-mail and a little
info about your famil...
Alright? Let’s blink!
Challenge 1a – Blink to mimic a heartbeat
Challenge 1b – Blink multiple LEDs
First -- plan out a pat...
Save your Project
• Save early, Save
often!
• Enumerate your
iterations – (e.g.
blink_10.adp,
blink_11.adp,
blink_12.adp…)
Speeding up and Slowing
Down…
What if we wanted to create a pattern that starts off
with a slow blink and gets faster and ...
Programming Concepts:
Using Variables
Variables  placeholders / reminder for
counting
Using Variables in ArduBlock
Numbers/Constants
Variable is just a
placeholder for a
value.
This placeholder can
be manipul...
Start by setting a variable called
delayTime in the setup
Now… replace the “1000” in each
delay with the variable name
Decrement delayTime each loop
– using Math Operators
Example: Did you come up with
something like this?
What happens when you reach zero?

Let’s find out!
Debugging – how can we see what’s going on?

Serial Monitor

Serial print
command
Any
message
“glue”
Data
Add this block… so that we can
watch the variable value
Upload & Click back to Arduino
Open the Serial Monitor
How do we fix / prevent this from
happening?
Conditional Logic:  If(), If() – else…
If this is TRUE…

Do this.

Otherwise...
Logical Operators
Comparisons / Conditionals
Greater than
Less than
Equal to
Greater than or equal to

Less than or equal ...
If delayTime <= 0… reset
Advanced…
Combinations of inequalities
Combine multiple conditions together using
or and and

Example:
Other than just turning an LED on
and off…
What else might we want to do / control?
Concept: Analog vs. Digital
Micro-controllers are digital devices – ON or OFF.
An Analog signal is anything that can be a ...
Concept: Analog vs. Digital
To create an analog signal, the
microcontroller uses a technique called
PWM.
Pins 3, 5, 6, 9, ...
Color Mixing with 3 LEDs

RGB LED

LED PINS
RED = 9
GREEN = 11
BLUE = 10

Change either of these
values… See what happens!
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 V...
Color Mixing with 3 LEDs

Challenge 2b:
Experiment with different values of Red, Green, and Blue
to create a couple differ...
Save your Project #2
New Challenge
Handling Inputs
A Simple Example

DIG
INPUT 2

Try this bit of code.
What do you think will happen? Test it
and write down your observatio...
digital Inputs

Buttons / Slide Switches

Analog Pin Mapping

What about
this??
Analog Pin

Digital I/O ID

A0



14

A1
...
digital Inputs

Buttons / Slide Switches
Same as
Pin A5

Challenge 3a:
Re-arrange the blocks or add new ones to:
• Blink L...
digital Inputs

Buttons / Slide Switches

Challenge 3b:
Now, using the button / switch – to start a disco/light changing
p...
Reading the
Light Sensor?

What is the biggest and smallest value the analog pin will
“measure”? [Hint: open your serial m...
Challenge
Use the light sensor input to affect the blink
rate of the LEDs.
Use the light sensor input to affect the speed
...
Save your Project #3
Sensors
Making Music

Setting up the Speaker
Three simple blocks to play with…
Making Music

Let’s Play a song…
Twinkle-Twinkle:
CC GG AA G FF EE DD C GG

Happy Birthday:
GGAGCBGGAGDCGGGECCBA

Hot Cros...
Musical Notes / Frequencies
Note

Frequency (Hz)

Note

Frequency (Hz)

C4
C#4/Db4
D4
D#4/Eb4
E4
F4
F#4/Gb4
G4
G#4/Ab4
A4
...
Save your Project #4
Tone
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
Upcoming SlideShare
Loading in...5
×

NSTA 2013 Denver - ArduBlock and Arduino

1,095

Published on

Updated slides and presentation materials around using ArduBlock with the SparkFun Lilypad Arduino Development Board.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,095
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
35
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

NSTA 2013 Denver - ArduBlock and Arduino

  1. 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
  2. 2. Engineering the Engineering: Connecting the Why to the How Brian Huang Education Engineer @bri_huang #sparkfun
  3. 3. Write this down… http://bit.ly/SparkFunNSTADenver2013
  4. 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. 5. 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!
  6. 6. Today You will use a microcontroller & ArduBlock to design, develop, and build interactivity and “intelligence” with digital electronics, LEDs, and sensors.
  7. 7. Consumers Creators / Makers Engineers / Inventors
  8. 8. Maker Culture Make to Learn
  9. 9. Seymour Papert & Constructionism
  10. 10. I want ________ to ________.
  11. 11. 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…
  12. 12. But, really… what is this “arduino?”
  13. 13. In science??? • Data logging / collection • Control of motors, LEDs, experiments • Design of atmospheric and Space-based experiments and apparatus • Inventions! • Making Art!!!
  14. 14. A few project ideas
  15. 15. And, a couple more...
  16. 16. And, a couple more...
  17. 17. Whew! Questions?
  18. 18. Let’s Start!
  19. 19. First thing you need is… Download Arduino from: www.arduino.cc/download Follow their directions on installation.
  20. 20. 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
  21. 21. A little short-cut… Unzip this file to your Arduino sketchbook folder.
  22. 22. 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!!!
  23. 23. What is all this stuff??? Components the Brain ATmega328 (16 MHz clock) Temp. Sensor Light Sensor Buzzer / Speaker
  24. 24. What is all this stuff??? Silk Screen & Pins Actual Pins on Atmega328
  25. 25. Startup Arduino IDE Double-click on either the Arduino Icon or wherever you installed (saved) the Arduino program.
  26. 26. Plug it in
  27. 27. 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
  28. 28. Tools  Board Setup Board
  29. 29. Tools  Serial Port Setup COM Port PC – Highest COM # Mac – /dev/tty.usbserialA####xxx
  30. 30. Other Board Types
  31. 31. Tools  ArduBlock Load ArduBlock
  32. 32. Zoomed out View Programming Blocks Palate Programming Area
  33. 33. What is ArduBlock? • • • • Graphical Introduction to Programming Scratch-like interface Clear transition to text-based coding Generates real Arduino code in the background.
  34. 34. 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
  35. 35. Block Organization Control Manipulating or modifying the program flow or behavior.
  36. 36. Example #1
  37. 37. Click back to the Arduino window to check for status messages
  38. 38. 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?
  39. 39. Example #2 See if you can come up with the steps needed to make an LED blink.
  40. 40. What other LEDs can we play with? 16 18 17
  41. 41. 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
  42. 42. 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?
  43. 43. 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
  44. 44. Example #3 - What’s next?
  45. 45. 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
  46. 46. 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)
  47. 47. Example 4 - What about sensors?
  48. 48. 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.
  49. 49. Example #5 – if statements
  50. 50. Example #6 – making sounds (er… music)
  51. 51. Options, options, options… Questions ?
  52. 52. Preview of Digital SandBox Temp Sensor Light Sensor Microphone Arduino Push Button LED Array RGB LED Motor / Speaker Out Switch Slider / Potentiometer
  53. 53. 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.
  54. 54. Getting started with Arduino
  55. 55. 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
  56. 56. Data Collection with Vernier
  57. 57. Discount / Promo Code Promo Code: EDUNSTA2013 25% Discount – orders > $30 E-mail: education@sparkfun.com to create an educator account. Twitter: @bri_huang, #sparkfun, #nsta2013
  58. 58. 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
  59. 59. 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
  60. 60. Save your Project • Save early, Save often! • Enumerate your iterations – (e.g. blink_10.adp, blink_11.adp, blink_12.adp…)
  61. 61. 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
  62. 62. Programming Concepts: Using Variables Variables  placeholders / reminder for counting
  63. 63. Using Variables in ArduBlock Numbers/Constants Variable is just a placeholder for a value. This placeholder can be manipulated within the code.
  64. 64. Start by setting a variable called delayTime in the setup
  65. 65. Now… replace the “1000” in each delay with the variable name
  66. 66. Decrement delayTime each loop – using Math Operators
  67. 67. Example: Did you come up with something like this?
  68. 68. What happens when you reach zero? Let’s find out!
  69. 69. Debugging – how can we see what’s going on? Serial Monitor Serial print command Any message “glue” Data
  70. 70. Add this block… so that we can watch the variable value
  71. 71. Upload & Click back to Arduino Open the Serial Monitor
  72. 72. How do we fix / prevent this from happening? Conditional Logic:  If(), If() – else… If this is TRUE… Do this. Otherwise, do this.
  73. 73. Logical Operators Comparisons / Conditionals Greater than Less than Equal to Greater than or equal to Less than or equal to Not equal to
  74. 74. If delayTime <= 0… reset
  75. 75. Advanced… Combinations of inequalities Combine multiple conditions together using or and and Example:
  76. 76. Other than just turning an LED on and off… What else might we want to do / control?
  77. 77. 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.
  78. 78. 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)
  79. 79. Color Mixing with 3 LEDs RGB LED LED PINS RED = 9 GREEN = 11 BLUE = 10 Change either of these values… See what happens!
  80. 80. 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
  81. 81. 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.
  82. 82. Save your Project #2
  83. 83. New Challenge Handling Inputs
  84. 84. A Simple Example DIG INPUT 2 Try this bit of code. What do you think will happen? Test it and write down your observations.
  85. 85. 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)
  86. 86. 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
  87. 87. 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.
  88. 88. Reading the Light Sensor? What is the biggest and smallest value the analog pin will “measure”? [Hint: open your serial monitor to find out!]
  89. 89. 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 ___________.
  90. 90. Save your Project #3 Sensors
  91. 91. Making Music Setting up the Speaker Three simple blocks to play with…
  92. 92. 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.
  93. 93. Musical Notes / Frequencies Note Frequency (Hz) Note Frequency (Hz) C4 C#4/Db4 D4 D#4/Eb4 E4 F4 F#4/Gb4 G4 G#4/Ab4 A4 A#4/Bb4 B4 261 277 293 311 329 349 369 392 415 440 466 493 C5 C#5/Db5 D5 D#5/Eb5 E5 F5 F#5/Gb5 G5 G#5/Ab5 A5 A#5/Bb5 B5 523 554 587 622 659 698 739 783 830 880 932 987
  94. 94. Save your Project #4 Tone
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×