Gerardo Carmona / Mbed 2 deprecated AVC_Robot_Controled_Navigation

Dependencies:   FXOS8700CQ SDFileSystem mbed

Fork of AVC_Robot_Controled_Navigation by AVR Competition

Committer:
gerardo_carmona
Date:
Thu Oct 16 15:48:57 2014 +0000
Revision:
1:ab09b233da7b
Parent:
0:3a322aad8c88
v1.1

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 "FXOS8700CQ.h"
gerardo_carmona 1:ab09b233da7b 4 #include "magnometer.h"
gerardo_carmona 0:3a322aad8c88 5
gerardo_carmona 0:3a322aad8c88 6 // ----- I/O Pins -------------------------------------------------------------------
gerardo_carmona 0:3a322aad8c88 7 FXOS8700CQ fxos(PTE25, PTE24, FXOS8700CQ_SLAVE_ADDR1); // SDA, SCL, (addr << 1)
gerardo_carmona 0:3a322aad8c88 8
gerardo_carmona 0:3a322aad8c88 9 // ----- Others ---------------------------------------------------------------------
gerardo_carmona 0:3a322aad8c88 10 SRAWDATA accel_data;
gerardo_carmona 0:3a322aad8c88 11 SRAWDATA magn_data;
gerardo_carmona 0:3a322aad8c88 12
gerardo_carmona 0:3a322aad8c88 13 // ----- Variables ------------------------------------------------------------------
gerardo_carmona 0:3a322aad8c88 14 double mag_x, mag_y;
gerardo_carmona 1:ab09b233da7b 15 double avg_x, avg_y;
gerardo_carmona 1:ab09b233da7b 16 //double average;
gerardo_carmona 0:3a322aad8c88 17
gerardo_carmona 0:3a322aad8c88 18 // ----- Functions ------------------------------------------------------------------
gerardo_carmona 0:3a322aad8c88 19 double get_mag_x(){
gerardo_carmona 0:3a322aad8c88 20 fxos.get_data(&accel_data, &magn_data);
gerardo_carmona 0:3a322aad8c88 21 return magn_data.x;
gerardo_carmona 0:3a322aad8c88 22 }
gerardo_carmona 0:3a322aad8c88 23
gerardo_carmona 0:3a322aad8c88 24 double get_mag_y(){
gerardo_carmona 0:3a322aad8c88 25 fxos.get_data(&accel_data, &magn_data);
gerardo_carmona 0:3a322aad8c88 26 return magn_data.y;
gerardo_carmona 0:3a322aad8c88 27 }
gerardo_carmona 0:3a322aad8c88 28
gerardo_carmona 0:3a322aad8c88 29 double get_mag_angle(){
gerardo_carmona 0:3a322aad8c88 30 double _angle;
gerardo_carmona 0:3a322aad8c88 31 int16_t _x=0;
gerardo_carmona 0:3a322aad8c88 32 int16_t _y=0;
gerardo_carmona 0:3a322aad8c88 33
gerardo_carmona 0:3a322aad8c88 34 for (int i = 0; i < 10; i++){
gerardo_carmona 0:3a322aad8c88 35 fxos.get_data(&accel_data, &magn_data);
gerardo_carmona 0:3a322aad8c88 36 avg_x += magn_data.x;
gerardo_carmona 0:3a322aad8c88 37 avg_y += magn_data.y;
gerardo_carmona 0:3a322aad8c88 38 //pc.printf("X: %d \tY: %d\r\n", magn_data.x, magn_data.y);
gerardo_carmona 0:3a322aad8c88 39 //pc.printf("%d\n", magn_data.x);
gerardo_carmona 0:3a322aad8c88 40 }
gerardo_carmona 0:3a322aad8c88 41
gerardo_carmona 0:3a322aad8c88 42 avg_x = avg_x / 10;
gerardo_carmona 0:3a322aad8c88 43 avg_y = avg_y / 10;
gerardo_carmona 0:3a322aad8c88 44
gerardo_carmona 1:ab09b233da7b 45 //pc.printf("%d\n", avg_x);
gerardo_carmona 0:3a322aad8c88 46 _angle = atan2((double)_x, (double)_y) * 180.0 / 3.14159;
gerardo_carmona 0:3a322aad8c88 47 return _angle;
gerardo_carmona 0:3a322aad8c88 48 }