#pragma config(Sensor, S1, soundSensor, sensorSoundDB)
#pragma config(Sensor, S2, touchSensor, sensorTouch)
#pragma config(Sensor, S3, sonarSensor, sensorSONAR)
#pragma config(Sensor, S4, lightSensor, sensorLightActive)
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//
/*--------------------------------------------------------------------------------------------------------*\
|* *|
|* - Clap Off - *|
|* ROBOTC on NXT *|
|* *|
|* This program runs your robot forward until a loud noise is made. *|
|* *|
|* ROBOT CONFIGURATION *|
|* NOTES: *|
|* 1) The 1 second delay is needed to avoid obtaining inaccurate initial readings. *|
|* *|
|* MOTORS & SENSORS: *|
|* [I/O Port] [Name] [Type] [Description] *|
|* Port C motorC NXT Right motor *|
|* Port B motorB NXT Left motor *|
|* Port 1 soundSensor Sound Sensor Sound Db *|
\*---------------------------------------------------------------------------------------------------4246-*/
task main()
{
while (SensorValue[sonarSensor] < 10)
{
PlaySound(soundBlip); // play the sound, 'soundBlip'
wait1Msec(50); // Wait for 1 second to ignore initial readings of the Sound Sensor
time1[T1]=0;
while(time1(T1) < 17500)
{
if(SensorValue[lightSensor] < 45) // If the Light Sensor reads a value less than 45:
{
motor[motorB] = 60; // Motor B is run at a 60 power level.
motor[motorC] = 20; // Motor C is run at a 20 power level.
}
else // If the Light Sensor reads a value greater than or equal to 45:
{
motor[motorB] = 20; // Motor B is run at a 20 power level.
motor[motorC] = 60; // Motor C is run at a 60 power level.
}
}
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = -20;
motor[motorB] = 20;
wait1Msec(1000);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(600);
motor[motorA] = 10;
wait1Msec(700);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = 20;
motor[motorB] = -20;
wait1Msec(1000);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
time1[T1]=0;
while(time1(T1) < 21600)
{
if(SensorValue[lightSensor] < 45) // If the Light Sensor reads a value less than 45:
{
motor[motorB] = 60; // Motor B is run at a 60 power level.
motor[motorC] = 20; // Motor C is run at a 20 power level.
}
else // If the Light Sensor reads a value greater than or equal to 45:
{
motor[motorB] = 20; // Motor B is run at a 20 power level.
motor[motorC] = 60; // Motor C is run at a 60 power level.
}
}
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorA] = -10;
wait1Msec(800);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = -20;
motor[motorB] = 20;
wait1Msec(800);
motor[motorC] = 50; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 50; /* and motor B stop. */
wait1Msec(3500);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
}
while (SensorValue[sonarSensor] < 25)
{
PlaySound(soundBeepBeep); // play the sound, 'soundBeepbeep'
wait1Msec(50); // Wait for 1 second to ignore initial readings of the Sound Sensor
time1[T1]=0;
while(time1(T1) < 19500)
{
if(SensorValue[lightSensor] < 45) // If the Light Sensor reads a value less than 45:
{
motor[motorB] = 60; // Motor B is run at a 60 power level.
motor[motorC] = 20; // Motor C is run at a 20 power level.
}
else // If the Light Sensor reads a value greater than or equal to 45:
{
motor[motorB] = 20; // Motor B is run at a 20 power level.
motor[motorC] = 60; // Motor C is run at a 60 power level.
}
}
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = -20;
motor[motorB] = 20;
wait1Msec(1000);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(600);
motor[motorA] = 10;
wait1Msec(700);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = 20;
motor[motorB] = -20;
wait1Msec(1000);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
time1[T1]=0;
while(time1(T1) < 19600)
{
if(SensorValue[lightSensor] < 45) // If the Light Sensor reads a value less than 45:
{
motor[motorB] = 60; // Motor B is run at a 60 power level.
motor[motorC] = 20; // Motor C is run at a 20 power level.
}
else // If the Light Sensor reads a value greater than or equal to 45:
{
motor[motorB] = 20; // Motor B is run at a 20 power level.
motor[motorC] = 60; // Motor C is run at a 60 power level.
}
}
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorA] = -10;
wait1Msec(800);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = -20;
motor[motorB] = 20;
wait1Msec(800);
motor[motorC] = 50; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 50; /* and motor B stop. */
wait1Msec(3500);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
}
while (SensorValue[sonarSensor] < 45)
{
PlaySound(soundDownwardTones); // play the sound, 'soundDownwardTones'
wait1Msec(50); // Wait for 1 second to ignore initial readings of the Sound Sensor
time1[T1]=0;
while(time1(T1) < 21200)
{
if(SensorValue[lightSensor] < 45) // If the Light Sensor reads a value less than 45:
{
motor[motorB] = 60; // Motor B is run at a 60 power level.
motor[motorC] = 20; // Motor C is run at a 20 power level.
}
else // If the Light Sensor reads a value greater than or equal to 45:
{
motor[motorB] = 20; // Motor B is run at a 20 power level.
motor[motorC] = 60; // Motor C is run at a 60 power level.
}
}
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = -20;
motor[motorB] = 20;
wait1Msec(1000);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(600);
motor[motorA] = 10;
wait1Msec(700);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = 20;
motor[motorB] = -20;
wait1Msec(1000);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
time1[T1]=0;
while(time1(T1) < 18000)
{
if(SensorValue[lightSensor] < 45) // If the Light Sensor reads a value less than 45:
{
motor[motorB] = 60; // Motor B is run at a 60 power level.
motor[motorC] = 20; // Motor C is run at a 20 power level.
}
else // If the Light Sensor reads a value greater than or equal to 45:
{
motor[motorB] = 20; // Motor B is run at a 20 power level.
motor[motorC] = 60; // Motor C is run at a 60 power level.
}
}
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorA] = -10;
wait1Msec(800);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
motor[motorC] = -20;
motor[motorB] = 20;
wait1Msec(800);
motor[motorC] = 50; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 50; /* and motor B stop. */
wait1Msec(3500);
motor[motorC] = 0; /* Otherwise, when loud noises are heard, Motor C */
motor[motorB] = 0; /* and motor B stop. */
wait1Msec(1000);
}
}