|
Mein ESC kann mehr!
Ganz genau geht es hier um Electronic
Speed Controller (ESC) für brushless Modellbaumotoren und wie wir
die als Prüfstand verwenden können. Aktuelle ESCs der besseren Art
haben oft Telemetrie-Funktionen, d.h. sie können Werte wie Spannung,
Strom und Drehzahl messen und nach außen weitergeben.
Im Bereich der Multicopter haben sich ESCs als Quasi-Standard
durchgesetzt, die mit der BLHeli Firmware laufen.
Nach zwei OpenSource Generationen dieser Firmware (BLHeli gefolgt von
BLHeli_S), ist inzwischen BLHeli_32 aktuell. Diese dritte Generation
ist Closed Source, trotzdem wird sie haufenweise von chinesischen
Herstellern für ihre ESCs verwendet. BLHeli_32 kann Telemetrie! Die
aktuelle Version 32.6 kann nun auch so eingestellt werden, dass
Telemetrie-Daten permanent ausgesendet werden. Vorher war das nur auf
Anforderung der für Multicopter erforderlichen Controller möglich.
Und da kommt "BLHeli Telemetry View" ins Spiel. Das ist ein
Windows-Programm, das die Telemetrie Daten auslesen, anzeigen und
aufzeichnen kann. Wir haben also ein Motoren-Prüfstand fast ohne
zusätzliche Hardware. Alles was wir brauchen, ist ein BLHeli ESC und
ein USB-Seriell Wandler.
|
Den ESC konfigurieren
Es gibt noch eine Hürde die nicht ohne ist, wenn wir uns noch nie mit
BLHeli beschäftigt haben. Leider müssen wir nämlich davon ausgehen,
dass ein BLHeli_32 ESC im Auslieferungszustand nicht so eingestellt
ist, dass er uns die Telemetriedaten automatisch liefert. Zwei
softwaremäßige Voraussetzungen müssen gewährleistet sein:
- Firmware größer als Version 32.5
- In der Konfiguration muss "Auto Telemetry" auf "ON"
eingestellt sein.
Beides können wir mit
dem Programm BLHeliSuite32 erledigen. Außerdem brauchen wir ein
Interface. Das kann ein günstiger Arduino sei, der von der
BLHeliSuite32 zum passenden Interface geflasht wird. Jedenfalls ist das
ein Thema für sich. Wer das machen möchte, sollte sich die zahlreichen
Tutorials im Netz und auf YouTube dazu reinziehen.
Die BlHeliSuite32 gibt's hier: https://blhelisuite.wordpress.com
|
Hardware und Verbindungen
|
Wir brauchen:
- Einen telemetriefähigen ESC mit BLHeli_32 Firmware.
Achtung: Nicht jeder mit BLHeli_32 kann Telemetrie und nicht jeder der
Telemetrie kann, kann auch Strom messen. Im Bild ist ein Racerstar
Tattoo plus 52A zu sehen. Der kann das alles. Einen Anhaltspunkt
bietet dieset Threat im RC-Network:
BLHeli
Telemetrie Protokollkonverter für FrSky und FlySky | Seite 7 |
RC-Network.de
- Einen USB-Seriell Konverter.
Gängige Suchbegriffe in den einschlägigen Verkaufsportalen sind: "USB
UART TTL". Ich bevorzuge die Chipsätze CH340 oder CP2102. Bei solchen
mit PL2303 kann es wegen China-Fake-Chips zu Treiberproblemen kommen.
Die passenden Treiber müssen natürlich installiert sein.
Verbindungen:
- Den Telemetrie-Ausgang des ESC verbinden wir mit dem
Eingang des USB-Seriell Konverters.
- Für Masse (GND) nutzen wir einen der meist mit "-"
(Minus) gekennzeichneten Pins an unserem Servotester oder am Empfänger.
- Am anderen Ende des USB-Kabels hängt unser PC oder
Laptop.
|
Hinweise zur Bedienung
Serielle Schnittstelle (Com Port):
BLHeli Telemetry View scannt beim Start alle verfügbaren Portnummern
und versucht sich automatisch mit dem "höchsten" Port zu verbinden.
Sollte der nicht passen, kann manuell ein anderer Port gewählt werden.
Motor Poles:
Der ESC misst die elektronische Drehzahl, d.h. die Feldumpolungen, die
er erzeugen muss. Das muss noch durch die Anzahl der Motorpole geteilt
werden (genau genommen die Hälfte der Motorpole), um die Drehzahl an
der Welle zu erhalten. Sind wir uns nicht sicher, zählen wir die
Magneten in der Glocke unseres Motors. Gängige Quadcopter Motoren haben
14 Pole.
Peak Werte:
Darunter sind die Werte zu verstehen, die bei der maximal gemessenen
Drehzahl anlagen. Bei der Spannung ist dieser Wert logischerweise nicht
der höchste Wert. Der Wert kann mittels der Buttons [Reset] gelöscht
werden.
Log to file:
Die Werte können auch aufgezeichnet werden. Speicherort
und Dateiname werden automatisch vergeben. Im Ordner Dokumente
(Documents) wird ein Ordner "BLHeliTV" angelegt. Dort landen die
Logdateien und werden mit Datum und einem Zeitstempel (Sekunden seit
Mitternacht) benannt. Das Format ist so gewählt, dass die Daten sowohl
als Text als auch mit einer Tabellenkalkulation (Excel u.ä.) verwertbar
sind (.csv).
Hinweis: Die Aufzeichnung pausiert, so lange eine Drehzahl 0 gemessen
wird. Außerdem kann vom Bediener pausiert werden.
Kalibrierung:
Im oben genannten Ordner wird auch eine Datei namens Calibrate.ini
abgelegt. Dort können die Messwerte angepasst werden. In der Datei
selber ist erklärt, wie es geht.
Neu mit Update 2020-05-03: Die Kalibrierdaten werden kontinuierlich
eingelesen, so lange Daten vom ESC empfangen werden. Zum
Einstellen/Ändern der Kalibrierdaten einfach die Calibrate.ini
editieren. Die neuen Werte werden sofort nach dem Speichern wirksam.
Mit dem Update werden die Kalibrierdaten auch angezeigt.
Wichtiger Hinweis: Alle Kalibrierdaten werden erst wirksam, wenn die
Messwerte größer als Null sind!
Statuszeile:
Unten im Programmfenster befindet sich eine Statuszeile. Dort werden
Meldungen des Programms angezeigt. Neue Meldungen werden rechts
angefügt, alte verschwinden nach links.
|
Updates
2020-05-03:
Fix: Nicht erkannte Datensätze auf langsamen PCs werden jetzt gelesen.
Fix: Ordner im Datenverzeichnis heißt jetzt richtigerweise BLHeliTV
anstatt BLHeliView.
Ergänzt: Kalibrierdaten werden auf dem Hauptfenster angezeigt.
Ergänzt: Kalibrierdaten (Calibration.ini) können bei laufendem Programm
editiert werden.
2020-12-08:
Ergänzt: Maximaltemperatur wird angezeigt.
Ergänzt: Behandlung der Peak-Werte wählbar für V, A und Rpm
zwischen:
- Peak-Werten bei maximaler Drehzahl oder
- V min, A max, W max - Werten; Umschaltung per Button.
2024-04-01:
Ergänzt: Je ein Minimum- und ein Maximum-Wert der 13 zur
Mittelwertbildung verwendeten Datensätze wird entfernt (bei Volt,
Ampere und RpM).
Das soll "Ausrutscher-Werte" eliminieren.
Download
BLHeli Telemetry View
- Version 2024-04-01 - einschließlich Quelltext
Installieren / Deinstallieren
Das eigentliche Programm besteht aus einer einzigen Datei. Diese kann
einfach in einen Ordner nach Wahl kopiert und von dort gestartet
werden. Einträge in Registry oder Systemverzeichnisse werden nicht
gemacht. Lediglich im Ordner Dokumente wird ein Unterordner "BLHeliTV"
erzeugt, in dem Logdateien und Calibrierdaten abgelegt werden.
Zum Deinstallieren reicht es, die kopierten Dateien aus den Download
und den Ordner "BLHeliTV" aus dem Dokumente-Ordner zu löschen.
|
Die verwendete Programmiersprache
Das Programm ist mittels Liberty Basic Booster (LBB)
geschrieben. LBB ist Freeware und besticht vor allem damit, dass nach
einem lächerlich kleinen Download von 512 kB eine komplette
Programmiersprache nebst Editor und Debugger zur Verfügung steht.
Nutzung der seriellen Schnittstelle und einfaches Erstellen von
grafischen Oberflächen (Windows) ist nativ "eingebaut".
Die Syntax stammt von Liberty Basic; alle Hilfen dazu sind also auch
für LBB nutzbar. Darüber hinaus sind auch Sprachelemente von BBC-Basic
verwendbar (wovon ich auch Gebrauch gemacht habe). LBB ist eigentlich
ein Liberty-Basic zu BBC-Basic Konverter und stammt vom selben Autor
wie BBC-Basic. Darüber müssen uns als Programmierer aber keine Gedanken
machen. Wir können auf einfachste Weise autark lauffähige exe-Dateien
erstellen.
LBB bezogene Links:
LB Booster Homepage: http://www.lbbooster.com
LB Booster Help manual: http://www.bbcbasic.co.uk/lbb/lbb.html
LB Booster Wiki: http://bbcbasic.co.uk/wiki/doku.php?id=lb_20booster
LB Booster Forum: http://lbbooster.com/forum
Liberty Basic bezogene Links:
Liberty BASIC Homepage: http://www.libertybasic.com
Liberty BASIC Online Help: http://www.libertybasicuniversity.com/lb4help
Frank Steinberg, im November 2018 / April 2024
|
|