Hallo Edma-Freunde,
Bei mir funktioniert Fahrmodus 4 (Finde Draht) nicht. Edma bleibt einfach stehen. Egal ob ich Modus 4 manuell in den Konfigurationswerten eingebe oder die Batterie den Niedrigstand erreicht. Da sollte Edma ja dann am Draht entlang fahren bis Hindernis.
Danke für Tipps.
Viele Grüße
Finde Draht geht nicht Modus 4
Re: Finde Draht geht nicht Modus 4
Hi,
ich glaube, beim aktuellen Sofwarestand gibt es keinen Modus 4 - Finde Draht (mehr).
Gruß
Bastian
ich glaube, beim aktuellen Sofwarestand gibt es keinen Modus 4 - Finde Draht (mehr).
Gruß
Bastian
Re: Finde Draht geht nicht Modus 4
Hallo,
das ist aber sehr schade, da ich eine Ladestation benötige.
Habe mir die Datei edma.ccp angesehen. Der Suchmodus ist etwas weiter unten da
...
weiter unten ist der Modus auskommentiert.
Lässt sich das durch Entfernen der Auskommentierung wiederbeleben? Wenn ich die Datei editiere muss ich da einen make im root-Verzeichnis machen?
Viele Dank für Hilfe / Infos
Chris
das ist aber sehr schade, da ich eine Ladestation benötige.
Habe mir die Datei edma.ccp angesehen. Der Suchmodus ist etwas weiter unten da
Code: Alles auswählen
//Wenn Automodus
case HS_AUTO:
switch (edma->gDrive_Mode)
{
case DRIVE_QUADER:
Drive_Quader();
break;
case DRIVE_HINHER:
break;
case DRIVE_CHAOSM:
Drive_Chaos();
break;
case DRIVE_CHAOSO:
Drive_Chaos();
break;
}
break;
case HS_SOLAR_LADEN:
SolarLaden();
break;
case HS_LADE_SUCH:
StationSuchen();
break;
case HS_LADEN:
edma->PWM(0,0,0);
break;
}
weiter unten ist der Modus auskommentiert.
Code: Alles auswählen
//EdMa fährt zum Draht, dreht dann etwas links oder rechts, fährt dann am Draht entlang, bis
//der Gegenfahrsensor auslöst.
if (edma->gSchritt == 0) edma->gSchritt = ST_FAHREN_BIS_HINDERNIS;
switch(edma->gSchritt)
{
case ST_FAHREN_BIS_HINDERNIS:
edma->PWM(edma->gPWM_Vor, edma->gPWM_Vor, 0); //Um das Mähwerk abzuschalten.
if (edma->FahrenBisHindernis())
edma->gSchritt = ST_FAHRE_LEICHT_L;
break;
/* case ST_ZURUECK:
if (edma->Zurueck())
{
edma->NeueRichtungZufall();
edma->gSchritt = ST_DREHEN;
}
break;
case ST_DREHEN:
if (edma->Drehen(1500,1)) //Links drehen
{
edma->gSchritt = ST_FAHRE_LEICHT_R;
sprintf(edma->gZS_Text,"leicht rechts");
}
break;*/
case ST_FAHRE_LEICHT_L:
edma->PWM(edma->gPWM_Dreh_Vor / (-2), edma->gPWM_Dreh_Vor, 0); //20% weniger bei rechts
if (edma->AntL() == 2)
{
edma->gSchritt = ST_FAHRE_LEICHT_R;
sprintf(edma->gZS_Text,"leicht rechts");
}
if (edma->Gegen())
{
sprintf(edma->gZS_Text,"gegen");
edma->PWM(0,0,0);
edma->gSchritt = 0;
edma->gHStatus = HS_LADEN;
}
break;
Lässt sich das durch Entfernen der Auskommentierung wiederbeleben? Wenn ich die Datei editiere muss ich da einen make im root-Verzeichnis machen?
Viele Dank für Hilfe / Infos
Chris
Re: Finde Draht geht nicht Modus 4
Hallo Chris,
sorry für die späte Antwort.
Musste mir das erst einmal wieder ansehen.
Den Code in der edma.cpp kannst du so lassen.
In der tedma.hpp wird ab Zeile 315 das Laden behandelt.
In der ini muss bei SolarLaden eine 0 stehen. (Dann sucht er die Ladestation.)
Falls du was am Code änderst:
Dann ins Verzeichhnis /root wechseln und make eingeben.
Dann kompiliert er alle Dateien und führt einen Neustart aus.
Gruß
Bastian
sorry für die späte Antwort.
Musste mir das erst einmal wieder ansehen.
Den Code in der edma.cpp kannst du so lassen.
In der tedma.hpp wird ab Zeile 315 das Laden behandelt.
In der ini muss bei SolarLaden eine 0 stehen. (Dann sucht er die Ladestation.)
Code: Alles auswählen
315 //if (this->gHStatus != HS_LADEN && this->gHStatus == HS_AUTO) this->gHStatus = HS_LADE_SUCH;
316 //Batteriespannung prüfen.
317
318 if (this->zBatterie->AbgelaufenSek(30))
319 {
320 if(this->gBatt <= this->gBattLeer && this->gBattLaden == 0 && this->gHStatus == HS_AUTO)
321 lBattLeerCnt++;
322 else
323 lBattLeerCnt = 0;
324
325 if(this->gBatt >= this->gBattVoll && this->gBattLaden == 1)
326 lBattVollCnt++;
327 else
328 lBattVollCnt = 0;
329
330 printf("Batt: %i V: %i L: %i\n", gBatt, lBattVollCnt, lBattLeerCnt);
331 sprintf(this->gZS_Text, "Batt: %i V: %i L: %i\n", gBatt, lBattVollCnt, lBattLeerCnt);
332 }
333
334 if (lBattLeerCnt >= 3)
335 {
336 this->gBattLaden = 1;
337 lBattLeerCnt = 0;
338 lHStatus_Rett = this->gHStatus;
339
340 if (this->gSolarladen)
341 {
342 //Solar laden aktivieren
343 this->gHStatus = HS_SOLAR_LADEN;
344 }
345 else
346 {
347 //Stationsladen aktivieren
348 this->gHStatus = HS_LADE_SUCH;
349 }
350 }
351
352 if (lBattVollCnt >= 3)
353 {
354 lBattVollCnt = 0;
355 this->gBattLaden = 0;
356 this->zTotmann->Reset(); //Zeit zurücksetzen
357 sprintf(this->gZS_Text, "BattVoll - Totmann reset");
358 this->gHStatus = lHStatus_Rett;
359
360 }
Dann ins Verzeichhnis /root wechseln und make eingeben.
Dann kompiliert er alle Dateien und führt einen Neustart aus.
Gruß
Bastian
Re: Finde Draht geht nicht Modus 4
Hallo vielen herzlichen Dank,
das werde ich ausprobieren und hoffe das bekomme ich hin.
Danke und viele Grüße
Chris
das werde ich ausprobieren und hoffe das bekomme ich hin.
Danke und viele Grüße
Chris