SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Riccardo Lemmi
Open hardware:
Arduino, un prodotto italiano.
Riccardo Lemmi
Open Hardware
Open source hardware is hardware whose design is made publicly available
so that anyone can study, modify, distribute, make and sell the design or
hardware based on that design.
The hardware’s source, the design from which it is made, is available in the
preferred format for making modifications to it.
Ideally, open source hardware uses readily-available components and
materials, standard processes, open infrastructure, unrestricted content, and
open-source design tools to maximize the ability of individuals to make and
use hardware.
Open source hardware gives people the freedom to control their technology
while sharing knowledge and encouraging commerce through the open
exchange of designs.
Riccardo Lemmi
Open Hardware
● Il design è disponibile pubblicamente
● Il design può essere studiato, modificato, distribuito,
costruito e venduto
● Il design è disponibile in un formato che ne permette la
modifica
● Il design dovrebbe basarsi su componenti e materiali facili
da trovare, non sottoposti a restrinzioni (copyright o
patent)
● I tool utilizzati per la progettazione dovrebbero essere
open source.
Riccardo Lemmi
Open Hardware
Apparati elettronici
ma non solo
Progetti (design)
Realizzazioni (how to)
Riccardo Lemmi
Open Hardware
Esempi di OH:
BeagleBoard
Reprap
Openmoko
Arduino
Riccardo Lemmi
Open Hardware
BeagleBoard
È una scheda a basso costo,
senza ventola con performance
e espandibilità tipiche del laptop.
È basato sul processore ARM
Cortex-A8 che gira fino a
600MHz
http://beagleboard.org/
Riccardo Lemmi
Open Hardware
Reprap
È una stampante 3D di
dimensioni contenute.
È capace di stampare oggetto in
plastica.
Grazie al suo design è in grado
di produrre le parti per costruire
un nuovo RepRap.
Progetto simile: MakerBot
http://reprap.org/
Riccardo Lemmi
Open Hardware
Openmoko
È stato il primo progetto
open source e open
hardware di cellulare.
Il sistema operativo era una
distribuzione Linux-based
pensata specificatamente per
l'uso in piattaforme mobili.
http://en.wikipedia.org/wiki/Openmoko
Riccardo Lemmi
Open Hardware
● Generatore eolico
● Lavatrice
● Pannelli solari
● http://gardenbot.org/
● http://www.instructables.com/
Riccardo Lemmi
Arduino
● Arduino Uno è una scheda a
microcontrollore basata sul
processore ATmega328
● 14 ingressi/uscite digitali
● 6 PWM
● 6 ingressi analogici
● Il processore gira a 16 MHz
● La scheda è dotata di porta USB
utilizzabile per dialogare con un PC
ed un firmware che semplifica la
procedura di programmazzione.
Riccardo Lemmi
Arduino
Ma per cosa si usa?
Arduino viene usato per sviluppare oggetti interattivi.
I segnali di ingresso sono presi da interruttori e sensori.
I segnali di uscita controllano luci, motori e altri dispositivi
Può essere usato da solo o in collaborazione con un PC
Riccardo Lemmi
Arduino
Microcontrollore
http://en.wikipedia.org/wiki/Microcontroller
Un “microcontrollore” è computer
su un unico circuito integrato.
Contiene processore, memoria e un
insieme programmabile di porte.
I programmi possono essere salvati
su memoria ROM o Flash ed è
disponibile una piccola memoria
RAM.
Riccardo Lemmi
Arduino
AVR Atmega
● High Performance, Low Power AVR® 8-Bit Microcontroller
– RISC Architecture, 20 MIPS Throughput at 20 MHz
● High Endurance Non-volatile Memory segments
– Flash program memory, EEPROM, SRAM
● Peripheral Features
– Two 8-bit Timer/Counters , One 16-bit Timer/Counter
– Real Time Counter with Separate Oscillator
– Six PWM Channels
– 8-channel 10-bit ADC in TQFP and QFN/MLF package
– 6-channel 10-bit ADC in PDIP Package
– Programmable Serial USART
– Master/Slave SPI Serial Interface
– Byte-oriented 2-wire Serial Interface (Philips I2C compatible)
– Programmable Watchdog Timer with Separate On-chip
Oscillator
– On-chip Analog Comparator
– Interrupt and Wake-up on Pin ChangeN/MLF
Riccardo Lemmi
Arduino
Riccardo Lemmi
Arduino
Digital I/O
● Sono porte bidirezionali con
resistenza di pull-up
● Ogni porta è programmabile
tramite tre registri di un bit:
● DDxn: controlla la direzione
● PORTxn: controlla la resistenza di
pull-up
● PINxn: restituisce il valore in
ingresso
Riccardo Lemmi
Arduino
A/D converter
● Risoluzione a 10 bit
● Tempo di conversione da 13 a 260
us
● Interrupt su fine conversione
Riccardo Lemmi
Arduino
Counter
● Contatore/Timer a 8 bit
● Supporto PWM
● Permette di generare forme d'onda
Riccardo Lemmi
Arduino
2-wire serial
● Comunicazioni seriali a 2 fili
● Gestisce il protocollo
(master/slave, arbitration)
● Protocollo I2C
Riccardo Lemmi
Arduino
Linguaggio di programmazione
Arduino si programma usando un linguaggio la
cui sintassi è simile al C/C++ con alcune
semplificazioni e modifiche.
Riccardo Lemmi
Arduino
void setup () {
//... setup pins
}
void loop () {
//... main loop
}
Riccardo Lemmi
Arduino
/* SOSOSOS... */
int ledPin = 13; // LED connected to digital pin 13
/* dot and line defs */
void setup() { // run once, when the sketch starts
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop() { // run over and over again
dot();
dot();
dot();
line();
line();
line();
}
Riccardo Lemmi
Arduino
void dot() {
digitalWrite(ledPin, HIGH); // sets the LED on
delay(500); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(200); // waits for a second
}
void line() {
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1500); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(200); // waits for a second
}
Riccardo Lemmi
Arduino
Digital output/input
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
digitalWrite(pin, HIGH);
pinMode(s, INPUT);
if (digitalRead(s) == LOW) {
p++;
} else {
p--;
}
Riccardo Lemmi
Arduino
Analog input/output
int v = analogRead(pin); // value between 0 and 1023
analogWrite(a, v); // set analog out pin a to value 0 to 255
Riccardo Lemmi
Arduino
Interrupt
attachInterrupt(interrupt, function, mode)
mode
per dichiarare come viene lanciata l'interruzione
LOW: quando il pin va in stato logico basso
CHANGE: quando il pin cambia stato
RISING : quando il pin passa da livello logico basso ad alto
FALLING: quando il pin passa da livello logico alto a basso
0 per il pin 2 e 1 per il pin 3
Riccardo Lemmi
Arduino
Interrupt
int pin = 13;
volatile int state = LOW;
void setup() {
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, CHANGE);
}
void loop() {
digitalWrite(pin, state);
}
void blink() {
state = !state;
}
Riccardo Lemmi
Arduino
Librerie
● Comunicazione seriale
● Driver LCD
● Eeprom
● Servo motori
● Motori passo=passo
● Accellerometri
● GPS
● Firmata (!)
● ... (vedi arduino-00XX/hardware/libraries/)
Riccardo Lemmi
Arduino
Arduino IDE
Integrated Developing Environment
Basata sulla IDE di Processing
http://www.processing.org/
http://wiring.org.co/
Riccardo Lemmi
Arduino
Fritzing
È un software open-source per
disegnare i protipi di sistemi basati su
Arduino.
La filosofia dietro il progetto è quella di
aiutare gli utenti a documentare i propri
progetti, a condividerli con gli altri, a
insegnare l'elettronica e a creare i
circuiti stampati.
Riccardo Lemmi
Arduino
Esempi di interfacciamento
http://wiring.org.co/learning/basics/
Riccardo Lemmi
Arduino
Pulsante
Si rileva la caduta di tensione
sulla resistenza
v = digitalRead(pin)
Riccardo Lemmi
Arduino
LED
La scrittura di uno stato
alto accende il LED
digitalWrite(pin, LOW);
Riccardo Lemmi
Arduino
Potenziometro
v = analogRead(pin)
Riccardo Lemmi
Arduino
Relè
digitalWrite(pin, LOW);
Riccardo Lemmi
Arduino
Motore
digitalWrite(pin, LOW);
analogWrite(pin, value);
Riccardo Lemmi
Arduino
Sensore di temperatura
LM35
v = analogRead(pin)
Riccardo Lemmi
Arduino
Domande
Riccardo Lemmi
Riferimenti
http://blog.makezine.com/
http://blog.craftzine.com/
http://en.wikipedia.org/wiki/Open_hardware
http://en.wikipedia.org/wiki/List_of_open_source_hardware_projects
http://www.openhardwaresummit.org/
Atmel AVR Atmega datasheet
http://arduino.cc/en/Main/ArduinoBoardUno
http://en.wikipedia.org/wiki/Arduino
http://www.maartenlamers.com/ThisIsWiring/
http://www.wiring.org.co/
http://www.processing.org/
http://fritzing.org/welcome/
http://www.oswash.org/
http://www.instructables.com/

