Discusiones sobre Productos NI

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

guardar movimientos de servos

Hola amigos necesito saber como guardar movimientos que hecho a unos servos por medio de labview y arduino y reproducirlos posteriormente, estoy trabajando con una MAC, adjunto imagenes. Gracias

0 kudos
Mensaje 1 de 56
11.709 Vistas

Hola,

 

         Una idea es que cada 1 segundo (por decir un numero que dependera de lo que hagas) guardes la posicion de los controles, y luego reproduzcas esos numeros que guardaste cada un segundo.

 

         Otra es que cada vez que hagas un cambio (evento value change) guardes el valor y el timestamp, y luego en función del tiempo transucrrido vayas mandando los cambios.

 

          Si tienes dudas sube tu VI guardado para la versión 2009 y te ayudo.

 

Saludos,

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

Hola Luis Mata gracias por responder, soy nuevo en labview y quisiera saber como guardar y reproducir los movimientos en servos utilizando la tarjeta arduino uno, le envio el archivo de mi trabajo una pregunta mas en que formato los guardo a los movimientos, de antemano muchas gracias (si me pudiera enviar un archivo)

0 kudos
Mensaje 3 de 56
11.678 Vistas

Hola,

 

         No puedo ver tu VI pq tu tienes LabVIEW 2010 y yo tengo 2009, por favor ve a File -> Save for Previous Version... y selecciona la 2009 para asi poder ayudarte.

 

         No es ningun formato en especifico, seria algun arreglo de numeros, o un arreglo de clusteres. Que puedes guardar en un archivo (binario o de texto legible) si lo deseas, aunque inicialmente podemos empezar pq te funcione en memoria.

 

        La idea es que dentro de tu ciclo while principal, tengas algo que te permita ir almacenando esas posiciones (digamos cuando activaste un boton de grabar y hasta que presiones otro boton stop), y luego cuando quieras reproducir los movimientos presionas un boton reproducir y lo que haces es ir leyendo esos valores que guardaste antes y mandandolos nuevamente.

 

         Sube tu codigo para la version 2009 y te ayudo con las modificaciones iniciales para que trabajes sobre ello.

 

Saludos,

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

Ok listo aqui te envio el archivo

0 kudos
Mensaje 5 de 56
11.664 Vistas

Hola,

 

         Aqui te envio mi idea mas basica de guardar los movimientos en memoria, y luego reproducirlos, pruebalo y dime si funciona.

 

         .Este ejemplo tiene la limitante que si no haces ningun movimiento igual esta constantemente almacenando las posiciones y para un tiempo largo ocupara mucha memoria (puedes aumentar el timeout de 100 a 1000ms si ves que consume mucha memoria), y adicionalmente solo guarda un solo conjunto de movimientos y lo pierdes al cerrar el programa. Pero me parece un buen punto de partida.

 

         Ya luego de eso lo siguiente seria que solo se guarden las posiciones cuando ocurra un cambio y con un tiempo de ejecución asociado, y que tenga la opcion de grabar en archivos con distintos nombres y reproducir a partir de dichos archivos.

 

          Avisame si funciona. Y si te sobra tiempo hazte un video para motivar a los demás que quieran usar LabVIEW y Arduino.

 

Saludos,

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

Gracias Luis Mata por la ayuda, tengo un inconveniente al momento de pulsar play solo me repite un fracción de un segundo y de ahí deja de funcionar, no se si debo cambiar algún valor ,  el proyecto es hacer un brazo robótico que repita los movimiento  mas o menos unos  5 a 10 minutos, no se que tan complicado resulte  como para guardar ese archivo  en el ordenador, nuevamente gracias por el aporte.

0 kudos
Mensaje 7 de 56
11.634 Vistas

Hola,

 

          Tal como esta (por lo menos en mi mente) repite los movimientos en la misma duración que mantuviste durante grabar. Osea si grabaste 10min deberia reproducir esos 10 min, a menos que tengas un problema de memoria y haga falta optimizar el codigo con lo que te comente de no registrar constantemente sino solo cuando exista un cambio.

 

          Ahora si por otra parte lo que deseas es que grabes unos pocos segundos y luego los repitas una y otra vez, lo que tienes es que cambiar en la condicion donde el index que llevo del arreglo se hace igual al tamaño del arreglo y mando false al boton reproducir a traves de un property node value(signaling), alli simplemente quitas eso y le reseteas el index a 0, o mas facil aun en lugar de mandarle false mandale true y eso dispara el evento y coloca nuevamente el contador a cero.

 

         Opcional: En caso de que desees que no siempre empiece de la posicion inicial sino que continue de la ultima posicion, tendrias que cablear el contador en el caso play value change en lugar de pasarle cero, y hacer lo de que en el case timeout, en la condicion donde el index llegaba al maximo del arreglo cambiar eso por resetear el contador a cero.

 

         Juega un poco con lo que tienes y lo que te he dicho, asi te familiarizas de como funcionan las cosas. Si por el contrario mis ideas estan lejos de lo que tienes o de lo que entendi que podia estar pasando, vuelve a escribir con mas detalle todo lo que estas haciendo para identificar mas facilmente el problema, por ejemplo: presiono grabar durante 10 segundos y muevo el servo a 3 posiciones 0 90 180, apago grabar y presiono reproducir y el servo se mueve solo durante 1 segundo a las 3 posiciones y se despresiona grabar (esto fue lo que escribistes, pero asumi que realmente quisiste decir fraccion de un minuto y no de un segundo y por eso puse lo de arriba, corrigeme y mandame mas detalles si me equivoco).

 

Saludos,

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

Disculpe pero me tome la libertad de bajar su ejemplo, solo que el problema que engo es que grabo movimientos durANTE un minuto, y solamente reproduce los dos primeros movimientos

0 kudos
Mensaje 9 de 56
11.604 Vistas

Hola,

 

           Gracias por la respuesta, ciertamente por no tener el arduino no habia probado el codigo, me tome el tiempo de eliminar lo de arduino y hacer una prueba, y encontre que tenia un error, ya que el apagar el boton record borraba todos los datos. Ya lo corregi se los dejo para que lo prueben y cualquier otro problema me avisen.

 

Saludos,

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