- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Mikroplatine zur Servoansteuerung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651

    Mikroplatine zur Servoansteuerung

    Hallo alle,

    etliche Servos der Billig(st)klasse

    ......Bild hier  

    liegen bei mir defekt rum aus den letzten Tagen. Sie waren für den Fortschritt bei meiner archie-Hand-Entwicklung hinübergegangen. Nun will ich diese Servos wiederbeleben. Schon gut, ich weiß - viel Arbeit für Billigteile - aber ich fände es interessant und lohnend. Das könnte ich auch in (m)einen eher problemtischen Savöx einbauen.

    Der Einbauraum wäre die Stelle (siehe oben "Poti mit 3 Anschlüssen") in der ich eine Platine 11mm x 11 mm und 9 mm hoch einbringen könnte (Anschluss noch nicht überlegt). Es wäre also Platz für ATmega168/328 TQFP (ich hatte den auch schon QFN gelötet beim Austausch auf babyorangutan) - und einen Motortreiber, z.B. den TB6612FNG für 2 Kanäle je 1,2 A - also für rund 2,4A bei parallelen Motoranschlüssen.
    Anmerkung: der TB6612FNG hat eine nicht sooo pfiffige Motoransteuerung; ich benutze den (auf der babyorangutan-Platine) z.B. bei archie im Handgelenk für einen Mikro-Getriebemotor mit Modellbauservo-Ansteuerverhalten. Daher die Frage: gibt es ähnlich kleine - 8mm x 9 mm - Motortreiber mit vergleichbarer Belastbarkeit ?

    Das Ganze soll als eine Art "openServo" gebaut werden auf eine Platine ähnlich der oben gezeigten "Elektronik kplt. ohne Poti". Der openservo ist mir einfach viel zu groß. Spezifikation wäre dann etwa: 5V (evtl. 6V - dann bräuchte ich nen mikroskopischen Spannungsregler für den Controller), max. 1 A, Drehwinkel ca. 180° mit theoretischer Auflösung 1023 (entsprechend ADC) usf. Da ich in den Einbauraum auch ne dreifach-Buchse unterbringe, wäre ein UART denkbar, mit dem die aktuelle Grundstellung abgefragt werden könnte - alternativ auch I²C . . .

    Fragen:
    - mit wie wenig Abblockkondensatoren lässt sich der 168er bei 8Mhz/intern betreiben?
    ......Ich hab ne tiny13-Servotester, interner Takt, OHNE alles Hühnerfutter - läuft störungsfrei.
    - hat jemand etwas ähnliches schon gemacht ?
    - bekommt man in dieser Größe schon irgendetwas zum Überspannungsschutz ?
    - Kann jemand nen mikroskopischen (siehe oben) Spannungsregler empfehlen? LDO!
    - Welcher Motortreiber wäre noch verwendbar?
    - Welche update-Frequenz sollte ich wählen ? Welche PWM-Frequenz für den Motor ?
    - Ich habe noch ein paar A3901-Treiber rumliegen. Die sind mit 2x400 mA aber doch eher schmalbrüstig.
    - Hat jemand Erfahrung mit Seeed und dort mit Platinen mit Mehrfachnutzen?
    - Welche Platinendicke würdet ihr nehmen (machbare/lieferbare Werte)
    - gäbs sonst noch was zu beachten?
    - Sonstige Anregungen ?

    Danke im Voraus für eure Hilfen


    Nachtrag
    08. Dez. 2017. Projekt wird wegen geringen Realisierungschancen nicht weitergeführt, siehe Beitrag vom 8.12.2017
    Geändert von oberallgeier (08.12.2017 um 23:24 Uhr)
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    - Welche update-Frequenz sollte ich wählen ? Welche PWM-Frequenz für den Motor ?
    Mich interessierte u.a. diese Frage insbes. als Grundlage für die Auslegung der Steuerung. Hier ein kleiner Zwischenstand der zugehörigen Arbeiten.

    Testaufbau: zwei Anschlußdrähte an den Servomotor gelötet, Servo zu - und testen. Untersucht wurde ein Carson502001 bei Speisespannung 5,0V an meinem Servotester (der auf Basis eines nanoClones). Controller 20 MHz, Periodendauer 20 ms, vorgegebener Servopuls 1432 µs. DSO ist das SLOscope von Pololu , ein extrem simples Scope - daher auch die etwas ungewöhnliche Pulsdarstellung.

    !Die Ergebnisse! gelten nur für den genannten Servo, ohne Beschränkung der Allgemeinheit! Es darf nicht angenommen werden dass dies bei allen analogen Servos so ist!

    Die MotorPWM stimmt in der Frequenz mit der Periodendauer des Servopulses überein. Gegenproben bei Perioden von 16 ms und 25,+ ms Dauer bestätigten diese Feststellung. Das hatte ich noch nirgendwo erwähnt gesehen. Hier die Spannungsverläufe bei geringer Belastung mit Pulslänge von etwa 1 ms >am Servomotor< sowie mit mässiger Belastung von Hand mit Pulslänge von etwa 9 ms, ED ca. 45%. Bemerkenswert für mich ist die gemessene Spannung von etwa 0,5 Vcc direkt am angetriebenen Servomotor - IM Betrieb.

    ......Bild hier  

    Zur zusätzlichen Information der Bildschirmdump vom Scope zum Ansteuerungspin des Servos am Nanoclone (Achtung: Zeitachse 10 statt 20 ms !). In der Pulslänge zeigt sich leider der Fehler durch die geringe Auflösung des EinfachstScopes.

    Die Arbeit geht weiter.
    Geändert von oberallgeier (17.09.2017 um 11:16 Uhr)
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Die MotorPWM stimmt in der Frequenz mit der Periodendauer des Servopulses überein. Gegenproben bei Perioden von 16 ms und 25,+ ms Dauer bestätigten diese Feststellung. Das hatte ich noch nirgendwo erwähnt gesehen.
    Nun, so ist das bei einem Analogservo. Da wird mit dem Beginn des Servopulses ein Monoflop gestartet. Die Länge des erzeugten Impulses wird durch das Poti im Servo bestimmt. Der Zeitunterschied zwischen dem Servosignal und dem intern erzeugten Puls ist die Regelabweichung. Daraus läßt sich dann leicht mit Logikgattern ein Differenzpuls erzeugen.

    Als PWM Signal direkt taugt das noch nicht, weil sich da nur Zeiten bis zu 1,5ms, der Differenz zwischen Min- und Maxwert, ergeben. Das gibt bei einer 20ms Periodendauer nur einen maximalen Dutycycle von 7%. Der Differenzpuls wird daher nochmal proportional verlängert und ist dann das PWM-Signal für den Motor. Der M51660 ist ein Servo-IC, von dem man sicher noch ein Datenblatt finden kann. Da kann man das nachvollziehen.

    Daher die Frage: gibt es ähnlich kleine - 8mm x 9 mm - Motortreiber mit vergleichbarer Belastbarkeit ?
    Für kleinere Motore verwende ich gern den A4950 im SO8. Der verkraftet so bis 3A und hat zusätzlich eine eingebaute, einstellbare Strombegrenzung.

    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. Wenn der µC einen Analogeingang über hat, kann er die Motorversorgung messen und die PWM passend nach oben begrenzen. Beim A4950 könnte man auch die Strombegrenzung so einstellen, daß der Motor nicht überlastet wird. Last but not least kann man aus einem Getriebemotor und einem mechanisch verbundenen (Mehrgang?) Poti maßgeschneiderte Servos bauen. Hat man dann im µC noch einen I2C Slave über, kriegt man auch ein "Luxusservo" hin, z.B. mit einstellbarer Verfahrgeschwindigkeit etc.

    Ich würd auch nicht viel Mühe verwenden, die "neue" Elektronik in das vorhandene Gehäuse zu packen, insbesondere nicht für den Prototypen. Poti und Motor machen nur 5 Drähte aus und extern hat man viel Platz für die Kühlung. Auf einem eng gepackten Board entwickelt und testet es sich schlecht. Ich bestell meine Platinen bei elecrow, die Preise dürften bei seeed kaum anders sein. 5 Platinen bis 100*100mm hab ich für rund 10€ auf dem Tisch, da kann man sich leicht einen größeren Prototypen leisten. Für kleine Platinen nehme ich gern 1mm Material. Mehrfachnutzen mach ich selber. Dazu packe ich soviele Kopien des Layouts nebeneinander, daß die 100mm gut gefüllt sind. Platinenmaterial läßt sich gut mit einer Tafelschere schneiden, 1mm Material auch mit jeder guten Haushaltsschere.

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

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Ganz herzlichen Dank Klebwax.
    .. so ist das bei einem Analogservo .. mit dem Beginn des Servopulses ein Monoflop gestartet .. leicht mit Logikgattern ein Differenzpuls erzeugen ..
    Danke für die ausführliche und für mich verständliche Erklärung. Nur - zu Analogtechnik bin ich total ungebildet und ohne jede Affinität - da hatte ich sozusagen in der Schule geschwänzt!

    .. die größte Schwachstelle der Servos beseitigen und Steuerlogik und Motortreiber nicht aus der gleichen Versorgung speisen ..
    Ja, das kenn ich wieder seit meinen Anfängen zu Mikrocontrollern.

    .. Der M51660 ist ein Servo-IC, von dem man sicher noch ein Datenblatt finden kann. Da kann man das nachvollziehen ..
    Das ist nicht direkt das, was ich möchte. Bei Archie hatte ich den Handgelenk-Dreh schon mit einem "Selbstbau-Servo" aus Pololu-Mikrogetriebemotor mit Encoder und der kleinen Platine babyorangutan gebaut. Ein Ewigdreher, der die Nullstellung als die beim Einstellen aktuelle Stellung anerkennt. Läuft gut. Und so etwas wollte ich mit einem Minimum an Bauteilen schaffen. Als einfaches Projektchen um die paar defekten Servos hier wiederzubeleben (soweit nicht die Bürsten durchgeschmort sind).

    .. Für kleinere Motore verwende ich gern den A4950 im SO8 .. bis 3A .. einstellbare Strombegrenzung .. daß der Motor nicht überlastet wird ..
    Genau so etwas hatte ich ja gesucht. Beim TB6612FNG nämlich leider im Datenblatt ".. The IC will fully break down when used under conditions that exceed its absolute maximum ratings ..". Also werde ich mich mal ins Datenblatt bemühen und danach wohl zu Aliexpress. Von Allegro habe ich ja nur ein paar A3901 rumliegen, die sind eindeutig zu schwach.

    .. Ich würd auch nicht viel Mühe verwenden, die "neue" Elektronik in das vorhandene Gehäuse zu packen, insbesondere nicht für den Prototypen ..
    Wie schon erwähnt - das soll ein Zwischendurchprojekt werden, aktuell benutze ich für die ersten Tests die externe Ansteuerung über babyorangutan/328p/8MHz-intern. Eher eine Spielerei und eine kleine Fortbildung zu meinem langjährigen Spielplatz "Servo". Vielleicht kommt in Zukunft dann doch ne analoge Version dran. Für die aktuelle Planung hatte ich I²C nicht vorgesehen, wohl aber UART, beispielsweise um bei späteren Anwendungen in dickeren Servos und/oder für andere Motoren die Regelparameter zu verändern, Ansteuerung ohne Servoport oder Ähnliches.

    .. elecrow .. gern 1mm Material. Mehrfachnutzen mach ich selber .. Tafelschere .. 1mm Material .. mit jeder guten Haushaltsschere ..
    Und hier sehe ich noch ein paar nützliche Tips zu Deiner Lehrstunde für Servoselbstbau. Danke herzlich für Deinen Beitrag.
    Geändert von oberallgeier (23.09.2017 um 10:05 Uhr) Grund: Korrektur "Selbst-b-au..."
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    @oberallgeier

    Das (alte) Servo-IC hab ich nur erwähnt, damit man sich mal ansehen kann, wie das in einem typischen analogen Servo (auch heute noch) gelöst ist.

    Die A4950 hab ich schon eine Weile, kann mich nicht mehr erinnern, wo ich die her hab. Es könnte gut sein, daß die in einer professionellen Bestellung so mal mitgekommen sind

    Um China als Bauteillieferanten wird man als Privatmensch auf Dauer wohl nicht herumkommen. Ich verlinke mal einen Beitrag aus einem anderen Forum, der die Problematik der Lieferung von professionellen Händlern an Privatkunden deutlich macht. Bei Aliexpress hab ich die A4950 für rund einen Dollar gefunden, da werd ich mich dann auch wieder eindecken.

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

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Hallo Klebwax.
    .. Das (alte) Servo-IC hab ich nur erwähnt .. wie das in einem typischen analogen Servo (auch heute noch) gelöst ist.
    .. Bei Aliexpress hab ich die A4950 für rund einen Dollar gefunden, da werd ich mich dann auch wieder eindecken ..
    Danke für Deine Beschreibung(en). Ich habe soeben zehn (10!) Achtbeiner bei dieser Adresse bestellt (hatte ich vorher nicht :-/ gefunden gehabt) - die sind ja nur 5mm*6mm klein und die 2-54er Teilung ist ja auch extrem lötfreundlich *gg*. Abgesehen davon, dass das Teil wohl mit Lamas angeliefert wird (max 49 Tage) ists billig: Freies verschiffen 10 teile/los A4950ELJTR-T A4950 original 1 Los × € 7,97.

    Die Software geht allmählich voran (läuft so nebenher) - mal sehen, wie sich der 10bittige ADC beim Regeln verhält. Aber mein Mikromotor-Servo mit m328p/20 MHz und 1788 Encoderticks pro Umdrehung Abtriebswelle (0,20°/tick) funktioniert ja auch ziemlich ordentlich - auch wenn das feiner aufgelöst ist als die 1586 ADC-Ticks die das Poti (m)eines Billigservos bei einer vollen Umdrehung (hochgerechnet aus ca. 180°) macht. Mal sehen, die theoretische Auflösung ist ja dann immerhin noch rund 0,23° !
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    .. Die A4950 hab ich schon eine Weile, kann mich nicht mehr erinnern, wo ich die her hab ..
    Hallo Klebwax,

    nochmal danke für Deinen Hinweis auf den 4950; diesmal bitte Dich um Hilfe wegen Deiner Erfahrung mit dem Powerdingelchen.

    Ich habe seit gestern ein Streifchen mit 10 Stück da liegen - und bin durchs Datenblatt verwirrt. Im Datenblatt (A4950-DS, Rev. 4) sehe ich die Beschreibung der Anschlüsse und habe verstanden, dass 2 (ZWEI) PWM-Anschlüsse nötig sind: IN1 und IN2 (Bisher hatte ich pro Motor nur einen Controller-PWM-Pin benötigt).

    1 GND, 2 IN2, 3 IN1, 4 VREF Analog input,
    5 VBB Load supply voltage,
    6 OUT1 DMOS full bridge output 1,
    7 LSS Power return – sense resistor connection,
    8 OUT2 DMOS full bridge output 2

    Weiter:
    Zitat Zitat von Klebwax Beitrag anzeigen
    .. Für kleinere Motore verwende ich gern den A4950 im SO8 .. bis 3A .. eingebaute, einstellbare Strombegrenzung ..
    Mit VREF kann ich daher offensichtlich den maximalen Strom einstellen, den der 4950 ausgibt. Ist es dann richtig, dass ich mit z.B. 5V an VREF und 0,25Ω an LSS/Pin7 einen maximalen Strom von 2 A einstelle (5V / 10*0,25Ω = 2A) ? Was passiert wenn ich die Bemerkung "optional" bei LSS (vermutlich der Rs aus der Formel?) hernehme und KEINEN Widerstand anbringe (einfach Pinn NC lassen)?

    Bisher hatte ich meist Motortreiber der Art L293D verwendet, bei denen zwei "Richtungspinne" und ein PWM-Eingang verwendet werden - und sonst nix. Da unterscheidet sich der 4950 doch deutlich - und ich würde gern schon das erste Teilchen ordentlich beschalten.

    Danke für die Hilfe.
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    .. Für kleinere Motore verwende ich gern den A4950 im SO8 ..
    Bitte könntest Du verraten wo Du die einkaufst? Digi-Key bietet fünf für 12,75€ plus Versand 18,0€ - und ich China ist das auch schon mal ausverkauft :-/. Danke im Voraus.
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    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

  10. #10
    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 !

Seite 1 von 2 12 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. 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
  •  

LiFePO4 Speicher Test