Tema: Arduino y Comunicación Serial con Visual Basic



Documentos relacionados
Tema: Introducción a la Plataforma Arduino

Programación De interfaces

PIC MICRO ESTUDIO Timer Monoestable/Biestable ajustable hasta 99H 59M 59S Timer 2T Clave:

Tema: Instrumentación Virtual II

Programa de Textos FIRECONTROL para centrales ZXCE

Interfaz conversora USB a UART TTL (5V) o LV-TTL (3V) configurable

Tema: Introducción a packet tracer

Smart Buffer Plus Guía de Instalación y Configuración

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE

MANUAL DE USUARIO Sensor de temperatura y humedad digital MCI-SEN REV. 1.0

Conexión de un Terminal al Puerto de la Consola en Switches Catalyst

Ardunio. Control Led desde Lazarus

Nero AG SecurDisc Viewer

Actividad 4: Comunicación entre PLC s vía Ethernet

MANUAL DE USUARIO AVMsorguar

Tema: Administración y respaldo de información.

Tema: Configuración de red AD-HOC

Edición de Ofertas Excel Manual de Usuario

Especificaciones técnicas de los prototipos:

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

CONFIGURACIÓN TCP/IP DE TARJETA ETHERNET EN LINUX (tipo Debian) y VERIFICACIÓN BÁSICA DE FUNCIONAMIENTO.

- 1 - ÍNDICE. Haga clic en Instalar Software. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

AUTOMATIZACIÓN - CURSO: Práctica 3: Automatización de una Puerta de Garaje mediante Arduino

Guía de Usuario Programador USB

2.- PLATAFORMA ARDUINO (HARDWARE)

1. Instalación de una Unidad de Disco Duro (HDD) Pág Instalación de un HDD IDE Pág Instalación de un HDD SATA Pág.

Tema: Interconexión a la PC mediante Arduino

TERMOMED Cl. Uruguay, 11 7º despacho Valencia ( Valencia ) Tel. / Fax info@termomed.net

Especificaciones técnicas. Power, Inputs and Outputs. Operating Voltage Input Voltage (recommended) Input Voltage (limits) Analog Input Pins

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

Programando con SinaProg. Manual de usuario para programar microcontroladores Atmel AVR en Windows con SinaProg

Tema: Configuración de Access Point

5.5 Interfaces especiales Interfaz V.24. Norma V.24. neris 4/8/64

Guía de Inicio Rápido de SitePlayer S Guía de Inicio. Rápido de

Guía de Usuario Convertidor USB-Serial

Tema: Analizador de tráfico

Manual del Módulo Externo Impresión de Códigos de Barra para Impresoras SATO

Instalación Tacotel Lector Documentación Sistemas

Recall SIP. Guía de Instalación y Configuración Versión 3.7

Tema: Introducción a USB6009 con LabVIEW

PROYECTO DE ELECTRÓNICA

EB ES. Appendix 1 Circuit Diagram Hoja de datos de la placa LCD EB Contenido - 1 -

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

Notas para la instalación de un lector de tarjetas inteligentes.

Printer Driver. Esta guía describe la instalación del controlador de la impresora en Windows Vista y Windows XP.

USO DE INSTRUMENTOS DE LABORATORIO

M95 SHIELD PARA ARDUINO. SIGMA ELECTRONICA

Tema: CREACIÓN DE TABLAS DE RDBMS (RELATIONAL DATA BASE MANAGEMENT SYSTEM).

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO EN ELECTRÓNICA Y CONTROL

Guía de Programación para Visual Basic 6

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

Práctica de manejo de motores CC con arduino. Antonio Martínez

UNIDADES DE ALMACENAMIENTO DE DATOS

Como utilizar un servo motor con Arduino.

Tema: Central telefónica (central office)

Programación en C para plataforma CADmega128, basada en microcontrolador Atmel megaavr

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Práctica PLC1: Introducción a la programación del PLC Siemens 314IFM en el entorno Step-7

PIC MICRO ESTUDIO Display de 2 y4 Dígitos RS-232 (Clave 701 y 702) Guía de Uso

INSTRUCTIVO PARA LA PUESTA EN MARCHA DE LAS TERMINALES IP EN EL SISTEMA ACCESO

En el presente capítulo se describe la programación del instrumento virtual y cómo

Conexión Serie 01 - DCD 02 - RXD 03 - TXD 04 - DTR 05 - GND 06 - DRS 07 - RTS 08 - CTS 09 - RI

Guía para la instalación del software y sincronización con PC del monitor de actividad ViFit Connet

CAPITULO 6 GUIA DE USUARIO

MANUAL DE AYUDA MÓDULOS 2011 MACOS

MACROS. Automatizar tareas a través del uso de las macros.

COMUNIDAD DE FORMADORES DEL EMPRENDIMIENTO TECNOLÓGICO FEMPRETEC

COMUNICACIÓN HYPERTERMINAL CON DELTA PLC.

Laboratorio de Física Universitaria II. FISI 3014 Primer semestre del año académico Departamento de Física y Electrónica de la UPR-H

SOROLLA MODULO DE JUSTIFICANTES DEL GASTO

Programador de PIC s y Memorias EEPROM

MANUAL TERMINALES X300 Manual Soporte Técnico.

Manual de Instalación.

EL EMU8086 Y EL MICROPROCESADOR 8086.

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

PAUTAS DE VERIFICACIÓN TCP/IP

6.- Este software se instalara como una versión Demo con una duración de 25 días de uso. En el código de validación, se dejara la palabra Demo.

Guía rápida del usuario. 1. Instalar Readiris TM. 2. Iniciar Readiris TM

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Universidad de Guadalajara Tópicos Selectos.

DESKTOP Internal Drive. Guía de instalación

Introducción a los sitios de SharePoint en Office 365

MobiShow para Apple iphone Manual del usuario

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Tema: Instalación de Linux.

KW x hora. on/off

USB (Universal Serial Bus)

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Capítulo 5. Cliente-Servidor.

Utilización de los puertos serial y paralelo de una PC usando LabView

PROCEDIMIENTO DE ENLACE TCPIP

Características. Especificaciones técnicas

NOTA DE APLICACIÓN AN-P002. Programando Wiring con NXProg

Prácticas de Redes de Comunicación Industriales

MANUAL DE USUARIO. Contenido

Calculadora virtual HP Prime

VideoSoftPHONE Active Contact

2_trabajar con calc I

Transcripción:

Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Periféricos Tema: Arduino y Comunicación Serial con Visual Basic Objetivos Específicos. Utilizar el puerto USB como dispositivo de comunicación externo. 2. Realizar programas de Visual Basic que se comuniquen con Arduino. 3. Realizar Sketches de Arduino que reciban órdenes y envíen datos a la PC. 4. Realizar aplicaciones de manejo de hardware externo combinando las plataformas. Material y Equipo No Cantidad Descripción 2 3 4 5 6 7 8 9 0 4 4 varios Una computadora con sistema operativo Windows y con el programa Arduino IDE instalados Cable USB (tipo A hacia tipo B) Tarjeta Arduino UNO R2 o R3 Resistencias de 4.7kΩ LEDs Potenciómetro de 5KΩ Breadboard Pinza Cortadora Cables UTP Introducción Teórica Visual Basic y Puerto Serie La interfaz serie asíncrona es el principal dispositivo de comunicación de sistema a sistema. Asíncrono significa que no hay presente una señal de sincronización o de reloj. Cada carácter está enmarcado entre señales de inicio y parada. Un solo bit 0, denominado bit de inicio, precede a cada carácter para indicar al sistema que los siguientes 8 bits constituyen un byte de datos. Uno o dos bits en alto siguen al carácter para señalar que dicho carácter ha sido enviado. Trama en una transmisión asíncrona:

2 Interfaces y Periféricos, Guía 3 Figura. Trama Asíncrona El puerto serie en una computadora está compuesto por varias entradas/salidas. Dispuestas en un conector del tipo DB9 o DB25, tal como se muestra en la siguiente figura: Figura 2. a) Conector DB25, b) Conector DB9 La distribución de las señales en cada uno de sus pines es la siguiente: Señal GND o SG TxD RxD RTS CTS DSR DCD o CD DTR Descripción 0 Voltios Salida para transmisión de datos Entrada para recepción de datos (Request To Send) Salida que indica una petición de envío (Clear To Send) Dispuesto para enviar, entrada por donde le indica el otro dispositivo que ya puede enviar los datos. (Data Set Ready) Dispositivo de datos preparado, entrada por donde le indica el otro dispositivo que ya está listo. Entrada para la detección de portadora (Data Terminal Ready) Salida, terminal de datos listo

