• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introduction to Arduino with ArduBlock & SparkFun LilyPad
 

Introduction to Arduino with ArduBlock & SparkFun LilyPad

on

  • 2,116 views

Powerpoint Slides for using ArduBlock and the SparkFun Lilypad Protosnap Development board. This is a slide deck used on the SparkFun National Tour

Powerpoint Slides for using ArduBlock and the SparkFun Lilypad Protosnap Development board. This is a slide deck used on the SparkFun National Tour

Statistics

Views

Total Views
2,116
Views on SlideShare
2,116
Embed Views
0

Actions

Likes
1
Downloads
43
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introduction to Arduino with ArduBlock & SparkFun LilyPad Introduction to Arduino with ArduBlock & SparkFun LilyPad Presentation Transcript

    • 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/
    • 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
    • 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
    • What is all this stuff??? Components Buzzer / Speaker Light Sensor Temp. Sensor the Brain ATmega328 (16 MHz clock)
    • 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 – /dev/tty.usbserial-A####xXx
    • Tools  Board Setup Board
    • Tools  Serial Port Setup COM Port PC – Highest COM # Mac – /dev/tty.usbserial- A####xxx
    • Other Board Types
    • Tools  ArduBlock Load ArduBlock
    • Programming Area Zoomed out View Programming Blocks Palate
    • What is ArduBlock? • Graphical Introduction to Programming • Scratch-like interface • Clear transition to text-based coding • Generates real Arduino code in the background.
    • 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.
    • Block Organization Control Manipulating or modifying the program flow or behavior.
    • 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
    • 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?
    • Click back to the Arduino window to check for status messages
    • What do you see? LED on pin #13
    • What about turning the LED off? Click to change the HIGH to a LOW
    • 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
    • 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…
    • Example
    • What other LEDs can we play with? 16 18 17
    • 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
    • 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
    • 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 faster? What part do we need to be able to change? constant
    • Programming Concepts: Using Variables Variable Types: 8 bits 16 bits 32 bits byte char int unsigned int long unsigned long float
    • Using Variables in ArduBlock Numbers/Constants Variable is just a placeholder for a value. This placeholder can be manipulated within the code.
    • 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? If this is TRUE… Do this. Otherwise, do this. Conditional Logic:  If(), If() – else…
    • Logical Operators Comparisons / Conditionals Greater than Less than Equal to Greater than or equal to Less than or equal to Not equal to
    • 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?
    • 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.
    • 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
    • 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!
    • 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
    • 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.
    • Save your Project #2
    • New Challenge Handling Inputs
    • A Simple Example Try this bit of code. What do you think will happen? Test it and write down your observations. DIG INPUT 2
    • 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
    • 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
    • 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.
    • Reading the Light Sensor? What is the biggest and smallest value the analog pin will “measure”? [Hint: open your serial monitor to find out!]
    • 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 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: 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.
    • Musical Notes / Frequencies Note Frequency (Hz) C4 261 C# 4/Db 4 277 D4 293 D# 4/Eb 4 311 E4 329 F4 349 F# 4/Gb 4 369 G4 392 G# 4/Ab 4 415 A4 440 A# 4/Bb 4 466 B4 493 Note Frequency (Hz) C5 523 C# 5/Db 5 554 D5 587 D# 5/Eb 5 622 E5 659 F5 698 F# 5/Gb 5 739 G5 783 G# 5/Ab 5 830 A5 880 A# 5/Bb 5 932 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: https://learn.sparkfun.com/tutorials
    • Questions?
    • 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?
    • www.sparkfun.com 6175 Longbow Drive, Suite 200 Boulder, Colorado 80301