Cyber Physical Systems Mark Roche LAB 2

Dependencies:   mbed MMA7660

Committer:
mark_roche
Date:
Wed May 11 17:12:01 2022 +0000
Revision:
1:3a0dea78e0c5
Parent:
0:0d335e3eea24
CPS Lab 2 Mark Roche

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mark_roche 1:3a0dea78e0c5 1 //____Industry 4.0: Cyber Phys Systs-51296_______
mark_roche 1:3a0dea78e0c5 2 //____Lab 2 Mark Roche_____
mark_roche 1:3a0dea78e0c5 3
mark_roche 0:0d335e3eea24 4
mark_roche 0:0d335e3eea24 5 #include "mbed.h"
mark_roche 0:0d335e3eea24 6 #include "MMA7660.h"
mark_roche 0:0d335e3eea24 7
mark_roche 0:0d335e3eea24 8 MMA7660 MMA(p28, p27);
mark_roche 0:0d335e3eea24 9
mark_roche 0:0d335e3eea24 10 #define PI 3.14159265
mark_roche 0:0d335e3eea24 11
mark_roche 0:0d335e3eea24 12 DigitalOut connectionLed(LED1);
mark_roche 0:0d335e3eea24 13
mark_roche 0:0d335e3eea24 14 float calculateAngle(float x, float y, float z){
mark_roche 0:0d335e3eea24 15 float angle = 0;
mark_roche 0:0d335e3eea24 16
mark_roche 0:0d335e3eea24 17 float top_part = x;
mark_roche 0:0d335e3eea24 18 float bott_part = sqrt((y*y)+(z*z));
mark_roche 0:0d335e3eea24 19 float res = atan(top_part/bott_part);
mark_roche 0:0d335e3eea24 20 float val = 180.0 / PI;
mark_roche 0:0d335e3eea24 21 angle = res * val;
mark_roche 0:0d335e3eea24 22 return angle;
mark_roche 0:0d335e3eea24 23 }
mark_roche 0:0d335e3eea24 24
mark_roche 0:0d335e3eea24 25
mark_roche 0:0d335e3eea24 26
mark_roche 0:0d335e3eea24 27 int main() {
mark_roche 0:0d335e3eea24 28 if (MMA.testConnection())
mark_roche 0:0d335e3eea24 29 connectionLed = 1;
mark_roche 0:0d335e3eea24 30 printf("\r\n\n");
mark_roche 0:0d335e3eea24 31 while(1) {
mark_roche 0:0d335e3eea24 32 float res = calculateAngle(MMA.x(), MMA.y(), MMA.z());
mark_roche 0:0d335e3eea24 33 printf("angle = %f \r", res);
mark_roche 0:0d335e3eea24 34 wait(1);
mark_roche 0:0d335e3eea24 35
mark_roche 0:0d335e3eea24 36 }
mark_roche 0:0d335e3eea24 37 }