3 Microsoft Comm Control 6.0 Es el control que permite la comunicación de una aplicación hecha en Visual Basic 6 con el puerto serie. No está en la caja de herramientas por defecto, debe introducirse mediante el menú Proyecto y luego Componentes. En el formulario solamente se ve en tiempo de diseño. Para habilitar la herramienta del puerto serie en Visual Basic realice lo siguiente: Seleccione la opción Proyecto>>Componentes, al aparecer el listado de componentes seleccionar: Microsoft comm control 6.0, dé clic en aceptar, lo que provocará que la barra de herramientas cambie como se muestra en la figura 3. Figura 3. MSCOMM Control Propiedades Entre las propiedades del MSCOMM Control hay algunas que pueden establecerse en tiempo de diseño o en tiempo de ejecución, y otras que solamente se pueden establecer o consultar en tiempo de ejecución. A continuación se enuncian algunas propiedades de este control

4 Interfaces y Periféricos, Guía 3 Propiedades que se establecen en tiempo de diseño o ejecución CommPort Indica el número del puerto serie a utilizar, admite valores del al 255, Generalmente las PC tienen dos puertos seriales: Com y Com2, si se le coloca un número de puerto inexistente dará error Settings InBufferSize OutBufferSize Indica 4 parámetros en orden: velocidad, paridad, número de bits y bits de parada que se usarán en la comunicación Mediante esta propiedad se establece el tamaño del buffer de entrada. Puede conocerse el número de caracteres presentes en el buffer de entrada consultando el valor de la propiedad InBufferCount Mediante esta propiedad se controla el tamaño del buffer de salida. Puede conocerse el número de caracteres presentes en el buffer de salida (los que aún están transmitirse), consultando el valor de la propiedad OutBufferCount Propiedades que se establecen sólo en tiempo de ejecución PortOpen InBufferCount OutBufferCount Output Input Abre el puerto de comunicación. Puede tener los valores True (para abrirlo) y False (para cerrarlo) Permite averiguar cuántos caracteres se tienen en el buffer de entrada Permite conocer cuántos caracteres quedan por transmitir en el buffer de salida Envía caracteres al buffer de salida Lee el buffer de recepción El control Microsoft Comm Control 6.0 tiene por defecto el nombre MSComm. Para establecer o consultar una propiedad se debe utilizar la siguiente sintaxis MSComm.Propiedad Por ejemplo, para abrir el puerto se coloca MSComm.Portopen=True Para leer el puerto Buffer=MSComm.Input Para escribir en el puerto MSComm.Output=dato De igual forma con las demás propiedades Manejo de Periféricos Analógicos Mediante Arduino. La plataforma Arduino, basada en microcontrolador AVR, hereda la capacidad intrínseca de dicho microcontrolador para manejar periféricos analógicos mediante técnicas de conversión específicas. Dichas técnicas consisten en la conversión analógica a digital (ADC) y modulación por ancho de pulso (PWM). Cada una permite interactuar con periféricos analógicos que proveen información de entrada (ADC) o que aceptan información de salida (PWM) Conversión analógica a digital. El microcontrolador cuenta con un ADC integrado en el mismo chip, que permite tomar

