Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino...

24
UNIVERSITÀ DEGLI STUDI DEL SANNIO Dipartimento di Ingegneria Corsi di Laurea: Ingegneria Informatica Ingegneria Elettronica per l’Automazione e le Telecomunicazioni Corso Sistemi Dinamici Dottorando: Gianmichele Siano Corso Sistemi Dinamici Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014

Transcript of Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino...

Page 1: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

UNIVERSITÀ DEGLI STUDI DEL SANNIO

Dipartimento di IngegneriaCorsi di Laurea:

Ingegneria InformaticaIngegneria Elettronica per l’Automazione e le Telecomunicazioni

Corso Sistemi Dinamici

Dottorando:Gianmichele Siano

Corso Sistemi Dinamici

Arduino

ProfessoreLuigi Glielmo

ANNO ACCADEMICO 2013/2014

Page 2: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

• Presentazione Arduino

• Piattaforma di sviluppo

SOMMARIO

• Esempi

• Arduino con Matlab/Simulink

2

Page 3: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Perché Arduino

• Apprendimento Rapido

• Programmazione Semplificata

• Costo Contenuto

• Facilità Interfacciamento

3

• Facilità Interfacciamento

• Documentazione facilmente fruibile

• Ampia comunità mondiale

Page 4: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Arduino Hardware

• Open Source (Hardware/Software)

• Microcontrollore Avr/ATmega Amtel

• I/O Digitali (PWM) e Analogici

Piattaforma di prototipazione elettronica

4

• Tensione Max 20 V

• Programmabile USB

• Espandibile

• Flessibile

• Elaborazione Segnali e controllo Motori

Page 5: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Basic Arduino Board

5

Page 6: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

IDE (Integrated Development Environment

6

Page 7: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Tipi di dati e strutture dati

7

Array = insieme di valori (ES. int mioArrey[]={valore1,valore2,….})

String= insieme di caratteri (ES. string[]=“Arduino”)

Page 8: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Ingressi e Uscite

DIGITALI:

pinMode (pin,mode) pinMode(4,OUTPUT)

digitalRead(pin) digitalRead(6)

digitalWrite(pin, valore) digitalRead(6,LOW)

8

digitalWrite(pin, valore) digitalRead(6,LOW)

ANALOGICI:

analogRead(pin) analogRead(A0) restituisce un numero tra 0-1023

analogWrite(pin,value) analogWrite(10,255) valore PWM 0-255

Page 9: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Struttura firmware

const int ledPin = 13; // Dichiarazioni

void setup(){

pinMode(ledPin, OUTPUT); // InizializzazioneSerial.begin(9600);

}void loop()

9

void loop(){

digitalWrite(ledPin, HIGH); // accende il leddelay(3000); // aspetta un secondoSerial.println(“Acceso 3 secondi”)digitalWrite(ledPin, LOW); // spegne il leddelay(2000); // aspetta un secondoSerial.println(“Spento 2 secondi”)

}

Page 10: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Arduino Software

• Wiring (Processing)

• Matlab/Simulink

• LabView

• Python

10

• Python

• Java

• Visual Basic

• Fritzing

Page 11: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Dotazione Laboratorio 1

Arduino Kit

11

Page 12: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Dotazione Laboratorio 2

Arduino uno s Arduino Mega Adk

UNO Mega ADK

Microcontroller ATmega328 ATmega2560

Operating Voltage 5V 5V

Input Voltage (recommended) 7-12V

7-12V

Input Voltage (limits) 6-20V 6-20V

Digital I/O Pins 14 (of which 6 provide 54 (of which 15 provide PWM

12

Digital I/O Pins 14 (of which 6 provide PWM output) output)

Analog Input Pins 6 16

DC Current per I/O Pin40 mA

40 mA

DC Current for 3.3V Pin50 mA

50 mA

Flash Memory32 KB (ATmega328) of which 0.5 KB used by bootloader

256 KB of which 8 KB used by bootloader

SRAM 2 KB (ATmega328) 8 KB

EEPROM 1 KB (ATmega328) 4 KB

Clock Speed 16 MHz 16 MHz

Page 13: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Arduino Support from Matlab/Simulink

MATLAB Support Package for Arduino

SIMULINK Support Package for Arduino

13

SIMULINK Support Package for Arduino

Page 14: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Progetto Blink

int led = 13;

void setup() {pinMode(led, OUTPUT);Serial.begin(9600);

14

Serial.begin(9600);}

void loop() {digitalWrite(led, HIGH);delay(2000);Serial.println(“Acceso”);digitalWrite(led, LOW);delay(1000);Serial.println(“Spento”);

}

Page 15: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Progetto POT-LED

int POT = A3; int ledPin = 13; int POTValue;

void setup() {

pinMode(ledPin, OUTPUT);

15

pinMode(ledPin, OUTPUT);}

void loop() {POTValue = analogRead(POT); digitalWrite(ledPin, HIGH); delay(POTValue); digitalWrite(ledPin, LOW); delay(POTValue);

}

Page 16: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Progetto Button-design

16

Page 17: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Esempio Controllo Temperatura Simulink

17

Page 18: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Programma servo#include <Servo.h>Servo myServo; int const potPin = A2; int potVal; int angle;

void setup() {myServo.attach(9); Serial.begin(9600);

}

18

}

void loop() {potVal = analogRead(potPin); Serial.print("potVal: ");Serial.print(potVal);angle = map(potVal, 0, 1023, 0, 179);Serial.print(", angle: ");Serial.println(angle); myServo.write(angle);delay(15);

}

Page 19: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Programma temperatura

• Controllo di temperatura

19

Page 20: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Esempio Motore DC

• Controllo Motore con H-bridge e PWM

20

Page 21: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Esempio State-flow

21

Page 22: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Esempio State-flow

22

Page 23: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Esempio State-flow

23

Page 24: Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...Arduino Professore Luigi Glielmo ANNO ACCADEMICO 2013/2014 • Presentazione Arduino •

Esempio State-flow

24