Odometrie nachrüsten

Hi
It is possible that 10000 interrupts reduce the speed of the arduino.
You can use the odo diviser on back pcb but not sure the short signal is detect.
Other possibility is to manuly open and close some line on the disk to have only 10 lines with the same open and close size.
Is it easy to fix the disk on the motor ??
 
Da es beim mähen immer viel Dreck gibt würde ich einen Hall Sensor verwenden.
Mit zwei Magneten hast du dann 200 Interrupts pro Umdrehung
 
Ist ist Not so easy.
Odometry ist am laufen...
Probleme :)
- je länger der Motor läuft umso langsamer werden die Signale, ich denke arduino ist überfordert...
- zur Zeit habe ich einen Unterschied von 1000 zu 650 von links zu rechts

So meine Überlegungen...
Was hat es mit dem Teiler auf der Rückseite des PCB 1.3 auf sich
Zur Zeit ist es gebrückt wie in der Anleitung /2 ? Wenn ich den zweiten Brücke /3? Was passiert wenn ich den 1 und 2 brücke...
Stelle ich in der Software den Wert mit Teiler oder ohne Teiler ein??
Kannh jemand aufklären?
Kann ich Software seitig mit wenig Aufwand jedes 5. Signal auswerten?
 
Hi habe mir die Teile auch bestellt, ich kann dir momentan noch nicht weiter helfen.
allerdings wollte ich die Odometrie an der Achse vom Rad betreiben und nicht am Motor, da an meinen Motoren kein platz ist.
an den Motoren hätte ich eh Hall-Sensoren verbaut!
https://www.ardumower.de/index.php/de/2014-09-11-11-52-24/anleitungen/2013-11-23-19-49-18/hallsensor
hast du die 3,3V Version oder die 5V von Amazon?
Läuft die 5V ver. auch mit dem PCB1.3 und dem DUE
Bin leider noch im Aufbau und noch nicht soweit!

LG der Olli
 
Hallo
Was ein Interrupt ist weist du? falls nicht hier die Kurzfassung.
Wenn der Sketch läuft kann es vorkommen das er ein Signal übersehen tut wenn er gerade einen Teil des Sketches durchläuft wo zum Beispiel eine Signaländerung stattfindet. Um das zu vermeiden kann man für einige Pins eine Interrupt Überwachung einschalten. Findet jetzt eine Signaländerung statt wird ein Interrupt ausgelöst. Dieser Interrupt sorgt dafür das das eigentliche Programm kurz unterbrochen wird und in einen Unterprogramm z.B ein Zähler hochgezählt wird. Wenn er das gemacht hat wird mit dem eigentlichen Programm an der unterbrochenen Stelle fortgefahren. Das sorgt dann dafür das alle Impulse erfasst werden.
Der Nachteil dabei ist das das eigentliche Programm dadurch langsamer wird und Auswirkungen auf den Programmablauf und der Geschwindigkeit hat.
Deswegen ist man bemüht nicht so viele Interrupts zu erzeugen.
Unser Motor erzeugt ca 1060 Impulse pro Umdrehung. Bei 2 Motoren wären das 2120 Interrupts pro Umdrehungen in einer Zeit von ca 2-3 Sekunden die eine Radumdrehung benötigt. Man kann sich vorstellen das der Prozessor damit eine Menge Arbeit hat.
Der Mega hat Schwierigkeiten beim Due ist es schon besser weil da der Prozessor eine höhere Leistung hat.
Daher ist man bemüht nicht zu viele Interrupts zu erzeugen damit der eigentliche Sketch noch flüssig verarbeitet werden kann.
Daher haben wir uns entschlossen ein Hardware Teiler auf die Platine mit aufzubauen um den Prozessor damit zu entlasten. Das ist nichts anderes als ein einstellbarer Hardware Teiler.
Das haben wir für die 2 Antriebsmotoren gemacht und für die Geschwindigkeitsüberwachung des Drehtellers.
Bei unseren Radmotoren haben wir ca 1060 Impulse pro Umdrehung. Wenn wir jetzt die 1 Brücke schließen ist ein Teiler von 2 Aktiv. Das heißt das der Arduino jetzt nur noch pro Radumdrehung 530 Impulse bekommt.
ursprüngliche Impulse / Teiler = ausgehende Impulse
Schließt man die Brücke 2 wäre der Teiler 3. 1024/3=341 Impulse.
usw......
Es darf aber immer nur eine Brücke geschlossen sein.
Bei Bedarf kann man sich dort auch ein Dilschalter im Rastermaß 1,27 aufsetzen.
Die Impulse haben ein Pegel von 5V. Wenn ein Duo verwendet wird, wird automatisch von der Platine das 5V Signal nach 3,3V angepasst durch ein Levelschifter der auf der Platine vorhanden mit ist.
Das einzige worauf man noch achten muss ist das der Sketch angepasst werden muss damit das Programm immer weiß wie viel Impulse eine Radumdrehung sind damit die Berechnungen korrekt ausgeführt werden.

