Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of ROME2_P1_Fertig by
main.cpp@2:ff4efefe7a1f, 2018-02-23 (annotated)
- Committer:
- kueenste
- Date:
- Fri Feb 23 14:52:13 2018 +0000
- Revision:
- 2:ff4efefe7a1f
- Parent:
- 1:b87369992345
- Child:
- 3:86f7471eaa79
Fertig;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kueenste | 0:17b906055a44 | 1 | #include "mbed.h" |
| kueenste | 1:b87369992345 | 2 | #include "IRSensor.h" |
| kueenste | 2:ff4efefe7a1f | 3 | #include "Controller.h" |
| kueenste | 0:17b906055a44 | 4 | |
| kueenste | 1:b87369992345 | 5 | // LEDs |
| kueenste | 0:17b906055a44 | 6 | DigitalOut myled(LED1); |
| kueenste | 1:b87369992345 | 7 | DigitalOut led0(PC_8); |
| kueenste | 1:b87369992345 | 8 | DigitalOut led1(PC_6); |
| kueenste | 1:b87369992345 | 9 | DigitalOut led2(PB_12); |
| kueenste | 1:b87369992345 | 10 | DigitalOut led3(PA_7); |
| kueenste | 1:b87369992345 | 11 | DigitalOut led4(PC_0); |
| kueenste | 1:b87369992345 | 12 | DigitalOut led5(PC_9); |
| kueenste | 0:17b906055a44 | 13 | |
| kueenste | 1:b87369992345 | 14 | // Distanzmesser |
| kueenste | 1:b87369992345 | 15 | AnalogIn distance(PB_1); // Kreieren der Ein- und Ausgangsobjekte |
| kueenste | 1:b87369992345 | 16 | DigitalOut enable(PC_1); |
| kueenste | 1:b87369992345 | 17 | DigitalOut bit0(PH_1); |
| kueenste | 1:b87369992345 | 18 | DigitalOut bit1(PC_2); |
| kueenste | 1:b87369992345 | 19 | DigitalOut bit2(PC_3); |
| kueenste | 1:b87369992345 | 20 | |
| kueenste | 1:b87369992345 | 21 | // Motoren |
| kueenste | 1:b87369992345 | 22 | DigitalOut enableMotorDriver(PB_2); |
| kueenste | 1:b87369992345 | 23 | DigitalIn motorDriverFault(PB_14); |
| kueenste | 1:b87369992345 | 24 | DigitalIn motorDriverWarning(PB_15); |
| kueenste | 1:b87369992345 | 25 | PwmOut pwmLeft(PA_8); |
| kueenste | 1:b87369992345 | 26 | PwmOut pwmRight(PA_9); |
| kueenste | 1:b87369992345 | 27 | |
| kueenste | 2:ff4efefe7a1f | 28 | // Motoren Drehzahlgeber |
| kueenste | 2:ff4efefe7a1f | 29 | EncoderCounter counterLeft(PB_6, PB_7); |
| kueenste | 2:ff4efefe7a1f | 30 | EncoderCounter counterRight(PA_6, PC_7); |
| kueenste | 2:ff4efefe7a1f | 31 | |
| kueenste | 1:b87369992345 | 32 | float d = 0; |
| kueenste | 1:b87369992345 | 33 | |
| kueenste | 1:b87369992345 | 34 | IRSensor irSensor0(distance, bit0, bit1, bit2, 0); // Objekte kreieren |
| kueenste | 1:b87369992345 | 35 | IRSensor irSensor1(distance, bit0, bit1, bit2, 1); |
| kueenste | 1:b87369992345 | 36 | IRSensor irSensor2(distance, bit0, bit1, bit2, 2); |
| kueenste | 1:b87369992345 | 37 | IRSensor irSensor3(distance, bit0, bit1, bit2, 3); |
| kueenste | 1:b87369992345 | 38 | IRSensor irSensor4(distance, bit0, bit1, bit2, 4); |
| kueenste | 1:b87369992345 | 39 | IRSensor irSensor5(distance, bit0, bit1, bit2, 5); |
| kueenste | 1:b87369992345 | 40 | |
| kueenste | 2:ff4efefe7a1f | 41 | Controller controller(pwmLeft, pwmRight, counterLeft, counterRight); |
| kueenste | 2:ff4efefe7a1f | 42 | |
| kueenste | 1:b87369992345 | 43 | int main() |
| kueenste | 1:b87369992345 | 44 | { |
| kueenste | 1:b87369992345 | 45 | |
| kueenste | 1:b87369992345 | 46 | enable = 1; // schaltet die Sensoren ein |
| kueenste | 1:b87369992345 | 47 | |
| kueenste | 2:ff4efefe7a1f | 48 | |
| kueenste | 2:ff4efefe7a1f | 49 | // MOTOR |
| kueenste | 2:ff4efefe7a1f | 50 | |
| kueenste | 2:ff4efefe7a1f | 51 | pwmLeft.period(0.00005); // Setzt die Periode auf 50 μs |
| kueenste | 2:ff4efefe7a1f | 52 | pwmRight.period(0.00005); |
| kueenste | 2:ff4efefe7a1f | 53 | pwmLeft = 0.5; // Setzt die Duty-Cycle auf 50% |
| kueenste | 2:ff4efefe7a1f | 54 | pwmRight = 0.5; |
| kueenste | 2:ff4efefe7a1f | 55 | enableMotorDriver = 1; // Schaltet den Leistungstreiber ein |
| kueenste | 2:ff4efefe7a1f | 56 | |
| kueenste | 2:ff4efefe7a1f | 57 | |
| kueenste | 1:b87369992345 | 58 | /* |
| kueenste | 1:b87369992345 | 59 | bit0 = 0; // Wahl des Sensors mit dem Multiplexer (Sensor vorne) |
| kueenste | 1:b87369992345 | 60 | bit1 = 0; |
| kueenste | 1:b87369992345 | 61 | bit2 = 0; |
| kueenste | 1:b87369992345 | 62 | */ |
| kueenste | 1:b87369992345 | 63 | |
| kueenste | 0:17b906055a44 | 64 | while(1) { |
| kueenste | 1:b87369992345 | 65 | /* |
| kueenste | 0:17b906055a44 | 66 | myled = 1; // LED is ON |
| kueenste | 0:17b906055a44 | 67 | wait(0.2); // 200 ms |
| kueenste | 0:17b906055a44 | 68 | myled = 0; // LED is OFF |
| kueenste | 1:b87369992345 | 69 | wait(0.2); // 1 sec |
| kueenste | 1:b87369992345 | 70 | |
| kueenste | 1:b87369992345 | 71 | led1 = 1; // LED is ON |
| kueenste | 1:b87369992345 | 72 | wait(0.2); // 200 ms |
| kueenste | 1:b87369992345 | 73 | led1 = 0; // LED is OFF |
| kueenste | 1:b87369992345 | 74 | wait(0.2); // 1 sec |
| kueenste | 1:b87369992345 | 75 | |
| kueenste | 1:b87369992345 | 76 | led2 = 1; // LED is ON |
| kueenste | 1:b87369992345 | 77 | wait(0.2); // 200 ms |
| kueenste | 1:b87369992345 | 78 | led2 = 0; // LED is OFF |
| kueenste | 1:b87369992345 | 79 | wait(0.2); // 1 sec |
| kueenste | 1:b87369992345 | 80 | |
| kueenste | 1:b87369992345 | 81 | led3 = 1; // LED is ON |
| kueenste | 1:b87369992345 | 82 | wait(0.2); // 200 ms |
| kueenste | 1:b87369992345 | 83 | led3 = 0; // LED is OFF |
| kueenste | 1:b87369992345 | 84 | wait(0.2); // 1 sec |
| kueenste | 1:b87369992345 | 85 | |
| kueenste | 1:b87369992345 | 86 | led4 = 1; // LED is ON |
| kueenste | 1:b87369992345 | 87 | wait(0.2); // 200 ms |
| kueenste | 1:b87369992345 | 88 | led4 = 0; // LED is OFF |
| kueenste | 1:b87369992345 | 89 | wait(0.2); // 1 sec |
| kueenste | 1:b87369992345 | 90 | |
| kueenste | 1:b87369992345 | 91 | led5 = 1; // LED is ON |
| kueenste | 1:b87369992345 | 92 | wait(0.2); // 200 ms |
| kueenste | 1:b87369992345 | 93 | led5 = 0; // LED is OFF |
| kueenste | 1:b87369992345 | 94 | wait(0.2); // 1 sec |
| kueenste | 1:b87369992345 | 95 | */ |
| kueenste | 1:b87369992345 | 96 | |
| kueenste | 1:b87369992345 | 97 | /*wait(0.5); |
| kueenste | 1:b87369992345 | 98 | d = -0.58f*sqrt(distance)+0.58f; // Lesen der Distanz in [m] |
| kueenste | 1:b87369992345 | 99 | printf("Mein Wert: %f\n",d); |
| kueenste | 1:b87369992345 | 100 | */ |
| kueenste | 2:ff4efefe7a1f | 101 | |
| kueenste | 2:ff4efefe7a1f | 102 | // Motoren drehen primitiv |
| kueenste | 2:ff4efefe7a1f | 103 | //pwmLeft = 0.55; // Duty-Cycle von 55% |
| kueenste | 2:ff4efefe7a1f | 104 | //pwmRight = 0.55; |
| kueenste | 2:ff4efefe7a1f | 105 | |
| kueenste | 2:ff4efefe7a1f | 106 | // Motoren per Drehzahlregler |
| kueenste | 2:ff4efefe7a1f | 107 | controller.setDesiredSpeedLeft(50.0f); // Drehzahl in [rpm] |
| kueenste | 2:ff4efefe7a1f | 108 | controller.setDesiredSpeedRight(-50.0f); |
| kueenste | 2:ff4efefe7a1f | 109 | |
| kueenste | 2:ff4efefe7a1f | 110 | // Ausgabe für Putty |
| kueenste | 2:ff4efefe7a1f | 111 | printf("Speed aktuell links: %f, rechts: %f \r\n",controller.getSpeedLeft(),controller.getSpeedRight()); |
| kueenste | 1:b87369992345 | 112 | |
| kueenste | 1:b87369992345 | 113 | |
| kueenste | 1:b87369992345 | 114 | float distance0 = irSensor0.read(); // gibt die Distanz in [m] zurueck |
| kueenste | 1:b87369992345 | 115 | float distance1 = irSensor1.read(); |
| kueenste | 1:b87369992345 | 116 | float distance2 = irSensor2.read(); |
| kueenste | 1:b87369992345 | 117 | float distance3 = irSensor3.read(); |
| kueenste | 1:b87369992345 | 118 | float distance4 = irSensor4.read(); |
| kueenste | 1:b87369992345 | 119 | float distance5 = irSensor5.read(); |
| kueenste | 2:ff4efefe7a1f | 120 | |
| kueenste | 1:b87369992345 | 121 | led0 = 0; |
| kueenste | 1:b87369992345 | 122 | led1 = 0; |
| kueenste | 1:b87369992345 | 123 | led2 = 0; |
| kueenste | 1:b87369992345 | 124 | led3 = 0; |
| kueenste | 1:b87369992345 | 125 | led4 = 0; |
| kueenste | 1:b87369992345 | 126 | led5 = 0; |
| kueenste | 2:ff4efefe7a1f | 127 | |
| kueenste | 2:ff4efefe7a1f | 128 | |
| kueenste | 1:b87369992345 | 129 | |
| kueenste | 1:b87369992345 | 130 | if(distance0 < 0.2f) { |
| kueenste | 1:b87369992345 | 131 | led0 = 1; |
| kueenste | 2:ff4efefe7a1f | 132 | } |
| kueenste | 1:b87369992345 | 133 | if(distance1 < 0.2f) { |
| kueenste | 1:b87369992345 | 134 | led1 = 1; |
| kueenste | 1:b87369992345 | 135 | } |
| kueenste | 1:b87369992345 | 136 | if(distance2 < 0.2f) { |
| kueenste | 1:b87369992345 | 137 | led2 = 1; |
| kueenste | 1:b87369992345 | 138 | } |
| kueenste | 1:b87369992345 | 139 | if(distance3 < 0.2f) { |
| kueenste | 1:b87369992345 | 140 | led3 = 1; |
| kueenste | 1:b87369992345 | 141 | } |
| kueenste | 1:b87369992345 | 142 | if(distance4 < 0.2f) { |
| kueenste | 1:b87369992345 | 143 | led4 = 1; |
| kueenste | 1:b87369992345 | 144 | } |
| kueenste | 1:b87369992345 | 145 | if(distance5 < 0.2f) { |
| kueenste | 1:b87369992345 | 146 | led5 = 1; |
| kueenste | 1:b87369992345 | 147 | } |
| kueenste | 2:ff4efefe7a1f | 148 | |
| kueenste | 1:b87369992345 | 149 | |
| kueenste | 0:17b906055a44 | 150 | } |
| kueenste | 0:17b906055a44 | 151 | } |
