ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare...

25
ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto in ambito di robotica ed automazione. Si basa su un Microcontrollore della ATMEL, l'ATMega168/328: per esempio l'Arduino Uno monta un ATMega328. Nasce a Ivrea, nel 2005, da un'idea di un professore universitario, un Ingegnere Elettronico, Massimo Banzi.

Transcript of ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare...

Page 1: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

ARDUINOArduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto in ambito di robotica ed automazione. Si basa su un Microcontrollore della ATMEL, l'ATMega168/328: per esempio l'Arduino Uno monta un ATMega328. Nasce a Ivrea, nel 2005, da un'idea di un professore universitario, un Ingegnere Elettronico, Massimo Banzi.

Page 2: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Questa piattaforma è Open Source, cioè è possibile trovare sul sito ufficiale

www.arduino.cc, i circuiti, i componenti e addirittura le istruzioni per realizzarla da soli. Un gruppo di studenti della facoltà di Ingegneria Informatica a scrivergli

la libreria, l'IDE (libreria portabile su ogni sistema operativo) e le prime API.

Page 3: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

C'è da aggiungere un particolare molto importante, ogni programma che si scrive su Arduino sarà naturalmente avviato a loop() finché non si toglie l'alimentazione dal dispositivo. Arduino può comandare

sensori, luci, LED, motori e altri attuatori.

Page 4: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Linguaggio di programmazione

Il linguaggio di programmazione è basato su Wiring (un ambiente di programmazione Open-Source pensato per una facile applicazione per semplificare la programmazione in C e C++) e sull'interfaccia Processing.

Page 5: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Il linguaggio base di Arduino, basato sulla sintassi del linguaggio CIl linguaggio base di Arduino, basato sulla sintassi del linguaggio CStrutture generaliStrutture generalisetup()setup()loop()loop()Strutture di controlloStrutture di controlloififif .. elseif .. elseforforswitch caseswitch casewhilewhiledo .. whiledo .. whilebreakbreakcontinuecontinuereturnreturngotogotoSegni di interpunzione usatiSegni di interpunzione usati;;{ }{ }/////*//*/

Page 6: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Direttive:Direttive:

#define#define#include#include

Tipi di dati:Tipi di dati:

voidvoidbooleanbooleancharcharinsigne charinsigne charbytebyteintintinsigne intinsigne intwordwordlong intero a 32 bit con segnolong intero a 32 bit con segnounsigned long intero a 32 sempre positivounsigned long intero a 32 sempre positivofloatfloatdoubledoublestring (di caratteri)string (di caratteri)String (oggetto)String (oggetto)ArrayArray

Page 7: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Funzioni per la gestione dell’hardwareFunzioni per la gestione dell’hardwareDigitaliDigitalipinMode()pinMode()digitalWrite()digitalWrite()digitalRead()digitalRead()

AnalogiciAnalogicianalogReference()analogReference()analogRead()analogRead()analogWrite()analogWrite()

Gestione del tempoGestione del tempomillis()millis()micros()micros()delay()delay()delayMicroseconds()delayMicroseconds()

Come si vede, queste istruzioni, che consentono di operare a livello di singoli Come si vede, queste istruzioni, che consentono di operare a livello di singoli bit e piedini, ebit e piedini, el’ottimizzazione che Arduino assicura per il codice macchina generato, l’ottimizzazione che Arduino assicura per il codice macchina generato, rendono inutile il ricorsorendono inutile il ricorsoall’assembler.all’assembler.

Page 8: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Caratteristiche arduino

La scheda Arduino Uno, ultima nata, nel 2010, ha le seguenti caratteristiche:Microcontrollore ATmega328Tensione di lavoro 5VTensione di ingresso raccomandata 7-12 VIngressi-Uscite 14 (di cui 6 possono fornire il comando PWM di motori)Ingressi analogici 6Memoria Flash 32 KBSRAM 2 KBEEPROM 1 KBClock 16 MHz

Page 9: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

• • PWM - I pin a disposizione con questa funzionalità sono 6. Il PWM, o pulse width modulation permette di creare un'onda di corrente regolabile. Questa è molto utile per comandare svariati sistemi elettronici. L'esempio piu' stupido è comandare i servomotori da modellismo.• TX - RX - porta seriale• RESET - Questo è un PIN digitale. Se la lettura di questo PIN=HIGH il controller si resetta• PIN uscita corrente a 3.3V• PIN uscita corrente a 5V

Page 10: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

• Vin - PIN input corrente per alimentazione controller• Analog in - PIN input analogici. Possono percepire molto precisamente una corrente DC tra 0 e 5V, resistuendo un valore da 0 a 1023.• Digital - PIN digitali programmabili per essere input o output, percepiscono se è presente o no corrente restituendo LOW se non c'è corrente e HIGH se c'è corrente, oppure possono essere programmati per generare corrente in output di massimo 40mA

Page 11: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

I Pin sono connettori femmina, che hanno molteplici utilizzi, che vanno rispettate per evitare il rischio di un corto circuito che puo' arrivare anche al rischio di incendio e/o danneggiamento del computer a cui è collegato Arduino. • AREF - Questo pin regola il voltaggio di massima risoluzione degli input analogici• GND - massa

Page 12: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

MICROPROCESSORE

