- Componentes requeridos
- Diagrama de circuito
- Comunicación en serie mediante la ventana de comandos de MATLAB
- Comunicación en serie usando MATLAB GUI
MATLAB es un software versátil que se puede utilizar para una amplia variedad de aplicaciones. En tutoriales anteriores de MATLAB, hemos explicado cómo utilizar MATLAB para controlar motores de CC, servomotores y electrodomésticos. Aquí, en este tutorial, aprenderemos cómo usar MATLAB para comunicación serial. Para el extremo receptor de la comunicación en serie, aquí estamos usando Arduino.
Hay dos formas de configurar la comunicación en serie entre MATLAB y Arduino, una usando la ventana de comandos y la otra usando MATLAB GUI. El código Arduino para ambos métodos seguirá siendo el mismo. Si es nuevo en MATLAB, se recomienda comenzar con un programa simple de parpadeo de LED con MATLAB y aprender la terminología básica utilizada en MATLAB.
Componentes requeridos
- Laptop instalada en MATLAB (preferencia: R2016a o versiones superiores)
- Arduino UNO
- LED (cualquier color)
- Resistencia (330 ohmios)
Diagrama de circuito
El diagrama de circuito anterior seguirá siendo el mismo para ambas formas de establecer la comunicación en serie entre MATLAB y Arduino.
Comunicación en serie mediante la ventana de comandos de MATLAB
Este es el método simple para configurar la comunicación en serie entre Arduino y MATLAB. Aquí simplemente enviaremos los datos de MATLAB al Arduino en serie usando la ventana de comandos y luego Arduino leerá los datos en serie entrantes. Luego, estos datos transmitidos en serie se pueden usar para controlar cualquier cosa conectada al Arduino. Aquí hemos conectado un LED a Arduino, que se encenderá y apagará de acuerdo con los datos recibidos en serie por Arduino.
Primero, cargue el código Arduino dado en Arduino UNO y luego comience a codificar en la ventana del editor MATLAB. Para abrir una nueva secuencia de comandos del editor, haga clic en ' Nueva secuencia de comandos' como se muestra en la siguiente imagen:
Luego, copie y pegue el código completo de MATLAB a continuación en la ventana del editor para la comunicación en serie entre MATLAB y Arduino.
% Código MATLAB para comunicación serial entre Arduino y MATLAB x = serial ('COM18', 'BAUD', 9600); fopen (x); ir = verdadero; while go a = input ('Presione 1 para encender el LED y 0 para apagarlo:'); fprintf (x, a); si (a == 2) ir = falso; fin fin
En el código dado, el siguiente comando se usa para definir la comunicación en serie en MATLAB. Asegúrese de que el número de puerto com sea el número de puerto en el que está conectado Arduino y que la velocidad en baudios debe establecerse igual en ambos códigos de Arduino y MATLAB.
x = serial ('COM18', 'BAUD', 9600);
Para abrir el puerto serie, use el siguiente comando, fopen (x);
El siguiente comando se usa para enviar datos desde MATLAB a Arduino en serie, donde x es para llamar a serie y a es el valor ingresado por el usuario.
fprintf (x, a);
Tenemos la función while para crear un bucle infinito y siempre que el usuario ingrese el número '2' el bucle se romperá.
while go a = input ('Presione 1 para encender el LED y 0 para apagarlo:'); fprintf (x, a); si (a == 2) ir = falso; fin fin
Después de completar la codificación del script del editor MATLAB, haga clic en ' EJECUTAR ' para ejecutar su programa como se muestra en la imagen de abajo,
MATLAB tarda unos segundos en procesar el código e iniciar la comunicación en serie, espere hasta que MATLAB muestre el mensaje 'BUSY' en la esquina inferior izquierda de la pantalla del software, como se muestra en la imagen de abajo.
Ahora, verá la ventana de comando para enviar la entrada del usuario, hemos configurado el mensaje predeterminado, 'Presione 1 para encender el LED y 0 para apagarlo:'
Envíe '1' para encender el LED, '0' para apagar el LED y '2' para interrumpir la operación. Puede establecer cualquier número para cualquier tarea, todo lo que tiene que hacer es cambiar el código Arduino en consecuencia. El código completo de Arduino se proporciona al final.
Puede ver el video a continuación para comprender el proceso completo de envío de datos en serie desde MATLAB a Arduino usando la ventana de comandos.
Comunicación en serie usando MATLAB GUI
Para demostrar la comunicación serial usando MATLAB GUI, crearemos dos botones gráficos usando MATLAB para encender y apagar el LED conectado al Arduino. Los datos se enviarán en serie desde MATLAB a Arduino al hacer clic en estos botones para encender y apagar el LED. Arduino contendrá el código para recibir datos en serie de MATLAB y controlar el LED de acuerdo con los datos en serie recibidos. El código de Arduino seguirá siendo el mismo que el anterior, la única diferencia es que, anteriormente, enviábamos datos en serie '1' y '0' a través de la ventana de comandos de MATLAB, y ahora se enviarán los mismos datos al hacer clic en dos botones gráficos.
Para iniciar la GUI, escriba el siguiente comando en la ventana de comandos
guía
Se abrirá una ventana emergente, luego seleccione una nueva GUI en blanco como se muestra en la imagen de abajo,
Ahora elija dos botones para encender y apagar el LED, como se muestra a continuación,
Para cambiar el tamaño o cambiar la forma de los botones, simplemente haga clic en él y podrá arrastrar las esquinas del botón. Al hacer doble clic en el botón pulsador, puede cambiar el color, la cuerda y la etiqueta de ese botón en particular. Hemos personalizado dos botones como se muestra en la imagen de abajo.
Puede personalizar los botones según su elección. Ahora, cuando guarde esto, se generará un código en la ventana del Editor de MATLAB. Edite este código de acuerdo con la tarea que desea realizar con su Arduino utilizando la GUI de MATLAB. Entonces, a continuación, hemos editado el código MATLAB. Puede obtener más información sobre la ventana de comandos, la ventana del editor, etc.en el tutorial Introducción a MATLAB.
El código completo de MATLAB, para establecer la comunicación serial entre MATLAB y Arduino, se proporciona al final de este proyecto. Además, incluimos el archivo GUI (.fig) y el archivo de código (.m) aquí para descargar (haga clic con el botón derecho en el enlace y luego seleccione 'Guardar enlace como…'), mediante el cual puede personalizar los botones según sus necesidades. A continuación se muestran algunos ajustes que hicimos para controlar el LED conectado con Arduino.
Copie y pegue el siguiente código en la línea no. 74 para configurar el puerto serie y la velocidad en baudios.
limpiar todo; x global; x = serial ('COM18', 'BAUD', 9600); % Asegúrese de que la velocidad en baudios y el puerto COM sean % iguales que en Arduino IDE fopen (x);
donde, fopen (x) se usa para abrir el puerto serial para la comunicación serial.
Cuando se desplaza hacia abajo, verá que hay dos funciones creadas para ambos botones en la GUI. Ahora escriba el código en ambas funciones de acuerdo con la tarea que desea realizar al hacer clic.
En la función del botón LED-ON , copie y pegue el siguiente código justo antes del final de la función para encender el LED. Como puede ver en el siguiente código, fprintf (x, 1) se usa para enviar datos en serie desde MATLAB a Arduino en serie. Aquí estamos enviando '1' a la serie Arduino y si marca el código de Arduino, se encuentra que Arduino se iluminará el LED al hacer su 13 º pin a nivel alto, cuando se recibe '1' en su puerto serie.
x global; fprintf (x, 1);
En la función del botón LED-OFF , copie y pegue el siguiente código justo antes del final de la función para apagar el LED. Como puede ver en el siguiente código, fprintf (x, 0) se usa para enviar datos en serie desde MATLAB a Arduino en serie. En esta parte, estamos enviando '0' a la serie Arduino y si marca el código de Arduino, se encuentra que Arduino se apagará el LED al hacer su 13 º BAJA alfiler, cuando recibe '0' en su puerto serie.
x global; fprintf (x, 0);
Después de completar la codificación de la GUI de MATLAB y configurar el hardware de acuerdo con el diagrama de circuito, simplemente haga clic en el botón Ejecutar para ejecutar el código editado en el archivo.m.
MATLAB puede tardar unos segundos en responder, no haga clic en ningún botón de la GUI hasta que MATLAB muestre la indicación OCUPADO, que puede ver en la esquina inferior izquierda de la pantalla como se muestra a continuación.
Cuando todo esté listo, haga clic en el botón LED-ON y LED-OFF para encender y apagar el LED. Cuando se presiona LED-ON , el 13 º pin de Arduino pasa a ALTO y el LED conectado a este PIN comienza a brillar intensamente, y cuando se pulsa el botón OFF-LED , 13 º pin de Arduino pasa a BAJO que hace que el LED se apague.
Puede ver el video a continuación para comprender el proceso completo de envío de datos en serie desde MATLAB a Arduino utilizando la GUI de MATLAB.