da testare

Dependencies:   mbed

Fork of programmaACC by Unina_corse

Files at this revision

API Documentation at this revision

Comitter:
NdA994
Date:
Wed Apr 25 11:59:37 2018 +0000
Parent:
3:c9fbf54ed265
Commit message:
ProgrammaACC_daTestare;

Changed in this revision

MPU6050.h Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.lib Show diff for this revision Revisions of this file
header.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/MPU6050.h	Fri Mar 30 16:29:45 2018 +0000
+++ b/MPU6050.h	Wed Apr 25 11:59:37 2018 +0000
@@ -151,7 +151,7 @@
 
 // Specify sensor full scale
 int Gscale = GFS_250DPS;
-int Ascale = AFS_2G;
+int Ascale = AFS_4G;
 
 //Set up I2C, (SDA,SCL)
 I2C i2c(I2C_SDA, I2C_SCL);
@@ -442,7 +442,7 @@
   fifo_count = ((uint16_t)data[0] << 8) | data[1];
   packet_count = fifo_count/12;// How many sets of full gyro and accelerometer data for averaging
 
-  for (ii = 0; ii < packet_count; ii++) {
+/*  for (ii = 0; ii < packet_count; ii++) {
     int16_t accel_temp[3] = {0, 0, 0}, gyro_temp[3] = {0, 0, 0};
     readBytes(MPU6050_ADDRESS, FIFO_R_W, 12, &data[0]); // read data for averaging
     accel_temp[0] = (int16_t) (((int16_t)data[0] << 8) | data[1]  ) ;  // Form signed 16-bit integer for each sample in FIFO
@@ -459,8 +459,8 @@
     gyro_bias[1]  += (int32_t) gyro_temp[1];
     gyro_bias[2]  += (int32_t) gyro_temp[2];
             
-}
-    accel_bias[0] /= (int32_t) packet_count; // Normalize sums to get average count biases
+}*/
+/*    accel_bias[0] /= (int32_t) packet_count; // Normalize sums to get average count biases
     accel_bias[1] /= (int32_t) packet_count;
     accel_bias[2] /= (int32_t) packet_count;
     gyro_bias[0]  /= (int32_t) packet_count;
@@ -537,7 +537,7 @@
 // Output scaled accelerometer biases for manual subtraction in the main program
    dest2[0] = (float)accel_bias[0]/(float)accelsensitivity; 
    dest2[1] = (float)accel_bias[1]/(float)accelsensitivity;
-   dest2[2] = (float)accel_bias[2]/(float)accelsensitivity;
+   dest2[2] = (float)accel_bias[2]/(float)accelsensitivity;*/
 }
 
 
--- a/SDFileSystem.lib	Fri Mar 30 16:29:45 2018 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://os.mbed.com/teams/Unina_corse/code/SDFileSystemFunzionante/#23af2f852b5a
--- a/header.h	Fri Mar 30 16:29:45 2018 +0000
+++ b/header.h	Wed Apr 25 11:59:37 2018 +0000
@@ -1,8 +1,7 @@
 #include "mbed.h"
 #include <time.h>
-#define BLOCCO 1000
+#define BLOCCO 10
 
-//SDFileSystem sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd");
 Serial pc(USBTX,USBRX,9600);
 
 typedef struct{
--- a/main.cpp	Fri Mar 30 16:29:45 2018 +0000
+++ b/main.cpp	Wed Apr 25 11:59:37 2018 +0000
@@ -3,17 +3,13 @@
 #include <time.h>
 #include "MPU6050.h"
 
-int main()
-{
+int main(){
     i2c.frequency(400000);
     MPU6050 mpu6050;
     uint8_t whoami = mpu6050.readByte(MPU6050_ADDRESS, WHO_AM_I_MPU6050);  // Read WHO_AM_I register for MPU-6050
-    //pc.printf("I AM 0x%x\n\r", whoami); pc.printf("I SHOULD BE 0x68\n\r");
   
-    if (whoami == 0x68) // WHO_AM_I should always be 0x68
-    {  
-    //pc.printf("MPU6050 is online...");
-    //wait(1);
+    if (whoami == 0x68){  
+
      
         mpu6050.MPU6050SelfTest(SelfTest); // Start by performing self test and reporting values
     
@@ -45,14 +41,10 @@
     }
     
    while (true) {
-     // Read the WHO_AM_I register, this is a good test of communication
+    // Read the WHO_AM_I register, this is a good test of communication
     srand(time(NULL));
     int i;
     static const int off_set_a=400;
-    //time_t rawtime;
-    //struct tm* timeinfo;
-    //Timer temp3;
-    //temp3.start();
     for(i = 0; i < BLOCCO; i++){
        
         // If data ready bit set, all data registers have new data
@@ -60,25 +52,23 @@
                 mpu6050.readAccelData(accelCount);  // Read the x/y/z adc values
                 mpu6050.getAres();
     
-            // Now we'll calculate the accleration value into actual g's
-                vettore[i].x = (float)accelCount[0]*aRes - accelBias[0];  // get actual g value, this depends on scale being set
-                vettore[i].y = (float)accelCount[1]*aRes - accelBias[1];   
-                vettore[i].z = (float)accelCount[2]*aRes - accelBias[2];  
+                //Now we'll calculate the accleration value into actual g's
+                vettore[i].x = (float)accelCount[0]*aRes;  // get actual g value, this depends on scale being set
+                vettore[i].y = (float)accelCount[1]*aRes;   
+                vettore[i].z = (float)accelCount[2]*aRes;  
             
                 mpu6050.readGyroData(gyroCount);  // Read the x/y/z adc values
                 mpu6050.getGres();
  
-            // Calculate the gyro value into actual degrees per second
-                vettore[i].xx = (float)gyroCount[0]*gRes; // - gyroBias[0];  // get actual gyro value, this depends on scale being set
-                vettore[i].yy = (float)gyroCount[1]*gRes; // - gyroBias[1];  
-                vettore[i].zz = (float)gyroCount[2]*gRes; // - gyroBias[2];  
+                //Calculate the gyro value into actual degrees per second
+                vettore[i].xx = (float)gyroCount[0]*gRes;  // get actual gyro value, this depends on scale being set
+                vettore[i].yy = (float)gyroCount[1]*gRes;  
+                vettore[i].zz = (float)gyroCount[2]*gRes;  
                              
             }  
    
             pc.printf("%03.0f %03.0f %03.0f %03.0f %03.0f %03.0f\n\r",100*vettore[i].x+off_set_a,100*vettore[i].y+off_set_a,100*vettore[i].z+off_set_a,100*vettore[i].xx+off_set_a,100*vettore[i].yy+off_set_a,100*vettore[i].zz+off_set_a);
          
-        } 
-        //temp3.stop();
-        //pc.printf("Tempo impiegato per l'acquisizione di 1000 elementi: %f\n\r",temp3.read());     
+        }      
     }
 }