Roboshark / Mbed 2 deprecated TestRegler

Dependencies:   mbed

Fork of Roboshark_V3 by Roboshark

Committer:
ahlervin
Date:
Mon Apr 30 13:22:32 2018 +0000
Revision:
6:a4b745625dbe
Parent:
4:767fd282dd9c
Child:
7:b2a16b1cf487
villicht funktionierts... (30.4.18, 15:30)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jacqueline 0:6d0671ae4648 1
Jacqueline 0:6d0671ae4648 2 #include <mbed.h>
Jacqueline 0:6d0671ae4648 3
Jacqueline 0:6d0671ae4648 4 #include "EncoderCounter.h"
Jacqueline 0:6d0671ae4648 5 #include "Controller.h"
Jacqueline 0:6d0671ae4648 6 #include "IRSensor.h"
Jacqueline 0:6d0671ae4648 7 #include "Fahren.h"
ahlervin 6:a4b745625dbe 8 #include "Regler.h"
Jacqueline 0:6d0671ae4648 9
Jacqueline 0:6d0671ae4648 10 DigitalOut myled(LED1);
Jacqueline 0:6d0671ae4648 11
Jacqueline 0:6d0671ae4648 12 DigitalOut led0(PC_8);
Jacqueline 0:6d0671ae4648 13 DigitalOut led1(PC_6);
Jacqueline 0:6d0671ae4648 14 DigitalOut led2(PB_12);
Jacqueline 0:6d0671ae4648 15 DigitalOut led3(PA_7);
Jacqueline 0:6d0671ae4648 16 DigitalOut led4(PC_0);
Jacqueline 0:6d0671ae4648 17 DigitalOut led5(PC_9);
Jacqueline 0:6d0671ae4648 18
ahlervin 4:767fd282dd9c 19 AnalogIn LineSensor(PB_1); // Line Sensor
Jacqueline 0:6d0671ae4648 20 DigitalOut enable(PC_1);
Jacqueline 0:6d0671ae4648 21 DigitalOut bit0(PH_1);
Jacqueline 0:6d0671ae4648 22 DigitalOut bit1(PC_2);
Jacqueline 0:6d0671ae4648 23 DigitalOut bit2(PC_3);
Jacqueline 0:6d0671ae4648 24
Jacqueline 0:6d0671ae4648 25 AnalogIn IrRight(PC_3); //von main Vincent kopiert
Jacqueline 0:6d0671ae4648 26 AnalogIn IrLeft (PC_5);
Jacqueline 0:6d0671ae4648 27 AnalogIn IrFront(PC_2);
Jacqueline 0:6d0671ae4648 28 float disR = 0;
Jacqueline 0:6d0671ae4648 29 float disL = 0;
Jacqueline 0:6d0671ae4648 30 float disF = 0;
Jacqueline 0:6d0671ae4648 31
Jacqueline 0:6d0671ae4648 32 float dis2R = 0;
Jacqueline 0:6d0671ae4648 33 float dis2L = 0;
Jacqueline 0:6d0671ae4648 34 float dis2F = 0;
Jacqueline 0:6d0671ae4648 35 int IrR = 0;
Jacqueline 0:6d0671ae4648 36 int IrL = 0;
Jacqueline 0:6d0671ae4648 37 int IrF = 0;
ahlervin 4:767fd282dd9c 38 int caseDrive = 0;
ahlervin 4:767fd282dd9c 39 double line = 0;
ahlervin 4:767fd282dd9c 40 bool finish = 0;
ahlervin 4:767fd282dd9c 41 bool finishLast = 0;
ahlervin 4:767fd282dd9c 42 int ende = 0;
ahlervin 6:a4b745625dbe 43 int temp = 0;
ahlervin 6:a4b745625dbe 44 float SpeedR = 0;
ahlervin 6:a4b745625dbe 45 float SpeedL = 0;
ahlervin 6:a4b745625dbe 46 //von main Vincent kopiert
Jacqueline 0:6d0671ae4648 47
Jacqueline 0:6d0671ae4648 48 DigitalOut enableMotorDriver(PB_2);
Jacqueline 0:6d0671ae4648 49 DigitalIn motorDriverFault(PB_14);
Jacqueline 0:6d0671ae4648 50 DigitalIn motorDriverWarning(PB_15);
Jacqueline 0:6d0671ae4648 51
Jacqueline 0:6d0671ae4648 52 PwmOut pwmLeft(PA_8);
Jacqueline 0:6d0671ae4648 53 PwmOut pwmRight(PA_9);
Jacqueline 0:6d0671ae4648 54
Jacqueline 0:6d0671ae4648 55 EncoderCounter counterLeft(PB_6, PB_7);
Jacqueline 0:6d0671ae4648 56 EncoderCounter counterRight(PA_6, PC_7);
Jacqueline 0:6d0671ae4648 57
ahlervin 6:a4b745625dbe 58 IRSensor iRSensor(IrRight, IrLeft, IrFront, dis2R, dis2L, dis2F, LineSensor); //von main Vincent kopiert
ahlervin 6:a4b745625dbe 59
Jacqueline 0:6d0671ae4648 60 Controller controller(pwmLeft, pwmRight, counterLeft, counterRight);
Jacqueline 0:6d0671ae4648 61
ahlervin 6:a4b745625dbe 62 Regler regler(IrRight, IrLeft);
ahlervin 6:a4b745625dbe 63
ahlervin 6:a4b745625dbe 64 Fahren fahren(controller, counterLeft, counterRight, SpeedR, SpeedL); //Reihenfolge!!!!!!!!!!!!!!!!!!! Ultra wichtig
Jacqueline 0:6d0671ae4648 65
Jacqueline 0:6d0671ae4648 66 int main()
Jacqueline 0:6d0671ae4648 67 {
Jacqueline 0:6d0671ae4648 68
Jacqueline 0:6d0671ae4648 69 //controller.setDesiredSpeedLeft(150.0f); // Drehzahl in [rpm] //DEFAULT VON TOBI
Jacqueline 0:6d0671ae4648 70 //controller.setDesiredSpeedRight(-150.0f); //DEFAULT VON TOBI
Jacqueline 0:6d0671ae4648 71 enable = 1;
Jacqueline 0:6d0671ae4648 72 enableMotorDriver = 1; // Schaltet den Leistungstreiber ein
Jacqueline 0:6d0671ae4648 73
Jacqueline 0:6d0671ae4648 74 while(1) {
Jacqueline 0:6d0671ae4648 75
Jacqueline 0:6d0671ae4648 76 // Test um Drehungen und geradeaus zu testen
Jacqueline 0:6d0671ae4648 77
Jacqueline 0:6d0671ae4648 78 /*fahren.geradeaus(); //Geradeausfahren aufrufen
Jacqueline 0:6d0671ae4648 79 wait(1.0f);
Jacqueline 0:6d0671ae4648 80
Jacqueline 0:6d0671ae4648 81 fahren.rechts90();
Jacqueline 0:6d0671ae4648 82 wait(1.0f);
Jacqueline 0:6d0671ae4648 83
Jacqueline 0:6d0671ae4648 84 fahren.rechts180();
Jacqueline 0:6d0671ae4648 85 wait(1.0f);
Jacqueline 0:6d0671ae4648 86
Jacqueline 2:402b1a74fff6 87 fahren.links90();
Jacqueline 0:6d0671ae4648 88 wait(1.0f);*/
ahlervin 4:767fd282dd9c 89 // IR Sensoren einlesen Programm Vincen
Jacqueline 0:6d0671ae4648 90 float disR = iRSensor.readR(); // Distanz in mm
Jacqueline 0:6d0671ae4648 91 float disL = iRSensor.readL();
Jacqueline 0:6d0671ae4648 92 float disF = iRSensor.readF();
Jacqueline 0:6d0671ae4648 93 dis2R = disR;
Jacqueline 0:6d0671ae4648 94 dis2L = disL;
Jacqueline 0:6d0671ae4648 95 dis2F = disF;
Jacqueline 0:6d0671ae4648 96 int IrR = iRSensor.codeR(); // min Distanz unterschritten = 1
Jacqueline 0:6d0671ae4648 97 int IrL = iRSensor.codeL();
Jacqueline 0:6d0671ae4648 98 int IrF = iRSensor.codeF();
ahlervin 4:767fd282dd9c 99 ende = iRSensor.get_ende();
ahlervin 6:a4b745625dbe 100 SpeedR = regler.get_SpeedR();
ahlervin 6:a4b745625dbe 101 SpeedL = regler.get_SpeedL();
ahlervin 6:a4b745625dbe 102
ahlervin 4:767fd282dd9c 103
ahlervin 4:767fd282dd9c 104
ahlervin 4:767fd282dd9c 105
ahlervin 4:767fd282dd9c 106 /* printf (" ende = %d\n",ende);
ahlervin 4:767fd282dd9c 107 printf (" finish = %d\n",finish);
ahlervin 4:767fd282dd9c 108 printf (" finishLast = %d\n",finishLast);
ahlervin 4:767fd282dd9c 109 printf("line = %f\n", line);
Jacqueline 0:6d0671ae4648 110
ahlervin 6:a4b745625dbe 111 printf ("IR Right = %d \n", IrR);
Jacqueline 0:6d0671ae4648 112 printf("IR Left = %d\n",IrL);
ahlervin 4:767fd282dd9c 113 printf("IR Front = %d\n",IrF);*/
Jacqueline 0:6d0671ae4648 114
ahlervin 6:a4b745625dbe 115
ahlervin 6:a4b745625dbe 116 if ((IrR==1) && (IrL==0) && (IrF==0) && (ende == 0)){
ahlervin 6:a4b745625dbe 117 caseDrive = 1;
ahlervin 4:767fd282dd9c 118 } else if ((IrR==1) && (IrL==1) && (IrF==0) && (ende == 0)){
ahlervin 6:a4b745625dbe 119 caseDrive = 1;
ahlervin 6:a4b745625dbe 120 } else{ caseDrive = 0;
Jacqueline 0:6d0671ae4648 121 }
Jacqueline 0:6d0671ae4648 122
Jacqueline 2:402b1a74fff6 123 wait (0.5);
Jacqueline 0:6d0671ae4648 124
Jacqueline 1:a95ba1510438 125
Jacqueline 0:6d0671ae4648 126
Jacqueline 0:6d0671ae4648 127
Jacqueline 0:6d0671ae4648 128 if(caseDrive == 1){
ahlervin 6:a4b745625dbe 129 fahren.geradeausG();
ahlervin 4:767fd282dd9c 130 } else if (caseDrive == 0){
ahlervin 4:767fd282dd9c 131 fahren.stopp();
ahlervin 6:a4b745625dbe 132
ahlervin 4:767fd282dd9c 133 }
Jacqueline 0:6d0671ae4648 134 }
ahlervin 6:a4b745625dbe 135
ahlervin 6:a4b745625dbe 136 }