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

Post on 21-Jul-2020

17 views 0 download

Transcript of Arduino Sistemi Dinamici - Luigi Glielmoluigiglielmo.eu/wp-content/uploads/2013/12/Arduino...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

• Presentazione Arduino

• Piattaforma di sviluppo

SOMMARIO

• Esempi

• Arduino con Matlab/Simulink

2

Perché Arduino

• Apprendimento Rapido

• Programmazione Semplificata

• Costo Contenuto

• Facilità Interfacciamento

3

• Facilità Interfacciamento

• Documentazione facilmente fruibile

• Ampia comunità mondiale

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

Basic Arduino Board

5

IDE (Integrated Development Environment

6

Tipi di dati e strutture dati

7

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

String= insieme di caratteri (ES. string[]=“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

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”)

}

Arduino Software

• Wiring (Processing)

• Matlab/Simulink

• LabView

• Python

10

• Python

• Java

• Visual Basic

• Fritzing

Dotazione Laboratorio 1

Arduino Kit

11

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

Arduino Support from Matlab/Simulink

MATLAB Support Package for Arduino

SIMULINK Support Package for Arduino

13

SIMULINK Support Package for 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”);

}

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);

}

Progetto Button-design

16

Esempio Controllo Temperatura Simulink

17

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);

}

Programma temperatura

• Controllo di temperatura

19

Esempio Motore DC

• Controllo Motore con H-bridge e PWM

20

Esempio State-flow

21

Esempio State-flow

22

Esempio State-flow

23

Esempio State-flow

24