Está en la página 1de 17

Control de un Brazo Robótico Mediante

LabVIEW y PIC por el Protocolo FT232


Gonzales Bustamante Alvaro, Ortiz Jara Frank Paolo
Universidad Privada del Norte, N00188649@upn.pe , N00212768@upn.pe

Abstract– This project focuses on the control of a robotic arm las instrucciones enviadas por LabVIEW. Todo esto se realizó
using LabVIEW and PIC microcontroller through the FT232 a través de una demostración en tiempo real.
protocol. The objective is to develop a system that enables the
manipulation of the robotic arm's movements and functions
remotely. The LabVIEW software provides a user-friendly interface Se demostró que la utilización de la comunicación
for commanding the arm, while the PIC microcontroller handles the USB a UART, donde la función principal del UART es permitir
communication between the computer and the arm through the la interconexión de un dispositivo con capacidad USB y
FT232 protocol. This project combines software and hardware proporcionar información al PIC18F4550, fue exitosa.
components to create an efficient and precise control system for a
robotic arm.
Los resultados obtenidos evidencian una
Keywords -- LabVIEW, PIC microcontroller, FT232 protocol, comunicación directa entre el programa LabVIEW y el FT-232,
remote manipulation, user-friendly interface. con una respuesta en tiempo real demostrada mediante el
movimiento articulado del brazo robótico compuesto por 6
I. INTRODUCCIÓN servomotores. El control fue proporcionado por LabVIEW,
permitiendo también la actualización automática de la posición
El proyecto se enfocó en el desarrollo de una de los servomotores.
comunicación FT-232 para la gestión y control del LabVIEW y
el microcontrolador PIC 18F4550. Se utilizaron las Los resultados incluyeron un control total sobre los
características más destacadas de estos componentes para lograr servomotores, así como la incorporación de 2 sensores para la
una comunicación de datos eficiente, permitiendo el control de gestión de emergencias en caso de fuego y la detección de
6 servomotores, un sensor infrarrojo y un sensor de llama. El objetos para la activación del brazo.
objetivo principal fue obtener un control completo de una
estructura de brazo robótico (Fernanda et al., 2008; Prototipo Este proyecto se materializó mediante la articulación
De Un Brazo Robótico et al., n.d.). de un brazo robótico diseñado e impreso utilizando tecnología
de impresión 3D. Es importante mencionar que la programación
Según George Devol, inventor del brazo del brazo y comunicación desarrolladas en este proyecto pueden ser
robótico es un dispositivo mecánico articulado diseñado para aplicadas en diferentes contextos donde se requiera el control
imitar el movimiento y la funcionalidad de un brazo humano. preciso de servomotores y sensores.
Arboleda Gómez, A. M., & Toro Uchima, D. A. (2013). En base
a los artículos de García & Padilla. Estos brazos se utilizan en
una amplia gama de aplicaciones industriale y de investigación, II. METODOLOGÍA
brindando una solución eficiente para tareas que requieren
precisión, fuerza y repetibilidad. A. Diagrama de flujo

Según la información proporcionada en el datasheet El diagrama de flujo propuesto representa el


del PIC PIC18F4550, la comunicación más adecuada entre el funcionamiento de un brazo robótico controlado por
PIC y un computador portátil es a través de USB, siendo esta LabVIEW, que cuenta con dos modos de operación:
una de las principales características del PIC. Según la manual y automático. En el modo manual, el usuario
información proporcionada en el datasheet del PIC18F4550, la puede controlar el brazo utilizando botones de
comunicación más adecuada entre el PIC y un computador movimiento, como adelante, atrás, entre otros. Por otro
portátil es a través de USB, siendo esta una de las principales lado, en el modo automático, el brazo sigue una
características del PIC. secuencia predefinida. El programa lee la entrada de
modo y, si está seleccionado el modo automático,
verifica la validez de la secuencia para ejecutarla. Este
En esta demostración, se buscó resolver la diagrama de flujo proporciona una representación
problemática asociada a la correcta aplicación de la visual clara y ordenada del flujo de control y las
comunicación entre el FT-232 y el PIC, asegurando una acciones a tomar en cada modo, permitiendo una
comunicación confiable capaz de responder adecuadamente a comprensión eficiente del funcionamiento del brazo
Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
1
robótico controlado por LabVIEW. Además, este
diagrama de flujo es el primer paso en el proceso de Nuestro brazo robótico diseñado tiene el potencial
desarrollo del brazo robótico, estableciendo una base de servir como una base sólida para una futura
sólida para los pasos posteriores, como el diseño en escalabilidad. Los siguientes artículos proporcionan
3D, la programación específica y la implementación una amplia gama de enfoques y características que se
de sensores y actuadores. pueden aprovechar para ampliar las capacidades del
brazo robótico. El prototipo presentado por Ramos
Figura 1 Diagrama de Flujo Velasco Maria Augusta y Hernan Flores Valencia
establece los fundamentos tecnológicos necesarios,
mientras que el enfoque en el reconocimiento y
manipulación de objetos mediante inteligencia
artificial, propuesto por De La Rosa Mejillón, brinda
una mayor versatilidad y adaptabilidad. El diseño
angular y de 6 grados de libertad para soldadura por
arco eléctrico, propuesto por Flores Torres, amplía las
posibles aplicaciones en el ámbito industrial. Además,
el control remoto mencionado por Gustà Caballero y
el sistema de interfaz humano-máquina para transporte
de objetos propuesto por Mosquera Garcés,
proporcionan opciones de control y manipulación
adicionales. Por último, el modelo de aprendizaje
basado en robótica educativa descrito por Acero, Cano
y Builes ofrece una base sólida para el desarrollo de
capacidades de programación gráfica y educación.
Teniendo en cuenta estos avances, nuestro brazo
robótico puede servir como una plataforma escalable
que permita la incorporación de nuevas
funcionalidades, educación y adaptaciones para
satisfacer las necesidades futuras.

Se seleccionó y adaptó un diseño de brazo


robótico existente encontrado en una página web como
punto de partida para el proyecto. Utilizando software
de modelado 3D, como Inventor, se creó un modelo
3D de las diferentes piezas que conforman el brazo
robótico, asegurándose de incorporar las medidas y
especificaciones requeridas como se ve en las Figuras
1, 2 y 3.

Figura 2 Piezas del Brazo Robótico en Inventor

B. Diseño e impresión en 3D del brazo robótico

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
2
Figura 3 Piezas del Brazo Robótico en Inventor Dimensiones: 22,2 x 11,8 x 31 mm
aproximadamente.
Par de parada: 1,8 kgf·cm
Velocidad de operación: 0,1 s/60 grados
Voltaje de operación: 4,8 V (~5V)
Ancho de banda muerta: 10 µs
Rango de temperatura: 0 ºC – 55 ºC

Figura 6 Servo SG90

Figura 4 Ensamble del Brazo Robótico

la posición "0" (pulso de 1.5 ms) es el centro,


"90" (pulso de ~2 ms) es completamente hacia
la derecha y "-90" (pulso de ~1 ms) es
completamente hacia la izquierda.

El modelo 3D fue impreso en 3D utilizando una • 3 und. de servos Mg996r (Figura 6) - 10k
impresora 3D y como material principal el PLA. Se
llevaron a cabo pruebas para verificar resistencia, Figura 7 Servo MG996R
calidad y funcionalidad del brazo impreso Figura 4.

Figura 5 Piezas Impresas en 3D

