introduction to arduino - concordia universityslab.concordia.ca/.../09/cart360_intro_arduino.pdf ·...

65
INTRODUCTION TO ARDUINO TANGIBLE MEDIA & PHYSICAL COMPUTING

Upload: others

Post on 12-Jun-2020

21 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

INTRODUCTION TO ARDUINO

TANGIBLE MEDIA & PHYSICAL COMPUTING

Page 2: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO HARDWARETHE IDE & SETUP BASIC PROGRAMMING CONCEPTS DEBUGGING & HELLO WORLD INPUTS AND OUTPUTS DEMOS

AGENDA

Page 3: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO HISTORYIN 2003 HERNANDO BARRAGÁN CREATED THE DEVELOPMENT PLATFORM WIRING AS A MASTER'S THESIS PROJECT AT IDII, UNDER THE SUPERVISION OF MASSIMO BANZI AND CASEY REAS, KNOWN FOR THEIR WORK ON THE PROCESSING LANGUAGE.

GOAL: CREATE SIMPLE, LOW COST TOOLS FOR CREATING DIGITAL PROJECTS BY NON ENGINEERS.

WIRING CONSISTED OF A PCB WITH AN ATMEGA 168 MICRO CONTROLLER, AN IDE BASED ON PROCESSING AND LIBRARY FUNCTIONS TO PROGRAM THE CONTROLLER EASILY.

IN 2005, MASSIMO BANZI, DAVID MELLIS AND DAVID CUARTIELLES, ADDED SUPPORT FOR THE CHEAPER ATMEGA8 MICROCONTROLLER TO WIRING. THEY FORKED THE WIRING SOURCE CODE AND STARTED RUNNING IT AS A SEPARATE PROJECT, CALLED ARDUINO.

Page 4: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

WHAT IS AN ARDUINO TODAY?“ARDUINO IS AN OPEN-SOURCE ELECTRONICS PROTOTYPING PLATFORM BASED ON FLEXIBLE, EASY-TO-USE HARDWARE AND SOFTWARE.

IT IS INTENDED FOR ARTISTS, DESIGNERS, HOBBYISTS, AND ANYONE INTERESTED IN CREATING INTERACTIVE OBJECTS OR ENVIRONMENTS.” THE PREMIER RESOURCE FOR ANYTHING ARDUINO - THE HOME OF THE ORIGINAL DOCUMENTATION FOR THE IDE, BUNDLED LIBRARIES, AND THE HARDWARE: HTTPS://WWW.ARDUINO.CC/

Page 6: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO BOARDS** DRAFTARDUINO MAKES SEVERAL DIFFERENT BOARDS, EACH WITH DIFFERENT CAPABILITIES.A FEW OPTIONS THAT ARE WELL-SUITED TO SOMEONE NEW TO THE WORLD OF ARDUINO:

UNO R3 LILYPAD ARDUINO ARDUINO MEGA R3ARDUNIO LEONARDO

3RD PARTY MANUFACTURERS CERTIFIED BY ARDUINO

Page 7: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO SPECS

ATMEL ATMEGA328P 8-BIT MICROCONTROLLER

32KB OF FLASH MEMORY FOR APPLICATION PROGRAMS, 2KB OF SRAM

1KB OF EEPROM FOR NON-VOLATILE DATA. THE CLOCK SPEED IS 16MHZ.

Page 8: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

1 & 2 : POWER (USB /BARREL JACK)

Page 9: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

3&4&5 : PINS: 5V, 3.3V, GND

Page 10: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

6 : PINS: ANALOG

Page 11: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

7 & 8 : PINS: DIGITAL

Page 12: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

9 : PINS: AREF

Page 13: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

10 : RESET BUTTON

Page 14: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

11 : POWER LED INDICATOR

Page 15: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

12 : TX & RX LEDS

Page 16: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

13 : MAIN IC

Page 17: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO UNO

14 : VOLTAGE REGULATOR

