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