Forum: Mikrocontroller und Digitale Elektronik Hexapod mit 24 Modellbauservos und Bluetooth Steuerung wie realisieren?


von Frank (Gast)


Lesenswert?

Hallo an alle Forennutzer!
Zum Zeitvertreib habe ich mir vorgesetzt einen Hexapod Roboter mit 24 
Modellbauservos zu bauen. Er soll per Bluetooth übers Smartphone 
steuerbar sein.
Mit Mikrocontrollern (AVR) habe ich schon Kleinigkeiten realisiert, d.h. 
Leds blinken lassen, Analoge Temp.Daten eingelesen, Leds mit Tastern 
gesteuert, USART, aber noch nichts größeres. Um Modellbauservos 
anzusteuern braucht man PWM und da beginnt das Problem, kein Chip hat 24 
PWM Ausgänge. Die Steuerung per Bluetooth braucht auch noch Pins.

Wie könnte man das realisieren?
Eine Randbedingung gäbe es noch, Bluetooth sollte do simpel wie nur 
möglich in der Nutzung und Programmierung sein. Arduino soll ja super 
einfach sein, habe damit persönlich noch keinerlei Erfahrung, ich habe 
aber auch kein Problem klassisch mit den AVRs zu arbeiten.

von Wolfgang (Gast)


Lesenswert?

Frank schrieb:
> Zum Zeitvertreib habe ich mir vorgesetzt einen Hexapod Roboter mit 24
> Modellbauservos zu bauen.

Findest du vier Servos für jedes Bein nicht etwas übertrieben? ;)

> Um Modellbauservos anzusteuern braucht man PWM und da beginnt das
> Problem, kein Chip hat 24 PWM Ausgänge. Die Steuerung per Bluetooth
> braucht auch noch Pins.
>
> Wie könnte man das realisieren?

Du könntest selber die IO-Pins steuern, bei kleinen µCs mit wenigen 
GPIOs per IO-Erweiterungen, z.B. 74hc595

Hier ist ein Beispiel für 16 Servos
http://www.seattlerobotics.org/encoder/200106/16csscnt.htm

von Johannes S. (Gast)


Lesenswert?

Es gibt Robotik Servos mit serieller Ansteuerung, z. B.  LewanSoul 
LX-16. Die sind addressierbar und dann kommst du mit einer Steuerleitung 
für alle aus.

von Harald (Gast)


Lesenswert?

Frank schrieb:
> Um Modellbauservos
> anzusteuern braucht man PWM und da beginnt das Problem, kein Chip hat 24
> PWM Ausgänge. Die Steuerung per Bluetooth braucht auch noch Pins.
>
> Wie könnte man das realisieren?

Nimm doch den Teensy 4.0 - Arduino-programmierbar und alle Pins können 
angeblich PWM. Zahlreiche Interfaces, z.B. CAN, was bei einem solchen 
Projekt auf hilfreich sein könnte.

Ich würde jedem Servo ein eigenes Netzteil verpassen. Wenn Du versuchst, 
die 5V nur an einer Stelle zu generieren und zu verteilen, könnte es bei 
der Anzahl Probleme in Form von Unterspannung oder Beeinflussung kommen.
So ein Einzelnetzteil wäre sehr günstig und klein:
https://de.aliexpress.com/item/32921512270.html

von Harald (Gast)


Lesenswert?

Johannes S. schrieb:
> LewanSoul
> LX-16

Die finde ich super, allerdings ist die Frage, ob der TE 18,66€ * 24 = 
448€ ausgeben möchte.

von Wolfgang (Gast)


Lesenswert?

Harald schrieb:
> Ich würde jedem Servo ein eigenes Netzteil verpassen. Wenn Du versuchst,
> die 5V nur an einer Stelle zu generieren und zu verteilen, könnte es bei
> der Anzahl Probleme in Form von Unterspannung oder Beeinflussung kommen.

Klar, deshalb betreibt ein EVU auch tausende von Minikraftwerken.

Wenn es zu Unterspannung kommt, ist das Netzteil zu schwach. Und wenn es 
zu Beeinflussung kommt, taugt die Verdrahtung/Entkopplung nichts 
(sternförmige Verdrahtung, Kondensator an jedem Servo, sofern nicht 
eingebaut).

von Stefan F. (Gast)


Lesenswert?

Frank schrieb:
> kein Chip hat 24 PWM Ausgänge.

Stimmt. Aber 16 kannst du haben:
https://www.amazon.de/Turspit-PCA9685-PWM-Servoschild-Motortreibermodul-Arduino-Robot/dp/B07Y446ZPP

Davon mehrere an einen I²C Bus, und schon hast du mehr als genug.

Die Gängigen Bluetooth Module kannst du unter Arduino mit der Serial 
Klasse ansteuern. Hier sind ein paar Hinweise dazu: 
http://stefanfrings.de/bluetooth/index.html

Ich schließe mich Harald an: Unterschätze die Stromaufnahme und 
Störwirkung der Motoren nicht. Wahrscheinlich ersparst du Dir eine Menge 
Stress, indem du für die Motoren ein eigenes Netzteil (oder Batterien) 
verwendest.

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
> Und wenn es
> zu Beeinflussung kommt, taugt die Verdrahtung/Entkopplung nichts
> (sternförmige Verdrahtung, Kondensator an jedem Servo, sofern nicht
> eingebaut).

