Está en la página 1de 8

Laboratorio de diseño de sistemas mecatrónicos

Ing. Dante Ferreyra Méndez


Control de Posición e implementación en servomotor

Miércoles V5

Alumnos:

Miguel Angel Salas Estrada 1592636


Armando Alexis Velázquez Hipólito 1681933
Roberto Angel Ortega Gonzalez 1657180

Semestre Febrero - junio 2021


Objetivo
Control de posición e implementación en servomotor. Esta práctica consiste en realizar un
experimento con un dispositivo electromecánico dado por un actuador, el cual se puede definir
como aquel que combina parte eléctrica y mecánica para conformar su mecanismo u
operación. El objetivo principal es que el alumno aprenda a combinar sistemas mecánicos,
eléctricos y el uso de la computadora con la finalidad de controlar la posición del eje del
servomotor. La señal de entrada que se obtuvo a partir de Labview mediante el instrumento
virtual de la práctica anterior, servirá como alimentación de control del servomotor.

Introducción.
En esta práctica utilizaremos un microprocesador como interfaz entre el Elvis y el servomotor,
para esto en la práctica anterior se dio a conocer el funcionamiento de los servomotores.

Desarrollo
Seleccione el microprocesador a utilizar para esta práctica, sustentando las razones de su
elección y desarrollo.

Para este caso se usará la placa arduino debido a que tiene buen soporte labview con arduino
y es muy sencillo de usar, además que el servomotor es ideal y fácil de implementar en la
placa con la versatilidad de desarrollar todo el código en labview, porque en este caso arduino
será implementado solamente para recibir datos por serial y esos datos serán los que
controlen el servo dependiendo de las configuraciones en labview.

1. Arduino y labview

• Seleccione el software y lenguaje de programación del mismo

El software seleccionado es el IDE de arduino debido a que arduino es una placa sencilla de
usar y en este caso solo será usado para recibir los datos de labview e interpretarlos para el
movimiento del servomotor, el lenguaje de programación usado en el IDE de arduino es
mediante código c este es estándar además del uso de algunas librerías para reconocer el
servo y los datos que serán enviados desde labview.

•Desarrolle el código de programación para que el microprocesador pueda ser usado como
interfaz.

2
El código implementado para recibir los datos será mediante la IDE de arduino esta debido a
que labview tiene muy buen manejo de strings, de lo único que arduino hará será recibir los
datos en string enviados por labview.

2. Código de arduino para leer datos de labview.

• Desarrolle el instrumento virtual en LabVIEW

3. Panel frontal de labview

3
4. Diagrama de bloques de labview

El funcionamiento del programa consiste en comunicar primero labview con arduino mediante
visa, creando que arduino solo interprete en el buffer los datos enviados por labview estos
datos serán la posición en grados del servo, ya que los valores en string de labview enviados
es lo que se le escribirá al servo para moverse a tal posición, este código es prácticamente el
de la practica pasada pero esta vez se soluciono algunos errores presentados en el vi, ya que
solo se movía de 0 a 100, modificándolo para aprovechar todo su movimiento.

• Genere las pruebas necesarias para la obtención satisfactoria de la práctica.

Primero se aseguro que el servo estuviera a 0 grados y colocar desde su origen para medir
correctamente, para ello primero se usó el código de arduino para escribirle que lo mande a
la posición 0.

5. Código de arduino

4
Después se realizo mediante un transportador las mediciones para detectar si es que el servo
se esta posicionando de manera correcta.

6. Escala de medición

Después de eso se procedió a usar labview para posicionar el servo en la interfaz y observar
si este se posiciona en la dirección seleccionada.

7.Funcionamiento del servo

Debido al movimiento del servo se volvieron a acomodar las escalas de los grados.

8.Prueba 1 de la interfaz

5
Se comenzaron a realizar pruebas donde se demuestra que la precisión que tiene el servo
vendría a ser muy precisa, pero debido a la mal escala grafica puede que esta tenga algunos
ángulos de error, pero esto por medición.

9.Prueba 2 de la interfaz

Aquí se puede apreciar de mejor manera como es que el servo se posiciona a un valor cercano
tal vez con un poco de error de la escala, pero posicionándose al valor seleccionado el cual
fue enviado por labview, se puede observar que da 82.12 y en la escala este
aproximadamente en ese valor.

• Desarrolle un escrito de las problemáticas encontradas en el desarrollo de la misma y sus


respectivas soluciones.

Una de las problemáticas registradas era el movimiento del servo, ya que antes solo se usaba
el ciclo de trabajo se tuvo que realizar una prueba y lógica matemática para saber que datos
tomar y que estos nos muevan el servo correctamente de 0 a 180 ya que antes solo se movió
de 0 a 100, pero ahora es el usuario el que podrá realizar toda la rotación sin problema,
además era que el servo se movía en contra pero ese error era presentado de manera física,
por lo que se ve en las partes de prueba que fue solucionado moviendo los grados de la
manera en que se podía medir, de otra forma gracias a esto se obtuvieron resultados
favorables.

6
10. Modificación del código de 0 a 180

11. Solución medición

Como se menciono se tuvo problemas solo con la parte gráfica, ya que la medición correcta
no se vio afectada si no lo grafico se procedido al final a tomar esta manera de mover el servo.

• Genere sus conclusiones tomando en cuenta los puntos anteriores.

Un error presentado fue el movimiento del servo, ya que este se posicionaba de otro lado y
por lo tanto se tuvo que realizar con un transportador las graficas de los otros grados, pero de
igual manera fue efectiva para medir que el servo se movía a cierta posición. Una vez
concluidos los pasos anteriores, se conectó la tarjeta de Arduino a la computadora a través
del cable USB, se energizó el microcontrolador a través de dicho cable, se conectó la terminal
GND y se estableció que la señal de control saliera de la terminal 2 de la tarjeta de Arduino.
La implementación se muestra en la figura.

7
Conclusiones
En la practica se pudo observar como con lo que se logro la practica pasada, el cual
era mover el servo con el pwm generado por labview, puede usarse para mover el
servomotor de una manera precisa pero en este caso solo fue parte de cambiar la
escala y realizar algunas mediciones, además de modificar la interfaz para que solo
sea usada con ese propósito ya no mostrando la señal, si no solo la interfaz que
muestre el control de este servomotor.

Referencias bibliográficas
https://zone.ni.com/reference/en-XX/help/371361R-01/glang/string_functions/

https://forums.ni.com/t5/Discusiones-sobre-Productos-NI/Comunicaci%C3%B3n-serial-de-labview-
con-arduino-visa/td-p/3619714?profile.language=es

https://forums.ni.com/t5/LabVIEW/Read-serial-data-from-arduino-using-visa/td-
p/3695837?profile.language=es

También podría gustarte