Más contenido relacionado

La actualidad más candente

Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Luigi Francesco Cerfeda
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshopDaniele Iori
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to ArduinotrevisoAUG
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
Arduino: breve introduzione & progetti
Arduino: breve introduzione & progettiArduino: breve introduzione & progetti
Arduino: breve introduzione & progettiMirco Piccin
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2CSP Scarl
 
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUSTOPS Italia
 
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliRoberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliDemetrio Siragusa
 
Arduino & Smartphone
Arduino & SmartphoneArduino & Smartphone
Arduino & Smartphonedega1999
 
CoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 ArduinoCoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 ArduinoMirco Piccin
 
Introduzione alla programmazione con Arduino
Introduzione alla programmazione con ArduinoIntroduzione alla programmazione con Arduino
Introduzione alla programmazione con ArduinoFabrizio Passerini
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionaleEmanuele Bonanni
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Daniele Costarella
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione ArduinoAntonio Serra
 

La actualidad más candente (20)

Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
 
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Fare Musica con Arduino
Fare Musica con ArduinoFare Musica con Arduino
Fare Musica con Arduino
 
Arduino galileo edison_udoo
Arduino galileo edison_udooArduino galileo edison_udoo
Arduino galileo edison_udoo
 
Workshop su Arduino
Workshop su ArduinoWorkshop su Arduino
Workshop su Arduino
 