Das hast du Recht. Für Anfänger ist es jedoch erstmal einfacher, 
getrennte Netzteile zu verwenden. Die Saubere Entkoppelung können sie 
später üben, wenn das Grundgerüst steht. Bei nächsten Projekt macht man 
es dann schon von alleine richtig.

von Wolfgang (Gast)


Lesenswert?

Harald schrieb:
> So ein Einzelnetzteil wäre sehr günstig und klein:
> https://de.aliexpress.com/item/32921512270.html

Das ist kein Netzteil, sondern ein Step-Down Wandler mit maximal 24V 
Eingangsspannung.

von Harald (Gast)


Lesenswert?

Falls es der Teensy wird, vielleicht noch interessant, dass man 
Bluetooth über den USB Host anbinden kann:

https://www.google.com/search?q=teensy+4.0+bluetooth+usb+host

Irgendwo dort steht, dass sich die Beispiele für Teensy 3.6 auch für 4.0 
verwenden lassen. Einfach mal recherchieren.

von Harald (Gast)


Lesenswert?

Wolfgang schrieb:
> Das ist kein Netzteil

Oh danke, von jetzt an werde ich dank dieses Hinweises besser durchs 
Leben kommen.

von Harald (Gast)


Lesenswert?

Stefanus F. schrieb:
> Für Anfänger ist es jedoch erstmal einfacher,
> getrennte Netzteile zu verwenden. Die Saubere Entkoppelung können sie
> später üben, wenn das Grundgerüst steht. Bei nächsten Projekt macht man
> es dann schon von alleine richtig.

Danke Stefan, Du hast meinen ursprünglichen Gedankengang sauber 
ausformuliert!

von Johannes S. (Gast)


Lesenswert?

Harald schrieb:
> Die finde ich super, allerdings ist die Frage, ob der TE 18,66€ * 24 =
> 448€ ausgeben möchte.

Das ist auch ein ambitioniertes Projekt, der Faktor 24 macht das alles 
etwas teurer. Ob Superbillig Servos eine ausreichende Qualität haben 
sollte man erst an Einzelstücken testen.
Und die Lewansoul sind schon die billigen Brüder der Dynamixel.
https://www.heise.de/ratgeber/Dynamixel-Die-Profi-Servo-Liga-4297290.html

Aber warum 24 Servos? Hexapoden haben doch 6 Hubelemente?

von Harald (Gast)


Lesenswert?

Johannes S. schrieb:
> Ob Superbillig Servos eine ausreichende Qualität haben
> sollte man erst an Einzelstücken testen.

Das ging mir auch den Kopf beim Verfassen der Nachricht. Billigservos 
können so manches Problem haben. Belastbarkeit, Lebensdauer, "Zittern" 
usw.
Das von Dir verlinkte Servo sieht schon eine Klasse besser aus. Dsa 
Buskonzept sieht auch gut aus? Wie ist es aus mit der Buslatenz? Eignet 
sich die für ein Projekt mit 24 Servos?

Vielleicht solltest Du, Frank, tatsächlich erstmal langsam herangehen 
und nicht gleich das ganze Material zusammenkaufen.

von Wolfgang (Gast)


Lesenswert?

Harald schrieb:
> Wolfgang schrieb:
>> Das ist kein Netzteil
>
> Oh danke, von jetzt an werde ich dank dieses Hinweises besser durchs
> Leben kommen.

Du weisst ja vielleicht, was du meinst.

Aber die Kommunikation mit anderen wird ungemein vereinfacht, wenn du 
die üblichen Begriffe zur Beschreibung verwendest und ihnen nicht 
irgendwelche eigenen Bedeutungen zuordnest.

Stefanus F. schrieb:
> Stimmt. Aber 16 kannst du haben:
> 
https://www.amazon.de/Turspit-PCA9685-PWM-Servoschild-Motortreibermodul-Arduino-Robot/dp/B07Y446ZPP

Wenn es nicht brandeilig ist, bekommt man die 16 Kanal PWM Module direkt 
aus Shenzhen auch für einen moderateren Preise.
z.B. https://www.ebay.de/itm/132475473698

von Harald (Gast)


Lesenswert?

Für Wolfgang nochmal etwas Literatur zur Weiterbildung:

Definition Netzteil:
https://de.wikipedia.org/wiki/Netzteil

Versorgungsqualität Stromnetz:
https://www.tennet.eu/fileadmin/user_upload/Our_Grid/Onshore_Germany/Allgemein/18-090_Brosch%C3%BCre_UW-V4-rgb.pdf

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Aus einem Summensignal des MC kann man per Schieberegister einfach 
Signale für 8 Servos dekodieren. Schaltet man drei SR hintereinander hat 
man 24.
Dazu reichen 3 Pins am MC.

von Frank (Gast)


Lesenswert?

Matthias S. schrieb:
> Aus einem Summensignal des MC kann man per Schieberegister einfach
> Signale für 8 Servos dekodieren. Schaltet man drei SR hintereinander hat
> man 24. Dazu reichen 3 Pins am MC.

Hört sich einfach an, hab ich leider nicht verstanden..
Vielleicht kannst du ein Codebeispiel posten? Bitte nicht in Assembler.

von Wolfgang (Gast)


