-         

Ergebnis 1 bis 6 von 6

Thema: Mikroplatine zur Servoansteuerung

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

    Mikroplatine zur Servoansteuerung

    Anzeige

    Hallo alle,

    etliche Servos der Billig(st)klasse

    ......

    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
    Ciao sagt der JoeamBerg

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

    ......

    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 Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.353
    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
    7.474
    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 "Selbstau-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 (18.09.2017 um 09:46 Uhr)
    Ciao sagt der JoeamBerg

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

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.353
    @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 !

Ä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
  •