Jump to content

Servo Brick & Motor Controller


yuna

Recommended Posts

Hallo,

 

nun habe ich alle Komponenten endlich zusammen 8)

Bei der Verwendung von meinem Motor Controller "TRex Jr" schaffe ich es nur im BrickViewer die Motoren meines Roboters zum drehen zu bekommen. Egal ob im Stack oder nicht. Firmware habe ich auch nochmal raufgespeilt.

Normale Servos scheinen problemlos zu laufen.

Wenn ich im BrickViewer den Motor anschmeiße, dann kann ich mit mein Javaprogramm solange den Motor kontrollieren bis ich diesen disable.

 

Ist das ein Bug? Ich habe leider von Hardware keine Ahnung  :'(

 

Neue Problembeschreibung:

Da ich ganz schön wirr manchmal schreibe, beschreibe ich nochmal das Problem...

Anfangs sah es aus als ob es nur im BrieckViewer funktioniert.

Jetzt jedoch bekomme ich es in Java sowie im Brickviewer hin, jedoch nur für das erste Mal wenn ich den jewiligen Motor auf "enable' setze.

Sobald ich einen anderen Motor oder Servo steuere oder den jeweiligen kurz auf "disable" setze, fallen alle Motoren aus. Die Servos laufen normal weiter. Der Motorcontroller signalisiert mittels eines grünen LEDs das ein Signal bei "enable" und "disable" anzukommen scheint, aber die Motoren LEDs leuchten nicht auf, also es kommt kein signal zum drehen der Motoren.

Ich muss somit immer den Servo Brick resetten bei jeder Benutzung von einem Motor am Motorcontroller.

Was Problemlos und immer funktioniert ist im Brickviewer wenn ich "start test" klicke.

Link zu diesem Kommentar
Share on other sites

  • 4 weeks later...

Joa klaro,

 

ich habe sehr oft meine Programmierung geändert und letztendlich zum testen nehme ich das Programm von (RaphaelVogel), der mir schon gut ausgeholfen hatte. https://github.com/RaphaelVogel/robot/blob/master/RoboServer/src/handler/DriveHandler.java

Ich nutze als Motor Controller https://www.pololu.com/docs/pdf/0J5/TReX_Jr.pdf

und hier meine Einstellungen für diesen: http://www.tinkerunity.org/forum/index.php/topic,2690.msg17256.html#msg17256

 

Problembeschreibung

Da ich ganz schön wirr manchmal schreibe, beschreibe ich nochmal das Problem...

Anfangs sah es aus als ob es nur im BrieckViewer funktioniert.

Jetzt jedoch bekomme ich es in Java sowie im Brickviewer hin, jedoch nur für das erste Mal wenn ich den jewiligen Motor auf "enable' setze.

Sobald ich einen anderen Motor oder Servo steuere oder den jeweiligen kurz auf "disable" setze, fallen alle Motoren aus. Die Servos laufen normal weiter. Der Motorcontroller signalisiert mittels eines grünen LEDs das ein Signal bei "enable" und "disable" anzukommen scheint, aber die Motoren LEDs leuchten nicht auf, also es kommt kein signal zum drehen der Motoren.

Ich muss somit immer den Servo Brick resetten bei jeder Benutzung von einem Motor am Motorcontroller.

Was Problemlos und immer funktioniert ist im Brickviewer wenn ich "start test" klicke.

 

Stromversorgung:

Für die Stromversorgung nutze ich ravpower elements mit 10000mAh

http://www.ravpower.com/ravpower-dynamo-on-the-go-rp-pb07-super-high-capacity-power-bank-10000mah-capacity-1a-and-2a-dual-usb-output-for-ipod-iphone-smartphones-digital-cameras-tablets-and-e-books.html

den 1A ausgang benutze ich für den Stapel und den 2,1A ausgang benutze ich für die Motoren & Servos und schalte noch eine StepUp http://www.ebay.de/itm/171507844112?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT dazwischen, um auf 7V zu kommen. ich habe es auch schon mit 9V probiert, macht aber auch kein Unterschied.

Link zu diesem Kommentar
Share on other sites

Oh oh, da geht ja einiges durcheinander hier  ;)

 

1. Die Encoder haben nichts mit einem Motortreiber/ESC zu tun !

