PRIMERA PARTE: COMUNICACIÓN SERIAL CON ARDUINO
Para esta parte leeremos el valor del voltaje de un potenciómetro que está conectado al pin A0 de nuestro Arduino. Los datos se mostrarán por el puerto serial. La conexión es la siguiente:
El resultado es el siguiente:
# PIN A0 : Arduino UNO => PIN CENTRAL : Potenciómetro
# GND : Arduino UNO => EXTREMO : Potenciómetro
# 5V : Arduino UNO => EXTREMO : Potenciómetro
El programa es el siguiente:
/* PROGRAMA DE PRUEBA DE COMUNICACION SERIAL CONEXION: Arduino (A0) : Pin central potenciometro Arduino (GND): Pin extremo potenciometro Arduino (5V) : Pin extremo potenciometro El siguiente programa nos ayuda a realizar la lectura del votlaje del potenciometro y mostrarlo por puerto serial. Autor: Renato H. http://beetlecraft.blogspot.pe/ El siguiente programa es de uso publico, cualquier modificacion o mal uso del mismo que pudiera ocasionar el mal funcionamiento de la plataforma de uso de la misma no es responsabilidad del autor */ int POT = 0; // Variable de almacenamiento del valor del potenciometro void setup(){ Serial.begin(9600); // Inicio de comunicacion a 9600 bps Serial.print("Valor potenciometro: "); // Mensaje inicial } void loop(){ POT = analogRead(A0); // Lectura del pin A0 correspondiente al voltaje POT = map(POT, 0, 1023, 0, 100); // Conversion de datos a formato de 0 a 100% Serial.println(POT); // Escritura por puerto serial del valor del potenciometro delay(500); // Espera de 500 ms }
Para poder ver los valores del potenciómetro en el Arduino IDE tenemos la opción "Herramientas" en el Arduino IDE y escogemos "Monitor Serie".
El resultado obtenido es el siguiente:
SEGUNDA PARTE: COMUNICACIÓN SERIAL CON ARDUINO (VISUALIZACIÓN DE DATOS)
Usando el programa anterior, lo único que debemos hacer es entrar a "Herramientas" en el Arduino IDE y escogemos "Serial Plotter".
El resultado es el siguiente:
TERCERA PARTE: COMUNICACIÓN SERIAL CON ARDUINO Y PROCESSING
Para esta parte realizaremos el mismo procedimiento anterior, pero mostraremos el dato de dos maneras:
# Mostrando el dato por la pantalla serial del mismo Processing.
# Mostrar el cambio del valor del voltaje del potenciómetro modificando el tamaño de un rectángulo.
En el programa usado para Arduino usaremos la construcción de una palabra enviando un dato tipo Integer de 16 bits, el cual enviaremos primeramente el primer byte y luego el segundo byte. Para poder iniciar y diferenciar el dato será por medio de una cabecera representada por la letra "P". Por lo tanto, el dato será algo como "P10001....".
/* PROGRAMA DE PRUEBA DE COMUNICACION SERIAL CONEXION: Arduino (A0) : Pin central potenciometro Arduino (GND): Pin extremo potenciometro Arduino (5V) : Pin extremo potenciometro El siguiente programa nos ayuda a realizar la lectura del votlaje del potenciometro y mostrarlo por puerto serial y luego por Processing. Autor: Renato H. http://beetlecraft.blogspot.pe/ El siguiente programa es de uso publico, cualquier modificacion o mal uso del mismo que pudiera ocasionar el mal funcionamiento de la plataforma de uso de la misma no es responsabilidad del autor */ int POT = 0; // Variable de almacenamiento del valor del potenciometro void setup(){ Serial.begin(9600); // Inicio de comunicacion a 9600 bps } void loop(){ Serial.print('P'); // Cabecera de inicio de comunciacion POT = analogRead(A0); // Lectura del pin A0 correspondiente al voltaje POT = map(POT, 0, 1023, 0, 100); // Conversion de datos a formato de 0 a 100% Serial.write(lowByte(POT)); // Envia el byte bajo Serial.write(highByte(POT)); // Envia el byte alto delay(100); // Espera de 100 ms }
El programa usado para Processing recoge por puerto serial los 16 bits enviados por el Arduino, diferenciando el dato por medio de la cabecera P; para luego reconstruir el dato multiplicando por 256 y como se tiene un dato de 16 bits, se sumara el dato convertido con el dato anterior leído.
/* PROGRAMA DE PRUEBA DE COMUNICACION SERIAL CONEXION: Arduino (A0) : Pin central potenciometro Arduino (GND): Pin extremo potenciometro Arduino (5V) : Pin extremo potenciometro El siguiente programa nos ayuda a realizar la lectura del votlaje del potenciometro y mostrarlo por puerto serial y luego por Processing cambiando el ancho del rectangulo mostrado en pantalla.. Autor: Renato H. http://beetlecraft.blogspot.pe/ El siguiente programa es de uso publico, cualquier modificacion o mal uso del mismo que pudiera ocasionar el mal funcionamiento de la plataforma de uso de la misma no es responsabilidad del autor */ import processing.serial.*; // Declaracion inicial para comunicacion serial Serial Puerto; // Crear el puerto serial char cabecera = 'P'; // Letra asignada como cabecera del mensaje int POT; // Variable de lectura del puerto serial void setup() { size(100, 100); // Porte de la pantalla Puerto = new Serial(this, "COM4", 9600); // Inicio de la comunicacion a 9600 bps del puerto COM4 } void draw() { if ( Puerto.available() >= 3) { // Verifica que exista 3 bytes en el puerto serial if (Puerto.read() == cabecera) { // Verifica que "P" sea la cabecera del mensaje POT = Puerto.read(); // Lectura del puerto POT = Puerto.read() * 256 + POT; // Conversion del mensaje de 16 bits a integer println("Valor del potenciometro: " + POT); // Muestra el dato en el puerto serial } } // Dibujo del rectangulo background(167); // Rellena el espacio de trabajo de color plomo fill(0); // Llena el espacio en negro rect(0, 0, 100, POT); // Dibuja el rectangulo con los valores obtenidos de la lectura del puerto }
El resultado que podemos obtener al abrir el "Monitor Serial" del Arduino es el siguiente:
El resultado del Processing es el siguiente:
Algunas cosas debemos tener en cuenta al momento de realizar una comunicación serial:
# Al momento de realizar la comunicación nos debemos fijar que la plataforma (Placa "Arduino/Genuino Uno") usada sea la misma a la mencionada en el puerto ("COM4 (Arduino/Genuino Uno)").
# Observar que el puerto está habilitado, esto se puede verificar entrando a "Herramientas" luego se escoge "Puerto" y se ve que tenga un check el puerto "COM4".
# Al momento de generar el objeto puerto en el Processing, fijarse en el puerto usado en ese momento por el Arduino ("COM4")
# Al momento de realizar la comunicación nos debemos fijar que la plataforma (Placa "Arduino/Genuino Uno") usada sea la misma a la mencionada en el puerto ("COM4 (Arduino/Genuino Uno)").
# Observar que el puerto está habilitado, esto se puede verificar entrando a "Herramientas" luego se escoge "Puerto" y se ve que tenga un check el puerto "COM4".
# Al momento de generar el objeto puerto en el Processing, fijarse en el puerto usado en ese momento por el Arduino ("COM4")
No hay comentarios:
Publicar un comentario