Lesenswert?

Frank schrieb:
> Hört sich einfach an, hab ich leider nicht verstanden..

Du generierst ein 24-Kanal Servo Summensignal, taktest das seriell in 
drei hintereinander geschaltete 8-Bit Schieberegister rein und hängst 
die Servos an die insgesamt 24 Parallelausgänge.

von Stefan F. (Gast)


Lesenswert?

Was ist denn ein "Servo Summensignal"?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefanus F. schrieb:
> Was ist denn ein "Servo Summensignal"?

Früeher wurde das Summensignal im RC Sender erzeugt und direkt auf den 
Träger (27, 35 oder 40 MHZ) aufmoduliert (AM, später FM):
http://wiki.mikrokopter.de/SummenSignal
Im Empfänger wurde dann das Summensignal mit einem Schieberegister und 
Monoflop dekodiert und auf die Servoausgänge gelegt.

Bei den heutigen 2,4Ghz Anlagen passiert das nicht mehr direkt, da 
werden Datenpakete übertragen.
Das Summensignal liegt auch an den Trainer/Schülerbuchsen an.
Bei direkter Ansteuerung des SR ist es sehr einfach, da man die 
Schieberegister resetten kann.

von Stefan F. (Gast)


Lesenswert?

Aha Ok. Das ist aber eine sportliche Aufgabe, wenn der µC noch etwas 
anderes zu tun hat.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich würde mit einem einzelnen Bein anfangen, dieses gesteuert von einem 
eigenen Subprozessor (evtl. Arduino Micro Pro o.ä.). Dann braucht man 
auch keine Busexpander oder so'n Kram.

Ich würde also mehrere typische Bewegungsmuster, evtl. unter Verwendung 
eines Tastsensors, hinterlegen. Diese sollten parametrierbar sein (z.B. 
Ausgreif- oder Schwenkradius, Geschwindigkeit), ansonsten aber autonom 
ablaufen. Für den Notfall auch noch einen "freien Modus", bei dem die 
Robot-CPU Durchgriff auf jede einzelne Servoposition hat.

Tastet dann erst das Beinchen wie gewollt in der Gegend herum, lohnt es 
sich, mehrere davon zu bauen und zu schauen, wie die Robot-CPU das Ganze 
zu so etwas wie "Gehen", "Rennen" oder "Springen" synchronisieren kann 
...

von NichtWichtig (Gast)


Lesenswert?

wWas wäre denn die kleinste Zeiterinheit die der PWM Puls sich ändern 
möchte?
Von Links nach rechts sind von 1ms bis 2ms, bei 256 Stufen sind das 
~0,04ms

Da muß das SR aber sehr exakt und schnell angesteuert werden das die PWM 
Zeiten stabil sind.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefanus F. schrieb:
> Aha Ok. Das ist aber eine sportliche Aufgabe, wenn der µC noch etwas
> anderes zu tun hat.

Nö, wieso denn? Timer wird mit dem jeweiligen Kanalwert vorgeladen und 
schiebt in der OV ISR das Schieberegister weiter. Da drin wird nur ein 
gesetztes Bit geschoben.

Es gibt bei 24 Kanälen allerdings ein Timing Problem. Da der längste 
Puls für ein Servo 2ms betragen kann, passen in die 20ms eines Frames 
nur 8-10 Kanäle.

Am besten bastelt man also 3 Datenoutputs an drei 8-Bit SR.
Wenn man möchte, kann man sich kleine Module mit dem SR und einer 
Versorgung für jeweils 8 Servos machen, die dann mit 3 Leitungen vom MC 
gesetzt werden.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Matthias S. schrieb:
> Es gibt bei 24 Kanälen allerdings ein Timing Problem. Da der längste
> Puls für ein Servo 2ms betragen kann, passen in die 20ms eines Frames
> nur 8-10 Kanäle.

Die 20ms sind den meisten Servos ziemlich egal, aber die Bewegung wird 
mit höherer Updaterate flüssiger.

Ganz auf die Ablaufsteuerung kann sich der µC konzentrieren, wenn man 
die Servopulse mit zwei von den oben vorgeschlagenen PCA9685 per 
Hardware generiert.

von Stefan F. (Gast)


Lesenswert?

Frank E. schrieb:
> Diese sollten parametrierbar sein ansonsten aber autonom
> ablaufen.

Meinst die wie bei Hühnern die nach dem Abhacken des Kopfes manchmal 
noch weglaufen?

von Stefan F. (Gast)


Lesenswert?

Matthias S. schrieb:
> Da der längste Puls für ein Servo 2ms betragen kann, passen
> in die 20ms eines Frames nur 8-10 Kanäle.

Aha, da kommen wir der Sache schon näher. Meine Servos wollen Impulse 
bis 2,5ms sehen - also maximal 8 Kanäle.

Willst du das dann mit drei Timern parallel machen?

> Am besten bastelt man also 3 Datenoutputs an drei 8-Bit SR.

Also ja. Krass.

Wie sorgst du dafür, dass die ISR der Timer sich nicht gegenseitig ins 
Gehege kommen?

Dann muss der Timer das Schieberegister takten. Das übersteigt 
allerdings gerade keine Vorstellungskraft. Ist vielleicht schon zu spät 
heute.

Jedenfalls ist das ganz sicher nicht einfach, für Anfänger definitiv 
ungeeignet.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Stefanus F. schrieb:
> Frank E. schrieb:
>> Diese sollten parametrierbar sein ansonsten aber autonom
>> ablaufen.
>
> Meinst die wie bei Hühnern die nach dem Abhacken des Kopfes manchmal
> noch weglaufen?

Im Prinzip ja. Ich würde nicht alles von einer einzigen zentralen CPU 
machen lassen. Klingt zwar erstmal nach mehr Hardware ... die ist aber 
billig und die Vorteile (teil-) autonomer Subsysteme sind immens.

: Bearbeitet durch User
von Viktor B. (coldlogic)


Lesenswert?

So was ähnliches hab ich auch mal gemacht, und zwar einmal mit einem 
SPI-zu-24xPWM-Umsetzer auf einem FPGA und einmal mit drei Attiny2113s, 
die jeweils per I2C angesteuert waren und 8 PWM Ausgänge hatten. Die 
drei Attinys waren jeweils in eine Art Modul integriert, wo auch die 
Stromversorgung und die 8 Servos untergebracht waren. Softwareseitig 
lässt sich das relativ einfach umsetzen: man pullt ein Pin hoch, lässt 
den Timer erst für 255 Takte (1ms bei richtig konfigurierten Prescaler) 
hochzählen und dann lädt man den Servsollwert (1...255) rein und zählt 
runter. Dann zieht man den Pin runter, schaltet weiter auf den nächsten 
und weiter geht's!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefanus F. schrieb:
> Wie sorgst du dafür, dass die ISR der Timer sich nicht gegenseitig ins
> Gehege kommen?

Gegenfrage: Wie lange, glaubst du, dauert das Setzen eines Clk Pins? 
Einmal alle 8 Pulse setzt die ISR auch mal das DIN am Schieberegister. 
Dann lädt der Timer gemütlich den nächsten TCNT Wert und ist fertig mit 
der ISR. Bis zum nächsten Aufruf vergehen mindestens 500µs, da bleibt 
jede Menge Zeit für die anderen Routinen.

Stefanus F. schrieb:
> Willst du das dann mit drei Timern parallel machen?

Warum nicht?
Aber die Subunternehmer Idee von Viktor ist auch gut. Ein paar Tinys 
haben jeweils ein paar Servos unter sich und sprechen per Bus mit dem 
Robbihirn.

von Stefan F. (Gast)


Lesenswert?

Matthias S. schrieb:
> Warum nicht?

Weil dann (beim Arduino Uno und Nano) kein Timer mehr für andere 
Aufgaben frei ist. Aber Ok, mit einem größeren Modell hat man auch mehr 
Timer.

von Stefan F. (Gast)


Lesenswert?

Matthias S. schrieb:
> Gegenfrage: Wie lange, glaubst du, dauert das Setzen eines Clk Pins?
> Bis zum nächsten Aufruf vergehen mindestens 500µs

Ich meinte eher, dass sich die Ausführung einer ISR verschieben kann, 
wenn schon eine andere in Arbeit ist. Das sind zwar vermutlich nur ein 
paar zig Takte, aber ich fürchte, dass diese Verzögerung genügt, um 
Servos zittern zu lassen.

0,01ms Jitter wären jedenfalls zu viel.

Jetzt wo ich nachrechne:

Das sind 160 Takte, man muss sich schon blöd anstellen*, um so viel Zeit 
zu verbrauchen. Du hast Recht, so eng ist es doch nicht.

*) mit digitalWrite(), zum Beispiel

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Hinweis: Digitalen Servos sind Pausen zwischen den Impulsen sch...egal, 
selbst wenn die mal für ein paar Sekunden komplett ausfallen, hält das 
Servo die Position.

Nur die Impulsbreite ist relevant ...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefanus F. schrieb:
> *) mit digitalWrite(), zum Beispiel

Aber so blöd sind wir ja nicht. Wir wollen ja einen Robotor basteln und 
nicht mit Lämpchen rumspielen.

von Wolfgang (Gast)


Lesenswert?

Stefanus F. schrieb:
> Das sind 160 Takte, man muss sich schon blöd anstellen*, um so viel Zeit
> zu verbrauchen. Du hast Recht, so eng ist es doch nicht.
>
> *) mit digitalWrite(), zum Beispiel

Wer bei solchen Anwendungen mit digitalWrite() hantiert, ist selber 
Schuld. Wenigsten digitalWriteFast() sollte man dafür in seinen 
Arduino-Wortschatz aufnehmen. Das spart schon mal einen Faktor 50 bei 
der Ausführung.
https://github.com/NicksonYap/digitalWriteFast

von Dippel (Gast)


Lesenswert?

Einen Kampfroboter programmiert man in Assembler.

von John (Gast)


Lesenswert?

Johannes S. schrieb:
> Aber warum 24 Servos? Hexapoden haben doch 6 Hubelemente?

Diese Teil hat 26 Servos (hat aber auch 8 Beine):

https://www.youtube.com/watch?v=Yo2TUIEXJig

https://www.youtube.com/watch?v=-vVblGlIMgw

von Johannes S. (Gast)


Lesenswert?

