Está en la página 1de 8

Código: 3007364

GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 1 de 8

GUÍA PRÁCTICA N°1: INTRODUCCIÓN A LA PLATAFORMA ARDUINO UNO

1. INTRODUCCIÓN.
En la siguiente guía se plantea una introducción mediante videos tutoriales a la plataforma ARDUINO
UNO usando MATLAB.

2. OBJETIVOS
• Identificar los elementos necesarios para la comunicación cableada entre el computador y una
plataforma ARDUINO UNO por medio de simulación utilizando UnoArduSim de Queen’s University.
• Reconocer los parámetros de configuración que requieren los dispositivos para establecer una
comunicación serial exitosa.
• Verificar la correcta transmisión y recepción de datos entre dispositivos.

3. VIDEOS TUTORIALES
En general en la Página Web https://www.youtube.com/channel/UCDGAg1pqcy8IScMqHHTy9Gg
encuentras un curso completo en el que explican el manejo de Arduino y la programación desde su IDE
(Arduino Integrated Development Environment). Algunos videos importantes que no te puedes perder
de ver son:
• Tutorial 2: Download and install the Arduino IDE
https://www.youtube.com/watch?v=w55Pd4dU5-w
• 5 Ways to Destroy an Arduino En: https://www.youtube.com/watch?v=WmcMrKELkcs
• 5 More Ways to Destroy an Arduino En: https://vimeo.com/128411207
• Tutorial MATLAB + PROTEUS ARDUINO https://www.youtube.com/watch?v=M8Z_mREuINg
https://www.instructables.com/Processing-using-the-proteus-arduino-model/

4. PARTE 1
4.1. MARCO TEORICO: PROTOCOLO RS-232
Típicamente un PC dispone de varios puertos de serie: el puerto USB (Universal Serial Port) y el ya casi
olvidado RS-232. El estándar RS-232 proporciona una comunicación serial punto a punto para el
intercambio de información entre una terminal de datos y un módem. Actualmente, este protocolo ha
sido reemplazado por las interfaces USART (Universal Synchronous/Asynchronous
Receiver/Transmitter), que con menos pines, y menos espacio, permiten una comunicación punto a
punto más cómoda y la posibilidad de establecer la transferencia de datos de manera síncrona o
asíncrona.
El estándar RS-232 fue desarrollado en los años en los años 60 con el propósito de comunicar equipos
que manejaran el protocolo que lleva su mismo nombre. Un equipo terminal de dato (DTE por sus siglas
en inglés), que era el encargado de almacenar la información, compartía información con un equipo de
comunicación de datos (DCE), que tenía la tarea de compartir información con otros dispositivos DCE,
generalmente a través de líneas telefónicas. Según la norma, la conexión entre los dispositivos no podía
superar los 15 metros a una velocidad de transmisión de 20 kbps. Sus estados lógicos se representaban
Código: 3007364
GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 2 de 8

con voltajes bipolares, un 1 lógico era representado por valores entre -5 y -15 voltios, mientras que el 0
lógico lo representaban valores entre +5 y +15 voltios. Inicialmente, bajo el estándar se vendían
interfaces de 25 pines (DB25) para RS-232, que con el paso del tiempo fueron reduciendo su tamaño
hasta llegar a las interfaces de 9 pines (DE9).

Figura 2. Estructura de una trama de datos de una interfaz RS-232.

Universal Asynchronous Receiver Transmitter (UART)


Actualmente, la implementación de las interfaces UART y USART (como los diferentes tipos de USB,
por ejemplo) han desplazado completamente el uso del protocolo RS-232 debido a los altos flujos de
información que pueden manejar utilizando solo 4 pines de los 9 que proponía el estándar simplificado.
Además, los niveles lógicos de voltaje son diferentes a los del RS-232, donde un 1 lógico se representa
con valores de voltaje positivos (generalmente 5 voltios o 3.3 voltios) y un 0 lógico es representado con
un valor de cero voltios.

Figura 3. Estructura de una trama de datos serie en una interfaz UART con 8 bits de datos, 1 bit de inicio, 1 bit de parada y
ningún bit de paridad.

Algunas características que comparten la comunicación por RS-232 y la UART/USART son:

