- Componenti richiesti
- Schema elettrico
- Comunicazione seriale utilizzando la finestra di comando MATLAB
- Comunicazione seriale tramite MATLAB GUI
MATLAB è un software versatile che può essere utilizzato per un'ampia varietà di applicazioni. Nei tutorial precedenti di MATLAB, abbiamo spiegato come utilizzare MATLAB per controllare il motore DC, il servomotore e gli elettrodomestici. Qui, in questo tutorial, impareremo come utilizzare MATLAB per la comunicazione seriale. Per la ricezione della comunicazione seriale, stiamo qui usando Arduino.
Esistono due modi per configurare la comunicazione seriale tra MATLAB e Arduino, uno utilizza la finestra di comando e l'altro utilizza la GUI di MATLAB. Il codice Arduino per entrambi i metodi rimarrà lo stesso. Se sei nuovo in MATLAB, ti consigliamo di iniziare con un semplice programma di lampeggiamento LED con MATLAB e apprendere la terminologia di base utilizzata in MATLAB.
Componenti richiesti
- Laptop installato MATLAB (Preferenza: R2016a o versioni successive)
- Arduino UNO
- LED (qualsiasi colore)
- Resistenza (330 ohm)
Schema elettrico
Lo schema circuitale sopra rimarrà lo stesso per entrambi i modi per stabilire la comunicazione seriale tra MATLAB e Arduino.
Comunicazione seriale utilizzando la finestra di comando MATLAB
Questo è il metodo semplice per configurare la comunicazione seriale tra Arduino e MATLAB. Qui invieremo semplicemente i dati da MATLAB ad Arduino in serie utilizzando la finestra di comando e quindi Arduino leggerà i dati seriali in arrivo. Quindi questi dati trasmessi in serie possono essere utilizzati per controllare qualsiasi cosa sia collegata ad Arduino. Qui abbiamo collegato un LED ad Arduino, che verrà acceso e spento in base ai dati ricevuti in serie da Arduino.
Per prima cosa, carica il codice Arduino dato in Arduino UNO e quindi inizia a codificare nella finestra dell'editor di MATLAB. Per aprire un nuovo script dell'editor fare clic su " Nuovo script" come mostrato nell'immagine sottostante:
Quindi, copia e incolla il codice MATLAB completo di seguito nella finestra dell'editor per la comunicazione seriale tra MATLAB e Arduino.
% Codice MATLAB per la comunicazione seriale tra Arduino e MATLAB x = seriale ('COM18', 'BAUD', 9600); fopen (x); go = true; mentre vai a = input ('Premi 1 per accendere il LED e 0 per spegnerlo:'); fprintf (x, a); if (a == 2) go = false; fine fine
Nel codice dato, il comando seguente viene utilizzato per definire la comunicazione seriale in MATLAB. Assicurati che il numero della porta com sia il numero della porta su cui è connesso Arduino e la velocità di trasmissione dovrebbe essere la stessa in entrambi i codici di Arduino e MATLAB.
x = seriale ('COM18', 'BAUD', 9600);
Per aprire la porta seriale utilizzare il comando seguente, fopen (x);
Il comando seguente viene utilizzato per inviare i dati da MATLAB ad Arduino in modo seriale, dove x sta per chiamare seriale e a è il valore inserito dall'utente.
fprintf (x, a);
Abbiamo usato la funzione while per creare un ciclo infinito e ogni volta che l'utente inserisce il numero "2" il ciclo si interrompe.
mentre vai a = input ('Premi 1 per accendere il LED e 0 per spegnerlo:'); fprintf (x, a); if (a == 2) go = false; fine fine
Dopo aver completato la codifica dello script dell'editor MATLAB, fare clic su ' RUN ' per eseguire il programma come mostrato nell'immagine sottostante,
MATLAB impiega alcuni secondi per elaborare il codice e avviare la comunicazione seriale, attendere che MATLAB mostri il messaggio "OCCUPATO" nell'angolo inferiore sinistro della schermata del software, come mostrato nell'immagine sottostante.
Ora vedrai la finestra di comando per inviare l'input dell'utente, abbiamo impostato il messaggio predefinito, 'Premere 1 per accendere il LED e 0 per spegnere:'
Invia "1" per accendere il LED, "0" per spegnere il LED e "2" per interrompere l'operazione. Puoi impostare qualsiasi numero per qualsiasi attività, tutto ciò che devi fare è cambiare il codice Arduino di conseguenza. Alla fine viene fornito il codice Arduino completo.
Puoi guardare il video qui sotto per comprendere il processo completo di invio di dati seriali da MATLAB ad Arduino utilizzando la finestra di comando.
Comunicazione seriale tramite MATLAB GUI
Per dimostrare la comunicazione seriale utilizzando MATLAB GUI, creeremo due pulsanti grafici utilizzando MATLAB per accendere e spegnere il LED collegato ad Arduino. I dati verranno inviati in serie da MATLAB ad Arduino facendo clic su questi pulsanti per accendere e spegnere il LED. Arduino conterrà il codice per ricevere i dati seriali da MATLAB e controllare il LED in base ai dati seriali ricevuti. Il codice Arduino rimarrà lo stesso del precedente, l'unica differenza è che, in precedenza stavamo inviando i dati seriali '1' e '0' tramite la finestra di comando di MATLAB, e ora gli stessi dati verranno inviati tintinnando su due pulsanti grafici.
Per avviare la GUI, digita il comando seguente nella finestra di comando
guida
Si aprirà una finestra popup, quindi selezionare una nuova GUI vuota come mostrato nell'immagine sottostante,
Ora scegli due pulsanti per accendere e spegnere il LED, come mostrato di seguito,
Per ridimensionare o modificare la forma dei pulsanti, fai clic su di esso e potrai trascinare gli angoli del pulsante. Facendo doppio clic sul pulsante è possibile modificare il colore, la stringa e il tag di quel particolare pulsante. Abbiamo personalizzato due pulsanti come mostrato nell'immagine sottostante.
Puoi personalizzare i pulsanti secondo la tua scelta. Ora, quando lo salvi, verrà generato un codice nella finestra Editor di MATLAB. Modifica questo codice in base all'attività che desideri eseguire dal tuo Arduino utilizzando la GUI MATLAB. Quindi di seguito abbiamo modificato il codice MATLAB. Puoi saperne di più sulla finestra dei comandi, sulla finestra dell'editor ecc. Nel tutorial Introduzione a MATLAB.
Alla fine di questo progetto viene fornito il codice MATLAB completo per stabilire la comunicazione seriale tra MATLAB e Arduino. Inoltre includiamo il file della GUI (.fig) e il file di codice (.m) qui per il download (fare clic con il tasto destro sul collegamento, quindi selezionare "Salva collegamento con nome…"), utilizzando i quali è possibile personalizzare i pulsanti secondo le proprie esigenze. Di seguito sono riportate alcune modifiche che abbiamo fatto per controllare il LED collegato ad Arduino.
Copia e incolla il codice sottostante sulla riga n. 74 per impostare la porta seriale e la velocità di trasmissione.
cancella tutto; x globale; x = seriale ('COM18', 'BAUD', 9600); % Assicurarsi che la velocità di trasmissione e la porta COM siano % uguali a quelle dell'IDE di Arduino fopen (x);
dove, fopen (x) viene utilizzato per aprire la porta seriale per la comunicazione seriale.
Quando scorri verso il basso, vedrai che ci sono due funzioni create per entrambi i pulsanti nella GUI. Ora scrivi il codice in entrambe le funzioni in base all'attività che desideri eseguire al clic.
Nella funzione del pulsante LED-ON , copia e incolla il codice sottostante appena prima della fine della funzione per accendere il LED. Come puoi vedere nel codice seguente, fprintf (x, 1) viene utilizzato per inviare dati seriali da MATLAB ad Arduino seriale. Qui stiamo inviando '1' alla seriale Arduino e se controlli il codice Arduino, scoprirai che Arduino illuminerà il LED rendendo il suo 13 ° pin ALTO, quando riceve '1' sulla sua porta seriale.
x globale; fprintf (x, 1);
Nella funzione del pulsante LED-OFF , copia e incolla il codice sottostante appena prima della fine della funzione per spegnere il LED. Come puoi vedere nel codice seguente, fprintf (x, 0) viene utilizzato per inviare dati seriali da MATLAB ad Arduino seriale. In questa parte, stiamo inviando '0' alla seriale Arduino e se controlli il codice Arduino, scoprirai che Arduino spegnerà il LED rendendo il suo 13 ° pin BASSO, quando riceverà '0' sulla sua porta seriale.
x globale; fprintf (x, 0);
Dopo aver completato la codifica della GUI MATLAB e impostato l'hardware in base allo schema del circuito, è sufficiente fare clic sul pulsante Esegui per eseguire il codice modificato nel file.m.
MATLAB potrebbe impiegare alcuni secondi per rispondere, non fare clic su alcun pulsante della GUI finché MATLAB non mostra l'indicazione OCCUPATO, che puoi vedere nell'angolo inferiore sinistro dello schermo come mostrato di seguito,
Quando tutto è pronto, fare clic sui pulsanti LED-ON e LED-OFF per accendere e spegnere il LED. Quando si preme il pulsante LED-ON , il 13 ° pin di Arduino diventa ALTO e il LED collegato a questo PIN inizia a lampeggiare, e quando si preme il pulsante LED-OFF , il 13 ° pin di Arduino diventa BASSO, il che fa spegnere il LED.
Puoi guardare il video qui sotto per comprendere il processo completo di invio di dati seriali da MATLAB ad Arduino utilizzando la GUI di MATLAB.