¿Por qué este programa funciona en Labview cuando está dirigido a la computadora pero no a NXT?

StackOverflow https://stackoverflow.com/questions/8404029

  •  28-10-2019
  •  | 
  •  

Pregunta

Tengo un programa escrito en Labview para mi Lego Mindstorms NXT 2.0. Cuando el objetivo está configurado en la computadora, el programa funciona bien. Sin embargo, cuando configuré el objetivo en el NXT, el programa no funciona lo mismo que cuando se dirige a la computadora.

El programa hace que el robot avance hasta que esté a 30 centímetros de un objeto, que es detectado por el sensor ultrasónico de NXT. Entonces el robot se detendrá. Si el objeto se mueve y no hay objeto dentro de los 30 centímetros del sensor ultrasónico del NXT, el robot avanzará nuevamente hasta que esté a 30 centímetros de distancia de un objeto nuevamente. Entonces, se detendrá.

Esto funciona cuando el objetivo está configurado en la computadora en LabView, pero no cuando se establece en NXT. Cuando se establece en NXT, una vez que se detecte el primer objeto, se detendrá. Pero, si se elimina el objeto y ya no hay ningún objeto dentro de los 30 centímetros del sensor ultrasónico, el robot permanecerá estacario y no avanzará.

Aquí hay una captura de pantalla del diagrama de bloques:block diagram

Aquí hay un enlace al código fuente para el programa.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución 3

Lo arreglé agregando un bloque de espera de 200 ms para retrasar el NXT. Esto funcionó, parecía que el ladrillo se estaba adelantando a sí mismo.

Otros consejos

Mi experiencia con NXT es muy limitada, pero le sugiero que use la cadena VIS para mostrar algunos datos de depuración en la pantalla de NXT (como I, la distancia, etc.). Esto le permitirá determinar dónde está el programa y podría ayudarlo a encontrar el problema.

Como punto lateral, en el VI generalmente no se recomienda tener un bucle que no tenga algo que controle su tasa de ejecución. Esto podría ser diferente para el código que se ejecuta en el NXT, pero aún así sugeriría agregar una simple espera al ciclo.

No veo un error en su código, pero lo que haría al implementar en el objetivo NXT es que haría que el bucle sea infinito (reemplazar pare con una constante falsa) y eliminar el gráfico de la forma de onda. No los necesitas en NXT.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top