Stampa | Notifica email    
Autore

COS'E' ARDUINO?

Ultimo Aggiornamento: 14/12/2017 10:31
25/11/2017 12:26
Post: 104
Registrato il: 06/02/2006
Amministrator
ASSIDUO
OFFLINE
INTRODUZIONE AD ARDUINO


Arduino è una piattaforma hardware composta da una serie di schede elettroniche dotate di un microcontrollore. È stata ideata e sviluppata da alcuni membri dell'Interaction Design Institute di Ivrea come strumento per la prototipazione rapida e per scopi hobbistici, didattici e professionali. Il nome della scheda deriva da quello del bar di Ivrea frequentato dai fondatori del progetto, nome che richiama a sua volta quello di Arduino d'Ivrea, Re d'Italia nel 1002. Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, autolavaggi, temperatura e umidità e molti altri progetti che utilizzano sensori, attuatori e comunicazione con altri dispositivi. È abbinato ad un semplice ambiente di sviluppo integrato per la programmazione del microcontrollore. Tutto il software a corredo è libero, e gli schemi circuitali sono distribuiti come hardware libero. L'ambiente di sviluppo integrato (IDE) di Arduino è un'applicazione multipiattaforma scritta in Java, ed è derivata dall'IDE creato per il linguaggio di programmazione Processing e per il progetto Wiring. È concepita per iniziare alla programmazione neofiti a digiuno dello sviluppo di software. Per permettere la stesura del codice sorgente, l'IDE include un editore di testo dotato di alcune particolarità, come il syntax highlighting, il controllo delle parentesi e l'indentazione automatica. L'editor è inoltre in grado di compilare e caricare il programma funzionante ed eseguibile sulla scheda con un solo click. In genere non vi è bisogno di creare dei Makefile o far girare programmi dalla riga di comando. Insieme all'IDE sono scaricati vari sketch di esempio, per introdurre l'utente alla programmazione della macchina; i temi sono molto basici: come gestire gli ingressi analogici e digitali, far accendere un LED in modo pulsante e variabile; si possono però anche affrontare problemi più complessi, come la gestione di un display LCD o di una scheda telefonica GSM. Oltre alle librerie già incorporate (più di una decina), l'utente può aggiungerne con uno strumento di importazione compreso nell'IDE. Per vedere i risultati di uno sketch è attivabile dall'IDE una finestra seriale di monitoring, sulla quale far comparire l'output di istruzioni Serial.print(parametro) incorporate nello sketch stesso.


ISTRUZIONI
In questa sezione sono riportate le istruzioni standard del linguaggio di programmazione. Questa sezione è d'aiuto per il proseguo del corso.

STRUTTURA
Il codice di qualsiasi programma per Arduino è composto essenzialmente di due parti:

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.

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.

COSTANTI
Nella 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.

VARIABILI
Sono aree della memoria di Arduino dove si possono registrare dati e intervenire all’interno del programma. Come dice il nome stesso, le variabili possono essere cambiate tutte le volte che vogliamo. Quando si dichiara una variabile bisogna dichiararne anche il tipo. Questo significa dire al processore le dimensioni del valore che si vuole memorizzare. Ne esistono di diversi tipi:

boolean - Può assumere solamente due valori: vero o falso.
char - Contiene un singolo carattere. L'Arduino lo registra come un numero (ma noi vediamo il testo). Quando i caratteri sono usati per registrare un numero, possono contenere un valore compreso tra -128 e 127.
byte - Può contenere un numero tra 0 e 255. Come un carattere usa solamente un byte di memoria.
int - Contiene un numero compreso tra -32'768 e 32'767. E' il tipo di variabile più usata e usa 2 byte di memoria.
unsigned int - Ha la stessa funzione di int, solo che non può contenere numeri negativi, ma numeri tra 0 e 65.535.
long - E' il doppio delle dimensioni di un int e contiene i numeri da -2'147'483'648 a 2'147'483'647.
unsigned long - Versione senza segno di long va da 0 a 4'294'967''295.
float - Può memorizzare numeri con la virgola. Occupa 4 bytes della RAM.
double - A doppia precisione in virgola mobile con valore massimo di
1'7976931348623157x10^308.
string - Un set di caratteri ASCII utilizzati per memorizzare informazioni di testo. Per la memoria, usa un byte per ogni carattere della stringa, più un carattere NULL che indica ad Arduino la fine della stringa.
array - un elenco di variabili accessibili tramite un indice. Vengono utilizzate per creare tabelle di valori facilmente accessibili.

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.

For - Ripete il codice per un numero predefinito di volte.

Switch - E’ come un interruttore nel corso del programma. Fa prendere al programma diverse direzioni in base al valore della variabile (il suo nome deve essere messo tra parentesi dopo switch). E’ utile perché può sostituire lunghe serie di if.

While - Esegue un blocco di codice fino a quando una certa condizione posta tra le parentesi è vera.

Do…While - E’ uguale a while solo che il codice è avviato prima che la condizione sia verificata. Si usa quando si vuole eseguire il codice almeno una volta prima che la condizione sia valutata.

Break - Questo termine consente di bloccare il ciclo e continuare ad eseguire il codice fuori dal ciclo. Viene utilizzato anche per separare le varie condizioni nella funzione Switch.

