PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : linker Antrieb klemmt + Base stürzt ab



I♥ROBOTIC
01.05.2011, 14:43
Hallo Leute,


ich fernsteuere zurzeit meinen RP6 aber plötzlich klemmt bei mir der linke Antrieb. er bewegt sich nur im kreis, da ein antrieb funktioniert der andere aber stillsteht. mir ist auch aufgefallen, dass die Base immer abstürzt und ich dann auf der M32 den fehler 0xf8 rausbekomme... ich vermute, dass die Base die Bewegung einfach stoppt, da der linke Antrieb klemmt. Batterien werden es nicht sein, die hab ich schon aufgeladen.


wisst ihr was das problem sein könnte ?


ich hoffe ja, sonst liegt mein rp6 bald im garten :(


MfG Julian

RobotMichi
01.05.2011, 14:58
Hallo,

versuch doch mal den Selftest (Motoren und Encoder) für die Base zu machen und schau was dabei rauskommt.

lg
Michi

I♥ROBOTIC
01.05.2011, 15:03
ja natürlich bekomm ich error, da ich zu faul bin die encoder zu justieren, aber ich steuere den RP6 ja mit der funktion setMotorPower(); da wird ja direkt die leistung festgelegt. ich bin noch umhergefahren, hab kurz was anderes gemacht, wollte wieder ein bischen fahren, schwups, linker antrieb rührt sich nicht.....

RobotMichi
01.05.2011, 15:11
Ok, wenn die Base die Bewegung stoppt, könnte sein, dass es klemmt, weil ein Kabel in die Zahnräder gekommen ist.
Es könnte aber auch ein Kontaktfehler, ein defekter Encoder, ... sein, so dass der Motor gar kein Signal bekommt.

Versuch mal, die Base aufzuschrauben und sieh nach ob evtl. ein Kabel ins Getriebe gekommen ist.

I♥ROBOTIC
01.05.2011, 15:24
hm.. ich kann nichts sehen, aber bei selftest c läuft auch der linke antrieb.. mal schaun oba mein rc-programm jetzt auch läuft....


[EDIT]
nein, der linke antrieb rührt sich immer noch nicht...

SlyD
01.05.2011, 15:30
Hallo,

Am besten Du stellst gleich die Drehgeber passend ein wenn Du das Mainboard eh schon ab hast.
Wie sind denn die Ausgaben beim Duty Cycle Test?
Vorwärts und Rückwärts mit verschiedenen PWM Werten testen.
(s. Video hier)
https://www.roboternetz.de/community/showthread.php?44032

MfG,
SlyD

I♥ROBOTIC
01.05.2011, 15:47
ich hab versucht die encoder einzustellen aber die werte springen zwischen 90 und 20 rum... naja ich bekomm mehr OK´s als Bad´s ;) recht viel besser kann ich sie nicht mehr einstellen, aber beim selftest 8 bekomm ich immer errors für links und rechts

SlyD
01.05.2011, 15:56
> bekomm mehr OK´s als Bad´s

"Bad" klingt für mich so als würdest Du das ganz ganz uralte Testprogramm verwenden und nicht das aktuelle wo das schön in den Waveform Displays dargestellt wird?
s. das PDF und das oben genannte Video!
Damit ist das deutlich einfacher einzustellen.

Check ansonsten mal wie die Musteraufkleber auf dem Zahnrad aussehen - der Aufdruck sollte klar und deutlich sein und es darf kein Öl oder Schmierfett dran geraten!

MfG,
SlyD

I♥ROBOTIC
01.05.2011, 16:28
also, die aufkleber sind einwandfrei, hab mir jetzt das neue selftestprogramm runtergeladen, aber bei mir sehen die PWM signale anders aus... links hab ich die encoder auf ca. 45-52 eingestellt, das dürfte passen, aber bei rechts komme ich nicht über 30 raus, ab ca. 25 wird der wert plötzlich wieder kleiner....


was mach ich falsch ?

SlyD
01.05.2011, 16:41
> aber bei rechts komme ich nicht über 30 raus, ab ca. 25 wird der wert plötzlich wieder kleiner....

Das musst Du genauer erklären so ist es etwas undeutlich welcher Wert wann kleiner wird.
Am besten kopierst Du einfach die Terminalausgaben hier rein und sagst kurz dazu was Du gemacht hast.

Ein paar Möglichkeiten:
Der Raum ist relativ DUNKEL, kein Tageslicht? Flachbildschirme / Leuchtstoffröhren kommen auch als Störquelle in Frage also möglichst nicht direkt vorm 24" TFT einstellen...

Zahnräder sind wie im PDF von der RP6 Hompage beschrieben fixiert - also der Stellring ist nicht zu weit weg so dass sich das Zahnrad vom Sensor wegbewegen kann?
Vorwärts und Rückwärts verhalten sich gleich?


MfG,
SlyD

I♥ROBOTIC
01.05.2011, 16:51
links hab ich bei PWM=50 die geschwindigkeit auf 50 eingestellt, aber rechts komm ich nicht über 30 raus... ich drehe, die geschwindigkeit wird größer, aber ab einem bestimmten punkt wird sie wieder kleiner...


der raum ist dunkel.. einziges licht ist eigentlich der notebookbildschirm aber der ist auch nicht direkt davor ..


ich probiers nochmal und dunkel den bildschirm ab...

SlyD
01.05.2011, 17:01
Ehm - die Geschwindigkeitsanzeige ( Speed / Velocity !) ist beim Duty Cycle Test nur ZUR INFORMATION dargestellt.
Die Regelung ist DEAKTIVIERT!
Da wird nur fix der PWM Wert eingestellt und nicht die Geschwindigkeit eingeregelt daher ist die natürlich bei beiden Motoren anders auch wenn der PWM Wert identisch ist - kann auch schwanken. Der Wert ist auch nur dann korrekt wenn die Drehgeber eingestellt sind.

