http://mikrokopter.de/images/eng.gif Page in english

BL-CTRL V1.1

https://www.mikrocontroller.com/images/BL-Ctrl11_unten1.JPG

{i} Info für den vorbestückten Motorregler gibt es hier: BL-Ctrl_V1_1

Adressauswahl

BL-Ctrl 1.1 & 1.2

Bei der BL-Ctrl V1.1 & V1.2 wird die Motoradresse per Lötjumper auf der Platine eingestellt.

http://www.mikrokopter.de/ucwiki/BL-Ctrl_V1.2?action=AttachFile&do=get&target=BL-Ctrl_adr.jpg

Dabei gilt:

http://www.mikrokopter.de/ucwiki/BL-Ctrl_V1.2?action=AttachFile&do=get&target=Adr_Tabelle.gif

Bildlich:

http://www.mikrokopter.de/ucwiki/BrushlessCtrl?action=AttachFile&do=get&target=redgreen_s.jpg

BL-Ctrl 2.0

http://gallery.mikrokopter.de/main.php/v/tech/BL20_ADR.jpg.html

http://gallery.mikrokopter.de/main.php/v/tech/BL-Ctrl2_0-Adr.jpg.html
BL-Ctrl2.0



Dabei gilt:

Adresse (Motor)

1-2

2-3

4-5

1

offen

offen

offen

2

offen

geschlossen

offen

3

geschlossen

offen

offen

4

geschlossen

geschlossen

offen

5

offen

offen

geschlossen

6

offen

geschlossen

geschlossen

7

geschlossen

offen

geschlossen

8

geschlossen

geschlossen

geschlossen

Siehe auch: BL-Ctrl_2.0

generelle Verdrahtung des MikroKopters

Auf diesem Übersichtsplan erkennt man u.a. die Adressen und Positionen der Motor-Regler, sowie die Drehrichtung der entsprechenden Propeller:

http://mikrocontroller.cco-ev.de/images/kopter/verdrahtung1.gif

Brushless Ctrl (allgemein)

{i} Eine ausführliche Anleitung zur Inbetriebnahme selbstgelöteter Bl-Ctrl (grüne Leiterkarten) findet man unter BL-Ctrl_Anleitung...

Die Antriebe des MikroKopter sind bürstenlose Gleichstrommotoren, sog. Brushless-Motoren. Sie besitzen im Gegensatz zu Bürstenmotoren eine elektronische Kommutierung, d.h. funktionieren ohne Bürsten und Kollektor.

Die Vorteile dieser Motoren sind:

  • Hohe Leistungsdichte (Leistung zu Gewicht)
  • Für hohe Drehzahlen geeignet
  • Weitgehend verschleißfrei, da keine Bürsten oder Getriebe (verschleissen kann also nur das Lager)
  • Von verschiedenen Herstellern in unterschiedlichen Leistungsklassen erhältlich.

Die Nachteile dieser Motoren sind:

  • Man benötigt eine Elektronik (Brushless-Regler), die das synchrone Drehfeld der Motoren erzeugt. Die Motoren haben 3 Anschlüsse, die nacheinander bestromt werden müssen. Mit dem Regler kann man auch die Drehzahl stellen oder regeln. Dies funktoniert bei der BL-Ctrl sowie anderen Reglern ohne Hallsensor-Auswertung nur für relativ hohe Drehzahlen, die beim MK aber durchaus gegeben sind ;-)

Zwar gibt es auf dem Markt viele BL-Regler, die aber leider die speziellen Anforderungen zum Betrieb im Mikrokopter nicht erfüllen. Es wird ein Brushless-Regler benötigt, der einen neuen Sollwert sehr schnell (<0,5ms) annehmen und einstellen kann. Außerdem sollte er über eine I2C-Bus Schnittstelle verfügen.

So haben Holger und Ingo einfach Ihren eigenen preisgünstigen Selbstbau Brushless-Regler entwickelt:

http://mikrocontroller.cco-ev.de/images/kopter/BL-Regler.jpg

Die unbestückte Leiterkarte bzw. SMD-vorbestückte Platine ist in unserem Shop erhältlich.

Zur Programmierung wird ein ISP-Adapter benötigt - z.B. SerCon.

Dieser Regler kann alle gängigen Motoren treiben, z.B. ROBBE ROXXY 2815 oder 2824-34 Motoren.

