Aplicación de control de Servos  desde un PC

SCM Hacker . Sección Proyectos
Número: 18

El Magazine electrónico de SCM

International


Segunda parte
Los servos de RC son utilizados para aplicaciones de animatronica, maqueteria, control remoto, etc... Pero son muy pocas o cerradas las aplicaciones de control desde un PC. En esta nota desarrollaremos una nueva aplicación para el control de servos con las herramientas Cyber Tools.

SCM home
SCM International , le provee puerta a puerta a todo el mundo!
Consultas
Cursos
PLCs
Sensores
Micros
Robótica
Alambres Musculares

¿Requiere de desarrollos a medida? o la integración de un sistema?

On-line Book Store

Compre los mejores libros. Ahorre! Pague menos y con costos de envío reducidos!

Electrónica - Mecánica - Micros - Robótica

Nueva aplicación con memoria de posición inicial

En la edición anterior de este Magazine desarrollamos un ejemplo de control de un servo. En esta oportunidad desarrollaremos una aplicación semejante con la diferencia de que esta almacenara el estado del control en cada instante, permitiendo que  este se memorice aunque se produzcan cortes de energía o se decida terminar con una sección de control. Restableciendose el ultimo estado ( posición del servo ) en el momento de reiniciar la aplicación de control.
El hardware de control será el mismo dado que los cambios se realizaran en el desarrollo de la aplicación en Cyber Tools.

PCservo.gif (11184 bytes)

Como el en el ejemplo anterior para desarrollar la aplicación deberá adquirir la licencia Cyber Tools MiniSSC , todas las licencias cyber Tools incluyen una herramienta de programación visual de paneles y pantallas, en su versión beta. Si desea realizar una aplicación profesional le recomendamos adquiera por separado la licencia Cyber View Pro. Esta licencia le permitirá crear las ventanas requeridas para este tipo de aplicaciones.

Desarrollo de una aplicación sencilla para el control de servos desde una PC con memoria no volátil de las variables de control.

En esta edición desarrollaremos una aplicación Cyber Tools que controlara la posición de un servo desde una pantalla de usuario con realimentacion de posición inicial restablecida por medio del almacenamiento de la variable de control en memoria no volátil y un bloque de procesamiento condicional que produzca un evento de actualización del estado del control solo en el instante de arranque del sistema.Por ejemplo, si el potenciómetro virtual se encontraba al 45% en el momento de apagar el sistema, este valor tubo que haber sido almacenado en memoria no volátil por medio del bloque de almacenamiento de variables en disco. servo2.gif (10012 bytes)

En el momento en que se reinicie el sistema, la variable almacenada, será recuperada por el bloque de almacenamiento de variables en memoria no volátil. Simultáneamente el generador de pulso pondrá su salida en estado 1, durante el primer escaneo ( pulso de reloj de la maquina virtual Cyber Tools ), para luego volver a 0. Mientas este pulso se encuentre en uno, el bloque de comparación y procesamiento podrá su salida a 1 y obligara al bloque de X ( producto ) a procesar, permitiendo que el valor de la variable almacenada sea transferido a su salida y realimentar la posición inicial del potenciómetro. Al volver el generador de pulso a estado 0, dicha ramificación no volverá a procesar , dado que los bloques Cyber Tools solo procesan cuando sus entradas han sido validadas. Como la entrada del producto, proveniente del bloque de comparación y procesamiento, solo se actualizara en el diferencial de arranque del sistema, luego durante el uso del sistema el bloque X no procesara , no realimentandose la posición del potenciómetro virtual, y quedando este bajo el control del usuario.

Antes de continuar con la lectura de esta nota le recomendamos darle una leída a la pagina de Cyber Tools.

Programación

Paso 1.