ok, Danke. Ich hatte solche Bilder im Kopf, da passte das mit den Servos 
nicht so richtig:
https://de.wikipedia.org/wiki/Hexapod
Wünsche dem TO jedenfalls gutes Gelingen.

Hab auch nochmal YT geguckt, https://www.youtube.com/watch?v=xDtiL4kP23c
Der Top #1 hat Dynamixel verbaut, 6 x 300$ und 12 x 450$, oha.

von Hugo H. (hugohurtig1)


Lesenswert?

Dippel schrieb:
> Einen Kampfroboter programmiert man in Assembler

Bis der kämpft hat ihn KI-0.01 schon fertig gemacht :-)

von Frank (Gast)


Lesenswert?

> Stimmt. Aber 16 kannst du haben:
> 
https://www.amazon.de/Turspit-PCA9685-PWM-Servoschild-Motortreibermodul-Arduino-Robot/dp/B07Y446ZPP
>
> Davon mehrere an einen I²C Bus, und schon hast du mehr als genug.

An so etwas vorgefertigtes habe ich gedacht, davon werde ich mir 1 oder 
2 bestellen.


> Die Gängigen Bluetooth Module kannst du unter Arduino mit der Serial
> Klasse ansteuern. Hier sind ein paar Hinweise dazu:
> http://stefanfrings.de/bluetooth/index.html

Das werde ich im Hinterkopf behalten, danke. Für den Einstieg habe ich 
mich nun aber doch entschlossen mit Signalleitungen  zu arbeiten um 
nicht an zwei Fronten gleichzeitig kämpfen zu müssen.


> Ich schließe mich Harald an: Unterschätze die Stromaufnahme und
> Störwirkung der Motoren nicht. Wahrscheinlich ersparst du Dir eine Menge
> Stress, indem du für die Motoren ein eigenes Netzteil (oder Batterien)
> verwendest.

Guter Rat an den ich mich halten werde. Der Punkt wurde hier im Thema 
auch heiß diskutiert.

von Frank (Gast)


Lesenswert?

Johannes S. schrieb:
> ok, Danke. Ich hatte solche Bilder im Kopf, da passte das mit den Servos
> nicht so richtig:
> https://de.wikipedia.org/wiki/Hexapod
> Wünsche dem TO jedenfalls gutes Gelingen.

Da habe ich mich ganz ungenau ausgedrückt, hätte schreiben können, dass 
es ein Spinnenroboter mit 6 Beinen je 4 Servos werden soll.

von Stefan F. (Gast)


Lesenswert?

Dippel schrieb:
> Einen Kampfroboter programmiert man in Assembler.

Der Programmierer kann sich dann mit c-hater duellieren. Auf ein C 
Programm würde er sich nicht einlassen, ist unter seiner Würde.

von Stefan F. (Gast)


Lesenswert?

Frank schrieb:
> Für den Einstieg habe ich
> mich nun aber doch entschlossen mit Signalleitungen  zu arbeiten um
> nicht an zwei Fronten gleichzeitig kämpfen zu müssen.

Gute Entscheidung.

von Frank (Gast)



Lesenswert?

So die Hardware ist besorgt:

12x MG996R TowerPro Servos (3 Gelenke pro Bein)
1x  Arduino Mega Board (hat 14 PWM Pins, gibt ne gute Arduino Servo-Lib)
1x  HC-05 Bluetoothmodul
1x  3S-Lipo Akku
1x  16x Servo Driver Board (aufgrund Arduino Mega Board vorerst 
überflüssig*****)

Habe mich an diesem Projekt orientiert:
https://howtomechatronics.com/projects/arduino-ant-hexapod-robot/

Was mir gut gefallen hat, ist die Realisierung der Elektrik, es wird nur 
ein starker DC-DC Stepdown Wandler verwendet und ein paar Analogbauteile 
(Widerstände und Kondensatoren).
Da jeder meiner 12 Servos max. 1,4A ziehen kann (in Summe 16,8A), kann 
ich den 16x Servodriver nicht ohne weiteres verwenden, sondern müsste 
für jeden Kanal eine kleine Transistorverstärkung bauen. Daher hat mir 
die Lösung mit dem großen starken Wandler sehr zugesagt und ich habe mir 
diesen Wandler angeschaut:
https://www.amazon.de/Akozon-Wandlermodul-Abw%C3%A4rtswandler-Step-down-Modul-Konstantstrom-LED-Treiber/dp/B07GXQ8MNG/ref=sxbs_sxwds-stvp?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=dc+dc+stepdown&pd_rd_i=B07GXQ8MNG&pd_rd_r=27011af2-b704-45f8-a578-495effc75926&pd_rd_w=Wl2rT&pd_rd_wg=uOutc&pf_rd_p=6d84c7ba-ae72-4e53-b9a4-5df18ccb370e&pf_rd_r=BDSQ8X7AM0WCNQNXP1SZ&qid=1572612993

Taugt der Wandler was oder könt ihr mir etwas besseres empfehlen?



***** Die Pins vertragen lt. Datenblatt nur 25mA wenn sie Strom liefern 
müssen und 400mA wenn man Strom "reinschickt" sorry für die Wortwahl, 
bin interessierter Elektroniklaie und nicht Fachmann. Siehe Bild im 
Anhang mit den Daten.

von Helmut H. (helmuth)


Lesenswert?

