- 3D-Druck Einstieg und Tipps         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: Mikroplatine zur Servoansteuerung

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.688
    Anzeige

    Praxistest und DIY Projekte
    Ist der A4950 hinüber? Klebwax - vielleicht kannst Du mir raten?

    So - es hatte etwas gedauert bis es richtig weiterging. Der Gund war einfach: zuerst die vorhandene Quelle der Servo"simulation" die mit Encoder läuft - Archies Handdreh - NUR MAL EBEN angepasst an den Abtriebswellen-Poti der Modellbauservos .. ein Fehler nach dem andern, eben "je Änderung, desto Fehler". Schließlich ganz einfach: die neue Software wurde vollständig neu aufgebaut und in den beiden folgenden Teststationen betrieben.

    Nun läuft auf einer Experimentierplatine ein mega328 in einem babyorangutan, 8 MHz interner Oszillator, 9600 Baud UART, dessen Motortreiber TB6612FNG hat eine vergleichbare Wahrheitstabelle wie der A4950. Steuerung von einem Servocontroller (selfmade, nanoClone mit 20 MHz Quarz), 20 ms Periodendauer, Pulslänge 0 µs bis 2864 µs. Und der Servo dreht prächtig je nach Positionsvorgabe des Servotesters.

    Also neuer Aufbau auf einem Steckbrett mit Ziel den A4950 zu verwenden. Ein mega328 in einem nanoClone, 8 MHz interner Oszillator, UART wie oben, dazu der A4950 auf Lochrasterplatine montiert und verkabelt. Bei Testbetrieb mit Regelung wurde gemessen : PWM-Periode 256 µs (Toleranzen von intOszillator m328#), d.h. etwa 3,9 kHz. SollPosition (Ziel-Controller) 15 .. 957 Digits am Eingang PD2 = Ansteuerung vom Servotester, IstPosition 5 .. 1015 Digits vom ADC4 / ServoPoti-Abgangswelle. Ausgabe der Daten zur Kontrolle im Modus "Regelungstest" über UART im Sekundentakt, Kontrolle der PWM-Ausgänge ((OCR0A, OCR0B) mit Oszilloskop. Damit sind die Regelungswerte und die Controllerausgänge an beiden Testaufbauten gleich.

    Der A4950 wurde nach Datenblatt A4950-DS, Rev. 4 verkabelt. IC-Gehäusepunkt bei 1/GND. VREF und VSS bleiben nc, später ein Test mit 5V auf VREF und 0,2Ω (kurzer Eisendraht) gegen GND an VSS. Der Effekt bleibt gleich : der Servomotor dreht sich nicht obwohl die Eingänge IN1 und IN2 entsprechend beaufschlagt werden: entweder 1(PWM)/0 oder 0/1(PWM). Auch ein Test mit 5V an IN1 und GND an IN2 ergab keine Differenzspannung zwischen OUT1 und OUT2 (VREF + VSS unbeschaltet bzw. 5V-VREF und 0,2Ω gegen GND an VSS).

    Fragen:
    Ist der A4950 hinüber?
    Wie empfindlich ist der (Löten, Elektrostatik beim Anfassen etc)?
    Ich habe ja noch 9 Stk 4950er im Vorrat . . . aber vielleicht habe ich ja schon jetzt etwas falsch gemacht.
    Geändert von oberallgeier (08.12.2017 um 15:15 Uhr) Grund: PWM-Periode : Werte korrigiert
    Ciao sagt der JoeamBerg

  2. #12
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.688
    Stand 08. Dez. 2017, 14h28
    Ein neuer Adapter für den A4950 wurde gelötet und im Steckboard eingebaut. Test: VREF und Vss nicht beschaltet.
    Ergebnis: OUT1 und OUT2 liefern trotz PWM-Eingangssignalen konstant ca. 4 V auf beiden Kanälen. Dies ist unabhängig davon ob auf den Eingängen IN1 und IN2 ein PWM-Signal 0..250 µs von 256 µs Periodendauer anliegt .. jeweils ein Kanal high und der andere low oder ob dauerhaft +/- bzw. -/+ anliegt.

    Nachtrag:
    Vorerst Ende des Projektes.
    Einerseits wegen des bisher schleppenden Fortgangs, andererseits sehe ich mittlerweile keinen gangbaren Weg, wie ich mit der Servo-Schnittstelle (5V .. 6V und Signal) zurechtkommen sollte, wo der Motortreiber für Load Supply Voltage erst ab 8 V spezifiziert ist. Grundidee ist ja ein wirklich minimalistischer Aufbau - so ne Art Huckepack von Controller und Motortreiber, so gut wie kein Hühnerfutter. Schade.
    Geändert von oberallgeier (08.12.2017 um 23:22 Uhr)
    Ciao sagt der JoeamBerg

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Nachtrag:
    Vorerst Ende des Projektes.
    Einerseits wegen des bisher schleppenden Fortgangs, andererseits sehe ich mittlerweile keinen gangbaren Weg, wie ich mit der Servo-Schnittstelle (5V .. 6V und Signal) zurechtkommen sollte, wo der Motortreiber für Load Supply Voltage erst ab 8 V spezifiziert ist. Grundidee ist ja ein wirklich minimalistischer Aufbau - so ne Art Huckepack von Controller und Motortreiber, so gut wie kein Hühnerfutter. Schade.
    Schade. Minimalistischer als mit den analogen Servobausteinen wirds schwer. Man kann es aber besser machen. Ich schrieb

    Zitat Zitat von Klebwax Beitrag anzeigen
    Man sollte aber, wenn man schon selbst entwickelt, die größte Schwachstelle der Servos beseitigen und Steuerlogik und Motortreiber nicht aus der gleichen Versorgung speisen. 5V bzw 3,3V können (vom µC oder auch einem Empfänger) über das Standardkabel geliefert werden, für die Motorspannung gibts einen extra Anschluß. Dann kann man das Ganze auch mal mit 2 Lithiumbatterien versorgen, ohne das die Steuerung gleich abbrennt.
    Was ich mit Schwachstelle der Servos meinte, ist scheinbar nicht ganz rübergekommen. Historisch gab es in Fernsteuermodellen einen Akku für die Elektronik. Das waren 4 NiCads, rund 5V. Damit wurde der Empfänger und die Servos betrieben. Da konnte man z.B. 74xx Digital-ICs einsetzen. Die Antriebsenergie lieferte ein Verbrenner, das hatte mit diesem Akku nichts zu tun.

    Inzwischen ist das ganz anders geworden. Der Antrieb ist elektrisch hat hat eine wesentlich höhere Spannung als 5V. Das ist aus Gründen des Wirkungsgrades auch erforderlich. Die Servos sind aber bei den rund 5V geblieben. Mit modernen Akkus sind 5V mit ausreichend Leistung für eine große Zahl von Servos schlecht darstellbar. Daher werden die Servos gerne über einen Regler (BEC) versorgt. Aber auch das ist nicht ohne Probleme. Ein Servo hat, je nach Typ, einen Spitzenstrom von 1,5 bis 2,5A. Ein Regler für 4 Servos muß also einen Spitzenstrom von 10A liefern können, anderenfalls schaltet der Regler zum Selbstschutz ab, was wiederum die Elektronik aus dem Tritt bringt. Das ist das gängige Problem bei der Verwendung von Servos nicht nur hier im Forum. Im Normalbetrieb fließt zwar ein wesentlich geringerer Strom, dafür hat der Regler bei Teillastbetrieb einen schlechten Wirkungsgrad.

    Ein Akku hat diese diese Probleme nicht. Stromspitzen steckt er mühelos weg, die Spannung knickt nur ein wenig ein. 5V passen aber nicht zu den heute üblichen Lithium Akkus. Bei 2S muß man mit über 8V rechnen, also zu viel, mit 1S hat man am Ende weniger als 3V, also viel zu wenig. Daher mein Vorschlag, die Versorgung der Servomotoren von der Versorgung der Elektronik zu trennen. Das ist nicht ganz auf meinem Mist gewachsen, Dynamixel z.B. macht das auch so.

    Der Ansatz sieht dann so aus: an einem 2S oder 3S (oder auch mehr Zellen) Akku werden die/alle Motore direkt betrieben, sowohl der Antrieb als auch die Servos. Die Treiber werden passend zu den Motoren gewählt, der A4950 z.B. für die kleineren, andere für die größeren. Die gesamte Elektronik des Modells oder Bots wird mit 3,3V bzw 5V versorgt. Ein Regler dafür ist leicht zu realisieren, entweder als Hybrid wie die Recom Schaltregler oder mit preiswerten Chinareglern. Da geht es auch nur um Bruchteile eines Amperes.

    Man kann trotzdem die gängige Servoschnittstelle beibehalten. Die typischen RC-Motorregler zeigen es. Sie werden an der klassischen Servoschnittstelle betrieben, die Motorversorgung geht aber nicht über diese Schnittstelle. Auch einen BLDC betreibt man so. Ein Servo kann man ähnlich aufbauen.

    Ein Servostecker hat drei Leitungen: GND, Servosignal und Versorgung. Im Servo selbst sind ein kleiner µC und ein Motortreiber. Der µC (und nur der µC) wird vom Servostecker mit rund 5V versorgt. Er wertet das Servosignal (und das Poti) aus und steuert die Brücke an. Die Motorspannung der Brücke wird aber direkt vom Akku geliefert und ist nicht an die 5 bis 6V Grenze der Elektronik gebunden. Es wird direkt der Fahrakku verwendet. Das geht auch mit den üblichen Motoren, man muß nur den Duty-Cycle auf einen passenden Wert (kleiner 100%) begrenzen. Das ginge sogar automatisch, man misst mit dem ADC die Brückenversorgung und passt den maximalen Duty-Cycle an den Motor an.

    Ein solches Servo wäre pflegeleichter als die üblichen. Auf dem Servostecker hat es nur einen Strombedarf von ein paar Milliampere für den µC, wenn es mal kräftig zur Sache geht, muß der Akku liefern. Und durch den Einsatz eines µCs können Zusatzfunktionen wie ein Blockierschutz oder eine Fail-Safe-Automatik realisiert werden. Und wenn man sich von der Servoschnittstelle emanzipiert und z.B. I2C verwendet, kann man auch Drehgeschwindigkeit oder maximale Winkel einstellbar machen (siehe auch Dynamixel).

    Ist ein wenig länger geworden, sorry oberallgeier, wenn ich deinen Thread zugetextet habe.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  4. #14
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.688
    Danke für Deine Antwort.

    .. Ist ein wenig länger geworden, sorry oberallgeier, wenn ich deinen Thread zugetextet habe ..
    Du liebe Zeit, das ist doch ein prima, informativer Beitrag. Zugetextet wäre es doch nur, wenn der Informationsgehalt im Missverhältnis zur Wortanzahl stünde. Das ist ja hier wirklich nicht der Fall. Dagegen schreibe gerade ich immer sündlange Texte (tldr :-/ ). Danke für Deine Ausführlichkeit.

    Schade. Minimalistischer als mit den analogen Servobausteinen wirds schwer ..
    Stimmt. Daher meine Absicht einen Motortreiber auf den Controller zu kleben - Thermalpad nach aussen, die paar wenigen Datenleitungen mit kurzen, dünnsten Drähten dranzulöten und schon würde das Ganze in einen Mikroservo passen. Vorteile: ich fände das mal ein passables Recyclingprojektchen: es liegen aus grauer und jüngster Vorzeit noch ein paar angeschlagene Carson502001 und MINI ES-05 - alles Motörchen die mit >>6 V direkt am Abgrund laufen. Hübsch fände ich diesen Servo mit UART zur Parametereinstellung, evtl. serielle Stelldateneingabe und so; ist derzeit schon zT aktiv. Ausserdem hatte ich mir so ein erstes Projektchen "digitaler Servo" als sinnvoll vorgestellt.

    .. Was ich mit Schwachstelle der Servos meinte, ist scheinbar nicht ganz rübergekommen ..
    Stimmt. Fesselflug in Urzeiten und Noob in Elektronik sind ungute Grundlagen.

    .. Inzwischen ist das ganz anders geworden. Der Antrieb ist elektrisch hat hat eine wesentlich höhere Spannung als 5V ..
    Und da bin ich ziemlich rückständig. Das Maß meiner Dinge ist archie der auf diesen alten Modellbauservos aufbaut (mittlerweile 24? und es kommen noch einige dazu). Und so sind auch die wesentlichen Steuerungsplatinen ausgelegt (na ja, dort kann man ALLE Servos EINER Steuerplatine mit nem separaten Stromkreis betreiben - also genau Dein Vorschlag). Der endgültige Ausschlag zur Einstellung des Projektchens waren die Tatsachen dass a) der 4950 erst ab 8 V spezifiziert ist und ich b) einen vergleichbar kleinen mit ähnlicher Leistung für 5V nicht gefunden habe und c) der Testaufbau mit dem 4950 noch Probleme macht (läuft mit dem TB6612FNG bestens). Na ja, ich hätte hier noch ein paar A3901, Dual Full Bridge mit VBB von 0? bis 7V, aber nur 400 mA pro Kanal; 800 mA für Spitzenlast find ich halt deutlich zu wenig. Aber der hat wenigstens nur schlappe 3mm*3mm*0,75mm, Package EJ, 10-contact DFN.

    Schönes Wochenende.
    Ciao sagt der JoeamBerg

  5. #15
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.688

    Motortreiber TOSHIBA TB6612FNG kaufen ? Für 20 € Versandgebühr :-/

    Bei diesem Projektchen habe ich nach Lieferanten für nen Motortreiber TOSHIBA TB6612FNG gesucht. Wesentliche Kaufentscheidung ist die niedrige Motorspannung < 5 V und ein Ausgangsstrom von 1.2 A(ave)/3.2 A (peak) PRO Kanal ; d.h. das Bauteil kann notfallmässig > 6 A Peak beherrschen.

    Mir wurde hier schon der 4950 empfohlen, der aber erst ab 8V spezifiziert ist; die 8 V Versorgung kann ich nicht aufbringen, ich bin da auf max 5,0 V begrenzt. Ich habe noch ein paar A3901 hier, die können aber nur 400 mA pro Kanal, also mit beiden Kanälen als Spitze grad mal 0,8 A - das ist deutlich zu wenig.

    Soweit ich es beurteilen kann ist der TOSHIBA TB6612FNG nur über Mouser erhältlich. 10 Stück kosten dort € 13,90 - der Versand nochmal € 20. Das erscheint mir reichlich hoch - da wäre es für erste Muster denkbar ein paar Motortreiber mit aufgelötetem Toshibachip zu kaufen und den Chip abzulöten - aber blöd wär das schon!

    Kennt jemand Alternativen? Ein alternativer Treiberchip oder ein alternativer Lieferant (na ja, Aliexpress liefert vielleicht sogar das - aber . . . hmmm . . . ein anderer wär mit lieber).

    Danke für Eure Hilfe
    Ciao sagt der JoeamBerg

  6. #16
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.071
    Hast du schon versucht ob du Samples bekommst?

    MfG Hannes

  7. #17
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.688
    .. Samples ..
    Uuups, nein, danke! Werd ich machen.
    Geändert von oberallgeier (04.06.2018 um 23:42 Uhr) Grund: 1ter Satz alleine war missverständlich
    Ciao sagt der JoeamBerg

  8. #18
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.688
    Zitat Zitat von Klebwax Beitrag anzeigen
    .. Für kleinere Motore verwende ich gern den A4950 im SO8. Der verkraftet so bis 3A und hat zusätzlich eine eingebaute, einstellbare Strombegrenzung ..
    @Klebwax: Ich versuche gerade mit dem A4950 an nem tiny13/PB0 = OCR0A einen Motor zu steuern. Am Testboard erstmal mit ner Hardware-PWM und einer Schleife, die OCR0A ständig zwischen 10, 250 und 10 im 1/10tel-Sekundentakt rauf- und runtersteuert. Der Motor läuft nicht - und das Oszilloskopbild bestätigt das.

    Die PWM läuft ab tiny13 bis IN2/A4950 korrekt mit 37kHz@5V, das ist auch alles.

    VBB bekommt 9,8V, IN1 liegt auf 0, IN2 auf der 5V-PWM, VREF auf +5V, und RS ist mit 0,27 Ω (Blumendrahtspule) von GND nach LSS. Zwischen OUT1 und OUT2 ist keine Spannung messbar.

    Hab ich nen Denkfehler (oder ist der 4950er defekt). Nen Defekt habe ich noch nicht ausgeschlossen - ich würde halt nochmal nen neuen auf den Adapter löten. Die Anschlüsse und die PWM-Frequenz sind doch ok - oder nicht?

    Danke für Hinweise.
    Ciao sagt der JoeamBerg

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Ich hab vor kurzem mal eine Platine mit A4950 in Betrieb genommen. Benutze inzwischen gerne die fertigen Boards mit DRV8871, hab aber noch Platinen, wo ich den A4950 eingesetzt habe.. Als RS hab ich 0,33Ω als Minimelf und Vref auf 3,3V. Die ganze Schaltung hat 3,3V. RS könnte auch 0Ω sein, die Strombegrenzung ist außer Kraft, wenn Vref so hoch ist. Beim Entwickeln nehme ich auch gern 9-10V, dann zuckt alles bei einem Fehler nicht so heftig. Inwieweit das Exposed PAD an Masse angeschlossen sein muß, weiß ich nicht. Bei mir ist es das. Ist zwar eine unschöne Brutzellei, hat aber geklappt.

    Ich hab mal in meine SW geschaut, Ich setze die Basisfrequenz für die PWM auf 8kHz. Ich hab mein Projekt und die HW noch im direkten Zugriff, es geht auch mit 38kHz bei 8V. Je nach Drehrichtung gebe ich ich die PWM auf IN1 oder IN2. Es funktioniert auch, wenn der jeweils andere Anschluß auf 0 oder 1 ist, obwohl ich den nicht aktive Eingang meisst auf 1 lasse.

    Ich hab bisher noch keinen A4950 kaputt gemacht, das kann aber Glück sein.

    Eigentlich sollte es so gehen, hab leider auch keinen Tip mehr.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  10. #20
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.071
    Miss einmal die Spannung zwischen Out1 bzw Out2 gegen GND. So kannst du testen ob bzw welcher Ausgang defekt ist. Natürlich musst du am In 1 bzw 2 low und high Pegel anlegen.

    MfG Hannes

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Servoansteuerung
    Von Gremlin im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 29.09.2011, 22:07
  2. Servoansteuerung
    Von sp33dy im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 1
    Letzter Beitrag: 07.01.2010, 19:24
  3. Servoansteuerung...
    Von Quattro im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 24.09.2007, 20:50
  4. servoansteuerung
    Von zwerg1 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 21
    Letzter Beitrag: 26.07.2005, 00:38
  5. [ERLEDIGT] Servoansteuerung
    Von Gast6 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 21.01.2005, 09:11

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress