Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · •...

17
1 Sistemi di controllo industriale tramite Arduino Ing. Lorenzo Comolli Arduino In ambito scientifico In 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 commerciale In 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 industriale In ambito industriale monitorare i processi, monitorare i processi, certificare conformit certificare conformità di prodotti, di prodotti, controllare i processi. controllare i processi. Finalità delle misure

Transcript of Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · •...

Page 1: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

1

Sistemi di controllo industriale tramite Arduino

Ing. Lorenzo Comolli

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

Page 2: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

2

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à dell’esercitazione

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”

Page 3: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

3

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 l'hardware sono Sia il software sia l'hardware 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 d'irrigazione d'irrigazione Fotografia (dolly Fotografia (dolly

DynamicDynamic PerceptionPerception))

Page 4: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

4

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 giààintegratointegrato

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)

Page 5: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

5

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

Page 6: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

6

Arduino

Estensione dell'hardware: 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//

Page 7: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

7

Arduino

Esperienza 1Logica programmabile e logica cablata

Arduino

Logica programmabile e logica cablata

In passato il controllo dei sistemi industriali era svolto tramite circuiti analogici (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

Page 8: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

8

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 sistema

Arduino

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àà

Page 9: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

9

Arduino

Realizzazione pratica

Logica cablata NE555Logica cablata NE555Logica programmabileLogica programmabile

Arduino

Schema elettrico

Page 10: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

10

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

Page 11: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

11

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

Page 12: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

12

Arduino

PLC Monitoraggio della temperatura

Cella di Cella di peltierpeltier

VisivaVisiva

AcusticaAcustica

Arduino

PLC schema elettrico

fare attenzione!

Page 13: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

13

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

Page 14: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

14

Arduino

Bus di campo: introduzione

Bus industrialeBus industriale

CAN (CAN (AutomotiveAutomotive))

Arduino

Bus di campo: introduzione I2CIl 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 l'impegno di l'impegno 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)

Page 15: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

15

Arduino

Bus di campo: funzionamento I2CIl protocollo hardware dell'I2C richiede due linee seriali di coIl protocollo hardware dell'I2C 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 l'I2C ) per il clock (per la presenza di questo segnale l'I2C èè 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 I2C

Ogni 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 all'ultimo bit BN. La(verde). La stessa procedura prosegue fino all'ultimo 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

Page 16: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

16

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 un'uscita PWM (regolabile via software mediante un'uscita PWM (PulsePulse WidthWidthModulationModulation: onda quadra a duty : onda quadra a duty ciclecicle variabile) che simula un'uscita analogica a valore variabile.variabile) che simula un'uscita 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

Page 17: Finalità delle misuremisure.mecc.polimi.it/files/Materiale Didattico Gasparetto/lab6... · • Compilazione del codice (lCompilazione del codice (librerie AVR) e download ibrerie

17

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: EsercitazioneMotoreArduino