Ambrogio l50 umbau, wie schon wieder:-))

loggydrop

New member
Hallo zusammen,
ich bin der Micha und lese schon seit längerem begeistert bei euch.
ich hatte bis dieses Jahr einen gut funktionierenden L50.
Nachdem er den Mutterkartentot gestorben war und 550€ mein Buget dann
doch etwas überschreiten habe ich beschlossen einen Umbau zu wagen.
Problem wie immer im Leben kein Plan wie.
Wie weit ist das Mähen in beide Richtungen jetzt eigentlich vortgeschritten?
Fand diese Art immer sehr Zeitsparend und effektiv.
Fakt ist das ich jetzt alles was ich zum starten brauche geordert habe und es nun kein zurück mehr gibt.
Mein Mäher ist bis auf die Grassensoren ( die immer sehr gut funktioniert haben)und die Motoren nackt.
Ich werde wenn ich alles zusammen habe ersteinmal versuchen die ganzen Bauteile unter zu bekommen.
Ich möchte auch garnicht zu viel einbauen alles quasi in minimal Ausführung.
er soll beide Antriebsmotoren Drehzahlüberwachen und halt inerhalb des Schleifendrahtes bleiben.
Hindernisse noch erkennen und selbständig in Ladestation fahren,das war es schon.
Arbeitsweise hatte ich mir so vorgestellt.
Aufahrt aus Ladestation und abfahren der äußeren Schleife, dann eigendlichen Mähvorgang starten.
Da ich vom Programieren so garkein Plan hab hoffe ich auf die eine oder andere Hilfestellung.
Wie auch immer ich denke hier bei euch bin ich gut aufgehoben zumindest liest sich das so für mich.
Also wie auch immer, ich wünsche schon mal allen hier einen guten Rutsch und mehr wei gesagt wenn ich alles zusammen habe.
 
Hallo,
so mittlerweile habe ich alles zusammen und frage mich nun bei der Drehzahlerfassung was ist da zuverlässiger?
Einen Halllsensor oder eine Lichtschranke was würdet Ihr da Favoritisieren?
Danke im Vorraus ,
Gruß Micha
 
Drehzahl wofür ?
Mäher oder Antrieb ?

Für den Mäher würde ich einen Hall Sensor verwenden und für den Antrieb auch.

Lichtschranke auf dem Motor bringt, ja nach Geberscheibe sehr viele Impulse, die alle verarbeitet werden wollen.
Außerdem ist ein Lichtschranke Empfindlicher was Verschmutzung angeht.

Zuverlässig ist beides.

Stefan
 
Hallo Stephan,

wofür, ganz einfach ich möchte später einmal mit Navigation was machen damit der Mäher effektiver mäht.
Aber erstmal um ihn zum Geradeausfahren zu bewegen.
Abgenommen werden soll es an der Antriebswelle. da diese nur etwa 30 Umdrehungen pro Minute macht und ich nur eine ziemlich kleine Scheibe nehmen kann war die Idee eine Scheibe in Schwarz weis Aufteilung oder mit vielen Löchern zu machen und diese Dan Abzutasten.
Wie viele Impulse sind denn minimal als zuverlässig anzusehen?
Danke im Voraus
Micha
 
Hallo
endlich mal wieder was neues von mir :cheer:
Ich habe jetzt die Hallscheibe für die Drehzahlabfrage fertig und hoffe das die impulse ausreichen
um das anzupassen?!
Unten mal ein Foto dazu freu.
Eine Frage noch?
Was muß man tun um den Sketch von hier auf den Arduino zu bekommen lach.
Bei mir zeigt er beim überprüfen schon viele Fehler an.
Da ich es mit c und c++ nicht so habe häng ich da bißchen in der Luft.
Gruß an die Mower Gemeinde
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/3142/IMG_4891.jpg/
 
Zuletzt bearbeitet von einem Moderator:
Hallo Micha,
ich hatte mir letzten Sommer extra Schlitzscheiben für meinen Tianchenumbau fräsen lassen.
Damit hatte ich jedoch leider nur ca. 74 Impulse pro Radumdrehung bekommen. Mit diesen wenigen Impulsen ist es mir nur leiden nicht gelungen eine vernümftige Geradeausfahrt hin zu bekommen.

20160305_1418481.jpg


Würde mich mal echt Interessieren auf wie viele Pulse du kommst und wie dein Mower damit läuft.
Gruß
Stephan
Attachment: https://forum.ardumower.de/data/media/kunena/attachments/921/20160305_1418481.jpg/
 
