Solved: DIY Projekt Dynamisches Wuchten / Dynamic balancing with an Arduino
Verfasst: 15:00 ,Do 30. Jun 2016,
Update 30.06.2019 =>
Bitte auf RC_DYN_Wuchten_0.2.0.28_Notaus_init.ino.zip updaten, es sind einige Improvements implementiert: etwas mehr dyn. Speicher; Anlauf des Motors nach NOT-AUS während der Initialisierungsphase verhindert
Hallo,
Das Beleuchtungsprojekt ist ja eigentlich abgeschlossen, die Abschluß-Meinung bekomme ich dann hoffentlich von Wolfgang, sobald die Beleuchtung unter seinem Kopter fertig und ein Video (?) erstellt worden ist ....
Wie schaut bei euch das Interesse für das Dynamische Wuchten aus ?
Ausgehend von dem Thread aus dem Jahre 2012 ( Eingestellt im gleichen Jahr )
http://diydrones.com/forum/topics/balan ... %3A1139898
aufgegriffen von den Amerikaner im Rcgroup Forum 2015
http://www.rcgroups.com/forums/showthread.php?t=2337523
parallel dazu im November 2015 im Russischen Forum
http://www.rcfair.com/en/blogs/view_entry/12652/
auch in deutsch Forum zum Teil ein Thema:
als Beispiel hier :
http://fpv-community.de/showthread.php? ... -(Arduino)
Nachdem ich mir das Ganze einmal angeschaut habe, sind mir doch die einen oder anderen Sachen positiv wie auch negativ aufgefallen:
* zum Teil wird mit Programmteilen von Labview gearbeitet (natürlich nicht lizensiert )
* dann ist mir der Aufbau zu groß (bei den Amerikanern , welche ein fettes U für die Lichtschranke beim Propeller benötigen -> Einem ist schon das U in den Prob gefallen )
* Die Amerikaner haben die Signale negiert: also Lichtschranke unterbrochen = HIGH anstatt von LOW , somit fallen gute und billige Lichtschranken mit einem Komperator incl Hysterese aussen vor
* Selbst den Code vom Arduino, welcher eigentlich nur buffert und ein paar Sklavenarbeiten macht wird nicht freigegeben
* Änderungswünsche (auf die fallende anstatt die steigende Flanke zu reagieren) sind leider nicht drinn
* Änderungen, auch auf ein Impuls umstellen zu können ( warum steht unten ; ) ) sind auch nicht erwünscht...
* die Russen habe es in meinen Augen geschickter angestellt und nehmen die Lichtschranke am Motor ab. Das verkleinert a) den Aufbau und vermindert b) die Unfallgefahr und spart Platz.
* Bi-direktionale ESC werden nicht unterstützt ( um die 4 Props für einen Kopter zu wuchten , muss ich Drähte ziehen und stecken )
* 2 Hersteller haben das Thema einmal aufgegriffen und bieten Fertigeräte an, welche jedoch einmal aus Europa um die 280€ kostet oder aus Australien kanpp über 100€ ( plus Versand und Zoll )
Link zu den beiden kommerziellen Anbietern haben wir hier :
http://kopterforum.at/viewtopic.php?f=65&t=1996
Meine Idee ist jetzt, das Ganze selber zu bauen und dies mit geringfügigen Finanziellen Mitteln und zwar als eigenständiges Gerät :
Einen Motorstand, entsprechend den Propellern, welche gewuchtet werden sollen < kleiner oder größer >
Am Motorstand einen Motor drauf , das Gyro ( Accelerometer ) und die Lichtschranke direkt am Motorstand integriert. Bi-directionale ESC sollen unterstützt werden .....
Später eine kleine Kiste : bischen größer als eine Zigarettenschachtel (wie messen die Nichtraucher jetzt nach ??? ) mit einen Touchscreen Display drauf und einen Arduino ATMega2560 als Hauptboard.
Der 2560 kostet ( sofern man Richtigen bekommt um die 10€ ) Links stelle ich bei Interesse an dem Projekt dann ein .. (Achtung: manche Clones haben nur 12MHz, wir brauchen jedoch 16Mhz -> aufpassen )
Das Display 3,5" liegt bei ~25€ ist ist mit dem Motor damit das teurste Teil -> dafür kann man etwas darauf erkennen und die Finger sind nicht zu dick
Der Gyro und die Lichtschranke sind Pfennigartikel bei Banggood ....
Also : Wer hat Interesse ? Ob es was wird, kann ich jetzt noch nicht versprechen, da die Auswertung entsprechend stimmen muss.
Wenn hier kein Interesse bestehen sollte, werde ich das Teil trotzdem im stillen Kämmerlein versuchen ...
Ich denke jedoch, das es für die meisten von Euch interessant sein wird, da doch viele Filmen
// ************* Update 20.07.2016 ****************************** Anleitung : Wie kopiere ich das File auf das Display ****************
Da die Software auf dem Arduino und dem Display ein wenig verteilt ist, ist es wichtig, die entsprechenden Files syncron zu halten.
Um das Display upzudaten, sind folgende Schritte notwendig:
* eine SD-Karte mit FAT32 formatiert sein
* mittels Karteleser etc. mit dem Rechner verbinden
* alle Files von der Karte gelöschen
* das entsprechende tft File auf die Karte kopiert werden
* die SD-Karte ausgeworfen werden ( damit wir sicher gehen können, dass das File komplett geschrieben worden ist)
* das Display stromlos machen
* die SD-Karte in den Kartenschacht stecken
* das Display mit Strom versorgen (mehr als die 5V brauchen wir dazu nicht)
* .....warte .....warten .....
* bis "Update successfully" im Display steht.
* Strom raus
* SD Karte raus
---> Fertig
beim nächsten Start fährt das Display mit den aktualiserten Daten hoch
Da Bilder mehr als 1000 Worte sagen :
// ************* Update 20.07.2016 ****************************** Verkabelung ****************
Anbei die Verkabelung.
Wie schon gesagt: Viel ist es nicht, da wir hier auf fertige Beugruppen zurückgreifen
WICHTIG :
Den PLUS vom ESC/BEC, welcher später die ganze Sache mit Spannung versorgt NICHT ZUSAMMEN mit dem PLUS vom USB PORT anlegen.
Ob die 5V am VIN EIngang ausreichen, habe ich noch nicht getestet. Dort würde es kein Problem machen, wenn das BEC und der USB 5V schickt.
Wer es nicht beachtet : raucht das BEC oder den USB Port ab !
Dies ist auch für später wichtig, wenn die Software auf dem Arduino upgedatet werden soll!
Das heißt: Wenn das USB vom Rechner an den Arduino kommt : den Plus vom ESC/BEC wegnehmen !!!
Wenn die 5V vom ESC am VIN Eingang liegen kann nichts passieren : Bild siehe unten
An welchem GND (Masse/Minus) Punkt ihr geht, ist egal.... der Punkt war nur schöner zum malen Hauptsache zusammen.
Den Motor normal an das BEC anschliessen und zwar so , das in CW die normale Laufrichtung ist; ausser ihr habt einen BI-Direktionales ESC, dann ist die Erhöhung vom Gas aus die CW Richtung - Mitte Gas ( Leerlauf ) nach 0 Gas wäre dann die CCW Richtung.
Wenn jemand einen Fehler feststellt; bitte melden, so daß ich ihn auskorregieren kann. DIe Pin Belegung ist oben rechts aus demCode kopiert. Wenn ich da nicht geschludert habe, stimmt diese
@ Danke an Tobi für den Hinweis, das die Kabel falsch gezeichnet waren
Bitte auf das Bild klicken, reduziert fehlen wohl ein paar Striche
// ****************** Firmware auf dem Arduiono ATMega2560 flashen ****************
Um das hex File ( im zip Order unten ) auf den Arduino zu flashen, benötigen wir das Programm X-Loader.
Dieses hängt unten zum Download an.
Die Dateien einfach entpacken und irgendwo ( Stelle merken ) ablegen.
An dieser Stelle noch einmal :
ACHTUNG: NICHT das ESC MIT BEC an +5V PIN anschliessen und bei ANGESCHLOSSENEN LIPO PARALLEL ZUM USB Port hängen !!!
Wenn die 5V vom ESC am VIN Eingang liegen kann nichts passieren : siehe Bild oben
Das Arduino Board via USB Kabel an den Rechner anschliessen. Es wird ein virtueller COM Port angelegt. Wenn dies nicht passieren sollte kann von der Arduino HP, unter
https://www.arduino.cc/en/Main/Software
die aktuelle Version herunter geladen und installiert werden. Die Software bringt dann die benötigten Treiber mit.
In dem Order wird dann das File Xloader.exe einfach angeklickt Das Programm öffnet sich dann wie folgt: * Im Programm selber wird oben das hex file (unten aus dem aktuellen Zip Archiv) ausgewählt, als Beispiel "RC_DYN_Wuchten_0.2.0.4.cpp.hex"
* als Device Mega(ATMEGA2560) auswählen
* den richtigen COM Port
* und die Baudrate ( stimmt in der Regel )
Danach wird nur noch "UPLOAD" gedrückt unten in der Fusszeile wird der aktuelle Status angezeigt.
Wenn die Fußzeile " XXX Byte uploaded anzeigt, sind wir auch schon fertig
// ************* Update 09.10.2016 ****************************** Firmware ****************
Hier kommen nach und nach die aktuellen Flashfiles hin und sind immer unten in dem Thread.
Das Hex file läßt sich mit dem X-Loader auf denArduino flashen ... .
Update:
Version RC_V0.2.0.24_Dyn_wuchten.zip
CR = für CCW und CW unterschiedliche Offsets für Motorstart implemenitert
Bugfix: Im Diagnose-Screen für den Accelerometer ist beim verlassen des Menüs der Motor hochgelaufen
Hinweis :
* zum Teil ist es möglich, das laufenden Menü zu verlassen, obwohl im Hintergrund noch andere Schenken ablaufen (z.B. wenn der Motor angesteuert wird) . Bitte entsprechend im Menü bleiben wenn sich was bewegt (auf dem Bildschirm oder der Motor läuft zw. Messung)
* Bei "Save" werden die Einstellungen im EEProm gesichert und zum Menü zurückgesprungen; Die Werte werden beim Restart automatisch wieder eingelesen
* Die Lichtschranke sitzt bei 6 Uhr.Sobald die Lichtschranke angeht, kommt der Propeller von 9:00 nach 3:00 auf den Motor
* Bei der Endergebnis Seite sind 0 Grad bei 9:00 Uhr
* wenn die Lichtschranke nicht erkannt wird, sollte der Motor nicht mehr anlaufen ( ausser im Setup, wo die Stop PWM festgelegt wird ) . Hier muss erst in die Diagnose gegangen werden und die Lichtschranke einen gültigen Wert zurück liefern
Viel Spaß beim testen
Bitte auf RC_DYN_Wuchten_0.2.0.28_Notaus_init.ino.zip updaten, es sind einige Improvements implementiert: etwas mehr dyn. Speicher; Anlauf des Motors nach NOT-AUS während der Initialisierungsphase verhindert
Hallo,
Das Beleuchtungsprojekt ist ja eigentlich abgeschlossen, die Abschluß-Meinung bekomme ich dann hoffentlich von Wolfgang, sobald die Beleuchtung unter seinem Kopter fertig und ein Video (?) erstellt worden ist ....
Wie schaut bei euch das Interesse für das Dynamische Wuchten aus ?
Ausgehend von dem Thread aus dem Jahre 2012 ( Eingestellt im gleichen Jahr )
http://diydrones.com/forum/topics/balan ... %3A1139898
aufgegriffen von den Amerikaner im Rcgroup Forum 2015
http://www.rcgroups.com/forums/showthread.php?t=2337523
parallel dazu im November 2015 im Russischen Forum
http://www.rcfair.com/en/blogs/view_entry/12652/
auch in deutsch Forum zum Teil ein Thema:
als Beispiel hier :
http://fpv-community.de/showthread.php? ... -(Arduino)
Nachdem ich mir das Ganze einmal angeschaut habe, sind mir doch die einen oder anderen Sachen positiv wie auch negativ aufgefallen:
* zum Teil wird mit Programmteilen von Labview gearbeitet (natürlich nicht lizensiert )
* dann ist mir der Aufbau zu groß (bei den Amerikanern , welche ein fettes U für die Lichtschranke beim Propeller benötigen -> Einem ist schon das U in den Prob gefallen )
* Die Amerikaner haben die Signale negiert: also Lichtschranke unterbrochen = HIGH anstatt von LOW , somit fallen gute und billige Lichtschranken mit einem Komperator incl Hysterese aussen vor
* Selbst den Code vom Arduino, welcher eigentlich nur buffert und ein paar Sklavenarbeiten macht wird nicht freigegeben
* Änderungswünsche (auf die fallende anstatt die steigende Flanke zu reagieren) sind leider nicht drinn
* Änderungen, auch auf ein Impuls umstellen zu können ( warum steht unten ; ) ) sind auch nicht erwünscht...
* die Russen habe es in meinen Augen geschickter angestellt und nehmen die Lichtschranke am Motor ab. Das verkleinert a) den Aufbau und vermindert b) die Unfallgefahr und spart Platz.
* Bi-direktionale ESC werden nicht unterstützt ( um die 4 Props für einen Kopter zu wuchten , muss ich Drähte ziehen und stecken )
* 2 Hersteller haben das Thema einmal aufgegriffen und bieten Fertigeräte an, welche jedoch einmal aus Europa um die 280€ kostet oder aus Australien kanpp über 100€ ( plus Versand und Zoll )
Link zu den beiden kommerziellen Anbietern haben wir hier :
http://kopterforum.at/viewtopic.php?f=65&t=1996
Meine Idee ist jetzt, das Ganze selber zu bauen und dies mit geringfügigen Finanziellen Mitteln und zwar als eigenständiges Gerät :
Einen Motorstand, entsprechend den Propellern, welche gewuchtet werden sollen < kleiner oder größer >
Am Motorstand einen Motor drauf , das Gyro ( Accelerometer ) und die Lichtschranke direkt am Motorstand integriert. Bi-directionale ESC sollen unterstützt werden .....
Später eine kleine Kiste : bischen größer als eine Zigarettenschachtel (wie messen die Nichtraucher jetzt nach ??? ) mit einen Touchscreen Display drauf und einen Arduino ATMega2560 als Hauptboard.
Der 2560 kostet ( sofern man Richtigen bekommt um die 10€ ) Links stelle ich bei Interesse an dem Projekt dann ein .. (Achtung: manche Clones haben nur 12MHz, wir brauchen jedoch 16Mhz -> aufpassen )
Das Display 3,5" liegt bei ~25€ ist ist mit dem Motor damit das teurste Teil -> dafür kann man etwas darauf erkennen und die Finger sind nicht zu dick
Der Gyro und die Lichtschranke sind Pfennigartikel bei Banggood ....
Also : Wer hat Interesse ? Ob es was wird, kann ich jetzt noch nicht versprechen, da die Auswertung entsprechend stimmen muss.
Wenn hier kein Interesse bestehen sollte, werde ich das Teil trotzdem im stillen Kämmerlein versuchen ...
Ich denke jedoch, das es für die meisten von Euch interessant sein wird, da doch viele Filmen
// ************* Update 20.07.2016 ****************************** Anleitung : Wie kopiere ich das File auf das Display ****************
Da die Software auf dem Arduino und dem Display ein wenig verteilt ist, ist es wichtig, die entsprechenden Files syncron zu halten.
Um das Display upzudaten, sind folgende Schritte notwendig:
* eine SD-Karte mit FAT32 formatiert sein
* mittels Karteleser etc. mit dem Rechner verbinden
* alle Files von der Karte gelöschen
* das entsprechende tft File auf die Karte kopiert werden
* die SD-Karte ausgeworfen werden ( damit wir sicher gehen können, dass das File komplett geschrieben worden ist)
* das Display stromlos machen
* die SD-Karte in den Kartenschacht stecken
* das Display mit Strom versorgen (mehr als die 5V brauchen wir dazu nicht)
* .....warte .....warten .....
* bis "Update successfully" im Display steht.
* Strom raus
* SD Karte raus
---> Fertig
beim nächsten Start fährt das Display mit den aktualiserten Daten hoch
Da Bilder mehr als 1000 Worte sagen :
// ************* Update 20.07.2016 ****************************** Verkabelung ****************
Anbei die Verkabelung.
Wie schon gesagt: Viel ist es nicht, da wir hier auf fertige Beugruppen zurückgreifen
WICHTIG :
Den PLUS vom ESC/BEC, welcher später die ganze Sache mit Spannung versorgt NICHT ZUSAMMEN mit dem PLUS vom USB PORT anlegen.
Ob die 5V am VIN EIngang ausreichen, habe ich noch nicht getestet. Dort würde es kein Problem machen, wenn das BEC und der USB 5V schickt.
Wer es nicht beachtet : raucht das BEC oder den USB Port ab !
Dies ist auch für später wichtig, wenn die Software auf dem Arduino upgedatet werden soll!
Das heißt: Wenn das USB vom Rechner an den Arduino kommt : den Plus vom ESC/BEC wegnehmen !!!
Wenn die 5V vom ESC am VIN Eingang liegen kann nichts passieren : Bild siehe unten
An welchem GND (Masse/Minus) Punkt ihr geht, ist egal.... der Punkt war nur schöner zum malen Hauptsache zusammen.
Den Motor normal an das BEC anschliessen und zwar so , das in CW die normale Laufrichtung ist; ausser ihr habt einen BI-Direktionales ESC, dann ist die Erhöhung vom Gas aus die CW Richtung - Mitte Gas ( Leerlauf ) nach 0 Gas wäre dann die CCW Richtung.
Wenn jemand einen Fehler feststellt; bitte melden, so daß ich ihn auskorregieren kann. DIe Pin Belegung ist oben rechts aus demCode kopiert. Wenn ich da nicht geschludert habe, stimmt diese
@ Danke an Tobi für den Hinweis, das die Kabel falsch gezeichnet waren
Bitte auf das Bild klicken, reduziert fehlen wohl ein paar Striche
// ****************** Firmware auf dem Arduiono ATMega2560 flashen ****************
Um das hex File ( im zip Order unten ) auf den Arduino zu flashen, benötigen wir das Programm X-Loader.
Dieses hängt unten zum Download an.
Die Dateien einfach entpacken und irgendwo ( Stelle merken ) ablegen.
An dieser Stelle noch einmal :
ACHTUNG: NICHT das ESC MIT BEC an +5V PIN anschliessen und bei ANGESCHLOSSENEN LIPO PARALLEL ZUM USB Port hängen !!!
Wenn die 5V vom ESC am VIN Eingang liegen kann nichts passieren : siehe Bild oben
Das Arduino Board via USB Kabel an den Rechner anschliessen. Es wird ein virtueller COM Port angelegt. Wenn dies nicht passieren sollte kann von der Arduino HP, unter
https://www.arduino.cc/en/Main/Software
die aktuelle Version herunter geladen und installiert werden. Die Software bringt dann die benötigten Treiber mit.
In dem Order wird dann das File Xloader.exe einfach angeklickt Das Programm öffnet sich dann wie folgt: * Im Programm selber wird oben das hex file (unten aus dem aktuellen Zip Archiv) ausgewählt, als Beispiel "RC_DYN_Wuchten_0.2.0.4.cpp.hex"
* als Device Mega(ATMEGA2560) auswählen
* den richtigen COM Port
* und die Baudrate ( stimmt in der Regel )
Danach wird nur noch "UPLOAD" gedrückt unten in der Fusszeile wird der aktuelle Status angezeigt.
Wenn die Fußzeile " XXX Byte uploaded anzeigt, sind wir auch schon fertig
// ************* Update 09.10.2016 ****************************** Firmware ****************
Hier kommen nach und nach die aktuellen Flashfiles hin und sind immer unten in dem Thread.
Das Hex file läßt sich mit dem X-Loader auf denArduino flashen ... .
Update:
Version RC_V0.2.0.24_Dyn_wuchten.zip
CR = für CCW und CW unterschiedliche Offsets für Motorstart implemenitert
Bugfix: Im Diagnose-Screen für den Accelerometer ist beim verlassen des Menüs der Motor hochgelaufen
Hinweis :
* zum Teil ist es möglich, das laufenden Menü zu verlassen, obwohl im Hintergrund noch andere Schenken ablaufen (z.B. wenn der Motor angesteuert wird) . Bitte entsprechend im Menü bleiben wenn sich was bewegt (auf dem Bildschirm oder der Motor läuft zw. Messung)
* Bei "Save" werden die Einstellungen im EEProm gesichert und zum Menü zurückgesprungen; Die Werte werden beim Restart automatisch wieder eingelesen
* Die Lichtschranke sitzt bei 6 Uhr.Sobald die Lichtschranke angeht, kommt der Propeller von 9:00 nach 3:00 auf den Motor
* Bei der Endergebnis Seite sind 0 Grad bei 9:00 Uhr
* wenn die Lichtschranke nicht erkannt wird, sollte der Motor nicht mehr anlaufen ( ausser im Setup, wo die Stop PWM festgelegt wird ) . Hier muss erst in die Diagnose gegangen werden und die Lichtschranke einen gültigen Wert zurück liefern
Viel Spaß beim testen