TeamSurface / Mbed 2 deprecated kueenste_rome2_p1

Dependencies:   mbed

Fork of ROME2_P1_Fertig by St Knz

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?

UserRevisionLine numberNew 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 }