Ejemplo n.º 1
0
void mouseDemo() {
	mouseinitial();
	_DBG_("Intialised mouse");
	int sta = 0;
	while(sta != 4) {
		switch(sta) {
		
		case 0: 
				while (coord_x<200) {
					forwards(20);
				}
				sta = 1;
				break;
		case 1:
				while (convertToDeg(theta) > -90) {
					spinLeft();
				}
				sta = 2;
				break;
		case 2:
				while (coord_y<100) {
					forwards(20);
				}
				sta = 3;
				break;
		case 3:
				while (convertToDeg(theta) < 90 ) {
					spinRight();
				}
				sta = 4;
				break;
		}		
	}
}
Ejemplo n.º 2
0
void fullDemo() {
	int robotState = 0;
	uint16_t sensorPattern[5] = {0};	
	while(robotState != 6) {
		switch(robotState) {
			case 0:
				while(get_coord_x() < 200) {
					forwards(20);
				}
				robotState = 1;
				break;
			case 1:
				setSensorSide(1);
				while(get_coord_x() < 400) {
					correctForwardMotion();
				}
				robotState = 2;
				break;
			case 2:
				while(convertToDeg(get_theta()) > -90) {
					spinLeft();
				}
				while(get_coord_y() < 120) {
					forwards(20);
				}
				while(convertToDeg(get_theta()) < 0) {
					spinRight();
				}
				while(get_coord_x() < 600) {
					forwards(20);
				}
				robotState = 3;
				break;
			case 3:
				setSensorSide(2);
				while(get_coord_x() < 800) {
					correctForwardMotion();
				}
				robotState = 4;
				break;
			case 4:
				forwards(20);		
				while(sensorPattern[3]<2000){
					getRawSensors(sensorPattern);
				}
				robotState = 5;
				break;
			case 5:
				followLine();
				robotState = 6;
				break;
		}
	}
}
Ejemplo n.º 3
0
void playHelper(){
    // GET DIR
    if(check(PINB,5)){
        direction=true; //SET THE ROBOT DIRECTION TO SHOOT
    } else {
        direction=false;
    }
    // direction = directionPacket;
    // READ ADC VALS
    int adc1 = ADC0_read();
    int adc2 = ADC1_read();
    //m_usb_tx_string("adc1, adc2 = (");
    //m_usb_tx_int(adc1);
    //m_usb_tx_string(", ");
    //m_usb_tx_int(adc2);
    //m_usb_tx_string(")\n");
    int adcDiff = adc2 - adc1;
    if(direction) m_usb_tx_string("direction true\n");
    else m_usb_tx_string("direction false\n");
    if(timer>=1){
        turnLeft();
        m_wait(1000);
        backward();
        m_wait(500);
        timer = 0;
    } else if(hasPuck()){// ROBOT SWITCH PUSHED.. PUCK IS SEEN
        m_green(OFF);
        m_wait(100);
        unsigned int xTarg;
        unsigned int yTarg = 60;
        if(direction){                  // Face goal A
            xTarg = 240;
        } else {                        // Face goal B
            xTarg = 0;
        } 
        // ROTATE TO FACE GOAL
        if(!facing(xTarg,yTarg)) return;
        if(direction){                  // Try to go to A
            if(myPos[X]>160){           // Close enough, fire!
                m_green(ON);
                fire();
            } else {
                m_green(OFF);           // Too far, keep going forward
                forward();           
            }
        } else {                        // Try to go to B
            if(myPos[X]<80){            // Close enough, fire!
                m_green(ON);
                fire();
            } else {                    // Too far, keep going forward
                m_green(OFF);
                forward();     
            }    
        }
    } else if(adc1>960||adc2>960){        // PUCK SEEN, hone in..
        if(adcDiff>10){
            spinLeft();
        } else if(adcDiff<-10){
            spinRight();
        } else {
            forward();
        }
    } else{                               // PUCK NOT SEEN, keep spinning..
        m_green(OFF);
        spinRight();
    }
}
Ejemplo n.º 4
0
void playStriker(){
	
    // GET DIR
    if(check(PINB,5)){
        direction=true; //SET THE ROBOT DIRECTION TO SHOOT
    } else {
        direction=false;
    }
    // GET POS
    getPos();
    // SEND LOCATION TO HELPER
    //buffer[1]=myPos[X];
    //buffer[2]=myPos[Y];
    //buffer[3]=direction;
    //m_rf_send(TXADDRESS, buffer, PACKET_LENGTH);
    // READ ADC VALS
    int adc1 = ADC0_read();
    int adc2 = ADC1_read();
    // m_usb_tx_string("adc1, adc2 = (");
    // m_usb_tx_int(adc1);
    // m_usb_tx_string(", ");
    // m_usb_tx_int(adc2);
    // m_usb_tx_string(")\n");
    int adcDiff = adc2 - adc1;
    // TIMER CHECKS
    //m_usb_tx_string("myLastPos(x,y): (");
    //m_usb_tx_int(myLastPos[X]);
    //m_usb_tx_string(", ");
    //m_usb_tx_int(myLastPos[Y]);
    //m_usb_tx_string(") TIMER:");
    //m_usb_tx_int(timer);
    //m_usb_tx_string("\n");
    if(timer>5 && timer<10){
        backward();
        m_wait(250);
        turnLeft();
        m_wait(250);
        backward();
        m_wait(250);
        timer = 0;
    } else if(hasPuck()){// ROBOT SWITCH PUSHED.. PUCK IS SEEN
        m_green(OFF);
        m_wait(100);
        unsigned int xTarg;
        unsigned int yTarg = 60;
        if(direction){                  // Face goal A
            xTarg = 240;
        } else {                        // Face goal B
            xTarg = 0;
        } 
        // ROTATE TO FACE GOAL
        if(!facing(xTarg,yTarg)) return;
        if(direction){                  // Try to go to A
            if(myPos[X]>160){           // Close enough, fire!
                m_green(ON);
                fire();
            } else {
                m_green(OFF);           // Too far, keep going forward
                forward();           
            }
        } else {                        // Try to go to B
            if(myPos[X]<80){            // Close enough, fire!
                m_green(ON);
                fire();
            } else {                    // Too far, keep going forward
                m_green(OFF);
                forward();     
            }    
        }
    } else if(adc1>960||adc2>960){        // PUCK SEEN, hone in..
        if(adcDiff>10){
            spinLeft();
        } else if(adcDiff<-10){
            spinRight();
        } else {
            forward();
        }
    } else{                               //PUCK NOT SEEN, keep spinning..
        m_green(OFF);
        spinRight();
    }
}
Ejemplo n.º 5
0
void processWheels() {

	if(Button(CONTROLLER_A, 5))
			spinRight();
	else if(Button(CONTROLLER_A, 6))
			spinLeft();

	if (((Happy(CONTROLLER_A, JOYSTICK_L, AXIS_X) > JOYSTICK_UPPER_THRESHOLD) || (Happy(CONTROLLER_A, JOYSTICK_L, AXIS_X) < JOYSTICK_LOWER_THRESHOLD))) {
		MotorF(motor11, Happy(CONTROLLER_A, JOYSTICK_L, AXIS_X));
		MotorF(motor21, Happy(CONTROLLER_A, JOYSTICK_L, AXIS_X));
	}
	else if (!Button(CONTROLLER_A, 5) && !Button(CONTROLLER_A, 6) && (Hat(CONTROLLER_A) == HAT_NONE)) {
		MotorS(motor11);
		MotorS(motor21);
	}

	if ((Happy(CONTROLLER_A, JOYSTICK_R, AXIS_Y) > JOYSTICK_UPPER_THRESHOLD) || (Happy(CONTROLLER_A, JOYSTICK_R, AXIS_Y) < JOYSTICK_LOWER_THRESHOLD)) {
		MotorF(motor12, Happy(CONTROLLER_A, JOYSTICK_R, AXIS_Y));
		MotorF(motor22, Happy(CONTROLLER_A, JOYSTICK_R, AXIS_Y));
	}
	else if (!Button(CONTROLLER_A, 5) && !Button(CONTROLLER_A, 6) && (Hat(CONTROLLER_A) == HAT_NONE)) {
		MotorS(motor12);
		MotorS(motor22);
	}

	if (Hat(CONTROLLER_A) == HAT_NE) {
		MotorF(motor12, 90);
		MotorF(motor22, 90);
		MotorF(motor11, 90);
		MotorF(motor21, 90);
	}
	else if (Hat(CONTROLLER_A) == HAT_NW) {
		MotorF(motor12, 90);
		MotorF(motor22, 90);
		MotorF(motor11, -90);
		MotorF(motor21, -90);
	}
	else if (Hat(CONTROLLER_A) == HAT_SW) {
		MotorF(motor12, -90);
		MotorF(motor22, -90);
		MotorF(motor11, -90);
		MotorF(motor21, -90);
	}
	else if (Hat(CONTROLLER_A) == HAT_SE) {
		MotorF(motor12, -90);
		MotorF(motor22, -90);
		MotorF(motor11, 90);
		MotorF(motor21, 90);
	}

	if (Button(CONTROLLER_A, 7)) {
		MotorF(motorLED, 90);
	}
	else if (Button(CONTROLLER_A, 8)) {
		MotorF(motorLED, -90);
	}
	else
		MotorS(motorLED);

	//if(Button(CONTROLLER_A, 9)) gyroCompensate(); //gyroTurn(45);
}