Jump to content

TF + Brushlessmotoren


Recommended Posts

Hallo zusammen,

hier mal ein kleiner Versuchsaufbau von mir, da mich bereits einige gefragt hatten was ich so mache:

 

Komponenten:

  • Master Brick
  • Step Down Power Supply
  • Servo Brick
  • IO16 Bricklet
  • Joystick Bricklet
  • 2x Turnigy 25A BSC
  • 2x Turnigy BL Motor 1200 kv 150w
  • 2x Master Airscrew Combat
  • Paar LEDs
  • Auto Batterie 12 V 45Ah
  • Paar Kabel

 

Über das Joystick Bricklet lassen sich die beiden Motoren hochfahren. Allerdings ist bisher nicht das Maximum eingestellt, weil die Motoren doch etwas mehr Leistung bringen als erwartet mit der Schraube ;)

Unter die Motoren sind jeweils Styroporstücke gesteckt damit die Propeller nicht gleich umkippen. Sobald meine Servo bzw. ESC Verlängerungen da sind werde ich den ersten Flugversuch starten, momentan ist mir das zu nah an meinen Bricks. Da es vermutlich sehr unkontrolliert durch die gegen fliegen wird :)

Für die Strom Anbindung ist das Power Brick mit einem der schwarzen Zweipinstecker verbunden worden. Die ESC habe ich über Stecker aus einem Computer verbunden (ein Y-Stecker musste dafür her halten) Sind zwar eigentlich nicht für höhere Ströme gedacht, aber funktioniert soweit super. Zudem bieten sie 4 Kabelverbinder und sind damit optimal für 2 ESC (3 Stecker würden auch reichen..)

 

So ich weiß nicht ob das hier jemandem für irgendetwas hilft. Aber vielleicht hat jemand vor was mit ESC zu machen. WICHTIG: wenn euer ESC BEC bestückt ist, unbedingt das rote Kabel entfernen (siehe Doku)

 

Bisher scheint es allerdings mit einem der Motoren ein Problem zu geben. Der dreht zwischendurch unkontrolliert in "Stößen" hoch. Hab allerdings noch keine Ahnung wodran das liegt.

 

bild1.jpg

 

bild2.jpg

 

bild3.jpg

 

bild4.jpg

Link to comment
Share on other sites

So hier mal der Java Source Code.

Die Compilierte Version ist leider größer als 192 Kb daher kann ich die nicht anhängen. Daher nur der Code im Anhang. (@TF 192 kb? Könnt ihr das nicht erhöhen?)

 

Die Belegung:

  • Servo Brick 0,6
  • IO16 Bricklet a0 = blau, a1= rot, a2= weiß (auf 5V aber das ist egal)

Die Connection ist als Singleton Pattern umgesetzt, ist vielleicht für jemanden interessant, der jedes Mal eine neue Verbindung zu den Bricks / Bricklets aufbaut. Dürfte etwas Performance in die Sache bringen.

 

Wenn jemand Anmerkungen zum Code, Programm oder sonstigem hat einfach einen Kommentar oder PM an mich.

 

Der Code kann selbstverständliche verändert und uneingeschränkt genutzt werden 8)

FlyApplikation.7z

Link to comment
Share on other sites

Habe nur kurz in die Klasse geschaut wo du die Servos ansteuerst. Es sieht so aus als würden deine Motoren aus sein, wenn die Servos voll links eingeschlagen sind. Dafür rufst du setPosition mit -9000 auf.

In der Doku steht, dass du diesen Bereich aber frei wählen kannst, dann wären die Zahlen auch intuitiver. Zum Beispiel:

setPosition(0) <-- Motor steht

setPosition(18000) <-- maximale Drehzahl (hier kannst du auch was anderes nehmen ^^)

 

Hab grad geschaut, die FUnktion dazu heißt setDegree()

 

 

Link to comment
Share on other sites

oh super, dass du da rein geschaut hast. Du hast recht mit setDegree() kann man an dieser Stelle die "0" Position des Motors verschieben. Allerdings ist das auch ein wenig mit try and error verbunden. Ganz auf 0 komme ich nicht, was sicherlich auch mit dem verbauten Material zusammen hängt.

Bei einem setDegree (0, -3510, 18000) läuft der Motor weiter. Stoppe ich ihn und setz den Wert so, läuft er aber nicht los.

So ganz genau kann ich mir das alles noch nicht erklären, aber ich arbeite daran :)

Man kann normalerweise auch den ESC auf die vorgegebene Pulsweite eichen. Macht man mit der Fernbedienung ja auch. Allerdings sind das meine ersten BL Motoren + Regler da braucht das noch etwas Zeit bis ich das alles verstanden habe.

Link to comment
Share on other sites

Bei einem setDegree (0, -3510, 18000) läuft der Motor weiter. Stoppe ich ihn und setz den Wert so, läuft er aber nicht los.

Also ein ähnliches Phänomen kenne ich von Gehäuselüftern (die ja auch nur per PWM gesteuert werden), da ist das Problem, dass das Anlaufen schwerer ist als das "laufen lassen", denn der Rotor ist ja dann schon in Schwung und kann seine Trägheit nutzen. Deswegen ist es tatsächlich möglich nach dem Anlaufen des Motors die Drehzahl wieder zu reduzieren. Ist natürlich tricky, weil wenn du jetzt mit dem Finger den Rotor stoppst (bei Lüftern geht das ohne Verletzung ^^) läuft er wieder nicht an.

 

Man kann normalerweise auch den ESC auf die vorgegebene Pulsweite eichen.

Bei guten ESCs geht das definitiv, aber ich besitze auch welche die das nicht können ^^

Link to comment
Share on other sites

da ist das Problem, dass das Anlaufen schwerer ist als das "laufen lassen", denn der Rotor ist ja dann schon in Schwung und kann seine Trägheit nutzen.

Nein, der Grund ist, dass die Haftreibung immer größer ist als die Gleitreibung. Außer man benutzt Kugellager.

Link to comment
Share on other sites

Ich denke solange man keine Möglichkeit hat die Drehzahl des Motors abzufragen, wird man dafür keine Lösung bekommen. Wäre natürlich toll, wenn das möglich wäre, da ich ja zwei Motoren gleichzeitig betreibe.

Ist alles schon merkwürdig, manchmal läuft der Motor auch langsam falsch herum an. Was natürlich nicht wirklich funktioniert...

Möglicherweise der billigen Hardware geschuldet ;)

Link to comment
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...