5 lecturas analógicas de voltaje de un dispositivo que genere tensiones entre 0 y 5V. La configuración de dicho módulo es automática, bastando solamente con invocar la función de lectura de datos, la cual se detalla a continuación: analogread(numero_pin): Realiza la lectura sobre el pin analógico que se le especifique (Sólo se permiten los pines A0 al A5). El valor que devuelve es un número entero proporcional al voltaje de entrada, de tal forma que si se introducen 0V devuelve un valor de 0 y si se introducen 5V devuelve un valor de 023, con todos los voltajes intermedios se producen valores distribuidos linealmente a lo largo de este intervalo. Nótese que no es necesario configurar previamente un pin analógico para poderlo usar con esta función. Advertencia: El rango válido para los voltajes de entrada es solamente de 0 a 5V. Si introduce voltajes negativos, o bien, voltajes positivos arriba de 5V, podrá dañar de manera permanente el dispositivo. Modulación por ancho de pulso (PWM). El Microcontrolador AVR cuenta también con dispositivos temporizadores que permiten generar señales externas, las cuales emplean la modulación por ancho de pulso para manejar cargas que sean compatibles con este esquema. Vale aclarar que la técnica en sí, es completamente diferente de la conversión digital a analógica (DAC), puesto que no se generan tensiones analógicas constantes (por ejemplo entre 0 y 5V) en ningún momento, sino que más bien la carga es encendida y apagada rápidamente, produciendo un efecto equivalente a proveer un nivel de potencia intermedio, que puede variar entre completamente apagado y completamente encendido. Además, de manera similar al ADC, los módulos temporizadores son inicializados de manera automática, bastando con invocar la función que se detalla a continuación: analogwrite(numero_pin, ciclo_de_trabajo): Genera una señal PWM sobre un pin digital que tenga esa capacidad (denotado con ~). El rango válido para el ciclo de trabajo va desde 0 (completamente apagado) hasta 255 (completamente encendido). Nótese que no todas las cargas son compatibles con la modulación PWM, por lo que se recomienda que se informe antes de emplearla con algún dispositivo en particular. La técnica funciona bien con algunas cargas como LEDs y motores DC pequeños, mas no con cargas como relés o motores DC sin escobillas (como los ventiladores para chasís de computadora). Procedimiento Parte. Lectura de entradas analógicas.. Proceda a ensamblar el circuito junto con el Arduino. Si cuenta con con un potenciómetro que permita conectar cables directamente a él, puede conectarlo directamente al Arduino sin una breadboard. Recuerde que no es necesaria una fuente de suministro externa.

6 Interfaces y Periféricos, Guía 3 Figura 4. Diagrama de circuito parte. 2. Abra Visual Basic y genere el siguiente formulario, a continuación introduzca el siguiente código fuente en el mismo: Figura 5. Formulario para parte. Private Sub Form Load() Timer.Interval =400 MSComm.CommPort = 4 'Ajustar al puerto real de su arduino en su PC MSComm.Settings = 9600,n,8, MSComm.InputMode = cominputmodetext MSComm.PortOpen = True Private Sub Timer_Timer() Dim valor As Integer Dim voltage As Single 'Verifica si existen datos en el buffer del puerto If MSComm.InBufferCount <> 0 Then 'Si existen datos los retira