Peso: 55 g
Dimensiones: 40,7 x 19,7 x 42,9 mm
aproximadamente.
Par de parada: 9,4 kgf·cm (4,8 V), 11 kgf·cm (6
V)
Velocidad de operación: 0,17 s/60º (4,8 V), 0,14
s/60º (6 V)
Voltaje de operación: 4,8 V a 7,2 V
Corriente de funcionamiento: 500 mA
Corriente de parada: 2,5 A (6V)
C. Ensamble de los servos
Ancho de banda muerta: 5 µs
Diseño de doble rodamiento de bolas estable y
Para este proyecto se utilizó:
resistente a los golpes
Rango de temperatura: 0 ºC – 55 ºC
• 3 und. de servos SG90 (Figura 5) - 1.8k Diseño de doble rodamiento de bolas
Peso: 9 g

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
3
Filtro de calidad: Se realizaron las pruebas con En el artículo de Arrazola-Godoy et al.
un Arduino y código de rotación de 0, 90, 180 (2021), se describe el diseño y validación de un robot
grados para verificar su funcionamiento manipulador controlado por un microcontrolador PIC.
correcto. Este proyecto se enfoca en la reducción de costos y en
su aplicación didáctica en instituciones educativas.
Continuamente se ensamblo en las
articulaciones del brazo robótico impreso, Otro artículo en ResearchGate (2013)
ubicándolos en una posición de 180 grados y presenta una metodología para la comunicación entre
para el servo n°3 en posición de 90 grados. LabVIEW y un microcontrolador PIC18F4550. Se
utiliza la herramienta Call Library Function de
LabVIEW y la librería mpusbapi de Microchip para
D. Elección del PIC y Desarrollo del código establecer la comunicación.

Para este proyecto el PIC que se usará será el Además, en otro artículo de ResearchGate
18F4550 debido a sus capacidades de procesamiento y (2015), se describe el control de motores mediante el
características adecuadas para el proyecto. puerto USB en LabVIEW. Se utiliza un
microcontrolador PIC18F4550 y un circuito de control
Existen varios artículos que destacan el uso de motor, conectados al puerto USB del ordenador y
del microcontrolador PIC en diferentes proyectos: En controlados mediante LabVIEW.
el artículo "Sistema robotizado para soldadura de
circuitos impresos", se desarrolla un brazo robótico Estos artículos resaltan la variedad de
controlado por un microcontrolador PIC para soldar aplicaciones y el potencial del uso de
dispositivos electrónicos en circuitos impresos. Se microcontroladores PIC y LabVIEW en proyectos de
utiliza un teclado para ingresar las coordenadas y los robótica, control y automatización, tanto para
rangos de temperatura del cautín, logrando soldaduras propósitos didácticos como para aplicaciones prácticas
adecuadas para cada dispositivo. en diferentes campos de la ingeniería.

En el trabajo de grado "Construcción de un Estos ejemplos resaltan la versatilidad y


controlador lógico programable básico, con interfaz aplicabilidad de los microcontroladores PIC en
USB utilizando el PIC 18F4550", se crea un proyectos de control, automatización y robótica,
controlador lógico programable con interfaz USB demostrando su eficiencia y bajo costo.
basado en el microcontrolador PIC 18F4550. El
proyecto se divide en dos etapas: la selección de El PIC se trabajará con una frecuencia de
componentes del PLC y el desarrollo de la interfaz del oscilador de entrada de 8 MHz y con una frecuencia
usuario en Visual Studio 2012. El PLC procesa señales de reloj del microcontrolador de 48 MHz, por lo que
de entrada y funciones lógicas básicas en tiempo real primero se realizará la “Configuración de Bits” según
para aplicar en procesos de automatización. la datasheet del PIC (Figura 8).

El trabajo de grado "Diseño de brazo


robótico y diseño de brazo empuja frascos controlados
por LabView y PICs" describe el diseño de un brazo
robótico y un brazo empuja frascos controlados por
LabVIEW y el microcontrolador PIC. Estos
componentes se utilizan en una plataforma de
embotellado para fines didácticos, trasladando frascos
y expulsando aquellos que no cumplen los
requerimientos.

La investigación de Ramírez et al. (2020) se


enfoca en el diseño de un sistema de control y
monitoreo para un brazo robótico, integrando
LabVIEW, Solidworks y la internet de las cosas (IoT).
Se utiliza LabVIEW y software ingenieril para
ejecutar el control del brazo robótico, logrando una
exitosa simulación virtual remota.

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
4
Figura 8 Opciones De Configuración Del Oscilador
Figura 9 Código para la configuración de Bits

En la configuración del código, se


implementó la técnica de modulación por ancho de
pulso (PWM) para controlar los servos del brazo
robótico. El PWM se utiliza para generar señales de
control que permiten posicionar los servos en ángulos
específicos

Para lograrlo, se considera la resolución y el


rango de valores de PWM aceptados por los servos
utilizados. Por ejemplo, se estableció una relación
entre el ancho de pulso y los ángulos deseados de
movimiento. Para un servo de rotación continua, se
Donde como principales configuraciones están el: utilizó una escala de 0 a 180 grados, donde el ancho de
pulso de 1 milisegundo representaba 0 grados, 1,5
FOSC: Se utiliza para especificar si se utilizará un milisegundos representaba 90 grados y 2 milisegundos
oscilador interno o externo, y también para definir la representaba 180 grados (Figura 9).
frecuencia del oscilador en caso de utilizar un
oscilador externo. Se configura como “HSPLL” indica Figura 9 Periodo de funcionamiento de un Servo
que estamos utilizando un oscilador externo de alta
velocidad y habilitando el PLL (Phase-Locked Loop)
para generar una frecuencia de reloj mayor
(PIC18F4550 | Microchip Technology, n.d.).

PLLDIV: Se refiere a la división del factor de


multiplicación del PLL en un microcontrolador PIC.
Se configura con un valor de, esto indica que la
frecuencia de salida del PLL se dividirá por un factor
de 2. Por lo tanto, si la frecuencia de entrada del PLL
es de 8 MHz, la frecuencia de salida después de la En la implementación de este proyecto, se
división será de 4 MHz (PIC18F4550 | Microchip hizo uso de una librería de código desarrollada por
Technology, n.d.). Hernández O.(Hernández, n.d.) . La librería, titulada "
Control de servomotores", proporcionó una solución
CPUDIV: Se utiliza para configurar la división de la eficiente y confiable para la técnica de modulación por
frecuencia de la CPU, se usará una configuración de ancho de pulso (PWM) empleada en el control de los
“OSC1_PLL2”, esto indica que la frecuencia de la servos del brazo robótico (Figura 10, 12,13).
CPU se dividirá y se utilizará el PLL como fuente de
reloj, dando como resultado una frecuencia de reloj del #include <xc.h>
#define _XTAL_FREQ 48000000
microcontrolador de 48 MHz (PIC18F4550 |
Microchip Technology, n.d.). #define v_min 14
#define v_max 60
#define SERVO_HARDWARE

A continuación, se muestra las líneas de #define SERVO_1_PIN LATDbits.LD0 // Pin de salida del servo 1 en el puerto D
#define SERVO_1_DIR TRISDbits.RD0 // Bit de dirección del servo 1 en el puerto D
código que contienen esa configuración (Figura 8):

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
5
#define SERVO_2_PIN LATDbits.LD1 // Pin de salida del servo 2 en el puerto D #ifdef SERVO_7_PIN
#define SERVO_2_DIR TRISDbits.RD1 // Bit de dirección del servo 2 en el puerto D SERVO_7_DIR = 0;
SERVO_7_PIN = 0;
#define SERVO_3_PIN LATDbits.LD2 // Pin de salida del servo 3 en el puerto D #endif
#define SERVO_3_DIR TRISDbits.RD2 // Bit de dirección del servo 3 en el puerto D
#ifdef SERVO_8_PIN
#define SERVO_4_PIN LATDbits.LD3 // Pin de salida del servo 4 en el puerto D SERVO_8_DIR = 0;
#define SERVO_4_DIR TRISDbits.RD3 // Bit de dirección del servo 4 en el puerto D SERVO_8_PIN = 0;
#endif
#define SERVO_5_PIN LATDbits.LD4 // Pin de salida del servo 5 en el puerto D
#define SERVO_5_DIR TRISDbits.RD4 // Bit de dirección del servo 5 en el puerto D INTCONbits.GIE = 1;
INTCONbits.TMR0IE = 1;
#define SERVO_6_PIN LATDbits.LD5 // Pin de salida del servo 6 en el puerto D INTCONbits.TMR0IF = 0;
#define SERVO_6_DIR TRISDbits.RD5 // Bit de dirección del servo 6 en el puerto D T0CON = 0x50;
T0CONbits.TMR0ON = 1;
#define SERVO_7_PIN LATDbits.LD6 // Pin de salida del servo 7 en el puerto D TMR0 = 50;
#define SERVO_7_DIR TRISDbits.RD6 // Bit de dirección del servo 7 en el puerto D }

