AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico....

30
AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci Amon e GMS. Arduino Base

Transcript of AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico....

Page 1: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINO

Amon intende promuovere l’ utilizzo di Arduino nel proprio

modellismo dinamico.

Per questo organizza un corso di Arduino per tutti i soci Amon

e GMS.

Arduino Base

Page 2: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

1° giornata : CONOSCIAMO ARDUINO

• cosa è Arduino• dove comprarlo• come installarlo• componenti di Arduino• accendiamo un led• istruzioni base • esercitazioni

o led e lampeggio pulsantio facciamo un semaforoo regoliamo la luceo misuriamo la temperaturao sensore di luce

AMON ed ARDUINO

Page 3: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Cosa è Arduino

AMON ed ARDUINO

Arduino è una scheda elettronica di piccole dimensioni con un microcontrollore e circuiteria di contorno, utile per creare rapidamente prototipi e per scopi hobbistici e didattici.

Il nome della scheda deriva da quello di un BAR di Ivrea (che richiama a sua volta il nome di Arduino d'Ivrea, Re d'Italia nel 1002) frequentato da alcuni dei fondatori del progetto.

Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, temperatura e umidità e molti altri progetti che utilizzano sensori, attuatori e comunicazione con altri dispositivi.

È fornito con un semplice ambiente di sviluppo integrato per la programmazione.

Tutto il software a corredo è libero, e gli schemi circuitali sono distribuiti come hardware libero.

Page 4: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Dove comprarlo

AMON ed ARDUINO

• Su Ebay in KIT Arduino UNO• Su fornitori on line tipo

o ROBOT ITALY http://www.robot-italy.com/ o ROBOT STORE http://www.robotstore.it/o ENOVAZ http://www.enovaz.it/

• sulla pagina di Arduino www.arduino.cc

Page 5: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Come istallarlo

AMON ed ARDUINO

• Scaricare da www.arduino.cc il software free• Lanciare il programma e collegare Arduino al PC• Se necessario cercare il corretto driver (vedere slide

dopo)• Settare la porta (es. COM20) verificando su «Sistema»• Settare il tipo di Arduino

Page 6: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINOCome istallarlo

• Collegare USB ad Arduino e al PC

• Da Sistema – Hardware – Porte caricare il driver di porta

• Il programma guiderà il caricamento

• Verrà attribuita ad Arduino una Porta (da riportare sul programma Arduino)

C:\Programmi\Arduino\drivers

Page 8: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

I componenti di Arduino

AMON ed ARDUINO

USB

Ingresso tensione5 V.

Reset

Microprocessore

Led corrente OK

Connettori Digitali

Connettori Analogici

Massa

Uscite corrente

Led standard

Page 9: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

4 LED : Sulla scheda sono presenti quattro led smd denominati L, TX, RX e PWR. Il led PWR, è facile dedurlo, si accende quando la scheda è alimentata. I led RX e TX sono semplici da interpretare: se la scheda sta trasmettendo sull’interfaccia seriale allora il led TX lampeggia, il led SX si comporta analogamente in ricezione. Il led denominato L, invece, è in serie sul pin 13 e si accende a comando.

AMON ed ARDUINO

TX led

RX led

Power

L led

Page 10: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

LE PORTE : - Pin Digitali: da 0 a 13 ( quadrato rosso ) 0 (LOW) e 1 (HIGH) - Pin Analogici: da 0 a 5 ( quadrato giallo/arancio ) da 0 a 1023 - Pin PWM: 3,5,6,9,10,11 ( quadrato verde ) da 0 a 255

AMON ed ARDUINO

DIGITALI

ANALOGICHE

PWMPWM

Pulse Width Modulation

Page 11: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

COMPONENTI ESTERNI

AMON ed ARDUINO

Sensore di LIVELLO

Sensore di MOVIMENTO Sensore di VIBRAZIONI

Sensore di TEMPERATURA

Sensore di UMIDITA’Sensore di POSIZIONE (GPS)

Sensore di GAS

Sensore di DISTANZA

16 servi insieme

Motore passo-passo

Page 12: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Accendiamo un led

AMON ed ARDUINO

• Apriamo e Carichiamo il programma «Blink» da Esempi Arduino-Basics

• Carichiamo il pgm su Arduino• Attendiamo e un piccolo led si accende

• Mettiamo un LED sulla porta 13 e riproviamo

LED : • pin PIU LUNGO è +• parte sporgente è +

Page 13: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Accendiamo un led AMON ed ARDUINOPROGRAMMA : Blink_Base

Page 14: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

ISTRUZIONI BASE :

• commenti

• fine riga

• ordine

• Maiuscole e minuscole

AMON ed ARDUINO

/* This example code is in the public domain. */

// Pin 13 has an LED connected on most Arduino boards.// give it a name:

sempre con ;

