VEX2 Functions Sensors

From ROBOTC API Guide
Revision as of 16:12, 30 April 2012 by Bfeher (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


For more examples and explanations, head over to CORTEX Sensors Overview page!

For information and examples on using I2C sensors, head over to CORTEX I2C Digital Sensors page!


Color Key
Function:
Variable:


Information

The VEX 2.0 Cortex is equipped with 20 sensor ports. There are 8 Analog Sensor Ports and 12 Digital Sensor Ports. Note that unlike the VEX - PIC microcontroller, all Analog sensors must be in Analog ports, while all Digital sensors must be in Digital ports.

There are a variety of functions and variables used for configuring these ports and accessing their values.

Configuring sensors can be complicated. ROBOTC has a built-in wizard that can be used to configure the VEX 2.0 Cortex sensors. The wizard contains a number of PC windows that allow you to set the following fields for the sensor:

  • The variable name that you want to assign to the sensor. Using a name like “leftBumper” makes for a more readable program than 'dgtl3'!
  • The port that the sensor is connected to.
  • The type of sensor – touch, quadrature encoder, sonar, line follower, etc.


SensorBoolean

const word SensorBoolean[tSensors sensor]
(word) This returns a true or false reading from the sensor. (Mostly used by Touch sensors).


Parameter Explanation Data Type
sensor A sensor port or name tSensors


while(SensorBoolean[touchSensor]) // Loop while robot's bumper/touch sensor is pressed in
{
   motor[rightMotor] = 63;   // Right motor is run at half (63) power forward
   motor[leftMotor]  = 63;   // Left motor is run at half (63) power forward
}


SensorRaw

word SensorRaw[tSensors sensor]
(word) This array value will return the "raw" (un-normalized) value of a sensor. Usually this is the raw A-D converted value, which is an analog value between 0 to 1023.


Parameter Explanation Data Type
sensor A sensor port or name tSensors


if(SensorRaw[lightSensor] > 512) // If the Raw Value of the Light Sensor is greater than 512:
{
   motor[rightMotor] = 63;   // Right motor is run at half (63) power forward
   motor[leftMotor]  = 63;   // Left motor is run at half (63) power forward 
}


SensorType

TSensorTypes SensorType[tSensors sensor]
(TSensorTypes) The SensorType array is used to specify what type of sensor is connected to a certain port. Most users should not have to use this functionality and should use the Motors and Sensor Setup instead.


Parameter Explanation Data Type
sensor A sensor port or name tSensors


SensorType[sonarSensor] = sensorSonar;  // set 'SonarSensor' to be of type sensorSonar (the Motors and 
                                        // sensors Setup screen does this for you in the background)


SensorValue

word SensorValue[tSensors sensor]
(word) This array value returns the value of the sensor in a normalized fashion. Rather than returning a raw value of 0 to 1023, ROBOTC will interpret the data from the "SensorType" and return a more accurate representation of the sensor's data. An example of this is the Light Sensor, which will return a percentage value from 0 to 100.


Parameter Explanation Data Type
sensor A sensor port or name tSensors


while(SensorValue(touchSensor) == 0) //Loop while robot's bumper/touch sensor isn't pressed in
{
   motor[rightMotor] = 63;   // Right motor is run at half (63) power forward
   motor[leftMotor]  = 63;   // Left motor is run at half (63) power forward
}