SlideShare a Scribd company logo
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/

More Related Content

PPTX
Arduino ICT2016 [IT]
PDF
Workshop Arduino by Fiore Basile
PPTX
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
PDF
Corso Arduino Base - Basi Pratiche con Arduino Genuino
PDF
Lezione 3 arduino - corso 20 ore
PDF
Introduzione a Arduino
PDF
Lezione introduttiva su Arduino
PDF
Lezione 1 arduino - corso 20 ore
Arduino ICT2016 [IT]
Workshop Arduino by Fiore Basile
Il cuore di Arduino: Un sistema di sviluppo basato su microcontrollore Atmel ...
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Lezione 3 arduino - corso 20 ore
Introduzione a Arduino
Lezione introduttiva su Arduino
Lezione 1 arduino - corso 20 ore

What's hot (20)

PDF
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
PDF
Arduino&Raspberry
PDF
Arduino basic workshop
PDF
Intro to Arduino
KEY
Introduzione ad Arduino
PDF
Fare Musica con Arduino
PDF
Arduino galileo edison_udoo
PDF
Workshop su Arduino
PDF
Arduino: domotica OpenSource
PDF
Arduino: breve introduzione & progetti
PDF
Csp@scuola uav corso1_lez2
PDF
Corso Arduino Base - MUST
PDF
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
PDF
Arduino & Smartphone
PDF
Introduzione ad Arduino del Maker DevLab
PDF
CoderDojo - Scratch 4 Arduino
PDF
Introduzione alla programmazione con Arduino
PDF
Come rendere Arduino professionale
PDF
Electronics LAB [with Arduino] | DAY 1
PPTX
Presentazione Arduino
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Arduino&Raspberry
Arduino basic workshop
Intro to Arduino
Introduzione ad Arduino
Fare Musica con Arduino
Arduino galileo edison_udoo
Workshop su Arduino
Arduino: domotica OpenSource
Arduino: breve introduzione & progetti
Csp@scuola uav corso1_lez2
Corso Arduino Base - MUST
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Arduino & Smartphone
Introduzione ad Arduino del Maker DevLab
CoderDojo - Scratch 4 Arduino
Introduzione alla programmazione con Arduino
Come rendere Arduino professionale
Electronics LAB [with Arduino] | DAY 1
Presentazione Arduino
Ad

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

PDF
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
PPTX
Arduino primo v1
DOC
Arduino & raspberry pi - Un connubio stimolante
PDF
Arduino 2- Slide descrizione Architettura
PDF
Internet delle cose
PPTX
Arduino - Cosa sono e come funzionano i display
PDF
Modelli arduino
PDF
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
PDF
LinoLab - Laboratorio di Arduino
PPTX
Raspberry
PDF
Arduino day 2017
PDF
Introduzione all'elettronica con i microcontrollori: Arduino
PDF
Lezione 2 arduino - corso 20 ore
PPTX
Arduino
PPTX
Introduzione ad Arduino Antonio Serra Napoli
PPTX
An IoT prototype: from ideation to promotion
PPSX
Arduino day 2015 @Archimedea
PDF
EuComm
RTF
Arduino&raspberry pi - Un connubio vincente
PDF
Free Software e Open Hardware
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
Arduino primo v1
Arduino & raspberry pi - Un connubio stimolante
Arduino 2- Slide descrizione Architettura
Internet delle cose
Arduino - Cosa sono e come funzionano i display
Modelli arduino
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
LinoLab - Laboratorio di Arduino
Raspberry
Arduino day 2017
Introduzione all'elettronica con i microcontrollori: Arduino
Lezione 2 arduino - corso 20 ore
Arduino
Introduzione ad Arduino Antonio Serra Napoli
An IoT prototype: from ideation to promotion
Arduino day 2015 @Archimedea
EuComm
Arduino&raspberry pi - Un connubio vincente
Free Software e Open Hardware
Ad

More from Riccardo Lemmi (7)

PDF
Deployment automation
PDF
Pycon5 creare soundscape con pyo
PDF
Introduzione a Python
PDF
World Plone Day 2009
PDF
Workflow tecnologies
PDF
Buildout
Deployment automation
Pycon5 creare soundscape con pyo
Introduzione a Python
World Plone Day 2009
Workflow tecnologies
Buildout

Open Hardware: Arduino, un prodotto italiano