HispaLUG

El foro LUGnático => Technic & Mindstorms => Mensaje iniciado por: CHICHO_MEDINA en 07 de Noviembre de 2007, 02:29:47 AM

Título: Ayuda con este Programa esn Bricx Command Center
Publicado por: CHICHO_MEDINA en 07 de Noviembre de 2007, 02:29:47 AM
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...
Título: Re: Ayuda con este Programa esn Bricx Command Center
Publicado por: Jetro en 07 de Noviembre de 2007, 10:01:54 AM
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