• Conexiones Tx y Rx: Son los pines de transmisión y recepción que cada interfaz tiene para
comunicarse con otro dispositivo. Conforman el canal de información que, dependiendo de cómo
se configure, puede ser Simplex, Duplex o Full Duplex.
• Configuraciones de puerto serial: Independientemente de la cantidad de datos que pueda
manejar un protocolo u otro, utilizan los mismos parámetros de configuración para hacer que los
equipos conectados se entiendan entre ellos. Estas configuraciones se explicarán conforme se
vaya desarrollando la práctica.
De manera estricta, los parámetros para configurar una comunicación serial entre dos dispositivos son:

• Tasa de baudios (Baud Rate): Representa la cantidad se símbolos por segundo que pasan por
el medio. Los valores normalmente utilizado para la Tasa de Baudios son 300, 600, 1200, 2400,
4800, 9600, 14400, 19200, 28800, 38400, 57600 y 115200.
Código: 3007364
GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 3 de 8

• Bits de Dato: Indica la cantidad de bits que se transmitirán, y que también se esperan recibir, en
cada paquete de datos. Los valores más comunes de bits por paquete son 5, 7 y 8 bits.
• Bits de parada: Son bits que indican dónde termina cada paquete de datos enviados. Pueden
utilizarse paradas de 1, 1.5 o 2 bits.
• Paridad: Indica la manera en la que se hará la verificación de errores en cada paquete recibido.
Existen 4 tipos de paridad: par, impar, marcada o espaciada; también se puede optar por no
utilizar paridad.

4.2. INSTALAR UNOARDUSIM Y PUERTO COM VIRTUAL


Para simular la conexión con un Arduino uno, se utilizará el software UnoArduSim, la cual es una
herramienta educativa libre y gratuita creada por el Profesor Stan Simmons de la Universidad de
Queen´s, incluye motores de corriente continua y servomotores, buses de comunicación serie RS232,
I2C, SPI, generador de ondas analógicas y digitales, altavoz piezoeléctrico, LEDs, pulsadores,
resistencias pull-ups y pull-downs, potenciómetros deslizantes, panel de seguimiento de las variables
del programa y un osciloscopio virtual para la visualización de señales de salida analógicas y
digitales.Una de las desventajas de esta versión de prueba es el no poder guardar los proyectos, por lo
que se utilizarán ejemplos como base de las simulaciones.
Para descargarlo, hacerlo en el siguiente link: https://www.sites.google.com/site/unoardusim/services

Seleccionar la versión más reciente en la parte inferior de la página (2.9.1) y descargar. Luego extraer
el contenido del archivo comprimido y encontrará el programa:

Para la conexión real de un Arduino, convierte un puerto usb a puerto serial que soporta el protocolo RS-
232, el cuál crearía un puerto COM en el administrador de dispositivos:

Sin embargo, en este caso se utilizará un simulador de este puerto serial para lograr la comunicación
entre UnoArduSim y Matlab. Para esto, utilizaremos el software Virtual Serial Port Emulator (VSPE)
disponible en la página: http://www.eterlogic.com/Downloads.html donde seleccionaremos la versión
necesaria (32 o 64 bits), extraer el comprimido e instalar (No es necesario reiniciar el equipo).
Código: 3007364
GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 4 de 8

Una vez instalado iremos al botón de nueva conexión (1), luego eligiremos Connector (2), Next (3) y
Finish(4), por último daremos click en el botón play(5) para comenzar la emulación del puerto COM1.

4.3. UNOARDUSIM + MATLAB


Una ves instalado el puerto serial virtual, abrir el programa UnoArduSim y cargar el archivo de la actividad
a trabajar (Por ejemplo: Actividad1.ino), el cual contiene la programación que se cargaría en el arduino:

Una gran ventaja es que no necesita el archivo compilado .hex, simplemente el .ino.
Código: 3007364
GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 5 de 8

Nótese que en la carpeta de la actividad hay un archivo myIODevs.txt, el cuál le define al programa
UnoArduSim, cuáles son los dispositivos externos (leds, motores, sensores) para utilizar y la
configuración del puerto serial.

Para iniciar el simulador, dar click en el menú Execute y luego Run, o utilizar la tecla F9.

Si se desea ver el contenido enviado por el puerto serial, hacer doble click en el recuadro
morado:
Código: 3007364
GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 6 de 8

4.4. ACTIVIDAD 1: COMUNICACIÓN SERIAL – ENVIANDO DATOS DE ARDUINO A


