this system is speed sensor for the human powered airplane by the pitot tube. the pitot tube is used the differential pressure senser SDP-1000.
Dependencies: SDFileSystem mbed
main.cpp@0:94c1e7624b95, 2015-10-13 (annotated)
- Committer:
- onseeen
- Date:
- Tue Oct 13 11:38:55 2015 +0000
- Revision:
- 0:94c1e7624b95
the pitot tube is air speed sensor for the human powered airplane. this system is used the SDP-1000.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
onseeen | 0:94c1e7624b95 | 1 | #include "mbed.h" |
onseeen | 0:94c1e7624b95 | 2 | #include "SDFileSystem.h" |
onseeen | 0:94c1e7624b95 | 3 | |
onseeen | 0:94c1e7624b95 | 4 | |
onseeen | 0:94c1e7624b95 | 5 | SDFileSystem sd(p5, p6, p7, p8, "sd"); |
onseeen | 0:94c1e7624b95 | 6 | AnalogIn pitot(p18); |
onseeen | 0:94c1e7624b95 | 7 | |
onseeen | 0:94c1e7624b95 | 8 | DigitalOut led1(LED1); |
onseeen | 0:94c1e7624b95 | 9 | DigitalOut led2(LED2); |
onseeen | 0:94c1e7624b95 | 10 | DigitalOut led3(LED3); |
onseeen | 0:94c1e7624b95 | 11 | DigitalOut led4(LED4); |
onseeen | 0:94c1e7624b95 | 12 | DigitalIn logging(p19); |
onseeen | 0:94c1e7624b95 | 13 | DigitalOut stop_counter(p20); |
onseeen | 0:94c1e7624b95 | 14 | PwmOut servo(p21); |
onseeen | 0:94c1e7624b95 | 15 | Timer t; |
onseeen | 0:94c1e7624b95 | 16 | |
onseeen | 0:94c1e7624b95 | 17 | float pout; |
onseeen | 0:94c1e7624b95 | 18 | double time_pulse, length, pres, vel; |
onseeen | 0:94c1e7624b95 | 19 | float sp_of_s; |
onseeen | 0:94c1e7624b95 | 20 | float temp = 0; |
onseeen | 0:94c1e7624b95 | 21 | |
onseeen | 0:94c1e7624b95 | 22 | |
onseeen | 0:94c1e7624b95 | 23 | int main() { |
onseeen | 0:94c1e7624b95 | 24 | led1 = 0.0; |
onseeen | 0:94c1e7624b95 | 25 | led2 = 0.0; |
onseeen | 0:94c1e7624b95 | 26 | led3 = 0.0; |
onseeen | 0:94c1e7624b95 | 27 | led4 = 0.0; |
onseeen | 0:94c1e7624b95 | 28 | wait(0.5); |
onseeen | 0:94c1e7624b95 | 29 | |
onseeen | 0:94c1e7624b95 | 30 | while(logging < 0.5) { |
onseeen | 0:94c1e7624b95 | 31 | led1 = 1; |
onseeen | 0:94c1e7624b95 | 32 | led4 = 1; |
onseeen | 0:94c1e7624b95 | 33 | wait(0.5); |
onseeen | 0:94c1e7624b95 | 34 | led1 = 0; |
onseeen | 0:94c1e7624b95 | 35 | led4 = 0; |
onseeen | 0:94c1e7624b95 | 36 | wait(0.5); |
onseeen | 0:94c1e7624b95 | 37 | } |
onseeen | 0:94c1e7624b95 | 38 | |
onseeen | 0:94c1e7624b95 | 39 | wait(3); |
onseeen | 0:94c1e7624b95 | 40 | //setup log file |
onseeen | 0:94c1e7624b95 | 41 | FILE *fp = fopen("/sd/TFLOG.csv", "w"); |
onseeen | 0:94c1e7624b95 | 42 | if(fp == NULL) { |
onseeen | 0:94c1e7624b95 | 43 | error("Could not open file for write\n\r"); |
onseeen | 0:94c1e7624b95 | 44 | } |
onseeen | 0:94c1e7624b95 | 45 | |
onseeen | 0:94c1e7624b95 | 46 | fprintf(fp, "altitude, velocity\n"); |
onseeen | 0:94c1e7624b95 | 47 | stop_counter = 0; |
onseeen | 0:94c1e7624b95 | 48 | led1 = 1; |
onseeen | 0:94c1e7624b95 | 49 | led4 = 1; |
onseeen | 0:94c1e7624b95 | 50 | |
onseeen | 0:94c1e7624b95 | 51 | while(logging < 0.5){ |
onseeen | 0:94c1e7624b95 | 52 | //get velocity |
onseeen | 0:94c1e7624b95 | 53 | pres = 500 * (pitot.read()*5-0.25)/3.75*0.95-15.5; |
onseeen | 0:94c1e7624b95 | 54 | |
onseeen | 0:94c1e7624b95 | 55 | if(pres > 0){ |
onseeen | 0:94c1e7624b95 | 56 | vel=sqrt(2.0/1.225*pres); |
onseeen | 0:94c1e7624b95 | 57 | } |
onseeen | 0:94c1e7624b95 | 58 | else{ |
onseeen | 0:94c1e7624b95 | 59 | vel=-sqrt(2.0/1.225*pres*(-1.0)); |
onseeen | 0:94c1e7624b95 | 60 | } |
onseeen | 0:94c1e7624b95 | 61 | |
onseeen | 0:94c1e7624b95 | 62 | fprintf(fp,"%6.4f\n ", vel); |
onseeen | 0:94c1e7624b95 | 63 | //servo.pulsewidth(pout); |
onseeen | 0:94c1e7624b95 | 64 | //wait(0.04888-time_pulse/1000000); |
onseeen | 0:94c1e7624b95 | 65 | wait(0.01); |
onseeen | 0:94c1e7624b95 | 66 | } |
onseeen | 0:94c1e7624b95 | 67 | stop_counter = 1; |
onseeen | 0:94c1e7624b95 | 68 | fclose(fp); |
onseeen | 0:94c1e7624b95 | 69 | led1 = 0; |
onseeen | 0:94c1e7624b95 | 70 | led4 = 0; |
onseeen | 0:94c1e7624b95 | 71 | } |