Dagu 4 Channel Motorcontroller
Wer hat Erfahrungen mit den Dagu 4 Channel Motorcontroller ?
Ich habe Probleme mit der Drehzahlerkennung bzw auch dessen Auswertung, finde einfach keinen Anfang es in der Programmierung dazu. Er soll bei enem Rover 5 /2WD zur anwendung kommen.
Vieleicht hat wer Hinweise ?
Ich danke für event. Unterstützung Eurerseits .
Gruss Gerhard
Dagu 4 motoren 4 Encoder: unterschiedliche Encodermesswerte
Zitat:
Zitat von
oderlachs
Wer hat Erfahrungen mit den
Dagu 4 Channel Motorcontroller ?
Ich habe Probleme mit der Drehzahlerkennung bzw auch dessen Auswertung, finde einfach keinen Anfang es in der Programmierung dazu. Er soll bei enem Rover 5 /2WD zur anwendung kommen.
Vieleicht hat wer Hinweise ?
Ich danke für event. Unterstützung Eurerseits .
Gruss Gerhard
Ich steige mal verspätet ein.
:-)
Ich verwende diese 4 CH Dagu Motor Controller Karte:
http://dlnmh9ip6v2uc.cloudfront.net/...n%20manual.pdf
für den Dagu 5 4 Motor 4 Encoder und habe einen Spider Controller vorgeschaltet:
cdn.sparkfun.com/datasheets/Robotics/SpiderControllerDagu.pdf
Auf der Spiderkarte werkelt ein Arduino Mega 2560.
Ich lasse in einer interrupt routine einen zähler (volatile unsigned long encodercount) hochzählen und setze den auf 0 zurück, wenn ich stoppe.
Das funktioniert so weit gut.
Eine Zeitauswertung Zeit in ms und encoderwerte über die vorgeschaltene Spider Karte und einen raspberry ergab, dass die encoder-Werte schön linear
und ohne Aussetzer sind.
Allerdings musste ich feststellen, dass die Angabe 1000 Werte pro 3 Umdrehungen von hier:
https://drive.google.com/file/d/0B__...GI1/view?pli=1
absolut nicht stimmen
Die Motoren haben einzeln gemessen völlig unterschiedliche Werte für eine Umdrehung:
Motor 1 (ich nenne ihn hinten links) : 320
Motor 2 (vorne links): 236
Motor 3 (vorne rechts): 320
Motor 4 (hinten rechts): 280
Meine Frage: sollte ich das Dagu 5 Roboter chassis zurückschicken oder hatte jemand von Euch auch diese unterschiedlichen Messwerte?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
Dirk
Hi,
das hier:
... war doch sehr aufschlußreich.
Die Encodermotoren des Rover 5 haben also praktisch ZWEI Getriebe bzw. ein Getriebe, in dem der Encoder eine "Zwischenübersetzung" misst.
Gesamtübersetzung = 4,166 * 20,833 = 86,8 : 1 (das ist eher uninteressant!)
Übersetzung zwischen Encoder und Radachse: 20,833 : 1 (das ist wichtig!)
Bei XOR der Quadraturencoderausgänge gibt es 16 Impulsflanken.
Damit pro Radachsen-Umdrehung: Flanken = 20,833 * 16 = 333,3 (somit 1000 auf 3 Umdrehungen).
Bei einem Radumfang von 403mm (das sind die Räder vom Wild Thumper, oder?) wäre das eine Encoder-Auflösung von: 1,2mm
Das ist doch ganz gut zum Weiterrechnen!
Yep, das sind diese Räder:
http://robosavvy.com/store/dagu-pack...ic-silver.html
Schaut dann so aus:
Anhang 30773
Das habe ich mir auch schon ausgerechnet, dass die "Fahrgenauigkeit" um die 1.59mm ist,
wenn bei mir der kleinste encoder Wert bei einer Umdrehung ca 236 ist.
U = π · d = π * 120mm = 376,991118431mm / 236=1,59741999335 mm / encoder Wert.
Wenn nichts anderes geht, dann muss das reichen.
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
Dirk
Die Ausschnitte sehen erstmal gut aus, wobei ich den Dagu Controller nicht habe und somit Defines wie MOTOR_HR_INT nicht kenne und nicht genau weiß, an welchen µC-Pins deine Encoder sitzen.
Zumindest ist klar: Du liest Interrupt-basiert ein, demnach dürften alle Impulsflanken (CHANGE) erfasst werden.
Wenn du nur zwischen 300 und 350 Impulse pro Umdrehung zählst, stimmt etwas anderes nicht.
Bist du z.B. sicher, dass du die Encoder des Rover 5 (alle 4 Pins je Rad !) mit dem Eingang des Dagu Controllers (GND, Encoder Input A, Encoder Input B, +5V) verbunden hast?
Wenn nein: Korrigieren.
Wenn ja: Weiter ->
Bist du z.B. sicher, dass du den Arduino-Eingangspin für die Encodersignale mit dem Ausgang "Interrupt Output" des Dagu Controllers für alle 4 Räder verbunden hast?
Wenn nein: An den einzelnen Ausgängen (Encoder Output A/B) liegen nur die Einzelsignale der Encoder an, das würde gut zu deinen 3xx Impulsen pro Umdrehung passen und dein Problem erklären.
Wenn ja: Schließ mal probeweise den Einzelausgang (Encoder Output A oder B) an den Arduino-Eingangspin an: Was passiert? Wieviele Impulse pro Umdrehung?
Ja, jeder Interrupt Output ist mit einem Interrupt input des Spider controllers verbunden und jeder Anschluss des Dagu Rovers (rot, gelb, weiss,schwarz)
ist mit dem 4CH Motor Controller verbunden.
Sieht momenant etwas drahtigelig aus, ich muss das aber sowieso noch mal umbauen:
Anhang 30795
Die 2 violetten, der blaue und der abgedeckte grüne Anschluss sind die Interrupt-Anschlüsse.
Damals habe ich zum Testen aber jeden Motor einzeln an einen bestimmten Pin gehängt, damit fällt weg, dass dieser Pin das hätte beeinflussen können oder die Software am Arduino den Fehler verursachen
würde.
Den einzelnen Anschluss von Encoder Output A und B wie auf
http://dlnmh9ip6v2uc.cloudfront.net/...n%20manual.pdf
dargestellt, habe ich schon probiert, aber ich werde das noch mal machen.