Está en la página 1de 4

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

FACULTAD DE INFORMÁTICA Y ELECTRÓNICA


ESCUELA DE INGENIERÍA EN ELECTRÓNICA CONTROL Y REDES INDUSTRIALES

INTEGRANTES: CÓDIGOS:
SANTIAGO REMACHE 725
VALERIA MESTANZA 875
GEOVANNA LUNA 879
CURSO: SÉPTIMO PARALELO: “A”
FECHA: 2019-05-20
TEMA: COMUNICACIÓN ENTRE ARDUINO Y MATLAB
FUNDAMENTOS DE ROBÓTICA
TEMA: SIMULACIÓN MODELO CINEMÁTICO ROBOT UNICICLO MATLAB Y ARDUINO
I. INTRODUCCIÓN
En este trabajo se dará a conocer la comunicación entre un arduino y Matlab para la simulación y ejecución
en tiempo real de un robot omnidireccional. Antes de nada MATLAB es un lenguaje de alto desempeño
diseñado para realizar cálculos técnicos. MATLAB integra el cálculo, la visualización y la programación en
un ambiente fácil de utilizar donde los problemas y las soluciones se expresan en una notación matemática.
MATLAB es un sistema interactivo cuyo elemento básico de datos es el arreglo que no requiere de
dimensionamiento previo. Esto permite resolver muchos problemas computacionales, específicamente
aquellos que involucren vectores y matrices, en un tiempo mucho menor al requerido para escribir un
programa en un lenguaje escalar no interactivo tal como C o Fortran.[ CITATION MCE02 \l 3082 ]
Es un sistema microcontrolador mono placa, de hardware libre, de fácil uso y bajo coste, desarrollado
inicialmente para facilitar el uso de electrónica en diseños artísticos e interactivos y la aplicación de ésta,
por personas no expertas.[ CITATION Her15 \l 3082 ]
El robot tipo uniciclo es, en general, el elegido por los investigadores a la hora de probar nuevas estrategias
de control por tener una cinemática sencilla. Es una estructura que consta de dos ruedas fijas
convencionales sobre el mismo eje, controladas de manera independiente y una rueda loca que le confiere
estabilidad.[ CITATION Car19 \l 3082 ]

II. OBJETIVO GENERAL

REALIZAR UN CÓDIGO QUE PERMITA LA CONEXIÓN DE MATLAB CON ARDUINO PARA


CONTROLAR UN ROBOT UNICICLO.

III. OBJETIVOS ESPECÍFICOS:

 Investigar cómo realizar la conexión de Matlab con Arduino.


 Implementar la conexión de Matlab con Arduino en el código cedido por el docente.
 Realizar pruebas y resultados con el prototipo de robot móvil.
IV. MARCO TEÓRICO

IV.1. COMUNICACIÓN ENTRE MATLAB Y ARDUINO


Entre las prestaciones básicas del Matlab están: la manipulación de matrices, la representación de datos y
funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación
con programas en otros lenguajes y con otros dispositivos hardware. El paquete Matlab dispone de dos
herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación
multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las
capacidades de Matlab con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de
bloques (blocksets).[ CITATION Vil13 \l 3082 ]
Las características de Matlab engrandecen cuando se tiene una tarjeta de adquisición de datos.
Convirtiéndose en un posible instrumento de medición de cualquier rama. Aunque muchas aplicaciones, la
tarjeta resulta muy costosa, por lo que puede reemplazarse por hardware menos complejo y barato como un
microcontrolador. La comunicación típica entre Matlab y un microcontrolador es mediante el puerto RS-
232, actualmente se usan los puertos virtuales COM, conectados físicamente por cable USB. El mando
general corre por cuenta de una función en Matlab desarrollada con las instrucciones del toolbox de
instrumentación. Es mediante este puerto dónde Matlab inicia la adquisición de datos proveniente del
microcontrolador. [ CITATION Pér19 \l 3082 ]

IV.2. PRESTACIONES Y FUNCIONES


Con el Paquete de soporte de MATLAB® para el hardware Arduino®, puede utilizar MATLAB para
comunicarse de forma interactiva con una placa Arduino a través de un cable USB. Este paquete le permite
realizar tareas tales como:

 Adquirir datos de sensores analógicos y digitales desde su placa Arduino


 Controlar otros dispositivos con salidas digitales y de modulación PWM
 Manejar los motores de CC, servos y pasos (también admite Adafruit Motor Shield)
 Acceder a dispositivos periféricos y sensores conectados a través de I2C o SPI
 Comunícate con una placa Arduino a través de un cable USB o de forma inalámbrica a través de