#define SERVO_8_PIN LATDbits.LD7 // Pin de salida del servo 8 en el puerto D #ifdef SERVO_1_PIN
#define SERVO_8_DIR TRISDbits.RD7 // Bit de dirección del servo 8 en el puerto D void Servo_1_Write(unsigned char ang)
void Servo_Init(void); {
data_s[0] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
#ifdef SERVO_1_PIN }
void Servo_1_Write(unsigned char ang); #endif
#endif
#ifdef SERVO_2_PIN
#ifdef SERVO_2_PIN void Servo_2_Write(unsigned char ang)
void Servo_2_Write(unsigned char ang); {
#endif data_s[1] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
}
#ifdef SERVO_3_PIN #endif
void Servo_3_Write(unsigned char ang);
#endif #ifdef SERVO_3_PIN
void Servo_3_Write(unsigned char ang)
#ifdef SERVO_4_PIN {
void Servo_4_Write(unsigned char ang); data_s[2] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
#endif }
#endif
#ifdef SERVO_5_PIN
void Servo_5_Write(unsigned char ang); #ifdef SERVO_4_PIN
#endif void Servo_4_Write(unsigned char ang)
{
#ifdef SERVO_6_PIN data_s[3] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
void Servo_6_Write(unsigned char ang); }
#endif #endif

#ifdef SERVO_7_PIN #ifdef SERVO_5_PIN


void Servo_7_Write(unsigned char ang); void Servo_5_Write(unsigned char ang)
#endif {
data_s[4] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
#ifdef SERVO_8_PIN }
void Servo_8_Write(unsigned char ang); #endif
#endif
#ifdef SERVO_6_PIN
void Servo_6_Write(unsigned char ang)
{
data_s[5] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
#include "servo.h"
}
#endif
unsigned int cont_sr = 0;
unsigned char data_s[8];
#ifdef SERVO_7_PIN
void Servo_7_Write(unsigned char ang)
void Servo_Init(void)
{
{
data_s[6] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
#ifdef SERVO_1_PIN
}
SERVO_1_DIR = 0;
#endif
SERVO_1_PIN = 0;
#endif
#ifdef SERVO_8_PIN
void Servo_8_Write(unsigned char ang)
#ifdef SERVO_2_PIN
{
SERVO_2_DIR = 0;
data_s[7] = (ang-0)*(v_max-v_min)/(180-0)+v_min;
SERVO_2_PIN = 0;
}
#endif
#endif
#ifdef SERVO_3_PIN
#ifdef SERVO_HARDWARE
SERVO_3_DIR = 0;
void __interrupt() TMR0_ISR(void)
SERVO_3_PIN = 0;
{
#endif
if(INTCONbits.TMR0IF == 1)
{
#ifdef SERVO_4_PIN
cont_sr = cont_sr + 1;
SERVO_4_DIR = 0;
if(cont_sr > 490){
SERVO_4_PIN = 0;
cont_sr = 0;
#endif
}
#ifdef SERVO_1_PIN
#ifdef SERVO_5_PIN
if(cont_sr < data_s[0]){SERVO_1_PIN = 1;} else{SERVO_1_PIN = 0;}
SERVO_5_DIR = 0;
#endif
SERVO_5_PIN = 0;
#endif
#ifdef SERVO_2_PIN
if(cont_sr < data_s[1]){SERVO_2_PIN = 1;} else{SERVO_2_PIN = 0;}
#ifdef SERVO_6_PIN
#endif
SERVO_6_DIR = 0;
SERVO_6_PIN = 0;
#ifdef SERVO_3_PIN
#endif
if(cont_sr < data_s[2]){SERVO_3_PIN = 1;} else{SERVO_3_PIN = 0;}

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
6
#endif Figura 10 Tabla Registro TXSTA
#ifdef SERVO_4_PIN
if(cont_sr < data_s[3]){SERVO_4_PIN = 1;} else{SERVO_4_PIN = 0;}
#endif

#ifdef SERVO_5_PIN
if(cont_sr < data_s[4]){SERVO_5_PIN = 1;} else{SERVO_5_PIN = 0;}
#endif

#ifdef SERVO_6_PIN
if(cont_sr < data_s[5]){SERVO_6_PIN = 1;} else{SERVO_6_PIN = 0;}
#endif

#ifdef SERVO_7_PIN
if(cont_sr < data_s[6]){SERVO_7_PIN = 1;} else{SERVO_7_PIN = 0;}
#endif

#ifdef SERVO_8_PIN
if(cont_sr < data_s[7]){SERVO_8_PIN = 1;} else{SERVO_8_PIN = 0;}
#endif

TMR0 = 50;
INTCONbits.TMR0IF = 0;
}
}
#endif

Otra de las implementaciones que se realizó


en el código fue la incorporación de la comunicación
UART. El UART (Universal Asynchronous
Receiver/Transmitter, por sus siglas en inglés) es un
componente de hardware informático que se encarga
de traducir datos entre formas paralelas y seriales. Los
UARTs se utilizan comúnmente en conjunto con
estándares de comunicación como EIA, RS-232, RS-
422 o RS-485. Por lo general, un UART es un circuito Registro RCSTA: Recepción de datos en 8
integrado individual o parte de uno, utilizado para las bits (Figura 15), con la siguiente línea de código:
comunicaciones seriales a través de un puerto serial en RCSTA = 10010000;
un equipo informático o dispositivo periférico.
Actualmente, los microcontroladores suelen incluir
UARTs de forma habitual(Kanse et al., n.d.). Figura 11 Tabla Registro RCSTA

Existen librerías ya creadas para usar este tipo


de comunicación con el estándar FT232, se hizo uso
de una librería de código desarrollada por Hernández
O.(Hernández, n.d.), done las principales
características de las configuraciones de registros son
las siguientes:

Registro TXSTA: Transmisión de datos en 8


bits, modo asíncrono, envió de datos de forma
continua, comunicación en alta velocidad (Figura 14).
Teniendo la siguiente línea de código: TXSTA =
0b00100100

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
7
Uart_Send_Char(*str++);
Registro BAUDCON: Para esto se debe }
calcular el valor del generador de tasa de baudios con }

la fórmula que se encuentra en el Datasheet del PIC