Du musst den Duty Cycle Wert auf ca. 50:50 (Bereich 60:40 bis 40:60) einstellen DANACH kannst Du mit dem Speed Test oder dem Test #8 prüfen obs auch mit der Regelung funktioniert.

MfG,
SlyD

I♥ROBOTIC
01.05.2011, 17:02
bei rückwärts lässt sich der rechte encoder einwandfrei einstellen, aber wenn ich dann auf forwärts umstelle sinkt die geschwindigkeit bis auf 0...

I♥ROBOTIC
01.05.2011, 18:47
ich hab den Duty Cycle wert auf ca 50:50 eingestellt aber wenn ich test 8 laufen lass bekomm ich immer noch errors


wenn ich im duty cycle test 50:50 stelle, dann rückwärts und dann wieder forwärts einstelle, bekomm ich vom rechten encoder kein signal mehr, pwm bleibt stehen, der duty cycle wert wird nicht mehr erneuert...


was mach ich/ ist falsch ?

SlyD
01.05.2011, 19:14
Hab ja eben schon geschrieben:
"Zahnräder sind wie im PDF von der RP6 Hompage beschrieben fixiert - also der Stellring ist nicht zu weit weg so dass sich das Zahnrad vom Sensor wegbewegen kann? "


Und ohne das Du die komplette Ausgabe vom "c" und "8" Testlauf hier postest (STRG+C STRG+V bitte... ) kann
man auch nicht viel dazu sagen.

MfG,
SlyD

I♥ROBOTIC
01.05.2011, 19:34
also ein ausschnitt von test c:

