sonar#
Initializing the sonar Class#
A Range Finder is created by using the following constructor:
The sonar
constructor creates a sonar object in the specified Three Wire Port.
Parameter |
Description |
---|---|
|
The 3-Wire Port “pair” that the Range Finder is connected to, whether it’s a port on the Brain, or a 3-Wire Expander. |
A Brain or 3-Wire Expander must be created first before they can be used to create an object with the sonar Class constructor.
// Create the Brain.
brain Brain;
// Construct a Range Finder "Sonar" with the
// sonar class.
sonar Sonar = sonar(Brain.ThreeWirePort.A);
This Sonar
object will be used in all subsequent examples throughout this API documentation when referring to sonar class methods.
Class Methods#
distance()#
The distance(units)
method returns the current distance the Range Finder is detecting on abject at. The Range Finder will return a large positive number if no object is detected in range.
Parameters |
Description |
---|---|
units |
A valid DistanceUnit. |
Returns: A double representing the distance measured by the Range Finder.
// Get the Range Finder distance in millimeters.
double value = Sonar.distance(mm);
// Print the current distance detected by the Range Finder to the
// Brain's screen.
Brain.Screen.print(value);
foundObject()#
The foundObject()
method checks if an object is detected by the Range Finder in the range 0 - 1000 millimeters. The Range Finder will return true if an object is detected closer than 1000mm.
Returns: true
if an object is detected by the Range Finder. false
if one is not.
// Check if an object is 1000mm or closer to the Range Finder.
if (Sonar.foundObject()){
// Print to screen on the brain that an object was found.
Brain.Screen.print("object found");
}
setMaximum()#
The setMaximum(distance, units)
method sets the maximum distance the foundObject()
method will return true
for.
Parameters |
Description |
---|---|
distance |
A double representing the maximum distance the Range Finder will find objects at. |
units |
A valid DistanceUnit. |
Returns: None.
changed()#
The changed(callback)
method runs a callback function when the Range Finder’s value changes.
Parameters |
Description |
---|---|
callback |
A callback function to run when the value of the Range Finder changes. |
Returns: None.
// Define the sonarChanged function with a void return type,
// showing it doesn't return a value.
void sonarChanged() {
// The Brain will print that the value detected by the
// Range Finder changed on the Brain's screen.
Brain.Screen.print("Range Finder value changed");
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Run sonarChanged when the value of the
// Range Finder changes.
Sonar.changed(sonarChanged);
}