Arduino UNO Single board microcontroller
Che cos è Arduino? Arduino è una piattaforma hardware basata su un microcontrollore, per lo sviluppo di applicazioni che possono interagire con il mondo esterno. È un sistema facilmente programmabile con un ambiente di sviluppo multipiattaforma (Windows, Linux, Mac) Può comunicare con un PC attraverso un semplice cavo USB È economico (20 + iva) È open hardware e open software È supportato da un vasta comunità attiva in tutto il mondo è stato progettato e sviluppato in Italia, a Ivrea, dove si continua a produrre la versione originale.
Un primo sguardo Ingressi/uscite digitali Connettore USB Tasto di RESET Connettore per alimentazione esterna Ingressi analogici Microcontrollore Atmel ATmega328
Il cuore del sistema È il Microcontrollore Atmel ATmega 328P Un microcontrollore è un circuito integrato che comprende una CPU, la memoria per i programmi e per i dati, e altri sottosistemi (periferiche di input/output programmabili) in pratica è un piccolo computer in un unico dispositivo, ed è normalmente utilizzato per applicazioni specifiche (special purpose). È progettato per massimizzare l autosufficienza funzionale ed il rapporto prezzo/prestazioni in uno specifico campo applicativo. Applicazioni tipiche: li troviamo ovunque! Dall automotive (anche centinaia in un autovettura), negli elettrodomestici, nelle telecomunicazioni,ecc.
Atmel ATmega328P CPU a 8 bit Clock a 16 MHz Memoria: FLASH 32 kbytes, EEPROM 1KBytes, RAM 2 kbytes Capacità di calcolo decisamente limitate rispetto ai processori general purpose (es. Desktop PC) ma: Integra la maggior parte delle funzioni in un singolo chip Consuma una potenza molto piccola Costa circa 1,5 per 100 pezzi Si può far qualcosa con un processore a 16MHz con 32k di memoria??
Sonda Voyager 1 (1977) La sonda Voyager 1, lanciata nel 1977, è tutt ora in attività e sta attraversando i confini del sistema solare Ha 3 sottosistemi di calcolo (di comando, controllo assetto, dati di volo), duplicati per migliorare l affidabilità, quindi 6 computer, per un totale di 32kB di memoria La frequenza del clock principale è di 4MHz (per le CPU anche meno ) Circa 8000 istruzioni al secondo. In un cellulare di ultima generazione ne abbiamo 14 miliardi (CPU a 1,5 GHz quadcore)
Alcune considerazioni Premesso che un microcontrollore a 8 bit con 32k permette di realizzare funzionalità piuttosto complesse: Un dispositivo deve essere scelto in base alla funzione che deve svolgere: utilizzare una CPU Intel i7 per realizzare un telecomando o un allarme non solo è uno spreco di risorse (soldi, energia ), ma è un errore di progetto. È bene ricordare che i processori sono macchine che eseguono delle istruzioni: l intelligenza che attribuiamo ad un sistema è un riflesso dell intelligenza di chi lo programma
Interazioni con il mondo Per poter interagire con il mondo circostante abbiamo bisogno di acquisire dei dati dall esterno e di poter rispondere in qualche modo, in base alle regole contenute nel programma
I nostri occhi sul mondo SENSORE dispositivo che trasforma una grandezza fisica d interessa in una grandezza elettrica In commercio esistono innumerevoli tipi di sensori per misurare diverse grandezze fisiche Esempi: microfoni, termocoppie, fotodiodi, estensimetri, accelerometri Parametri da considerare: range di misura, precisione, robustezza, peso, integrabilità nel sistema, e non ultimo il prezzo.
Il nostro braccio ATTUATORE: è in generale un dispositivo che trasforma una grandezza fisica (nel nostro caso elettrica) in un altra, agendo sull ambiente. Esempio tipico: un motorino elettrico La grandezza fisica su cui interveniamo può essere di diversa natura: una lampadina, un altoparlante, un interruttore, un elettrovalvola
Segnali analogici e digitali Segnali elettrici (di solito in tensione) che variano nel tempo ANALOGICO: variazione continua nel tempo. L informazione d interesse è contenuta nel valore puntuale del segnale o nella relazione temporale (es. temperatura) oppure dalla frequenza (es. audio) DIGITALE: variazione discontinua. L informazione d interesse è legata allo stato del segnale, cioè se il valore è maggiore o minore di determinate soglie.
Ingressi/uscite digitali Arduino UNO ha 14 pin che possono essere utilizzati come ingressi oppure uscite digitali Un ingresso digitale leggerà un valore logico alto (1, HIGH) se la tensione al pin è di 5 volt, un valore logico basso (0, LOW) se la tensione è 0 volt (1 bit) Per un uscita digitale la relazione è inversa.
Ingressi analogici Arduino UNO ha 6 pin che possono essere utilizzati come ingressi analogici. DOMANDA: come si può acquisire una grandezza elettrica continua nel tempo in un processore capace di lavorare solo con numeri?
Convertitore analogico/digitale Un convertitore analogico/digitale (ADC) è un dispositivo elettronico che dà un uscita numerica (espressa in un certo numero di bit) in corrispondenza di un valore di tensione al suo ingresso, secondo una relazione lineare. ADC dell Arduino è un dispositivo a 10 bit. Ciò implica che il numero fornito in uscita sia compreso tra 0 e 1023, in corrispondenza rispettivamente di una tensione nulla e una a 5V
Uscite analogiche In realtà sono digitali ma utilizzano una tecnica, detta PWM per approssimare un segnale analogico (su 255 livelli) Corrispondono ai pin digitali contrassegnati dalla tilde
Un po di elettronica LEGGE DI OHM: V=R I LEGGI DI KIRCHHOFFF Nodi: la somma delle correnti entranti e uscenti in un nodo è nulla Maglie: la somma delle cadute di tensione in una maglia è nulla
Componenti elettronici
Ambiente di programmazione vediamolo in funzione!!
Link utili: http://arduino.cc http://www.ladispe.polito.it/news/ http://led.polito.it/utilities/utilities.asp