Frank schrieb:
> Da jeder meiner 12 Servos max. 1,4A ziehen kann (in Summe 16,8A), kann
> ich den 16x Servodriver nicht ohne weiteres verwenden,

Die 25 mA beziehen sich auf den Servodriver PWM Ausgang der mit dem PWM 
Eingang des Servos verbunden ist. Hierfür sind die 25mA mehr als 
ausreichend (habe im Servo-Datenblatt dazu leider keine Angaben 
gefunden). Den running current von 0.9 A bis zu maximal 2.5 A stall 
current holt sich der Servo von VCC.

: Bearbeitet durch User
von Frank (Gast)


Lesenswert?

Helmut H. schrieb:
> Den running current von 0.9 A bis zu maximal 2.5 A stall current holt
> sich der Servo von VCC.

Super Info, dann kann ich auf 16 Servos aufstocken ohne viel gebastele), 
danke.
Was ist mit dem dc-dc step down converter? Wäre der für meine Zwecke 
geeignet? Ist die Ausgangsspannung von 5V bei 16A nicht kritisch? Manche 
Wandler sind da empfindlich habe ich mal gelesen.

von Rene K. (xdraconix)


Lesenswert?

Frank schrieb:
> Ist die Ausgangsspannung von 5V bei 16A nicht kritisch?

Lass uns mal rechnen, laut DB Stall Current 2.5 A (Und du musst rechnen 
das ALLE Servos diesen ziehen, spätestens beim einschalten wenn sie alle 
gleichzeitig in die Grundstellung fahren.)

Aaaalso: 16x 2,4 = 40A ;-)

Im Grunde wird dies im Modellbau aber halt anders gelöst. Hättest du dir 
einen 2S LiPo organisiert, dann kannst du die Servos direkt aus dem LiPo 
versorgen, ohne jegliche DC Wandler. Aber darauf achten das der Lipo 
auch 40A bereitstellen kann.

von Stefan F. (Gast)


Lesenswert?

Tun Dir selbst einen Gefallen und verkabele die Stromversorgung der 
Servos Sternförmig - nicht so wie im Beitrag 
Beitrag "Re: Hexapod mit 24 Modellbauservos und Bluetooth Steuerung wie realisieren?" gezeichnet!

von Frank (Gast)


Lesenswert?

Rene K. schrieb:
> Im Grunde wird dies im Modellbau aber halt anders gelöst. Hättest du dir
> einen 2S LiPo organisiert, dann kannst du die Servos direkt aus dem LiPo
> versorgen, ohne jegliche DC Wandler. Aber darauf achten das der Lipo
> auch 40A bereitstellen kann.

Ich könnte mir also einfach den hier bestellen und ordentlich verdrahten 
(Sternförmig) und gut ist? Das wäre fast zu schön um wahr zu sein. Aber 
das probiere ich gerne aus

https://www.modellbau-berlinski.de/rc-elektronik-und-akkus/akkus/lipo-und-life/lipo-rc-auto/boost-plus-lipo-power-akku-74v-50c-5400mah-2s-mit-t-plug

von Frank (Gast)


Lesenswert?

Rene K. schrieb:
> Im Grunde wird dies im Modellbau aber halt anders gelöst. Hättest du dir
> einen 2S LiPo organisiert, dann kannst du die Servos direkt aus dem LiPo
> versorgen, ohne jegliche DC Wandler. Aber darauf achten das der Lipo
> auch 40A bereitstellen kann.

Ein 2S Lipo stellt 7.4V Spannung bereit statt der maximal zul. 7.2V, ist 
das ein Problem für die Servos? Die Leistungsabgabe bei 7.2 oder 7.4 
Volt mit 2.5A ist ja nur minimal, sicher bin ich trotzdem nicht ob die 
nicht mit der Zeit durchbrennen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Frank schrieb:
> Ein 2S Lipo stellt 7.4V Spannung bereit

Wenn er voll geladen ist, sinds sogar 8,4V. Ich würde die nicht auf die 
Servos schicken, wenns per Datenblatt der Servos ausserhalb der Specs 
ist.

von Stefan F. (Gast)


Lesenswert?

Frank schrieb:
> Ein 2S Lipo stellt 7.4V Spannung bereit statt der maximal zul. 7.2V, ist
> das ein Problem für die Servos? D

Woher sollen wir das wissen? Guck doch selbst in die technischen Daten 
deiner Servos.

von Frank (Gast)


Lesenswert?

Stefanus F. schrieb:
> Woher sollen wir das wissen? Guck doch selbst in die technischen Daten
> deiner Servos.

Der Vorschlag kam doch hier ausem Forum, woher soll ich wissen ob das 
geht? Ich wollte einen Stepdown Wandler einsetzen, habe sogar gefragt ob 
er sinnvoll ist, habe dann die Antwort bekommen, dass man einfach nen 2S 
Lipo dranknallen kann und gud is.
Daraufhin habe ich sicherheitshalber mal nachgefragt ob das überhaupt 
gehen könnte oder nicht. Im DaBla steht 7.2V das war doch schon längst 
klar.

An dieser Stelle danke @Matthias für den Hinweis mit den 8.4V, ich 
bleibe bei meinem Stepdown Wandler, zur Not auch zwei kleine.

von Stefan F. (Gast)


Lesenswert?