ogni sezione di istruzione si apre e si chiude con { }sono sempre due cose diverse

Page 15: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINOSTRUTTURAIl codice di qualsiasi programma per Arduino è composto essenzialmente di 3 parti:

- inizio - Questo è il posto dove attribuiamo variabili, carichiamo librerie , settiamo inizialmente i parametri, etc

- void setup() - Questo è il posto dove mettiamo il codice di inizializzazione. Inizializza tutte le impostazioni e le istruzioni della scheda (gli INPUT e OUTPUT) prima che il ciclo principale del programma si avvii. Ad ogni Reset viene eseguito una sola volta

- void loop() - E' il contenitore del codice principale del programma. Contiene una serie di istruzioni che possono essere ripetute una dopo l'altra fino a quando non spegniamo la scheda Arduino.

Page 16: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINO

CONTENUTINella scheda Arduino è inserita una serie predefinita di parole chiave con valori speciali. HIGH e LOW sono usati per esempio quando si vuole accendere o spegnere un Pin di Arduino. INPUT e OUTPUT sono usate per definire se uno specifico Pin deve essere un dato di entrata o un dato di uscita. TRUE e FALSE indicano il rispettivo significato italiano: se abbiamo un'istruzione, la condizione può essere vera o falsa. VARIABILIint - Contiene un numero compreso tra -32'768 e 32'767. E' il tipo di variabile più usata e usa 2 byte di memoria.float - Può memorizzare numeri con la virgola. string - Un set di caratteri ASCII utilizzati per memorizzare informazioni di testo. array - un elenco di variabili accessibili tramite un indice. Vengono utilizzate per creare tabelle di valori facilmente accessibili.

FUNZIONE di tempodelay(ms) - Mette in pausa il programma per un numero di millisecondi specificato.

delay(1000); //stoppa il programma per 1 secondo

Page 17: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINO

FUNZIONI INPUT E OUTPUT, Arduino include funzioni per la gestione degli Input e degli Output. pinMode(pin,mode) - Riconfigura un pin digitale a comportarsi come uscita o come entrata.

pinMode(13,INPUT); - imposta il pin 13 come Input.pinMode(11,OUTPUT); - imposta il pin 11 come Output.

digitalWrite(pin,value) - imposta un pin digitale ad ON o a OFF.digitalWrite(7,HIGH); - imposta come digitale il pin 7.

digitalRead(pin) - Legge lo stato di un input Pin, ritorna HIGH se il Pin riceve della tensione oppure LOW se non c’è tensione applicata.

Valore=digitalRead(7); // legge il pin 7 dentro a valore

Page 18: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINOanalogRead(pin) - Legge la tensione applicata a un ingresso analogico e ritorna un numero tra 0 e 1023 che rappresenta le tensioni tra 0 e 5 V.

val=AnalogRead(0); // legge l’ingresso analogico 0 dentro a val

analogWrite(pin,value) - Cambia la frequenza PWM su uno dei pin segnati PWM, • pin si può mettere 11 10 9 6 5 3, • value invece può essere un valore da 0 a 255 che rappresenta la scala da 0 a 5 V.

analogWrite(9,128);

OPERATORI DI COMPARAZIONE, quando si specificano delle condizioni ci sono vari operatori che tu puoi usare:

== Uguale a> maggiore di< minore di!= diverso da<= minore o uguale>= maggiore o uguale

http://polinienrico.altervista.org/index.php?option=com_content&view=article&id=57&Itemid=66

Page 19: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.
Page 20: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Accendiamo un led sulla BREADBOARD - BlinkAMON ed ARDUINO

void setup() { pinMode(13,OUTPUT); }

void loop() { digitalWrite(13,HIGH); delay(3000); digitalWrite(13,LOW); delay(3000);

}

PROGRAMMA : Blink_Base

RESISTENZA da 220 ohm

Page 21: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Accendiamo due led alternativamente

AMON ed ARDUINO

void setup() {pinMode(9,OUTPUT);pinMode(12,OUTPUT);

}

void loop() {digitalWrite(9,HIGH);digitalWrite(12,LOW);

delay(500);digitalWrite(9,LOW);digitalWrite(12,HIGH);

delay(500); }

PROGRAMMA : Due_Led_alternativamente

RESISTENZA da 220 ohm

Page 22: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Realizziamo un semaforoAMON ed ARDUINO

void setup() {pinMode(13,OUTPUT); //RossopinMode(11,OUTPUT); //GiallopinMode(9,OUTPUT); //Verde

}

void loop() {digitalWrite(13,HIGH);

delay(8000);digitalWrite(13,LOW);digitalWrite(9,HIGH);

delay(8000);digitalWrite(11,HIGH);

delay(2000);digitalWrite(9,LOW);digitalWrite(11,LOW);

}

PROGRAMMA : Semaforo

RESISTENZA da 220 ohm

