PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C RN-Motor Doku oder Software Problem ?



fwallenwein
25.10.2004, 06:26
Hallo,
ich schreibe eine Library für den RN-Control in C
Ich habe gerade die RN-Motor I2C Ansteuerung gebaut. Dabei ist mir folgendes
Aufgefallen.

Einen Schrittmotor mit der Funktion "Motor einen einzigen Schritt drehen (7)" geht

Wenn ich aber als Parameter nicht 0 (links) oder 1(links) sondern die 2(beide)
angebe, dann zuckt nur noch ein Motor. Er zuckt hin und her, dreht aber nicht mehr.
Der andere Motor tut gar nichts.
Ist das eine Pblem in der RN-Motor Software, in der Doku, oder bei mir.
Hat jemand eine Idee, was es sein könnte ?

Merci und Gruss
Frank

Frank
25.10.2004, 11:12
Nenn noch einmal ein paar Daten? Motornennspannung, Motorstrom, eingestellter Strom, Netzteilspannung, Netzteilstrom. Dann kann man der Sache besser auf die Spur kommen. Vielleicht reicht Netzteil nicht aus?

Gruß Frank

fwallenwein
25.10.2004, 15:42
Motornennspannung, Motorstrom, eingestellter Strom, Netzteilspannung, Netzteilstrom. Dann kann man der Sache besser auf die Spur kommen. Vielleicht reicht Netzteil nicht aus?

- Motorren: sind die Minebea Schrittmotor 7V / 12Ohm ( Die von www.robotikhardware.de)
- Eingest Strom isr 200mA
- Netzteilspannung ist 12 V ( habs auch mit 15 probiert )
- Netzteilstrom ist 1,5A

Ich weiss nicht, ob es das Netzteil ist.
Dauerlauf, Laufe n Schritte usw. geht perfekt mit den 2 Motoren
Und wenn ich im Programm die zwei Zeile "Laufe 1 Step Motor links" und Laufe 1 ein Step Motor rechst" direkt hintereinander aufrufe, dann klappts auch perfekt.
Und da laufen die zwei Motoren ja quasi auch gleichzeitig los.

Wenn Du ins Programm schauen willst - ich poste es gerne.
Nur um es zu compilieren braucht mon noch die Avrlib von Pascal Stang

... schon mal danke
Gruss
Frank

Frank
25.10.2004, 17:39
Hi Frank,
ich glaube du hast tatsächlich noch einen kleinen Bug in der Software (Betriebsystem) gefunden. Ich werde diesen morgen korrigieren, so das dies bei neuen Board´s nicht mehr vorkommt. Zum Glück ist es ein Befehl der in der Praxis kaum benötigt wird.

Du kannst ihn in der Lib vorerst durch zwei Einzelbefehle (nacheinander beide Motoren takten) ersetzen. Oder du nimmst den Befehl wo man eine bestimmte Anzahl von Schritten vorwählen kann. Als Anzahl nimmst du dann einfach eine 1, das kommt dann auf´s gleiche raus.

darkscout
28.10.2004, 09:01
Wie sieht das aus ?
Bekommen die, die das Board gekauft haben auch ein Update ?
Das würde ich guten Service nennen

Gruß Swen

Frank
28.10.2004, 11:01
Hi Darkscout,

aber klar. Wenn du den Controller einschickst (bitte aber nicht unfrei), dann wird der kostenlos gegen die neu programmierte Version ausgestauscht. Bitte nur Notiz beilegen.
Wenn Du einen ISP-Programmer hast, kannst du ein lizensiertes Update auch kostenlos bekommen, dazu einfach eine Mail mit Adresse, Nickname nach Möglichkeit Rechnungsnummer senden (bitte in dem Fall keine PM).

Aber wegen dieser kleinen Änderungen lohnt es sich derzeit eigentlich nur in seltenen Fällen.

Gruß Frank

darkscout
30.10.2004, 10:59
Hi,
brauche mal eine Strategie...
Motor soll mit RN-Motor eine bestimmte Anzahl von schritten drehen und sich dann abschalten. (um den Stromverbrauch zu minimieren)

Eine Idee - Ausrechnen wie lange er für die Schritte braucht und einen Timer mit diesem Wert starten. Dieser schaltet den Motor dann wieder ab.
Habe mich aber noch nicht hingesetzt und es implementiert. (Habe auch noch nicht mit timern gearbeitet)

Danke für einen Tip.
Am tollsten wäre natürlich wenn man per I2C ein Flag dafür setzen könnte.

P.S. Toll wäre auch wenn man die Aktuelle Config per I2C auslesen könnte. Da RN-Motor manchmal bei Problemen ein Reset durchführt.

Frank
31.10.2004, 09:41
Hi darkscout,
wenn der Bot immer nur kurz stehen bleibt ist das ausschalten nicht unbedingt sinnvoll, zumal der Bot ja dann ein einer Steigung wegrollen könnte.
Wenn man ihn dennoch ganz ausschalten möchte, dann müsste man wohl grob ausrechnen wie lange ein Schritt bei einer bestimmten Geschwindigkeit dauert. Wenn man grob rechnet gibt man ne Sicherheitsspanne hinzu, ist ja nicht so schlimm wenn Spannung etwas später ausgeschaltet wird.

Vielleicht kann ein C- oder Bascom-Profi mal dazu eine Funktion basteln.

Ich weiß nicht ob ich in dem Betriebsystem noch ein Flag und eine Befehl unter bekomme, da der Controller wirklich bist auf das letzte Byte voll ist. Werde bei Gelegenheit mal checken ob ich was anderes noch kürzen/optimieren kann.
Andere Möglich wäre natürlich ein Sensor der prüft ob sich Rad noch dreht, den könntest du direkt an RN-COntrol anschließen. Hätte auch den Vorteil das du prüfen kannst ob der Bot von alleine wegrollt oder so!

Das mit dem auslesen der Config per I2C paßt einfach nicht mehr rein. Abe rein RESET dürfte nur duchgeführt werden wenn der Befehl zum wechsel der Slave Adresse empfangen wird. Oder wenn halt Batteriespannung nicht ausreicht.

darkscout
31.10.2004, 16:56
Wie wäre es mit einer Open Source Version in C der Firmware ?!
Ich denke mal die Firmware ist in BASIC gehalten.
C kann man sicher etwas besser optimieren...

Zu meinem Reset Problem - es war die Batteriespannung...
Mal schauen - das mit dem Radsensor ist eine gute Idee !
Mein Roboter nuckelt einfach zu schnell die Batterie leer... War nur ne Idee zum Energiemanagement :-) (alles eben bei mir)

Frank
01.11.2004, 19:21
Hi.

ja, gegen so eine zusätzliche OpenSourceLösung für RN-Motor und vielleicht auch für andere zukünftige intelligente Motorboards, hätte ich auch nix. Vielleicht solltest du das nochmal in einem neuen Thread vorschlagen. Vielleicht finden sind ein paar C-Programmierer die Lust dran haben.

Gruß Frank