first

Dependencies:   MPU6050_SIM5320_TEST

Committer:
suads
Date:
Thu Nov 09 15:00:04 2017 +0000
Revision:
0:79959cf2cc3e
commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suads 0:79959cf2cc3e 1 #include "mbed.h"
suads 0:79959cf2cc3e 2 #include "MPU6050.h"
suads 0:79959cf2cc3e 3 #include "I2Cdev.h"
suads 0:79959cf2cc3e 4 #include <CaseFsm.h>
suads 0:79959cf2cc3e 5 #include <CaseEvents.h>
suads 0:79959cf2cc3e 6 #include <Fsm.h>
suads 0:79959cf2cc3e 7 #include <Events.h>
suads 0:79959cf2cc3e 8 #include "MFRC522.h"
suads 0:79959cf2cc3e 9
suads 0:79959cf2cc3e 10 #include "log.h"
suads 0:79959cf2cc3e 11 #include "DataLogger.h"
suads 0:79959cf2cc3e 12
suads 0:79959cf2cc3e 13 #define CURRENT_TIME 1510164886
suads 0:79959cf2cc3e 14
suads 0:79959cf2cc3e 15 #define SPI_MOSI PA_7
suads 0:79959cf2cc3e 16 #define SPI_MISO PA_6
suads 0:79959cf2cc3e 17 #define SPI_SCK PA_5
suads 0:79959cf2cc3e 18 #define SPI_CS PA_8
suads 0:79959cf2cc3e 19
suads 0:79959cf2cc3e 20
suads 0:79959cf2cc3e 21
suads 0:79959cf2cc3e 22
suads 0:79959cf2cc3e 23 int cbx[20];
suads 0:79959cf2cc3e 24 int cby[20];
suads 0:79959cf2cc3e 25 int cbz[20];
suads 0:79959cf2cc3e 26
suads 0:79959cf2cc3e 27
suads 0:79959cf2cc3e 28
suads 0:79959cf2cc3e 29 DigitalOut rfidpower(PA_12);
suads 0:79959cf2cc3e 30
suads 0:79959cf2cc3e 31 int x=0;
suads 0:79959cf2cc3e 32
suads 0:79959cf2cc3e 33 DigitalOut led1(LED1);
suads 0:79959cf2cc3e 34 //Serial pc(USBTX,USBRX);
suads 0:79959cf2cc3e 35 MPU6050 mpu;
suads 0:79959cf2cc3e 36 bool XnegMD, XposMD, YnegMD, YposMD, ZnegMD, ZposMD;
suads 0:79959cf2cc3e 37 int8_t threshold;
suads 0:79959cf2cc3e 38 bool zero_detect;
suads 0:79959cf2cc3e 39 float temp;
suads 0:79959cf2cc3e 40
suads 0:79959cf2cc3e 41 //void flip(){test=1;}
suads 0:79959cf2cc3e 42 Fsm* motionFsm;
suads 0:79959cf2cc3e 43 CaseFsm* caseFsm;
suads 0:79959cf2cc3e 44 SwitchPosition switchPosition;
suads 0:79959cf2cc3e 45 RFIDEvent rfidEvent;
suads 0:79959cf2cc3e 46 TimerEnd timerEnd;
suads 0:79959cf2cc3e 47 Move move;
suads 0:79959cf2cc3e 48 Stop stop;
suads 0:79959cf2cc3e 49 uint8_t print=0;
suads 0:79959cf2cc3e 50 //#include "PinDetect.h"
suads 0:79959cf2cc3e 51
suads 0:79959cf2cc3e 52 InterruptIn button1(PD_2);
suads 0:79959cf2cc3e 53 InterruptIn button2(PC_11);
suads 0:79959cf2cc3e 54 InterruptIn button3(PC_10);
suads 0:79959cf2cc3e 55 InterruptIn button4(PC_12);//PRINT
suads 0:79959cf2cc3e 56
suads 0:79959cf2cc3e 57
suads 0:79959cf2cc3e 58 InterruptIn mpuInterrupt(PB_5);
suads 0:79959cf2cc3e 59
suads 0:79959cf2cc3e 60 volatile uint8_t test = 0;
suads 0:79959cf2cc3e 61 volatile uint8_t mot=0;
suads 0:79959cf2cc3e 62
suads 0:79959cf2cc3e 63 bool flag = false;
suads 0:79959cf2cc3e 64 bool DeviceIsFull = false;
suads 0:79959cf2cc3e 65
suads 0:79959cf2cc3e 66 void button1PressedCallback()
suads 0:79959cf2cc3e 67 {
suads 0:79959cf2cc3e 68 // printf("button1\n");
suads 0:79959cf2cc3e 69 caseFsm->handle(switchPosition);
suads 0:79959cf2cc3e 70 }
suads 0:79959cf2cc3e 71
suads 0:79959cf2cc3e 72 void button2PressedCallback()
suads 0:79959cf2cc3e 73 {
suads 0:79959cf2cc3e 74 //printf("button2\n");
suads 0:79959cf2cc3e 75 caseFsm->handle(rfidEvent);
suads 0:79959cf2cc3e 76
suads 0:79959cf2cc3e 77 }
suads 0:79959cf2cc3e 78 void button3PressedCallback()
suads 0:79959cf2cc3e 79 {
suads 0:79959cf2cc3e 80 //printf("button3\n");
suads 0:79959cf2cc3e 81 caseFsm->handle(timerEnd);
suads 0:79959cf2cc3e 82
suads 0:79959cf2cc3e 83 }
suads 0:79959cf2cc3e 84
suads 0:79959cf2cc3e 85 void button4PressedCallback()
suads 0:79959cf2cc3e 86 {
suads 0:79959cf2cc3e 87 print=1;
suads 0:79959cf2cc3e 88
suads 0:79959cf2cc3e 89 }
suads 0:79959cf2cc3e 90
suads 0:79959cf2cc3e 91 void mpuInterruptCallback()
suads 0:79959cf2cc3e 92 {
suads 0:79959cf2cc3e 93 test=1;
suads 0:79959cf2cc3e 94
suads 0:79959cf2cc3e 95 }
suads 0:79959cf2cc3e 96
suads 0:79959cf2cc3e 97 void getXYZMotions()
suads 0:79959cf2cc3e 98 {
suads 0:79959cf2cc3e 99 wait(0.1);
suads 0:79959cf2cc3e 100 uint8_t motionByte = mpu.readThisByte(MPU6050_RA_MOT_DETECT_STATUS);
suads 0:79959cf2cc3e 101 // motionLog.motionByte = motionByte;
suads 0:79959cf2cc3e 102 //motionLog.timeStamp = time(NULL);
suads 0:79959cf2cc3e 103 //mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
suads 0:79959cf2cc3e 104 uint8_t b;
suads 0:79959cf2cc3e 105 bool zero = false;
suads 0:79959cf2cc3e 106 char x,y,z;
suads 0:79959cf2cc3e 107 int mx=0;
suads 0:79959cf2cc3e 108 int my=0;
suads 0:79959cf2cc3e 109 int mz=0;
suads 0:79959cf2cc3e 110 x=y=z='0';
suads 0:79959cf2cc3e 111 for(int i = 0; i<=7; i++) {
suads 0:79959cf2cc3e 112 b = motionByte & (1<<i);
suads 0:79959cf2cc3e 113 if(i==0 && b==1) {
suads 0:79959cf2cc3e 114 //time_t sec = time(NULL);
suads 0:79959cf2cc3e 115 //printf("Current time is: %s\r\n", ctime(&sec));
suads 0:79959cf2cc3e 116 zero = true;
suads 0:79959cf2cc3e 117 printf("ZERO MOTION detected.\r\n");
suads 0:79959cf2cc3e 118 //pc.printf(" %c %c %c | ",x,y,z);
suads 0:79959cf2cc3e 119 //pc.printf("%d;%d;%d;%d;%d;%d ZERO DETECTED\r\n",ax,ay,az,gx,gy,gz);
suads 0:79959cf2cc3e 120 }
suads 0:79959cf2cc3e 121 if(i==1 && b==2) {
suads 0:79959cf2cc3e 122 printf("This should not happen :).\r\n");
suads 0:79959cf2cc3e 123 }
suads 0:79959cf2cc3e 124 if(i==6 && b==64) {
suads 0:79959cf2cc3e 125 x='+';
suads 0:79959cf2cc3e 126 mx=1;
suads 0:79959cf2cc3e 127 printf("X POSITIVE motion detected.\r\n");
suads 0:79959cf2cc3e 128 }
suads 0:79959cf2cc3e 129 if(i==7 && b==128) {
suads 0:79959cf2cc3e 130 x='-';
suads 0:79959cf2cc3e 131 mx=1;
suads 0:79959cf2cc3e 132 printf("X NEGATIVE motion detected.\r\n");
suads 0:79959cf2cc3e 133 }
suads 0:79959cf2cc3e 134 if(i==4 && b==16) {
suads 0:79959cf2cc3e 135 y='+';
suads 0:79959cf2cc3e 136 my=1;
suads 0:79959cf2cc3e 137 printf("Y POSITIVE motion detected.\r\n");
suads 0:79959cf2cc3e 138 }
suads 0:79959cf2cc3e 139 if(i==5 && b==32) {
suads 0:79959cf2cc3e 140 y='-';
suads 0:79959cf2cc3e 141 my=1;
suads 0:79959cf2cc3e 142 printf("Y NEGATIVE motion detected.\r\n");
suads 0:79959cf2cc3e 143 }
suads 0:79959cf2cc3e 144 if(i==2 && b==4) {
suads 0:79959cf2cc3e 145 z='+';
suads 0:79959cf2cc3e 146 mz=1;
suads 0:79959cf2cc3e 147 printf("Z POSITIVE motion detected.\r\n");
suads 0:79959cf2cc3e 148 }
suads 0:79959cf2cc3e 149 if(i==3 && b==8) {
suads 0:79959cf2cc3e 150 z='-';
suads 0:79959cf2cc3e 151 mz=1;
suads 0:79959cf2cc3e 152 printf("Z NEGATIVE motion detected.\r\n");
suads 0:79959cf2cc3e 153 }
suads 0:79959cf2cc3e 154 }
suads 0:79959cf2cc3e 155 printf("%d %d %d\r\n",mx,my,mz);
suads 0:79959cf2cc3e 156
suads 0:79959cf2cc3e 157
suads 0:79959cf2cc3e 158 int numX, numY, numZ;
suads 0:79959cf2cc3e 159 numX=numY=numZ=0;
suads 0:79959cf2cc3e 160 for(int i=0; i<=19; i++) {
suads 0:79959cf2cc3e 161 if(cbx[i]!=0) {
suads 0:79959cf2cc3e 162 numX++;
suads 0:79959cf2cc3e 163 }
suads 0:79959cf2cc3e 164 if(cby[i]!=0) {
suads 0:79959cf2cc3e 165 numY++;
suads 0:79959cf2cc3e 166 }
suads 0:79959cf2cc3e 167 if(cbz[i]!=0) {
suads 0:79959cf2cc3e 168 numZ++;
suads 0:79959cf2cc3e 169 }
suads 0:79959cf2cc3e 170 }
suads 0:79959cf2cc3e 171 //pc.printf("Motion sum: %d,%d,%d\r\n",numX,numY,numZ);
suads 0:79959cf2cc3e 172 if(numX<=10) {
suads 0:79959cf2cc3e 173 numX=0;
suads 0:79959cf2cc3e 174 } else
suads 0:79959cf2cc3e 175 numX=1;
suads 0:79959cf2cc3e 176
suads 0:79959cf2cc3e 177 if(numY<=10) {
suads 0:79959cf2cc3e 178 numY=0;
suads 0:79959cf2cc3e 179 } else
suads 0:79959cf2cc3e 180 numY=1;
suads 0:79959cf2cc3e 181
suads 0:79959cf2cc3e 182 if(numZ<=10) {
suads 0:79959cf2cc3e 183 numZ=0;
suads 0:79959cf2cc3e 184 } else
suads 0:79959cf2cc3e 185 numZ=1;
suads 0:79959cf2cc3e 186
suads 0:79959cf2cc3e 187 /*
suads 0:79959cf2cc3e 188 //motionFsmLog.timeStamp = time(NULL);
suads 0:79959cf2cc3e 189 if(numX!=0 || numY!=0 || numZ!=0) {
suads 0:79959cf2cc3e 190 numX=1;
suads 0:79959cf2cc3e 191 numY=1;
suads 0:79959cf2cc3e 192 numZ=1;
suads 0:79959cf2cc3e 193 motionFsm->handle(move);
suads 0:79959cf2cc3e 194 if(mfl[mfl.get_size()-1].motionState != 1) {
suads 0:79959cf2cc3e 195 motionFsmLog.motionState = 1;
suads 0:79959cf2cc3e 196 mfl.push_back(motionFsmLog);
suads 0:79959cf2cc3e 197 }
suads 0:79959cf2cc3e 198 } else {
suads 0:79959cf2cc3e 199 motionFsm->handle(stop);
suads 0:79959cf2cc3e 200 if(mfl[mfl.get_size()-1].motionState != 0) {
suads 0:79959cf2cc3e 201 motionFsmLog.motionState = 0;
suads 0:79959cf2cc3e 202 mfl.push_back(motionFsmLog);
suads 0:79959cf2cc3e 203 }
suads 0:79959cf2cc3e 204 }
suads 0:79959cf2cc3e 205
suads 0:79959cf2cc3e 206 //pc.printf("***************************\r\n");
suads 0:79959cf2cc3e 207 //pc.printf("%d %d %d\r\n",numX,numY,numZ);
suads 0:79959cf2cc3e 208 float fsmStateValues[3] = {numX,numY,numZ};
suads 0:79959cf2cc3e 209
suads 0:79959cf2cc3e 210
suads 0:79959cf2cc3e 211 */
suads 0:79959cf2cc3e 212
suads 0:79959cf2cc3e 213 }
suads 0:79959cf2cc3e 214
suads 0:79959cf2cc3e 215
suads 0:79959cf2cc3e 216
suads 0:79959cf2cc3e 217
suads 0:79959cf2cc3e 218
suads 0:79959cf2cc3e 219
suads 0:79959cf2cc3e 220
suads 0:79959cf2cc3e 221 MFRC522 RfChip(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, PB_4);
suads 0:79959cf2cc3e 222
suads 0:79959cf2cc3e 223 int main()
suads 0:79959cf2cc3e 224 {
suads 0:79959cf2cc3e 225
suads 0:79959cf2cc3e 226 rfidpower=1;
suads 0:79959cf2cc3e 227
suads 0:79959cf2cc3e 228 Log mojlog;
suads 0:79959cf2cc3e 229 DataLogger <Log> mojlogger;
suads 0:79959cf2cc3e 230 mojlogger.print();
suads 0:79959cf2cc3e 231 mojlogger.savelog(mojlog);
suads 0:79959cf2cc3e 232 mojlogger.print();
suads 0:79959cf2cc3e 233
suads 0:79959cf2cc3e 234 CaseFsm caseF;
suads 0:79959cf2cc3e 235 caseFsm = &caseF;
suads 0:79959cf2cc3e 236
suads 0:79959cf2cc3e 237 //mpuInterrupt.mode(PullUp);
suads 0:79959cf2cc3e 238 button1.mode(PullUp);
suads 0:79959cf2cc3e 239 button2.mode(PullUp);
suads 0:79959cf2cc3e 240 button3.mode(PullUp);
suads 0:79959cf2cc3e 241 button4.mode(PullUp); //print
suads 0:79959cf2cc3e 242 button4.fall(button4PressedCallback);
suads 0:79959cf2cc3e 243 button3.fall(button3PressedCallback);
suads 0:79959cf2cc3e 244 button2.fall(button2PressedCallback);
suads 0:79959cf2cc3e 245 button1.fall(&button1PressedCallback);
suads 0:79959cf2cc3e 246
suads 0:79959cf2cc3e 247 //mpuInterrupt.fall(mpuInterruptCallback);
suads 0:79959cf2cc3e 248
suads 0:79959cf2cc3e 249 RfChip.PCD_Init();
suads 0:79959cf2cc3e 250 wait(1);
suads 0:79959cf2cc3e 251
suads 0:79959cf2cc3e 252
suads 0:79959cf2cc3e 253
suads 0:79959cf2cc3e 254
suads 0:79959cf2cc3e 255
suads 0:79959cf2cc3e 256
suads 0:79959cf2cc3e 257 ////////////////////MPU INTERUPT RADI//////////////////////////////////////
suads 0:79959cf2cc3e 258
suads 0:79959cf2cc3e 259 mpuInterrupt.fall(mpuInterruptCallback);
suads 0:79959cf2cc3e 260 wait(1);
suads 0:79959cf2cc3e 261 mpu.calibrate(accelBias, gyroBias);
suads 0:79959cf2cc3e 262 mpu.initialize();
suads 0:79959cf2cc3e 263 mpu.setSleepEnabled(0);
suads 0:79959cf2cc3e 264 wait(1);
suads 0:79959cf2cc3e 265 mpu.setIntFreefallEnabled(1);
suads 0:79959cf2cc3e 266 mpu.setIntZeroMotionEnabled(1);
suads 0:79959cf2cc3e 267 mpu.setIntMotionEnabled(1);
suads 0:79959cf2cc3e 268 printf("Setting mpu parameters...\r\n");
suads 0:79959cf2cc3e 269 mpu.setMotionDetectionThreshold(1);
suads 0:79959cf2cc3e 270 mpu.setMotionDetectionDuration(15);
suads 0:79959cf2cc3e 271 mpu.setZeroMotionDetectionThreshold(1);
suads 0:79959cf2cc3e 272 mpu.setZeroMotionDetectionDuration(10);
suads 0:79959cf2cc3e 273
suads 0:79959cf2cc3e 274
suads 0:79959cf2cc3e 275 /////////////////////////////////////////////////////////////////////////////
suads 0:79959cf2cc3e 276 /*
suads 0:79959cf2cc3e 277 mpu.calibrate(accelBias, gyroBias);
suads 0:79959cf2cc3e 278 mpu.initialize();
suads 0:79959cf2cc3e 279 mpu.setSleepEnabled(0);
suads 0:79959cf2cc3e 280 mpu.setIntDMPEnabled(1);
suads 0:79959cf2cc3e 281
suads 0:79959cf2cc3e 282 uint8_t pinValue = mpu.getIntEnabled();
suads 0:79959cf2cc3e 283 printf("Is int enabled? : %d\n", pinValue);
suads 0:79959cf2cc3e 284 printf("MPU6050 testing connection \n");
suads 0:79959cf2cc3e 285
suads 0:79959cf2cc3e 286
suads 0:79959cf2cc3e 287 wait(2);
suads 0:79959cf2cc3e 288 bool mpu6050TestResult = mpu.testConnection();
suads 0:79959cf2cc3e 289 if(mpu6050TestResult) {
suads 0:79959cf2cc3e 290 printf("MPU6050 test passed \n");
suads 0:79959cf2cc3e 291 } else {
suads 0:79959cf2cc3e 292 printf("MPU6050 test failed \n");
suads 0:79959cf2cc3e 293 }
suads 0:79959cf2cc3e 294
suads 0:79959cf2cc3e 295
suads 0:79959cf2cc3e 296 mpu.setIntEnabled(1);
suads 0:79959cf2cc3e 297 //mpu.setIntFreefallEnabled(1);
suads 0:79959cf2cc3e 298 //mpu.setIntZeroMotionEnabled(0);
suads 0:79959cf2cc3e 299 //mpu.setIntMotionEnabled(1);
suads 0:79959cf2cc3e 300 mpu.setDHPFMode(1);
suads 0:79959cf2cc3e 301
suads 0:79959cf2cc3e 302 //*******************************************************************************************************************************
suads 0:79959cf2cc3e 303
suads 0:79959cf2cc3e 304 printf("\n\n\n");
suads 0:79959cf2cc3e 305 uint8_t motionDetectionThreshold = mpu.getMotionDetectionThreshold();
suads 0:79959cf2cc3e 306 //printf("MPU6050 motion detection threshold is: %d \r\n", motionDetectionThreshold);
suads 0:79959cf2cc3e 307 //printf("MPU6050 set motion detection threshold to 2\r\n");
suads 0:79959cf2cc3e 308 mpu.setMotionDetectionThreshold(1);
suads 0:79959cf2cc3e 309 motionDetectionThreshold = mpu.getMotionDetectionThreshold();
suads 0:79959cf2cc3e 310 //printf("MPU6050 motion detection threshold now is: %d \r\n", motionDetectionThreshold);
suads 0:79959cf2cc3e 311 printf("Motion detection threshold is: %d \r\n", motionDetectionThreshold);
suads 0:79959cf2cc3e 312 uint8_t motionDetectionDuration = mpu.getMotionDetectionDuration();
suads 0:79959cf2cc3e 313 //printf("MPU6050 motion detection duration is: %d \r\n", motionDetectionDuration);
suads 0:79959cf2cc3e 314 //printf("MPU6050 set motion detection duration to 40\r\n");
suads 0:79959cf2cc3e 315 mpu.setMotionDetectionDuration(20);
suads 0:79959cf2cc3e 316 motionDetectionDuration = mpu.getMotionDetectionDuration();
suads 0:79959cf2cc3e 317 //printf("MPU6050 motion detection duration now is: %d \r\n", motionDetectionDuration);
suads 0:79959cf2cc3e 318 printf("Motion detection duration is: %d \r\n", motionDetectionDuration);
suads 0:79959cf2cc3e 319
suads 0:79959cf2cc3e 320 //*******************************************************************************************************************************
suads 0:79959cf2cc3e 321
suads 0:79959cf2cc3e 322 //printf("\n\n\n");
suads 0:79959cf2cc3e 323 uint8_t zeroMotionDetectionThreshold = mpu.getZeroMotionDetectionThreshold();
suads 0:79959cf2cc3e 324 //printf("MPU6050 zero motion detection threshold is: %d \r\n", zeroMotionDetectionThreshold);
suads 0:79959cf2cc3e 325 //printf("MPU6050 set zero motion detection threshold to 2\r\n");
suads 0:79959cf2cc3e 326 mpu.setZeroMotionDetectionThreshold(2);
suads 0:79959cf2cc3e 327 zeroMotionDetectionThreshold = mpu.getZeroMotionDetectionThreshold();
suads 0:79959cf2cc3e 328 //printf("MPU6050 zero motion detection threshold now is: %d \r\n", zeroMotionDetectionThreshold);
suads 0:79959cf2cc3e 329 printf("Zero motion detection threshold is: %d \r\n", zeroMotionDetectionThreshold);
suads 0:79959cf2cc3e 330 //printf("\n\n\n");
suads 0:79959cf2cc3e 331 int8_t zeroMotionDetectionDuration = mpu.getZeroMotionDetectionDuration();
suads 0:79959cf2cc3e 332 //printf("MPU6050 zero motion detection duration is: %d \r\n", zeroMotionDetectionDuration);
suads 0:79959cf2cc3e 333 //printf("MPU6050 set zero motion detection duration to 1\r\n");
suads 0:79959cf2cc3e 334 mpu.setZeroMotionDetectionDuration(1);
suads 0:79959cf2cc3e 335 zeroMotionDetectionDuration = mpu.getZeroMotionDetectionDuration();
suads 0:79959cf2cc3e 336 //printf("MPU6050 zero motion detection duration now is: %d \r\n", zeroMotionDetectionDuration);
suads 0:79959cf2cc3e 337 printf("Zero motion detection duration is: %d \r\n", zeroMotionDetectionDuration);
suads 0:79959cf2cc3e 338
suads 0:79959cf2cc3e 339 //*******************************************************************************************************************************
suads 0:79959cf2cc3e 340
suads 0:79959cf2cc3e 341 //printf("\n\n\n");
suads 0:79959cf2cc3e 342 int8_t freefallDetectionThreshold = mpu.getFreefallDetectionThreshold();
suads 0:79959cf2cc3e 343 //printf("MPU6050 freefall motion detection threshold is: %d \r\n", freefallDetectionThreshold);
suads 0:79959cf2cc3e 344 //printf("MPU6050 set freefall motion detection threshold to 40\r\n");
suads 0:79959cf2cc3e 345 //mpu.setFreefallDetectionThreshold(2);
suads 0:79959cf2cc3e 346 freefallDetectionThreshold = mpu.getFreefallDetectionThreshold();
suads 0:79959cf2cc3e 347 //printf("MPU6050 freefall motion detection threshold now is: %d \r\n", freefallDetectionThreshold);
suads 0:79959cf2cc3e 348 printf("Freefall motion detection threshold is: %d \r\n", freefallDetectionThreshold);
suads 0:79959cf2cc3e 349 //printf("\n\n\n");
suads 0:79959cf2cc3e 350 int8_t freefallDetectionDuration = mpu.getFreefallDetectionDuration();
suads 0:79959cf2cc3e 351 //printf("MPU6050 freefall motion detection duration is: %d \r\n", freefallDetectionDuration);
suads 0:79959cf2cc3e 352 //printf("MPU6050 set freefall motion detection duration to 40\r\n");
suads 0:79959cf2cc3e 353 //mpu.setFreefallDetectionDuration(40);
suads 0:79959cf2cc3e 354 freefallDetectionDuration = mpu.getFreefallDetectionDuration();
suads 0:79959cf2cc3e 355 //printf("MPU6050 freefall motion detection duration now is: %d \r\n", freefallDetectionDuration);
suads 0:79959cf2cc3e 356 printf("Freefall motion detection duration is: %d \r\n", freefallDetectionDuration);
suads 0:79959cf2cc3e 357 printf("\n\n\n");
suads 0:79959cf2cc3e 358 printf("MPU6050 test\n\n");
suads 0:79959cf2cc3e 359
suads 0:79959cf2cc3e 360
suads 0:79959cf2cc3e 361 //*******************************************************************************************************************************
suads 0:79959cf2cc3e 362 */
suads 0:79959cf2cc3e 363
suads 0:79959cf2cc3e 364
suads 0:79959cf2cc3e 365
suads 0:79959cf2cc3e 366 while(1) {
suads 0:79959cf2cc3e 367
suads 0:79959cf2cc3e 368 if(test==1) {
suads 0:79959cf2cc3e 369 //wait(1);
suads 0:79959cf2cc3e 370 //int ax,az,az,gz,gy,gz;
suads 0:79959cf2cc3e 371 mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
suads 0:79959cf2cc3e 372 printf("%d;%d;%d;%d;%d;%d ZERO DETECTED\r\n",ax,ay,az,gx,gy,gz);
suads 0:79959cf2cc3e 373 printf("nooooo\n");
suads 0:79959cf2cc3e 374 test = 1;
suads 0:79959cf2cc3e 375 mot=2;
suads 0:79959cf2cc3e 376 }
suads 0:79959cf2cc3e 377 if(test==0) {
suads 0:79959cf2cc3e 378 //wait(1);
suads 0:79959cf2cc3e 379 printf("yes\n");
suads 0:79959cf2cc3e 380 test=0;
suads 0:79959cf2cc3e 381 mot=2;
suads 0:79959cf2cc3e 382 }
suads 0:79959cf2cc3e 383
suads 0:79959cf2cc3e 384
suads 0:79959cf2cc3e 385 if(print==1) {
suads 0:79959cf2cc3e 386 mojlogger.print();
suads 0:79959cf2cc3e 387 print=0;
suads 0:79959cf2cc3e 388 }
suads 0:79959cf2cc3e 389
suads 0:79959cf2cc3e 390
suads 0:79959cf2cc3e 391
suads 0:79959cf2cc3e 392 //printf("caseFsm->DeviceInFullState()=%d\n",caseFsm->DeviceInFullState());
suads 0:79959cf2cc3e 393 //This goes into caseFsm, but for now we are testing in main.cpp
suads 0:79959cf2cc3e 394 if(caseFsm->DeviceInFullState()) {
suads 0:79959cf2cc3e 395 printf("Waiting 5 seconds for RFID event...\r\n");
suads 0:79959cf2cc3e 396 while (caseFsm->DeviceInFullState()) {
suads 0:79959cf2cc3e 397 // Look for new cards
suads 0:79959cf2cc3e 398
suads 0:79959cf2cc3e 399
suads 0:79959cf2cc3e 400 if ( ! RfChip.PICC_IsNewCardPresent()) {
suads 0:79959cf2cc3e 401 wait_ms(500);
suads 0:79959cf2cc3e 402 printf("!RfChip.PICC_IsNewCardPresent()\n");
suads 0:79959cf2cc3e 403 continue;
suads 0:79959cf2cc3e 404 }
suads 0:79959cf2cc3e 405
suads 0:79959cf2cc3e 406 // Select one of the cards
suads 0:79959cf2cc3e 407 if ( ! RfChip.PICC_ReadCardSerial()) {
suads 0:79959cf2cc3e 408 printf("!RfChip.PICC_ReadCardSerial()\n");
suads 0:79959cf2cc3e 409 wait_ms(500);
suads 0:79959cf2cc3e 410 continue;
suads 0:79959cf2cc3e 411 }
suads 0:79959cf2cc3e 412
suads 0:79959cf2cc3e 413 // Print Card UID
suads 0:79959cf2cc3e 414 printf("Card UID: ");
suads 0:79959cf2cc3e 415 for (uint8_t i = 0; i < RfChip.uid.size; i++) {
suads 0:79959cf2cc3e 416 rfidEvent.uid[i] = RfChip.uid.uidByte[i];
suads 0:79959cf2cc3e 417 printf("%X ", RfChip.uid.uidByte[i]);
suads 0:79959cf2cc3e 418 }
suads 0:79959cf2cc3e 419 rfidEvent.size = RfChip.uid.size;
suads 0:79959cf2cc3e 420 printf("\n\r");
suads 0:79959cf2cc3e 421
suads 0:79959cf2cc3e 422 // Print Card type
suads 0:79959cf2cc3e 423 uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
suads 0:79959cf2cc3e 424 printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
suads 0:79959cf2cc3e 425 wait_ms(1000);
suads 0:79959cf2cc3e 426 rfidEvent.cardType = piccType;
suads 0:79959cf2cc3e 427 //phone inserted
suads 0:79959cf2cc3e 428 caseFsm->handle(rfidEvent);
suads 0:79959cf2cc3e 429 printf("_%d_\n",caseFsm->DeviceInPhoneDetectedState());
suads 0:79959cf2cc3e 430 if(caseFsm->DeviceInPhoneDetectedState()) {
suads 0:79959cf2cc3e 431 wait(0.3);
suads 0:79959cf2cc3e 432 x++;
suads 0:79959cf2cc3e 433 printf("snimi\n");
suads 0:79959cf2cc3e 434 mojlog.setLog(1100+x,1,0,1300);
suads 0:79959cf2cc3e 435 mojlogger.savelog(mojlog);
suads 0:79959cf2cc3e 436 ;//Loguj phone in i vrijeme i datum
suads 0:79959cf2cc3e 437
suads 0:79959cf2cc3e 438 }
suads 0:79959cf2cc3e 439
suads 0:79959cf2cc3e 440 }
suads 0:79959cf2cc3e 441 if(caseFsm->DeviceInDeviceEmptyState()) {
suads 0:79959cf2cc3e 442 wait(0.3);
suads 0:79959cf2cc3e 443 printf("ne snimi\n");
suads 0:79959cf2cc3e 444 x++; //Loguj phone out i vrijeme i datum
suads 0:79959cf2cc3e 445 mojlog.setLog(1100+x,0,0,1400);
suads 0:79959cf2cc3e 446 mojlogger.savelog(mojlog);
suads 0:79959cf2cc3e 447 }
suads 0:79959cf2cc3e 448 }
suads 0:79959cf2cc3e 449
suads 0:79959cf2cc3e 450
suads 0:79959cf2cc3e 451
suads 0:79959cf2cc3e 452 }
suads 0:79959cf2cc3e 453
suads 0:79959cf2cc3e 454 }