dreamworld
/
Praktikum2
afg
Revision 0:66569508393e, committed 2018-03-09
- Comitter:
- opplichr
- Date:
- Fri Mar 09 15:53:48 2018 +0000
- Commit message:
- sadgt;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Libary.lib Fri Mar 09 15:53:48 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/teams/dreamworld/code/Libary/#ffcaa578c2df
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Mar 09 15:53:48 2018 +0000 @@ -0,0 +1,124 @@ +#include "mbed.h" +#include "IRSensor.h" +#include "EncoderCounter.h" +#include "LowpassFilter.h" +#include "Controller.h" +#include "Motion.h" + +//Serial +Serial pc(USBTX, USBRX); +AnalogIn distance(PB_1); // Kreieren der Ein- und Ausgangsobjekte +DigitalOut enable(PC_1); +DigitalOut bit0(PH_1); +DigitalOut bit1(PC_2); +DigitalOut bit2(PC_3); + +//LED +DigitalOut led0(PC_8); +DigitalOut led1(PC_6); +DigitalOut led2(PB_12); +DigitalOut led3(PA_7); +DigitalOut led4(PC_0); +DigitalOut led5(PC_9); + +//Ansteuerung +DigitalOut enableMotorDriver(PB_2); +DigitalIn motorDriverFault(PB_14); +DigitalIn motorDriverWarning(PB_15); +PwmOut pwmLeft(PA_8); +PwmOut pwmRight(PA_9); + +DigitalIn Button(USER_BUTTON); + + + +int main() { + //Entcoder + EncoderCounter counterLeft(PB_6, PB_7); + EncoderCounter counterRight(PA_6, PC_7); + Controller controller(pwmLeft, pwmRight, counterLeft, counterRight); + int init=0; +int state=1; + + while(1) { + + IRSensor irSensor0(distance, bit0, bit1, bit2, 0); + IRSensor irSensor1(distance, bit0, bit1, bit2, 1); + IRSensor irSensor2(distance, bit0, bit1, bit2, 2); + IRSensor irSensor3(distance, bit0, bit1, bit2, 3); + IRSensor irSensor4(distance, bit0, bit1, bit2, 4); + IRSensor irSensor5(distance, bit0, bit1, bit2, 5); + // Objekte kreieren + enable = 1; + float distance0 = irSensor0.read(); + float distance1 = irSensor1.read(); + float distance2 = irSensor2.read(); + float distance3 = irSensor3.read(); + float distance4 = irSensor4.read(); + float distance5 = irSensor5.read(); + + switch (state){ + case 1: + enableMotorDriver = 0; // Schaltet den Leistungstreiber aus + + if (Button==0){ + enableMotorDriver = 1; state=2; + } + //if (init==1){enableMotorDriver = 0; state=2;} + + break; + case 2: + controller.setTranslationalVelocity(-5); + if (distance3 <= 0.2){ + state=6; + } + if (Button==0){ + state=5; + } + if (distance4 <=0.2){ + state=4; + controller.setTranslationalVelocity(0); + } + if (distance2 <=0.2){ + state=3; + controller.setTranslationalVelocity(0); + } + break; + case 3: + controller.setRotationalVelocity(-0.1); + if (Button==0){ + state=5;controller.setRotationalVelocity(0); + } + + if (distance2 <=0.2){ + state=3; + }else { controller.setRotationalVelocity(0); state=2;} + break; + case 4: + controller.setRotationalVelocity(0.1); + if (Button==0){ + state=5;controller.setRotationalVelocity(0); + } + if (distance4 <=0.2){ + state=4; + } else { controller.setRotationalVelocity(0); state=2;} + + break; + case 5: + controller.setTranslationalVelocity(0); + state=1; + break; + case 6: + controller.setTranslationalVelocity(5); + wait(1); + controller.setTranslationalVelocity(0); + controller.setRotationalVelocity(0.1); + wait(0.2); + controller.setRotationalVelocity(0); + state =2; + break; + } + + + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Mar 09 15:53:48 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/aa5281ff4a02 \ No newline at end of file