Antonia Baumgartner / Mbed 2 deprecated Versuch21

Dependencies:   mbed

Fork of Versuch20 by Alexander Wyss

Committer:
mrbb2
Date:
Mon Apr 23 16:18:41 2018 +0000
Revision:
1:6ef5bc60e69c
Parent:
0:b886f13e4ac6
Child:
2:efa9a78591da
PES2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
baumgant 0:b886f13e4ac6 1 #include "Motion.h"
baumgant 0:b886f13e4ac6 2 #include "Controller.h"
baumgant 0:b886f13e4ac6 3 #include "EncoderCounter.h"
baumgant 0:b886f13e4ac6 4 #include "Spurhaltung.h"
mrbb2 1:6ef5bc60e69c 5 #include "IRSensorGF.h"
mrbb2 1:6ef5bc60e69c 6 #include "IRSensorG.h"
mrbb2 1:6ef5bc60e69c 7 #include "IRSensorK.h"
mrbb2 1:6ef5bc60e69c 8 #include "IRSensorZ.h"
baumgant 0:b886f13e4ac6 9
baumgant 0:b886f13e4ac6 10
baumgant 0:b886f13e4ac6 11 using namespace std;
baumgant 0:b886f13e4ac6 12
mrbb2 1:6ef5bc60e69c 13 Motion::Motion(EncoderCounter& counterLeft, EncoderCounter& counterRight, Controller& controller, Spurhaltung& spurhaltung, IRSensorGF& Sensor1, IRSensorG& Sensor2, IRSensorG& Sensor3, IRSensorK& Sensor4, IRSensorK& Sensor5, IRSensorZ& Sensor6):
mrbb2 1:6ef5bc60e69c 14 counterLeft(counterLeft), counterRight(counterRight), controller(controller), spurhaltung(spurhaltung), Sensor1(Sensor1), Sensor2(Sensor2), Sensor3(Sensor3), Sensor4(Sensor4), Sensor5(Sensor5), Sensor6(Sensor6)
baumgant 0:b886f13e4ac6 15 {
mrbb2 1:6ef5bc60e69c 16
baumgant 0:b886f13e4ac6 17 }
baumgant 0:b886f13e4ac6 18
baumgant 0:b886f13e4ac6 19 Motion::~Motion() {}
baumgant 0:b886f13e4ac6 20
mrbb2 1:6ef5bc60e69c 21 void Motion::gerade()
mrbb2 1:6ef5bc60e69c 22 {
mrbb2 1:6ef5bc60e69c 23
mrbb2 1:6ef5bc60e69c 24 controller.resetCounter();
mrbb2 1:6ef5bc60e69c 25 int lastCountLeft = counterLeft.read();
mrbb2 1:6ef5bc60e69c 26
mrbb2 1:6ef5bc60e69c 27 while(counterLeft.read()-lastCountLeft<(2.094*1260)) {
mrbb2 1:6ef5bc60e69c 28 controller.setDesiredSpeedLeft(spurhaltung.speedr()); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 29 controller.setDesiredSpeedRight(-spurhaltung.speedl());
mrbb2 1:6ef5bc60e69c 30 spurhaltung.speedl();
mrbb2 1:6ef5bc60e69c 31 spurhaltung.speedr();
mrbb2 1:6ef5bc60e69c 32 }
mrbb2 1:6ef5bc60e69c 33
mrbb2 1:6ef5bc60e69c 34 controller.setDesiredSpeedLeft(0.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 35 controller.setDesiredSpeedRight(0.0f);
mrbb2 1:6ef5bc60e69c 36 }
mrbb2 1:6ef5bc60e69c 37
mrbb2 1:6ef5bc60e69c 38 void Motion::drehenl90()
mrbb2 1:6ef5bc60e69c 39 {
mrbb2 1:6ef5bc60e69c 40 controller.resetCounter();
mrbb2 1:6ef5bc60e69c 41 int lastCountRight = counterRight.read();
mrbb2 1:6ef5bc60e69c 42
mrbb2 1:6ef5bc60e69c 43 while(counterRight.read()-lastCountRight>(-1.15*1260)) {
mrbb2 1:6ef5bc60e69c 44 controller.setDesiredSpeedLeft(-150.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 45 controller.setDesiredSpeedRight(-150.0f);
mrbb2 1:6ef5bc60e69c 46 }
mrbb2 1:6ef5bc60e69c 47
mrbb2 1:6ef5bc60e69c 48 controller.setDesiredSpeedLeft(0.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 49 controller.setDesiredSpeedRight(0.0f);
mrbb2 1:6ef5bc60e69c 50
mrbb2 1:6ef5bc60e69c 51 controller.resetCounter();
mrbb2 1:6ef5bc60e69c 52 int lastCountLeft = counterLeft.read();
mrbb2 1:6ef5bc60e69c 53
mrbb2 1:6ef5bc60e69c 54 while(counterLeft.read()-lastCountLeft<(2.094*1260)) {
mrbb2 1:6ef5bc60e69c 55 controller.setDesiredSpeedLeft(spurhaltung.speedr()); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 56 controller.setDesiredSpeedRight(-spurhaltung.speedl());
mrbb2 1:6ef5bc60e69c 57 spurhaltung.speedl();
mrbb2 1:6ef5bc60e69c 58 spurhaltung.speedr();
mrbb2 1:6ef5bc60e69c 59 }
mrbb2 1:6ef5bc60e69c 60
mrbb2 1:6ef5bc60e69c 61 controller.setDesiredSpeedLeft(0.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 62 controller.setDesiredSpeedRight(0.0f);
mrbb2 1:6ef5bc60e69c 63
mrbb2 1:6ef5bc60e69c 64 }
mrbb2 1:6ef5bc60e69c 65
mrbb2 1:6ef5bc60e69c 66 void Motion::drehenr90()
mrbb2 1:6ef5bc60e69c 67 {
mrbb2 1:6ef5bc60e69c 68 controller.resetCounter();
mrbb2 1:6ef5bc60e69c 69 int lastCountLeft = counterLeft.read();
mrbb2 1:6ef5bc60e69c 70
mrbb2 1:6ef5bc60e69c 71 while(counterLeft.read()-lastCountLeft<(1.15*1260)) {
mrbb2 1:6ef5bc60e69c 72 controller.setDesiredSpeedLeft(150.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 73 controller.setDesiredSpeedRight(150.0f);
mrbb2 1:6ef5bc60e69c 74 }
mrbb2 1:6ef5bc60e69c 75
mrbb2 1:6ef5bc60e69c 76 controller.setDesiredSpeedLeft(0.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 77 controller.setDesiredSpeedRight(0.0f);
mrbb2 1:6ef5bc60e69c 78
mrbb2 1:6ef5bc60e69c 79 controller.resetCounter();
mrbb2 1:6ef5bc60e69c 80 lastCountLeft = counterLeft.read();
mrbb2 1:6ef5bc60e69c 81
mrbb2 1:6ef5bc60e69c 82 while(counterLeft.read()-lastCountLeft<(2.094*1260)) {
mrbb2 1:6ef5bc60e69c 83 controller.setDesiredSpeedLeft(spurhaltung.speedr()); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 84 controller.setDesiredSpeedRight(-spurhaltung.speedl());
mrbb2 1:6ef5bc60e69c 85 spurhaltung.speedl();
mrbb2 1:6ef5bc60e69c 86 spurhaltung.speedr();
mrbb2 1:6ef5bc60e69c 87 }
mrbb2 1:6ef5bc60e69c 88
mrbb2 1:6ef5bc60e69c 89 controller.setDesiredSpeedLeft(0.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 90 controller.setDesiredSpeedRight(0.0f);
mrbb2 1:6ef5bc60e69c 91 }
mrbb2 1:6ef5bc60e69c 92
mrbb2 1:6ef5bc60e69c 93 void Motion::drehen180()
mrbb2 1:6ef5bc60e69c 94 {
mrbb2 1:6ef5bc60e69c 95 controller.resetCounter();
mrbb2 1:6ef5bc60e69c 96 int lastCountRight = counterRight.read();
mrbb2 1:6ef5bc60e69c 97
mrbb2 1:6ef5bc60e69c 98 while(counterRight.read()-lastCountRight>(-2.3*1260)) {
mrbb2 1:6ef5bc60e69c 99 controller.setDesiredSpeedLeft(150.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 100 controller.setDesiredSpeedRight(150.0f);
mrbb2 1:6ef5bc60e69c 101 }
mrbb2 1:6ef5bc60e69c 102
mrbb2 1:6ef5bc60e69c 103 controller.setDesiredSpeedLeft(0.0f); //Drehzahl in [rpm]
mrbb2 1:6ef5bc60e69c 104 controller.setDesiredSpeedRight(0.0f);
mrbb2 1:6ef5bc60e69c 105 }
baumgant 0:b886f13e4ac6 106
baumgant 0:b886f13e4ac6 107 void Motion::switching(int D)
baumgant 0:b886f13e4ac6 108 {
baumgant 0:b886f13e4ac6 109 switch(D) {
baumgant 0:b886f13e4ac6 110 case 1:
mrbb2 1:6ef5bc60e69c 111 // Left
mrbb2 1:6ef5bc60e69c 112 drehenl90();
baumgant 0:b886f13e4ac6 113 // Forward
mrbb2 1:6ef5bc60e69c 114 //gerade();
baumgant 0:b886f13e4ac6 115 break;
baumgant 0:b886f13e4ac6 116
baumgant 0:b886f13e4ac6 117 case 2:
mrbb2 1:6ef5bc60e69c 118 // Forward
mrbb2 1:6ef5bc60e69c 119 gerade();
baumgant 0:b886f13e4ac6 120 break;
baumgant 0:b886f13e4ac6 121
baumgant 0:b886f13e4ac6 122 case 3:
mrbb2 1:6ef5bc60e69c 123 // Right
mrbb2 1:6ef5bc60e69c 124 drehenr90();
baumgant 0:b886f13e4ac6 125 // Forward
mrbb2 1:6ef5bc60e69c 126 gerade();
baumgant 0:b886f13e4ac6 127 break;
baumgant 0:b886f13e4ac6 128
mrbb2 1:6ef5bc60e69c 129 case 4:
mrbb2 1:6ef5bc60e69c 130 // 180 Drehen
mrbb2 1:6ef5bc60e69c 131 drehen180();
mrbb2 1:6ef5bc60e69c 132 // Forward
mrbb2 1:6ef5bc60e69c 133 gerade();
mrbb2 1:6ef5bc60e69c 134 break;
baumgant 0:b886f13e4ac6 135
baumgant 0:b886f13e4ac6 136 default:
baumgant 0:b886f13e4ac6 137 controller.setDesiredSpeedLeft(0.0f); //Drehzahl in [rpm]
baumgant 0:b886f13e4ac6 138 controller.setDesiredSpeedRight(0.0f);
baumgant 0:b886f13e4ac6 139 }
mrbb2 1:6ef5bc60e69c 140
mrbb2 1:6ef5bc60e69c 141
mrbb2 1:6ef5bc60e69c 142 /*void Motion::switching()
mrbb2 1:6ef5bc60e69c 143 {
mrbb2 1:6ef5bc60e69c 144 if(Sensor4.read() == 0) {
mrbb2 1:6ef5bc60e69c 145 // Left
mrbb2 1:6ef5bc60e69c 146 drehenl90();
mrbb2 1:6ef5bc60e69c 147 // Forward
mrbb2 1:6ef5bc60e69c 148 gerade();
mrbb2 1:6ef5bc60e69c 149 } else if (Sensor1.read() == 0) {
mrbb2 1:6ef5bc60e69c 150 // Forward
mrbb2 1:6ef5bc60e69c 151 gerade();
mrbb2 1:6ef5bc60e69c 152 } else if (Sensor5.read() == 0) {
mrbb2 1:6ef5bc60e69c 153 // Right
mrbb2 1:6ef5bc60e69c 154 drehenr90();
mrbb2 1:6ef5bc60e69c 155 // Forward
mrbb2 1:6ef5bc60e69c 156 gerade();
mrbb2 1:6ef5bc60e69c 157 } else {
mrbb2 1:6ef5bc60e69c 158 // 180 Drehen
mrbb2 1:6ef5bc60e69c 159 drehen180();
mrbb2 1:6ef5bc60e69c 160 // Forward
mrbb2 1:6ef5bc60e69c 161 gerade();
mrbb2 1:6ef5bc60e69c 162
mrbb2 1:6ef5bc60e69c 163 }*/
baumgant 0:b886f13e4ac6 164
baumgant 0:b886f13e4ac6 165 }