Technische Daten

  • Abmessungen 20 * 43mm
  • BL-Ctrl Version 1.2: Dauerbelastung ca. 10-12A -> 160W an 4s Lipo

  • BL-Ctrl Version 1.2: Spitzenbelastung ca. 20A (kurzzeitig) -> 375W an 4s Lipo

  • BL-Ctrl Version 2.0: Spitzenbelastung ca. 40A (kurzzeitig) -> 750W an 4s Lipo

  • Controller: Atmega8 bzw 168 von Atmel
  • Strommessung und -begrenzung auf der Gleichstromseite
  • Zwei LEDs (z.B. Okay und Error)
  • Batteriespannungsmessung mit Unterspannungserkennung
  • Diverse Schnittstellen zur Sollwerteingabe
  • Ein Empfänger kann von den 5V versorgt werden (max. 50mA)
  • Nur Version 2.0: Temperaturmessung und Temperaturbegrenzung

  • Die Software für BL-Ctrl 1.2 ist komplett in C und mit Quellcode verfügbar

Als Schnittstellen sind möglich:

  • Asynchrone Serielle Schnittstelle (zum Ansteuern oder Debuggen)
  • I2C (zur schnellen Sollwertvorgabe) * PPM-Signal (als Standard-Eingang vom Empfänger)

Funktionsweise

Die Ansteuerung erfolgt dreiphasig in Impulsgruppen mit überlagerter PWM. Die PWM bestimmt die Höhe der Phasenspannung (genauer: der arithmetische Mittelwert der Spannung).

Die Phasenspannung am Motor (also die PWM) ist eine Stellgröße für die Drehzahl, weil: Ein Motor erzeugt durch seine Drehung eine Gegenspannung (wie ein Generator), die der angelegten Spannung entgegenwirkt.

Es stellt sich eine Drehzahl ein, bei der die Differenz von angelegter Spannung und Gegenspannung einen Strom erzeugt, der dem abgenommenen Drehmoment entspricht.

Es sind immer 2 der sechs MOSFETSs in Betrieb, um die Motorwicklungen zu bestromen. Der Zeitpunkt der Kommutierung (heißt: es muss auf die nächste Phase geschaltet werden) wird durch Spannungsmessung (genauer: Vergleich) an der nicht-bestromten Phase bestimmt.

Dazu wird der im Atmega8 vorhandene Analogkomparator verwendet. Der Strom wird über den Spannungsabfall an einer definierten Leiterbahn bestimmt.

Das Verfahren ist für eine Überstromabschaltung genau genug.

Mosfet Endstufen

http://mikrocontroller.cco-ev.de/images/kopter/Mosfets.jpg

Die Leistungsstufe besteht aus einem N-Kanal und einem P-Kanal MosFet pro Phase.

Der P-Kanal Mosfet benötigt einen vorgeschalteten Transistor, um das Gatepotential über einen Controllerportpin schalten zu können.

Die 10A-MOSFETs aus dem Shop benötigen selbst im geschlossenen Raum (27°C) nach einigen Minuten Volllast keine besondere Kühlung, eine vollflächige und saubere Verlötung vorausgesetzt:

nmos.jpg pmos.jpg

links der NMOS, rechts der PMOS

Rotorlageerkennung

http://mikrocontroller.cco-ev.de/images/kopter/Kommutierung.jpg

Dieser Schaltungsteil wirkt unscheinbar, hat es aber in sich.

Hier wird aus den Spannungen der Motorphasen ein virtueller Sternpunkt gebildet (Mittel). Der Controller vergleicht nun die gefilterten Spannungen der Phasen (NULL_x) mit dem Mittelpunkt und bestimmt anhand dessen den Zeitpunkt für die Kommutierung. Unter "Kommutierung" versteht man das Umschalten der Leistungsendstufe auf die nächste Phase.

Strommessung (Shunt)

http://mikrocontroller.cco-ev.de/images/kopter/shunt.jpg shunt2.jpg

Auf der Leiterkarte befindet sich eine Masseleiterbahn (Shunt), die absichtlich etwas verlängert worden ist. Der Schaltplan ist hier etwas ungenau dargestellt. Die beiden "GND" sind verschieden, sie haben nicht dasselbe Potential. Der GND rechts liegt an der Masse der Transistoren, GND links geht an die Einspeisung von Akku/FC. Der Strom fließt von + Akku über einen FET (z.B. NA+) durch die Motorwicklung, durch den anderen FET (z.B. NC-), und dann durch den Shunt nach - vom Akku. Das Potential am "rechten" GND lt. Plan ist dann höher als am linken GND und wird am Controllerpin gemessen.

