first
Dependencies: MPU6050_SIM5320_TEST
main.cpp@0:79959cf2cc3e, 2017-11-09 (annotated)
- Committer:
- suads
- Date:
- Thu Nov 09 15:00:04 2017 +0000
- Revision:
- 0:79959cf2cc3e
commit
Who changed what in which revision?
User | Revision | Line number | New 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 | } |