UNIVERSITÀ DEGLI STUDI DEL SANNIO
Dipartimento di Ingegneria
Corsi di Laurea:
Ingegneria Informatica
Ingegneria Elettronica per l’Automazione e le Telecomunicazioni
Corso Sistemi Dinamici
Arduino
Dottorando:
Gianmichele Siano
Professore
Luigi Glielmo
ANNO ACCADEMICO 2013/2014
SOMMARIO
• Presentazione Arduino
• Piattaforma di sviluppo
• Esempi
• Arduino con Matlab/Simulink
2
Perché Arduino
• Apprendimento Rapido
• Programmazione Semplificata
• Costo Contenuto
• Facilità Interfacciamento
• Documentazione facilmente fruibile
• Ampia comunità mondiale
3
Arduino Hardware
Piattaforma di prototipazione elettronica
•
Open Source (Hardware/Software)
•
Microcontrollore Avr/ATmega Amtel
•
I/O Digitali (PWM) e Analogici
•
Tensione Max 20 V
•
Programmabile USB
•
Espandibile
•
Flessibile
•
Elaborazione Segnali e controllo Motori
4
Basic Arduino Board
5
IDE (Integrated Development Environment
6
Tipi di dati e strutture dati
Array = insieme di valori
(ES. int mioArrey[]={valore1,valore2,….})
String= insieme di caratteri
(ES. string[]=“Arduino”)
7
Ingressi e Uscite
DIGITALI:
pinMode (pin,mode)
pinMode(4,OUTPUT)
digitalRead(pin)
digitalRead(6)
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
8
Struttura firmware
const int ledPin = 13; // Dichiarazioni
void setup()
{
pinMode(ledPin, OUTPUT); // Inizializzazione
Serial.begin(9600);
}
void loop()
{
digitalWrite(ledPin, HIGH); // accende il led
delay(3000); // aspetta un secondo
Serial.println(“Acceso 3 secondi”)
digitalWrite(ledPin, LOW); // spegne il led
delay(2000); // aspetta un secondo
Serial.println(“Spento 2 secondi”)
}
9
Arduino Software
• Wiring (Processing)
• Matlab/Simulink
• LabView
• Python
• Java
• Visual Basic
• Fritzing
10
Dotazione Laboratorio 1
Arduino Kit
11
Dotazione Laboratorio 2
Arduino uno s Arduino Mega Adk
UNO
Microcontroller
Operating Voltage
Input Voltage
(recommended)
Input Voltage (limits)
Digital I/O Pins
Analog Input Pins
DC Current per I/O Pin
DC Current for 3.3V Pin
Flash Memory
SRAM
EEPROM
Clock Speed
ATmega328
5V
7-12V
6-20V
14 (of which 6 provide
PWM output)
6
40 mA
50 mA
32 KB (ATmega328) of
which 0.5 KB used by
bootloader
2 KB (ATmega328)
1 KB (ATmega328)
16 MHz
Mega ADK
ATmega2560
5V
7-12V
6-20V
54 (of which 15 provide PWM
output)
16
40 mA
50 mA
256 KB of which 8 KB used by
bootloader
8 KB
4 KB
16 MHz
12
Arduino Support from Matlab/Simulink
MATLAB Support Package for Arduino
SIMULINK Support Package for Arduino
13
Progetto Blink
int led = 13;
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(led, HIGH);
delay(2000);
Serial.println(“Acceso”);
digitalWrite(led, LOW);
delay(1000);
Serial.println(“Spento”);
}
14
Progetto POT-LED
int POT = A3;
int ledPin = 13;
int POTValue;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
POTValue = analogRead(POT);
digitalWrite(ledPin, HIGH);
delay(POTValue);
digitalWrite(ledPin, LOW);
delay(POTValue);
}
15
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);
}
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);
}
18
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
Scarica

Presentazione - Luigi Glielmo