Frank schrieb:
> Der Vorschlag kam doch hier ausem Forum, woher soll ich wissen ob das
> geht?

Indem du den Vorschlag mit den technischen Daten der Servos abgleichst.

Wenn da zum Beispiel "maximal 7,2 Volt" steht, dann würde ich da keine 
Akkus anschließen, die frisch geladen mehr als 8 Volt liefern.

Der Punkt ist: Du brauchst eine Kombination von Servo und Akku, die 
zusammen passt. Das ist jedem Spannungswandler vorzuziehen.

Mit Spannungswandler wird dein Aufbau nur noch komplizierter und du 
bekommst weitere Effekte, die du noch weniger verstehst.

von Frank (Gast)


Lesenswert?

Stefanus F. schrieb:
> Der Punkt ist: Du brauchst eine Kombination von Servo und Akku, die
> zusammen passt. Das ist jedem Spannungswandler vorzuziehen.

Das habe ich verstanden, aber wie bekomme ich die 8.4V und knapp 20A auf 
7.2V? Als Laie kommt mir nur ein Stepdown Wandler in den Kopf, deshalb 
frage ich mich hier im Forum durch. Was ist also deine Empfehlung?

von Stefan F. (Gast)


Lesenswert?

Frank schrieb:
> Das habe ich verstanden, aber wie bekomme ich die 8.4V und knapp 20A auf
> 7.2V?

Na mit einem Spannungswandler, aber den sollst du vermeiden. Deswegen 
empfehle ich dir keinen. 20A sind kein Pappenstiel.

von Harald (Gast)


Lesenswert?

Mein Vorschlag eingangs bzgl. eines eigenen DCDC-Netzteils(!) pro Servo 
hatte ist ja leider als unnötiger Blödsinn abgetan worden. Schade.

von Stefan F. (Gast)


Lesenswert?

Harald schrieb:
> Mein Vorschlag eingangs bzgl. eines eigenen DCDC-Netzteils(!) pro Servo
> hatte ist ja leider als unnötiger Blödsinn abgetan worden. Schade.

Das ist auch Blödsinn. Nimm lieber passende Servos für den Akku oder 
einen passenden Akku für die Servos. So schwer ist das nicht!

von Chris (Gast)


Lesenswert?

Nimm das externe board für die Servos, dann der Mega kann nur max 6 
servos gleichzeitig, das externe board 16. Nacheinander die Servos 
bewegen ist für einen Hexapod nicht das richtige.

von Harald (Gast)


Lesenswert?

Stefan F. schrieb:
> Das ist auch Blödsinn. Nimm lieber passende Servos für den Akku

Na dann, alles gut ;-)

von Frank (Gast)


Angehängte Dateien:

Lesenswert?

Harald schrieb:
> Na dann, alles gut ;-)

Hallo Harald, ich habe deine Lösung bisher nicht in die Engere Wahl 
genommen weil ich von der Menge zurückgeschreckt bin (12 einzelne 
Konverter irgendwie unterzubringen und zu verdrahten). Grundsätzlich 
denke ich aber, dass es ohne einen Konverter nicht gehen wird bzw. dass 
es nicht einfacher gehen wird.

Was sagst du denn zu dem von mir geposteten Konverter? Es muss nicht das 
20A Monster sein, gerne auch zwei kleinere, dann könnte man den linken 
und rechten Teil des Roboters separat versorgen, das wären dann gerade 
mal 6 Servos pro Akku, ist vielleicht auch nicht schlecht.

Einen grober Entwurf vom Model habe ich mal angehängt, zum programmieren 
und testen ist das gut genug, Details werden erst gemacht wenn alles 
sauber tut.

von Frank (Gast)


Lesenswert?

Chris schrieb:
> Nimm das externe board für die Servos, dann der Mega kann nur max 6

Das Arduino Mega Board kann mit der Servo Library

Frank schrieb:
> Hallo Harald, ich habe deine Lösung bisher nicht in die Engere Wahl
> genommen weil ich von der Menge zurückgeschreckt bin (12 einzelne
> Konverter irgendwie unterzubringen und zu verdrahten). Grundsätzlich
> denke ich aber, dass es ohne einen Konverter nicht gehen wird bzw. dass
> es nicht einfacher gehen wird.
>
> Was sagst du denn zu dem von mir geposteten Konverter? Es muss nicht das
> 20A Monster sein, gerne auch zwei kleinere, dann könnte man den linken
> und rechten Teil des Roboters separat versorgen, das wären dann gerade
> mal 6 Servos pro Akku, ist vielleicht auch nicht schlecht.

Habe nochmal nachgerechnet, ich bräuchte pro zwei Beine (=6 Servos) 15A, 
demnach müsste ich also ohnehin zwei Konverter kaufen:
https://www.amazon.de/gp/product/B07RGWJHPZ/ref=ox_sc_act_title_2?smid=AETO64PHCI4NL&psc=1

Oder sollte ich lieber einen mit 40A nehmen? Was ist besser, zwei oder 
ein Konverter? Akkus hätte ich aus meinem RC-Flugzeug da, es sind 3S 
Akkus mit 11,1V, man könnte also jede Seite mit einem Akku und DC 
Wandler versorgen.

von Harald (Gast)


Lesenswert?