Page 13: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Atmega328 è la sigla di questo microcontrollore. All'interno di questo componente viene salvato il programma scritto dall'utente e tutta la configurazione di base che permette ad Arduino un funzionamento corretto. Quando acquisterete arduino riceverete uno di questi microcontrollori con solamente il Bootloader all'interno dell'ATMega. Questo "file" è una configurazione di base che permette l'utilizzo del software dedicato.Questo setting puo' essere modificato per utilizzare un software differente e per modificare la posizione e configurazione dei PIN

Page 14: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

bootloader: è un pezzo di codice scritto sul chip della scheda Arduino. Permette di verificare se viene inviato un codice, lo sketch, tramite la porta seriale. Quindi se c'è un codice, lo legge e lo scrive nella memoria.

Page 15: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Hardware arduinoL'hardware originale Arduino è interamente realizzato in Italia dalla Smart Projects, mentre i cloni della scheda possono essere realizzati da chiunque in qualsiasi parte del mondo. Una scheda Arduino tipica consiste in un microcontrollore a 8-bit AVR prodotto dalla Atmel, con l'aggiunta di componenti complementari per facilitarne l'incorporazione in altri circuiti. In queste schede sono usati chip della serie megaAVR - nello specifico i modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560.

Page 16: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Programmazione del microprocessore

In alcuni casi il microcontroller della scheda è pre-programmato con un bootloader che semplifica il caricamento dei programmi sullamemoria flash incorporata nel chip.A livello concettuale, tutte le schede sono programmate attraverso una porta seriale RS-232, ma il modo in cui questa funzionalità è implementata nell'hardware varia da versione a versione. Le schede seriali Arduino contengono un semplice circuito inverter che permette la conversione tra il livello della RS-232 e il livello dei segnali TTL.Le versioni attuali di Arduino sono gestite via USB: la versione Uno utilizza un microcontrollore Atmega8U2 programmato come convertitore USB-seriale

Page 17: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Input/output

Per implementare il comportamento interattivo, Arduino è fornita di funzionalità di input/output (I/O), grazie alle quali essa riceve i segnali raccolti da sensori esterni. Il comportamento della scheda è gestito dal microcontroller in base ai valori provenienti dai sensori e alle decisioni determinate dal particolare programma in esecuzione in quel momento sulla scheda. L'interazione con l'esterno avviene attraverso attuatori pilotati dal programma attraverso i canali di output in dotazione.

Page 18: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

I/O digitale

La Arduino Uno, ad esempio, che ha soppiantato la Duemilanove, offre 14 connettori per l'I/O digitale (numerati da 0 a 13). La direzione di funzionamento, input o output, è decisa dallo sketch programmato sull'IDE Sei dei canali I/O possono produrre segnali Pulse-width modulation (PWM).

Page 19: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

I/O digitale

 Attraverso i segnali PWM è possibile, ad esempio, regolare l'intensità di luminosità di un LED o la velocità di rotazione di un motorino elettrico[5]. L'hardware di tre dei pin di I/O (9, 10 e 11) implementa la possibilità di gestirli direttamente attraverso la funzione analogWrite(), che permette di controllare la PWM del segnale in uscita in maniera efficiente, senza dover eseguire linee di codice appositamente predisposte[

Page 20: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

I/O analogico

Sempre sulla Uno, sono presenti altri 6 connettori specificamente dedicati a ingressi di segnali analogici (collegati quindi ad una ADC), cioè valori di tensione letti da sensori esterni i cui valori, fino a un massimo di 5 Volt, sono convertiti in 1024 livelli discreti (da 0 a 1023). Questi 6 connettori possono essere riprogrammati (sempre dal codice dello sketchsull'IDE) per funzionare come normali entrate/uscite digitali.

Page 21: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Software di arduino

L'ambiente di sviluppo integrato (IDE) di Arduino è un'applicazione multipiattaforma scritta in Java, ed è derivata dall'IDE creato per illinguaggio di programmazione Processing e per il progetto Wiring. È concepita per iniziare alla programmazione artisti e altri neofiti, che siano a digiuno di pratica nello sviluppo di software. Per permettere la stesura del codice sorgente, l'IDE include un editore di test  dotato inoltre di alcune particolarità, come il syntax highlighting, il controllo delle parentesi, e l'indentazione automatica. L'editor è inoltre in grado di compilare e lanciare il programma eseguibile in una sola passata e con un solo click. In genere non vi è bisogno di creare dei Makefile o far girare programmi dalla riga di comando.Ogniprogramma scritto da noi viene denominato da sketch.

Page 22: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

software arduinoPer Arduino la sorgente di alimentazione viene selezionata automaticamente e può avvenire tramite porta USB o Jack di alimentazione. Appena la scheda è alimentata si accenderà il led verde PWR (power).

Page 23: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Avvio del programma arduino

Page 24: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Andiamo sulla cartella Andiamo sulla cartella ‘esempi’,’basics’ e ‘esempi’,’basics’ e apriamo lo sketch apriamo lo sketch denominato blink.denominato blink.

Page 25: ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.

Dopo di che si Dopo di che si aprirà un aprirà un programma base programma base per imparare e per imparare e iniziare a iniziare a scrivere il nostro scrivere il nostro sketch.sketch.