Dafür gibt es in der Mower.cpp Datei folgende Einstellung zu ändern.

Code:
#if defined (PCB_1_3)    
		#define DIVIDER_DIP_SWITCH  2             //  sets used PCB odometry divider (2=DIV/2, 4=DIV/4, 8=DIV/8, etc.) 
		odometryTicksPerRevolution /= DIVIDER_DIP_SWITCH;        // encoder ticks per one full resolution 
  #endif
  odometryTicksPerCm         = ((float)odometryTicksPerRevolution) / (((float)wheelDiameter)/10.0) / (3.1415);    // computes encoder ticks per cm (do not change)


Dip Switsch 2 entspricht der 1 Brücke - und Dip Switsch 3 entspricht der 2 Brücke.
Dip Switsch entspricht nicht der Nummer der Brücke sondern entspricht den eingestellten Teiler.
(Siehe Tabelle auf der Platine)

Gruß
Uwe
 
Danke schon mal!
also wenn ich die jetzt einsetzen möchte:
www.amazon.de/Fotoelektrischer-Encoder-G...ativeASIN=B0799GMD17
würde ich keinen Teiler einstellen und die 5V macht das PCB automatisch auf 3,3V
cool dann freue ich mich schon auf das Basteln !!

der Olli!
 
So liebe Leute :)
Vielen Dank für die Erklärung, jetzt weiß ich genau Bescheid, habe das nun durch viel probieren und umlöten auch herausgefunden.
Bei meinem Versuch diesen Sensor zum laufen zu bringen bin ich gescheitert... Auch mit improvisierter Sensor-Scheibe mit 2 Unterbrechungen hat mein due oder der Sensor( der wird gesponnenen haben) viel zu große Abweichungen von Re Li gehabt ca 1 zu 3...
Jetzt habe ich noch 2 Industriemotoren mit hallsensor rum liegen gehabt und die funktionieren wunderbar....
Sie laufen fast synchron Teiler 281 zu 278 pro Radumdrehung Teiler ist keiner gelötet und in der Software steht bei Teiler ne 1.
Die sind halt bissl groß aber ich flexe diese Jetzt in mein Gehäuse und dann geht's weiter
 
Hallo zusammen,

ich habe heute einen Odometrie-Sensor ohne Teilerbrücke angeschlossen. Anschließend gab es aber nur noch 110 Ticks anstelle von 530 nach dem Odometrietest. Nach einem Blick auf die Schaltskizze hätte ich mir den Versuch m. E. auch sparen können. Ohne die erste Brücke fehlt nach meinem Verständnis eine grundlegende Spannungsversorgen im Teilerelement.

Bei mir ergibt sich allerdings aktuell das Problem, dass ich trotz eingestelltem Teiler von 2 bei 530 Ticket 1,5 Umdrehungen bekomme.
Liegt das vielleicht an den in den MA42 Motoren Hall-Sensoren, die ggf. weniger Ticks pro Umdrehung liefern als die Vorgängermodelle? Hat das mal einer von Euch gemessen?

Viele Grüße
Andreas
 
Also ich bekomme mit den alten 40er Motoren 530 steigende Flanken pro Umdrehung. Für die Raindancerfirmware ist das zu wenig. Daher verwende ich dort die steigenden und fallenden Flanken. So komme ich pro Umdrehung auf 1060 Ticks.
 
Oben