Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

7
voti

Il nuovo orizzonte: Arduino

Indice

Introduzione

Salve a tutti. Ho aperto questo blog per condividere la mia grande passione per l'elettronica e per l'impiantistica, e confrontarmi e discutere su delle idee inerenti l'argomenti che tratterò. Voglio cominciare a parlarvi di una bella esperienza che ho iniziato, l'uso della scheda ARDUINO.Tanti già sapranno cosa è, ma vorrei sintetizzare in poche parole cosa è, di cosa si tratta e cosa si può fare.

ARDUINO

ARDUINO

Cosa è?

Arduino in parole povere, è un micro computer, formato da un cuore centrale ( il microcontrollore, generalmente monta degli ATmega
prodotta da ATmel) che comada dei pin connessi alle porte I/O,nell'ARDUINO UNO avremo 14 pin I/O digitali e 6 pin di input analogici.Inoltre è fornito di un regolatore di tensione, per una alimentazione da 5 a 12 v ma che può essere alimentato anche da un'interfaccia USB che a sua volta permette la comunicazione con il computer.

Di cosa si tratta? Cosa si può fare?

E' una piattaforma Hardware Open Source, tutto il progetto e lo schema circuitale è stato distribuito liberamente,quindi accessibile a tutti, sia parte software che parte hardware .Diciamo che teoricamente , puoi fare tutto, nei limiti del significato "tutto".Basti pensare che un circuiterino delle dimensioni di ARDUINO è capace di comandare e gestire un intero appartamento di casa automatizzato tramite cellulare, computer da qualsiasi parte de mondo può creare dei robot, quadricotteri, macchine rc , nuove stampanti di generazione innovativa, come le stampanti 3D usano come cervello il nostro ARDUINO.

Tipologie

Fare un progetto con ARDUINO

Gli attrezzi e componenti per un ARDUINER doc che non dovranno mai mancare, obbligatoriamente saranno, 'breadboard , cavi,resistenze e LED.' Proprio per questo, negli esperimenti primari e più semplici non si fa altro che giocare proprio con questi.

Come programmare con ARDUINO

La programmazione di ARDUINO è abbastanza semplice e alla portata di tutti. Si basa sul linguaggio ad oggetti, molto simile al Java e al C. Nell'editor di ARDUINO ci sono già pre-caricati delle librerie e dei programmini, chiamati sketch , dove poter cominciare a smanettare e modificare i codice e successivamente, tramite il compilatore integrato nel suddetto editor, verificare se il programma non ha errori di sintassi e quindi poterlo memorizzare nell'ARDUINO. La logica degli sketch consiste nel bloccare e memorizzare degli ingressi e delle uscite dichiarandole all'inizio del programma in una parte chiamata 'void setup', successivamente nel 'void loop', parte di sketch dove verrà eseguito il nostro programma all'infinito, appunto chiamato loop, andrà scritto il programmino che ARDUINO riprodurrà come da noi comandato.


Comunicare tramite il PC con ARDUINO

La comunicazione tra il PC e ARDUINO, prendendo di base la versione UNO, avviene tramite seriale USB . Al momento della connessione al PC si dovrà installare la periferica e i relativi DRIVER , e genericamente ARDUINO utilizzerà la porta COM 3.Tramite apposita programmazione, potremmo comandare il nostro ARDUINO direttamente dal PC, per esempio dal 'SERIAL MONITOR', finestra da cui si invieranno comandi all'ARDUINO e lui eseguirà secondo la logica dello sketch. Sotto posterò un esempio di sketch con relativo video e funzionamento del progettino.


 

const int VERDE = 12; // definisco costante il pin digitale 12 e gli attribuisco il nome VERDE, 
                      // non può cambiare valore

const int ROSSO = 11; // definisco costante il pin digitale 11 e gli attribuisco il nome ROSSO, 
                      // non può cambiare valore
const int GIALLO = 2; // definisco costante il pin digitale 2 e gli attribuisco il nome GIALLO, 
                      // non può cambiare valore
 

void setup() {

pinMode(VERDE, OUTPUT); //definisco il pin digitale 12 come uscita, quindi riceverà dei comandi 
                        // da ARDUINO
pinMode(ROSSO, OUTPUT); //definisco il pin digitale 12 come uscita, quindi riceverà dei comandi
                        // da ARDUINO
pinMode(GIALLO,OUTPUT); //definisco il pin digitale 12 come uscita, quindi riceverà dei comandi
                        // da ARDUINO
Serial.begin(9600);    //definisco il collegamento con ARDUINO tramite questo comando,
                       // collegamento via seriale                    
Serial.println("Cosa vuoi fare?"); //questo è un comando di stampa, verrà stampato a schermo 
                                   //la suddetta frase
Serial.println("Premi V per accendere il LED VERDE e X per spegnerlo");

Serial.println("Premi R per accendere il LED ROSSO e Y per spegnerlo");

Serial.println("Premi G per accendere il LED GIALLO e Z per spegnerlo");

Serial.println("Premi A per accendere tutti i LED e B per spegnerli");

}

