Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenHardware : Arduino

7 views

Published on

Linux Day Napoli 2011 - Credits to Marco Cenerelli - www.nalug.net

Published in: Technology
  • Be the first to comment

  • Be the first to like this

OpenHardware : Arduino

  1. 1. Open hardware e Arduino  Linux Day 2011  Ing. Marco Cenerelli  Nalug
  2. 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. 3. Che cosa è l'hardware open source? 2/3 Openmoko Piattaforma aperta per lo sviluppo di uno smartphone
  4. 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. 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. 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. 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. 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. 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. 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

×