Una volta preparato il programma, puoi effettuare la compilazione e immediatamente dopo effettuare il caricamento del firmware generato sulla scheda Arduino.
L’IDE Arduino permette di scrivere il programma anche se la scheda Arduino non è collegata al computer.
Per compilare il programma e tradurlo in linguaggio macchina, l’IDE ha bisogno di conoscere qual’è il tipo di scheda Arduino su cui verrà installato.
Arduino UNO ha un microcontrollore ATMega 328, ma altre schede Arduino hanno microcontrollori diversi. Lo stesso programma presente nell’editor sarà tradotto dall’IDE nel linguaggio macchina appropriato per la scheda, richiamando il compilatore specifico.
Prima di effettuare le operazioni di compilazione e caricamento, è importante collegare la scheda Arduino ad una porta USB del proprio PC e poi selezionare il modello di scheda e la “porta seriale” virtuale nel campo “a discesa” che si trova in alto a sinistra, accanto al pulsante di compilazione caricamento nella finestra dell’IDE.
Ti consigliamo di utilizzare schede originali Arduino perché sono automaticamente riconosciute dall’IDE. Aprendo il campo di selezione, troverai immediatamente la riga che indica la porta seriale da usare con accanto il nome della scheda Arduino.
Usando schede di terze parti potresti dover indicare esplicitamente il tipo di scheda e individuare da te la porta seriale.
Ricorda che se non imposti questi due parametri, scheda e porta seriale, non riuscirai a compilare e caricare il firmware nella scheda Arduino.
Questo aspetto pone spesso problemi a coloro che iniziano ad usare Arduino per la prima volta, per cui vale la pena fornire qualche chiarimento.
I computer degli anni ’90 avevano dei connettori per comunicare con dispositivi quali stampanti e modem chiamati porte seriali. Un collegamento seriale è un collegamento via cavo in cui le cifre binarie che compongono i numeri e quindi le informazioni trasmesse, in sequenza l’uno dopo l’altro.
Approfondiremo le comunicazioni elettroniche nella prossima missione.
Le modalità di trasmissione, chiamate protocolli, erano solitamente aderenti ad uno standard denominato RS232.
I dispositivi hardware per la programmazione dei microcontrollori venivano collegati al computer attraverso un cavo seriale RS232. Il microcontrollore veniva montato su uno slot nel dispositivo di programmazione, il dispositivo veniva collegato al PC con un cavo seriale e sull’IDE si impostava il numero della porta seriale fisica a cui era collegato il dispositivo.
Su un PC potevano essere presenti diversi connettori. Ciascun connettore era numerato. Sui sistemi windows tali connettori erano denominati COM0, COM1, COM2 e così via.
Nei computer moderni le porte seriali non sono più presenti e al loro posto troviamo i connettori nello standard USB.
Anche l’USB è uno standard di comunicazione di tipo seriale. Il tipo di cavo utilizzato è diverso dai cavi RS232, ma la comunicazione logica dello standard RS232 può essere simulata.
Sui dispositivi di programmazione dei microcontrollori moderni viene impiegato un componente denominato UART (Universal Asyncronous Receiver Transmitter) in grado di adattare diversi protocolli seriali tra loro.
Collegando una UART ad un PC tramite un cavo USB è possibile emulare una comunicazione RS232 seriale.
Anche la scheda Arduino, di fatto, è un dispositivo per la programmazione del suo microcontrollore. Il microcontrollore è saldato sulla scheda Arduino o inserito in uno slot come nel caso del classico Arduino UNO R2, e sulla scheda è presente una UART di tipo smart, che tra l’altro fornisce l’indicazione sul tipo di scheda.
Il sistema operativo del PC, quando viene collegato Arduino tramite il cavo USB, è in grado di riconoscere la UART e attivare un software di emulazione del protocollo RS232, creando una porta di comunicazione virtuale. I sistemi Unix come Mac Os e Linux hanno questa funzionalità già presente nel sistema di base, mentre per Windows deve essere installato un apposito software chiamato driver (l’operazione è inclusa nell’installazione dell’IDE).
La porta virtuale si presenta al sistema operativo del computer come si presenterebbe una porta fisica. La differenza è che mentre le porte fisiche sono effettivamente presenti ed etichettate sul PC, le porte virtuali vengono create al volo e hanno una numerazione apparentemente casuale.
Collegando Arduino potrebbe quindi essere generata una porta chiamata COM0, ma anche COM1, COM2 o COM6.
Scollegando Arduino la porta virtuale viene eliminata.
Tieni presente che se ricolleghi Arduino, non c’è nessuna garanzia che la nuova porta virtuale abbia lo stesso nome di quella generata in occasione collegamento precedente.
Il modo migliore per gestire la cosa è quello di aprire la tendina a discesa relativa all’identificazione di porta e scheda sull’IDE di Arduino quando Arduino non è collegato.
La lista delle porte seriali potrebbe essere vuota oppure contenere già delle porte virtuali (Arduino non è l’unico dispositivo ad utilizzare le porte seriali, potresti avere altri software che le usano).
A questo punto chiudi la tendina a discesa, collega Arduino, attendi uno o due secondi e riaprila. Dovrebbe comparire una nuova porta seriale. Quella sarà la porta da selezionare.
Se non compare una nuova porta seriale, vul dire che c’è qualche problema di collegamento, funzionamento della scheda o del cavetto USB. Su Windows potrebbe non essere installato il driver.
Nel caso in cui non venisse generata la nuova porta virtuale prova a scollegare tutto, ricollegare verificando le connessioni, prova anche a cambiare porta USB oppure a riavviare il PC.
Solitamente, se tutto è stato installato correttamente non dovresti riscontrare problemi.