Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

guardar movimientos de servos

Buenas tardes:  Quedó muy bien el programa, reproduce todos los mvimientos que hace el servo, fue de gran ayuda, aunque no entiendo muy bien como trabaja la estructura event, de qué manera podría añadir un barrido, ya que con eso estoy controlando también un motor paso a paso, para que pueda guardar todos esos movimientos???????

0 kudos
Mensaje 11 de 56
3.653 Vistas

Hola,

 

        La estructura event ejecuta lo que esta dentro de un case cuando ocurre un evento. El evento timeout ocurre cada vez que pasan el numero de miliseconds que le pasas a la estructura, y los demas eventos los vas agregando, normalmente tienen que ver con algun cambio que introduce el usuario en el panel al presionar un boton o cambiar un valor, pero cualquier interaccion puede generar un evento.

 

        Normalmente uno empieza a programar haciendo pulling, que es preguntar cada vez que valor tiene el boton y en funcion de eso hacer algo, pero yo tengo tiempo programando y me gusta mas hacerlo por eventos que es similar a lo que son interrupciones es un microcontrolador. Con esto solo te comento que igual se puede hacer sin eventos, solo que esa es la manera que a mi me gusta hacerlo.

 

        Respecto a tu pregunta de hacer un barrido, si analizas el codigo hay un arreglo de de enteros de dimension nx2, donde la primera columna es el servo 0 y la segunda columna es el servo 1. Si quieres hacer un barrido lo que necesitas es llenar ese arreglo con los valores que vas a utilizar para el barrido. Ahora pensando en la pregunta original, la idea que se me ocurre es agregar la funcionalidad de guardar o cargar secuencias desde un archivo, para ello bastaria con poner dos botones mas LOAD y SAVE, y en uno guardar lo que tenga el arreglo a un archivo y en el otro cargar lo que tenga el archivo al arreglo, y en tu caso crearias un archivo con los angulos con los que desees hacer el barrido.

 

         Como no es mucho lo que hay que agregar lo adjunto de una vez.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
Descargar todos
Mensaje 12 de 56
3.642 Vistas

Muchas gracias, aunque creo que no me había explicado bien, ya que era para un motor paso a paso, pero ya encontré un ejemplo en mismo Labview para el control de estos, este ejemplo cuenta igual con estructuras event, de qué manera podría agregarselo al de los servomotores para que pueda grabar las posiciones tanto de los servos como de el motor a paso??? de antemano, gracias por su ayuda, le adjunto el ejemplo.

 

 

0 kudos
Mensaje 13 de 56
3.631 Vistas

Hola,

 

        Trata de agregar lo mismo de este ejemplo de servos, un shift register de un arreglo de las posiciones que te sirva para almacenar cada posicion en cada iteracion. Luego los botones que te permitan hacer la lógica de grabar o reproducir. Intentalo y si se te complica sube lo que hayas hecho para ayudarte sobre lo que tienes, asi aprendes mas.

 

        En ese caso la estructura de evento hace que solo se mande una nueva posicion cuando exista un cambio en el dial, mientras que en el de los servos estamos mandando constantemente la misma posicion así este repetida. Si quieres saber mas de dicha estructura puedes ver los ejemplos de labview o leer esto que hablan del tema y hay varios enlaces Como funcionan las event structure?

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
Mensaje 14 de 56
3.621 Vistas

De hecho esta estructura es nueva para mi, y pues si estoy tratando de adaptar el ejemplo de los servos al del motor a paso, muhas gracias por su ayuda, espero tener éxito.

0 kudos
Mensaje 15 de 56
3.614 Vistas

Hola Luis Mata

 

exelente funciona muy bien, ahora podrias ayudarme como guardar los datos producidos por los servos, creo que hay que incorporarle mas elementos, y despues como los leo

Una pregunta utilizar codigo binario ocupa menos memoria?. Gracias por todo

0 kudos
Mensaje 16 de 56
3.596 Vistas

Hola josepito,

 

            "podrias ayudarme como guardar los datos producidos por los servos, creo que hay que incorporarle mas elementos, y despues como los leo"

 

           ¿A que datos de los servos te refieres?

 

            "Una pregunta utilizar codigo binario ocupa menos memoria?"

 

              Si guardas los archivos como binario ocupan menos espacio que si los guardas como texto. Guardarlos como texto tiene la ventaja que lo puedes leer y modificar con cualquier editor de texto.

 

              Si tienes problemas de memoria te diria que hay que hacer la optimizacion de no guardar las posiciones repetidas sino solamente los cambios con el tiempo en que ocurren, o como intermedia entre las dos hacer alguna compresion tipo numero de veces que aparece una posicion y la posicion.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 17 de 56
3.578 Vistas

Hola HDFR,

 

          Ciertamente el motor de paso no se comporta igual que el servo, y por lo tanto se necesitan otras consideraciones, creo que seria bueno que crearas tu propio post referido a los steppers para no salirnos aquí del tema principal. Me gustaría que me digas si tu código funciona correctamente así como está y que hace, y que me expliques que hacen las funciones stepper write y stepper togo, para luego de entenderlo ayudarte con lo que quieres hacer.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
Mensaje 18 de 56
3.571 Vistas

Hola amigo Luis MAta:

 

No he tenido mucho éxito adaptando el programa de los servos al del motor a paso, voy a iniciar otro post, el programa funciona correctamente con el motor a pasos, la caja de stepper write le manda l motor los pasos que debe dar, es decir en este caso tiene un dial delimitado de 0 a 360 pasos, puede ser cualquier indicador numérico y solamente actuará en este rango, parecido al control de los servos, de hecho al delimitarlo funciona similar a un servo ya que con el dial lo puedes ubicar en el paso que quieras, por eso pensé que prácticamente sería lo mismo para guardar los movimientos del motor a pasos que el servo, y la otra caja de steper to go, solamente es un indicador, que muestra si a el motor le faltan pasos por recorrer de los que le indicaste, la verdad es que estoy algo desesperado, ayuda por favor.

0 kudos
Mensaje 19 de 56
3.565 Vistas