AVR Competition / Mbed 2 deprecated AVC_Robot_Controled_Navigation

Dependencies:   FXOS8700CQ SDFileSystem mbed

Committer:
gerardo_carmona
Date:
Thu Oct 16 01:59:21 2014 +0000
Revision:
0:3a322aad8c88
First release.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gerardo_carmona 0:3a322aad8c88 1 // ----- Libraries ------------------------------------------------------------------
gerardo_carmona 0:3a322aad8c88 2 #include "mbed.h"
gerardo_carmona 0:3a322aad8c88 3 #include "motors.h"
gerardo_carmona 0:3a322aad8c88 4
gerardo_carmona 0:3a322aad8c88 5 // ----- I/O Pins -------------------------------------------------------------------
gerardo_carmona 0:3a322aad8c88 6 // MOTORS (Control)
gerardo_carmona 0:3a322aad8c88 7 DigitalOut dir_left(D7);
gerardo_carmona 0:3a322aad8c88 8 DigitalOut dir_right(D8);
gerardo_carmona 0:3a322aad8c88 9 PwmOut pwm_left(D9);
gerardo_carmona 0:3a322aad8c88 10 PwmOut pwm_right(D10);
gerardo_carmona 0:3a322aad8c88 11
gerardo_carmona 0:3a322aad8c88 12 // ----- Functions ------------------------------------------------------------------
gerardo_carmona 0:3a322aad8c88 13 void move_motors(char _move_command, int _power_left, int _power_right){
gerardo_carmona 0:3a322aad8c88 14 switch (_move_command){
gerardo_carmona 0:3a322aad8c88 15 case MOVE_FWD:
gerardo_carmona 0:3a322aad8c88 16 motor_fwd(_power_left, _power_right);
gerardo_carmona 0:3a322aad8c88 17 break;
gerardo_carmona 0:3a322aad8c88 18 case MOVE_REV:
gerardo_carmona 0:3a322aad8c88 19 motor_rev(_power_left, _power_right);
gerardo_carmona 0:3a322aad8c88 20 break;
gerardo_carmona 0:3a322aad8c88 21 case MOVE_LEF:
gerardo_carmona 0:3a322aad8c88 22 motor_left(_power_left, _power_right);
gerardo_carmona 0:3a322aad8c88 23 break;
gerardo_carmona 0:3a322aad8c88 24 case MOVE_RIG:
gerardo_carmona 0:3a322aad8c88 25 motor_right(_power_left, _power_right);
gerardo_carmona 0:3a322aad8c88 26 break;
gerardo_carmona 0:3a322aad8c88 27 case MOVE_STO:
gerardo_carmona 0:3a322aad8c88 28 motor_stop();
gerardo_carmona 0:3a322aad8c88 29 break;
gerardo_carmona 0:3a322aad8c88 30 //case MOVE_90L:
gerardo_carmona 0:3a322aad8c88 31 // move_90(1);
gerardo_carmona 0:3a322aad8c88 32 // break;
gerardo_carmona 0:3a322aad8c88 33 //case MOVE_90R:
gerardo_carmona 0:3a322aad8c88 34 // move_90(2);
gerardo_carmona 0:3a322aad8c88 35 // break;
gerardo_carmona 0:3a322aad8c88 36 default:
gerardo_carmona 0:3a322aad8c88 37 // bt.printf("%f\r\n", get_mag_angle());
gerardo_carmona 0:3a322aad8c88 38 break;
gerardo_carmona 0:3a322aad8c88 39 }
gerardo_carmona 0:3a322aad8c88 40 }
gerardo_carmona 0:3a322aad8c88 41
gerardo_carmona 0:3a322aad8c88 42 void motor_fwd(int _power_left, int _power_right){
gerardo_carmona 0:3a322aad8c88 43 dir_left = 1;
gerardo_carmona 0:3a322aad8c88 44 dir_right = 1;
gerardo_carmona 0:3a322aad8c88 45 pwm_left = (float)_power_left/100;
gerardo_carmona 0:3a322aad8c88 46 pwm_right = (float)_power_right/100;
gerardo_carmona 0:3a322aad8c88 47 //pc.printf("FWD\n");
gerardo_carmona 0:3a322aad8c88 48 }
gerardo_carmona 0:3a322aad8c88 49
gerardo_carmona 0:3a322aad8c88 50 void motor_rev(int _power_left, int _power_right){
gerardo_carmona 0:3a322aad8c88 51 dir_left = 0;
gerardo_carmona 0:3a322aad8c88 52 dir_right = 0;
gerardo_carmona 0:3a322aad8c88 53 pwm_left = (float)_power_left/100;
gerardo_carmona 0:3a322aad8c88 54 pwm_right = (float)_power_right/100;
gerardo_carmona 0:3a322aad8c88 55 //pc.printf("REV\n");
gerardo_carmona 0:3a322aad8c88 56 }
gerardo_carmona 0:3a322aad8c88 57
gerardo_carmona 0:3a322aad8c88 58 void motor_left(int _power_left, int _power_right){
gerardo_carmona 0:3a322aad8c88 59 dir_left = 0;
gerardo_carmona 0:3a322aad8c88 60 dir_right = 1;
gerardo_carmona 0:3a322aad8c88 61 pwm_left = (float)_power_left/100;
gerardo_carmona 0:3a322aad8c88 62 pwm_right = (float)_power_right/100;
gerardo_carmona 0:3a322aad8c88 63 //pc.printf("LEFT\n");
gerardo_carmona 0:3a322aad8c88 64 }
gerardo_carmona 0:3a322aad8c88 65
gerardo_carmona 0:3a322aad8c88 66 void motor_right(int _power_left, int _power_right){
gerardo_carmona 0:3a322aad8c88 67 dir_left = 1;
gerardo_carmona 0:3a322aad8c88 68 dir_right = 0;
gerardo_carmona 0:3a322aad8c88 69 pwm_left = (float)_power_left/100;
gerardo_carmona 0:3a322aad8c88 70 pwm_right = (float)_power_right/100;
gerardo_carmona 0:3a322aad8c88 71 //pc.printf("RIGHT\n");
gerardo_carmona 0:3a322aad8c88 72 }
gerardo_carmona 0:3a322aad8c88 73
gerardo_carmona 0:3a322aad8c88 74 void motor_stop(){
gerardo_carmona 0:3a322aad8c88 75 dir_left = 1;
gerardo_carmona 0:3a322aad8c88 76 dir_right = 1;
gerardo_carmona 0:3a322aad8c88 77 pwm_left = 0;
gerardo_carmona 0:3a322aad8c88 78 pwm_right = 0;
gerardo_carmona 0:3a322aad8c88 79 //pc.printf("STOP\n");
gerardo_carmona 0:3a322aad8c88 80 }