P: 030 |VL: 037 |VR: 044 |IL: 023 |IR: 025 |DCL: 70:29 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 037 |VR: 044 |IL: 023 |IR: 025 |DCL: 70:29 |DCR: 39:60 |UB: 07.77V
P: 030 |VL: 037 |VR: 044 |IL: 022 |IR: 025 |DCL: 55:44 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 036 |VR: 044 |IL: 022 |IR: 025 |DCL: 71:28 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 037 |VR: 044 |IL: 023 |IR: 025 |DCL: 70:29 |DCR: 42:57 |UB: 07.78V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 024 |DCL: 71:28 |DCR: 58:41 |UB: 07.78V
P: 030 |VL: 034 |VR: 044 |IL: 023 |IR: 024 |DCL: 81:18 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 033 |VR: 043 |IL: 023 |IR: 025 |DCL: 74:25 |DCR: 42:57 |UB: 07.77V
P: 030 |VL: 032 |VR: 044 |IL: 023 |IR: 026 |DCL: 86:13 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 030 |VR: 044 |IL: 023 |IR: 026 |DCL: 82:17 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 032 |VR: 043 |IL: 023 |IR: 026 |DCL: 81:18 |DCR: 50:49 |UB: 07.77V
P: 030 |VL: 033 |VR: 043 |IL: 024 |IR: 026 |DCL: 74:25 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 032 |VR: 043 |IL: 023 |IR: 026 |DCL: 86:13 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 030 |VR: 042 |IL: 024 |IR: 026 |DCL: 80:19 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 030 |VR: 044 |IL: 023 |IR: 026 |DCL: 81:18 |DCR: 43:57 |UB: 07.77V
P: 030 |VL: 030 |VR: 044 |IL: 023 |IR: 026 |DCL: 86:13 |DCR: 56:43 |UB: 07.77V
P: 030 |VL: 032 |VR: 044 |IL: 023 |IR: 025 |DCL: 80:19 |DCR: 46:53 |UB: 07.77V
P: 030 |VL: 031 |VR: 044 |IL: 023 |IR: 026 |DCL: 81:18 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 035 |VR: 044 |IL: 022 |IR: 025 |DCL: 72:27 |DCR: 42:57 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 022 |IR: 024 |DCL: 59:40 |DCR: 58:41 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 024 |DCL: 46:53 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 022 |IR: 024 |DCL: 46:53 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 024 |DCL: 46:53 |DCR: 45:54 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 024 |DCL: 43:56 |DCR: 52:47 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 025 |DCL: 45:54 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 50:50 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 46:53 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 46:53 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 037 |VR: 043 |IL: 024 |IR: 026 |DCL: 46:53 |DCR: 46:53 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 47:52 |DCR: 45:54 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 44:55 |DCR: 52:47 |UB: 07.78V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 44:55 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 50:49 |DCR: 39:60 |UB: 07.77V
P: 030 |VL: 039 |VR: 045 |IL: 022 |IR: 026 |DCL: 52:47 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 022 |IR: 025 |DCL: 49:50 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 025 |DCL: 49:50 |DCR: 46:53 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 022 |IR: 025 |DCL: 49:50 |DCR: 45:55 |UB: 07.78V
P: 030 |VL: 039 |VR: 045 |IL: 022 |IR: 025 |DCL: 48:51 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 040 |VR: 043 |IL: 023 |IR: 025 |DCL: 45:54 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 024 |DCL: 50:49 |DCR: 58:41 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 49:50 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 024 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 024 |DCL: 48:51 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 56:43 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 46:53 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 52:47 |DCR: 42:57 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 50:49 |DCR: 58:41 |UB: 07.78V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 39:60 |UB: 07.78V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 025 |DCL: 46:53 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 51:48 |DCR: 46:53 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 025 |DCL: 50:49 |DCR: 50:49 |UB: 07.78V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 46:53 |DCR: 57:42 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 50:49 |DCR: 46:53 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 50:49 |DCR: 50:50 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 040 |VR: 043 |IL: 023 |IR: 024 |DCL: 48:51 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 024 |IR: 024 |DCL: 49:50 |DCR: 40:60 |UB: 07.77V
P: 030 |VL: 040 |VR: 042 |IL: 024 |IR: 024 |DCL: 44:55 |DCR: 58:41 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 025 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 45:54 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 47:52 |DCR: 47:52 |UB: 07.78V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 43:57 |UB: 07.77V
P: 030 |VL: 039 |VR: 045 |IL: 022 |IR: 026 |DCL: 44:55 |DCR: 57:42 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 025 |DCL: 46:53 |DCR: 47:52 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 51:48 |DCR: 42:57 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 57:42 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 39:60 |UB: 07.78V
P: 030 |VL: 040 |VR: 043 |IL: 023 |IR: 024 |DCL: 44:55 |DCR: 58:41 |UB: 07.78V
P: 030 |VL: 040 |VR: 043 |IL: 024 |IR: 024 |DCL: 46:53 |DCR: 49:51 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 024 |DCL: 50:49 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 024 |DCL: 48:51 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 040 |VR: 043 |IL: 023 |IR: 024 |DCL: 48:51 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 48:52 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 42:58 |UB: 07.77V
P: 030 |VL: 038 |VR: 045 |IL: 023 |IR: 026 |DCL: 47:52 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 51:48 |DCR: 47:52 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 022 |IR: 026 |DCL: 52:47 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 038 |VR: 044 |IL: 022 |IR: 026 |DCL: 48:51 |DCR: 45:55 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 026 |DCL: 49:50 |DCR: 52:47 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 46:53 |DCR: 42:57 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 58:42 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 024 |IR: 025 |DCL: 50:49 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 025 |DCL: 51:48 |DCR: 45:54 |UB: 07.78V
P: 030 |VL: 040 |VR: 043 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 50:50 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 024 |DCL: 47:52 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 45:54 |DCR: 47:52 |UB: 07.78V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 51:48 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 022 |IR: 025 |DCL: 51:48 |DCR: 47:52 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 42:58 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 47:52 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 51:48 |DCR: 52:47 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 022 |IR: 026 |DCL: 51:48 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 027 |DCL: 47:52 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 027 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 024 |IR: 025 |DCL: 44:55 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 47:52 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 022 |IR: 026 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 037 |VR: 040 |IL: 025 |IR: 027 |DCL: 52:47 |DCR: 42:57 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 024 |IR: 026 |DCL: 48:51 |DCR: 50:49 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 040 |VR: 043 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 39:60 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 024 |IR: 025 |DCL: 47:52 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 51:48 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 45:54 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 025 |DCL: 48:51 |DCR: 50:50 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 025 |DCL: 49:50 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 039 |VR: 045 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 45:55 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 47:52 |DCR: 55:44 |UB: 07.78V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 51:48 |DCR: 39:60 |UB: 07.78V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 024 |IR: 026 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 46:53 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 024 |IR: 026 |DCL: 44:55 |DCR: 57:42 |UB: 07.77V
P: 030 |VL: 037 |VR: 042 |IL: 024 |IR: 027 |DCL: 51:48 |DCR: 49:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 024 |IR: 026 |DCL: 51:48 |DCR: 42:57 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 024 |IR: 025 |DCL: 48:51 |DCR: 50:49 |UB: 07.77V
P: 030 |VL: 039 |VR: 042 |IL: 024 |IR: 025 |DCL: 47:52 |DCR: 52:47 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 47:52 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 42:57 |UB: 07.78V
P: 030 |VL: 040 |VR: 044 |IL: 022 |IR: 024 |DCL: 44:55 |DCR: 58:41 |UB: 07.78V
P: 030 |VL: 040 |VR: 044 |IL: 022 |IR: 024 |DCL: 47:52 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 025 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 48:51 |DCR: 39:60 |UB: 07.77V
P: 030 |VL: 037 |VR: 043 |IL: 024 |IR: 026 |DCL: 48:51 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 024 |IR: 027 |DCL: 49:50 |DCR: 46:53 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 46:53 |DCR: 45:55 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 45:55 |DCR: 53:46 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 024 |IR: 026 |DCL: 51:48 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 49:50 |UB: 07.78V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 47:52 |DCR: 40:59 |UB: 07.78V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 52:47 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 024 |DCL: 47:52 |DCR: 48:51 |UB: 07.78V
P: 030 |VL: 041 |VR: 044 |IL: 023 |IR: 024 |DCL: 51:48 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 022 |IR: 024 |DCL: 48:51 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 022 |IR: 024 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 024 |DCL: 49:50 |DCR: 46:53 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 44:55 |DCR: 50:50 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 49:50 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 037 |VR: 044 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 40:59 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 50:50 |DCR: 58:41 |UB: 07.77V
P: 030 |VL: 038 |VR: 043 |IL: 023 |IR: 026 |DCL: 49:50 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 026 |DCL: 50:49 |DCR: 49:50 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 45:54 |DCR: 40:59 |UB: 07.78V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 47:52 |DCR: 52:47 |UB: 07.77V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 49:50 |DCR: 39:60 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 023 |IR: 025 |DCL: 49:50 |DCR: 57:42 |UB: 07.77V
P: 030 |VL: 039 |VR: 043 |IL: 023 |IR: 025 |DCL: 48:51 |DCR: 48:51 |UB: 07.77V
P: 030 |VL: 038 |VR: 044 |IL: 022 |IR: 025 |DCL: 48:51 |DCR: 47:52 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 022 |IR: 025 |DCL: 45:54 |DCR: 39:60 |UB: 07.78V
P: 030 |VL: 039 |VR: 044 |IL: 023 |IR: 025 |DCL: 46:53 |DCR: 55:44 |UB: 07.77V
P: 030 |VL: 040 |VR: 044 |IL: 022 |IR: 025 |DCL: 51:48 |DCR: 48:51 |UB: 07.77V



und der test 8:

