Created
March 2, 2019 14:20
-
-
Save ringodin/b8c44c0ef2343869dc007e255d0bea58 to your computer and use it in GitHub Desktop.
robot drives forward infinitely, but if a wall is detected, it backs up and turns.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma config(Sensor, port4, distanceSensor, sensorVexIQ_Distance) | |
#pragma config(Motor, motor1, leftMotor, tmotorVexIQ, openLoop, encoder) | |
#pragma config(Motor, motor6, rightMotor, tmotorVexIQ, openLoop, reversed, encoder) | |
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*// | |
/*------------------------------------------------------------------------------------------------ | |
Move forward until the VEX IQ Distance Sensors sees an object 100 millimeters (mm) away. The VEX | |
IQ Distance Sensor returns values in millimeters. | |
ROBOT CONFIGURATION: VEX IQ Clawbot | |
MOTORS & SENSORS: | |
[I/O Port] [Name] [Type] [Info] | |
Port 7 distanceSensor VEX IQ Distance Distance Sensor (returns mm) | |
Port 1 leftMotor VEX IQ Motor Left side motor | |
Port 6 rightMotor VEX IQ Motor Right side motor (reversed) | |
------------------------------------------------------------------------------------------------*/ | |
task main() | |
{ | |
while(true) | |
{ | |
if(getDistanceValue(distanceSensor) > 50) | |
{ | |
setMotorSpeed(leftMotor, -50); //Move left motor at 50% speed | |
setMotorSpeed(rightMotor, -50); //Move right motor at 50% speed | |
} | |
else | |
{ setMotorSpeed(leftMotor, 0); | |
setMotorSpeed(rightMotor, 0); | |
sleep(500); //stop | |
resetMotorEncoder(leftMotor); | |
resetMotorEncoder(rightMotor); | |
moveMotorTarget(leftMotor, 500, 50); | |
moveMotorTarget(rightMotor, 500, 50); | |
waitUntilMotorStop(leftMotor); | |
waitUntilMotorStop(rightMotor); //backup | |
sleep(500); | |
resetMotorEncoder(leftMotor); | |
resetMotorEncoder(rightMotor); | |
moveMotorTarget(leftMotor, -200, -50); | |
moveMotorTarget(rightMotor, 200, 50); | |
waitUntilMotorStop(leftMotor); | |
waitUntilMotorStop(rightMotor); //turn right | |
sleep(500); | |
}}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment