[Pico-Drohne] Motoren laufen nicht mit jedem Duty-Cycle

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo zusammen,

neues Projekt, neue Probleme.

Ich würde gerne mit einem Raspberry Pico eine Drohne bauen, bzw. mal schauen, wie weit ich komme.
Mein Schaltplan sieht so aus:
https://www.dropbox.com/s/uh49b64g6gszd ... e.pdf?dl=0

Allerdings habe ich die MOSFET's IRL3803 verwendet, da mir die, die ich im Schaltplan angegeben habe zu klein zum löten waren.

Die Schaltung funktioniert auch, aber leider nicht wie gewünscht.

Mein aktueller Code um die Motoren zu testen:

Code: Alles auswählen

from machine import Pin, PWM
from time import sleep

POSITION_TO_PIN = {'vorne_rechts': 28, 'vorne_links': 26, 'hinten_links': 22, 'hinten_rechts': 21} 

FREQUENCY = 1500
DUTY = 55_000

def main():
    motors = {position: PWM(Pin(pin)) for position, pin in POSITION_TO_PIN.items()}
    for motor in motors.values():
        motor.freq(FREQUENCY)
    for motor in motors.values():
        motor.duty_u16(DUTY)
        
    sleep(2)
    for motor in motors.values():
        motor.duty_u16(0)
    

if __name__ == "__main__":
    main()
Die Motoren laufen für die angegeben 2 Sekunden, wenn ich dann den DutyCycle erhöhe, z.B. auf 58_000, dann laufen die Motoren nicht mehr. Das Verhalten hatte ich auch, als ich die Motoren mit 40_000 laufen gelassen habe. Ich habe auf 50_000 erhöht und nichts ging mehr. Ein paar Minuten gewartet und sie liefen mit 50_000. Von 55 auf 58 brachte aber auch das warten nichts. Alle Motoren drehen sich ganz leicht ganz kurz, so wie wenn ich alle gleichzeitig mit meinem Finger angestoßen hätte.

Man sieht im Code, dass der Pin 26 vom Schaltplan abweicht, das liegt daran, das in der Doku zu PWM etwas von 8 PWM Generatoren steht. Ich habe nicht rausgefunden, wie ich softwareseitig die Geneeratoren den einzelnen Pins zu ordnen kann, da habe ich das hardwareseitig geändert. Änderte aber an meinem Verhalten nichts und war eher ein Versuch aus Ahnungslosigkeit.

Ich habe auch die Frequenz runter gesetzt, bei einer Frequenz zwischen 10 und 80 Hz laufen die Motoren mit der hohen DutyCycle , aber die haben dann weniger Leistung und ab 90Hz laufen die nicht mehr. Ich dachte mir, vielleicht laufen die nicht gleich mit der hohen Frequenz an und habe die in einer Schleife von 10 Hz auf 1500 Hz hoch laufen lassen, aber die Motoren wurden nicht schneller (optisch und von den Geräuschen her) wie mit 80Hz.

Kann sich das jemand erklären und mir sagen, was ich falsch mache?

Vielen Dank vorab und viele Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Mir ist aufgefallen, dass der Akku seit dem Versuch ziemlich stinkt. Kann man schlecht in Worte fassen, nicht unbedingt wie verbrannt, aber es könnte in die Richtung gehen.
Ist ein Akku mit 3,7V und 1000mAh und der ist nur für die Motoren da. Der Pico bekommt den Strom über die USB-Verbindung zum Laptop.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was sagt denn das oszi?

Und ich finde den Wert für den Duty cycle komisch. Sehr groß. Welchen Wertebereich hat der? Edit: hast du ja verlinkt, ich habe nur andere Doku gefunden zum ESP, da waren es 10 Bit.
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Guten Morgen,

danke für die Antwort.
Ich muss jetzt leider erst mal schauen, ob ich noch eine andere Spannungsquelle habe. Der Akku stinkt seit gestern Abend, den benutze ich nicht mehr. Er ist zwar nicht warm, aufgebläht oder so, aber wohl ist mir damit nicht.

Wenn mir dafür was eingefallen ist, dann messe ich mal mit dem Oszi nach dem MOSFET, da müsste das Problem ja sein. Könnte ich eigentlich problemlos alle PWM-Generatoren gleichzeitig auf der gleichen Frequenz arbeiten lassen oder kommen die sich irgendwie in die Quere? Also mal allgemein betrachtet, unabhängig von dem Problem hier.


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mit dem Oszi erstmal IOs prüfen. Danach was am Motor passiert. An sich können die PWMs parallel laufen, ggf ist dann aber noch ein Puffer Kondensator sinnvoll.
Benutzeravatar
grubenfox
User
Beiträge: 430
Registriert: Freitag 2. Dezember 2022, 15:49