T: 000 |VL: 002 |VR: 002 |PL: 000 |PR: 000 |IL: 003 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 001 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 001 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 003 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 001 |IR: 000 |UB: 07.89V
T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
Speed Left: OK
Speed Right: OK
T: 020 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 020 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 001 |IR: 000 |UB: 07.89V
T: 020 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 001 |IR: 000 |UB: 07.89V
T: 020 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 000 |UB: 07.89V
T: 020 |VL: 000 |VR: 000 |PL: 010 |PR: 010 |IL: 007 |IR: 007 |UB: 07.85V
T: 020 |VL: 003 |VR: 003 |PL: 018 |PR: 018 |IL: 019 |IR: 024 |UB: 07.83V
T: 020 |VL: 027 |VR: 023 |PL: 023 |PR: 028 |IL: 024 |IR: 029 |UB: 07.83V
T: 020 |VL: 028 |VR: 022 |PL: 016 |PR: 026 |IL: 021 |IR: 032 |UB: 07.83V
T: 020 |VL: 027 |VR: 008 |PL: 009 |PR: 034 |IL: 019 |IR: 033 |UB: 07.83V
T: 020 |VL: 035 |VR: 002 |PL: 002 |PR: 043 |IL: 014 |IR: 041 |UB: 07.83V
T: 020 |VL: 050 |VR: 000 |PL: 000 |PR: 053 |IL: 005 |IR: 048 |UB: 07.83V
T: 020 |VL: 086 |VR: 000 |PL: 000 |PR: 071 |IL: 000 |IR: 052 |UB: 07.83V
T: 020 |VL: 099 |VR: 000 |PL: 000 |PR: 083 |IL: 003 |IR: 061 |UB: 07.83V
T: 020 |VL: 120 |VR: 000 |PL: 000 |PR: 093 |IL: 000 |IR: 063 |UB: 07.82V
T: 020 |VL: 137 |VR: 000 |PL: 000 |PR: 103 |IL: 000 |IR: 070 |UB: 07.81V
####### ERROR Left ########
####### ERROR Right #######
####### !!! WARNING WARNING WARNING !!! #######
####### !!! TEST FINISHED WITH ERRORS !!! #######
#### Please check motor and encoder assembly! ###
#### And also check Sensors for defects! ###

SlyD
02.05.2011, 10:47
Nicht nur bei PWM = 30 sondern so wie im Testvideo gezeigt, 50, 80, 120 jeweils vorwärts und rückwärts (von 120 nicht sofort die Richtung umschalten, vorher verlangsamen).

Das musst Du auch beim Einstellen mit den verschiedenen Geschwindigkeiten machen und überprüfen!

Also vermutlich ist es wie gesagt ein mechanisches Problem - Stellring nicht richtig dran o.ä..

I♥ROBOTIC
04.05.2011, 17:47
ich habe gerade nochmal versucht die encoder einzustellen (die stellringe hab ich näher zu den zahnrädern gestellt). der linke encoder ist wunderbar eingestellt, der rechte lässt sich auch besser einstellen, aber wenn ich dann die richtung ändere kriege ich wieder werte wie 75:25, wenn ich da dann auf 50:50 einstelle und wieder die richtung änder , wieder das problem... naja ich hab dann mal test 8 gemacht, aber der linke motor beschleunigt extremder rechte lief normal, jetzt beschleunigt plötzlich der rechte motor unendlich, bis das prog abbricht -.-


ich bin am verzweifeln -.-

SlyD
05.05.2011, 18:06
Tja Du merkst sicherlich auch das es schwierig ist sowas zu diagnostizieren wenn man nur drei Textzeilen hier im Forum sieht und nicht das Gerät selbst vor sich liegen hat.

> wenn ich da dann auf 50:50 einstelle und wieder die richtung änder , wieder das problem...

Wenns in einer Richtung klappt in der anderen aber nicht, kann das fast nur daran liegen das entweder die Musteraufkleber nicht in Ordnung sind (Kontrast zu niedrig, Druckfehler, Fett reingezogen o.ä.) oder der Stellring doch nicht richtig dran ist.
Eben weil sich durch die Schrägverzahnung der Zahnräder je nach Drehrichtung der Abstand zum Sensor leicht ändert.


Eigentlich ist schon alles gesagt was man prüfen könnte ich kann dann nur nochmal auf ein paar andere Thread verweisen:

https://www.roboternetz.de/community/showthread.php?44531
https://www.roboternetz.de/community/showthread.php?38983
https://www.roboternetz.de/community/showthread.php?44032


Und Du hast die Drehgeber auch wirklich schön in einem dunklen Raum ohne Tageslicht und sonstige Störquellen eingestellt?


MfG,
SlyD

I♥ROBOTIC
06.05.2011, 12:45
raum war komplett dunkel, ich hab sogar die schreibtischlampe aus geschaltet, bildschirm ist auf nem tisch 1,5 m entfernt gestanden, stellringe hab ich weiter dran gemacht (zahnräder haben nur noch wenig spiel) aufkleber sind ok, kein fett, guter kontrast)


tja ich säuber die codescheiben nochmal ganz sauber, ziehe die stelltinge nochmal gut an und dann sehen wir ja....

SlyD
06.05.2011, 12:53
> tja ich säuber die codescheiben nochmal ganz sauber,

Das bringt nichts (kanns nur schlimmer machen wenn man nicht vorsichtig ist)
wenn da kein offensichtlich erkennbarer Dreck dran ist.
Den Sensor selbst hast Du auch überprüft?

Einzige sonstige Möglichkeit ist, das die Potis durch zu starke mechanische Belastung beschädigt wurden und sich daher
nicht mehr passend einstellen lassen, dann bliebe nur einschicken oder selbst Ersatzteile einbauen.


MfG,
SlyD