void loop() { 

if (Serial.available() > 0)

{ 


char tastopremuto= Serial.read(); //creo una variabile carattere(char) 
                                  //a cui verrà attribuito un valore dalla tastiera 
switch (tastopremuto) { //qui metto "SOTTO CONTROLLO" la variabile e di seguito 
                        //avverrà un ciclo di istruzioni
case 86: // è un carattere ASCII che sarebbe la lettera V

digitalWrite(VERDE,HIGH);

Serial.println("LED VERDEACCESO");

break; //con questo comando esco dal ciclo e salto gli altri casi per verificare
       // i comandi per accendere il LED
case 118:// è un carattere ASCII che sarebbe la lettera v

digitalWrite(VERDE,HIGH); //Il valore HIGH significa calore logico 1,
                          // quindi alto,in questo caso accende il LED

Serial.println("LED VERDEACCESO");

break;

case 88:// è un carattere ASCII che sarebbe la lettera X

digitalWrite(VERDE,LOW);

Serial.println("LED VERDE SPENTO");

break;

case 120:// è un carattere ASCII che sarebbe la lettera x

digitalWrite(VERDE,LOW);

Serial.println("LED VERDE SPENTO");

break;

case 82:// è un carattere ASCII che sarebbe la lettera R

digitalWrite(ROSSO,HIGH);

Serial.println("LED ROSSOACCESO");

break;

case 114:// è un carattere ASCII che sarebbe la lettera r

digitalWrite(ROSSO,HIGH);

Serial.println("LED ROSSOACCESO");

break;

case 89:// è un carattere ASCII che sarebbe la lettera Y

digitalWrite(ROSSO,LOW);

Serial.println("LED ROSSOSPENTO");

break;

case 121:// è un carattere ASCII che sarebbe la lettera y

digitalWrite(ROSSO,LOW);

Serial.println("LED ROSSOSPENTO");

break;

case 71:// è un carattere ASCII che sarebbe la lettera G

digitalWrite(GIALLO,HIGH);

Serial.println("LED GIALLOACCESO");

break;

case 103:// è un carattere ASCII che sarebbe la lettera g

digitalWrite(GIALLO,HIGH); 

Serial.println("LED GIALLOACCESO");

break;

case 90:// è un carattere ASCII che sarebbe la lettera Z 

digitalWrite(GIALLO,LOW); 

Serial.println("LED GIALLOSPENTO"); 

break; 

case 122: // è un carattere ASCII che sarebbe la lettera z 

digitalWrite(GIALLO,LOW); 

Serial.println("LED GIALLOSPENTO"); 

break; 

case 65:// è un carattere ASCII che sarebbe la lettera A 

digitalWrite(VERDE,HIGH); 

digitalWrite(GIALLO,HIGH); 

digitalWrite(ROSSO,HIGH); 

Serial.println("HAI ACCESO TUTTI I LED"); 

break; 

case 97:// è un carattere ASCII che sarebbe la lettera a 

digitalWrite(VERDE,HIGH); 

digitalWrite(GIALLO,HIGH); 

digitalWrite(ROSSO,HIGH); 

Serial.println("HAI ACCESO TUTTI I LED"); 

break; 

case 98:// è un carattere ASCII che sarebbe la lettera B 

digitalWrite(VERDE,LOW); 

digitalWrite(GIALLO,LOW); 

digitalWrite(ROSSO,LOW); 

Serial.println("HAI SPENTO TUTTI I LED"); 

break; 

case 66:// è un carattere ASCII che sarebbe la lettera b 

digitalWrite(VERDE,LOW); 

digitalWrite(GIALLO,LOW); 

digitalWrite(ROSSO,LOW); 

Serial.println("HAI SPENTO TUTTI ILED"); 

break; 

case 13: 

break; 

case 10: 

break; 

default: 

Serial.print("Comando sconosciuto: "); 

Serial.println(tastopremuto); 

Serial.println("Premi V per accendere il LED VERDE e X per spegnerlo"); 

Serial.println("Premi R per accendere il LED ROSSO e Y perspegnerlo"); 

Serial.println("Premi G per accendere il LED GIALLO e Z persegnerlo"); 

Serial.println("Premi A per accendere tutti i LED e B perspegnerli"); }}}

8

Commenti e note

Inserisci un commento

di ,

Basta andare sul forum di arduino

Rispondi

di ,

Qualcosa di già pronto lo trovi se vuoi

Rispondi

di ,

Vanno bene se il tuo programma su ARDUINO è scritto bene per quella APP. Devi far funzionare lo scketch facendo girare anche l'APP per lo smartphone

Rispondi

di ,

Le app già esistenti non vanno bene?

Rispondi

di ,

Si certo che è possibile, solo che devi montare una scheda bluetooth nell arduino e creare un'app che te la faccia funzionare per la piattaforma che utilizzi, non è molto semplice però .

Rispondi

di ,

Ciao PVeng, grazie al progetto che dovrò portare all'esame di maturità, mi sto avvicinando anche io al magnifico Arduino. Ti volevo chiedere, se è possibile far funzionare Arduino con un dispositivo Apple, Android, Windows tramite Bluetooth. Ho cercato un po' in internet, ma sembra che l'argomento sia poco trattato e molto confuso...

Rispondi

di ,

Hai ragione,per la spiegazione credo che in linee generali ho spiegato i comandi più importanti

Rispondi

di ,

Potresti migliorare l' articolo anche solo formattando meglio il sorgente (scritto così è illeggibile) e descrivendolo nel dettaglio.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.