(Figura 16), teniendo en cuenta que el Baud Rate que
se usará será de 9600, 48MHz de F osc.
Con las anteriores librerías mencionadas ya se
Figura 12 Formula Baud Rate puede pasar a elaborar el código principal para el
funcionamiento de Brazo Robótico, como primeras
líneas de código tenemos la configuración del PIC ya
antes mencionado, la definición de la frecuencia a la
que se está trabajando, la inclusión de las librerías que
se requieren cuando se trabaja con el PIC18F4550 y
las librerías adicionales que se explicaron
anteriormente:
𝐹 𝑜𝑠𝑐
𝐵𝑅𝐶 = ( )−1
𝐵𝑎𝑢𝑑 𝑅𝑎𝑡𝑒 × 4 #pragma config PLLDIV = 2, CPUDIV = OSC1_PLL2, USBDIV = 2
#pragma config FOSC = HSPLL_HS, FCMEN = OFF, IESO = OFF
#pragma config PWRT = OFF, BOR = OFF, BORV = 3, VREGEN = OFF
48 𝑀𝐻𝑧 #pragma config WDT = OFF
𝐵𝑅𝐶 = ( )−1 #pragma config WDTPS = 32768
9600 × 4 #pragma config CCP2MX = ON, PBADEN = OFF, LPT1OSC = OFF, MCLRE = ON
#pragma config STVREN = ON, LVP = OFF, ICPRT = OFF, XINST = OFF
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF
𝐵𝑅𝐶 = 1249 → 0𝑥04𝐸1 #pragma config CPB = OFF, CPD = OFF
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF
#pragma config WRTC = OFF, WRTB = OFF, WRTD = OFF
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF
Con estos cálculos se tiene las siguientes #pragma config EBTRB = OFF
líneas de código mostradas :
#define _XTAL_FREQ 48000000
#include <xc.h>
#include <stdio.h>
#include <string.h>
vx = (unsigned int)(_XTAL_FREQ/(baud*4))-1; #include <stdbool.h>
SPBRG = vx & 0x00FF; #include <stdlib.h>
SPBRGH = vx >> 8;
#include "lcd.h"
#include "uart.h"
#include "servo.h"

Esas serían las principales configuraciones


que tiene la librería para su uso, la librería que se uso Una vez incluyeron las librerías necesarias se
tiene varias características adicionales, pero como solo procede a definir las diferentes variables que se usara
se desea usar para la transmisión de datos, se usaran durante todo este código, generalmente se usara para
solo tres funciones: Uart Init que inicializa la el almacenamiento de los datos en cadena que se
comunicación serial y pide un parámetro que la decepcionaran, estos enviados por el LabVIEW
velocidad a la que se va a trabajar, siendo este caso mediante la comunicación 232:
9600. Y los otros dos son para él envió y recepción de
los datos de 8bits (Figura18). bool es_primer_ciclo = true; // Variable booleana que indica si es la primera vez que
se ejecuta un ciclo

char dato_rx; // Variable para almacenar datos recibidos