I♥ROBOTIC
07.05.2011, 15:29
der rechte encoder ist wunderbar eingestellt, 50:50, auch bei unterschiedlichen richtungen und geschwindigkeiten, aber links wenn ich einstelle und die richtung oder die geschwindigkeit ändere kommt z.B. wieder 70:30 raus...


aber wenn ich auf der Base setMotorPower aufrufe fährt der RP6 auch mit beiden antrieben, wird die funktion von der M32 aufgerufen fährt nur der rechte antrieb und dann bekomm ich den fehler 0xf8 raus -.-


schlecht.. muss ich den rp6 wohl einschicken -.-

SlyD
07.05.2011, 16:03
aber links wenn ich einstelle und die richtung oder die geschwindigkeit ändere
kommt z.B. wieder 70:30 raus...

Sehr Seltsam.
Läuft der Test #8 durch oder nicht?
(70:30 ansich ist zwar nicht schön, aber wenn es nicht schlechter als das wird, kann das damit auch noch funktionieren)



schlecht.. muss ich den rp6 wohl einschicken -.-

Man kann die Teile auch einzeln als Ersatzteil bekommen.
Es ist durchaus möglich das Zahnrad mit dem Musteraufkleber und die Sensorplatine selbst auszutauschen.
Alternative ist mit genauer Fehlerbeschreibung einschicken.
(in jedem Fall vorher per Mail bei info ät arexx punkt nl melden)



aber wenn ich auf der Base setMotorPower aufrufe fährt der RP6 auch mit beiden antrieben, wird die funktion von der M32 aufgerufen fährt nur der rechte antrieb und dann bekomm ich den fehler 0xf8 raus -.-

Das liegt aber an Deinem Programm und nicht am Antrieb.
(0xF8 heisst "unbekannter Fehler" bei der I2C Übertragung d.h. Du hast auf jeden Fall irgendwas in einem der beiden Programme falsch gemacht...)


MfG,
SlyD

I♥ROBOTIC
07.05.2011, 16:08
Läuft der Test #8 durch oder nicht?
bei test 8 bekomm ich errors für beide seiten ( der linke antrieb läuft kurz and bleibt dann stehen, der rechte beschleunigt bis das programm abbricht)



Man kann die Teile auch einzeln als Ersatzteil bekommen.
Es ist durchaus möglich das Zahnrad mit dem Musteraufkleber und die Sensorplatine selbst auszutauschen.
Alternative ist mit genauer Fehlerbeschreibung einschicken.
(in jedem Fall vorher per Mail bei info ät arexx punkt nl melden)

gott sei danke, kann ich mich wenigstens noch mit meinem greifarm beschäftigen



Das liegt aber an Deinem Programm und nicht am Antrieb.
(0xF8 heisst "unbekannter Fehler" bei der I2C Übertragung d.h. Du hast auf jeden Fall irgendwas in einem der beiden Programme falsch gemacht...)

hm.. naja programm nochmal überprüfen

I♥ROBOTIC
08.05.2011, 12:42
hmm. ich kann beim besten willen den fehler nicht finden...



#include "RP6ControlLib.h"
#include "RP6I2CmasterTWI.h"
#include "RP6Control_I2CMasterLib.h"

void I2C_requestedDataReady(uint8_t dataRequestID)
{
checkRP6Status(dataRequestID);
}

void I2C_transmissionError(uint8_t errorState)
{
writeString_P("\nI2C ERROR - TWI STATE: 0x");
writeInteger(errorState, HEX);
writeChar('\n');
}

volatile uint16_t speed=0;
volatile uint16_t dir=0;
volatile uint16_t speedcount=0;
volatile uint16_t dircount=0;

ISR(TIMER1_COMPA_vect)
{
if (PINA & ADC5)
{
speedcount++;
}
else
{
if (speedcount > 0)
{
speed=speedcount;
}
speedcount=0;
}


if (PINA & ADC3)
{
dircount++;
}
else
{
if (dircount > 0)
{
dir=dircount;
}
dircount=0;
}
}

void initRC(void)
{
TCCR1A = (0 << WGM11) | (0 << WGM10) | (0 << COM1A0) | (0 << COM1A1); // CTC-Mode4, ohne OCR-Pin
TCCR1B = (0 << WGM13) | (1 << WGM12) | (0 << CS12) | (1 << CS11) | (0 << CS10); // CTC und prescaler /8
TIMSK |= (1 << OCIE1A); // Interrupt ein
OCR1A = 20; // 100kHz?

DDRA &= ~ADC5;
PORTA &= ~ADC5;
DDRA &= ~ADC3;
PORTA &= ~ADC3;
}

int main(void)
{
initRP6Control();
initLCD();
initRC();

startStopwatch1();

mSleep(1000);

I2CTWI_initMaster(100);
I2CTWI_setRequestedDataReadyHandler(I2C_requestedD ataReady);
I2CTWI_setTransmissionErrorHandler(I2C_transmissio nError);

uint16_t speed1, dir1;

while(1)
{
cli(); // Interrupts verbieten
speed1=speed;
dir1=dir;
sei(); // Interrupts wieder zulassen

if (speed1 < 150 && speed1 > 140)
{
if (dir1 > 180){ setMotorDir(BWD,FWD); setMotorPower(150,150); }
if (dir1 < 120){ setMotorDir(FWD,BWD); setMotorPower(150,150); }
}

if (speed1 < 140)
{
setMotorDir(BWD, BWD);
if(dir1 < 140){ setMotorPower((300-speed1),(300-speed1)-dir1); }
if(dir1 > 150){ setMotorPower((300-speed1)-(300-dir1),(300-speed1)); }
if(dir1 < 150 && dir1 > 140) { setMotorPower(300-speed1, 300-speed1); }
}
if (speed1 > 150)
{
setMotorDir(FWD, FWD);
if(dir1 < 140){ setMotorPower(speed1+dir1,speed1-dir1); }
if(dir1 > 150){ setMotorPower(speed1-(300-dir1), speed1+(300-dir1)); }
if(dir1 < 150 && dir1 > 140) { setMotorPower(speed1, speed1); }
}

if(adcLSL < 500 || adcLSR < 500) { PORTA |= ADC7; }
if(adcLSL > 500 && adcLSR > 500) { PORTA &= ~ADC7; }

task_checkINT0();
task_I2CTWI();
}
return 0;
}



