void main(){ set_tris_a(0x01); set_tris_b(0x00); setup_adc(adc_clock_internal); setup_adc_ports(AN0); Servo_init(48); //Coloca a +-90° los servos declarados while(true){ set_adc_channel(0); //RA0 sensor del dedo pulgar delay_us(20); sensor_pulgar = getc_adc(); sensor_pulgar = map(sensor_pulgar, 511, 1023, 0, 180); Servo_PWM(SERVO_DEDO_PULGAR, sensor_pulgar); } }
void motorTest(SmartCar * smartCar) { int16_t speed = 300; Motor_Enable(&smartCar->motor); Servo_init(&smartCar->servo); Servo_runAs(&smartCar->servo,0); while (1) { Servo_runAs(&smartCar->servo,0); smartCar->motor.sendPID = 1;//for bluetooth send start Motor_runAs(&smartCar->motor, speed); Segment_print(&smartCar->segment[0], smartCar->motor.targetSpeed); Segment_print(&smartCar->segment[1], Encoder_get(&smartCar->encoder)); Segment_print(&smartCar->segment[2], smartCar->motor.currentSpeed); switch (board.button.check()) { case 1: // fast if (speed < 2000) { speed = speed + 50; } else { speed = 2000; } break; case 2: // slow if (speed > -2000) { speed = speed - 50; } else { speed = -2000; } break; case 3: // reverse speed = -speed; break; case 4: //motor test end smartCar->motor.sendPID = 0;//for bluetooth send stop speed = 0; Motor_Disable(&smartCar->motor); Segment_print(&smartCar->segment[0], speed); Segment_print(&smartCar->segment[1], speed); return; } } }
int main(void) { IO_init(); Timer1_init(); ADC_init(); Motor_stop(); Servo_init(); LCD_init(); sei(); while(1) { inherent_function(); } while(1); return 0; }
int main(void) { bt_init(BAUD_RATE); Sonar_init(CONTINUOUS); Servo_init(MANUAL, SCAN_AND_LOCK); motorDriverInit(); while(1){ bt_getStr( tab ); // Get string from buffer if(strlen( tab )){ // If isn't empty... //bt_sendStr( tab ); // ...send it back. if ( strcmp(tab, "w") == 0 ) { driveForward(speed); } else if ( strcmp(tab, "s") == 0) { driveReverse(speed); } else if ( strcmp(tab, " ") == 0) { stop(); } else if ( strcmp(tab, "a") == 0) { driveReverseLeftTrack(40); driveForwardRightTrack(40); } else if ( strcmp(tab, "d") == 0) { driveForwardLeftTrack(40); driveReverseRightTrack(40); } else if ( strcmp(tab, "ServoScanAndLock") == 0) { ServoChangeMode(SWEEP); ServoChangeSweepMode(SCAN_AND_LOCK); } else if ( strcmp(tab, "ServoScanAndGo") == 0) { ServoChangeMode(SWEEP); ServoChangeSweepMode(SCAN_AND_GO); } else if ( strcmp(tab, "ServoCenter") == 0) { ServoChangeMode(MANUAL); ServoMoveByDegree(0); } else if ( strncmp(tab, "SonarStartMeas",14) == 0) { int new_deg = ParseIntNumber(tab,14,3); SonarStartMeas(new_deg); } else if ( strncmp(tab, "SonarGetDistance",16) == 0) { char buffor[12]; int new_deg = ParseIntNumber(tab,16,3); sprintf(buffor, "%04d,%04hu\n",new_deg,SonarGetDistance(new_deg)); bt_sendStr(buffor); } else if ( strcmp(tab, "e") == 0) { if (speed<=90){ speed+=10; } } else if ( strcmp(tab, "q") == 0) { if (speed>=10){ speed-=10; } } else if (strncmp(tab, "speed",5) == 0){ int new_speed = ParseIntNumber(tab,5,3); if (new_speed >= 0 && new_speed <= 100){ speed = new_speed; } } else if ( strncmp(tab, "SonarLockRange",14) == 0) { int new_range = ParseIntNumber(tab,14,3); ServoChangeLockRange(new_range); } } } };