7 valor = MSComm.Input 'Calcula el nivel de tensión que obtuvo el ADC voltaje = valor/023*5 'Actualiza la ventana con la información recibida Text.Text = valor Text2.Text = Round(voltaje,2) End If Listado. Programa de Visual Basic para parte. 3. A continuación abra el Arduino IDE e introduzca el siguiente sketch. void setup() { //Inicializa el puerto serie Serial.begin(9600); void loop() { int lectura; lectura = analogread(0); //Toma lectura del ADC Serial.print(lectura); //Envía el dato leído delay(500); //Genera un retardo breve Listado 2 Sketch para la parte. 4. Conecte el cable USB y descargue el sketch al Arduino. Ejecute el programa en Visual Basic y observe el valor que se presenta en la ventana. 5. Varíe el potenciómetro y observe cómo cambia el valor visualizado en pantalla. 6. Modifique el formulario para que muestre una barra de desplazamiento horizontal (o el control de su elección) que represente la posición relativa del potenciómetro. Notifique a su docente cuando termine el programa para que le sea evaluado. Parte 2. Control de salidas mediante PWM 7. Desconecte la tarjeta Arduino del puerto USB y proceda a armar el siguiente circuito (una vez más, el circuito no requiere de fuente externa). Figura 6. Diagrama de circuito de la parte 2

8 Interfaces y Periféricos, Guía 3 8. A continuación genere un nuevo proyecto en Visual Basic. Siga el siguiente modelo para crear el formulario e introduzca el código mostrado en el listado 3. Figura 7. Formulario de programa de la parte 2 Private Sub Form_Load() MSComm.CommPort = 4 'Ajustar al puerto real de su PC asignado a Arduino MSComm.Settings = 9600,n,8, MSComm.InputMode = cominputmodebinary MSComm.PortOpen = True VScroll.Min = 0 VScroll.Max = 5 VScroll2.Min = 0 VScroll2.Max = 5 VScroll3.Min = 0 VScroll3.Max = 5 VScroll4.Min = 0 VScroll4.Max = 5 Private Sub VScroll_Change() 'Define un vector de un dato, el dato a enviar Dim dato_enviado(0) As Byte 'Coloca el dato en el vector dato_enviado(0) = VScroll.Value + 0*6 'Envía el dato MSComm.Output = dato_enviado Label.Caption = VScroll.Value Private Sub VScroll2_Change() 'Define un vector de un dato, el dato a enviar

9 Dim dato_enviado(0) As Byte 'Coloca el dato en el vector dato_enviado(0) = VScroll2.Value + *6 'Envía el dato MSComm.Output = dato_enviado Label2.Caption = VScroll2.Value Private Sub VScroll3_Change() 'Define un vector de un dato, el dato a enviar Dim dato_enviado(0) As Byte 'Coloca el dato en el vector dato_enviado(0) = VScroll3.Value + 2*6 'Envía el dato MSComm.Output = dato_enviado Label3.Caption = VScroll3.Value Private Sub VScroll4_Change() 'Define un vector de un dato, el dato a enviar Dim dato_enviado(0) As Byte 'Coloca el dato en el vector dato_enviado(0) = VScroll4.Value + 3*6 'Envía el dato MSComm.Output = dato_enviado Label4.Caption = VScroll4.Value Listado 3. Programa en Visual Basic de la parte 2 9. Haga un nuevo Sketch en el Arduino IDE y escriba el siguiente programa: void setup(){ //Inicializa el puerto serie Serial.Begin(9600); void loop(){ int dato; int num_led; int brillo; //Realiza el proceso sólo si se reciben datos if(serial.available()){ //Toma el byte del puerto dato = Serial.read(); //Extrae los cuatro bits más significativos para el número del led num_led = dato>>4; //Extrae los cuatro bits menos significativos para el valor del brillo

0 Interfaces y Periféricos, Guía 3 brillo = dato & 0x0F; //Ajusta el brillo según el led seleccionado switch(num_led){ case 0: analogwrite(9,brillo << 4); break; case : analogwrite(6,brillo << 4); break; case 2: analogwrite(5,brillo << 4); break; case 3: analogwrite(3,brillo << 4); break; Listado 4. Sketch de Arduino para la parte 2 0. Conecte el cable USB a Arduino y descargue el Sketch. Ejecute el programa de Visual Basic y deslice las barras de desplazamiento. Observe lo que sucede con los LEDs al variar las barras.. Modifique el programa de Visual Basic para generar el efecto de parpadeo atenuado en uno de los LEDs (el brillo aumenta y disminuye suavemente entre los extremos de encendido y apagado), mediante un timer que varíe el brillo automáticamente cada 0.5s. Notifique a su docente cuando lo termine para que le sea evaluado. 2.Desconecte la tarjeta Arduino de su PC y desarme el circuito. Luego apague su computadora y deje en orden su puesto de trabajo. Análisis de Resultados. De qué manera se realiza la lectura de los datos en la primera parte? Cómo se consigue sincronizar ambos extremos? 2. Qué proceso se realiza para combinar el valor de brillo de cada LED con su posición relativa al transmitir? De qué manera realiza el programa en Arduino la separación de esta información? Investigación Complementaria. Determine cómo se puede hacer para agregar entradas y salidas adicionales en los programas de la primera y segunda parte. Bibliografía Referencia en línea del lenguaje: http://arduino.cc/en/reference/homepage Massimo Banzi, Getting started with Arduino O'Reilly Media / Make Publisher, Marzo 2009, ISBN: 978-0-596-555-3

Hoja de cotejo: 3 Guía 3: Arduino y Comunicación Serial con Visual Basic Alumno: Maquina No: Docente: GL: Fecha: EVALUACION % -4 5-7 8-0 Nota CONOCIMIENTO 25% Conocimiento deficiente de los fundamentos teóricos Conocimiento y explicación incompleta de los fundamentos teóricos Conocimiento completo y explicación clara de los fundamentos teóricos APLICACIÓN DEL CONOCIMIENTO 70% No Terminó completamente el programa y comentó mal el código (30%) No realizó el circuito correctamente (40%) Terminó completamente el programa pero los comentarios no estaban del todo correctos El circuito funcionó Terminó completamente el programa con sus comentarios correctos El circuito funcionó ACTITUD 2.5 % Es un observador pasivo. Participa ocasionalmente o lo hace constantemente pero sin coordinarse con su compañero. Participa propositiva e integralmente en toda la práctica. 2.5 % Es ordenado; pero no hace un uso adecuado de los recursos Hace un uso adecuado de los recursos, respeta las pautas de seguridad; pero es desordenado. Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene. TOTAL 00 %