italian agile day 2011 - corso di cucina fusion elettro-agile con arduino

136
Corso di cucina fusion elettro-agile con Arduino Roma - 19 novembre 2011 Italian agile day Paolo Aliverti

Upload: paolo-aliverti

Post on 13-May-2015

1.268 views

Category:

Technology


0 download

DESCRIPTION

Prendete una Arduino board, alcune linee di codice, una cucchiaiata di breadboard. Spolverate con dei componenti passivi. Saldate a 200° con buono stagno. Versate in una pentola e mescolate il tutto con metodo Agile. Lasciate raffreddare per pochi secondi. Servite il vostro prototipo elettronico e lasciate di stucco i vostri clienti! Ecco la ricetta per creare rapidamente prototipi elettronici su cui sviluppare i vostri prodotti di successo. Lo sviluppo Agile si puo’ applicare anche all’elettronica senza essere grandi esperti di circuiti. Durante il workshop spiegheremo come costruire un prototipo per dimostrare il nostro approccio in un contesto diverso dal software.

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?