|
|
| Line 601: |
Line 601: |
| | |- | | |- |
| | | style="border-style: solid; border-width: 1px 0px 1px 0px"|''direction'' | | | style="border-style: solid; border-width: 1px 0px 1px 0px"|''direction'' |
| − | | style="border-style: solid; border-width: 1px 0px 1px 0px"|The direction to turn.<br />(default: <span class="bigCodeBasic">right</span>) | + | | style="border-style: solid; border-width: 1px 0px 1px 0px"|The direction to turn.<br />(default: <span class="codeBasic">right</span>) |
| − | | style="border-style: solid; border-width: 1px 0px 1px 0px"|<span class="bigCodeBasic">right<br />left</span> | + | | style="border-style: solid; border-width: 1px 0px 1px 0px"|<span class="codeBasic">right<br />left</span> |
| | |- | | |- |
| | | style="border-style: solid; border-width: 0px 0px 0px 0px"|''speed'' | | | style="border-style: solid; border-width: 0px 0px 0px 0px"|''speed'' |
| The ROBOTC Natural Language Library aims at making learning and using text-based programming languages easier for beginners. The Natural Language Library is filled with commands that are both easy to use and easy to remember. Natural Language commands encompass entire robot behaviors into a single command.
Natural Language can be enabled in ROBOTC by going to the Robot menu, then Platform Type, and then by selecting one of the Natural Language options.
|
| void wait(float waitTime = 1.0)
|
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| waitTime
|
Amount of time to wait, in seconds. (default: 1.0)
|
Any floating point amount:
|
|
|
| 0.####
|
-2,048.0000 to +2,048.0000
|
| 0.###
|
-32,768.000 to +32,768.000
|
| 0.##
|
-262,144.00 to +262,144.00
|
| 0.#
|
-2,097,200.0 to +2,097,200.0
|
|
|
| Default Usage and Sample
|
forward();
wait(); // wait for 1.0 seconds (default)
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
wait(2.7); // wait for 2.7 seconds
stop(); // stop
|
|
| void waitInMilliseconds(long waitTime = 1000)
|
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| waitTime
|
Amount of time to wait, in seconds. (default: 1000)
|
Any whole integer amount from -2,147,483,648 to +2,147,483,647.
|
|
| Default Usage and Sample
|
forward();
waitInMilliseconds(); // wait for 1000 milliseconds (default)
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
waitInMilliseconds(2700); // wait for 2700 milliseconds (2.7 seconds)
stop(); // stop
|
|
| void lineTrackForTime(float trackTime = 5.0, int threshold = 505, tSensors sensorLeft = in1, tSensors sensorCenter = in2, tSensors sensorRight = in3)
|
|
|
|
|
(void) The robot will track a black line on a white surface for a specified time in seconds.
Threshold Range: (dark) 0 to 4095 (light)
Acceptable Sensors: analog ports 1 through 8 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| trackTime
|
The amount of time in seconds to track a line. (default: 5.0)
|
Any floating point amount:
|
|
|
| 0.####
|
-2,048.0000 to +2,048.0000
|
| 0.###
|
-32,768.000 to +32,768.000
|
| 0.##
|
-262,144.00 to +262,144.00
|
| 0.#
|
-2,097,200.0 to +2,097,200.0
|
|
| threshold
|
The threshold to compare colors against. (default: 505)
|
0 to +4095
|
| sensorLeft
|
The sensor port to use for the LEFT line tracking sensor. (default: in1)
|
in1 to in8 Or their names setup in Motors and Sensors Setup.
|
| sensorCenter
|
The sensor port to use for the CENTER line tracking sensor. (default: in2)
|
in1 to in8 Or their names setup in Motors and Sensors Setup.
|
| sensorRight
|
The sensor port to use for the RIGHT line tracking sensor. (default: in3)
|
in1 to in8 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
lineTrackForTime(); /* track a black line for 5.0 seconds,
using a threshold of 505, with the
line tracking sensors in ports:
in1, in2, in3(default) */
stop();
|
|
| Usage and Sample with Parameters
|
lineTrackForTime(7.5, 99, in6, in7, in8); /* track a black line for 7.5 seconds,
using a threshold of 99, with the
line tracking sensors in ports:
in6, in7, in8 */
stop(); // stop
|
|
| void lineTrackForRotations(float rotations = 3.0, int threshold = 505, tSensors sensorLeft = in1, tSensors sensorCenter = in2, tSensors sensorRight = in3)
|
|
|
|
|
(void) The robot will track a black line on a white surface for a specified distance in rotations.
Threshold Range: (dark) 0 to 4095 (light)
Acceptable Sensors: analog ports 1 through 8 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| rotations
|
The amount of axle rotations to track a line. (default: 3.0)
|
Any floating point amount:
|
|
|
| 0.####
|
-2,048.0000 to +2,048.0000
|
| 0.###
|
-32,768.000 to +32,768.000
|
| 0.##
|
-262,144.00 to +262,144.00
|
| 0.#
|
-2,097,200.0 to +2,097,200.0
|
|
| threshold
|
The threshold to compare colors against. (default: 505)
|
0 to +4095
|
| sensorLeft
|
The sensor port to use for the LEFT line tracking sensor. (default: in1)
|
in1 to in8 Or their names setup in Motors and Sensors Setup.
|
| sensorCenter
|
The sensor port to use for the CENTER line tracking sensor. (default: in2)
|
in1 to in8 Or their names setup in Motors and Sensors Setup.
|
| sensorRight
|
The sensor port to use for the RIGHT line tracking sensor. (default: in3)
|
in1 to in8 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
lineTrackForRotations(); /* track a black line for 3.0 rotations,
using a threshold of 505, with the
line tracking sensors in ports:
in1, in2, in3(default) */
stop();
|
|
| Usage and Sample with Parameters
|
lineTrackForRotations(4.75, 99, in6, in7, in8); /* track a black line for 4.75 rotations,
using a threshold of 99, with the
line tracking sensors in ports:
in6, in7, in8 */
stop(); // stop
|
|
| void moveStraightForTime(float seconds = 5.0, tMotor rightEncoderPort = dgtl1, tMotor leftEncoderPort = dgtl3)
|
|
|
|
|
(void) The robot will use encoders to maintain a straight course for a length of time in seconds.
- NOTE: This function only supports moving forward and only at one speed setting. Future implementations may include moving backwards and variable speeds.
Acceptable Sensors: digital ports 1 through 11 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| seconds
|
The amount of time in seconds to drive straight forward. (default: 5.0)
|
Any floating point amount:
|
|
|
| 0.####
|
-2,048.0000 to +2,048.0000
|
| 0.###
|
-32,768.000 to +32,768.000
|
| 0.##
|
-262,144.00 to +262,144.00
|
| 0.#
|
-2,097,200.0 to +2,097,200.0
|
|
| rightEncoderPort
|
The right-side motor encoder. (default: dgtl1 [+ dgtl2])
|
dgtl1 to dgtl11 Or their names setup in Motors and Sensors Setup.
|
| leftEncoderPort
|
The left-side motor encoder. (default: dgtl3 [+ dgtl4])
|
dgtl1 to dgtl11 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
moveStraightForTime(); /* move straight forward for 5.0 seconds,
using dgtl1 (+ dgtl2) as the right-side encoder and
dgtl3 (+ dgtl4) as the left-side encoder (default) */
stop();
|
|
| Usage and Sample with Parameters
|
moveStraightForTime(7.5, dgtl5, dgtl3); /* move straight forward for 7.5 seconds,
using dgtl5 (+ dgtl6) as the right-side encoder
and dgtl3 (+ dgtl4) as the left-side encoder */
stop(); // stop
|
|
| void moveStraightForRotations(float rotations = 1.0, tMotor rightEncoderPort = dgtl1, tMotor leftEncoderPort = dgtl3)
|
|
|
|
|
(void) The robot will use encoders to maintain a straight course for a distance in rotations (360 encoder counts = 1 rotation).
- NOTE: This function only supports moving forward and only at one speed setting. Future implementations may include moving backwards and variable speeds.
Acceptable Sensors: digital ports 1 through 11 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| rotations
|
The amount of axle rotations to drive straight forward. (default: 1.0)
|
Any floating point amount:
|
|
|
| 0.####
|
-2,048.0000 to +2,048.0000
|
| 0.###
|
-32,768.000 to +32,768.000
|
| 0.##
|
-262,144.00 to +262,144.00
|
| 0.#
|
-2,097,200.0 to +2,097,200.0
|
|
| rightEncoderPort
|
The right-side motor encoder. (default: dgtl1 [+ dgtl2])
|
dgtl1 to dgtl11 Or their names setup in Motors and Sensors Setup.
|
| leftEncoderPort
|
The left-side motor encoder. (default: dgtl3 [+ dgtl4])
|
dgtl1 to dgtl11 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
moveStraightForRotations(); /* move straight forward for 1.0 rotations,
using dgtl1 (+ dgtl2) as the right-side encoder and
dgtl3 (+ dgtl4) as the left-side encoder (default) */
stop();
|
|
| Usage and Sample with Parameters
|
moveStraightForRotations(4.95, dgtl5, dgtl3); /* move straight forward for 4.95 rotations,
using dgtl5 (+ dgtl6) as the right-side encoder
and dgtl3 (+ dgtl4) as the left-side encoder */
stop(); // stop
|
|
| void tankControl(TVexJoysticks rightJoystick = Ch2, TVexJoysticks leftJoystick = Ch3, short threshold = 10)
|
|
|
|
|
(void) The robot will be remote controlled in such a way that the left motor is mapped to the left joystick and the right motor is mapped to the right joystick.
- NOTE: This function only supports 2 channels and works best with the joystics.
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| rightJoystick
|
The joystick to use as the RIGHT-side joystick. (default: Ch2)
|
Any channel: Ch1 Ch2 Ch3 Ch4
|
| leftJoystick
|
The joystick to use as the LEFT-side joystick. (default: Ch3)
|
Any channel: Ch1 Ch2 Ch3 Ch4
|
| threshold
|
This variable eliminates 'noise' caused by joysticks not returning back to the exact center. (default: 10)
|
0 to 127
|
|
| Default Usage and Sample
|
while(true)
{
tankControl(); /* control the robot in 'tank' fashion
with the RIGHT joystick as Ch2 and
the LEFT joystick as Ch1, with a
threshold of 10 (default) */
}
|
|
| Usage and Sample with Parameters
|
while(true)
{
tankControl(Ch1, Ch4, 5); /* control the robot in 'tank' fashion
with the RIGHT joystick as Ch1 and
the LEFT joystick as Ch2, with a
threshold of 5 */
}
|
|
| void arcadeControl(short &verticalJoystick = joystick.joy1_y2, short &horizontalJoystick = joystick.joy1_y1, short threshold = 10)
|
|
|
|
|
(void) The robot will be remote controlled in such a way that the movement of the robot is mapped to a single joystick, much like a retro arcade game.
- NOTE: This function only supports 2 channels and works best with the joystics.
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| verticalJoystick
|
The joystick to use as the vertical joystick. (default: joystick.joy1_y2)
|
Any joystick: joy1_x1 joy1_x2 joy1_y1 joy1_y2 joy2_x1 joy2_x2 joy2_y1 joy2_y2
|
| horizontalJoystick
|
The joystick to use as the horizontal joystick. (default: joystick.joy1_x2)
|
Any joystick: joy1_x1 joy1_x2 joy1_y1 joy1_y2 joy2_x1 joy2_x2 joy2_y1 joy2_y2
|
| threshold
|
This variable eliminates 'noise' caused by joysticks not returning back to the exact center. (default: 10)
|
0 to 100
|
|
| Default Usage and Sample
|
while(true)
{
arcadeControl(); /* control the robot in 'arcade' fashion
with the VERTICAL joystick as joy1_y2
and the HORIZONTAL joystick as joy1_x2,
with a threshold of 10 (default) */
}
|
|
| Usage and Sample with Parameters
|
while(true)
{
arcadeControl(joystick.joy1_y1, joystick.joy1_y2, 5); /* control the robot in 'arcade' fashion
with the VERTICAL joystick as joy1_y1
and the HORIZONTAL joystick as joy1_y2,
with a threshold of 5 */
}
|
|
| void untilBump(tSensors sensorPort = S1, int delayTimeMS = 10)
|
|
|
|
|
(void) The robot does what it was doing until the touch sensor is pressed in and then released out. A delay time in milliseconds can be specified.
Acceptable Sensors: sensor ports 1 through 4 (and your names for them given in Motors and Sensors Setup.)
Acceptable Range for Delay Time:
0 to 2,147,483,647.
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| sensorPort
|
The sensor port to use for the light sensor. (default: S1)
|
S1 S2 S3 S4 Or their names setup in Motors and Sensors Setup.
|
| delayTimeMS
|
The amount of milliseconds that MUST PASS between press and release of the sensor for it to count. (default: 10)
|
Any whole integer amount from 0 to 2,147,483,647.
|
|
| Default Usage and Sample
|
forward();
untilBump(); /* wait until the touch sensor in port S1 is pressed and
then released with a delay time of 10 milliseconds (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
untilBump(S3, 100); /* wait until the touch sensor in port S3 is pressed and
then released with a delay time of 100 milliseconds */
stop(); // stop
|
|
| void untilSonarGreaterThan(short distance = 30, tSensors sensorPort = S4)
|
|
|
|
|
(void) The robot does what it was doing until the sonar sensor reads a value greater than a set distance in centimeters.
Range: 0 to 254 (A value of 255 means it cannot detect anything.)
Acceptable Sensors: sensor ports 1 through 4 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| distance
|
The distance in centimeters that an object must be farther than to count (default: 30)
|
Any whole integer amount from 0 to 255.
|
| sensorPort
|
The sensor port to use for the sonar sensor. (default: S4)
|
S1 S2 S3 S4 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilSonarGreaterThan(); /* wait until the sonar sensor in port S4 detects
an object farther than 30cm away (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
untilSonarGreaterThan(45, S2); /* wait until the sonar sensor in port S2
detects an object farther than 45cm away */
stop(); // stop
|
|
| void untilSonarLessThan(short distance = 30, tSensors sensorPort = S4)
|
|
|
|
|
(void) The robot does what it was doing until the sonar sensor reads a value less than a set distance in centimeters.
Range: 0 to 254 (A value of 255 means it cannot detect anything.)
Acceptable Sensors: sensor ports 1 through 4 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| distance
|
The distance in centimeters that an object must be closer than to count (default: 30)
|
Any whole integer amount from 0 to 255.
|
| sensorPort
|
The sensor port to use for the sonar sensor. (default: S4)
|
S1 S2 S3 S4 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilSonarLessThan(); /* wait until the sonar sensor in port S4 detects
an object closer than 30cm away (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
untilSonarLessThan(45, S2); /* wait until the sonar sensor in port S2
detects an object closer than 45cm away */
stop(); // stop
|
|
| void untilSoundGreaterThan(int threshold = 63, tSensors sensorPort = S2)
|
|
|
|
|
(void) The robot does what it was doing until the sound sensor reads a value greater than a set threshold level.
Range: (quiet) 0 to 100 (loud)
Acceptable Sensors: sensor ports 1 through 4 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| threshold
|
The threshold value that a sound must be louder than to count (default: 63)
|
Any whole integer amount from 0 to 100.
|
| sensorPort
|
The sensor port to use for the sonar sensor. (default: S2)
|
S1 S2 S3 S4 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilSoundGreaterThan(); /* wait until the sound sensor in port S2
detects a sound louder than 63 (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
untilSoundGreaterThan(85, S3); /* wait until the sound sensor in port
S3 detects a sound louder than 85 */
stop(); // stop
|
|
| void untilSoundLessThan(int threshold = 63, tSensors sensorPort = S2)
|
|
|
|
|
(void) The robot does what it was doing until the sound sensor reads a value less than a set threshold level.
Range: (quiet) 0 to 100 (loud)
Acceptable Sensors: sensor ports 1 through 4 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| threshold
|
The threshold value that a sound must be quieter than to count (default: 63)
|
Any whole integer amount from 0 to 100.
|
| sensorPort
|
The sensor port to use for the sonar sensor. (default: S2)
|
S1 S2 S3 S4 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilSoundLessThan(); /* wait until the sound sensor in port S2
detects a sound quieter than 63 (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
untilSoundLessThan(15, S3); /* wait until the sound sensor in port
S3 detects a sound quieter than 15 */
stop(); // stop
|
|
| void untilLight(int threshold = 30, tSensors sensorPort = S3)
|
|
|
|
|
(void) The robot does what it was doing until the light sensor reads a value lighter than the threshold.
Range: (light) 0 to 100 (dark)
Acceptable Sensors: sensor ports 1 through 4 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| threshold
|
The threshold value that an object must be lighter than to count (default: 30)
|
Any whole integer amount from 0 to 100.
|
| sensorPort
|
The sensor port to use for the sonar sensor. (default: S3)
|
S1 S2 S3 S4 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilLight(); /* wait until the light sensor in port S3
detects an object lighter than 30 (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
untilLight(95, S1); /* wait until the light sensor in port S1
detects an object lighter than 95 */
stop(); // stop
|
|
| void untilDark(int threshold = 30, tSensors sensorPort = S3)
|
|
|
|
|
(void) The robot does what it was doing until the light sensor reads a value darker than the threshold.
Range: (light) 0 to 100 (dark)
Acceptable Sensors: sensor ports 1 through 4 (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| threshold
|
The threshold value that an object must be darker than to count (default: 30)
|
Any whole integer amount from 0 to 100.
|
| sensorPort
|
The sensor port to use for the sonar sensor. (default: S3)
|
S1 S2 S3 S4 Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilDark(); /* wait until the light sensor in port S3
detects an object darker than 30 (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // go forward at speed 63
untilDark(95, S1); /* wait until the light sensor in port S1
detects an object darker than 95 */
stop(); // stop
|
|
| void untilRotations(float rotations = 1.0, tMotor motorPort = motorB)
|
|
|
|
|
(void) The robot does what it was doing until the motor encoder rotations match the desired value.
Range: -262,144.00 to +262,144.00
Acceptable Encoders: motor ports A through C (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| rotations
|
The amount of axle rotations to reach. (default: 1.0)
|
Any floating point amount:
|
|
|
| 0.####
|
-2,048.0000 to +2,048.0000
|
| 0.###
|
-32,768.000 to +32,768.000
|
| 0.##
|
-262,144.00 to +262,144.00
|
| 0.#
|
-2,097,200.0 to +2,097,200.0
|
|
| motorPort
|
The motor encoder to use. (default: motorB)
|
motorA motorB motorC Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilRotations(); /* wait until the motor encoder on
motorB counts 1.0 rotations (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // move forward at speed 63
untilRotations(2.95, motorA); /* wait until the motor encoder on
motorA counts 2.95 rotations */
stop(); // stop
|
|
| void untilEncoderCounts(long distance = 360, tMotor motorPort = motorB)
|
|
|
|
|
(void) The robot does what it was doing until the motor encoder rotations match the desired value.
Range: -2,147,483,648 to +2,147,483,647
Acceptable Encoders: motor ports A through C (and your names for them given in Motors and Sensors Setup.)
|
|
| Parameter
|
Explanation
|
Acceptable Input
|
| distance
|
The amount of encoder counts to reach. (default: 360)
|
Any whole integer amount from -2,147,483,648 to +2,147,483,647.
|
| motorPort
|
The motor encoder to use. (default: motorB)
|
motorA motorB motorC Or their names setup in Motors and Sensors Setup.
|
|
| Default Usage and Sample
|
forward();
untilEncoderCounts(); /* wait until the motor encoder on
motorB counts 360 ticks (default) */
stop();
|
|
| Usage and Sample with Parameters
|
forward(63); // move forward at speed 63
untilEncoderCounts(990, motorA); /* wait until the motor encoder on
motorA counts 990 ticks (default) */
stop(); // stop
|
|