/ Mbed 2 deprecated Rome_P1

Dependencies:   mbed

Committer:
wengefa1
Date:
Wed Feb 26 14:20:16 2020 +0000
Revision:
2:f381fc3a8eaf
Parent:
1:8b600c187fe6
Motor Controller added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wengefa1 0:c88f41ac2cb7 1 #include "mbed.h"
wengefa1 0:c88f41ac2cb7 2 #include "IRSensor.h"
wengefa1 2:f381fc3a8eaf 3 #include "Controller.h"
wengefa1 0:c88f41ac2cb7 4
wengefa1 0:c88f41ac2cb7 5 DigitalOut myled(LED1);
wengefa1 0:c88f41ac2cb7 6 DigitalIn mybutton(BUTTON1);
wengefa1 0:c88f41ac2cb7 7
wengefa1 0:c88f41ac2cb7 8 AnalogIn v_distance(PA_0); // Kreieren der Ein- und Ausgangsobjekte
wengefa1 0:c88f41ac2cb7 9 DigitalOut enable(PG_1);
wengefa1 0:c88f41ac2cb7 10 DigitalOut bit0(PF_0);
wengefa1 0:c88f41ac2cb7 11 DigitalOut bit1(PF_1);
wengefa1 0:c88f41ac2cb7 12 DigitalOut bit2(PF_2);
wengefa1 0:c88f41ac2cb7 13
wengefa1 0:c88f41ac2cb7 14 DigitalOut led0(PD_4);
wengefa1 0:c88f41ac2cb7 15 DigitalOut led1(PD_3);
wengefa1 0:c88f41ac2cb7 16 DigitalOut led2(PD_6);
wengefa1 0:c88f41ac2cb7 17 DigitalOut led3(PD_2);
wengefa1 0:c88f41ac2cb7 18 DigitalOut led4(PD_7);
wengefa1 0:c88f41ac2cb7 19 DigitalOut led5(PD_5);
wengefa1 0:c88f41ac2cb7 20
wengefa1 1:8b600c187fe6 21 DigitalOut en_Motor(PG_0);
wengefa1 1:8b600c187fe6 22 DigitalIn Error_Motor(PD_1);
wengefa1 1:8b600c187fe6 23 DigitalIn Warn_Motor(PD_0);
wengefa1 2:f381fc3a8eaf 24 PwmOut MotorPWMLeft(PF_9);
wengefa1 2:f381fc3a8eaf 25 PwmOut MotorPWMRight(PF_8);
wengefa1 2:f381fc3a8eaf 26 EncoderCounter cnt_Left(PD_12,PD_13);
wengefa1 2:f381fc3a8eaf 27 EncoderCounter cnt_Right(PB_4, PC_7);
wengefa1 0:c88f41ac2cb7 28
wengefa1 0:c88f41ac2cb7 29 IRSensor S_hinten(v_distance, bit0 , bit1, bit2, 0);
wengefa1 0:c88f41ac2cb7 30 IRSensor S_hinten_links(v_distance, bit0 , bit1, bit2, 1);
wengefa1 0:c88f41ac2cb7 31 IRSensor S_vorne_links(v_distance, bit0 , bit1, bit2, 2);
wengefa1 0:c88f41ac2cb7 32 IRSensor S_vorne(v_distance, bit0 , bit1, bit2, 3);
wengefa1 0:c88f41ac2cb7 33 IRSensor S_vorne_rechts(v_distance, bit0 , bit1, bit2, 4);
wengefa1 0:c88f41ac2cb7 34 IRSensor S_hinten_rechts(v_distance, bit0 , bit1, bit2, 5);
wengefa1 0:c88f41ac2cb7 35
wengefa1 2:f381fc3a8eaf 36 Controller controller(MotorPWMLeft, MotorPWMRight, cnt_Left, cnt_Right);
wengefa1 0:c88f41ac2cb7 37 int main() {
wengefa1 1:8b600c187fe6 38 //Set Motor Settings
wengefa1 1:8b600c187fe6 39 en_Motor = 1;
wengefa1 1:8b600c187fe6 40
wengefa1 2:f381fc3a8eaf 41 //Set IR Settings
wengefa1 0:c88f41ac2cb7 42 enable = 1;
wengefa1 1:8b600c187fe6 43
wengefa1 1:8b600c187fe6 44
wengefa1 0:c88f41ac2cb7 45 while(1) {
wengefa1 2:f381fc3a8eaf 46 float dist_hinten = S_hinten.read(); // gibt die Distanz in [m] zurueck
wengefa1 2:f381fc3a8eaf 47 float dist_hinten_links = S_hinten_links.read();
wengefa1 2:f381fc3a8eaf 48 float dist_vorne_links= S_vorne_links.read();
wengefa1 2:f381fc3a8eaf 49 float dist_vorne = S_vorne.read();
wengefa1 2:f381fc3a8eaf 50 float dist_vorne_rechts = S_vorne_rechts.read();
wengefa1 2:f381fc3a8eaf 51 float dist_hinten_rechts = S_hinten_rechts.read();
wengefa1 2:f381fc3a8eaf 52
wengefa1 0:c88f41ac2cb7 53
wengefa1 2:f381fc3a8eaf 54 if(dist_hinten < 0.2f){
wengefa1 0:c88f41ac2cb7 55 led0 = 1;
wengefa1 0:c88f41ac2cb7 56 }else{
wengefa1 0:c88f41ac2cb7 57 led0 = 0;
wengefa1 0:c88f41ac2cb7 58 }
wengefa1 2:f381fc3a8eaf 59 if(dist_hinten_links < 0.2f){
wengefa1 0:c88f41ac2cb7 60 led1 = 1;
wengefa1 0:c88f41ac2cb7 61 }else{
wengefa1 0:c88f41ac2cb7 62 led1 = 0;
wengefa1 0:c88f41ac2cb7 63 }
wengefa1 2:f381fc3a8eaf 64 if(dist_vorne_links < 0.2f){
wengefa1 0:c88f41ac2cb7 65 led2 = 1;
wengefa1 0:c88f41ac2cb7 66 }else{
wengefa1 0:c88f41ac2cb7 67 led2 = 0;
wengefa1 0:c88f41ac2cb7 68 }
wengefa1 2:f381fc3a8eaf 69 if(dist_vorne < 0.2f){
wengefa1 0:c88f41ac2cb7 70 led3 = 1;
wengefa1 0:c88f41ac2cb7 71 }else{
wengefa1 0:c88f41ac2cb7 72 led3 = 0;
wengefa1 0:c88f41ac2cb7 73 }
wengefa1 2:f381fc3a8eaf 74 if(dist_vorne_rechts < 0.2f){
wengefa1 0:c88f41ac2cb7 75 led4 = 1;
wengefa1 0:c88f41ac2cb7 76 }else{
wengefa1 0:c88f41ac2cb7 77 led4 = 0;
wengefa1 0:c88f41ac2cb7 78 }
wengefa1 2:f381fc3a8eaf 79 if(dist_hinten_rechts < 0.2f){
wengefa1 0:c88f41ac2cb7 80 led5 = 1;
wengefa1 0:c88f41ac2cb7 81 }else{
wengefa1 0:c88f41ac2cb7 82 led5 = 0;
wengefa1 0:c88f41ac2cb7 83 }
wengefa1 2:f381fc3a8eaf 84
wengefa1 2:f381fc3a8eaf 85 controller.setDesiredSpeedLeft(50.0);
wengefa1 2:f381fc3a8eaf 86 controller.setDesiredSpeedRight(-50.0);
wengefa1 2:f381fc3a8eaf 87
wengefa1 2:f381fc3a8eaf 88 printf("Soll Links:%f Ist Links%f Soll Rechts:%f Ist Rechts:%f \n\r",controller.getDesSpeedLeft(),controller.getSpeedLeft(),controller.getDesSpeedRight(),controller.getSpeedRight());
wengefa1 2:f381fc3a8eaf 89
wengefa1 0:c88f41ac2cb7 90 }
wengefa1 0:c88f41ac2cb7 91 }