task main () {
  float ambient = 0;
  float object = 0;

  nxtDisplayCenteredTextLine(0, "Dexter Industries");
  nxtDisplayCenteredTextLine(1, "Thermal Infrared");
  nxtDisplayCenteredTextLine(3, "Test 1");
  nxtDisplayCenteredTextLine(5, "Connect sensor");
  nxtDisplayCenteredTextLine(6, "to S1");
  wait1Msec(2000);

	eraseDisplay();

  // set emissivity for light skin
  TIRsetEmissivity(TIR, TIR_EM_SKIN_LIGHT);
  wait1Msec(200);

  //emissivity = TIRreadEmissivity(TIR);
  //nxtDisplayTextLine(5, "0x%04X", emissivity);
  while (true) {

    // Read the currently detected ambient and object temp from the sensor
    ambient = TIRreadAmbientTemp(TIR);
    object = TIRreadObjectTemp(TIR);

    nxtDisplayTextLine(1, "A: %3.2f", ambient);
    nxtDisplayTextLine(3, "O: %3.2f", object);
    wait1Msec(100);
  }
}
Esempio n. 2
0
task main () {
  int X = 0;

  memset(data, 0, sizeof(data));
  TIRresetSensor(TIR);
  nxtDisplayCenteredTextLine(0, "Dexter Industries");
  nxtDisplayCenteredTextLine(1, "Thermal Infrared");
  nxtDisplayCenteredTextLine(3, "Test 1");
  nxtDisplayCenteredTextLine(5, "Connect sensor");
  nxtDisplayCenteredTextLine(6, "to S1");
  wait1Msec(2000);

	eraseDisplay();

  // set emissivity for light skin
  TIRsetEmissivity(TIR, TIR_EM_SKIN_LIGHT);

  nMotorEncoderTarget[VERTICAL] = 200;
	motor[VERTICAL] = -20;
	while((nMotorRunState[VERTICAL] != runStateIdle) && (nMotorRunState[VERTICAL] != runStateHoldPosition)) EndTimeSlice();
	nMotorEncoderTarget[HORIZONTAL] = 360;
	motor[HORIZONTAL] = 20;
	while((nMotorRunState[HORIZONTAL] != runStateIdle) && (nMotorRunState[HORIZONTAL] != runStateHoldPosition)) EndTimeSlice();
	wait1Msec(500);
	nMotorEncoder[HORIZONTAL] = 0;
	nMotorEncoder[VERTICAL] = 0;
	PlaySound(soundBeepBeep);
	while(bSoundActive) EndTimeSlice();
  for (int i = 0; i < 80; i++) {
    wait1Msec(500);
    X = 0;
    memset(data, 0, sizeof(data));
	  nMotorEncoderTarget[HORIZONTAL] = 720;
	  motor[HORIZONTAL] = -40;
	  time1[T1] = 0;
	  while((nMotorRunState[HORIZONTAL] != runStateIdle) && (nMotorRunState[HORIZONTAL] != runStateHoldPosition)) {
	    data[X] = TIRreadObjectTemp(TIR);
	    X++;
	    wait1Msec(20);
	  }
    nxtDisplayBigTextLine(1, "X: %d", X);
	  nxtDisplayBigTextLine(3, "T: %d", time1[T1]);
	  nMotorEncoderTarget[VERTICAL] = 5;
	  motor[VERTICAL] = 20;

	  nMotorEncoderTarget[HORIZONTAL] = 720;
	  motor[HORIZONTAL] = 60;

	  for (int j = 0; j < 200; j++) {
	    if (data[j] != 0) {
	      writeDebugStream("%3.2f,", data[j]);
	      wait1Msec(5);
	    }
	  }
	  writeDebugStreamLine("");

	  while((nMotorRunState[HORIZONTAL] != runStateIdle) && (nMotorRunState[HORIZONTAL] != runStateHoldPosition))
	    EndTimeSlice();
	}
  bFloatDuringInactiveMotorPWM = true;
  wait1Msec(10);
}