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.
Dependencies: EPOS2 mbed-rtos mbed
Fork of MarsRover_ExoMars by
Diff: main.cpp
- Revision:
- 3:fbc9de097e4f
- Parent:
- 2:0f4e77a22fd9
- Child:
- 4:8fb30d6c2855
--- a/main.cpp Wed Sep 21 06:52:06 2016 +0000
+++ b/main.cpp Thu Sep 22 07:39:21 2016 +0000
@@ -7,8 +7,6 @@
//***********************************************************************************************************************************//
Serial pc(USBTX, USBRX); // (tx, rx)
-
-
CAN can(p9, p10); // Can Pin def
/*
@@ -28,7 +26,9 @@
int current_step = 1;
int counter_s = false;
int counter_s2 = false;
-*/
+*/
+int ausfahren = false;
+int einfahren = false;
int main(){ ///////// Main
pc.baud(9600);
@@ -85,24 +85,24 @@
while(1){
switch (current_step){
case 1://HOMING:
- MyEpos2.Homing(); //Solarpanel_Aussen_Links
- MyEpos4.Homing(); //Solarpanel_Aussen_Rechts
+ MyEpos1.Homing(); //Solarpanel_Aussen_Links
+ MyEpos3.Homing(); //Solarpanel_Aussen_Rechts
MyEpos7.Homing(); //Bohrer
- while (MyEpos2.GetDigIn(4)!1) or (MyEpos4.GetDigIn(4)!1){ //Kontrolle ob: Solarpanels Aussen in Grundposition
+ while (MyEpos2.GetDigIn(4)!1) or (MyEpos4.GetDigIn(4)!1){ //warten solange Solarpanels Aussen NICHT in Grundposition
wait(0.1);
}
- MyEpos1.Homing(); //Solarpanel_Innen_Links
- MyEpos3.Homing(); //Solarpanel_Innen_Rechts
+ MyEpos2.Homing(); //Solarpanel_Innen_Links
+ MyEpos4.Homing(); //Solarpanel_Innen_Rechts
- while (MyEpos7.GetDigIn(4)!1){ //Kontrolle ob: Bohrer eingefahren
+ while (MyEpos7.GetDigIn(4)!1){ //warten solange Bohrer NICHT eingefahren
wait(0.1);
}
MyEpos6.Homing();//Bohrgestell
- while (MyEpos1.GetDigIn(4)!1) or (MyEpos3.GetDigIn(4)!1) { //Kontrolle ob: Solarpanels Innen in Grundposition
+ while (MyEpos1.GetDigIn(4)!1) or (MyEpos3.GetDigIn(4)!1) { //warten solange Solarpanels Innen NICHT in Grundposition
wait(0.1);
}
MyEpos5.Homing();//Kopf
- while (MyEpos5.GetDigIn(4)!1) { //Kontrolle ob: Kopf in Grundposition
+ while (MyEpos5.GetDigIn(4)!1) { //warten solange Kopf NICHT in Grundposition
wait(0.1);
}
current_step = 2;//BEREIT;
@@ -113,20 +113,80 @@
while (MyEpos6.GetDigIn(1)!1) { //Kontrolle ob: Kopf in Grundposition
wait_ms(10);
}
- current_step = 3;//START
+ current_step = 3;//START_AUSFAHREN
break;
- case 3://START:
- MyEpos2.MoveAbsolute(500,20,500,500);
- MyEpos4.MoveAbsolute(500,20,500,500);
+ case 3://START_AUSFAHREN:
+ while(ausfahren == true){
+ MyEpos5.MoveAbsolute(0,200,500,500); //Kopf
+ if (MyEpos5.TargetReached()==1){
+ MyEpos2.MoveAbsolute(500,200,500,500); //Panel_Innen_Links
+ MyEpos4.MoveAbsolute(500,200,500,500); //Panel_Innen_Rechts
+ if (MyEpos2.TargetReached()==1 && MyEpos4.TargetReached()==1){
+ MyEpos1.MoveAbsolute(0,200,500,500); //Panel_Aussen_Links
+ MyEpos3.MoveAbsolute(0,200,500,500); //Panel_Aussen_Rechts
+ if (MyEpos1.TargetReached()==1 && MyEpos3.TargetReached()==1){
+ MyEpos6.MoveAbsolute(0,200,500,500); //Bohrgestell
+ if (MyEpos6.TargetReached()==1){
+ MyEpos7.MoveAbsolute(0,200,500,500); //Bohrer
+ if (MyEpos7.TargetReached()==1){
+ ausfahren = false;
+ einfahren = true;
+ current_step = 4;//START_EINFAHREN
+ }
+ }
+ }
+ }
+ }
+ }
+
break;
-
- case 4://STATE_OFF:
+ case 4://Start_EINFAHREN
+ while(einfahren == true){
+ MyEpos7.MoveAbsolute(0,200,500,500); //Bohrer
+ if (MyEpos7.TargetReached()==1){
+ MyEpos6.MoveAbsolute(0,200,500,500); //Bohrgestell
+ if (MyEpos6.TargetReached()==1){
+ MyEpos1.MoveAbsolute(0,200,500,500); //Panel_Aussen_Links
+ MyEpos3.MoveAbsolute(0,200,500,500); //Panel_Aussen_Rechts
+ if (MyEpos1.TargetReached()==1 && MyEpos3.TargetReached()==1){
+ MyEpos2.MoveAbsolute(0,200,500,500); //Panel_Innen_Links
+ MyEpos4.MoveAbsolute(0,200,500,500); //Panel_Innen_Rechts
+ if (MyEpos2.TargetReached()==1 && MyEpos4.TargetReached()==1){
+ MyEpos5.MoveAbsolute(0,200,500,500); //Kopf
+ if (MyEpos5.TargetReached()==1){
+ einfahren = false;
+ current_step = 2;//Bereit
+ }
+ }
+ }
+ }
+ }
+ }
+
+ break;
+
+
+ case 5://USV:
+ while (MyEpos.GetDigIn()){
+ MyEpos1.MoveAbsolute(0,200,500,500); //Panel_Aussen_Links
+ MyEpos3.MoveAbsolute(0,200,500,500); //Panel_Aussen_Rechts
+ MyEpos7.MoveAbsolute(0,200,500,500); // Bohrer
+ if (MyEpos1.TargetReached()==1 && MyEpos3.TargetReached()==1){
+ MyEpos2.MoveAbsolute(0,200,500,500); //Panel_Innen_Links
+ MyEpos4.MoveAbsolute(0,200,500,500); //Panel_Innen_Rechts
+ if (MyEpos2.TargetReached()==1 && MyEpos4.TargetReached()==1){
+ MyEpos5.MoveAbsolute(0,200,500,500); //Kopf
+ }
+ if (MyEpos7.TargetReached()==1){
+ MyEpos6.MoveAbsolute(0,200,500,500); //Bohrgestell
+ }
+ }
break;
- case 5://ERROR2
+ case 6://ERROR2
break;
}//case
}//while
