NSTA 2013 Denver - ArduBlock and Arduino


Published on

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

Published in: Technology
  • Be the first to comment

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