Page 23: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINOAltre istruzioni utili

STRUTTURE DI CONTROLLO Il linguaggio di Arduino include parole chiave per controllare il progetto logico del nostro codice. If…else - Permette di prendere delle decisioni all’interno del programma, ma deve essere seguito da una domanda sotto forma di espressione tra parentesi. Se la domanda è vera tutto ciò che segue verrà eseguito. Se falso verrà eseguito tutto il codice che segue else. If è possibile usarlo senza usare necessariamente else. Esempio:

if (val==1) { digitalWrite (LED, HIGH) ; } // se (val=1) è vera esegue la parentesiOPERAZIONI ARITMETICHE Si può usare Arduino per compiere operazioni matematiche complesse con una semplice sintassi: + e – indicano addizione e sottrazione, * indica la moltiplicazione, e / la divisione. C’è un operatore in più in questo linguaggio chiamato “Modulo” che è un comando che restituisce il resto di una divisione. Esempio:

a=3+3; luminosità=((12*valore sensore)/4);

OPERATORI BOOLEANI Sono usati quando si vogliono combinare più condizioni, ad esempio se vogliamo verificare se il valore di un sensore è tra 1 e 5 basta scrivere: if (sensore= >1) && (sensore <=5);Esistono tre tipi di operazioni booleane: &&(And), ||(Or), !(Not).

Page 24: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Aggiungiamo un PulsanteAMON ed ARDUINO

int valore;

void setup() { pinMode(13,OUTPUT); pinMode(11,INPUT); }

void loop() { valore=digitalRead(11); if (valore==HIGH) { digitalWrite(13,HIGH); } else { digitalWrite(13,LOW); }}

RESISTENZA da 220 ohm

PROGRAMMA : Led_con_Pulsante

Page 25: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Aggiungiamo un Interruttore AMON ed ARDUINOint valore;int inter=0;

void setup() { pinMode(13,OUTPUT); pinMode(11,INPUT); }

void loop() { valore=digitalRead(11); if ((valore==HIGH) and (inter==0))

{ digitalWrite(13,HIGH); inter=1; delay(1000); }

else if ((valore==HIGH) and (inter==1)){ digitalWrite(13,LOW); inter=0; delay(1000); }

}

NOTE : inter =0 SPENTO =1 ACCESO

Stesso circuito di prima

PROGRAMMA : Led_con_interruttore

Page 26: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Accendiamo un led e con potenziometro variamo la durata del lampeggio

AMON ed ARDUINO

int durata=0;

void setup() {pinMode(13,OUTPUT);}

void loop() {

durata=analogRead(3);

digitalWrite(13,HIGH); delay(durata);

digitalWrite(13,LOW); delay(durata);}

PROGRAMMA : Led_con_potenziometro

Page 27: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

AMON ed ARDUINO

Accendiamo un led e con potenziometro variamo la durata del lampeggioe vediamo la lettura del potenziometro, ma prima vediamo come comunicare con il PC

COMUNICAZIONE SERIALE Queste sono le funzione seriali cioè quelle funzioni che Arduino usa per comunicare tramite la porta Usb del nostro Pc.

Serial.begin(speed) - Prepara Arduino a mandare e a ricevere dati tramite porta seriale. Possiamo usare generalmente 9600 bits per secondo con la porta seriale dell’Arduino, ma sono disponibili anche altre velocità, di solito non si supera i 115.200 bps.

Serial.begin(9600); in setup Serial.print(data); in Loop

Serial.print(data,codifica) - Invia alcuni dati alla porta seriale. La codifica è opzionale.

Serial.print(32); // stampa 32Serial.Print(32, DEC); // stampa 32 come sopra

Page 28: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Accendiamo un led e con potenziometro variamo la durata del lampeggio ………………….………..e vediamo la lettura del potenziometro

AMON ed ARDUINO

int durata=0;

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

void loop() { durata=analogRead(3);

Serial.println(durata);

digitalWrite(13,HIGH);delay(durata);digitalWrite(13,LOW);delay(durata);

}

PROGRAMMA : Led_con_potenziometro_e_visualizzazione_valore

Stesso circuito di prima

Page 29: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

Misuriamo la temperatura

AMON ed ARDUINO

int lettura;float temperatura;

void setup() { Serial.begin(9600); }

void loop() { lettura = analogRead(A0); temperatura = ((lettura * 5.0 / 1024.0) - 0.4) / 0.0195;

Serial.println(lettura); Serial.println(temperatura); delay(500); }

PROGRAMMA : Leggiamo_la_temperatura

Page 30: AMON ed ARDUINO Amon intende promuovere l’ utilizzo di Arduino nel proprio modellismo dinamico. Per questo organizza un corso di Arduino per tutti i soci.

digitalReaddigitalWriteanalogReadanalogWrite

80%L'80% di quello che vi serve c'è! Lo avete imparato!