Page 18: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO HARDWARETHE IDE & SETUP BASIC PROGRAMMING CONCEPTS INPUTS AND OUTPUTS DEMOS

AGENDA

Page 19: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DOWNLOAD & SETUP

PREREQUISITES: LATEST JAVA SDK ( SHOULD BE PRE-INSTALLED)

DOWNLOAD: HTTPS://WWW.ARDUINO.CC/EN/MAIN/SOFTWARE FOLLOW THE INSTALLATION GUIDE (FOR YOUR OS): HTTPS://WWW.ARDUINO.CC/EN/GUIDE/HOMEPAGE

Page 20: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

THE IDE

Page 21: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

LET’S UPLOAD!

PLUG YOUR ARDUINO INTO YOUR COMPUTER VIA THE USB CABLE

SELECT THE CORRECT BOARD : (TOOLS> BOARDS)

SELECT THE SERIAL/COM PORT: (TOOLS > PORT)

OPEN THE BLINK EXAMPLE SKETCH BY GOING TO: FILE > EXAMPLES > 1.BASICS > BLINK

Page 22: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

LET’S UPLOAD!WITH YOUR ARDUINO BOARD CONNECTED, AND THE BLINK SKETCH OPEN, PRESS THE ‘UPLOAD’ BUTTON.

AFTER A SECOND, YOU SHOULD SEE SOME LEDS FLASHING ON YOUR ARDUINO, FOLLOWED BY THE MESSAGE ‘DONE UPLOADING’ IN THE STATUS BAR OF THE BLINK SKETCH.

IF EVERYTHING WORKED, THE ONBOARD LED ON YOUR ARDUINO SHOULD NOW BE BLINKING! YOU JUST PROGRAMMED YOUR FIRST ARDUINO!

Page 23: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

LIBRARIESUNDER FILE > EXAMPLES, YOU WILL ALREADY FIND SOME USEFUL LIBRARIES WITH EXAMPLE SKETCHES( EEPROM, SOFTWARE SERIAL …)

YOU CAN ALSO FIND A LIST WITH NAMES AND DESCRIPTIONS OF ALL THE LIBRARIES CURRENTLY INSTALLED IN YOUR IDE.

GO TO SKETCH> INCLUDE LIBRARY >MANAGE LIBRARIES, AND THE LIBRARY MANAGER WILL POP UP, ALLOWING YOU TO VIEW AND INSTALL NEW LIBRARIES EASILY

Page 24: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO HARDWARETHE IDE & SETUP BASIC PROGRAMMING CONCEPTS INPUTS AND OUTPUTS DEMOS

AGENDA

Page 25: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

THE ARDUINO LANGUAGEEVENTHOUGH THE ARDUINO LANGUAGE IS C++, MOST OF THE TIME YOU WILL BE PROGRAMMING PROCEDURALLY USING C, A SUBSET OF C++.

THOSE WITH A FAMILIARITY WITH JAVA WILL NOT FIND PROGRAMMING FOR THE ARDUINO HARD.

C++ IS OBJECT ORIENTED - AND EXTERNAL LIBRARIES ARE WRITTEN USING THIS PARADIGM.

YOU NEED TO UNDERSTAND HOW TO INSTANTIATE OBJECTS FROM THESE LIBRARIES AND INVOKE THEIR METHODS.

YOU WILL PROBABLY NOT HAVE TO CREATE YOUR OWN CLASS DEFINITIONS FROM SCRATCH - RATHER WE WILL FOCUS ON PROGRAM FLOW, FUNCTIONS AND OPTIMIZATION STRATEGIES.

Page 26: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

COMPILATIONYOU WRITE CODE IN THE ARDUINO IDE.

YOUR SKETCH IS COMPILED INTO MACHINE CODE, WHICH THE MICRO CONTROLLER UNDERSTANDS.

WE NEED A COMPILER TO SUPPORT THIS PROCESS: LUCKILY ARDUINO COMES WITH OPEN SOURCE C++ COMPILERS.