Anhand des Spannungsfalls über der Leiterbahn bestimmt der Controller den aufgenommenen Strom und drosselt den Regler etwas bei Überstrom. Es wird nicht plötzlich abgeschaltet, sondern der Strom wird langsam gesenkt. Dadurch fällt der Flieger nicht vom Himmel, wenn ein Regler an die Strombegrenzung kommt.

Lösung, wenn der Shunt zerstört wurde

Falls der Shunt durch Überbelastung etc. zerstört wurde (Lack abgehoben/Kupferbahn zerplatzt), kann anstelle dessen ein Stück Kupferdraht eingesetzt werden. Der Widerstandswert zwischen C13 und C14 (im Bild oben rot) liegt bei gemessenen 0,010 Ohm. Zwischen C13 und der Massefläche der Transistoren (zusätzlich blasses Rot) beträgt er ca. 0,015 Ohm.

Wichtig ist, dass der Shunt vollständig ersetzt wird! Mit SpezWid1.png kann man die Länge des Drahtes berechnen, der als Ersatz dienen kann. Für Kupfer ergibt sich durch Umstellen (für 0,010 Ohm) ein konstanter Faktor, der mit dem quadrierten Drahtdurchmesser bzw. -radius (in mm) multipliziert wird. Als Ergebnis erhält man die Drahtlänge in mm:

l_fuer_d.png bzw. l_fuer_r.png

Beispiel: Kupferdraht mit 0,5mm Durchmesser und einer Drahtlänge von ca. 110mm ergibt den passenden Widerstandswert. Ebenfalls möglich ist Kupferlackdraht mit 0,3mm Duchmesser und 40mm Länge.

Der frühere Vorschlag mit 2x 0,22 Ohm Widerständen in Parallelschaltung kann zu Messfehlern mit der Brushless-Firmware führen, da der Widerstandswert zu hoch ist.

Wer es ganz genau wissen möchte, testet die Strombegrenzung. Dazu schaltet man ein Multimeter (Strombereich) in Reihe mit der + Leitung des Reglers. Die propellerlose Glocke sollte man mit einem Lappen oder Handschuh bremsen, damit Leistung aufgenommen wird. Nun gibt man Gas und bremst gleichzeitig den Motor ab. Dabei beobachtet man das Instrument. Bei ca. 10 A müsste die Begrenzung einsetzen, 11...12 A wären nicht schlimm. Erfolgt die Begrenzung schon früher, zum Beispiel bei 6...8 A, muss der Widerstand verringert werden.

WICHTIG: Wenn ein Shunt mit weniger Widerstand eingelötet wird (zu kurzer Draht oder zu großer Querschnitt), setzt die Begrenzung zu spät ein. Das kann zur Zerstörung des Reglers oder des Motors führen.

Controller

http://mikrocontroller.cco-ev.de/images/kopter/ATMEGA8.jpg

Als Controller kommt ein Atmega8 von Atmel zum Einsatz.

Er besitzt ein für unsere Anwendung wichtiges Feature: Ein Analogkomparator mit Multiplexer

Der Atmel ist sehr preisgünstig (<2EUR), einfach zu programmieren, benötigt minimale Peripherie und ist für unsere Drehzahlbereiche schnell genug.

Lösung, wenn die Pads J6 und J7 abgerissen sind

Durch mechanische Belastung der Regler in einer Verteilerplatine reissen gerne die I2C-Bus-Pads ab.

Deswegen muss man den Regler nicht wegwerfen.

Die Signale SCL und SDA sind mehrfach auf der Platine vorhanden:

http://gallery.mikrokopter.de/main.php/v/tech/BL-Ctrl11_unten1.JPG.html

(Klicken macht größer - /!\ irgendwie geht das mit den großen Bildern einfügen nicht mehr)

Am einfachsten ist der Abgriff an den Programmierpins, wenn die Leiterbahn noch vorhanden und in Ordnung ist.

Ansonsten einen Kupferlackdraht von den entsprechenden Prozessorpins zu den Programmierpins löten und dort anschließen.

