Test
Dependencies: SRF02 SRF05 mbed
Fork of Prosjekt_2 by
Diff: main.cpp
- Revision:
- 8:63f1033aaea2
- Parent:
- 7:112b745b2b9e
- Child:
- 9:4b38e90b8f10
--- a/main.cpp Fri Apr 01 09:14:21 2016 +0000 +++ b/main.cpp Fri Apr 01 12:47:28 2016 +0000 @@ -8,7 +8,7 @@ DigitalOut led (LED1); DigitalIn imp (p12); SRF05 srf05(p7, p8); -SRF02 srf02(p9, p10,0xe0, 1); +SRF02 srf02(p9, p10); DigitalOut bar[] = {NC, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30}; void meny(); @@ -56,11 +56,11 @@ break; } case('4'): { - pc.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\n"); - bt.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\n"); - triangulering(); + pc.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\nEach 'O' represents 10square centimeters.\nMeassurements start from 50cm away for SRF02 and 140 CM away from SRF05\n"); + bt.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\nEach 'O' represents 10square centimeters.\nMeassurements start from 50cm away for SRF02 and 140 CM away from SRF05\n"); + triangulering(); break; - + } default: pc.printf("\nERROR: Invalid value\n"); @@ -159,15 +159,33 @@ } } +/*Funksjonen triangulering måler avstanden til et objekt i målesonen, fra to forskjellige vinkler. Avstanden til objektet plasseres i et 2D-plan. Størrelsen på planet er 100cm langs x akse og 50cm langs y akse.*/ + void triangulering () { - float a, b; - char c; - pc.printf("\nTriangulering meny funker"); - do { - a = srf05.read(); - b = srf02.read(); - pc.printf("\nSRF05 meassures:\t%f\nSRF02 meassures:\t%f\n", a, b); - c = getchar(); - } while (c != 'n'); + char _2DplanX[12] = {'|','O','O','O','O','O','O','O','O','O','O','|'}; + char _2Dplan[12] = {'|','O','O','O','O','O','O','O','O','O','O','|'}; + int a, b, c; + float d = srf05.read(); + b = srf02.getDistanceCm(); + pc.printf("\nx = %d\ny = %f\n", b, d); + bt.printf("\nx = %d\ny = %f\n", b, d); + for (c = 1; c < 11; c++) { + if ((c*10+40) <= b && b < ((c+1)*10+40)) + _2DplanX[c] = 'x'; + else + _2DplanX[c] = 'O'; + } + for (c = 190; c >= 150; c=c-10) { + if (c-10 <= d && d < c) { + for(a = 0; a < 12; a++) + pc.printf("%c",_2DplanX[a]); + bt.printf("%c",_2DplanX[a]); + } else { + for(a = 0; a < 12; a++) + pc.printf("%c",_2Dplan[a]); + bt.printf("%c",_2Dplan[a]); + } + printf("\n"); + } } \ No newline at end of file