Hallo Frank,
man muss das ja nicht so bauen, wie ich das vorgeschlagen habe. Das war 
nur ein Vorschlag, wie ich so etwas angehen würde. Ich habe dabei 
ausdrücklich keinen Anspruch auf die einzig perfekte Lösung. Schade ist 
hauptsächlich, dass der Ton im Forum regelmäßig komplett abdriftet und 
Vorschläge außer dem Eigenem als „Blödsinn“ abgetan werden. Oder gar 
Beleidigungen erfolgen, was hier in diesem Thread glücklicherweise 
bisher nur ansatzweise vorkam.

Also, wenn es DICH interessiert, gerne:
Die oben verlinkten Wandler sind sehr klein, flach, supergünstig und 
auch vom Spitzenstrom gut passend für ein Servo. Ich würde die direkt am 
Servo (Spiegelklebeband) oder in unmittelbarer Nähe anbringen. Die 
Versorgungsspannung kann dann recht hoch ausfallen, vielleicht eignet 
sich sogar ein 18V/2Ah Werkzeugakku. Oder auch der 11V Akku, den du 
gekauft hast. Der Strom ist dann niedriger und die Leitungen können 
dünner ausfallen. Man muss dann auch nicht alles konsequent sternförmig 
verdrahten sondern z.B. nur pro Bein (Achse?). Könnte bei der 
Leitungsführung helfen.

Wenn Du nur einen oder zwei zentrale (fette) Wandler aufbaust bist du 
meiner Meinung nach keinen Schritt weiter. Die sternförmige Verdrahtung 
mit dicken Leitungen bleibt dann ja bestehen. Und du musst den 5V/20A 
irgendwo hinbauen und das Gewicht im Aufbau tragen.

Ich würde auch keine PWM Erweiterungsplatinen benutzen, auch keine CPU, 
die die PWMs per SoftPWM erzeugt. Meiner Meinung nach hat SoftPWM das 
Potential zum Jitter (Wackeln), vor allem dann, wenn die CPU noch etwas 
anderes machen soll (Funk, Algorithmus). Daher mein Hinweis auf eine 
CPU, die einfach alle PWMs in Hardware bedienen kann. Aber auch hier 
gilt, das wäre mein Lösungsansatz, andere Leute können das gerne anders 
machen oder sagen, dass das Kanonen auf Spatzen sind. Ich würde es 
trotzdem so machen.

Viel Erfolg!

von Rene K. (xdraconix)


Lesenswert?

Dann nimmt man Lifepo Akkus. 2S haben 6,4V nominal. Bin mir bei Liefepo 
aber nicht sicher ob diese die 40A Peak bringen können.

Ich denke du solltest das Gewicht so gering wie möglich halten. Die 
Tower Pro sind nun NICHT gerade für ihr extremes Haltemoment berüchtigt.

Was die PWM angeht: das sehe ich genauso wie Harald. Du benötigst für 
alle Servos ein PWN Kanal. Softpwm scheitet bei den Towerpro aus. Du 
wirst das Zittern der Servos nie in den Griff bekommen. Desweiteren, 
kannst du ja nun probieren wenn du die Servos hast, fällt Multiplexing 
aus (Servos nacheinander ansteuern) - sobald die PWM von einem Servo 
genommen wird, wird dieser sein Haltemoment verlieren: Zittern.

Entweder ein MC mit entsprechend vielen Hardware-PWM oder ein/zwei PWM 
IC nutzen.

von Lothar J. (black-bird)


Lesenswert?

Der Vierbeiner wird nicht laufen, höchstens schlurfen. Wenn ein Bein 
hoch geht, kippt er in genau diese Richtung.
Es sollten immer mindestens 3 Beine am Boden um den Massemittelpunkt 
herum sein.

Blackbird

von Frank (Gast)


Lesenswert?

Stefan F. schrieb:
> Der Punkt ist: Du brauchst eine Kombination von Servo und Akku, die
> zusammen passt. Das ist jedem Spannungswandler vorzuziehen.

Rene K. schrieb:
> Dann nimmt man Lifepo Akkus. 2S haben 6,4V nominal. Bin mir bei Liefepo
> aber nicht sicher ob diese die 40A Peak bringen können.

Harald schrieb:
> Wenn Du nur einen oder zwei zentrale (fette) Wandler aufbaust bist du
> meiner Meinung nach keinen Schritt weiter. Die sternförmige Verdrahtung
> mit dicken Leitungen bleibt dann ja bestehen. Und du musst den 5V/20A
> irgendwo hinbauen und das Gewicht im Aufbau tragen.

Habe nochmal überlegt und habe mich jetzt dazu entschieden es mit 
LiFePo-Akkus zu versuchen. Die Ladeschlussspannung übersteigt die zul. 
Spannung der Servos nicht und die Servos laufen selbst noch bei 4,8V. 
Außerdem wurde auf die passende Akku/Servo Kombi hingewiesen und da 
scheinen die LiFePo perfekt zu sein. Habe günstig zwei 2S-30C(konstant) 
für je 8,95€ erstanden.

Ich berichte weiter wenn es neues gibt!

von Stefan F. (Gast)


Lesenswert?

Frank schrieb:
> Habe günstig zwei 2S-30C(konstant) für je 8,95€ erstanden.

Das klingt gut, erspart Dir möglichen Stress mit den Spannungswandlern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.