Zuletzt bearbeitet von einem Moderator:
Hallo Stephan
danke für die Antwort.
Obwohl mich diese doch sehr demotiviert hat.
Wenn Deine 74 Impulse nicht gereicht haben dann werde ich damit erst recht keinen Erfolg haben.
Das Problem ist das der L50 an denn Antriebsmotoren keine Hall Sensoren hat.
was denkst Du wieviele Inpulse es mindestens sein müssen
LG Micha
 
Hallo,

nur kurz am Rande: es gibt zwei Verfahren um die Geschwindigkeit zu ermitteln:
1. Pulse pro Zeit
2. Zeit von Puls zu Puls

Wenn man keine große Anzahl Pulse hat, nimmt man die 2. Variante. Im Odometrie-Interrupt merkt man sich die Zeit seit dem letzten Puls bzw. ermittelt dort die Zeitdifferenz zum neuen.

Beispiel-Code für Arduino Mega 2560:


Code:
static unsigned long lastOdoTriggerTimeLeft = 0; // hier merken wir uns die Zeit seit letztem Puls
static unsigned long lastOdoTriggerTimeRight = 0;

static unsigned long odoTriggerTimeLeft = 0; // hier merken wir uns die Zeit von Puls zu Puls
static unsigned long odoTriggerTimeRight = 0; // hier merken wir uns die Zeit von Puls zu Puls
volatile byte oldOdoPins = 0;

// Interrupt wird für jeden Puls (links/rechts Rad) aufgerufen
ISR(PCINT2_vect, ISR_NOBLOCK){      
      unsigned long time = millis(); // hier bekommen wir die Zeit für neuen Puls
      const byte actPins = PINK; // PK4, PK6
      const byte setPins = (oldOdoPins ^ actPins);
      if (setPins & 0b00010000){
        // Puls linkes Rad
        if (time > lastOdoTriggerTimeLeft) odoTriggerTimeLeft = time - lastOdoTriggerTimeLeft;      
        lastOdoTriggerTimeLeft = time;
      }
      if (setPins & 0b01000000)  {      
        // Puls rechtes Rad    
        if (time > lastOdoTriggerTimeRight) odoTriggerTimeRight = time - lastOdoTriggerTimeRight;      
        lastOdoTriggerTimeRight = time;
      }
      oldOdoPins = actPins;
}


Irgendwo in der Programmschleife (loop):

// Berechnung der Geschwindigkeiten (rpm):
int ticksPerRevolution = 1060*2;
  
float motorLeftRpmCurr = 60.0 / ((float)ticksPerRevolution) / (((float)odoTriggerTimeLeft)/1000.0);
// wenn PWM < 0 Vorzeichen der Geschwindigkeit umkehren
if (motorLeftPWMCurr<0) motorLeftRpmCurr*=-1;

float  motorRightRpmCurr = 60.0 / ((float)ticksPerRevolution) / (((float)odoTriggerTimeRight)/1000.0);
// wenn PWM < 0 Vorzeichen der Geschwindigkeit umkehren
if (motorRightPWMCurr<0) motorRightRpmCurr*=-1;
 
Hallo Alexander,

danke für die Erklärung. Auch wenn ich wirklich nicht viel davon verstehe.

Hatte die ganze Sache hier doch etwas unterschätzt.

Möchte das Projekt jetzt aber erst Recht Wuppen.

Frage gibt es irgendwo eine Kurzanleitung welche Programme ich wo drauf spiele damit ich den Robbi
vielleicht doch noch im Sommer aufs Gras bekomme.
Meine es gibt so viele Programme in dem Download und eigendlich jedes zeigt mir Fehler beim überprüfen an.
Das versteh ich auch nicht.

Teile habe ich alle ausser die Spulen für die Schleife.

Und ich überlege ob dies Ardumower Board 1.2 (Prototyp)mir den Aufbau erleichtert.

Gruss
 
Hallo Micha,

das Wiki hast Du bestimmt schon durchgelesen - da steht alles Schritt für Schritt drin: http://wiki.ardumower.de/index.php?title=Ardumower_LP#Programm_downloaden_und_Arduino_programmieren
(Jeder darf und soll ausdrücklich am Wiki mitarbeiten - dann wird das hoffentlich verständlicher als es derzeit ist)

Achte darauf dass Du die aktuellste Arduino IDE verwendest und dass Du das richtige Board (Arduino Mega) gewählt hast. Dann sollte es wie im Wiki beschrieben funktionieren.

Gruss,
Alexander
 
Nachtrag: Wichtig für Arduino IDE 1.6 oder höher: Falls sich Unterordner im Code-Ordner befinden (z.B. "unused"), diese bitte vor dem Kompilieren löschen!
 
Oben