Arduino & MATLAB – Comunicazione Seriale

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

a=arduino(‘port’);

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

help arduino

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

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Ultimi Articoli