Dynamics ident of the system
Dependencies: FastPWM HIDScope MODSERIAL QEI mbed
Fork of Berekenen_motorhoek by
main.cpp@0:46a1642a10c8, 2016-10-12 (annotated)
- Committer:
- TimDouma
- Date:
- Wed Oct 12 14:27:44 2016 +0000
- Revision:
- 0:46a1642a10c8
- Child:
- 1:709a462b8373
Virtualbar berekenen lukt, meerdere outputs uit functie niet
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
TimDouma | 0:46a1642a10c8 | 1 | #include "mbed.h" |
TimDouma | 0:46a1642a10c8 | 2 | #include "math.h" |
TimDouma | 0:46a1642a10c8 | 3 | #define SERIAL_BAUD 115200 |
TimDouma | 0:46a1642a10c8 | 4 | |
TimDouma | 0:46a1642a10c8 | 5 | Serial pc(USBTX,USBRX); |
TimDouma | 0:46a1642a10c8 | 6 | Ticker TickerAfstandBerekenen; |
TimDouma | 0:46a1642a10c8 | 7 | // in te voeren x en y waardes (de positie waar we heen willen) |
TimDouma | 0:46a1642a10c8 | 8 | volatile float x = -30.0; |
TimDouma | 0:46a1642a10c8 | 9 | volatile float y = 200.0; |
TimDouma | 0:46a1642a10c8 | 10 | |
TimDouma | 0:46a1642a10c8 | 11 | // waardes |
TimDouma | 0:46a1642a10c8 | 12 | volatile const float a = 50.0; // de afstand van gekozen assenstelsel tot de armas (assenstelsel precies in het midden) |
TimDouma | 0:46a1642a10c8 | 13 | volatile const float Bar = 200.0; // lengte van de armen |
TimDouma | 0:46a1642a10c8 | 14 | //volatile float D1 = 9.0; |
TimDouma | 0:46a1642a10c8 | 15 | |
TimDouma | 0:46a1642a10c8 | 16 | |
TimDouma | 0:46a1642a10c8 | 17 | // functie om D1 en D2 te berekenen |
TimDouma | 0:46a1642a10c8 | 18 | float AfstandBerekenen () |
TimDouma | 0:46a1642a10c8 | 19 | { |
TimDouma | 0:46a1642a10c8 | 20 | float BV1 = sqrt(pow((a+x),2) + pow(y,2)); // diagonaal (afstand van armas tot locatie) berekenen |
TimDouma | 0:46a1642a10c8 | 21 | float BV2 = sqrt(pow((x-a),2) + pow(y,2)); |
TimDouma | 0:46a1642a10c8 | 22 | |
TimDouma | 0:46a1642a10c8 | 23 | float D1 = pow(BV1,2)/(2*BV1); // berekenen van de afstand oorsprong tot diagonaal |
TimDouma | 0:46a1642a10c8 | 24 | float D2 = pow(BV2,2)/(2*BV2); |
TimDouma | 0:46a1642a10c8 | 25 | |
TimDouma | 0:46a1642a10c8 | 26 | pc.baud(SERIAL_BAUD); |
TimDouma | 0:46a1642a10c8 | 27 | pc.printf("D1 = %f en D2 = %f\r\n", D1, D2); |
TimDouma | 0:46a1642a10c8 | 28 | |
TimDouma | 0:46a1642a10c8 | 29 | return D1; |
TimDouma | 0:46a1642a10c8 | 30 | //return D2; |
TimDouma | 0:46a1642a10c8 | 31 | } |
TimDouma | 0:46a1642a10c8 | 32 | |
TimDouma | 0:46a1642a10c8 | 33 | /* |
TimDouma | 0:46a1642a10c8 | 34 | void MotorhoekBerekenen (){ |
TimDouma | 0:46a1642a10c8 | 35 | if (x > -a){ |
TimDouma | 0:46a1642a10c8 | 36 | float MotorHoek1 = 180 - atan(y/(x+a)) - acos( |
TimDouma | 0:46a1642a10c8 | 37 | */ |
TimDouma | 0:46a1642a10c8 | 38 | int main() |
TimDouma | 0:46a1642a10c8 | 39 | { |
TimDouma | 0:46a1642a10c8 | 40 | |
TimDouma | 0:46a1642a10c8 | 41 | //TickerAfstandBerekenen.attach(&AfstandBerekenen, 0.1); |
TimDouma | 0:46a1642a10c8 | 42 | float D1 = AfstandBerekenen(); |
TimDouma | 0:46a1642a10c8 | 43 | //float D2 = AfstandBerekenen(x,y); |
TimDouma | 0:46a1642a10c8 | 44 | pc.baud(SERIAL_BAUD); |
TimDouma | 0:46a1642a10c8 | 45 | pc.printf("D1 = %f \r\n", D1, D2); |
TimDouma | 0:46a1642a10c8 | 46 | //AfstandBerekenen(); |
TimDouma | 0:46a1642a10c8 | 47 | while (true) { |
TimDouma | 0:46a1642a10c8 | 48 | |
TimDouma | 0:46a1642a10c8 | 49 | } |
TimDouma | 0:46a1642a10c8 | 50 | } |