bin ich blind oder was -.- ?

SlyD
08.05.2011, 15:50
bin ich blind oder was -.- ?

Du könntest an der falschen Stelle schauen.

Eine setMotorPower Funktion ist in der normalen I2C Lib nicht enthalten - die hast Du ja selbst geschrieben also liegt vermutlich dort bzw. eher in Deinem Slave Programm der Fehler.

Vielleicht ist es auch einfach das hier:

> ... uint16_t ...

> setMotorPower((300-speed1

und alles was damit zusammenhängt.
Ich kenne natürlich den Rest der ZWEI Programme nicht (bzw. den Teil den Du geändert hast), aber 300 sieht auf den ersten Blick problematisch aus.
Der maximale PWM Wert ist mit den Timer Einstellungen auf der Base 210.
Für die PWM Werte eine 16 Bit Variable zu verwenden dürfte problematisch sein, das sollten 8 Bit sein.


MfG,
SlyD

I&amp;#9829;ROBOTIC
14.05.2011, 12:21
ich kanns gerade nicht testen, da mein akkupack leer ist, und wenn ich den rc empfänger am RP6 anstecke geht er aus, aber nicht nur ein Reset, sonder ganz aus, das LCD wird schwarz. der rp6 geht erst wieda an wenn ich den RC-empfänger anstecke... entweder er zieht viel zu viel Strom, oder er ist kaputt (dann könnte ich mir auch erklären, warum der RP6 bei den letzten versuchen nicht auf die fernsteuerung reagiert hat, das kann aber auch an dem fast leeren akkupack gelegen haben.)


MfG Julian

radbruch
14.05.2011, 16:47
Die Akkus sollte man gelegentlich auch mal einzeln in einem Ladegerät nachladen. Durch das dauernde serielle Laden aller Zellen im RP6 werden die Zellen ungleich aufgeladen. Auf Dauer schadet dies dem Akkus und die Gesamtkapazität nimmt drastisch ab.

I&amp;#9829;ROBOTIC
14.05.2011, 16:56
ich hab die akkus immer einzeln geladen nur 1 mal mit einem 9,8V ladegerät, das aber tatsächlich nur mit 7,2 V lädt..

I&amp;#9829;ROBOTIC
16.05.2011, 17:39
woran könnte es liegen, dass der RP6 beim anstecken des RC-empfängers im Reset gehalten wird (wenn das so ist ;) ) oder bricht die spannung nur so stark ein ??


MFG Julian

SlyD
17.05.2011, 14:48
woran könnte es liegen, dass der RP6 beim anstecken des RC-empfängers im Reset gehalten wird


Da musst Du schon etwas mehr Infos liefern. Was ist wo und wie angeschlossen? Funktioniert der RC Empfänger für sich alleine? Hast Du ein Multimeter? Falls ja miss die Stromaufnahme... usw.

I&amp;#9829;ROBOTIC
17.05.2011, 20:28
-.- das problem hat sich erledigt, der stecker war falsch angeschlossen, wahrscheinlich haben meine eltern wieder versucht meine Bastelecke aufzuräumen und haben aus versehen dabei den RC-empfänger abgesteckt und wieder falsch angesteckt... naja also dieses Problem ist gelöst, werde nun nochmal das Programm untersuchen ;)


MfG Julian

RolfD
17.05.2011, 20:31
lol.. und der Hund hats Hausaufgabenheft gefressen :)

I&amp;#9829;ROBOTIC
18.05.2011, 12:25
ist schon nem freund passiert xD jaja ist doch jetzt eh egal wer das war


ich hab jetzt das problem, dass nur mein rechter entrieb rückwärts fährt, wenn ich forwärts gas gebe. wenn ich zu mehr als 1,2 sek vollgas gebe bekomm ich dauernd 0xf8 raus... an dem setMotorPower(300-xxx) kann es nicht liegen, die zeile hab ich schon testweise rausgenommen, keine veränderung...
ich hab mein altes linienfolgeprogramm nochmal ausgegraben, es funktioniert fast einwandfrei, keine errors, das einzige was nicht so läuft wie es soll ist: der RP6 fährt nur rückwärts ! auch wenn ich vorher changeDirection(FWD); oder setMotorDir(FWD,FWD); aufrufe...


hier mal die ganzen programme bzw. die teile aus den master/slave Libs/progs die ich eingefügt habe:


RC-Programm:

#include "RP6ControlLib.h"
#include "RP6I2CmasterTWI.h"
#include "RP6Control_I2CMasterLib.h"

void I2C_requestedDataReady(uint8_t dataRequestID)
{
checkRP6Status(dataRequestID);
}

void I2C_transmissionError(uint8_t errorState)
{
writeString_P("\nI2C ERROR - TWI STATE: 0x");
writeInteger(errorState, HEX);
writeChar('\n');
}

volatile uint16_t speed=0;
volatile uint16_t dir=0;
volatile uint16_t speedcount=0;
volatile uint16_t dircount=0;

ISR(TIMER1_COMPA_vect)
{
if (PINA & ADC5)
{
speedcount++;
}
else
{
if (speedcount > 0)
{
speed=speedcount;
}
speedcount=0;
}


if (PINA & ADC3)
{
dircount++;
}
else
{
if (dircount > 0)
{
dir=dircount;
}
dircount=0;
}
}

