Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf ·...
Transcript of Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf ·...
![Page 1: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/1.jpg)
Computational Crafting with Arduino
Christopher Michaud
Marist School
ECEP Programs, Georgia Tech
![Page 2: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/2.jpg)
Introduction
• What do you want to learn and do today?
• Goals with Arduino / Computational Crafting
![Page 3: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/3.jpg)
Purpose
• Encourage and develop a mindset of iterative interaction between materials and electricity
• Identify difference between Engineering and Art.
![Page 4: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/4.jpg)
STEAM: Science Technology Engineering Arts Mathematics• What is “Engineering”?
• What is “Art”?
![Page 5: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/5.jpg)
Engineering
• Given a problem to solve:
• Using a design process to Analyze, Design, Implement, Test and Deliver a system that solves that specific problem.• Architecture
• Hardware
• Software
• Process
![Page 6: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/6.jpg)
![Page 7: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/7.jpg)
Arts
• Encode non-verbal Human Expression in a dynamic system that humans can reflect on, change, and share.
• Arts are interactive and designed for encoding and sharing non-verbal expressive human thought.• Bennett Reimer: A Philosophy of Music Education
![Page 8: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/8.jpg)
Research and Development
• Lies in that space between Arts and Engineering
• Most education/activities we call “Engineering” for students are actually Research and Development or Arts type activities.• “Explore”• “Create”• “Develop”
• This causes tension between “Engineers” and Artists. (and sometimes within us)
• Example: “Help me fix this problem” and then “Expert” needs to “Research and Develop” before they can engineer a solution . . . (Tech Support )
![Page 9: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/9.jpg)
Where does this apply in Teaching? (and STEAM teaching)• Define the Goal of the Activity!
• Are we . . .• Tinkering with software or tool (Learning a specific set
of skills or software) (Equipping)
• Solving a Specific Problem (Often designed by teacher or curriculum)
• Engaging in Artistic Expressing (or Research and Development)
• Engineering a solution to a problem we defined
• Implementing the Solution!
![Page 10: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/10.jpg)
Example: Music
• Tinkering: • Practicing Scales / Etudes
• Learning Fingerings
• “Noodling”
• Solving Problem: Learning a piece of music somebody else has written.
• Research and Development: Improvising
• Engineering: Composing
• Implementation: Performing for audience
![Page 11: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/11.jpg)
Example: Computer Science
• Tinkering: Playing with Scratch, learning syntax of programming language
• Solving a Problem: Given a problem, develop an algorithm to return the proper values
• Research and Development: Experimenting with programming systems
• Engineering: Working with a customer to define problem and design software system
• Implementation: Writing the code to solve the problem you defined and giving to customer
![Page 12: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/12.jpg)
Student, Artist, or Engineer?
• Each Activity / Lesson / Learning Experience needs to be defined in the context of purpose.
• Keep STEAM relevant in education long after the acronym fades from interest.
![Page 13: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/13.jpg)
Examples of Computational Crafting
![Page 14: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/14.jpg)
Electricity: Just enough knowledge to be dangerous
![Page 15: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/15.jpg)
Elements of Electrical Circuits
+
-
![Page 16: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/16.jpg)
Power Source (Battery, Wall Socket)• Have a positive and negative side (Battery
Example)
• Difference in Charge or Potential Energy
• Measured in • “Volts” (V) or
• “Electro-motive Force” “E”
![Page 17: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/17.jpg)
Resistor
• Light Bulb, Motor, other equipment that resists flow of electrons
• Control the flow of Electrons in a Circuit
• Fixed or Variable
• Measured in “Ohms” or “R”
![Page 18: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/18.jpg)
Current or Amps
• The amount of electrons flowing at a given point in time
• Measured as “I”. Also called “Current”
• One Amp = 1 Coulomb per second.
• A Coulomb is equal to 6.2450962×10^18 electrons
![Page 19: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/19.jpg)
Power
• Unit of Work
• Measured in Watts (W)(P) or Horsepower)
• 1000 watts (1 Kilowatt) = 1.34102209 Horsepower
![Page 20: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/20.jpg)
Algebraic Relationships between Volts(V), Resistance(R), Amps (I), and Watts (P)
![Page 21: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/21.jpg)
A 36 Volt Battery supplies current to a 3 Ohm Resistor. -How many Amps flow through this Circuit?
-In 1 second – how many electrons flow past this point in the circuit?
-What is the Power in Watts produced by this Circuit?
![Page 22: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/22.jpg)
Pin 9 supplies 5 Volts to the LED and the 330 Ohm resistor.
-What is the measurement for Amps in this circuit. (Give answer in milliAmps)
-Show the direction of the flow of Electrons.
![Page 23: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/23.jpg)
Power Supply
20 Amp Fuse
4 Ohms Resistance
900 Watts
A 900 Watt sound system uses drives 4 Ohms of Speakers.
-What is the Voltage and Current for this system at Full Power?
-This system is connected to a 20 Amp fuse. If I increase the Wattage in the system, at what Wattage will push the fuse past 20 Amps? (And “blow the circuit”)
![Page 24: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/24.jpg)
Kirchhoff’s Law
• For any complete Electrical Circuit, the following formulas show the relationship between partial and total volts, resistance, and amps.
• V0 = V1 + V2 + V3
• R0 = R1 + R2 + R3 (In Series)
• A0 = A1 + A2 + A3 (In Parallel)
![Page 25: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/25.jpg)
Coulomb’s Law
• 𝐹 = 𝑘𝑄1𝑄2
𝑟2
• F is the force in Newtons
• Q1 and Q2 are the charges of the two bodies in coulombs
• r is the separation of the two bodies in meters• k is a constant equal to 9 × 109 𝑁𝑚2 ÷ 𝐶2
• (In reality 𝑘 = 8.987552 × 109𝑁𝑚2 ÷ 𝐶2.)
![Page 26: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/26.jpg)
Drift Velocity of Current
Drift Velocity of Current: I = Aenv
• I is the current in amperes and
• A is conductor's cross-sectional Area in square meters
• e is the charge of an electron 1.6 * 10^-19
• n is the number of free electrons / cubic meter of material
• v is the velocity of electron drift
![Page 27: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/27.jpg)
![Page 28: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/28.jpg)
Atmega328 PDIP Chip
![Page 29: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/29.jpg)
Arduino Uno Statistics
![Page 30: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/30.jpg)
![Page 31: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/31.jpg)
![Page 32: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/32.jpg)
Circuit 01 Layout
5V
GND
Pin 9
LED
+ -
330 OhmResistor
![Page 33: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/33.jpg)
Servo Layout
5V
GND
Pin 9
+5 V
Ground
Servo
![Page 34: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/34.jpg)
Arduino in MotionMotors and Servos
Introduction to Robotics and Engineering
![Page 35: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/35.jpg)
Motor or Servo?
Motor
• Faster revolution but less Power
• Speed controlled by varying voltage (Pulse Width Modulation)
• Powered from 5 Volt lead
Servo• Motor combined with
encoder.
• More powerful, but slower
• Two types• Standard: 180 Degree
Rotation• Continuous Rotation
• Three leads:• Signal (from pin)• 5 Volt• Ground
![Page 36: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/36.jpg)
![Page 37: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/37.jpg)
Two Types of Servos
Standard
• Only rotates within a 180 Degree range
• Write Value to Servo –holds the position
• Good for “Armatures”• Hands, Arms
• Holding Devices
Continuous Rotation
• Rotates like a motor –all the way around
• Values written to Servo set “speed”• 0 -> Full
Counterclockwise• 180 -> Full Clockwise
• Good for drive systems• Wheels, Rollers
![Page 38: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/38.jpg)
Single Power Source Setup
![Page 39: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/39.jpg)
External Power Source Servo Setup
![Page 40: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/40.jpg)
Servo CommandsServo Library: Must have this line in the
beginning of each program
#include <Servo.h>
To Create Instance of Servo Object:
(myServo can be any name)
Servo myServo;
To Attach a Servo to a Pin:
myServo.attach(9);
To Start Servo:
myServo.write(0);
![Page 41: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/41.jpg)
Piezo Layout
5V
GND
Pin 13
Piezo
+
![Page 42: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/42.jpg)
Piezo and Potentiometer Layout
5V
GND
Pin 13
Piezo
+
+5 V
Ground
A0
![Page 43: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/43.jpg)
Adruino Piezo and Tone Function
Electronics I
Marist School
![Page 44: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/44.jpg)
![Page 45: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/45.jpg)
![Page 46: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/46.jpg)
tone(pin, frequency, duration)
![Page 47: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/47.jpg)
Use with Arrays
![Page 48: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/48.jpg)
Function with tone and array:
![Page 49: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/49.jpg)
Port Assignments for Pre-Programmed Arduino
• D2: LED On
• D3: LED On
• D4: LED On
• D5: Tone(5, 259)
• D6: LED On / Off 1000 ms
• D7: LED On / Off 1000 ms
• D8: LED On / Off 1000 ms
• D9: LED On / Off 1000 ms
• D10: Servo 180
• D11: Servo 180
• D12: Servo 0
• D13: Servo 0
![Page 50: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/50.jpg)
Build #1: Create a sculpture or device with Pre-Programmed Arduino
• Design Process• Requirements
• Design
• Implementation
• Test
• Download Sample Code to Arduino
![Page 51: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/51.jpg)
Steps to Download Sample Code
• Go to: http://nebomusic.net/arduinolessons/Arduino_Preset.txt
• Copy the text
• Open Arduino Sketch
• Paste the text into an Arduino Sketch document
• Plug in Arduino Uno via USB cable
• Download the Sample Code using the Download icon.
![Page 52: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/52.jpg)
Design Process
• Design: (How will the device by built?) (How will these match with the requirements)
![Page 53: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/53.jpg)
Design Process
• Requirements: (What will the device do?)
![Page 54: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/54.jpg)
Java Programming andSerial Printing with Arduino
Mr. Michaud
Marist School
![Page 55: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/55.jpg)
Serial Communication
• Sends data between devices
• Communication rate is measured in bits per second. Called “Baud”
• Arduino Uno – default is 9600 bits per second.
• 8 bits make a byte
• A byte is one character (Char)
![Page 56: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/56.jpg)
Key Functions
• void setup()• Must be defined
• Runs one time
• Acts like a constructor in Java
• void loop()• Must be defined
• Runs continuously (In a loop . . .)
• Like the act() method in Greenfoot or Gridworld
![Page 57: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/57.jpg)
Serial Functions
• Serial.begin(9600)• Initiates Serial Communication at 9600 Baud
• Called in setup() function
• Serial.println(<string>)• Prints string to console
• Example: Serial.println(“Hello”);
• Serial.println(<number>)• Prints number to console
![Page 58: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/58.jpg)
Example Code
![Page 59: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/59.jpg)
Data Types and Variables
![Page 60: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/60.jpg)
Operators
![Page 61: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/61.jpg)
Declaring Variables and Arrays
Variables:
int myAge = 14; // Integer
float angle = 2*PI; // Float
String name = “Mr. Michaud”;
Arrays:
int pins [] = {3, 4, 5, 6};
String gospels [] = {“Matthew”, “Mark”, “Luke”, “John”};
![Page 62: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/62.jpg)
For Loop
• Repeats section of code while counting up or down with an index variable
• Example
for (int i = 0; i < 10; i++) {
Serial.println(i);
}
Returns:0123456789
![Page 63: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/63.jpg)
for (int i = 0; i < 10; i++) {}
• i++ means "i = i + 1"
• int i means "integer i"
• for (int i = 0; i < 10; i++) means "For index variable istarting at 0, while i is less than 10, count be 1."
![Page 64: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/64.jpg)
Combined For Loop and Array
![Page 65: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/65.jpg)
Conditional Statements
• ‘if statement’: Checks if a given statement or expression is true and then executes a section of code
if (score > 9) {
Serial.println(“You Win”);
}
![Page 66: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/66.jpg)
While Loop
• Executes a Segment of Code while a Condition is True
![Page 67: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/67.jpg)
References
• Key Vocabulary: (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html)
• Another Good Reference: http://processing.org/reference/
![Page 68: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/68.jpg)
Arduino Key FunctionsLED Blink Projects
![Page 69: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/69.jpg)
Pin Output Control and Timing
• pinMode(pin, Mode)
pinMode(3, OUTPUT);
• digitalWrite(pin, State)
digitalWrite(3, HIGH);
digitalWrite(3, LOW);
• delay(milliseconds)
delay(1000);
![Page 70: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/70.jpg)
Program Control
• Two Key Functions in all Arduino Programs:
![Page 71: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/71.jpg)
Sample Program
Declare and set variables pointing to pins.
setup() sets the pin mode to output –send signals.
loop() repeats turning on, then off the lights at ½ second intervals
![Page 72: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/72.jpg)
For Loop
• Used to repeat a set of commands
for (int i = 0; i < 8; i++) {
// repeated commands
}
Means:
“Set i to zero. While i is less than 8, add 1 to i.”
This sequence will loop 8 times:
“0, 1, 2, 3, 4, 5, 6, 7”
![Page 73: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/73.jpg)
Example:
![Page 74: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/74.jpg)
Adruino Piezo and Tone Function
Electronics I
Marist School
![Page 75: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/75.jpg)
![Page 76: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/76.jpg)
![Page 77: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/77.jpg)
tone(pin, frequency, duration)
![Page 78: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/78.jpg)
Use with Arrays
![Page 79: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/79.jpg)
Function with tone and array:
![Page 80: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/80.jpg)
Pitch Chart:
![Page 81: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/81.jpg)
Single Power Source Setup
![Page 82: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/82.jpg)
External Power Source Servo Setup
![Page 83: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/83.jpg)
Servo CommandsServo Library: Must have this line in the
beginning of each program
#include <Servo.h>
To Create Instance of Servo Object:
(myServo can be any name)
Servo myServo;
To Attach a Servo to a Pin:
myServo.attach(9);
To Start Servo:
myServo.write(0);
![Page 84: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/84.jpg)
Programming: Input
• Principle: Take incoming electrical current and vary the resistance to get different voltage levels.
• Arduino reads these different voltage levels in the Analog pins and assigns a number ranged from 0 to 1023 for voltage level.
• Map the incoming voltage (0-1023) to a function or algorithm to invoke action.
![Page 85: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/85.jpg)
![Page 86: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/86.jpg)
![Page 87: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/87.jpg)
Sensors and Arduino
• Sensor Value is read through Analog input pins A0, A1, A2, A3, A4, and A5
• Value is taken as input of 0 to 5 volts and converted to a 10 bit depth number. (0 to 1024).
• analogRead(pinNumber) function will return to the program an integer between 0 and 1024.
• Sensors work by varying resistance in the circuit, resulting in a varying the voltage sent to the Analog input pins.
![Page 88: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/88.jpg)
Piezo and Potentiometer Layout
5V
GND
Pin 13
Piezo
+
+5 V
Ground
A0
![Page 89: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/89.jpg)
![Page 90: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/90.jpg)
![Page 91: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/91.jpg)
![Page 92: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/92.jpg)
![Page 93: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/93.jpg)
Pushbutton Sensor: Analog Mode
![Page 94: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/94.jpg)
Pushbutton Sensor: Digital Mode
![Page 95: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/95.jpg)
![Page 96: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/96.jpg)
![Page 97: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/97.jpg)
Microphone
![Page 98: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/98.jpg)
Build #2: Design a sculpture / device with your own programming
• Design Process:• Requirements
• Design
• Implementation
• Test
![Page 99: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/99.jpg)
Design Process
• Design: (How will the device by built?) (How will these match with the requirements)
![Page 100: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/100.jpg)
Design Process
• Requirements: (What will the device do?)
![Page 101: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/101.jpg)
Tools: Fritzing: Layout and Schematic diagrams for circuits
![Page 102: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,](https://reader033.fdocuments.us/reader033/viewer/2022041423/5e2048f1b210814de658c0a1/html5/thumbnails/102.jpg)
Other Arduino Applications
• Sound: Minim
• Computer Vision with Processing
• Arduino as extension of PC using Processing (motor controller)