sorry, ich muß mal fragen:
Dennis89 hat geschrieben: Samstag 13. Mai 2023, 09:02 Ich muss jetzt leider erst mal schauen, ob ich noch eine andere Spannungsquelle habe. Der Akku stinkt seit gestern Abend, den benutze ich nicht mehr. Er ist zwar nicht warm, aufgebläht oder so, aber wohl ist mir damit nicht.
Solange das offenbar noch im Experimentalstadium ist: wieso Akku? Regelbares Labornetzteil dranhängen und gut ist... noch sollen doch nur die Motoren drehen und die zukünftige Drohne noch nicht fliegen?
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

dieses mal antworte ich in umgekehrter Reihenfolge, das passt von den Antworten her besser.
Berechtigte Frage mit dem Akku und wenn ich ein Labornetzteil hätte bzw. wenn das nicht schon seit einer gefühlten Ewigkeit in einem anderen Projekt als "Provisorium" hängen würde (den Fortschritt des Projekts kann ich leider nicht beeinflussen), dann hätte ich das auch so gemacht. Ich habe ein Meanwell 12V Netzteil hier, das könnte ich nehmen, einen Spannungsteiler bauen und dann 3,7V abknüpfen. Als ich anfing sah ich den Akku in einem ungenutzten Waveshare UPS und der kam dann wie gerufen.

Ich war vorhin kurz in der Werkstatt und habe zwei AA Batterien zusammen geschaltet und hatte dann zumindest 3V. In der Artikelbeschreibung der Motoren steht 1,5V bis 4V.
Ich konnte dann auch eine Frequenz von 1500Hz einstellen und ein Duty-Cycle von 60_000. Die Motoren liefen, zwar langsam (Vermutlich wegen der Stromversorung), aber sie liefen an.
Meine eingestellte Frequenz konnte ich auch mit dem Oszi direkt am Pico messen wie auch zwischen Motor und MOSFET.

Irgendwie habe ich das Gefühl, dass das ganze Verhalten auf den Akku zurückzuführen ist.

Vielleicht noch meine Gedanken zum Spannungsteiler, falls ich morgen etwas Langeweile hätte:
Ein Motor braucht 120mA, das wären dann 480mA für 4 Motoren, plus etwas Puffer, dann würde ich eine Spannungsquelle mit 1000mA wählen.
Wenn ich dann einen Spannungsteiler bauen will, dann brauche ich einen Gesamtwiderstand von 12 Ohm, weil 12V kommen und ich will 1000mA zur Verfügung stellen.
Meine Motoren sollen 3,7V bekommen, dann ist die Rechnung eigentlich recht easy: Motorspannung * Gesamt-Widerstand / Gesamt-Spannung ergibt den ersten Teiler des Widerstands = 3,7 Ohm, entsprechend ist der zweite dann 8,3 Ohm.
Geht das so? Irgendwie kommen mir die Widerstandswerte sehr klein vor.

Danke für eure Antworten und viele Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ein Spannungsteiler ist niemals etwa, das dir erlaubt, eine Spannung einzustellen für einen signifikanten Verbraucher. Das sind deine Motoren aber. Der geht nur bei den hochohmigen Messeingängen der Microcontroller, oder deinem Oszi. Da sind 50K-1M am Start, die erzeugen parallel keinen zu signifikanten Spannungsabfall. Wenn du hat, nimm einen DC/DC buck konverter. Davon ein paar auf Halde schaden nie. Hilft auch gegen Provisorien.
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Oh das war mir nicht bewusst, danke.

Einen Step-Down auf 5V hätte ich noch hier, aber das sind zu viel. Gerade aber nach "DC/DC buck konverter" gesucht und hab da welche entdeckt, die man einstellen kann. Das sieht sehr gut aus.
Ich melde mich wieder wenn es Neuigkeiten gibt.

Schönes Wochenende und Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
grubenfox
User
Beiträge: 430
Registriert: Freitag 2. Dezember 2022, 15:49

Dennis89 hat geschrieben: Samstag 13. Mai 2023, 13:37 Geht das so?
Da bin ich schon wieder raus... zum einen ist die Ausbildung schon sehr lange her. Nun gut, Ohm, Volt und Ampere sollten sich auch in der vergangenen Zeit nicht verändert haben, Aber ich war da mehr auf der messtechnischen Seite. Mit Motoren hatte ich nie zu schaffen. Meine Spulen waren immer irgendwo fest eingebaut, die sollten sich nicht bewegen.


Grubenfox [Besitzer vom Werkbuch Elektronik von Dieter Nührmann]
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Naja, das geht schon. Aber bei 1A und etwa 8V verballert man 8W nur an dem Widerstand. Und einen 8W Widerstand hat man auch nicht mal eben rumliegen, den muss man sich bauen oder besorgen. Das sind dann diese fetten Keramik-Widerstände. Die dann heiß werden. Das ist alles kein vernünftiges Vorgehen.
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo zusammen,