void initRC(void)
{
TCCR1A = (0 << WGM11) | (0 << WGM10) | (0 << COM1A0) | (0 << COM1A1); // CTC-Mode4, ohne OCR-Pin
TCCR1B = (0 << WGM13) | (1 << WGM12) | (0 << CS12) | (1 << CS11) | (0 << CS10); // CTC und prescaler /8
TIMSK |= (1 << OCIE1A); // Interrupt ein
OCR1A = 20; // 100kHz?

DDRA &= ~ADC5;
PORTA &= ~ADC5;
DDRA &= ~ADC3;
PORTA &= ~ADC3;
}

int main(void)
{
initRP6Control();
initLCD();
initRC();

startStopwatch1();

mSleep(1000);

I2CTWI_initMaster(100);
I2CTWI_setRequestedDataReadyHandler(I2C_requestedD ataReady);
I2CTWI_setTransmissionErrorHandler(I2C_transmissio nError);

uint16_t speed1 = 0, dir1 = 0;

while(1)
{
cli(); // Interrupts verbieten
speed1=speed;
dir1=dir;
sei(); // Interrupts wieder zulassen


if (speed1 < 150 && speed1 > 140)
{
if (dir1 > 180){ setMotorDir(BWD,FWD); setMotorPower(150,150); }
if (dir1 < 120){ setMotorDir(FWD,BWD); setMotorPower(150,150); }
}

if (speed1 < 140)
{
setMotorDir(BWD, BWD);
if(dir1 < 140){ setMotorPower((300-speed1),(300-speed1)-dir1); }
if(dir1 > 150){ setMotorPower((300-speed1)-(300-dir1),(300-speed1)); }
if(dir1 < 150 && dir1 > 140) { setMotorPower(300-speed1, 300-speed1); }
}

if (speed1 > 150)
{
setMotorDir(FWD, FWD);
if(dir1 < 140){ setMotorPower(speed1,speed1-dir1); }
if(dir1 > 150){ setMotorPower(speed1-(300-dir1), speed1); }
if(dir1 < 150 && dir1 > 140) { setMotorPower(speed1, speed1); }
}

if(adcLSL < 500 || adcLSR < 500) { PORTA |= ADC7; } // Scheinwerfer an
if(adcLSL > 500 && adcLSR > 500) { PORTA &= ~ADC7; } // Scheinwerfer aus

task_checkINT0();
task_I2CTWI();
}
return 0;
}

setMotorDir und setMotorPower in der Control master lib:

void setMotorPower(uint8_t PWR_left, uint8_t PWR_right)
{
if(PWR_left > 210) PWR_left = 210;
if(PWR_right > 210) PWR_right = 210;
I2CTWI_transmit4Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_MOTOR_PWR, PWR_left, PWR_right );
while(I2CTWI_isBusy() || TWI_operation != I2CTWI_NO_OPERATION) task_I2CTWI();
}


void setMotorDir(uint8_t dir_left, uint8_t dir_right)
{
I2CTWI_transmit4Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_MOTOR_DIR, dir_left, dir_right);
while(I2CTWI_isBusy() || TWI_operation != I2CTWI_NO_OPERATION) task_I2CTWI();
}



die beiden funktionen im Base slave prog:


#define CMD_SET_MOTOR_PWR 13
#define CMD_SET_MOTOR_DIR 14



....


//einfügung in die switch-case funktion:


case CMD_SET_MOTOR_PWR: setMotorPower(param1,param2); break;
case CMD_SET_MOTOR_DIR: setMotorDir(param1,param2); break;


wenns hilft hier noch das Linienfolgeprogramm, das ja bis auf die rückwärtsfahrt funktioniert:

#include "RP6ControlLib.h"
#include "RP6ControlServoLib.h"
#include "RP6I2CmasterTWI.h"
#include "RP6Control_I2CMasterLib.h"

void I2C_requestedDataReady(uint8_t dataRequestID)
{
checkRP6Status(dataRequestID);
}

void I2C_transmissionError(uint8_t errorState)
{
showScreenLCD("I2C ERROR: 0x","");
writeIntegerLCD(errorState, HEX);
}

int main(void)
{
initRP6Control();
initLCD();

mSleep(500);

I2CTWI_initMaster(100);
I2CTWI_setRequestedDataReadyHandler(I2C_requestedD ataReady);
I2CTWI_setTransmissionErrorHandler(I2C_transmissio nError);

setMotorDir(FWD,FWD);

while(1)
{
if (adcLSL > adcLSR)
{
setMotorPower(100,50);
}
else
{
setMotorPower(50,100);
}
task_checkINT0();
task_I2CTWI();
getAllSensors();
}
return(0);
}

wo könnte der fehler sein -.- hab langsam keine lust mehr i-was mit meinem RP6 zu machen da fast nie was geht...


MfG Julian

radbruch
18.05.2011, 13:28
Hallo

Wie SlyD schon schreibt, diese Funktionen sind im orginalen Base-Slaveprogamm nicht vorhanden:

#define CMD_SET_MOTOR_PWR 13
#define CMD_SET_MOTOR_DIR 14

Wichtig ist, dass beide Funktionen die Motorparameter libkonform ändern sonst klappt es nicht mit dem task_motionControl() in der Slave-Hauptschleife. Hier eine von mir geschriebene Funktion um die Motoren direkt anzusteuern im direkten Vergleich zum setMotorPower() aus der RP6RobotBaseLib:

// Achtung! Die PWM-Werte werden hier OHNE Rampe verändert!
void setMotorPWM(uint8_t power_links, uint8_t power_rechts)
{
extern uint8_t mleft_ptmp, mright_ptmp;

if(power_links > 210) power_links = 210;
if(power_rechts > 210) power_rechts = 210;
mleft_power=mleft_ptmp=power_links;
mright_power=mright_ptmp=power_rechts;

OCR1BL = power_links;
OCR1AL = power_rechts;

if(power_links || power_rechts)
TCCR1A = (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1);
else
TCCR1A = 0;
}

