Transcript
Page 1: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Corso di cucina fusion elettro-agile con Arduino

Roma - 19 novembre 2011 Italian agile day–Paolo Aliverti

Page 2: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

1. La spesa

Page 3: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 4: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 5: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 6: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

TInkerIngVerb: attempt to repair or improve something in a casual or desultory way, often to no useful effect.

Page 7: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 8: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 9: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Riparare

Page 10: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Migliorare

Page 11: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Nuovi oggetti

Page 12: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Physical ComputingBuilding interactive physical systems by the use of software and hardware that can sense and respond to the analog world

Page 13: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

esplorare

Page 14: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 15: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Arte

Page 16: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Scienza

Page 17: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 18: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Modelli mentali

Page 19: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 20: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 21: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Elettronica

Page 22: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Acqua!

Page 23: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Prototipi elettronici

Page 24: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 25: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 26: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 27: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

2. cucinare

Page 28: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Spelare fili

Page 29: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 30: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Ingredienti

Page 31: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

+ -

LED

Page 32: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Buttons

Page 33: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Resistori

Page 34: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Strisce colorate

Page 35: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Breadboard

Page 36: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Breadboard

Page 37: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Breadboard

Page 38: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Un microcontrollore

Page 39: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Una community

Page 40: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Tool di sviluppo

Page 41: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 42: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

CosaManca?

Page 43: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Il software!

Page 44: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

La ricetta - Sketch

Page 45: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Struttura dello Sketch

setup

loop

Page 46: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Step 1 – Simplest Timer

Page 47: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

+ -

LED

al pin 13 al pin GND

Page 48: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 49: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Sketch

Page 50: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); delay(5000);

}

Page 51: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

pinMode(13, ); INPUT

OUTPUT

Page 52: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

pinMode(13, OUTPUT);

Page 53: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); delay(5000);

}

Page 54: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 55: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

digitalWrite(13, ); HIGH

LOW

Page 56: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

digitalWrite(13, HIGH);

Page 57: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

digitalWrite(13, LOW);

Page 58: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); delay(5000);

}

Page 59: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

5000 ms = 5s

Page 60: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void loop() { digitalWrite(13, HIGH);

}

Page 61: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Verify

Page 62: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Upload

Page 63: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 64: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 65: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Restart? RESET!

Page 66: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Step 2 – usable Timer

Page 67: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 68: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 69: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Sketch

Page 70: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void setup() { pinMode(13, OUTPUT);

pinMode(7, INPUT); }

Page 71: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

pinMode(7, INPUT);

Page 72: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void loop() { val = digitalRead(7);

if (val == HIGH) { digitalWrite(13, HIGH); delay(5000); } else { digitalWrite(13, LOW); }}

Page 73: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 74: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 75: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Step 3 – variable Timer

Page 76: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

trimmer

Page 77: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 78: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Sketch

Page 79: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void loop() {

t0 = analogRead(A0); …

delay(t0);

}

Page 80: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 81: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 82: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Step 4 – alarm Timer

Page 83: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

PWM – Pulse Width Modulation

Page 84: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

analogWrite(9, [0:255]);

Page 85: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

PWM pins (~)

Page 86: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

tone(pin, freq, len);

Page 87: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 88: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 89: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 90: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 91: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 92: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 93: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

3. Il Pranzo

Page 94: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 95: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

4iterations

Page 96: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

5steps

Page 97: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Ideazione

Page 98: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Preparazione

Page 99: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Verifica

Page 100: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Deploy

Page 101: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Evoluzione

Page 102: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

è una novità?

Page 103: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 104: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Prototipi stabili

Page 105: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Saldare

Page 106: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Prototipi più stabili

Wiring

Page 107: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Circuiti Stampati

Page 108: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Sw+

hw

hw

Page 109: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

SW

HW

Page 110: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Poetics of the unseen

Sunil Vallu

Page 111: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Poetics of the unseen

Sunil Vallu

Page 112: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 113: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

4. le cucine

Page 114: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 115: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 116: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

C

Page 117: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

void setup() { pinMode(13, OUTPUT); }

void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }

Blinking LED

Page 118: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

#include <avr/io.h>#include <util/delay.h>

int main(void){ DDRB = _BV(PB0); for(;;){ PORTB = _BV(PB0); _delay_ms(1000); PORTB = 0; _delay_ms(1000); } return 0;}

Page 119: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Cosa perdo?

Page 120: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Cosa guadagno?

Page 121: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

IDE

Page 122: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

SIMULATORE

Page 123: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

DEBUG

(Gdb)

Page 124: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Unit test

Page 125: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

http://www.nongnu.org/avr-libc/

Page 126: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 127: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Arduino Programmatore

Page 128: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 129: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

AB Normal?

Page 130: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

Dasa cable

Page 131: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 132: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

5. buon appetito!

Page 133: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 134: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Page 135: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

@zeppelinmaker

http://zmaker.wordpress.com

Paolo Aliverti

Page 136: Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino

DOMANDE?


Top Related