1. Open hardware e Arduino
Linux Day 2011
Ing. Marco Cenerelli
Nalug
2. Che cosa è l'hardware open source? 1/3
Hardware libero si riferisce ad hardware elettronici e di computer che
sono stati progettati con la stessa politica del software libero ed open
source (FOSS). L'hardware libero è parte della cultura dell'open source,
che espande quest’ideologia al di fuori dell’ambito del software.
Il termine viene principalmente usato per esprimere la libera divulgazione
di informazioni riguardanti il progetto stesso dell'hardware, comprendente
gli schemi, la lista dei materiali, il layout dei dati del circuito stampato,
solitamente insieme al FOSS per far girare l'hardware.
Wikipedia
3. Che cosa è l'hardware open source? 2/3
Openmoko
Piattaforma aperta per lo
sviluppo di uno smartphone
4. Che cosa è l'hardware open source? 3/3
Arduino
Piattaforma di prototipazione
rapida e l'apprendimento
veloce dei principi
fondamentali dell'elettronica
e della programmazione
in ambiente “embedded”
5. I microcontrollori: cosa sono e cosa possono fare 1/3
Il microcontrollore è un dispositivo elettronico di elaborazione integrato su
un solo chip, che permette di eseguire un programma ed interagire con
l'esterno attraverso delle “porte”, i pin.
Un microcontrollore si distingue da un microprocessore di pari potenza di
calcolo, perchè questo ha bisogno di risorse esterne per poter dialogare
con il mondo esterno.
Ad esempio, un microcontrollore possiede dei pin di ingresso/uscita
general purpose (General Purpose Input/Output), ha una memoria RAM
interna ed una memoria ROM per memorizzare il programma, ha
l'elettronica necessaria per utilizzare i protocolli I2C, SPI, UART, USB,
ETHERNET etc.
Al contrario, un microprocessore ha bisogno di hardware esterno per
poter realizzare queste funzioni, tipicamente connesso su di un bus.
6. I microcontrollori: cosa sono e cosa possono fare 2/3
Più in generale, i microprocessori tendono ad essere delle macchine
general purpose, i microcontrollori sono delle macchine specializzate per
un compito, mediante un programma fisso che è detto firmware.
Queste differenze oggi sono sempre più labili, esistono microcontrollori
molto potenti che possono utilizzare RAM esterna e memorizzare il loro
programma su di un supporto esterno.
Il concetto chiave è quello di poter specializzare una macchina per un
determinato compito.
Al limite, anche un microprocessore può essere utilizzato per realizzare
un sistema “embedded”.
Esempio: 486 embedded, AMD geode, etc.
7. I microcontrollori: cosa sono e cosa possono fare 3/3
Esistono infinite famiglie di microcontrollori, a 8, 16, 32 e anche 64
bit (DSP)
M16C, R8C, R32C Renesas
PIC, dsPIC Microchip
AVR Atmel (Arduino si basa su questo)
ARM7
Cortex M0, M3, M4
Intel 8051
PowerPC
M68000
8. Progetto di esempio: Loopback seriale
Specifiche:
Progettare un dispositivo da collegare ad una seriale RS232 (UART),
che effettui l'eco dei caratteri ricevuti.
Soluzione:
Si utilizza la libreria di Arduino per simulare una UART tramite il
connettore USB.
Hardware richiesto:
Nessuno
9. Progetto di esempio: Sensore di luminosità 1/2
Specifiche:
Progettare un dispositivo da collegare ad una seriale RS232 (UART),
che effettui una misurazione della luminosità ambientale ad intervalli di
10 secondi, inviando il dato in formato comprensibile via seriale.
Soluzione:
Si utilizza il sensore di luminosità TAOS TSL230R
Hardware richiesto:
TAOS TSL230R, fast prototyping breadboard, cavi
10. Progetto di esempio: Sensore di luminosità 2/2
Conversione da frequenza a luminosità:
l [uW/cm^2] = f [Hz] / (7,7 * sensibilità)
sensibilità = 1 => l = f / 7,7
sensibilità = 10 => l = f / 77
sensibilità = 100 => l = f / 770
Le divisioni si approssimano come:
sensibilità = 1 => l = (f * 133) / 1024
sensibilità = 10 => l = (f * 213) / 16384
sensibilità = 100 => l = (f * 85) / 65536