Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Comunicación Serial Arduino y Visual Studio C#, Ejercicios de Programación Genética

Creación de interfaz de visual studio con el fin de comunicarse con la placa de desarrollo arduino con la finalidad de traducir palabras a código morse, siendo visual studio el receptor de las palabras y la placa de arduino el emisor de mensaje.

Tipo: Ejercicios

2019/2020

Subido el 09/08/2021

usuario desconocido
usuario desconocido 🇲🇽

3 documentos

1 / 25

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Proyecto Entrada Letra normal y
Salida morse
La idea del proyecto es traducir de palabras nuestras como la escritura de este documento a
código morse por medio de visual BASIC.
Cuando se escribe un carácter en el text box
Y luego se presiona el botón de mandar, un arduino físico mandará la traducción a código
morse
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Vista previa parcial del texto

¡Descarga Comunicación Serial Arduino y Visual Studio C# y más Ejercicios en PDF de Programación Genética solo en Docsity!

Proyecto Entrada Letra normal y

Salida morse

La idea del proyecto es traducir de palabras nuestras como la escritura de este documento a

código morse por medio de visual BASIC.

Cuando se escribe un carácter en el text box

Y luego se presiona el botón de mandar, un arduino físico mandará la traducción a código

morse

1 Comunicación Serial con Simulación en proteus y Visual Basic

Cabe destacar que Si se quiere hacer el circuito en simulación se necesita de la aplicación:

Configure Virtual Serial Port Driver y haga par con los puertos COM3 Y COM2 esto para

unir los puertos de arduino simulado y Visual basic.

Conecta en proteus un compim de la siguiente forma:

Configura el puerto COMPIM de proteus

Hay que también configurar parámetros del puerto dándole doble click como:

Baudrate a 9600

Databits a 8

PortName COM

Y con eso debería ser suficiente para la comunicación serial de Visual y arduino virtual

1.1 Subir un programa al arduino virtual

Para eso hay que importar el código HEX del debug del arduino, para obtener la dirección

.hex debes de tener guardado tu sketch y agregarle nombre.

Luego te vas a Archivo>Preferencias y das click en el recuadro “habilitar carpeta de

código” esto para que al compilar el código nos muestre la dirección en la que guarda el

formato .hex (hexadecimal)

Lo que sigue es buscar tu código que tenga terminación .hex normalmente está hasta debajo

de los mensajes:

Lo copias y te diriges a proteus

Le das doble click al arduino virtual y abres propiedades

Pegas el código en en “program file”

2 Utilizando la comunicación serial de arduino físico y visual

Studio

Los pasos son los mismos a los virtuales solo que no se utiliza una aplicación externa y

debes de hacer que los nombres de los puertos de visual coincida con el puerto del arduino.

Para eso debes de ir a arduino>Herramientas>Puerto>COMx

En mi caso es COM9 entonces debo configurar el puerto de visual a COM

3 Desarrollo de código Arduino

3.1 La lógica

Visual basic lee valores escritos en un textbox, lo escribe al puerto serial, arduino

recibe lecturas del puerto seria y hace la conversión, dicha conversión se procesa

a señales de activo y apagado para el buzzer y generar sonidos.

3.2 Variables y Void setup

const int pinBuzzer = 9;//Reproduce sonido del morse char lectura; // Nos servirá para leer el puerto serial int leed = 3; // este no se ocupa, se pretendía usar en versiones futuras int leed4 =4; ; // este no se ocupa, se pretendía usar en versiones futuras int leed6 = 6; ; // este no se ocupa, se pretendía usar en versiones futuras int leed7 = 7; ; // este no se ocupa, se pretendía usar en versiones futuras int entrada = 2; ; // este no se ocupa, se pretendía usar en versiones futuras int entrada2 = 5; ; // este no se ocupa, se pretendía usar en versiones futuras

void setup() { pinMode(pinBuzzer,OUTPUT); //Declaramos que el buzer hará sonidos Serial.begin(9600); // Iniciamos el puerto serial pinMode(entrada,INPUT); ; // este no se ocupa, se pretendía usar en versiones futuras pinMode(leed,OUTPUT); ; // este no se ocupa, se pretendía usar en versiones futuras pinMode(leed4,OUTPUT); ; // este no se ocupa, se pretendía usar en versiones futuras pinMode(leed6,OUTPUT); ; // este no se ocupa, se pretendía usar en versiones futuras pinMode(leed7,OUTPUT); ; // este no se ocupa, se pretendía usar en versiones futuras pinMode(entrada2,INPUT); ; // este no se ocupa, se pretendía usar en versiones futuras

}

3.3 INICIO protocolos de comunicación

Inicio: checamos si el puerto está disponible con if (Serial.aviable > 0)

Leemos el puerto con Serial.Read()

Y de ahí estamos leyendo y recibiendo información del puerto serial

if (Serial.available()>0)

lectura = Serial.read(); // Este nos dice qué valor o carácter se recibe desde el visual

if (lectura == 'e') { dot(1);}

if (lectura == 'f') { dot(2); slash(1); dot(1);}

if (lectura == 'g') { slash(2); dot(1);}

if (lectura == 'h') {dot(4);}

if (lectura == 'i') { dot(2);}

if (lectura == 'j') { dot(1); slash(3);}

if (lectura == 'k') { slash(1); dot(1); slash(1);}

if (lectura == 'l') { dot(1); slash(1); dot(2);}

if (lectura == 'm') { slash(2);}

if (lectura == 'n') { slash(1); dot(1);}

if (lectura == 'o') { slash(3);}

if (lectura == 'p') { dot(1); slash(2); dot(1);}

if (lectura == 'q') { slash(2); dot(1); slash(1);}

if (lectura == 'r') { dot(1); slash(1); dot(1);}

if (lectura == 's') { dot(3);}

if (lectura == 't') { slash(1);}

if (lectura == 'u') { dot(2); slash(1);}

if (lectura == 'v') { dot(3); slash(1);}

if (lectura == 'w') { dot(1); slash(2);}

if (lectura == 'x') { slash(1); dot(2); slash(1);}

if (lectura == 'y') { slash(1); dot(2); slash(1);}

if (lectura == 'z') { slash(2); dot(2);}

4 Desarrollo Codigo Visual Basic

Creando esencialmente el concepto es:

Una interfaz que nos indique el estado de la conexión entre puertos seriales, botón

de salida, una señal, una entrada de texto para escribir, un botón de mandar.

4.1 Conexión de puertos seriales

Primero hay que crear un label (cuyo nombre será lb_estado) que nos indique el

estado del puerto serial, si hay error o si se ha logrado conectarse. Este código se

escribe en la ventana al inicializarse y se accede dando doble click a la ventana

form misma:

Dentro del forms escribimos el código:

try { serialPort1.Open(); lb_estado.Text = "Conectado";

catch (Exception) { lb_estado.Text = "Error de conexión";