jumper

Dependencies:   MMA7660 Speaker TextLCD mbed

Committer:
RiiQQe
Date:
Fri Jan 15 06:51:26 2016 +0000
Revision:
0:8145e3945243
testing;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RiiQQe 0:8145e3945243 1 /*
RiiQQe 0:8145e3945243 2 Räknar ut tiden det tar från botten till toppen i ett hopp.
RiiQQe 0:8145e3945243 3 Från det kan man räkna ut hur högt man hoppar, med hjälp av
RiiQQe 0:8145e3945243 4 h = (g * pow(t,2)) / 2;
RiiQQe 0:8145e3945243 5
RiiQQe 0:8145e3945243 6
RiiQQe 0:8145e3945243 7 */
RiiQQe 0:8145e3945243 8 #include "mbed.h"
RiiQQe 0:8145e3945243 9 #include "MMA7660.h"
RiiQQe 0:8145e3945243 10 #include "Speaker.h"
RiiQQe 0:8145e3945243 11
RiiQQe 0:8145e3945243 12
RiiQQe 0:8145e3945243 13 //To get the x,y,z movements
RiiQQe 0:8145e3945243 14 MMA7660 MMA(p28, p27);
RiiQQe 0:8145e3945243 15
RiiQQe 0:8145e3945243 16 //To write to the terminal
RiiQQe 0:8145e3945243 17 Serial pc(USBTX, USBRX); // tx, rx
RiiQQe 0:8145e3945243 18
RiiQQe 0:8145e3945243 19 // app board joystick
RiiQQe 0:8145e3945243 20 // down: p12, left: p13, center: p14, up: p15, right: p16
RiiQQe 0:8145e3945243 21 BusIn joystick(p12, p13, p15, p16);
RiiQQe 0:8145e3945243 22
RiiQQe 0:8145e3945243 23 DigitalIn button(p14);
RiiQQe 0:8145e3945243 24 BusOut leds(LED1, LED2, LED3, LED4);
RiiQQe 0:8145e3945243 25
RiiQQe 0:8145e3945243 26 DigitalOut red_(p23);
RiiQQe 0:8145e3945243 27 DigitalOut green_(p24);
RiiQQe 0:8145e3945243 28
RiiQQe 0:8145e3945243 29 Speaker speaker(p26);
RiiQQe 0:8145e3945243 30 float MAX = 1.0;
RiiQQe 0:8145e3945243 31 float g = 9.82;
RiiQQe 0:8145e3945243 32 float flightTime = 0, height = 0;
RiiQQe 0:8145e3945243 33 Timer t;
RiiQQe 0:8145e3945243 34
RiiQQe 0:8145e3945243 35 bool up = false;
RiiQQe 0:8145e3945243 36 bool top = false;
RiiQQe 0:8145e3945243 37
RiiQQe 0:8145e3945243 38 int main() {
RiiQQe 0:8145e3945243 39
RiiQQe 0:8145e3945243 40 green_ = 1;
RiiQQe 0:8145e3945243 41 pc.printf("Running mBed\n");
RiiQQe 0:8145e3945243 42 if(!MMA.testConnection()) red_ = 0;
RiiQQe 0:8145e3945243 43
RiiQQe 0:8145e3945243 44 while (true) {
RiiQQe 0:8145e3945243 45
RiiQQe 0:8145e3945243 46 if(MMA.y() > MAX && !up){
RiiQQe 0:8145e3945243 47 up = true;
RiiQQe 0:8145e3945243 48 //MAX = MMA.y();
RiiQQe 0:8145e3945243 49 //Never go above 5000Hz, can damage the mbed.
RiiQQe 0:8145e3945243 50 //pc.printf("%f", MMA.y());
RiiQQe 0:8145e3945243 51
RiiQQe 0:8145e3945243 52 }
RiiQQe 0:8145e3945243 53 if(MMA.y() == 0.0 && !top) {
RiiQQe 0:8145e3945243 54 t.start();
RiiQQe 0:8145e3945243 55 speaker.PlayNote(969.0, 0.5, 1.0);
RiiQQe 0:8145e3945243 56 speaker.PlayNote(800.0, 0.5, 1.0);
RiiQQe 0:8145e3945243 57 top = true;
RiiQQe 0:8145e3945243 58 }
RiiQQe 0:8145e3945243 59 if(MMA.y() == 0.0 && top) {
RiiQQe 0:8145e3945243 60 t.stop();
RiiQQe 0:8145e3945243 61
RiiQQe 0:8145e3945243 62 printf("The time taken was %f seconds\n", t.read());
RiiQQe 0:8145e3945243 63 top = false;
RiiQQe 0:8145e3945243 64 up = false;
RiiQQe 0:8145e3945243 65 flightTime = t.read();
RiiQQe 0:8145e3945243 66 height = g * flightTime * flightTime * 0.5;
RiiQQe 0:8145e3945243 67
RiiQQe 0:8145e3945243 68 printf("The jump height was %f meters\n", height);
RiiQQe 0:8145e3945243 69
RiiQQe 0:8145e3945243 70 t.reset();
RiiQQe 0:8145e3945243 71 }
RiiQQe 0:8145e3945243 72
RiiQQe 0:8145e3945243 73
RiiQQe 0:8145e3945243 74
RiiQQe 0:8145e3945243 75 if (button){
RiiQQe 0:8145e3945243 76 leds = 0xf; // turns all LEDs on
RiiQQe 0:8145e3945243 77 green_ = 0;
RiiQQe 0:8145e3945243 78 }
RiiQQe 0:8145e3945243 79 else{
RiiQQe 0:8145e3945243 80 green_ = 1;
RiiQQe 0:8145e3945243 81 red_ = 1;
RiiQQe 0:8145e3945243 82 leds = joystick;
RiiQQe 0:8145e3945243 83 }
RiiQQe 0:8145e3945243 84 wait(0.01);
RiiQQe 0:8145e3945243 85
RiiQQe 0:8145e3945243 86
RiiQQe 0:8145e3945243 87 }
RiiQQe 0:8145e3945243 88 }