If you can't read please download the document
Upload
orietta-poti
View
76
Download
2
Embed Size (px)
DESCRIPTION
ARDUINO
Citation preview
1
Insegnamento integrato di:
Misure e Strumentazione Industriale
Laboratorio di Energetica
Arduino
Sezione di Misure e Tecniche Sperimentali
Arduino
In ambito scientificoIn ambito scientifico, studiare i fenomeni, , studiare i fenomeni, verificare sperimentalmente modelli verificare sperimentalmente modelli matematici e teorie scientifiche, monitorare matematici e teorie scientifiche, monitorare lo stato per effettuare previsioni.lo stato per effettuare previsioni.
In ambito commercialeIn ambito commerciale quantificare quantificare parametri a cui parametri a cui associato il valore delle associato il valore delle merci (metrologia legale).merci (metrologia legale).
In ambito industrialeIn ambito industriale monitorare i processi, monitorare i processi, certificare conformitcertificare conformit di prodotti, di prodotti, controllare i processi.controllare i processi.
Finalit delle misure
Arduino
Utilizzare un sistema che consente di:Utilizzare un sistema che consente di: acquisire datiacquisire dati da strumenti diversi anche da strumenti diversi anche
con modalitcon modalit di trasmissione del segnale di trasmissione del segnale diverse (segnale analogico o digitale),diverse (segnale analogico o digitale),
apprendereapprendere una logica di una logica di controllocontrollo,,
generare uscitegenerare uscite tramite cui tramite cui regolareregolare un un processo.processo.
Evidenziare le potenzialitEvidenziare le potenzialit di un sistema di un sistema basato su basato su microcontrolloremicrocontrollore rispetto a rispetto a controllori controllori tradizionalitradizionali ..
Imparare a usare un Imparare a usare un sistema semplice ed sistema semplice ed economicoeconomico, eventualmente utilizzabile a casa , eventualmente utilizzabile a casa per le proprie applicazioni.per le proprie applicazioni.
Finalit dellesercitazione
vs.
ADC
DAC
Arduino
un un Circuito Integrato (IC)Circuito Integrato (IC) che riunisce:che riunisce: CentralCentral Processing Processing UnitUnit (CPU)(CPU)
Memoria RAMMemoria RAM
Memoria ROM, EEPROM o FLASHMemoria ROM, EEPROM o FLASH
Interfaccia di Input/Output (analogico, digitale, Interfaccia di Input/Output (analogico, digitale, seriale)seriale)
Un circuito di clockUn circuito di clock
Il microcontrollore riunisce tutti i componenti per Il microcontrollore riunisce tutti i componenti per operare come un computer operare come un computer standalonestandalone, ovvero , ovvero programmabile.programmabile.
Sono piccoli ed economici, hanno vasto impiego in Sono piccoli ed economici, hanno vasto impiego in molti settori (industriale, domotica, veicoli, giochi).molti settori (industriale, domotica, veicoli, giochi).
Definizione di microcontrollore
Arduino
Arduino Arduino una una piattaforma di sviluppopiattaforma di sviluppo basata su basata su microcontrolloremicrocontrollore
Pu interagire con il mondo mediante I/O analogici e Pu interagire con il mondo mediante I/O analogici e digitalidigitali
Sia il software sia lhardware sono Sia il software sia lhardware sono Open SourceOpen Source
Il linguaggio di programmazione Il linguaggio di programmazione molto simile al molto simile al CC e ha e ha una IDE dedicata molto intuitivauna IDE dedicata molto intuitiva
E sviluppato da una comunitE sviluppato da una comunit molto vasta di molto vasta di programmatori, ingegneri e designer programmatori, ingegneri e designer
Pu essere trovato su: Pu essere trovato su: http://www.arduino.cchttp://www.arduino.cc
Cosa Arduino
Arduino
Esempi di applicazionihttp://http://hacknmod.comhacknmod.com//hackhack/top/top--4040--arduinoarduino--projectsprojects--ofof--thethe--web/web/
Console portatile Console portatile
Veicolo aereo senza pilota Veicolo aereo senza pilota
Fotografia di fenomeni velociFotografia di fenomeni veloci
Sistema automatico Sistema automatico dirrigazione dirrigazione
2
Arduino
Caratteristiche tecnicheAVR AVR AtmelAtmel Atmega328Atmega328
Oscillatore quarzo 16 MHzOscillatore quarzo 16 MHz
Alimentazione da 5 V a 12 VAlimentazione da 5 V a 12 V
6 Ingressi analogici 06 Ingressi analogici 0--5 V5 V
14 input/output digitali 014 input/output digitali 0--5 V5 V
6 uscite PWM 06 uscite PWM 0--5 V 5 V
Pulsante ResetPulsante Reset
Flash Flash MemoryMemory 32 KB (0.5 KB occupato dal 32 KB (0.5 KB occupato dal bootloaderbootloader))
SRAM 2 KBSRAM 2 KB
EEPROM 1 KBEEPROM 1 KB
TX/RX LED per la comunicazione serialeTX/RX LED per la comunicazione seriale
Connettore USB con convertitore USB/seriale giConnettore USB con convertitore USB/seriale giintegratointegrato
Arduino
Uscita PWM - Pulse-widthmodulation
E un sistema per modificare una informazione analogica (es. tensione del segnale) utilizzando la modulazione di ampiezza di un impulso.
Esempio: "simulare" un segnale in tensione sinusoidale (con valore qualsiasi tra 0 V e 5 V) utilizzando una uscita digitale (che pu assumere solo due valori, 0 V o 5 V).
(tratto da wikipedia)
Arduino
Ambiente di sviluppo software
Linguaggio programmazione in stile Linguaggio programmazione in stile CC semplificatosemplificato Gestione integrata degli ingressi e delle uscite, sia Gestione integrata degli ingressi e delle uscite, sia analogici sia digitalianalogici sia digitali
Operazioni Operazioni realreal timetime, reazione a , reazione a watchdogwatchdog e interrupte interrupt
Compilazione del codice (librerie AVR) e download Compilazione del codice (librerie AVR) e download tramite porta serialetramite porta seriale
Comunicazione seriale integrata (funzione di Comunicazione seriale integrata (funzione di debuggingdebugging))
Ampio set di librerie disponibiliAmpio set di librerie disponibili
Arduino
Struttura del codice
Eseguito una sola voltaEseguito una sola volta
(inizializzazione)(inizializzazione)
Eseguito iterativamenteEseguito iterativamente
Memorizzato nella memoria internaMemorizzato nella memoria interna
Arduino
Estensione dellhardware: gli shield
Estensione delle capacitEstensione delle capacit hardwarehardware
LCD LCD shieldshield
Motor Motor shieldshield
Ethernet Ethernet shieldshield
Arduino
Estensione del software: la porta seriale E possibile comunicare dati in input e output con altri tutti gE possibile comunicare dati in input e output con altri tutti gli altri linguaggi li altri linguaggi tramite comunicazione seriale (Matlab, C C++ tramite comunicazione seriale (Matlab, C C++ C#C#, Java, , Java, PythonPython, Processing), Processing)
Comunicazione
seriale
Esempio di comunicazione con Processing (www.processing.org)Esempio di comunicazione con Processing (www.processing.org)
oscilloscopio analogico/digitaleoscilloscopio analogico/digitale
http://http://code.google.comcode.google.com/p//p/arduinoscopearduinoscope//
3
Arduino
Esperienza 1Logica programmabile e logica cablata
Arduino
Logica programmabile e logica cablata
Il controllo dei sistemi energetici era svolto tramite circuiti anologici (elettrici, pneumatici, oleodinamici)
Si passati a sistemi programmabili basati su microcontrollore in quanto offrono:
Prestazioni migliori
Integrazione delle funzioni (acquisizione dei segnali, elaborazione, attuazione)
Approccio basato sulla scrittura di software
Abbattimento dei costi per passaggio alla tecnologia digitale (riduzione componenti esterni e processo produttivo economicamente vantaggioso)
Maggiore flessibilit ed orientamento al cliente
Arduino
Esempio: logica cablata integrata
t = 1.1 R C
Compito: accendere un LED per un tempo Compito: accendere un LED per un tempo tt stabilito al premere di un pulsantestabilito al premere di un pulsante
Soluzione analogica: circuito integrato NE555 (multivibratore) iSoluzione analogica: circuito integrato NE555 (multivibratore) in configurazione monostabile n configurazione monostabile (schema funzionale)(schema funzionale)
La costante di tempo La costante di tempo funzione dei componenti del sistemafunzione dei componenti del sistemaArduino
Esempio: logica programmabile
Compito: accendere un LED per un tempo Compito: accendere un LED per un tempo tt stabilito, al premere di un pulsantestabilito, al premere di un pulsante
La costante di tempo La costante di tempo una variabile del software una variabile del software delaydelay((tt))
Maggior precisione (incertezza nei valori di R e C)Maggior precisione (incertezza nei valori di R e C)
Riprogrammabile con facilitRiprogrammabile con facilit
Maggior flessibilitMaggior flessibilit
Arduino
Realizzazione pratica
Logica cablata NE555Logica cablata NE555Logica programmabileLogica programmabile
Arduino
Schema elettrico
4
Arduino
Software da caricare su Arduino: TimedButton.pde
#define BUTTON 7
#define LED 9
int brightness = 255;
int durata = 2000; //[ms]
int val = 0;
void setup()
{
pinMode(LED,OUTPUT);
pinMode(BUTTON,INPUT);
}
void loop()
{
val = digitalRead(BUTTON);
if (val == HIGH)
{
delay(10); //debouncing
digitalWrite(LED,HIGH);
delay(durata); //tempo in cui il LED resta acceso
digitalWrite(LED,LOW);
}
}
Definizioni
Inizializzazione I/O
Ciclo
Arduino
Esperienza 2Controllo di processo
Arduino
Controllo di processo
PLC (programmable logic controller)
Esempio di controllo grandezze:
Di processo
Temperatura
Pressione
Tecnologiche
Finitura superficiale
Arduino
PLC: componenti base
Componenti di un PLCRACK industriale
Arduino
PLC Monitoraggio della temperatura
Cella di Cella di peltierpeltier
VisivaVisiva
AcusticaAcustica
Arduino
PLC schema elettrico
fare attenzione!
5
Arduino
Software da usare
Programmi residenti e su PC:
programma residente su Arduino: gira indipendentemente, ovvero posso staccare il PC
programma su PC (processing): sfrutta Arduino per leggere informazioni e per controllare dispositivi; se si stacca il collegamento da PC, il programma smette di funzionare.
Questa esperienza richiede due software:
residente su Arduino, serve solo per comunicare
su PC, che visualizza e attua la logica
Si trova nella cartella: Graph2D_adv
Arduino
Esperienza 3Bus di campo
Arduino
Bus di campo: introduzione
Bus industrialeBus industriale
CAN (CAN (AutomotiveAutomotive))
Arduino
Bus di campo: introduzione I 2CIl Il protolloprotollo II22C C usato per comunicare con dispositivi in cui semplicitusato per comunicare con dispositivi in cui semplicit e basso costo sono prioritari e basso costo sono prioritari rispetto alla velocitrispetto alla velocit di trasmissione. Trattandosi di un protocollo di trasmissione. Trattandosi di un protocollo serialeseriale i vantaggi offerti sono i vantaggi offerti sono limpegno di limpegno di sole due lineesole due linee (e quindi due pin dei dispositivi che lo usano), oltre a quelle(e quindi due pin dei dispositivi che lo usano), oltre a quelle di di alimentazionealimentazione(+5V o +3,3V) ed il (+5V o +3,3V) ed il riferimentoriferimento (GND).(GND).
Applicazioni comuni sono:Applicazioni comuni sono:
Accesso a Memorie flash ed EEPROM Accesso a Memorie flash ed EEPROM
Accesso a DAC e ADC a bassa velocitAccesso a DAC e ADC a bassa velocit
Cambiamento dei settaggi nei monitorCambiamento dei settaggi nei monitor
Controllo di display come nei telefoni cellulariControllo di display come nei telefoni cellulari
Accesso sensori MEMS (esempio controller Accesso sensori MEMS (esempio controller nintendonintendo WII)WII)
Arduino
Bus di campo: funzionamento I 2CIl protocollo hardware dellI2C richiede due linee seriali di coIl protocollo hardware dellI2C richiede due linee seriali di comunicazione:municazione:
SDA (Serial SDA (Serial DAtaDAta lineline) per i dati) per i dati
SCL (Serial Clock SCL (Serial Clock LineLine) per il clock (per la presenza di questo segnale lI2C ) per il clock (per la presenza di questo segnale lI2C un bus sincrono)un bus sincrono)
Alimentazione (Alimentazione (VccVcc: +5V o +3,3V): +5V o +3,3V)
Riferimento di zero (GND)Riferimento di zero (GND)
Esistono due tipologia di dispositivi: Esistono due tipologia di dispositivi:
nodo master nodo master il dispositivo che emette il segnale di clock (generalmente il il dispositivo che emette il segnale di clock (generalmente il microcontrollore)microcontrollore)
nodo slave nodo slave il nodo che si sincronizza sul segnale di clock senza poterlo cil nodo che si sincronizza sul segnale di clock senza poterlo controllare (generalmente i sensori)ontrollare (generalmente i sensori)
Il tipo di trasferimento dati pu essere:Il tipo di trasferimento dati pu essere:
un master trasmette un master trasmette controlla il clock e invia dati agli slavecontrolla il clock e invia dati agli slave
un master riceve un master riceve -- controlla il clock ma riceve dati dallo slavecontrolla il clock ma riceve dati dallo slave
lo slave trasmette lo slave trasmette il dispositivo non controlla il clock ma invia dati al masteril dispositivo non controlla il clock ma invia dati al master
lo slave riceve lo slave riceve il dispositivo non controlla il clock e riceve dati dal masteril dispositivo non controlla il clock e riceve dati dal master
Arduino
Bus di campo: funzionamento I 2COgni dispositivo della rete ha un proprio indirizzo. Il correttoOgni dispositivo della rete ha un proprio indirizzo. Il corretto indirizzamento dei dati indirizzamento dei dati garantito dalle resistenze di pullgarantito dalle resistenze di pull--up up RpRp che mantengono la linea normalmente che mantengono la linea normalmente altaalta
Trasmissione dei datiTrasmissione dei dati
S S lo START bit (la linea SDA viene forzata bassa dal master mentrlo START bit (la linea SDA viene forzata bassa dal master mentre il clock SCL e il clock SCL a livello logico alto). Segue, quando a livello logico alto). Segue, quando SCL SCL basso il settaggio del primo bit B1 (in blu) la commutazione dibasso il settaggio del primo bit B1 (in blu) la commutazione di SCL indica che il dato SCL indica che il dato stabile e pu essere letto stabile e pu essere letto (verde). La stessa procedura prosegue fino allultimo bit BN. La(verde). La stessa procedura prosegue fino allultimo bit BN. La transazione termina con lo STOP bit (P) in giallo in cui transazione termina con lo STOP bit (P) in giallo in cui SDA viene commutato da basso ad alto quando SCL SDA viene commutato da basso ad alto quando SCL altoalto
(tratto da wikipedia)Altre informazioni: http://en.wikipedia.org/wiki/I2c
6
Arduino
I2C: misura di vibrazioni
Misura delle vibrazioni su un sistema meccanico mediante accelerMisura delle vibrazioni su un sistema meccanico mediante accelerometro MEMS BMA180 prodotto dalla BOSCH per ometro MEMS BMA180 prodotto dalla BOSCH per il settore il settore automotiveautomotive
Accelerometro 2
Motore
Accelerometro 1
Il motore movimenta una massa eccentrica che forza la mensola adIl motore movimenta una massa eccentrica che forza la mensola ad oscillare. Le vibrazioni sono misurate dai due oscillare. Le vibrazioni sono misurate dai due accelerometri. La velocitaccelerometri. La velocit di rotazione del motore di rotazione del motore regolabile via software mediante unuscita PWM (regolabile via software mediante unuscita PWM (PulsePulse WidthWidthModulationModulation: onda quadra a duty : onda quadra a duty ciclecicle variabile) che simula unuscita analogica a valore variabile.variabile) che simula unuscita analogica a valore variabile.
Accelerometro BMA180Accelerometro BMA180
Sistema vibranteSistema vibrante
Arduino
I2C: misura di vibrazioni
Collegamenti utilizzatiCollegamenti utilizzati
Diagramma di connessione dei componentiDiagramma di connessione dei componenti
Arduino
I2C: schema elettrico
Arduino
Software da usare
Analogo alla esperienza 2: software residente su Arduino usato per comunicare con il PC (processing).
Si trova nella cartella: EsrcitazioneMotoreArduino