Wi-Fi.
 Crear complementos personalizados que actúen como interfaz con librerías de software y hardware
adicionales.

IV.3. CÓDIGO
Pasos a seguir:
1. Instalar versión MATLAB 2017b o superiores a esta.
2. Descargar paquete arduino desde MATLAB.
3. Conectar arduino a MATLAB.
4. Realizar el código:

clc
clear all
close all
clear all port
a = arduino('com5','uno')
tm =0.1;
t=0:tm:20;
%velocisdades lineales
u=100*ones(1,length(t));
w=-50*ones(1,length(t));
%posiciones iniciales
xr(1)=0;
yr(1)=0;
phi(1)=0;
for k=1:length(t)
xrp(k)=u(k)*cos(phi(k));
yrp(k)=u(k)*sin(phi(k));
xr(k+1)=xr(k)+tm*xrp(k);
yr(k+1)=yr(k)+tm*yrp(k);
phi(k+1)=phi(k)+tm*w(k);

end
pasos=20;
fig=figure;
set(fig,'position',[10 60 980 600]);
axis square; cameratoolbar
axis([-8 10 -6 6 0 1]);
grid on
MobileRobot;
M1=MobilePlot(xr(1),yr(1),phi(1));
hold on;
plot(xr,yr);
for i=1: pasos :length(t);
if (w==0)
writeDigitalPin (a,'D5',0);
writeDigitalPin (a,'D3',1);
writeDigitalPin (a,'D6',0);
writeDigitalPin (a,'D9',1);
end
if (w>0)
dc=1-(w(i)/360);
writeDigitalPin(a,'D6',0);
writePWMDutyCycle(a,'D9',dc);
writeDigitalPin (a,'D5',0);
writeDigitalPin (a,'D3',1);
end
if (w<0)
dc=1-(abs(w(i))/360);
writeDigitalPin(a,'D5',0);
writePWMDutyCycle(a,'D3',dc);
writeDigitalPin (a,'D6',0);
writeDigitalPin (a,'D9',1);
end

delete(M1);
MobileRobot;
M1=MobilePlot(xr(i),yr(i),phi(i));
hold on
pause(0.5);

end
V. RESULTADOS
Al ejecutar el código, se obtuvieron los resultados deseados; es decir el robot móvil uniciclo
simulado su trayectoria en MATLAB se veía reflejada en el prototipo de robot realizado.

VI. CONCLUSIONES
El uso de Matlab y Arduino permite la realización de prácticas basadas en proyectos para
asignaturas de robótica de manera eficiente. En concreto se han encontrado los siguientes
beneficios:

 Diversidad del tipo de prácticas posibles dentro del campo de la robótica (control,
cinemática, planificación, etc.).
 Interactuar de manera eficiente MATLAB con la plataforma Arduino para la simulación de
proyectos basados en edometría en el área de la robótica.
 Bajo coste de los quipos de prácticas.
 Provee de una herramienta de diseño y desarrollo de sistemas relacionados a la robótica que
puede ser replicada en casa por su bajo coste.
 El aprendizaje basado en proyectos, desarrolla la competencia de trabajo autónomo.
Asimismo se ha estudiado la conexión de MATLAB y arduino para comprobar el correcto
funcionamiento del robot móvil uniciclo de acuerdo a su modelo cinemático.

[1] J. M. C. Esqueda, «Matlab e Interfaces Gráficas,» Tijuana, 2002.

[2] J. Herrero y J. Sánchez, «UNA MIRADA AL MUNDO ARDUINO,» Revista Tecnologí@ y desarrollo , Madrid,
2015.

[3] D. CarolChangL, «http://wikitronica.labc.usb.ve,» [En línea]. Available:


http://wikitronica.labc.usb.ve/index.php/Robot_omnidireccional. [Último acceso: 20 Mayo 2019].

[4] C. Vilca Barreda, «https://www.academia.edu,» 18 Abril 2013. [En línea]. Available:


https://www.academia.edu/9958859/Enlace_Arduino_Matlab. [Último acceso: 20 Mayo 2019].

[5] Á. Pérez, «https://www.academia.edu,» [En línea]. Available:


https://www.academia.edu/4906002/Adquisición_de_datos_Arduino-
Matlab_comunicación_mediante_Xbee. [Último acceso: 20 Mayo 2019].
VII. REFERENCIAS BIBLIOGRÁFICAS

También podría gustarte