Rodrigo Miguez / Mbed 2 deprecated i2c_acelerometro

Dependencies:   BLE_API mbed nRF51822 circular_buffer

main.cpp

Committer:
agufal
Date:
2016-03-10
Revision:
11:27f2850b9388
Parent:
9:3708b94b2312
Child:
12:172acb80fcab

File content as of revision 11:27f2850b9388:

/*
 * Esto es para la placa Xtrinsic-Sense Board de element14, mas
 * concretamente para el acelerometro MMA8491Q
 */
#include "mbed.h"
#include "Acelerometro.h"
#include "AccelService.h"
#include "circular_buffer.h"

Serial pc(p9, p11);

int main() {
   
    Acelerometro acc;
    AccelService acc_service;
    circular_buffer<Vector> buffer(10);
   
    while(1) {
        
        pc.printf("-----------------------------------------\n");
        
        // Hacer un buffer circular para ir leyendo lo que tienes
        // Problema?: ahora los datos cambian un poco lento, por ejemplo para 
        // pasar de -1g a 1g tarda un par de segundos aunque el cambio haya sido rapido 
        buffer.push_back(acc.leer());
        
        // TODO Hacer esto en un hilo
        int x = 0, y = 0, z = 0;
        for (int i = 0; i < buffer.get_size(); i++){
            
            Vector v = buffer[i];
            
            x += v.x;
            y += v.y;
            z += v.z;
            
        }
        
        Vector media;
        
        media.x = x / buffer.get_size();
        media.y = y / buffer.get_size();
        media.z = z / buffer.get_size();
        
       /* if (media.x <= 1000 && media.x >= -1000) media.x = 0;
        if (media.y <= 1000 && media.y >= -1000) media.y = 0;
        if (media.z <= 1000 && media.z >= -1000) media.z = 0;*/
        
        acc_service.updateAccelState(media);
        
        pc.printf(" X: %i\n Y: %i\n Z: %i\n", media.x, media.y, media.z);      
        
    }
}