Continue - Questo comando fa saltare il resto del codice all’interno del ciclo, e riavvia il ciclo.

Return - Ferma una funzione che si sta eseguendo e restituisce un risultato. E’ possibile infatti usarlo per restituire un valore da una funzione.


[Modificato da PROFPAPPAFAVA 14/12/2017 10:29]
14/12/2017 10:29
Post: 19
Registrato il: 18/11/2017
Amministrator
PRINCIPIANTE
OFFLINE
OPERAZIONI 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.

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
OPERATORI BOOLEANI
Sono usati quando si vogliono combinare più condizioni. Esistono tre tipi di operazioni booleane:
&&(And),
||(Or),
!(Not).

OPERATORI COMPUTAZIONALI
Servono a ridurre la mole di un codice e a renderlo più semplice e chiaro per operazioni semplici come incrementare o decrementare una variabile.
Esempio: val=val+1; è come dire val++ incremento (++) e decremento (--) ++ e -- incrementano/decrementano una variabile di 1; lo stesso è applicabile a +=, -=, *=, /= .

Esempio: le seguenti espressioni sono equivalenti:
val=val+5;
Val+=5;
14/12/2017 10:31
Post: 20
Registrato il: 18/11/2017
Amministrator
PRINCIPIANTE
OFFLINE
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.
digitalWrite(pin,value) - imposta un pin digitale ad ON o a OFF.
int digitalRead(pin) - Legge lo stato di un input Pin digitale
Int analogRead(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.
analogWrite(pin,value) - Cambia la frequenza PWM su uno dei pin segnati PWM, value può
essere un valore da 0 a 255 che rappresenta la scala da 0 a 5 V.

FUNZIONI DI TEMPO
Arduino include alcune funzioni per misurare il tempo trascorso e anche per mettere in pausa il
nostro programma.
Insigned long millis() - Ritorna il numero in millisecondi trascorsi dall’inizio del programma,
esempio:
delay(ms) - Mette in pausa il programma per un numero di millisecondi specificato.
delayMicroseconds(us) - Come delay mette in pausa il programma ma l’unità di misura è molto
più piccola, parliamo di microsecondi.

FUNZIONI MATEMATICHE
Arduino include molte funzioni matematiche comuni.
min (x,y) - Ritorna il più piccolo fra x e y. Esempio: max(x,y) - Ritorna il più grande fra x e y.
abs(x) - Ritorna il valore assoluto di x, ossia trasforma i numeri negativi in numeri positivi.
constrain(x,a,b) - Ritorna il valore "x" costretta tra "a" e "b". Ciò vuol dire che se "x" è minore di
"a" ritornerà semplicemente "a" e se x è maggiore di "b" restituirà semplicemente il valore di "b".
map(value, fromLow, fromHigh, toHigh) - Associa un valore che sta nel range from Low e
maxlow in un nuovo range che va da toLow a toHigh. E’ molto utile per processare valori
provenienti da sensori analogici.
double pow(base,exponent) - Restituisce come risultato la potenza di un numero. Si deve
indicare la base e l’esponente.
Double sqrt(x) - Restituisce la radice quadrata di un numero x.
Double sin(rad) - Restituisce il seno dell’angolo specificato in radianti.
Double cos(rad) - Restituisce il coseno dell’ angolo specificato in radianti.
Double tan(rad) - Restituisce il valore della tangente di un angolo specificato in radianti.

FUNZIONI NUMERI RANDOM
Se si ha bisogno di generare numeri random (a caso), Arduino ci viene incontro con alcuni
comandi standard per generarli.
randomSeed(seed) - Anche se la distribuzione di numeri restituita dal comando random() è
essenzialmente casuale, la sequenza è prevedibile. randomSeed(seed) inizializza il generatore di
numeri pseudo-casuali, facendola partire da un punto arbitrario nella sua sequenza casuale.
Long random(min,max) - Restituisce un valore long intero di valore compreso fra min e max -1.
Se min non è specificato il suo valore minimo è 0.

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.
Int Serial.available() - Ritorna quanti bytes non ancora letti sono disponibili sulla porta Serial per
leggerli tramite la funzione read(). Dopo aver read() tutti i bytes disponibili Serial.Available
restituisce 0 fino a quando nuovi dati non giungono sulla Porta.
Int.Serial.read() - Recupera un byte di dati in entrata sulla porta Seriale. Poiché i dati possono
giungere nella porta seriale prima che il programma li possa leggere(per la velocità), Arduino salva
tutti i dati in un buffer(1). Se è necessario ripulire il buffer e aggiornarlo con i dati aggiornati, usiamo
la funzione flush().
(1) In informatica, un buffer – termine della lingua inglese che significa letteralmente tampone: in
italiano, memoria tampone, memoria di transito o anche memoria intermediaria – è una zona di
memoria usata temporaneamente per l'entrata o l'uscita dei dati, oppure per velocizzare
l'esecuzione di alcune operazioni

Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]

Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Crea forum gratis, gestisci la tua comunità! Iscriviti a FreeForumZone
FreeForumZone [v.6.1] - Leggendo la pagina si accettano regolamento e privacy
Tutti gli orari sono GMT+01:00. Adesso sono le 22:50. Versione: Stampabile | Mobile
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com