Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of PES1 by
main.cpp
00001 #include <mbed.h> 00002 #include "Roboter.h" 00003 00004 00005 //Periphery for Encoder 00006 EncoderCounter counterLeft(PB_6, PB_7); 00007 EncoderCounter counterRight(PA_6, PC_7); 00008 00009 00010 //Periphery for distance sensors 00011 AnalogIn distance(PB_1); 00012 DigitalOut enable(PC_1); 00013 DigitalOut bit0(PH_1); 00014 DigitalOut bit1(PC_2); 00015 DigitalOut bit2(PC_3); 00016 IRSensor sensors[6]; 00017 00018 // Periphery for servos 00019 Servo servo1(PB_13); //Greiferservo Anschluss D2 00020 Servo servo2(PA_10); //Armservo Anschluss D0 00021 00022 //Periphery for Switch ON/OFF 00023 DigitalIn switchOnOff(USER_BUTTON); 00024 00025 //motor stuff 00026 DigitalOut enableMotorDriver(PB_2); 00027 PwmOut pwmL( PA_8 ); 00028 PwmOut pwmR( PA_9 ); 00029 00030 //indicator leds arround robot 00031 DigitalOut leds[] = { PC_8, PC_6, PB_12, PA_7, PC_0, PC_9 }; 00032 00033 // Erstellen eines Roboterobjekts 00034 Roboter roboter1(&distance, &bit0, &bit1, &bit2, &pwmL, &pwmR, &servo1, &servo2, &counterLeft, &counterRight, &enableMotorDriver); 00035 00036 int main() 00037 { 00038 int state = 0; // Diese Variable gibt an in welchem State man sich befindet 00039 int tempState = 2; // Wird benötig um zwischen Kameraauswertung und fahren zu wechseln 00040 int temp = 0; 00041 enable = 1; // Sensoren einschalten 00042 servo1.Enable(1500,20000); 00043 servo2.Enable(700,20000); 00044 wait(1); 00045 float camValue; 00046 00047 while(1) { 00048 00049 //printf("%d\n", state); 00050 00051 switch(state) { 00052 00053 case 0: // Roboter Anschalten mit Knopf 00054 printf("0"); 00055 00056 if (switchOnOff == 0) { // Bei Betätigung des Userbuttons wird das Programm gestartet 00057 state = 1; 00058 } 00059 00060 break; 00061 00062 case 1: 00063 //printf("1"); 00064 camValue = readCamera(state); 00065 state = roboter1.stateAuswahl(camValue, tempState, temp); // Case-Auswahl aufgrund von der Kamera 00066 break; 00067 00068 case 2: 00069 //printf("2"); 00070 tempState = 2; 00071 temp = 0; 00072 state = roboter1.kreisFahren(); // Im Kreis fahren 00073 break; 00074 00075 00076 case 3: 00077 //printf("3"); 00078 tempState = 3; 00079 temp = 0; 00080 roboter1.ausweichen1(); // Hindernissen ausweichen 00081 state = roboter1.geradeFahren(); // Gerade Fahren 00082 break; 00083 00084 00085 case 4: 00086 //printf("4"); 00087 tempState = 2; 00088 temp = 0; 00089 roboter1.anfahren(camValue); // Roboter erkennt grünen Klotz, Klotz wird angefahren 00090 state = roboter1.readSensors(); 00091 break; 00092 00093 case 5: 00094 //printf("5"); 00095 state = roboter1.pickup(); // Aufnehmen des Klotzes 00096 temp = 5; 00097 break; 00098 00099 case 6: 00100 //printf("6"); 00101 temp =0; 00102 state = roboter1.ausweichen2(); // Hindernissen ausweichen während Klotz angefahren wird 00103 break; 00104 00105 case 7: 00106 //printf("7"); 00107 temp = 0; 00108 state = roboter1.back(); 00109 break; 00110 00111 default: 00112 break; 00113 00114 } 00115 //printf("%d\n", state); 00116 wait(0.001f); 00117 } 00118 }
Generated on Wed Jul 20 2022 10:49:35 by
1.7.2
