In questa guida vedremo come gestire la scheda Arduino UNO dal software MATLAB attraverso una comunicazione seriale. Questo software molto usato nell’ambito ingegneristico consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi.
Come prima cosa stabiliremo un protocollo di comunicazione seriale tra la scheda Arduino e il Software MATLAB. La comunicazione seriale verra gestita dal pacchetto “ArduinoIO” che possiamo scaricare da qui
Vediamo un semplice diagramma di come avverrà la comunicazione
Per continuare di cosa avermo bisogno:
- Scheda Arduino UNO (funziona anche con le versioni Genuino,MEGA, Micro)
- Software MATLAB
- pacchetto “ArduinoIO” (download)
Scaricato il pacchetto copiamo l’intera cartella scompattata ArduinoIO nel workspace di MATLAB (su Mac di default il percorso è: /utente/Documents/MATLAB/). Nella cartella troverete i seguenti file
Aprimamo MATLAB e nella Command Windows digitiamo il comando
install_arduino
per configurare il necessario. Il passo successivo è quello di caricare il file adioes.pde (/pde/adioes/adioes.pde) tramite IDE di Arduino sulla scheda su, questa permettera ad Arduino di codificare i codici che inviamo tramite MATLAB.
Per caricarlo apriamo l’IDE di Arduino -> File -> Apri… -> selezioniamo il file ‘adioes.pde’ -> Carica.
Fatto ciò abbiamo preparato sia l’ambiente MATLAB che la scheda Arduino per la comunicazione, non ci resta che collegare la scheda alla porta USB del nostro PC, andare in MATLAB ed eseguire il comando
port dovrà essere sostituito con il nome della porta dove Arduino è collegato, se non la conoscete andate nell’IDE e sotto Strumenti -> Porta Seriale troviamo il nome della porta. Nel mio caso la port è “/dev/cu.usbmodemfa131” sui sistemi Windows troverete ad esempio COM1.
Se tutto è andato a buon fine ci ritroveremo il seguente messaggio in MATLAB
Attempting connection ………….
Analog & Digital I/O + Encoders + Servos (adioes.pde) sketch detected !
Arduino successfully connected !
Adesso potremo usare la magggior parte dei comandi che usiamo per programmare Arduino. Per conoscere tutti i comandi che possiamo utilizzare e avere una descrizione di questi, digitiamo il comando
e cliccare su Reference page for arduino
Programma Test
Creiamo un programma di test in MATLAB che farà lampeggiare il nostro LED (useremo il pin digitale 12, al quale colleghiamo un LED con una resistenza limitatrice da 330Ω). Lo script sarà semplicemente un ciclo for nel quale diamo per un secondo il livello alto al pin 13 e per un altro secondo il livello basso e ripetiamo lo script per 30 secondi. Quindi sarà:
pinMode(a,12,‘output’); % Assegna il pin 12 come uscita
tempo = 30; % imposta il tempo di lameggiamento a 30 secondi
i=0; % creiamo un contatore e lo azzeriamo
while i<tempo/2
digitalWrite(a,12,1); % imposta il pin 12 a livello alto
pause(1); % attende 1 secondo
digitalWrite(a,12,0); % imposta il pin 12 a livello basso
pause(1); % attende 1 secondo
i=i+1; % incremente il contatore
end