Arduino: domotica OpenSource
Arduino: domotica OpenSourceArduino: domotica OpenSource
Arduino: domotica OpenSource
 
Arduino: breve introduzione & progetti
Arduino: breve introduzione & progettiArduino: breve introduzione & progetti
Arduino: breve introduzione & progetti
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
 
Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
 
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliRoberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
 
Arduino & Smartphone
Arduino & SmartphoneArduino & Smartphone
Arduino & Smartphone
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
CoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 ArduinoCoderDojo - Scratch 4 Arduino
CoderDojo - Scratch 4 Arduino
 
Introduzione alla programmazione con Arduino
Introduzione alla programmazione con ArduinoIntroduzione alla programmazione con Arduino
Introduzione alla programmazione con Arduino
 
Come rendere Arduino professionale
Come rendere Arduino professionaleCome rendere Arduino professionale
Come rendere Arduino professionale
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
 

Similar a Open Hardware: Arduino, un prodotto italiano

Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteMirco Sbrollini
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11Ionela
 
LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino Matteo Troìa
 
Introduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: ArduinoIntroduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: ArduinoStefano Varano
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreMirko Mancin
 
Introduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliIntroduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliAntonio Serra
 
An IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionAn IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionJennifer De Filicaia
 
Arduino day 2015 @Archimedea
Arduino day 2015 @ArchimedeaArduino day 2015 @Archimedea
Arduino day 2015 @ArchimedeaArchimedea s.r.l
 
EuComm
EuCommEuComm
EuCommiBLio
 
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteMirco Sbrollini
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open HardwareStefano Sanna
 
LinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware openLinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware openMauro Fava
 

Similar a Open Hardware: Arduino, un prodotto italiano (20)

Arduino primo v1
Arduino primo v1Arduino primo v1
Arduino primo v1
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
 
Arduino - Cosa sono e come funzionano i display
Arduino - Cosa sono e come funzionano i displayArduino - Cosa sono e come funzionano i display
Arduino - Cosa sono e come funzionano i display
 
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
 
LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino
 
Raspberry
RaspberryRaspberry
Raspberry
 
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
 
Introduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: ArduinoIntroduzione all'elettronica con i microcontrollori: Arduino
Introduzione all'elettronica con i microcontrollori: Arduino
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
 
Arduino
ArduinoArduino
Arduino
 
Introduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra NapoliIntroduzione ad Arduino Antonio Serra Napoli
Introduzione ad Arduino Antonio Serra Napoli
 
An IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionAn IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotion
 
Arduino day 2015 @Archimedea
Arduino day 2015 @ArchimedeaArduino day 2015 @Archimedea
Arduino day 2015 @Archimedea
 
EuComm
EuCommEuComm
EuComm
 
Arduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincenteArduino&raspberry pi - Un connubio vincente
Arduino&raspberry pi - Un connubio vincente
 
Free Software e Open Hardware
Free Software e Open HardwareFree Software e Open Hardware
Free Software e Open Hardware
 
Raspberrypi
Raspberrypi Raspberrypi
Raspberrypi
 
LinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware openLinuxDay 2010, Arduino il re dell'hardware open
LinuxDay 2010, Arduino il re dell'hardware open
 

Más de Riccardo Lemmi

Más de Riccardo Lemmi (7)

Deployment automation
Deployment automationDeployment automation
Deployment automation
 
Pycon5 creare soundscape con pyo
Pycon5 creare soundscape con pyoPycon5 creare soundscape con pyo
Pycon5 creare soundscape con pyo
 
Introduzione a Python
Introduzione a PythonIntroduzione a Python
Introduzione a Python
 
World Plone Day 2009
World Plone Day 2009World Plone Day 2009
World Plone Day 2009
 
Workflow tecnologies
Workflow tecnologiesWorkflow tecnologies
Workflow tecnologies
 
Zodb
ZodbZodb
Zodb
 
Buildout
BuildoutBuildout
Buildout
 

Open Hardware: Arduino, un prodotto italiano