ich habe den DC/DC buck-converter bekommen, habe ihn genau auf 3,7V eingestellt und die Motoren drehen sich bei "allen" Duty-Cycle-Werten.
Code ist immer noch der aus dem Start-Beitrag. Wenn ich diesen nehme und die Zeit bis zum abschalten der Motoren auf 5 Sekunden stelle, dann merke (höre) ich deutlich wie die Drehzahl der Motoren nach ca. 2 Sekunden abnimmt. Der Converter hat ne rote LED, diese wird genau ab dem Moment auch schwächer und ich messe am Ausgang des Converters keine 3,V mehr sondern eher im Bereich ~2,5-2,8V.

Was passiert da denn jetzt? 🧐
Es ist immer noch dabei geblieben, dass der Converter die Motoren mit Strom versorgt und der Pico die Spannung über den USB-Anschluss bekommt.

Schönen Sonntag und Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hast du schon das Oszi bemüht?
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Guten Abend,

danke für die Antwort.

Ne, habe ich noch nicht. Hatte den Gedanken heute Mittag auch schon, war aber nicht mehr in der Werkstatt.

Ich weis auch gar nicht genau, was ich denn messen soll. Ja ich kann die Messspitzen überall mal hinhalten und hoffen das ich was unauffällige finde, aber mir fehlt das strukturierte Vorgehen. Ein Grund für den Spannungsabfall (der mit eingefallen ist) ist wenn plötzlich ein Verbraucher "zu viel" Strom braucht. Ich lasse die Motoren aber konstant laufen, dann sollten die ja nicht plötzlich einen höheren Verbrauch haben.
Ist vielleicht ein Motor defekt? Gibt es weitere Gründe, die ich der Reihe nach ausschließen/testen könnte?

Der Converter kann 2,5A, diesen habe ich gekauft:
https://www.makershop.de/module/step-downup/3x-lm2596/

Das Netzteil könne 6A liefern, daher würde ich die Stromversorgung ausschließen.

Vielen Dank und Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
grubenfox
User
Beiträge: 430
Registriert: Freitag 2. Dezember 2022, 15:49

Bei fehlendem strukturiertem Vorgehen: Kältespray! Hatte mir mal vor langer Zeit geholfen. Irgendwann hatte ich relativ strukturlos der Reihe nach alle Bauteile mit Kältespray eingenebelt und als ich dabei dann mal auf einen Widerstand zielte lief die Schaltung ganz spontan wieder ordentlich. Danach dann den Widerstand gewechselt und die Schaltung lief auch weiterhin und bei Raumtemp. wieder ordentlich.

Ich habe jetzt keine Ahnung was heutzutage die Messgeräte bei nicht sinusförmigen Spannungen (bzw. nicht Gleichspannungen) so anzeigen, aber da traue ich nur dem was ich auf dem Oszi sehe. Ich hätte da noch den Vorschlag das sich vielleicht nach den 2 Sekunden der Duty Cycle von z.b. 75% auf 25% dreht.
Laufen alle 4 Motoren zusammen? Wieviel Strom ziehen die wirklich alle zusammen? (Gemessen in der Schaltung, nicht laut Datenblatt.) Was sagt das Netzteil? Vielleicht wird dem Converter ja nach 2 Sekunden zu heiß weil die Motoren vielleicht 5 A (jedenfalls mehr als 2,5 A, aber weniger als 6) ziehen. Dem Netzteil wäre es egal, dem Converter eher nicht.
Und wenn nur ein Motor läuft, was passiert dann?
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Danke für deine Antwort.
Die Antworten auf die Fragen liefere ich morgen oder am Dienstag, je nach dem wie es mir zeitlich reicht, die Messungen durchzuführen.


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

das ist komisch. Alle vier Motoren im Betrieb und die Stromstärke schwankt von 0,8A bis 2A dabei ändert sich die Drehzahl stark.
Ein Motor alleine braucht konstant 1A und läuft konstant.
Zwei Motoren liefen einmal konstant und beim zweiten Start schwankten sie auch schon. Der Strom war bei 2A.
Gemessen allerdings mit einem Multimeter, da ich am Oszi keine Einstellung dafür fand und nichts kaputt machen wollte.

Ich begreife nur nicht ganz wieso ein Motor so viel Strom braucht. Dann wären meine 2,5A zu wenig, aber dann wäre das Konzept auch nichts für einen Akkubetrieb🤔

Vielleicht sind die billigen Motoren auch einfach nur Mist.

Grüße Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na meine Microdrohne zieht auch gerne mal 15A, aus eine 1S Zelle. Müssen die halt abkönnen. Wenn man etwas weniger rabiat fliegt, geht sicher auch 5 in Spitze, aber soooo ungewöhnlich wirkt das nicht. Da die Motoren Mist sind, steht auf einem anderen Blatt.
Benutzeravatar
Dennis89
User
Beiträge: 1154
Registriert: Freitag 11. Dezember 2020, 15:13

Oh okay, damit hätte ich nicht gerechnet 🫣
Aber gut, wenn dass dann so passt, weis ich ja um was ich mich kümmern muss, vielen Dank für die Hilfe 🙂

Hast du die Drohne selbst gebaut?

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein, das ist ein TinyHawk.
Antworten