WHEN YOU PRESS “UPLOAD”, THE IDE AUTOMATICALLY STARTS THE COMPILER , COMPILES THE CODE AND SENDS IT TO THE MICRO CONTROLLER VIA USB CABLE.

Page 27: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

BASIC PROGRAMMING CONCEPTS

AS EVERY USEFUL PROGRAMMING LANGUAGE, C++ IS MADE UP OF VARIOUS KEYWORDS AND CONSTRUCTS.

THERE ARE CONDITIONALS, FUNCTIONS, OPERATORS, VARIABLES, CONSTRUCTORS, DATA STRUCTURES, AND MANY OTHER THINGS.

Page 28: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

STRUCTURE OF A SKETCH:

VOID SETUP(){ /*PUT YOUR SETUP CODE HERE */} THIS FUNCTION IS EXECUTED ONCE (WHEN PROGRAM STARTS)

VOID LOOP(){/*MAIN CODE HERE */} THIS FUNCTION IS EXECUTED REPEATEDLY UNTIL YOU RESET OR CUT POWER.

THESE FUNCTIONS MUST EXIST IN ORDER FOR THE PROGRAM TO COMPILE CORRECTLY.

Page 29: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

FUNCTIONSPLEASE WRITE CUSTOM FUNCTIONS TO KEEP YOUR CODE ORGANIZED AND MODULAR!

FUNCTION DEF EX: int sumFunction (int a, int b) { int c = a + b; return c;}

FUNCTION CALL: void loop(){… int res = sumFunction(5,6); …}

Page 30: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

VARIABLESPROGRAMS ARE MOST USEFUL WHEN THEY PROCESS DATA: FROM USER, SENSOR, NETWORK, LOCAL FILE SYSTEM, LOCAL MEMORY …

WE MUST STORE THIS DATA IN MEMORY - SO THAT THE EXECUTING PROGRAM CAN PERFORM STANDARD OPERATIONS ON THE DATA: WRITE, READ, MODIFY AND USE.

A VARIABLE: ASSOCIATES A MEMORY LOCATION WITH A NAME. PLEASE USE MEANINGFUL NAMES AND START WITH THEM WIT A LOWERCASE LETTER.

Page 31: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

STANDARD DATATYPES FOR UNOA VARIABLE MUST HAVE A DATATYPE: boolean 1 byte true/falsechar 1 byte -127 to 127 (ASCII)unsigned char 1 byte 0 to 255 (ASCII)byte 1 byte 0 to 255int/short 2 bytes -32768 to 32767unsigned int 2 bytes 0 to 65535long 4 bytes -2*31 to 2*31 -1unsigned long 4 bytes 0 to 2*32 -1float 4 bytes 6-7 decimals of precision (total)

Page 32: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

VARIABLE SCOPEint valA;int valB =6; void setup(){ int valA = 4;} void loop(){ int res = sumFunction(valA,valB);}

int sumFunction (int a, int b) { int valA = a + b; return valA;}

Page 33: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

CONSTANTSSOME INBUILT CONSTANTS FOR UNO:

HIGH (INPUT): A VOLTAGE GREATER THAN 3.0V IS PRESENT AT THE PIN

HIGH (OUTPUT): 5V SIGNAL IS OUTPUT

LOW (INPUT): A VOLTAGE LESS THAN 1.5V IS PRESENT AT THE PIN

LOW(OUTPUT): 0V SIGNAL IS OUTPUT

Page 34: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

CONSTANTSSOME INBUILT CONSTANTS FOR UNO CONT:

A DIGITAL PIN IS CONFIGURED AS AN INPUT OR OUTPUT USING THE PINMODE() FUNCTION.

USE THE KEYWORD INPUT, OUTPUT, OR INPUT_PULLUP AS A PARAMETER TO THIS FUNCTION, DEPENDING ON YOUR INTENTIONS

TRUE: ANY INTEGER (BOOLEAN SENSE) THAT IS NOT 0.

FALSE: 0.

Page 35: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

CONSTANTSDEFINE YOUR OWN:

#DEFINE: GIVE A CONSTANT A NAME BEFORE COMPILING:

#define <NAME> <value> CONST: MAKES A VARIABLE READ-ONLY

const <datatype> <NAME> = <value>;

GOOD PRACTICE: CAPITALIZE CONSTANTS

Page 36: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

OPERATORSARDUINO SUPPORTS UNARY AND BINARY OPERATIONS:

Arithmetic: + , - , * , / , % Compound: += ,-= ,*= , /= Inc & Dec: ++ , - - Comparison: == , != , < , > , ≥ ,≤ Logical: ! , && , || Bitwise: << , >> , | , &,^

Page 37: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

CONDITIONAL STATEMENTSif ( boolean expr is true ){ /*perform instructions in this clause*/ } else if ( another boolean expr is true ) { /* perform instructions in this clause*/} else { /*previous statements were false*/}

Page 38: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

SWITCH CASE1: TESTVAL IS THE VARIABLE THAT WE TEST WITH 2: EXECUTE CORRESPONDING SWITCH STATEMENT 3: “BREAK”: JUMP OUT OF THE SWITCH CONSTRUCT 4: “DEFAULT”: IF NO OTHER CASE IS MATCHED switch ( testVal ) { case 1: { // do this; … break; } case 2: { // do this; … break; } case n: { //do this; … break; } default: { // no other cases were true; }}

Page 39: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

FOR LOOP1: COUNTER START 2: TERMINATING CONDITION 3: HOW MUCH TO CHANGE COUNTER EACH TIME

for ( int i = 0; i < max ; i++ ) { /* do whatever repeatedly until counter(here: var named i) reaches max. */}

Page 40: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

WHILE LOOP1: COME UP WITH BOOLEAN EXPRESSION 2: STATEMENTS INSIDE WHILE CLAUSE WILL EXECUTE UNTIL BOOLEAN EXPRESSION IS FALSE 3: MAY NOT EVEN EXECUTE ONCE 4: BEWARE OF INFINITE LOOPS

while ( boolean expression is true ){ /* do whatever repeatedly until boolean expression is false */}

Page 41: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DO WHILE LOOP1: COME UP WITH BOOLEAN EXPRESSION 2: STATEMENTS INSIDE WHILE CLAUSE WILL EXECUTE UNTIL BOOLEAN EXPRESSION IS FALSE 3: WILL EXECUTE AT LEAST ONCE 4: BEWARE OF INFINITE LOOPS do{ /* do whatever repeatedly until boolean expression is false */}while ( boolean expression is true )

Page 42: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARRAYSA COLLECTION OF VARIABLES (ALL OF THE SAME DATATYPE) THAT ARE ACCESSED WITH AN INDEX NUMBER. int numbers[6];int myPins[] = {2, 4, 8, 3, 6};int mySensVals[6] = {2, 4, -8, 3, 2};char message[6] = “hello”;

1; DECLARE AN ARRAY WITHOUT INITIALIZING IT 2: INITIALIZE AN ARRAY WITHOUT SPECIFYING A SIZE 3: SPECIFY SIZE AND INITIALIZE AN ARRAY 4: WHEN DECLARING AN ARRAY OF TYPE CHAR: SIZE == N+1, TO HOLD THE REQUIRED NULL CHARACTER.

Page 43: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ACCESSING ARRAY ELEMENTSTHE FIRST ELEMENT OF THE ARRAY IS AT INDEX 0, AND THE LAST ELEMENT IS ACCESSED BY ARRAYSIZE-1: int testArray[ 10 ] = { 9,3,2,4,3,2,7,8,9,11 };// testArray [ 0 ] contains 9// testArray [ 9 ] contains 11// testArray [ 10 ] is invalid and containsrandom information (other memory address)

ASSIGN AND RETRIEVE: testArray [ 0 ] = 10; int test = testArray [ 3 ];

Page 44: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARRAYS :: SIZEOF()THE SIZEOF OPERATOR RETURNS THE NUMBER OF BYTES IN A VARIABLE TYPE, OR THE NUMBER OF BYTES OCCUPIED BY AN ARRAY.

SINGLE VAR USAGE: int test = 10;sizeof ( test ) returns 2.

USE TO DETERMINE SIZE OF A GIVEN DATATYPE sizeof ( int ) returns 2.

Page 45: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARRAYS :: SIZEOF() AND ITERATIONTO DETERMINE ARRAY SIZE, IT DEPENDS ON THE DATATYPES OF ELEMENTS STORED IN THE ARRAY: int testInts [ ] = { 1,2,3,4,5,6 }; int arraySize = sizeof(testInts )/sizeof(int); arraySize == 6

ITERATE THROUGH AN ARRAY: for (int i = 0; i<sizeof(testInts)/sizeof(int); i++){ // do something with testInt[i] …;}

Page 46: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO HARDWARETHE IDE & SETUP BASIC PROGRAMMING CONCEPTS INPUTS AND OUTPUTS DEMOS

AGENDA

Page 47: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ANALOG AND DIGITAL SIGNALSWE LIVE IN AN ANALOG WORLD: ANALOG SIGNALS HAVE INFINITE POSSIBILITIES DIGITAL SIGNALS AND OBJECTS DEAL IN THE REALM OF THE DISCRETE OR FINITE, MEANING THERE IS A LIMITED SET OF VALUES THEY CAN BE. WORKING WITH ELECTRONICS MEANS DEALING WITH BOTH ANALOG AND DIGITAL SIGNALS, INPUTS AND OUTPUTS. OUR ELECTRONICS PROJECTS HAVE TO INTERACT WITH THE REAL, ANALOG WORLD IN SOME WAY, BUT MOST MICROPROCESSORS, COMPUTERS, AND LOGIC UNITS ARE PURELY DIGITAL COMPONENTS. THESE TWO TYPES OF SIGNALS ARE LIKE DIFFERENT ELECTRONIC LANGUA GES, SOME COMPONENTS UNDERSTAND BOTH, OTHERS JUST ONE.

Page 48: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ANALOG AND DIGITAL SIGNALS

AN ELECTRONIC SIGNAL: A VOLTAGE THAT CHANGES OVER A GIVEN TIME PERIOD, & IS PASSED BETWEEN DEVICES IN ORDER TO SEND AND RECEIVE INFORMATION

TRANSMISSION MEDIUM: WIRE OR BY AIR THROUGH RADIO FREQUENCY

Page 49: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ANALOG SIGNALS

A TIME-VERSUS-VOLTAGE GRAPH OF AN ANALOG SIGNAL SHOULD BE SMOOTH AND CONTINUOUS.

Page 50: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DIGITAL SIGNALS

MOST COMMON DIGITAL SIGNALS WILL BE ONE OF TWO VALUES – LIKE EITHER 0V OR 5V. TIMING GRAPHS OF THESE SIGNALS LOOK LIKE SQUARE WAVES. DIGITAL WAVES ARE STEPPING, SQUARE, AND DISCRETE.

Page 51: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ANALOG AND DIGITAL SIGNALSMICROCONTROLLERS: ARE CAPABLE OF DETECTING BINARY SIGNALS, WHICH ARE INHERENTLY DIGITAL: FOR EXAMPLE IF MIICROCONTROLLER IS POWERED FROM 5V: 0V = BINARY 0 &5V = BINARY 1

WORLD: MORE COMPLEX: WHAT IF THE SIGNAL IS 2.72V? IS THAT A 0 OR A 1? WHEN READING AN ANALOG SENSOR, WE NEED TO MEASURE SIGNALS THAT VARY: (ANALOG SIGNALS) - HOW?

SOLUTION: MOST MICROCONTROLLERS HAVE AN ADC: A DEVICE TO CONVERT THESE VOLTAGES INTO VALUES THAT THE MICROCONTROLLER CAN WORK WITH (DISCRETE VALUES)

BY CONVERTING FROM THE ANALOG WORLD TO THE DIGITAL WORLD, WE CAN BEGIN TO USE ELECTRONICS TO INTERFACE TO THE ANALOG WORLD AROUND US.

Page 52: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DIGITAL I/ODIGITAL PINS: 0 TO 13 ON THE ARDUINO UNO READ THE STATE OF BUTTONS, SWITCHES… WRITE (CHANGE THE STATE) OF LEDS, TRANSISTORS… THE PIN CAN BE IN TWO POSSIBLE STATES : HIGH /LOW.

TO CONFIGURE A SPECIFIED PIN TO BEHAVE EITHER AS AN INPUT OR AN OUTPUT:

pinMode ( pin, mode );pin: the number (int) of the pin to setmode: INPUT, OUTPUT, INPUT_PULLUP

Page 53: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DIGITAL I/O: READdigitalRead ( pin );pin: the number (int) of the pin to readreturns HIGH or LOW.

EXAMPLE: #define BUTTON_PIN 2;void setup() { pinMode(BUTTON_PIN, OUTPUT); }

void loop() { int val = digitalRead(BUTTON_PIN); }

Page 54: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DIGITAL I/O: WRITEdigitalWrite ( pin, value );pin: the number (int) of the pin to readvalue: HIGH or LOW.

EXAMPLE: #define LED_PIN 7;void setup() { pinMode(LED_PIN, INPUT); }

void loop() { digitalWrite(LED_PIN,HIGH); }

Page 55: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ANALOG I/O: READANALOG PINS: A0 TO A5 ON THE ARDUINO UNO 10-BIT ANALOG TO DIGITAL CONVERTER: MAP INPUT VOLTAGES BETWEEN 0-5 VOLTS TO 0-1023 analogRead ( pin );pin: the number (int) of the pin to readreturns an int between 0 and 1023.

EXAMPLE: void loop() { int val = analogRead(A0); }

Page 56: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ANALOG I/O: WRITINGUSE DIGITAL PINS LABELED WITH ~ analogWrite ( pin, value );pin: the number (int) of the pin to readvalue: between 0 (always off) & 255 (always on)

EXAMPLE: void loop() { int val = analogRead(A0); //0 to 1023 analogWrite( 3, val/4); //0 to 255}

Page 57: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

ARDUINO HARDWARETHE IDE & SETUP BASIC PROGRAMMING CONCEPTS INPUTS AND OUTPUTS DEMOS

AGENDA

Page 58: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DEMO 1: DIGITAL OUTBLINK LED

Page 59: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DEMO 2: DIGITAL IN /OUTBLINK LED ONLY WHEN BUTTON PRESSED 2A: USE BUTTON TO TURN LED ON AND AGAIN OFF

Page 60: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DEMO 3: DIGITAL OUT /ANALOG INCHANGE DELAY OF BLINKING LED ACCORDING TO POT VALUE

Page 61: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

USE A POT TO ALTER VALUE OF AN LED ****PLEASE CHANGE LED TO PIN 11 *****

DEMO 4: PWM OUT /ANALOG IN

Page 62: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DEMO 4A & B: DIGITAL IN / PWM OUT4A: USE A BUTTON AS TRIGGER TO FADE AN LED W/ LOOP 4B: USE A BUTTON AS TRIGGER TO FADE AN LED W/O LOOP

Page 63: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DEMO 5: RGB LED COLOR MIXING INTRO -> MULTIPLE ANALOG OUT

Page 64: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DEMO 6: SOUND TONE EXERCISE - MAPPING VALUES TO A SPEAKER

Page 65: INTRODUCTION TO ARDUINO - Concordia Universityslab.concordia.ca/.../09/CART360_INTRO_ARDUINO.pdf · introduction to arduino tangible media & physical computing. ... eventhough the

DEMO 6: SOUND IITHE ETUDE