Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Laboratorio 7-Control de un motor de CD.docx
1. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
1
Práctica de laboratorio 7
Control de un motor desde LabVIEW
V1.0 Nov. 2021
Prof. Jesús Manuel Tarín Fontes
2. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
2
EVIDENCIAS DE PRODUCTO/DESEMPEÑO
DATOS GENERALES
NOMBRE DEL ALUMNO(s): Por apellidos en orden alfabético
1.
2.
3.
4.
N° Control Fecha:
Grupo:
MATERIA: Instrumentación Virtual TEMA: Lab 7) Control de un motor desde LabVIEW con tarjeta Arduino.
FACILITADOR: Jesús Manuel Tarín Fontes Primera oportunidad
CALIFICACIÓN (Con rúbrica)
ACTIVIDADES A REALIZAR
EL REPORTE DEBE INCLUIR LO SIGUIENTE:
I) INTRODUCCIÓN
II) MARCO TEORICO CONCEPTUAL
III) DESARROLLO
IV) RESULTADOS Y CONCLUSIONES (ya está en un apartado abajo)
V) BIBLIOGRAFÍA (ya está en un apartado abajo)
Además, todas las figuras y tablas que se pongan, si así lo pide el reporte, deberán tener pie de figura con texto y
hacer referencia a ellas en el texto.
1. INTRODUCCIÓN
3. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
3
2. MARCO TEORICO CONCEPTUAL
3. DESARROLLO (Aquí se platea el problema a desarrollar por parte del instructor, incluye ideas conceptuales
y lo que el alumno hará como actividad). https://youtu.be/yL8HkgxR5Rw
En este apartado, escribiremos nuestro primer VI (programa LabVIEW) desde cero. Como
ejemplo, controlaremos un motor de CC que está conectado a una tarjeta Arduino.
Construiremos el VI desde cero y luego controlaremos la dirección y la velocidad directamente
desde la interfaz gráfica de LabVIEW.
Requisitos de hardware y software
En el lado del hardware, primero necesitará una tarjeta Arduino Uno, u otro modelo disponible.
Para el motor, elegir un motor pequeño de 5 VCD de Amazon. Puede elegir cualquier marca que
desee para el motor; lo importante es que tiene que estar clasificado para funcionar a 5V para
que pueda ser alimentado directamente desde Arduino. También puede obtener un motor que
use voltajes o corrientes más altos, pero deberá modificar ligeramente la configuración del
hardware.
También necesitará el controlador de motor L293D para controlar el motor desde Arduino. Este
es un chip dedicado que usaremos para controlar fácilmente el motor desde LabVIEW. También
puede utilizar una alternativa a este chip; por ejemplo, puede usar un escudo Arduino que ya
integra chips similares en la placa. Este es, por ejemplo, el caso del escudo del motor oficial
4. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
4
Arduino, que integra el chip L298D. Sin embargo, necesitaría modificar ligeramente el código si
está usando un escudo en lugar del chip solo.
Finalmente, necesitará un “protoboard” y cables de puente para hacer todas las conexiones.
Esta es una lista de todos los componentes necesarios para este capítulo, junto con los enlaces
para encontrarlos en la Web:
Arduino Uno o algún otro modelo (https://www.adafruit.com/products/50)
L293D (https://www.adafruit.com/product/807)
Motor de CC (http://www.amazon.com/Motor-5V-80mA-200mA-torque/dp/
B001DAYVA6)
Cables de puente (https://www.adafruit.com/products/1957)
Protoboard (https://www.adafruit.com/products/64)
En el lado del software, necesitará tener LabVIEW y el paquete LINX instalados. Si aún no lo ha
hecho, consulte el Capítulo 2, Comenzando con la Interfaz de LabVIEW para Arduino, para
seguir todos los pasos requeridos.
Configuración de hardware
Veamos ahora cómo ensamblar los diferentes componentes del proyecto. Este esquema le
ayudará a visualizar las conexiones entre los diferentes componentes:
Para ensamblar los componentes siga los pasos:
1. Primero, coloque el chip L293D en el medio del protoboard de pruebas.
2. Luego, ocúpate de la fuente de alimentación; conecte el pin superior izquierdo y el pin
inferior derecho del chip L293D al pin Arduino 5V.
3. Luego, conecte uno de los pines en el centro inferior del chip al pin Arduino GND.
5. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
5
4. Después de eso, conecte las señales de comando provenientes del Arduino, que estarán
en los pines 4, 5 y 6, y la placa Arduino Uno.
5. Finalmente, conecte el motor de CC al chip L293D, como se muestra en el esquema.
Para ayudarlo, aquí hay un enlace a la configuración de los pines del chip L293D:
http://users.ece.utexas.edu/~valvano/Datasheets/L293d.pdf
Así es como debería verse al final:
Una vez hecho esto, puede pasar al siguiente paso; construyendo el VI en LabVIEW para
controlar el motor DC.
Escribiendo el programa LabVIEW
Ahora escribiremos un nuevo programa de LabVIEW desde cero para que pueda ver cómo está
funcionando la interfaz LINX para Arduino. Para iniciar el proceso, abra LabVIEW y cree un nuevo
VI en blanco.
Ya vimos en el capítulo anterior que hay dos vistas principales en LabVIEW: Panel frontal y
Diagrama de bloques. En su nuevo VI en blanco, estas dos vistas estarán vacías. Primero nos
ocuparemos del Diagrama de Bloques, donde agregaremos los elementos para controlar la
placa Arduino.
Tenga en cuenta que aprenderemos directamente sobre LabVIEW y Arduino construyendo
nuestro primer proyecto.
Si primero desea aprender más sobre el software LabVIEW, puede visitar este enlace:
http://www.ni.com/getting-started/labview-basics/
Para aprender los conceptos básicos de Arduino primero, la mejor opción es explorar el sitio
web oficial de Arduino:
6. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
6
http://arduino.cc
Lo primero que colocaremos en el VI en blanco es un ciclo while que puede arrastrar y soltar
desde el menú Funciones (al que puede llamar en cualquier momento con un clic derecho). El
ciclo while se puede encontrar en el submenú Estructuras. Este ciclo es necesario para cualquier
placa Arduino que desee controlar a través de LINX, y todos los comandos de Arduino deberán
colocarse dentro de este bucle.
Así es como se verá en su VI:
Descarga del código de ejemplo Puede descargar los archivos de código de ejemplo para todos los libros Packt
que haya comprado desde su cuenta en http://www.packtpub.com. Si compró este libro en otro lugar, puede
visitar http: //www.packtpub. com / support y regístrese para recibir los archivos por correo electrónico
directamente.
Después de eso, colocaremos nuestros primeros elementos del paquete LINX. Los primeros
elementos que debemos colocar son los elementos de inicialización y detención de LINX, que
son necesarios para indicarle al software dónde comenzar y dónde detenerse. Puede encontrar
ambos cuadros en el panel de funciones yendo al submenú LabVIEW Hacker.
Desde el mismo submenú, coloque dos bloques de escritura digital (que se usarán para
controlar la dirección del motor) y un bloque PWM (que se usará para controlar la velocidad del
motor). Tenga en cuenta que puede encontrar estos bloques en el menú Peripherals. Este es el
resultado:
7. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
7
Necesitamos un bloque PWM aquí para controlar la velocidad del motor. PWM significa Pulse
Width Modulation y se utiliza para controlar la velocidad del motor o para atenuar los LED, por
ejemplo. En la placa Arduino, es una salida de la placa que se puede configurar de 0 a 255 en
algunos pines de la placa Uno.
Para obtener más información sobre PWM, puede visitar el siguiente enlace:
http://en.wikipedia.org/wiki/Pulse-width_modulation
Ahora, necesitamos alguna forma de decirle a LabVIEW en qué orden queremos que se ejecute
el esquema. Aquí es donde entran en juego el error y el recurso LINX. Simplemente comience
desde el bloque de inicialización en el lado izquierdo y busque el pin de error en el bloque.
Luego, conecte el pin de error de este bloque al pin de error de entrada del primer bloque
digital y así sucesivamente hasta el bloque final. Después de eso, haz lo mismo con los pines de
recursos LINX. También agregué un controlador de errores simple al final del VI, justo después
del bloque de detención. Este controlador se puede encontrar en el menú Diálogo e interfaz de
usuario.
Ahora que tenemos la columna vertebral de nuestro proyecto, alimentaremos los bloques con
algunas entradas. Primero, agregue un puerto serial al bloque de inicialización yendo al pin del
puerto serial del bloque y haciendo clic derecho sobre él.
Luego, vaya a Crear | Control para agregar automáticamente una entrada de puerto serie.
Observará que el control correspondiente también se agrega automáticamente al panel frontal.
Cambie el nombre de este control a Puerto serie para que podamos identificarlo en el Panel
frontal.
También crearemos el mismo tipo de controles para los pines de los bloques que colocamos
anteriormente. Para cada bloque, simplemente agregue entradas haciendo clic con el botón
derecho en la entrada del pin y luego vaya a Crear | Control. Además, cambie el nombre de
todos estos controles para que sepamos qué significan más adelante en el Panel frontal.
8. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
8
También necesitamos agregar una condición final para el ciclo While. Para hacerlo, debemos
conectar el pequeño círculo rojo que se encuentra en la esquina inferior derecha del ciclo While.
En este capítulo, simplemente conectaremos el cable de error directamente a este círculo rojo.
Para hacerlo, simplemente seleccione el pin de entrada del círculo rojo y conéctelo al cable de
error inferior dentro del VI.
Ahora alimentaremos los valores de los diferentes bloques que cambiaremos desde Panel
Frontal para controlar el motor. En esta etapa, lo mantendremos simple: tendremos algún
control de encendido / apagado para la dirección y un cuadro de texto simple para la velocidad
del motor.
Primero, establezcamos la dirección en la que necesitamos alimentar los dos primeros bloques
LINX en nuestro VI. El chip L293D requiere ser alimentado con señales opuestas en los dos pines
de dirección para que el motor gire en una dirección determinada. Por ejemplo, cuando el
primer bloque de Escritura digital está activado, queremos que el segundo esté desactivado y
viceversa.
Para hacerlo, primero crearemos un bloque de control en el primer bloque de Escritura digital,
nuevamente haciendo clic derecho en el pin de entrada y luego yendo a Crear | Control. Luego,
iremos al menú Funciones, en booleanos, elegiremos un elemento Not, y lo usaremos para
9. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
9
conectar nuestro control al segundo canal de Escritura Digital. De esta forma, estamos seguros
de que estos dos siempre estarán en estados opuestos.
Finalmente, también haga lo mismo para el bloque PWM creando un control para el valor PWM.
Este simplemente se mostrará como una entrada de texto dentro del Panel frontal. También
cambiaremos el nombre de este pin como Velocidad del motor para que sepamos lo que
significa en el Panel frontal.
Ahora puede volver al Panel frontal y echar un vistazo a todos los elementos que se agregaron
automáticamente. Organícelos un poco para que sea más fácil controlar el motor.
Simplemente dispuse el panel frontal de modo que todos los controles estáticos, como el
puerto serie y los pines, estén en el lado izquierdo (los modificaremos solo una vez) y los
controles dinámicos del motor estén en el lado derecho:
Ahora es el momento de probar el VI. Primero, configure todos los pines correctos y su puerto
serie, como se muestra en la imagen anterior. Luego, haga clic en la pequeña flecha en la barra
de herramientas para iniciar el VI.
Ahora puede ingresar un valor entre 0 y 255 en la entrada Velocidad del motor; Verá que el
motor comienza a girar inmediatamente. Tenga en cuenta que tenemos que usar un valor entre
10. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
10
0 y 255, ya que el valor de salida de Arduino Uno PWM está codificado en 8 bits, por lo que
tiene 256 valores. También puede utilizar el botón verde para cambiar la dirección del motor.
Actualizar la interfaz
Ahora tenemos un control básico para nuestro motor de CC, pero podemos hacerlo mejor. De
hecho, no es tan conveniente introducir la velocidad del motor en el panel frontal cada vez que
desee modificar algo. Es por eso que presentaremos otro tipo de control llamado control de
perilla.
Para agregar un control de este tipo, comience desde el Panel frontal y haga clic con el botón
derecho para abrir el panel Controles. Luego, vaya a Numérico y seleccione el control Knob en
el menú.
Ahora, la perilla está insertada en el panel frontal; puede volver al Diagrama de bloques donde
puede eliminar el control de texto antiguo del bloque PWM y conectar el nuevo en su lugar.
También puede cambiarle el nombre a Motor Speed.
11. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
11
Ahora, también necesitamos configurar la perilla para que su valor de salida coincida con la
entrada aceptada del bloque PWM. Recuerde que el bloque PWM de LINX acepta valores entre
0 y 255.
Para hacerlo, simplemente haga clic con el botón derecho en el bloque Perilla y haga clic en
Propiedades. En este menú, haga clic en Escala y cambie los valores mínimo y máximo, como
se muestra en la siguiente captura de pantalla:
Ahora puede volver al panel frontal. Verá que la perilla ahora muestra los valores correctos,
pasando de 0 a 255. También puede cambiar el tamaño de la perilla en este punto para que sea
más fácil de usar.
12. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
12
Ahora es el momento de probar la interfaz modificada. Como lo hizo anteriormente, haga clic
en la pequeña flecha dentro de la barra de herramientas. Ahora puede simplemente girar la
perilla para cambiar instantáneamente la velocidad de rotación del motor.
Resumen
Resumamos lo que hicimos en este capítulo. Conectamos un motor de CC a Arduino a través
de un chip dedicado para controlar los motores de CC. Luego, construimos una interfaz en
LabVIEW para que pudiéramos controlar fácilmente la dirección y velocidad de este motor. Esto
será muy útil en el Capítulo 7, Un robot móvil controlado remotamente, de este libro,
especialmente cuando construiremos un robot controlado a través de LabVIEW.
Para profundizar en lo que aprendió en este capítulo, hay algunas cosas que puede hacer. Puede
agregar más motores a los proyectos y ordenarlos todos desde un solo VI en LabVIEW. También
puede usar lo que aprendió en este capítulo para controlar componentes más simples como
los LED.
Este capítulo trataba sobre el control de salidas. En el próximo capítulo, veremos cómo obtener
datos de las entradas de la placa Arduino y automatizar las mediciones usando LabVIEW.
13. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
13
MATERIAL Y EQUIPO REQUERIDO (No aplica para esta práctica)
CANTIDAD DESCRIPCIÓN DEL COMPONENTE
EQUIPO DE MEDICIÓN
IV. RESULTADOS Y CONCLUSIONES
V. BIBLIOGRAFIA
[1]
[2]
[3]
14. Tecnológico Nacional de México/Instituto Tecnológico de Hermosillo
ING. BIOMEDICA
14
Observaciones:
Instructor______________________________
Participantes
1.
2.
3.
4.