Noticias:

¡Bienvenido a la HispaLUG! - Asociación para aficionados a LEGO®

Menú Principal

Ayuda con este Programa esn Bricx Command Center

Iniciado por CHICHO_MEDINA, 07 de Noviembre de 2007, 02:29:47 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

CHICHO_MEDINA

Saludos a todos, tengo un ligero problema, les explico, quiero hacer que mi robot (lego) nxt no se salga de un cuadro cuyo limite es una franja negra. Cuando el sensor de luz (IR) toque a la franja negra retroseda 1 segundo gire 90* y vuelva a caminar hacia adelante... E echo el programa en Bricx Command Center pero no logro que me funcione el sensor de luz aqui mas abajo les dejo el programa que ise para que me digan cual es mi error...

#include "NXCDefs.h"
#define UMBRAL 50
mutex moveMutex;

task mover()
{
while (true)
{
  Acquire(moveMutex);
  OnFwd(OUT_BC, 75);
  Release(moveMutex);
  }
}

task sensors()
{
while (true)
{
if (Sensor(IN_3) <  UMBRAL)
{
  Acquire(moveMutex);
  OnRev(OUT_BC,75); Wait(500);
  OnFwd(OUT_C,75); Wait(500);
  Release(moveMutex);
}
}
}
task main()
{
Precedes(sensors, mover);
SetSensorLight(IN_3);
}

Nota: El me camina hacia delante pero cuando pasa por encima de la franja negra sigue igual caminando hacia delante, deveria retroceder y girar... Nose que e echo mal...

Jetro

He comparado tu programna con el que aparece en el tutorial de NXC de Mario Benedetelli y la única diferencia significativa que encuentro es que no especifícas tiempo en el task mover

prueba esto:

task mover()
{
while (true)
{
  Acquire(moveMutex);
  OnFwd(OUT_BC, 75); Wait (50);
  Release(moveMutex);
  }
}

a ver si eso cambia el comportamiento