Jetzt noch Funktion testen vor dem Flug. Fertig. Zeitaufwand bei ruhiger Hand <10 Minuten.

Motortest, Motordaten simulieren

Mit dem MikroKopter-Tool kann man die Drehzahlen der Motoren einzeln vorgeben und so den BL-Regler einfach testen.

Der Anschluss des BL-Reglers erfolgt über Sercon oder MK-USB.

Schub über Strom-Kennlinie

LED Signale

Nachdem die Regler fertig gelötet sind und nach der Überprüfung, dass tatsächlich 5V zwischen z.B. "J8" und "gnd" anliegen, leuchten die LEDs nicht. Erst nachdem sie das erste Mal programmiert worden sind, wird auch den LEDs Leben eingehaucht.
Regler aus dem Shop sind bereits programmiert und getestet. Hier muss nichts mehr programmiert werden.

Beide LEDs leuchten nicht: Es liegt keine Spannung an den Reglern an; Regler nicht programmiert; Atmega defekt.

Rot und Grün leuchten: BL-Ctrl nicht mit FlightCtrl verbunden; I2C Bus nicht angeschlossen an FlightCtrl.

Grün leuchtet: Die Regler sind betriebsbereit.

Grün zeigt Impulsfolgen (Pumpen): Regler erhält Sollwert, aber kein Motor angeschlossen.

Während des Programmiervorgangs sind beide LEDs am jeweiligen Regler erloschen. Erst wenn der Programmiervorgang abgeschlossen ist, initialisiert sich der Regler wieder. Beim Programmieren eines Reglers leuchten dabei die drei unbeteiligten anderen mit beiden LEDs.

Ab der BL-Ctrl V0.35 ist ein Selbsttest in der Software implementiert.

Verschiedene Fehler werden beim Start überprüft. Falls ein Fehler vorliegt, blinkt die rote LED nach dem Start.

  • 1 mal: Phase A
  • 2 mal: Phase B
  • 3 mal: Phase C

Wenn die rote LED nicht blinkt, ist alles okay.

Außerdem piepen die Motorwicklungen nach dem Einschalten beim Selbsttest.

Die Propeller drehen dabei evtl., allerdings ohne Kraft (Finger bleiben dran).

Nach dem Start kommt eine Tonfolge, bei der jeder Regler seine Endstufe testet.

Im Falle eines Fehlers werden Buchstaben ausgegeben, die einen Hinweis auf den fehlerhaften MosFet geben.

Um das zu sehen muss allerdings der Regler über ein Sercon bzw. MKUSB angeschlossen werden. Die Fehlercodes sind:

  • 1: Kurzschluss Phase A ( gegen B ) -> Regler nicht bereit

  • 2: Kurzschluss Phase B ( gegen A ) -> Regler nicht bereit

  • 3: Kurzschluss Phase C ( gegen B ) -> Regler nicht bereit

  • 4: Mosfet NA- schaltet nicht immer ab
  • 5: Mosfet NB- schaltet nicht immer ab
  • 6: Mosfet NC- schaltet nicht immer ab
  • 7: Kurzschluss Phase C ( gegen A ) -> Regler nicht bereit

  • A: NA+ schaltet nicht ein
  • B: NB+ schaltet nicht ein
  • C: NC+ schaltet nicht ein
  • a: NA- schaltet nicht ein
  • b: NB- schaltet nicht ein
  • c: NC- schaltet nicht ein

(Nähere Infos zu den einzelnen Fehlern finden sich auf der Seite BL-Ctrl_Fehlerbeseitigung)

Empfohlene Motoren

Folgende Motoren wurden bisher (2008) erfolgreich eingesetzt:

  • Die Reihenfolge hat keine Aussagekraft!
  • ROXXY2815: Für kleine (< 50cm Achsabstand) und leichte Mikrokopter geeignet. Das Abfluggewicht sollte nicht wesentlich über 500 Gramm liegen. Propeller: 8"x4 (z.B. x-Ufo Größe)

  • ROXXY2824-34: Für mittlere (~ 50cm Achsabstand) Mikrokopter geeignet. Das Abfluggewicht sollte nicht wesentlich über 800 Gramm liegen. Propeller: 10"x4,5 (z.B. EPP1045)

  • ROXXY2827-35: Für mittlere (~ 50cm Achsabstand) Mikrokopter geeignet. Das Abfluggewicht sollte nicht wesentlich über 1000 Gramm liegen. Propeller: 10"x4,5 (z.B. EPP1045)

  • weiterhin wurden auch Motoren der Marken "AXI", "HACKER" und "HYPERION" erfolgreich eingesetzt. Einfach mal im Forum suchen.