MATLAB USANDO EL SOFTWARE DE ARDUINO
(http://allaboutee.com/2011/07/04/how-to-send-data-from-the-arduino-to-matlab/)

Configuración en Arduino UNO


Se configurará la comunicación de tipo serial en el
entorno de programación de Arduino para enviar una
variable desde el Arduino a MATLAB. Para ello, se
utilizarán los siguientes comandos:
Serial.begin(): En el void setup(), que es la sección de
inicialización y configuración en el entorno de
programación de Arduino, se utilizará este comando
para configurar los parámetros de la comunicación entre
el computador y la placa. De la misma manera que en
MATLAB, se utilizará la configuración por defecto con
una tasa de baudios de 9600. La información para
configurar los demás parámetros de este comando se
puede consultar en esta página:
https://www.arduino.cc/en/serial/begin.

• Serial.println(): Imprime datos en el puerto serie como texto ASCII legible por el usuario seguido
de un carácter de retorno de carro (ASCII 13, o '\ r') y un carácter de nueva línea (ASCII 10 o '\ n').
Este comando toma las mismas formas que Serial.print ().

Configuración de MATLAB: Para esta actividad solo se configurará explícitamente la tasa de


baudios, los demás parámetros serán los predeterminados por MATLAB, es decir, 8 bits de dato, 1 bit
de parada y no se utilizará paridad. La información de cómo configurar los demás parámetros se puede
encontrar en el help de MATLAB para el comando “serial()” . “fopen(puerto)” se abre el puerto serial para
la comunicación.
Para saber a qué puerto COM está conectado el Arduino UNO, se debe dirigir al administrador de
dispositivos y buscar en la lista “Puertos (COM y LTP)”, tal y como se muestra en la Figura 4. Luego
deberá reemplazar “COMX” por el puerto COM asociado al microcontrolador.
Código: 3007364
GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 7 de 8

En caso de que tenga errores en relación al acceso del


puerto desde Matlab, puede integrar en código la
siguiente línea justo antes de invocar la función serial():

Este
comando realiza una limpieza del puerto X, garantizando
que el canal de comunicación estará despejado al
momento de iniciar la comunicación

4.5. ACTIVIDAD 2: COMUNICACIÓN SERIAL – ENVIANDO DATOS DE MATLAB A


ARDUINO USANDO EL SOFTWARE DE ARDUINO
Este programa activará o desconectará el LED incorporado de Arduino en el Pin 13
cuando presione 1 o 2 respectivamente, presionando 0 saldrá del programa MATLAB y
finalizará la comunicación con el Arduino.

Configuración en Arduino UNO


• Serial.available(): Es una
función que verifica si hay información
en el puerto serial y devuelve el
número de bytes que hay para leer, es
decir que si devuelve un valor de cero,
no hay información para leer en el
puerto.
Se utiliza generalmente para habilitar
secciones de código encerradas por
condicionales. En este caso las
instrucciones dentro del condicional
solo serán leídas cuando haya alguna
información en el puerto serial.
• Serial.read(): Este comando
extrae, uno a uno, los caracteres
contenidos en el puerto de
comunicación serial. Generalmente se
utiliza una variable o un vector tipo
para guardar la información del puerto.
Código: 3007364
GESTIÓN DE LABORATORIOS
Versión: 1.0

TELECOMUNICACIONES - PRÁCTICA No 1 ARDUINO Página 8 de 8

Configuración de MATLAB:

5. DOCUMENTOS COMPLEMENTARIOS – SOFTWARE DE PROGRAMACIÓN ARDUINO


• Arduino Microcontroller Guide W. Durfee, University of Minnesota
(http://www.me.umn.edu/courses/me2011/arduino/arduinoGuide.pdf)
• Introduction to Arduino A piece of cake! by Alan G. Smith
(https://www.introtoarduino.com/downloads/IntroArduinoBook.pdf)
• Beginning Arduino Programming, Brian Evans (http://www.hfremote.us/files/Arduino.pdf)
• Arduino Programming using MATLAB
(http://www.labcontrol.xyz/dokuwiki/lib/exe/fetch.php?media=wiki:arduino_programming_using_
matlab_-_agus_kurniawan.pdf)
• https://www.mathworks.com/help/supportpkg/arduino/ug/use-serial-communications-with-
arduino-hardware.html

También podría gustarte