void Uart_Init(unsigned long baud) char buffer[30]; // Almacena de forma temporal en foramto de cadena
{ char buf_dato[7][4]; // Almacena los datos extraídos de la cadena (7 datos de 4
unsigned int vx; digitos)
TRISCbits.RC6 = 0;
TRISCbits.RC7 = 1; int cont_rx = 0; // Variable entera para llevar un registro de la cadena principal
TXSTA = 0x24; int cont_buf = 0; // Variable entera para llevar un registro de los caracteres
RCSTA = 0x90; delimitadores
BAUDCON = 0x00; short buffer_flag = 0; // Variable bandera que indica que se finalizo la extraccion de
BAUDCONbits.BRG16 = 1; datos
vx = (unsigned int)(_XTAL_FREQ/(baud*4))-1;
SPBRG = vx & 0x00FF; char buf_lcd[10]; // Variable de caracteres para almacenar los datos para el lcd
SPBRGH = vx >> 8; char flama[10]; // Crear un buffer para almacenar la cadena de texto
} int datos_rx[7]; // Variable entera para llevar un registro de los valores extraídos
de la cadena
void Uart_Send_Char(char data)
{
while(TXSTAbits.TRMT == 0);
TXREG = data;
} Con esto pasamos a la recepción de datos, los
void Uart_Send_String(char *str)
cuales serán recibidos como una cadena de datos que
{ fueron enviados del LabVIEW y son los ángulos de
while(*str != '\0')
{ cada servo del brazo, estos serán siente datos con

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
8
Lcd_Write_String("Sin Objeto");
cuatro dígitos cada uno, para diferenciar entre que Lcd_Set_Cursor(2,2);
valores pertenecen a cada sub-cadena, se le puso una Lcd_Write_String("en Platanforma");
}
coma al final de cada sub-cadena para la diferenciación
int Sensor_IR = PORTDbits.RD6;
de estos, para este proceso se creó una función que se
encargara de recibir los datos en cadena, separarlos y if (Sensor_IR == 1){

almacenarlos temporalmente(Figura 21).. Lcd_Clear();


Lcd_Set_Cursor(6,1);
Lcd_Write_String("Objeto");
Lcd_Set_Cursor(4,2);
void recibir_datos() { Lcd_Write_String("Detectado");
__delay_ms(500);
if(Uart_Available() > 0) { // Verifica si hay datos disponibles para leer
dato_rx = Uart_Read(); // Lee el dato disponible Lcd_Clear();
switch(dato_rx) { // Comienza un switch statement para procesar el dato Lcd_Set_Cursor(5,1);
recibido Lcd_Write_String("Iniciando");
case ',': // Si el dato recibido es una coma Lcd_Set_Cursor(5,2);
buffer[cont_rx] = '\0'; // Añade un carácter nulo al final de la serie de Lcd_Write_String(" Traslado");
caracteres recibidos __delay_ms(500);
strcpy(buf_dato[cont_buf], buffer); // Copia la serie de caracteres recibidos
en la matriz bidimensional Lcd_Clear();
cont_buf++; // Incrementa el contador de datos recibidos Lcd_Set_Cursor(5,1);
cont_rx = 0; // Reinicia el contador de caracteres recibidos Lcd_Write_String("Posicion");
break; Lcd_Set_Cursor(5,2);
Lcd_Write_String("Inicial");
case '\n': // Si el dato recibido es una nueva línea
cont_rx = 0; // Reinicia el contador de caracteres recibidos //Posicion Inicial
cont_buf = 0; // Reinicia el contador de datos recibidos Servo_1_Write(90);
buffer_flag = true; // Activa la bandera del buffer para indicar que está lleno __delay_ms(500);
break; Servo_2_Write(70);
__delay_ms(500);
default: // Si el dato recibido es cualquier otro carácter Servo_3_Write(130);
buffer[cont_rx++] = dato_rx; // Añade el carácter recibido al array de __delay_ms(500);
caracteres Servo_4_Write(90);
break; __delay_ms(500);
} Servo_5_Write(180);
} __delay_ms(500);
} Servo_6_Write(0);
__delay_ms(500);

//Movimiento 1

Con los datos recibidos y almacenados Lcd_Clear();


Lcd_Set_Cursor(5,1);
crearemos otra función que se encargara de mandar los Lcd_Write_String("Posicion");
datos almacenados a los servos con la ayuda de la Lcd_Set_Cursor(8,2);
Lcd_Write_String("01");
librería de servos que se mencionó anteriormente, Servo_5_Write(170);
__delay_ms(100);
además aquí se configura los dos modos que tiene el Servo_5_Write(150);
brazo (manual y automático), donde el automático __delay_ms(100);
Servo_5_Write(130);
seguirá una configuración de ángulos establecidos en __delay_ms(100);
Servo_5_Write(110);
el código teniendo 12 movimientos que realizara el __delay_ms(100);
traslado de un objeto del punto A al B, y el modo Servo_5_Write(90);//
__delay_ms(500);
manual que usara los datos guardados, que moverán
//Movimiento 2
cada servo según al valor que se envíe del LabVIEW
(Figura 22,23,24). Lcd_Set_Cursor(8,2);
Lcd_Write_String("02");
Servo_3_Write(140);
__delay_ms(100);
Servo_3_Write(155);//
__delay_ms(500);
void actualizar_servos() {
//Movimiento 3
if (buffer_flag) { // Si la bandera del buffer está activa (es decir, si se han recibido
Lcd_Set_Cursor(8,2);
todos los datos esperados)
Lcd_Write_String("03");
for(char i=0; i<7; i++){ // Inicia un bucle for para procesar cada dato recibido
Servo_2_Write(60);//
datos_rx[i] = atoi(buf_dato[i]); // Convierte la cadena de caracteres
__delay_ms(500);
correspondiente en un entero utilizando la función atoi() y la almacena en la matriz de
enteros
//Movimiento 4
}
Lcd_Set_Cursor(8,2);
//Activar Modo Automatico
Lcd_Write_String("04");
if (datos_rx[0] == 1) {
Servo_6_Write(180);//
__delay_ms(500);
// Si es el primer ciclo
if (!es_primer_ciclo) {
//Movimiento 5
Lcd_Clear();
Lcd_Set_Cursor(2,1);
Lcd_Set_Cursor(8,2);
Lcd_Write_String("Modo Automatico");
Lcd_Write_String("05");
Lcd_Set_Cursor(5,2);
Servo_3_Write(140);
Lcd_Write_String("Activado");
__delay_ms(100);
__delay_ms(500);
Servo_3_Write(125);//
__delay_ms(500);
Lcd_Clear();
Lcd_Set_Cursor(4,1);

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
9
//Movimiento 6 if (es_primer_ciclo) {
Lcd_Clear();
Lcd_Set_Cursor(8,2); Lcd_Set_Cursor(3,1);
Lcd_Write_String("06"); Lcd_Write_String("Modo Manual");
Servo_1_Write(110); Lcd_Set_Cursor(5,2);
__delay_ms(100); Lcd_Write_String("Activado");
Servo_1_Write(130); __delay_ms(1000);
__delay_ms(100); es_primer_ciclo = false;
Servo_1_Write(130); }
__delay_ms(100);
Servo_1_Write(150); Lcd_Clear();
__delay_ms(100);
Servo_1_Write(180);// Lcd_Set_Cursor(1,1);
__delay_ms(500); sprintf(buf_lcd, "1:%u", datos_rx[1]);
Lcd_Write_String(buf_lcd);
//Movimiento 7 Servo_1_Write(datos_rx[1]);

Lcd_Set_Cursor(8,2); Lcd_Set_Cursor(6,1);
Lcd_Write_String("07"); sprintf(buf_lcd, "2:%u", datos_rx[2]);
Servo_5_Write(65); Lcd_Write_String(buf_lcd);
__delay_ms(100); Servo_2_Write(datos_rx[2]);
Servo_5_Write(55);
__delay_ms(100); Lcd_Set_Cursor(12,1);
Servo_5_Write(45);// sprintf(buf_lcd, "3:%u", datos_rx[3]);
__delay_ms(500); Lcd_Write_String(buf_lcd);
Servo_3_Write(datos_rx[3]);
//Movimiento 8
Lcd_Set_Cursor(1,2);
Lcd_Set_Cursor(8,2); sprintf(buf_lcd, "4:%u", datos_rx[4]);
Lcd_Write_String("08"); Lcd_Write_String(buf_lcd);
Servo_3_Write(145); Servo_4_Write(datos_rx[4]);
__delay_ms(100);
Servo_3_Write(165);// Lcd_Set_Cursor(6,2);
__delay_ms(500); sprintf(buf_lcd, "5:%u", datos_rx[5]);
Lcd_Write_String(buf_lcd);
//Movimiento 9 Servo_5_Write(datos_rx[5]);

Lcd_Set_Cursor(8,2); Lcd_Set_Cursor(12,2);
Lcd_Write_String("09"); sprintf(buf_lcd, "6:%u", datos_rx[6]);
Servo_6_Write(0);// Lcd_Write_String(buf_lcd);
__delay_ms(500); Servo_6_Write(datos_rx[6]);

//Movimiento 10 }

Lcd_Set_Cursor(8,2); buffer_flag = false;


Lcd_Write_String("10"); }
Servo_3_Write(155); }
__delay_ms(100);
Servo_3_Write(135);
__delay_ms(100);
Servo_3_Write(120);//
__delay_ms(500);

//Movimiento 11 Una vez se tiene establecido esas dos


Lcd_Set_Cursor(8,2);
funciones se realiza la función principal, donde se
Lcd_Write_String("11"); configura los pines como entrada donde estarán
Servo_5_Write(65);
__delay_ms(100); ubicados el sensor de flama y distancia, también un pin
Servo_5_Write(80);
__delay_ms(100);
de salida para un relé que suministrara energía a los
Servo_5_Write(90);// servos, seguidamente inicializamos el puerto UART a
__delay_ms(500);
9600 baudios, el modulo de control de servos y el
//Movimiento Final módulo LCD, seguidamente usamos las librerías de
Lcd_Set_Cursor(6,2); LCD para mostrar un mensaje de inicio y pasamos al
Lcd_Write_String("Final!");
Servo_1_Write(160); bucle del programa donde empezamos leyendo el
__delay_ms(100);
Servo_1_Write(140);
sensor de flama, si el valor detectado es 0, se llamara
__delay_ms(100); a las funciones recibir datos y actualizar servos, si se
Servo_1_Write(120);
__delay_ms(100); detecta que el valor es uno (indicios de fuego) , el relé
Servo_1_Write(110);
__delay_ms(100);
cortara el suministro del brazo y mostrar una alerta en
Servo_1_Write(90);// el LCD, con esto el código estaría terminado.
__delay_ms(500);
Seguidamente se harán las simulaciones para verificar
Lcd_Clear();
Lcd_Set_Cursor(4,1);
el código (Figura 25).
Lcd_Write_String("Sin Objeto");
Lcd_Set_Cursor(2,2);
Lcd_Write_String("en Platanforma");

} void main(void) {

es_primer_ciclo = true; // Configuración de los pines

} TRISBbits.TRISB7 = 1; // Pin B7 configurado como entrada para el sensor de llama


TRISDbits.TRISD6 = 1; // Pin D6 configurado como entrada para el sensor de
//Activar Modo Manual distancia
else { TRISBbits.TRISB6 = 0; // Pin B6 configurado como salida para el relé

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
10
// Inicialización de los módulos del sistema
tiempo real. Teniendo casos particulares que se
Uart_Init (9600); // Inicialización del puerto UART a una velocidad de 9600 baudios enfocaron, en la medición y control de la temperatura
Lcd_Init(); // Inicialización del módulo LCD
Servo_Init(); // Inicialización del módulo de control de servomotores utilizando una interfaz USB para comunicarse con una
__delay_ms(500); // Espera 500ms para la inicialización del microcontrolador
PC, medición en la eficiencia de un motor de
// Mostrar un mensaje de bienvenida en la pantalla LCD inducción trifásico, la opción de manipular de forma
Lcd_Set_Cursor(2,1);
Lcd_Write_String("Brazo Robotico"); manual el robot se realiza por medio de perillas en el
Lcd_Set_Cursor(4,2);
Lcd_Write_String("PIC18F4550");
panel frontal de LabVIEW.
__delay_ms(1000); // Retraso para dar tiempo a que el usuario lea el mensaje

// Bucle principal del programa Esta solución tiene ventajas significativas,


while(1) {
especialmente en entornos educativos y para
// Leer el estado del sensor de llama estudiantes que deseen llevar a cabo experimentos de
int Sensor_Flama = PORTBbits.RB7;
laboratorio relacionados con la evaluación y control de
if (Sensor_Flama == 0){ // Si no se detecta fuego
la variación de temperatura. LabVIEW, al
PORTBbits.RB6 = 0; // Apagar el relé proporcionar una plataforma intuitiva y funcional,
recibir_datos(); // Llamada a la función para recibir datos por el puerto
UART facilita la implementación de este tipo de
actualizar_servos(); // Llamada a la función para actualizar los servomotores
experimentos utilizando un sistema portátil y de bajo
} costo.
else { // Si se detecta fuego Se creó una interfaz de usuario intuitiva y
PORTBbits.RB6 = 1; // Encender el relé
funcional en LabVIEW, En la ventana de Front Panel
sprintf(buffer, "%d", 1); // Convertir el número 1 a una cadena de texto y de LabVIEW para el control de los movimientos del
almacenarla en el buffer
Uart_Send_String(buffer); // Enviar la cadena de texto a través del puerto brazo se añadió 6 diales para cada servo en un rango
UART
Lcd_Clear(); // Limpiar la pantalla LCD
de 0 a 180 que son los ángulos que permiten cada
Lcd_Set_Cursor(3,1); servo, adicional a eso un switch que ayudara a cambiar
Lcd_Write_String("Alerta Fuego");
Lcd_Set_Cursor(3,2); los modos (manual y automático), además de un
Lcd_Write_String("Rele Apagado");
es_primer_ciclo = true; // Reiniciar si es la primera vez que se ejecuta un
indicador que muestra la cadena de datos que se está
ciclo enviando (Figura 26).
__delay_ms(500); // Retraso para dar tiempo a que el usuario lea el
mensaje de alerta

}
} Figura 13 Panel Frontal LabVIEW
}

E. Control del brazo robótico en LabVIEW

Se utilizó LabVIEW como entorno de


desarrollo para la interfaz de control del brazo
robótico, LabVIEW es un software de ingeniería para
pruebas, medidas y control. Simplifica la integración
de hardware y permite adquirir datos y crear interfaces
de usuario. También ofrece herramientas para el
análisis de datos y el desarrollo de algoritmos.
LabVIEW es compatible con otras herramientas y
lenguajes de fuente abierta (Kehtarnavaz & Kim,
2005).
Los trabajos de investigación " Design of a
thermal stabilizer based on USB data acquisition and
control using LabVIEW and PIC microcontroller "
(2021), “Automated efficiency measurement of three
phase induction motor using LabVIEW” (2013),
“Detección y Seguimiento Visual mediante LabVIEW Y para la parte de Diagrama de Bloques del LabVIEW
para el Posicionamiento de un Brazo Robot de tipo se pasaron los valores de los diales a Byte para luego
Manipulador.” (2017) y “Análisis de la influencia del ser pasado a una cadena decimal, esta cadena de
tamaño de muestra en la estimación del coeficiente de decimales de cada dial será concatenados y separados
correlación de Pearson mediante simulación Monte por comas, para diferenciar cada valor, para el envió
Carlo” (2019) destacan el uso de LabVIEW en el de estos datos mediante el FT232 se usó el bloque
desarrollo de sistemas de adquisición y control en

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
11
VISA Write perteneciente al controlador NI-VISA
(Figura 27).
Figura 16 Panel Frontal LabVIEW Conectado al Proteus
Figura 14 Diagrama de Bloques LabVIEW

F. Simulación en Proteus

Se realizó una simulación del sistema


completo utilizando el software Proteus, que incluía
los 6 servos, un LCD que indicaran los valores de los
servos, el microcontrolador PIC y la interfaz de control
en LabVIEW. La simulación permitió verificar el
funcionamiento y la interacción entre los
componentes, así como identificar posibles problemas G. Implantación del Brazo y LabVIEW
o mejoras necesarias (Figura 28,29).
Se procedió a realizar pruebas de forma física con
Figura 15 Simulación Circuito Proteus la utilización de un protoboard como base donde se
ubico el PIC y con jumper se conectaron los sensores
Control de Brazo Robótico y el FT232, se conectó mediante USB al dispositivo
Mediante LabVIEW y PIC donde esta instalado el LabVIEW, y realizaron las
pruebas donde no se encontraron fallas (Figura 30).
2 15
RA0/AN0 RC0/T1OSO/T1CKI
3 16
R1 4
RA1/AN1 RC1/T1OSI/CCP2/UOE
17

Figura 17 Pruebas del Circuito


RB6 RA2/AN2/VREF-/CVREF RC2/CCP1/P1A
VDD
VSS

VEE

5 23
RW
RS

D0
D1
D2
D3
D4
D5
D6
D7

220 RA3/AN3/VREF+ RC4/D-/VM


E

6 24
RA4/T0CKI/C1OUT/RCV RC5/D+/VP
7 25
RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK
1
2
3

4
5
6

7
8
9
10
11
12
13
14

14 26
RA6/OSC2/CLKO RC7/RX/DT/SDO RX
13
OSC1/CLKI
33 19
RS RB0/AN12/INT0/FLT0/SDI/SDA RD0/SPP0 S1
34 20
D4
D5
D6
D7
RS

E RB1/AN10/INT1/SCK/SCL RD1/SPP1 S2
35 21
D4 RB2/AN8/INT2/VMO RD2/SPP2 S3
36 22
D5 RB3/AN9/CCP2/VPO RD3/SPP3 S4
37 27 Sensor Proximidad
D6 RB4/AN11/KBI0/CSSPP RD4/SPP4 S5
Sensor Flama 38 28
D7 RB5/KBI1/PGM RD5/SPP5/P1B S6
39 29
RB6
40
RB6/KBI2/PGC RD6/SPP6/P1C
30 0
0 RB7/KBI3/PGD RD7/SPP7/P1D
8
RE0/AN5/CK1SPP
9
S1 S2 S3 RE1/AN6/CK2SPP
10
RE2/AN7/OESPP
18 1
+99.8 +99.8 +76.1
VUSB RE3/MCLR/VPP 1
PIC18F4550

P1
S4 S5 S6
1
DCD
6
DSR
+76.1 +28.3 +68.1 2
RX RXD
7
RTS
3
TXD
8
CTS
4
DTR
9
RI
RXD RX

TXD ERROR
COMPIM
RTS

CTS

Una vez se verifico que los componentes esta


funcionando de forma correcta, se elaboró un módulo
donde se ubicara el PIC y dispositivos que son
necesarios, como el FT232, Sensor de Flama,

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
12
Regulador de Voltaje a 5 V ya que estará alimentado Figura 20 Brazo Robótico con Modulo
con una fuente de 12V a 15A, relé, borneras (Figura
31,32).

Figura 18 Modulo

Figura 19 Modulo en funcionamiento

III. RESULTADOS

En esta sección, se presentan los resultados obtenidos


en la implementación de la comunicación FT-232 para el
control del LabVIEW y el PIC 18F4550, así como los logros
alcanzados en este proyecto de investigación.

3.1 Implementación y Desarrollo del Proyecto

Diseño e impresión 3D del módulo de control: Se logró


diseñar e imprimir en 3D un módulo de control completo que
integraba todos los componentes electrónicos necesarios, como
el PIC, un display para mostrar los valores de los servomotores,
el FT-232 con una conexión externa para el cableado, entre
otros. Además, se incluyeron el sensor de llama y el sensor
infrarrojo para la gestión de emergencias y la detección de
objetos.

3.2 Conectividad y Estabilidad de la Comunicación

Tiempo de respuesta: Se logró una respuesta rápida de 100


milisegundos desde el LabVIEW al PIC y, posteriormente, a los
servomotores, lo que permitió un control preciso en tiempo real.

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
13
Estabilidad de la comunicación: Se evidenció una 3.7 Resolución de la Problemática Planteada
comunicación estable y sin pérdida de señal entre el programa
LabVIEW y el FT-232, lo cual garantizó una transmisión En cuanto a la problemática planteada relacionada con
confiable de las instrucciones. la comunicación entre el FT-232 y el PIC, se puede considerar
que el proyecto resolvió de manera exitosa esta problemática en
3.3 Desempeño de los Servomotores un 9 de 10. Se logró establecer una comunicación estable y
segura entre ambos componentes, garantizando una transmisión
Control y movimiento: Los 6 servomotores controlados a través confiable de datos. No obstante, se requirieron conocimientos
de la comunicación FT-232 demostraron un desempeño óptimo, sólidos en programación C++, electrónica y comunicación de
respondiendo adecuadamente a las órdenes enviadas desde el señales para llevar a cabo el proyecto con éxito.
LabVIEW. Esto permitió la articulación y el movimiento de la
estructura del brazo robótico de forma precisa y coordinada.
IV. DISCUSIÓN
Pruebas de uso prolongado: Se realizaron pruebas de uso de los
servomotores durante un período de 30 minutos, verificando las La implementación exitosa del control de un brazo robótico
posiciones iniciales y constatando una variación mínima del 2% mediante LabVIEW y PIC a través del protocolo FT232RS232
en comparación con los ángulos iniciales. Esto evidencia la plantea diversas consideraciones y puntos de discusión que son
fiabilidad y estabilidad de los servomotores en su relevantes para comprender el alcance y las implicaciones de
funcionamiento a lo largo del tiempo. este proyecto de investigación.

Ventajas del uso de LabVIEW y PIC


3.4 Fiabilidad de la Comunicación en Tiempo Real
La elección de LabVIEW como entorno de programación y el
Visualización en tiempo real: Se demostró la fiabilidad de la PIC como microcontrolador presenta varias ventajas
comunicación en tiempo real mediante un display que reflejaba significativas. LabVIEW proporciona una interfaz gráfica
las instrucciones enviadas desde el PIC. La visualización en el intuitiva que facilita la programación y el control de
LabVIEW coincidía con la posición de los servomotores, lo dispositivos, lo que permite una rápida implementación y
cual confirmó la correcta transmisión de datos y la desarrollo del proyecto. Por otro lado, el PIC ofrece una
sincronización entre los componentes utilizados. comunicación confiable a través del protocolo FT232Por otro
lado, el PIC ofrece una comunicación confiable a través del
protocolo RS232, lo que garantiza una transferencia de datos
3.5 Integración de Sensores
estable y precisa entre el LabVIEW y el brazo robótico.
Sensor infrarrojo: El sensor infrarrojo integrado en el sistema
de control respondió de manera adecuada, proporcionando Importancia de la comunicación FT232
valores digitales que indicaban la presencia de obstáculos en el
camino del brazo robótico. La comunicación 232RS232 juega un papel fundamental en
este proyecto, ya que permite la transmisión de datos entre el
LabVIEW y el PIC. Esta conexión serial proporciona una
Sensor de llama: El sensor de llama envió datos analógicos para
comunicación confiable y robusta, lo que garantiza que las
la detección de peligro cercano. Mediante una calibración
instrucciones enviadas desde LabVIEW sean interpretadas
adecuada, se generaron alertas en el PIC y se apagó el módulo
correctamente por el PIC y se reflejen en los movimientos del
completo, garantizando la seguridad en caso de fuego u otras
emergencias. brazo robótico. La elección adecuada de la comunicación
FT232RS232 y la correcta configuración de los parámetros de
comunicación son aspectos críticos para lograr un control
3.6 Impacto de la Tecnología de Impresión 3D preciso y eficiente del brazo robótico.

La utilización de la tecnología de impresión 3D tuvo Desafíos y soluciones encontrados


un impacto significación de componentes personalizados y
específicos, adaptados a las necesidades del proyecto. Esto
Durante el desarrollo de este proyecto, surgieron varios desafíos
proporcionó mayor precisión en la colocación de los
que requirieron soluciones y ajustes. Uno de los desafíos fue la
componentes electrónicos, facilitó la conexión y el cableado, y
configuración en código para controlar los servomotores
mejoró la estética y funcionalidad del brazo robótico. Sin la
tecnología de impresión 3D, no habría sido posible lograr el mediante el PIC, así como la identificación de la frecuencia y la
nivel de detalle y complejidad requerido para este proyecto. ubicación de las librerías adecuadas. Además, se encontraron
dificultades en la comunicación debido a problemas de

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
14
desconexión y emparejamiento incorrecto del módulo FT-232. Integración de tecnología avanzada: El uso de
Estos desafíos se superaron mediante el apagado y reinicio del tecnología de impresión 3D en la implementación del brazo
módulo, cerrando y abriendo nuevamente LabVIEW, y robótico permitió una mayor precisión y funcionalidad en el
restableciendo la conexión de todos los componentes. Estos diseño y la estructura del proyecto. Esta integración de
desafíos y las soluciones encontradas resaltan la importancia de tecnología avanzada no solo mejoró la apariencia y el
la experiencia y el conocimiento técnico en la implementación rendimiento del brazo robótico, sino que también facilitó la
exitosa de proyectos similares.
corrección de posibles errores y la adaptación a requisitos
específicos.
Evaluación del rendimiento del brazo robótico
Superación de desafíos técnicos: Durante el desarrollo
El rendimiento del brazo robótico controlado mediante del proyecto, se enfrentaron desafíos técnicos relacionados con
LabVIEW y PIC se evaluó en términos de precisión, estabilidad la configuración del código, la identificación de frecuencias, la
y respuesta en tiempo real. Se realizaron pruebas para verificar ubicación de librerías y problemas de conexión. Sin embargo,
la alineación de los servomotores, la consistencia entre las mediante la aplicación de conocimientos especializados y la
instrucciones enviadas desde LabVIEW y los movimientos del implementación de soluciones adecuadas, se superaron estos
brazo robótico, y la estabilidad de la conexión durante un obstáculos y se logró un funcionamiento óptimo del sistema.
período prolongado de uso. Los resultados obtenidos
demostraron un desempeño óptimo del brazo robótico, con una En general, el nivel de éxito alcanzado en la
precisión aceptable y una respuesta en tiempo real satisfactoria. implementación de la comunicación FT-232 para el control del
LabVIEW y el PIC 18F4550 puede considerarse muy alto. Los
Potencial de transferencia a otras aplicaciones resultados obtenidos demuestran una conectividad estable, un
control preciso de los servomotores y una integración exitosa
El éxito de este proyecto demuestra el potencial de transferir la de tecnologías avanzadas. Estos logros abren nuevas
programación y la comunicación desarrolladas a otras oportunidades para aplicar este enfoque en otros proyectos que
aplicaciones que requieran el control de servomotores mediante requieran una comunicación confiable y un control preciso de
LabVIEW y PIC. El conocimiento adquirido en este proyecto dispositivos mecánicos. En conclusión, este proyecto ha
puede ser aplicado en diferentes contextos donde se necesite un demostrado ser una solución efectiva y prometedora en el
control preciso y confiable de dispositivos mecánicos o
campo de la robótica y la automatización.
sistemas

V. CONCLUSIONES
REFERENCIAS
En conclusión, el desarrollo de la comunicación FT-
232 para la gestión y control del LabVIEW y el
microcontrolador PIC 18F4550 ha sido exitoso y ha demostrado Fernanda, G., Espinoza, S., Alberto, C., Chóez, A., & -
ser una solución confiable y eficiente para el control de un brazo Ecuador, G. (2008). ESCUELA SUPERIOR
robótico. A partir de los resultados obtenidos y las evidencias POLITÉCNICA DEL LITORAL. Presentado por.
presentadas, se pueden extraer las siguientes conclusiones
clave: Arboleda Gómez, A. M., & Toro Uchima, D. A. (2013). Diseño
Conectividad estable y precisa: Se logró establecer una
de robot tipo oruga con brazo articulado.
conectividad plena y estable entre el LabVIEW, el FT-232 y el https://repositorio.utp.edu.co/items/07ba5d13-c7bc-
PIC, permitiendo una transferencia de datos confiable y precisa. 40dc-b8c6-7b52a3f7de43
Esto garantizó que las instrucciones enviadas desde el
LabVIEW se reflejaran correctamente en los movimientos del Hernandez, A. (n.d.). Video 19.- Control de
brazo robótico. servomotores.zip - Google Drive. Retrieved May 16,
2023, from
Control preciso de los servomotores: Mediante el uso
del protocolo FT232RS232 y la programación adecuada del
https://drive.google.com/file/d/1llokgbs4WUBbM
PIC, se logró un control preciso de los servomotores. Se verificó 4L8PKJIKDnOe54w57rh/view
que los movimientos indicados en el LabVIEW se ejecutaran
correctamente en los servomotores, lo que demostró la
Hernández, A. (n.d.). Video 24.- UART - Transmision de
fiabilidad y la efectividad de la comunicación establecida. datos.zip - Google Drive. Retrieved May 16, 2023,

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
15
from https://drive.google.com/file/d/1W6lfOb- programable básico, con interface usb utilizando el
tYzrAFznoaLqRpDf75uKconP7/view pic 18f4550 (Bachelor's thesis, Quito, 2016.).

Kanse, S., Mayuri, B., Abhilasha, B., & Nilam, K. (n.d.). Sanchez Espinoza, G. F., & Alvarado Choez, C. A.
PROTOCOL CONVERTER (UART, I2C, MANCHESTER (2018). Diseño de brazo robótico y diseño de brazo
PROTOCOLS TO USB). IJRET: International Journal of empuja frascos controlados por LabView y
Research in Engineering and Technology, 2321– dsPICs (Bachelor's thesis, Espol).
7308. Retrieved May 16, 2023, from
García, E. F., Quezada, J. Q., Galindo, A. S., & Santander,
www.datasheets.com
E. P. (2017). Detección y Seguimiento Visual
Kehtarnavaz, N., & Kim, N. (2005). Digital Signal mediante LabVIEW para el Posicionamiento de un
Processing System-Level Design Using LabVIEW. Brazo Robot de tipo Manipulador. Boletín Científico
INVESTIGIUM de la Escuela Superior de
PIC18F4550 | Microchip Technology. (n.d.). Retrieved
Tizayuca, 2(4).
May 16, 2023, from
https://www.microchip.com/en- Ramírez, B. I. A., Cabezas, E. F. G., Quezada, J. C. A., &
us/product/pic18f4550 Martínez, J. C. C. (2020). Control y monitoreo de
brazo robótico integrando Labview, Solidworks y la
Prototipo De Un Brazo Robótico, C. DE,
internet de las cosas. Revista Arbitrada
Telecomunicaciones Ramos Velasco Maria Augusta,
Interdisciplinaria Koinonía, 5(2), 30-47.
E. Y., & Hernan Flores Valencia, J. (n.d.). ESCUELA
POLITÉCNICA NACIONAL ESCUELA DE FORMACIÓN De La Rosa Mejillón, N. (2014). Brazo robot, para el
DE TECNÓLOGOS PROYECTO PREVIO A LA reconocimiento y manipulación de objetos,
OBTENCIÓN DEL TÍTULO DE TECNÓLOGO EN. controlado mediante inteligencia artificial, como
complemento de tecnología robótica en la carrera
Design of a thermal stabilizer based on USB data
de Electrónica y Telecomunicaciones de la
acquisition and control using LabVIEW and PIC
Universidad Estatal Península de Santa Elena año
microcontroller. (2021). ResearchGate.
https://www.researchgate.net/publication/370231 2014 (Bachelor's thesis, La Libertad: Universidad
638_Design_of_a_thermal_stabilizer_based_on_U Estatal Península de Santa Elena, 2014.).
SB_data_acquisition_and_control_using_LabVIEW Flores Torres, L. E. (2015). Diseño de un Brazo Robótico
_and_PIC_microcontroller/citations
de configuración angular y de 6 grados de libertad
con alcance de un metro destinado a los procesos de
A NOVEL ANALYSIS OF EOG THROUGH LABVIEW FOR
soldadura por arco eléctrico con trayectorias
PROSTHETIC ARM CONTROL SYSTEM DESIGN USING
lineales.
PIC MICROCONTROLLER. (2019). ResearchGate.
https://www.researchgate.net/publication/342514 Garcíaa, E. H., Cruza, E. M., Rodrígueza, A. A. T., &
700_A_NOVEL_ANALYSIS_OF_EOG_THROUGH_LAB Hernándeza, J. I. H. Sistema automatizado para la
VIEW_FOR_PROSTHETIC_ARM_CONTROL_SYSTEM_ clasificación y manipulación de objetos mediante un
DESIGN_USING_PIC_MICROCONTROLLER brazo articulado.
Cobo, S. R., García, J. A., & Padilla, J. B. (2014). Sistema Gustà Caballero, A. (2016). Brazo robótico controlado
robotizado para soldadura de circuitos remotamente (Bachelor's thesis, Universitat
impresos. Scientia et technica, 19(3), 335-340. Politècnica de Catalunya).
Rocha Saldaña, C. E., & Tayupanta Tigasi, J. D. Arrazola-Godoy, D., Contreras-Aculco, D., Flores-López, L.
(2016). Construcción de un controlador lógico Á., Flores-Pérez, U. D., Orbezo-Salazar, D., &
Zamudio-Beltrán, Z. Desarrollo de un robot

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
16
manipulador accesible para aplicaciones educativas 937_Implementacion_de_Comunicacion_USB_con_
controlado mediante un microcontrolador PIC®. Microcontrolador_PIC18F4550_y_LabVIEW

ResearchGate. (2013). Comunicación USB de Alta S. S. Kumar, S. S. Kumar, and K. R. Mohan, “Automated
Velocidad entre LABVIEW y un Microcontrolador efficiency measurement of three phase induction
para la Adquisición de Datos en Tiempo Real. motor using LabVIEW,” in 2013 International
https://www.researchgate.net/publication/260245 Conference on Computer Communication and
881_Comunicacion_USB_de_Alta_Velocidad_entre Informatics, 2013, pp. 1–5.
_LABVIEW_y_un_Microcontrolador_para_la_Adqui https://www.researchgate.net/publication/370231
sicion_de_Datos_en_Tiempo_Real 638_Design_of_a_thermal_stabilizer_based_on_US
B_data_acquisition_and_control_using_LabVIEW_a
Mosquera Garcés, L. A. (2015). Diseño de un brazo
nd_PIC_microcontroller
robótico autómata controlado por un sistema
human machine interface que transporte cubos de
madera entre dos puntos fijos para los laboratorios
de electrónica de la Universidad Israel (Bachelor's
thesis, Quito: Universidad Israel, 2015).

Acero, A. R., Cano, A. M., & Builes, J. A. J. (2013). Modelo


de aprendizaje basado en robótica educativa en
lenguaje de programación gráfico.

ResearchGate. (2015). Low cost and efficient ECG


measurement system using PIC18F4550
microcontroller.
https://www.researchgate.net/publication/280739
766_Low_cost_and_efficient_ECG_measurement_s
ystem_using_PIC18F4550_microcontroller

Sánchez-González, L., & García-Sánchez, E. (2019).


Análisis de la influencia del tamaño de muestra en la
estimación del coeficiente de correlación de Pearson
mediante simulación Monte Carlo. Revista
Colombiana de Estadística, 42(2), 329-347.
https://scholar.google.com/citations?view_op=vie
w_citation&hl=es&user=lO98_hwAAAAJ&citation_f
or_view=lO98_hwAAAAJ:hqOjcs7Dif8C

LABVIEW TABANLI USB PORT ÜZERINDEN MOTOR


KONTROLU. (2015)
https://www.researchgate.net/publication/286446
614_LABVIEW_TABANLI_USB_PORT_UZERINDEN_
MOTOR_KONTROLU

Implementación de Comunicación USB con


Microcontrolador PIC18F4550 y LabVIEW. (2018).
ResearchGate.
https://www.researchgate.net/publication/324437

Control de un Brazo Robótico Mediante LabVIEW y PIC por el Protocolo FT232 Lima - PERU, May 17, 2023.
17

También podría gustarte