jumper
Dependencies: MMA7660 Speaker TextLCD mbed
main.cpp@0:8145e3945243, 2016-01-15 (annotated)
- Committer:
- RiiQQe
- Date:
- Fri Jan 15 06:51:26 2016 +0000
- Revision:
- 0:8145e3945243
testing;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |