int main(void) { char ch; LockoutProtection(); InitializeMCU(); initUART(); MoveStraight(); /* while(1) { UARTprintf("\nROBZ DEMO\n"); UARTprintf(" 0=UART Demo\n 1=Motor Demo\n"); UARTprintf(" 2=Servo Demo\n 3=Line Sensor\n"); UARTprintf(" 4=IR Sensor Demo\n 5=Encoders Demo\n"); UARTprintf(" 6=MoveStraight\n"); UARTprintf(">> "); ch = getc(); putc(ch); UARTprintf("\n"); if (ch == '0') { UARTprintf("\nUART Demo\n"); uartDemo(); } else if (ch == '1') { UARTprintf("\nMotor Demo\n"); initMotors(); motorDemo(); } else if (ch == '2') { UARTprintf("\nServo Demo\n"); initServo(); servoDemo(); } else if (ch == '3') { UARTprintf("\nLine Sensor Demo\n"); initLineSensor(); lineSensorDemo(); } else if (ch == '4') { UARTprintf("\nIR Sensor Demo\n"); initIRSensor(); IRSensorDemo(); } else if (ch == '5') { UARTprintf("\nEncoders Demo\n"); initEncoders(); encoderDemo(); } else if (ch == '6') { UARTprintf("\nMove Straight\n"); MoveStraight(); } } */ }
// //Initialization method // void init(void) { //Necessary inits for chip LockoutProtection(); InitializeMCU(); //Various driver inits //initUART SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); UARTStdioInit(0); //motors InitializeMotors(false, false); }
int main(void) { char ch; LockoutProtection(); InitializeMCU(); initUART(); while(1) { UARTprintf("\nRAS Demo for Robotathon 2012\n"); UARTprintf(" 0=UART Demo\n 1=Motor Demo\n"); UARTprintf(" 2=Servo Demo\n 3=Line Sensor\n"); UARTprintf(" 4=IR Sensor Demo\n 5=Encoders Demo\n"); UARTprintf(">> "); ch = getc(); putc(ch); UARTprintf("\n"); if (ch == '0') { UARTprintf("\nUART Demo\n"); uartDemo(); } else if (ch == '1') { UARTprintf("\nMotor Demo\n"); initMotors(); motorDemo(); } else if (ch == '2') { UARTprintf("\nServo Demo\n"); initServo(); servoDemo(); } else if (ch == '3') { UARTprintf("\nLine Sensor Demo\n"); initLineSensor(); lineSensorDemo(); } else if (ch == '4') { UARTprintf("\nIR Sensor Demo\n"); initIRSensor(); IRSensorDemo(); } else if (ch == '5') { UARTprintf("\nEncoders Demo\n"); initEncoders(); encoderDemo(); } } }
void InitBot(void) { //Call initialization functions. LockoutProtection(); InitializeMCU(); initUART(); InitializeEncoders(true,false); PresetEncoderCounts(0,0); InitializeMotors(true,true); InitializeServos(); InitializeLineSensor(); SetDischargeTime(350); //Modified for 4 ADC Ports (assuming all are IR). initADCPorts(); //Initialize state variables. angle = 90; shooting = false; rotate = rotate_time; move = move_time; IRtrig = false; lose_obj = false; //Pin PA3 is James. 0xff is off; 0x00 is on. GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_3); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0xff); //Pin PA2 is the trigger; set the pin to perform weak pull-up (not open-drain). SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2); GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_2,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU); //Setup an interrupt on pin PA2 (flipPancake). IntEnable(INT_GPIOA); GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_2,GPIO_FALLING_EDGE); GPIOPinIntEnable(GPIO_PORTA_BASE, GPIO_PIN_2); }
int main(void){ char i; unsigned char data[16]; short wiichuck[7], xinit=0, yinit=0, l_vel, r_vel; int xpow, ypow; LockoutProtection(); InitializeMCU(); InitializeUART(); InitializeI2C(); InitializeServos(); SetServoPosition(SERVO_0, 140); InitializeMotors(true, false); InitializeEncoders(true, false); // UARTprintf("Initializing Nunchuck\n\n"); // I2CSend(0x52<<1, 2, 0x40, 0x00); // Wait(25); init_nunchuck(); // Wireless Nunchucks Zero @ 128 xinit = yinit = 128; while(1){ //Start Recalculating Values Wait(1); I2CSend(0x52<<1, 1, 0x00); Wait(1); I2CSend(0x52<<1, 1, 0x00); Wait(1); I2CSend(0x52<<1, 1, 0x00); if (I2CMasterErr(I2C0_MASTER_BASE) != I2C_MASTER_ERR_NONE){ UARTprintf("Send Zero Error:\n"); switch(I2CMasterErr(I2C0_MASTER_BASE)){ case I2C_MASTER_ERR_ADDR_ACK: UARTprintf(" I2C_MASTER_ERR_ADDR_ACK\n"); break; case I2C_MASTER_ERR_DATA_ACK: UARTprintf(" I2C_MASTER_ERR_DATA_ACK\n"); break; case I2C_MASTER_ERR_ARB_LOST: UARTprintf(" I2C_MASTER_ERR_ARB_LOST\n"); break; default: UARTprintf("WTF: %d\n", I2CMasterErr(I2C0_MASTER_BASE)); } // Reinitialize Nunchuck on error init_nunchuck(); }else{ Wait(1); I2CRecieve(0x52<<1, data, 6); // Nunchuck data is 6 bytes, but for whatever reason, MEMOREX Wireless Nunchuck wants to send 8... if (I2CMasterErr(I2C0_MASTER_BASE) != I2C_MASTER_ERR_NONE){ UARTprintf("Send Zero Error:\n"); switch(I2CMasterErr(I2C0_MASTER_BASE)){ case I2C_MASTER_ERR_ADDR_ACK: UARTprintf(" I2C_MASTER_ERR_ADDR_ACK\n"); break; case I2C_MASTER_ERR_DATA_ACK: UARTprintf(" I2C_MASTER_ERR_DATA_ACK\n"); break; case I2C_MASTER_ERR_ARB_LOST: UARTprintf(" I2C_MASTER_ERR_ARB_LOST\n"); break; } // Reinitialize Nunchuck on error init_nunchuck(); }else{ //for(i=0; i<6; i++) // data[i] = (data[i] ^ 0x17) + 0x17; // Nintendo decided to encrypt thir data... // Save Joystick Data wiichuck[0] = data[1]; // X Axis Joystick wiichuck[1] = data[0]; // Y Axis Joystick wiichuck[2] = (((unsigned short) data[2]) << 2) + (((unsigned short) data[5]) & (3<<2)); // X Axis Accel wiichuck[3] = (((unsigned short) data[3]) << 2) + (((unsigned short) data[5]) & (3<<4)); // Y Axis Accel wiichuck[4] = (((unsigned short) data[4]) << 2) + (((unsigned short) data[5]) & (3<<6)); // Z Axis Accel wiichuck[5] = data[5] & (1 << 1) ? 0 : 1; //'C' Button wiichuck[6] = data[5] & (1 << 0) ? 0 : 1; //'Z' Button //if (xinit == 0 && yinit == 0){ // xinit = wiichuck[0]-127; // yinit = wiichuck[1]-127; //}else{ xpow = (wiichuck[0]-xinit)/2; ypow = (wiichuck[1]-yinit)/2; l_vel = (xpow - ypow)*2; r_vel = (xpow + ypow)*2; l_vel = l_vel > 127 ? 127 : l_vel; r_vel = r_vel > 127 ? 127 : r_vel; l_vel = l_vel < -127 ? -127 : l_vel; r_vel = r_vel < -127 ? -127 : r_vel; //UARTprintf("X: %d\tY: %d\n", xpow*2, ypow*2); SetMotorPowers(l_vel / (wiichuck[5]==0 ? 2 : 1), r_vel / (wiichuck[5]==0 ? 2 : 1)); UARTprintf("Motor L: %d\tMotor R: %d\n", l_vel, r_vel); SetServoPosition(SERVO_0, wiichuck[6]==1 ? 255 : 140); UARTprintf("Nunchuck Data:\n"); for(i=0; i<7; i++){ UARTprintf(" %d\n", wiichuck[i]); }NL; Wait(100); } } } }
int main(void) { LockoutProtection(); InitializeMCU(); //init uart SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1); UARTStdioInit(0); LED_Init(); Jumper_Init(); ADC_Init(); Sonar_Init(); usemotors = Jumper_Value & 0x8; if ((Jumper_Value & 0x7) == 0x1) { if (usemotors) { Motor_Init(false,true); Motor_Set(127,127); } avoid_sonar(0); avoid_ir(filtered_ir); for (;;); } if ((Jumper_Value & 0x7) == 0x2) { Travel_Init(usemotors); Travel_Go(FULL_SPEED); for (;;); } if ((Jumper_Value & 0x7) == 0x3) { if (usemotors) { Motor_Init(false,true); Motor_Set(127,127); } for (;;); } //if no jumpers are set, enter debug mode Encoder_Init(true,false); for (;;c++) { ADC_Background_Read(0); Sonar_Background_Read(0); Encoder_Background_Read(0); Jumper_Read(); UARTprintf("ADC[%3d %3d %3d %3d %3d %3d %3d %3d] S[%7d] E[%3d %3d] J[%1x] c:%d\n", ADC_Values[0],ADC_Values[1],ADC_Values[2],ADC_Values[3],ADC_Values[4],ADC_Values[5],ADC_Values[6],ADC_Values[7], Sonar_Value, Encoder_Values[0],Encoder_Values[1], Jumper_Value, c ); LED_Set(LED_0,c); LED_Set(LED_1,c+64); LED_Set(LED_2,c+128); LED_Set(LED_3,c+192); WaitUS(20000); } }