Das Elektor-Forum schließt seine Pforten (siehe auch http://www.elektormagazine.de/forum). Ab Freitag, den 01. März, ist es nicht mehr möglich, sich im Forum einzuloggen. Alle Inhalte des Forums bleiben jedoch bis Ende März noch sichtbar. Am 01. April wird das Forum schließlich komplett geschlossen.

Selbstbau mit Arduino

Der selbst balancierende einachsige Elektro-Roller

Postby empireofthedark » Sat Nov 02, 2013 12:00 am

Seit bereits 2 Jahren nehme ich mir vor selbst einen Segway zu bauen und habe auch bereits aus Plexiglas, 2 DC Motoren und einem Handyakku ein Modell gebaut, welches mit einem Arduino und den Wii Motion Plus Sensor das Gleichgewicht hält.

Jetzt will ich es wirklich angehen und habe mir bereits die Teile herausgesucht die ich verwenden will:
http://www.alibaba.com/product-gs/713510837/48V_brushless_dc_motor_1000W_single.html

So wie ich das sehe genügt es wenn ich im Rahmen auf beiden Seiten einen 4x4x4cm Alu Block mit einem Loch verbaue um die Räder festzumachen.

Da ich bereits viel Erfahrung mit Arduino Programmen gesammelt habe, habe ich vor ein neues Programm auf Arduino-Basis zu entwickeln.

Ich denke ich werde einen Arduino mit MPU6050 verwenden der die Logik übernimmt und einen zweiten der die Ansteuerung der Brushless Motoren macht.

Als Akkus werde ich zum Testen einmal einen 12S Lipo mit 4Ah verwenden, da kann man im Dauerbetrieb 4000W herausnehmen, das sollte genügen.

Die H-Brücken werde ich nach diesen Plan: http://www.rn-wissen.de/index.php/Bild:Rutscherle2_2.GIF nachbauen, vielleicht mit etwas besseren Mosfets.

Ich hoffe mal für den Anfang auch ohne herumspielen mit Hall-Sensoren bei den BLDC Motoren auszukommen. Wenn das dann nicht so gut funktioniert muss ich eben doch neue Sensoren verbauen.

Solltet ihr bei meinem Annahmen Fehler finden, ist jedes Feedback natürlich willkommen!

Liebe Grüße aus Österreich,
Peter
empireofthedark
 
Posts: 31
Joined: Fri Jan 03, 2014 1:48 pm

Postby kritias » Sun Nov 03, 2013 12:00 am

Hallo Peter,

Im Prinzip geht das so. Bei den Motoren würde ich welche ohne den Flansch für die Bremsscheiben nehmen. Du musst auch beachten, daß bei den chinesischen Motoren oft von "rated Power" gesprochen wird. Man kann das durchaus so verstehen, daß die das geraten haben. Ein Arduino reicht tatsächlich aus um das Ganze zu betreiben. Hat aber einen Nachteil, zumindest wenn du beide Motorregler und den Tacho an die gleiche serielle hängst. Die Kommunikation frisst dir die halbe Zeit weg. Darum habe ich bei meinem Nachfolger einen xmega verwendet. Für jedes externe Teil eine extra Schnittstelle, und diese per DMA betrieben. Dann frisst das keine Zeit mehr.
Das heist jedoch nicht, daß der Arduino nicht geeignet wäre. Es wird funktionieren. Du hast halt kaum noch Rechenzeit innerhalb der Regelschleife (Regelinterrupt). Über 100Hz kommst du damit nicht. Mit dem xmega sind 300Hz möglich.
Was den MPU6050 angeht, den habe ich beim Nachfolger auch drin. Funktioniert einwandfrei. Bei den Motorreglern kann kaum was schief gehen, bei mir funktionieren die ja auch. Die Software ist aber für 4 Sensorsignale. Also Sensoren verbauen, oder Software abändern.

Ich wünsche dir mal viel Erfolg. Halte uns hier auf dem Laufenden.

Daniel
User avatar
kritias
 
Posts: 277
Joined: Fri Jan 03, 2014 1:47 pm

Postby empireofthedark » Sun Nov 03, 2013 12:00 am

Ok ich habe mir das Thema mit den BLDC Motoren noch etwas genauer angesehen; So wie ich das sehe muss ich einfach schauen in welcher der 6 Positionen sich die Hall Sensoren gerade befinden und dementsprechend 2 Phasen schalten. Wenn ich langsamer fahren will ist auch klar, damm muss ich halt mit PWM schalten.

Was ich noch nicht ganz verstehe ist, wie ich bremsen kann. Also wenn ich jetzt auf 200rpm bin und möglichst schnell auf 100rmp kommen will. Muss ich dann einfach 2 Phasen auf Low oder High schalten damit ein kleiner Kurzschluss entsteht, mit pwm natürlich wenn man nicht ganz so stark bremsen muss, oder muss man das irgendwie anders machen? Was für eine Rolle spielen die Hall-Sensoren beim Bremsvorgang?

Leider habe ich es nicht geschafft den im Wiki beschriebenen 36V 1000W BLDC single shaft Motor zu finden, ich hab nur einen 48V Motor gefunden. Vielleicht hat noch jemand einen Link der mir helfen könnte.

Vielen Dank für die Unterstützung!
Peter
empireofthedark
 
Posts: 31
Joined: Fri Jan 03, 2014 1:48 pm

Postby kritias » Mon Nov 04, 2013 12:00 am

Ganz so einfach ist es nicht. So ein BLDC ist doch eigentlich ein Drehstrom-Sychronmotor. Die Senoren werden gebraucht, um elektrische Position zu bestimmen. Nur 2 Phasen zu bestromen hat einen Nachteil. Der Motor hat damit nur ungefähr die halbe Leistung. Darum gebe ich auf allen drei Phasen die passenden Spannungen zur augenblicklichen Position vor. Wenn gebremst werden soll, werden die Spannungen auf den Wicklungen heruntergenommen, was automatisch bewirkt, daß der Motor Energie erzeugt und in den Akku drückt. Im Endeffekt bedeutet das, du musst an jeder Phase mit der PWM zwischen 0V und der Akkuspannung hin und her schalten, daß genau die richtige Spannung für die von den Sensoren erkannte Rotorposition entsteht.
Ein weiterer Vorteil, wenn man alle drei Wicklungen bestromt, ist, daß es ausser der Totzeit keinen Zeitpunkt gibt an dem an den Halbbrücken beide Mosfets offen sind. Die Dioden werden also nicht belastet. Damit fällt daran auch keine Spannung ab und erzeugt unnütze Wärme.
Mit den 3 Sensoren die üblicherweise verbaut sind kannst du nur in 60° Schritten kommutieren. Immer beim Wechsel bricht dann das Drehmoment ein. Das ist besonders störend im Stand oder beim Anfahren gegen einen Widerstand. Auserdem läuft der Motor bei weitem nicht so gut wie er könnte. Bei drei zusätzlichen Sensoren bekommt man eine Zwischenposition und kann so etwas wie einen Sinus vorgeben. Der Motor wird leiser, deutlich effizienter und das Drehmoment wird homogener. Die drei zusätzlichen Sensoren habe ich bei mir nur verbaut weil das Ergebnis mit 60°Schritten sehr unbefriedigend war. Damit kann man nur auf absolut ebenen Untergründen gut fahren. Das ist nichtmal straßentauglich.

Motoren mit 36V musst du einfach bei den Chinesen anfragen. Die wickeln das wie du möchtest. Oder die Motorregler einfach mit 48V betreiben. Die halten das aus.

Daniel
User avatar
kritias
 
Posts: 277
Joined: Fri Jan 03, 2014 1:47 pm

Postby empireofthedark » Mon Nov 04, 2013 12:00 am

Ok danke für deine Ausführliche Antwort!

Also nochmal zur Zusammenfassung:

um alle Geschwindigkeiten zwischen 0 und sagen wir mal 300rpm zu bekommen, muss ich einfach die im Diagramm gezeigten Werte
mit der prozentuellen Geschwindigkeit multiplizieren. Dann ist das ganze ja viel einfacher als ich mir es gedacht habe. Und wenn ich jetzt von positiver auf negativer Drehrichtung kommen will, muss ich die pwm so lange mindern bis ich auf null bin und dann das Diagramm in die andere Richtung lesen.

Ich werde dann gleich einmal den Chinesen anschrieben und ihn fragen ob er mir 36V Motoren wickelt. Hall-Sensoren gehe ich dann auch gleich bestellen, beim durchsehen älterer Threads sehe ich dass es fast nicht ohne gehen soll.

Liebe Grüße,
Peter'
empireofthedark
 
Posts: 31
Joined: Fri Jan 03, 2014 1:48 pm

Postby kritias » Mon Nov 04, 2013 12:00 am

Nicht ganz so. Die werte im Diagramm geben die Prozentuale Spannung an die du an jeder Position auf die drei Leitungen gibst. Wenn du den Motor z.B. in der Position 8 betrachtest und die halbe Leistung möchtest, steht die PWM bei der blauen Wicklung auf 0,5*100%*256=128 bei der roten Wicklung bei 0,5*67%*256=85 und bei der gelben Wicklung bei 0,5*0%*256=0. Das entspricht bei 36V Akkuspannung dann den Spannungen 18V, 12V und 0V an den drei Leiungen. Wenn du einfach so die Spannungen anlegst bewegt sich der Rotor wie bei einem Steppermotor in die passende Position. Um in die eine Richtung zu drehen musst du die Spannungen von 90° davor vorgeben. In die andere Richung die von 90° dahinter. 90° entsprechen in dem Diagramm 3 Positionen. Wenn der Motor z. B. in Position 4 steht, dann bekommt er die Spannungen von Position 7 vorgesetzt und läuft vorwärts. Wenn du ihm die Spannungen von Position 1 unterjubelst läuft er rückwärts. Wenn du den Motor mit z.B. 10% Leistung betreibst und versuchst von Hand in Drehrichtung zu beschleunigen wird er sofort Strom in den Akku schieben. Du wirst ihn kaum von Hand schneller drehen können.
User avatar
kritias
 
Posts: 277
Joined: Fri Jan 03, 2014 1:47 pm

Postby empireofthedark » Tue Nov 05, 2013 12:00 am

Ich habe einmal den Chinesen angeschrieben und er meint er verkauft mir 2 seiner Motoren für 608$ mit express Versand. Allerdings will er mir auch 2 seiner Controller dazutun. Ich habe ihn jetzt zurückgeschrieben dass mir das zu teuer ist und er mit normaler Versand senden soll und seinen Controller kann er sich auch sparen.

Nochmal zurück zu der Steuerung, sehe ich dass richtig dass ich bei den Treiber-ICS http://www.rn-wissen.de/images/b/bd/Rutscherle2_2.GIF die 2 Eingänge zusammenfassen kann da der eine Input ja negiert wird und ich dann eigentlich nur ein pwm signal auf beide eingänge gleichzeitig legen muss?

Da mein letztes Projekt http://www.youtube.com/watch?v=5q2B6UvYeTQ mittlerweile abgeschlossen ist kann ich mich jetzt ganz dem segway widmen!

Liebe Grüße,
Peter
empireofthedark
 
Posts: 31
Joined: Fri Jan 03, 2014 1:48 pm

Postby elnillo » Tue Nov 05, 2013 12:00 am

empireofthedark
Nochmal zurück zu der Steuerung, sehe ich dass richtig dass ich bei den Treiber-ICS http://www.rn-wissen.de/images/b/bd/Rutscherle2_2.GIF die 2 Eingänge zusammenfassen kann da der eine Input ja negiert wird und ich dann eigentlich nur ein pwm signal auf beide eingänge gleichzeitig legen muss?



Hallo Peter,

dann wäre immer ein FET leitend und du hättest keinen Leerlauf. Guck dir mal im Quellcode der Motorregler die Konfiguration der Timer und die Ansteuerung der PWM Pins an in den verschiedenen Betriebszuständen.
Warum suchst du nach 36V Motoren? Deine 12S Lipos sind doch gut geeignet für die 48V Motoren.

Marcus
elnillo
 
Posts: 10
Joined: Fri Jan 03, 2014 1:48 pm

Postby empireofthedark » Tue Nov 05, 2013 12:00 am

Hallo Marcus,

Ich habe schon oft probiert da irgendetwas herauszulesen, allerdings ist es mir noch nie gelungen viel zu verstehen, auch nicht mit der Assembler Befehlsliste daneben. Ich kann zwar Siemens SPS programmieren, was von der Syntax her ähnlich ist, allerdings heißen die Befehle anders.

Der Chinese sagt, er verkauft den Motor auch als 36V Ausführung, allerdings komme ich da auf keine 450rpm mehr.

Ich habe ein bisschen recherchiert und bin zum Schluss gekommen dass ich unter 150€ die Motoren nicht nach Österreich bekomme. Vielleicht kennt ja jemand einen Händler in der EU, devimotion hat die Motoren jedenfalls nicht so weit ich sehe.

Da ich nur 3S Lipo Packs habe werde ich einfach 4 Zusammenstecken, bei 36V wären es 3 gewesen; ist aber eigentlich auch egal.

Liebe Grüße,
Peter
empireofthedark
 
Posts: 31
Joined: Fri Jan 03, 2014 1:48 pm

Postby thomas scherer » Tue Nov 05, 2013 12:00 am

@dunkles Reich:
Natürlich werden Dir die Motoren auch in 36V verkauft. 48V-Typen eben als 36V-Motoren. Dann drehen sie langsamer

Es gibt auch in Europa Motoren, z.B. hier: http://www.devi-motion.com/webshop/bldc-hub-motor/p-1/

Was für andere Typen hättest Du denn gerne gehabt, die die nicht haben?
thomas scherer
 
Posts: 1128
Joined: Thu Jan 02, 2014 10:38 am

Next

Return to ElektorWheelie

Who is online

Users browsing this forum: No registered users and 1 guest