Creación de la interfase de usuario.
wpe1.gif (3337 bytes)
Abra la librería de clases "Test & View", haga doble click sobre el clase: Custom panel Pro.
Se abrirá un panel que le pedirá el nombre del bloque del la clase Custom Panel, que creara. ingrese: "Panel de control de Servo", luego haga click sobre el botón OK. inmediatamente aparecerá el bloque creado en la lista de bloques.
Hasta aquí hemos, realizado toda la operatoria para crear un bloque de la clase Cyber View.
Los bloques de este tipo, no tienen entradas ni salidas, solo poseen una ventana editable, capaz de contener diferentes objetos ( controles ) que se relacionaran con bloques del tipo Cyber View, que podrán ser vinculados con los restantes bloques del sistema en desarrollo. Al crear un bloque "custom panel" , Ud. estará creando una estructura que le permita activar o editar una ventana de usuario desde la lista de bloques. Al variar el valor del potenciómetro, automáticamente el nuevo valor será refrescado a la salida del bloque Cyber View al cual se encuentre asociado.
Edición de la interfase de usuario
La interfase de usuario de este ejemplo contendrá solo un potenciómetro. Antes de comenzar la edición crearemos el bloque Cyber View que se asociara al potenciómetro. Para ello se debe hacer click sobre el botón de librería de clase "Source" y luego doble click sobre la clase Pot < Cyber View >. Cyber Tools le pedirá el nombre para este nuevo bloque, ingrese: "Servo 1". Se creara este bloque y se listara automáticamente en la lista de bloques.
Para editar la ventana de usuario haga doble click sobre el bloque
"Panel de control de Servo" en la lista de bloques. Se desplegara una ventana en blanco y una barra de herramientas de edición.

Haciendo click sobre el botón de edición de potenciometros, ingresara al modo de edición. utilizando el botón izquierdo del mouse podrá ubicar el potenciómetro en la pantalla en edición, como así también tirar de el para llevarlo al tamaño deseado. también se desplegara una ventana seteo, en la cual es posible setear a que bloque estará asociado el control y los valores , máximo, mínimo y inicial del potenciómetro.

wpe2.gif (3647 bytes)

wpe3.gif (4482 bytes)

Como máximo setee 256 , mínimo 0 y típico 128. y asocie el bloque Servo 1 con este control haciendo doble click sobre Servo 1.

wpe4.gif (4539 bytes) Haga click sobre el botón OK. Grabe la pantalla diseñada utilizando el botón de grabar de la barra de herramientas de edición de ventanas. Le solicitara le ponga un nombre a la ventana, ingrese Servo1. Luego cierre la ventana de edición. Se cerrara la barra de herramientas.

 

 

Programación de los bloques de realimentacion de posición inicial del potenciómetro virtual
Ahora se deben crear los bloques:
Un bloque de la clase "compear and Process" de la librería Others
Un bloque de la clase "multiplicador" de la libreria  No Lineal
Un bloque de la clase "Save state when value change" de la librería Others
Un bloque de la clase "Delta" de la librería Others

La manera de crearlos es similar a los casos anteriores. Salvo que en alguno de ellos se debe tener algunos cuidados en sus seteos. El bloque del tipo compear and process debe setearse según se ve en la figura:

wpe1.gif (2411 bytes) El bloque debe obligar a procesar a su salida cuando su entrada valga 1.

 

 

Todos los bloques restantes pueden crearse con los valores de default. Para interconectarlos realice la operatoria análoga realizada en la edición anterior.

Como hacer para que el potenciómetro virtual controle la posición del servo?
El ultimo paso es crear un bloque de la clase MiniSSC, que se encargue de enviar la información adecuada a la interfase externa MiniSSC y así controlar la posición del servo.

Simplemente haga click sobre el botón de la clase acquire y cree un bloque MiniSSC, póngale como nombre MiniSSC. Luego conecte el bloque del tipo Pot <Cyber View>, llamado Servo 1 al bloque MiniSSC. La operatoria para ello es muy sencilla, seleccione el bloque Servo 1, haga click sobre el botón de conexión en el Control Maker   y seleccione el bloque MiniSSC.

La aplicación ya esta lista! Ahora solo deberá hacer correr la aplicación Cyber Tools y abrir la ventana de usuario en modo normal. Moviendo el potenciómetro producirá movimientos análogos en el Servo!

En la próxima ediciones se desarrollaran un proyecto que incluya la posibilidad de almacenar secuencias de posicionameinto para luego ser reproducidas a voluntad del usuario!.

 

Copyright © 2000 SCM International, Inc.. All rights reserved.

Por favor, lea cuidadosamente los términos y condiciones descriptas para el uso de   notas de aplicación, materiales, e información de este sitio.

Home page de SCM International

SCM Hacker Magazine home page