computational crafting with arduino - nebomusicnebomusic.net/arduinoworkshoppresentation.pdf ·...

102
Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs, Georgia Tech

Upload: others

Post on 03-Nov-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,

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,
Page 7: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,

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,

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,

Examples of Computational Crafting

Page 14: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

Elements of Electrical Circuits

+

-

Page 16: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,
Page 28: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Atmega328 PDIP Chip

Page 29: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Arduino Uno Statistics

Page 30: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 31: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 32: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,
Page 37: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

Single Power Source Setup

Page 39: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,

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,
Page 45: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 46: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

tone(pin, frequency, duration)

Page 47: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Use with Arrays

Page 48: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Example Code

Page 59: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Data Types and Variables

Page 60: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Operators

Page 61: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Example:

Page 74: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,
Page 76: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 77: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

tone(pin, frequency, duration)

Page 78: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Use with Arrays

Page 79: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

Pitch Chart:

Page 81: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Single Power Source Setup

Page 82: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,
Page 86: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 87: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,
Page 90: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 91: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 92: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 93: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Pushbutton Sensor: Analog Mode

Page 94: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Pushbutton Sensor: Digital Mode

Page 95: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 96: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,
Page 97: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

Microphone

Page 98: Computational Crafting with Arduino - NeboMusicnebomusic.net/ArduinoWorkshopPresentation.pdf · Computational Crafting with Arduino Christopher Michaud Marist School ECEP Programs,

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,

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,

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,

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,

Other Arduino Applications

• Sound: Minim

• Computer Vision with Processing

• Arduino as extension of PC using Processing (motor controller)