Nein leider keine Ahnung, aber wenn du bei der Seite was bestellst, würde ich vielleicht was mit bestellen
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
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Nein leider keine Ahnung, aber wenn du bei der Seite was bestellst, würde ich vielleicht was mit bestellen
Bestellen ?? Nein, leider, habe kein Limit mehr in der Hobbykasse
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Habe ich leider auch feststellen müssen ;-(
Hallo Gerhard,
der Dagu 4Ch Motor Controller liefert dir ein Quadratur Encoder Signal (2 Rechteck Signale um 90° verschoben) wie es auch Drehgeber oder Inkrementalgeber liefern. Zusätzlich gibt es auch noch ein einzelnes Signal, die Veroderung beider QE Signale.
Für meinen Ardubot habe ich mal eine Arduino Library geschrieben, die Quadratur Encoder mit Timer Interrupt ausliest. Die sollte auch für deinen Encoder funktionieren. Der Code basiert auf dem Drehgeber Artikel aus dem Mikrocontroller.net: http://www.mikrocontroller.net/articles/Drehgeber
Meine Arduino Library findest du hier: https://code.google.com/p/robotfreak...runk%2Fardubot
Das WriteLMR Sketch benutzt die QEs. Ist aber atwas umfangreich:
https://code.google.com/p/robotfreak...R/WriteLMR.pde
Bei Bedarf kann ich auch noch ein einfacheres Beispiel Sketch liefern.
Hallo marvin!
ich danke Dir ganz herzlichst !!
ich werde sowie gleich zeit dafür ist, das ganze ausprobieren und wenn ich darf deine code bei mir mit einarbeiten und verwenden.
Gruss und dank
Gerhard
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
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?
Vielen Dank für Deine Informationen. Leider ist mein Hobby zZt auf Eis gelegt, bin im Wohnungswechsel ...da sind die "Spielzeuge" noch alle gut verpackt und verstaut....
Ich möchte auch auf einen 4WD umsteigen , wegen den Mecanum-Rädern von Fingertech...
Werde mich später wieder melden
Gruss und Dank
Gerhard
Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint
Hi MEgg,
deine Encoder Werte sind doch gar nicht so schlecht!
Angegeben sind 1000 Encoder-Flanken pro 3 Umdrehungen, also 333 Flanken pro Umdrehung.
Das kommt deinen Werten schon nahe (Mittel: 289): 87% vom Soll.
Dabei stellen sich mir die 2 Fragen:
1. Wie bestimmst du denn GENAU EINE Umdrehung?
Das ist ja beim Kettenantrieb und der Getriebeübersetzung von 86,8:1 fast unmöglich!!
2. Bist du sicher, alle Flanken (per Interrupt) zu erfassen?
Also zur Frage Umtausch: Ich sehe keinen Grund: Das Chassis ist ok.
Gruß
Dirk
Ad 1) "GENAU" ist das sicher nicht, da mit blossem hinschauen bestimmt, ich könnte noch ne Lichtschranke o.ä. bauen und dann noch mal messen, aber da ich keine Brille brauche,
wird das so ungefähr schon passen.
Die Zeit/encoder Werte sind auch linear, wenn auch von Motor zu Motor mit unterschiedlicher Steigung, was dann wieder zu den Encoderwerten pro 1 Umdrehung passt.
ad 2) das Programm zum Encoder-Interrupt-zählen macht nur
void encodercountHL_intproc()
{
encodercountHL++;
}
und in der loop ist dann ein
if (Serial2.available())
{
}
in dem ich die PWM Werte und direction via Keyboard input via serieller Verbindung setze, aber das Ausgeben der Zeit/Encoder-Werte erfolgt ausserhalb.
Wenn ich interrupts verlieren würde, würden die Werte imho keine Gerade ergeben.
Ungenauigkeit bei der Ausgabe der Zeit/Encoder-Wertepaare wäre demnach Serial2.available() selbst und das delta zwischen Zeitmessung
und Ausgabe der Encoderwerte (= 3 * Serial2.print() dazwischen).
Lesezeichen