void setMotorPower(uint8_t left_power, uint8_t right_power)
{
if(left_power > 210) left_power = 210;
if(right_power > 210) right_power = 210;
mright_power = right_power;
mleft_power = left_power;
}


Vielleicht hilfts?

Gruß

mic

[Edit]
Ach, das steht ja auch in der Beschreibung von setMotorPower():

* -------------------------------------------------------------
* IT IS A BETTER IDEA NOT TO USE THIS FUNCTION AT ALL!
* Use moveAtSpeed together with task_motionControl instead.
* YOU CAN NOT USE setMotorPower AND setMotorDir WHEN YOU USE
* task_motionControl! This will not work!
* -------------------------------------------------------------
http://translate.google.de/translate_t?q=*+IT+IS+A+BETTER+IDEA+NOT+TO+USE+THI S+FUNCTION+AT+ALL!++*+Use+moveAtSpeed+together+wit h+task_motionControl+instead.++*+YOU+CAN+NOT+USE+s etMotorPower+AND+setMotorDir+WHEN+YOU+USE+++*+task _motionControl!++This+will+not+work!

I&amp;#9829;ROBOTIC
18.05.2011, 14:06
Ach, das steht ja auch in der Beschreibung von setMotorPower():
* -------------------------------------------------------------
* IT IS A BETTER IDEA NOT TO USE THIS FUNCTION AT ALL!
* Use moveAtSpeed together with task_motionControl instead.
* YOU CAN NOT USE setMotorPower AND setMotorDir WHEN YOU USE
* task_motionControl! This will not work!
* -------------------------------------------------------------
oha... xD ganz überlesen.. mich wunderts dass es davor einwandfrei geklappt hat xD


ich werds jetzt mal mit deiner funktion versuchen. die wird aber für die Base sein (bin mir eig sicher aber sicher ist sicher :D ) ?






[EDIT] boah danke radbruch ;) mit deiner funktion klappt es !! ich bekomm nur immer 0x20 raus und so klappt das schnelle richtung-ändern nicht, aber das krieg ich hin xD


nochmal großen Dank an alle ! ;)


[EDIT 2] anscheinend bekomm ich es doch nicht. ich hab die den inhalt der schleife in eine if-funktion mit einer wartezeit von 1ms gepackt, so bekomme ich keine errors mehr, aber der RP6 fährt nur rükwärts, egal ob ich fortwärts gasgebe rückwärts oder links rechts drehe, wenn ich garnichts mache bleibt er natürlich stehen, aber anscheinend funktioniert die richtungsänderung nicht richtig.. bin ich echt so dumm dass ich nicht mal das hinkriege ??

[EDIT 3] wie viele edits werdns noch ?? ;) ich nochmal herumexperimentiert und herausgefunden, dass wenn ich die das programm erst nach dem einschaltern der fernbedienung starte der rp6 bei irgendwelchen bewegungen immer rückwärts fährt, schalte ich die fernbedienung aber erst ein wenn das Programm läuft, bekomm ich auch wieder errors raus (0x20) und der RP6 fährt dann nur vorwärts.. oje... ob das nochmal was wird ;) ?


MfG Julian

radbruch
18.05.2011, 15:44
oje... ob das nochmal was wird?Sicher, die nötige Hartnäckigkeit scheinst du ja zu besitzen. Wenn immer alles auf Anhieb funktioniert lernt man nicht so viel ;)

Selbstverständlich sind die Funktionen für die Base gedacht, weil sie ja direkt auf die Motoransteuerung zugreifen. Da ich die Kommunikation zwischen Base und M32 noch nicht wirklich überblicke kann ich eigentlich nur raten. In RP6I2CslaveTWI.h ist Status 0x20 so definiert:


// TWI Master Transmitter staus codes
#define TWI_MTX_ADR_ACK 0x18 // SLA+W has been transmitted and ACK received
#define TWI_MTX_ADR_NACK 0x20 // SLA+W has been transmitted and NACK received
#define TWI_MTX_DATA_ACK 0x28 // Data byte has been transmitted and ACK received
#define TWI_MTX_DATA_NACK 0x30 // Data byte has been transmitted and NACK received


Was das bedeutet kann ich aber wirklich nicht sagen ;)

Gruß

mic

I&amp;#9829;ROBOTIC
18.05.2011, 15:54
ich dachte immer (habe irgendwo mal gelesen) das heißt dass die base nicht antwortet

radbruch
18.05.2011, 16:24
ADR_ACK bedeutet vielleicht "Adresse verstanden " und ADR_NACK dann entsprechend "Adresse nicht verstanden". Keine Antwort wäre wohl eher irgendwas mit "timeout" oder "Verbindung verloren". Das wäre aber unterste Kommunikationsebene vom I2C und sollte eigentlich funktionieren, weil das bisher schon viele andere so genutzt haben. Aber wie schon geschrieben, ich kann, Mangels eigener Erfahrung, eigentlich nur raten.

Oh, im Datenblatt des Mega32 (http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf) steht auch was zu den TWI-Statusmeldungen auf Seite 184/185. Und SlyD verweist im Quellcode auch noch auf eine Appliation Note 311:
http://www.atmel.com/dyn/resources/prod_documents/doc2565.pdf

Da muss man sich erst mal durchwursteln...

btw: Mein lokales Datenblatt war schon veraltet, es hatte die Statusmeldungen auf Seite 188/189. Man beachte bitte auch den letzten Satz im Datenblatt!

http://www.atmel.com/dyn/products/product_docs.asp?category_id=163&family_id=607&subfamily_id=760&part_id=2014

I&amp;#9829;ROBOTIC
18.05.2011, 16:35
hm... naja aber es liegt anscheinend an der funktion changeDirection, denn die geschwindigkeitsregelung funktionier einwandfrei.