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

Post on 13-May-2015

1266 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

Corso di cucina fusion elettro-agile con Arduino

Roma - 19 novembre 2011 Italian agile day–Paolo Aliverti

1. La spesa

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

Riparare

Migliorare

Nuovi oggetti

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

esplorare

Arte

Scienza

Modelli mentali

Elettronica

Acqua!

Prototipi elettronici

2. cucinare

Spelare fili

Ingredienti

+ -

LED

Buttons

Resistori

Strisce colorate

Breadboard

Breadboard

Breadboard

Un microcontrollore

Una community

Tool di sviluppo

CosaManca?

Il software!

La ricetta - Sketch

Struttura dello Sketch

setup

loop

Step 1 – Simplest Timer

+ -

LED

al pin 13 al pin GND

Sketch

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

}

pinMode(13, ); INPUT

OUTPUT

pinMode(13, OUTPUT);

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

}

digitalWrite(13, ); HIGH

LOW

digitalWrite(13, HIGH);

digitalWrite(13, LOW);

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

}

5000 ms = 5s

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

}

Verify

Upload

Restart? RESET!

Step 2 – usable Timer

Sketch

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

pinMode(7, INPUT); }

pinMode(7, INPUT);

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

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

Step 3 – variable Timer

trimmer

Sketch

void loop() {

t0 = analogRead(A0); …

delay(t0);

}

Step 4 – alarm Timer

PWM – Pulse Width Modulation

analogWrite(9, [0:255]);

PWM pins (~)

tone(pin, freq, len);

3. Il Pranzo

4iterations

5steps

Ideazione

Preparazione

Verifica

Deploy

Evoluzione

è una novità?

Prototipi stabili

Saldare

Prototipi più stabili

Wiring

Circuiti Stampati

Sw+

hw

hw

SW

HW

Poetics of the unseen

Sunil Vallu

Poetics of the unseen

Sunil Vallu

4. le cucine

C

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

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

Blinking LED

#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;}

Cosa perdo?

Cosa guadagno?

IDE

SIMULATORE

DEBUG

(Gdb)

Unit test

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

Arduino Programmatore

AB Normal?

Dasa cable

5. buon appetito!

@zeppelinmaker

http://zmaker.wordpress.com

Paolo Aliverti

DOMANDE?

top related