Mit Hilfe von einem Encoder wird ein Signal abhängig von der Drehzahl des Motors erzeugt. Damit kannst du dann z.B. den Weg bestimmen, den dein Roboter gefahren ist (-> Stichwort Odometrie, siehe auch http://de.wikipedia.org/wiki/Inkrementalgeber)

 

2. Die 4 Motoren deines Rovers können natürlich nicht direkt an den Servo Brick angeschlossen werden. Man braucht dafür Fahrtregeler/ESC die das Servo Signal interpretieren und dann den Motor entsprechend steuern. Der Trex Motorcontroller ist da schon der richtige den du hast.

 

3. Um es mal plump auszudrücken, wenn es im Brick Viewer funktioniert und mit Java nicht, dann ist dein Java Code nicht in Ordnung. Funktioniert es auch im Brick Viewer nicht richtig, dann stimmt was mit der Verkabelung nicht.

 

Aus der Ferne ist das schlecht zu durchschauen was da falsch sein könnte. Du müsstest das Problem schon besser beschreiben und auch eingrenzen, sonst ist es zu schwer mit vertretbarem Aufwand zu helfen.

 

Fang mal ganz klein an (Baby Schritte  ;)). Ein Motor, ein Controller, ein kleines Programm das den Motor über den Servo Brick steuert.

 

Link zu diesem Kommentar
Share on other sites

Heya Raphael!!!  8)

Ich habe keine step down.

Das mein Motoren 7,2V benötigen stand nirgends, dann drehe ich mal auf 7,2V.

 

Ich wüsste nicht wie ich das noch anders beschreiben könnte.

Beim ersten ansteuern eines Motors gehts und beim nächsten Mal nicht. EGAL OB JAVA ODER BRICKVIEWER

Ich muss immer den ServoBrick resetten um ein weiteres signal zum motor zu senden.

Ich bin schon mehrmals alles von neu aufgebaut. Mittlerweile hängt der ServoBrick und der Motorkontroller mit einem angeschlossenen Motor allein an meinem Laptop dran. Da ist nichts mehr zu vereinfachen  :'(

Link zu diesem Kommentar
Share on other sites

Den Lernmodus verstehe ich nicht (wie so vieles andere auch ::) ) Wenn Ihr mir sagen könnt was ich damit mache, kann ich das ausprobieren.

 

Ich werde heute Abend nach der Arbeit ein Foto anfügen. Es ist alles so belassen wie ich es beschrieben hatte.

Die Einstellung mit den Jumpern habe ich mit Raphael gemacht, da ich leider total keine Ahnung hab wie das alles funktioniert und auch die Beschreibung es nicht gerade viel einfacher macht.

Link zu diesem Kommentar
Share on other sites

So nun ist es soweit. Ich habe mein Roboter auseinander gebaut und den motorcontorller ganz rausgeholt. die zwei Kabel in der Luft stammen von der stromversorgung die ich nochmals mit normalen in reihe geschalteten 1,2V AAA Akkus zu 9V probierte. an der klemme hängen zwei Motoren, die Für eine Seite der kettenlaufwerke zuständig sind.

die anderen zwei Motoren der anderen Seite habe ich zu testzwecken von den klemmen ersteinmal abgelassen abgesteckt

IMG_0291.thumb.jpg.365a7f0d04b69951dae4dc76da7b2f77.jpg

Link zu diesem Kommentar
Share on other sites

Danke für das Foto. Was ich so erkennen kann sieht alles gut aus. Ich bin mir nicht sicher ob das mit dem Lernmodus eine gute Idee ist. Eigentlich dient so einer nur dazu um die Min/Max und Mittelstellung zu kalibrieren. In jedem Fall sollte der Controller aber was tun. Von daher würde ich davon erstmal die Finger lassen.

 

Ich fasse nochmal zusammen: Du kannst jeden Motor von der Drehrichtung und Geschwindigkeit steuern, solange du ihn als erstes aktivierst (enable). Sobald du den Zweiten aktivierst geht sowohl der Erste als auch der Zweite nicht, korrekt?

 

Wenn du den Zweiten dann wieder deaktivierst geht aber auch der Erste nicht mehr, korrekt?

 