/!\ Eine falsche Motor/Propellerwahl kann den Regler zerstören. Mehr unter AntriebsTheorie...

Software updaten

Hier die Anleitung zum Update-Vorgang im Koptertool

Dateien

Alle Dateien, Dokumente und Programme findet man hier: Downloads

Anschluss

Beim Update muss der seitliche Anschluss des MKUSB verwendet werden:

http://gallery.mikrokopter.de/main.php/v/tech/updateBL.jpg.html BL_Stecker.jpg

Alternativen zu den Stiftleisten beim Updaten

Viele stören sich am Anlöten der Stiftleisten zum Flashen der Controller. Diese werden selten benötigt, sehen eingeschrumpft nicht toll aus und sind schwer. Eine Möglichkeit ist die in der SerCon_Anleitung gezeigte Lösung mit aufgesägtem Stecker von alten Diskettenlaufwerken o.ä.

Eine weitere Möglichkeit bietet sich, wenn man die Kontakte der Stiftleiste nicht auflötet sondern einfach ein wenig zusammenquetscht und auf die Platine schiebt.

bl-ctrl-flasher.jpg bl-ctrl-flasher-connected.jpg

Damit ist es auch möglich die Regler zu flashen, kostet weniger als der oben genannte Stecker (afair), und man hat so eine Leiste meist in der Grabbelkiste schon liegen. Es birgt auch leider die Gefahr, dass mal eine Leitung keinen Kontakt hat => ggf. nachmessen. Sollte beim updaten die Fehlermeldung "Timeout" kommen ist hier der erste Ansatzpunkt. Nicht auf den Pads anliegende Stifte sind mit dem Auge nicht zu erkennen -> nachmessen. Abhilfe für die Kontaktlosigkeit schafft eine "leichte" Verzinnung der Pins - natürlich ohne die Stiftleiste mit einzulöten. Durch das weiche Lötzinn lässt sich die Stiftleiste zwar schwerer aufsetzen, jedoch ist der Kontakt besser.

verzinnte_lötflächen.jpg

Eine weitere Möglichkeit: Die drei Leitungen (Rx,Tx,Gnd) vorübergehend an die Regler anlöten, die Regler können dabei eingebaut bleiben. Der Sercon wird dann extern mit 5V gespeist (ansonsten muss man vier Leitungen am Regler anlöten). Vorher den Schrumpfschlauch der Regler an den Lötpunkten entfernen.
/!\ ACHTUNG: Dies ist nur etwas für fortgeschrittene Anwender!

Schutz vor Feuchtigkeit

Die BL-Ctrl ist empfindlich, was Feuchtigkeit angeht.

Möglichkeiten zum Schutz vor Feuchtigkeit:

- Schrumpfschlauch

  • Bietet zusätzlich etwas mechanischen Schutz, allerdings ist die BL-CTRL nicht 100%ig vor Feuchtigkeit geschützt, z.B. bei einem Absturz ins Wasser oder bei starkem Nebel (siehe http://forum.mikrokopter.de/topic-post35775.html#post35775). Bei leichtem Regen oder einem Absturz ins nasse Gras sollte der Schutz aber ausreichend sein. Eventuell können wegen der verminderten Wärmeabgabe Probleme entstehen. Zum Programmieren oder Löten muss der Schrumpfschlauch aufgeschnitten werden.

- Haube

  • die gesamte MikroKopter-Elektronik sollte mit einer Haube geschützt werden. Dann macht es auch nichts, wenn der MK mal kopfüber im Gras landet

Richtige Motor- / Propellerwahl

Bei falscher Auswahl von Motor und/oder Propeller können BL-Ctrl oder Motor beschädigt werden. Mehr dazu unter AntriebsTheorie...

Sonstiges

Da es sich bei der BL-CTRL ja doch um ein vollwertiges Microcontroller Board handelt, lassen sich mit gegebenenfalls etwas geänderter Bestückung auch diverse andere Dinge damit erledigen.

Weiterführende Links