Beide einzeln gehen aber, korrekt?

 

Was für eine "Output Voltage" hast du beim Servo Brick eingestellt? Diese darf 5.5V nicht überschreiten!

Link zu diesem Kommentar
Share on other sites

Ja genau ich kann die Motoren nur einen "Befehl" geben und dannach geht nichts mehr außer die normalen servos.

Beim Servo habe ich Output Voltage nicht angefasst, da ich für motoren ja eine eigene Stromquelle habe.

Müsste ich zu hause schauen was da eingestellt ist.

Warum darf man nicht mehr als 5,5V am servo ausgeben? Dann macht doch die externe Stromversorgung "input" für den Servo Brick kein sinn oder hab ich da jetzt was falsch verstanden?

Link zu diesem Kommentar
Share on other sites

Ja genau ich kann die Motoren nur einen "Befehl" geben und dannach geht nichts mehr außer die normalen servos.

Das heißt, wenn du einen Kanal enablest, dann wird die aktuelle Stellung des "Position" Sliders übertragen und der Motortreiber tut etwas, korrekt? Wenn du jetzt den Slider bewegst passiert nichts mehr?

 

Warum darf man nicht mehr als 5,5V am servo ausgeben?
Sorry, dass war Blödsinn von meiner Seite aus. Das PWM zum Steuern besitzt beim Servo Brick immer fest ~5V. Die Servospannung nutzt du ja nicht für deine Treiber.
Link zu diesem Kommentar
Share on other sites

Also ich enable einen Motor,

Danach lässt sich der Slider der Position nur einmal bewegen,

Der Motor dreht sich.

Wenn ich nun nochmal die position, geschwindigkeit, beschleunigung, etc verändern mag passier nichts mehr.

(Selten schaffe ich es den Slider noch mehrmals zu bewegen bevor nichts mehr geht)

Der Motor dreht sich ungehindert weiter.

In diesem Moment kann ich auch den anderen Motor nicht mehr steuern.

Das einzige was Funktion, die noch geht ist dann "disable" um den Motor zu stoppen.

Dannach geht für die Motoren gar nichts mehr, es sei denn ich führe am Servo Brick ein reset durch um das ganze von vorn zu machen.

Ich sehe jedoch mittels LED das der Motorcontroller ein Signal emfängt wenn ich die Motoren enable.

 

Es sieht schon fast sicher aus, das ich einen anderen Motorcontroller suchen sollte. Ich habe den ServoBrick als fehlerquelle mittels des Kauf eines zweiten ausgeschlossen. Falls Interesse besteht, kann ich den Motorcontroller euch zusenden das ihr vielleicht die Signale überprüfen könnt. Heute Abend schaue ich mal das ich andere Motoren zum test finden kann.

Link zu diesem Kommentar
Share on other sites

So ich habe nun Motoren der selben Firma genommen.

Der Test schaute erst super aus, ich konnte mehrmals den Motor enablen und disenablen. Vielleicht weil der Motorcontroller schon länger nun ohne Strom war.

Jedenfalls zeigt sich nun plötzlich wieder das selbe Verhalten wie mit dem anderen Motoren.

Es wäre wirklich schön wenn ihr den DC Prickelt für 2-3 Motoren einrichten könntet, da ein einzelnes schon ganz schön viel Strom saugt. Oder eine intelligente Relais Schaltung die Phasen wechseln kann und an und ausschalten kann.

Link zu diesem Kommentar
Share on other sites

Vielleicht weil der Motorcontroller schon länger nun ohne Strom war
Oder weil sich die Batterien/Akkus etwas erholen konnten :)

Jedenfalls zeigt sich nun plötzlich wieder das selbe Verhalten wie mit dem anderen Motoren
Weil die Batterien/Akkus wieder an ihrer Leistungsgrenze sind.

 

M.E. hat dein Roboter zu wenig Strom, es kann gut sein, dass 0815 1.2V Akkus nicht hochstromfest/stabil sind und bei Last einbrechen.

 

Schreib doch mehr zur Spannungsversorgung. Welche Akkus/Batterien du genau verwendest: Hersteller, Kapazität etc. Hat jeder Motor eine eigene Versorgung ? Oder sind alle 4 Motoren am gleichen Powerpack ?

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...