- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 13

Thema: Position eines Servo auslesen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied Avatar von PlasmaTubeI²C
    Registriert seit
    19.03.2013
    Ort
    Nürnberg
    Alter
    29
    Beiträge
    78
    Hi,

    eigentlich wurde schon fast alles dazu gesagt. (War wohl zu langsam )

    Das Element vor dem Punkt ist der Variablenname des Typs Servo, den du beispielsweise mit "Servo servo1" deklarierst.
    Dann muss natürlich servo1.read() aufgerufen werden oder wie du es auch immer nennen magst.

    Das gibt dir allerdings nur die zuletzt gesetzte Position aus, die nicht absolut ist! Man kann nicht rückschließend sagen, ob der Servo diese Position wirklich erreicht hat.

    Die einzigste Möglichkeit ist nur: Servo aufschrauben, Kabel an den Mittelschleifer des Potis anlöten und damit in den analogen Eingang des Mikrocontrollers, dann kann man über den Spannungswert den tatsächlichen Winkel bestimmen.
    Gruß, Stefan. Rechtschreibfehler gefunden? Kannste behalten!

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    ... einzigste Möglichkeit ... aufschrauben ... Mittelschleifer des Potis ... Eingang des Mikrocontrollers ...
    [PINGELIG]Jein.[/PINGELIG]

    Der (Modellbau)Servo wird üblicherweise/hoffentlich an eine separate Versorgung angeschlossen, bei mir gelegentlich auch deutlich über Vcc des Controllers. Bei Bewegung insbes. unter Last zieht der Servo viel Strom, das kann an der Eingangsspannung des Servos diagnostiziert werden. Damit ist der Mittenabgriff zu einem externen Bezug (z.B. die Vcc des Controllers) nicht so konstant, wie die üblicherweise besser als 10-bittige Auflösung des Servopotis ermöglichen würde. Aber als Richtwert würde das gehen und wäre auch aktueller als der vorgegebene Sollwert.
    Ciao sagt der JoeamBerg

  3. #3
    Benutzer Stammmitglied Avatar von PlasmaTubeI²C
    Registriert seit
    19.03.2013
    Ort
    Nürnberg
    Alter
    29
    Beiträge
    78
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Bei Bewegung insbes. unter Last zieht der Servo viel Strom ... Damit ist der Mittenabgriff zu einem externen Bezug (z.B. die Vcc des Controllers) nicht so konstant ...
    Ja, da hast du natürlich Recht, hab ich gar nicht bedacht.

    Aber wenn man dann schon gezwungen ist, beispielsweise ein zweites Poti anzubringen, kann man sich wohl gleich einen Servo mit I2C-Interface aus einem Getriebemotor, Poti/Encoder und nem Attiny basteln. ^^

    Oder: Man könnte auch gleichzeitig noch die Versorgungspannung des Servos messen, die ja je nach Belastung schwankt und nimmt das als Referenzspannung für den Maximalausschlag des internen Potis,
    braucht man halt einen analogen Pin mehr.
    Gruß, Stefan. Rechtschreibfehler gefunden? Kannste behalten!

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Zitat Zitat von oberallgeier Beitrag anzeigen
    unter Last zieht der Servo viel Strom, das kann an der Eingangsspannung des Servos diagnostiziert werden. Damit ist der Mittenabgriff zu einem externen Bezug (z.B. die Vcc des Controllers) nicht so konstant, wie die üblicherweise besser als 10-bittige Auflösung des Servopotis ermöglichen würde
    Zumindest bei den digitalen Servos die ich mir bisher angesehen habe war es so, dass die Elektronik einen eigenen kleinen Linearregler hatte, der die äußere Versorgungsspannung des Servos auf 3.3V abgeregelt hat. Diese 3.3V lagen dann auch am Poti, sollten also stabil sein, bzw zumindest nicht den extremen Störungen und Schwankungen durch die Laständerungen am Motor unterworfen sein. Bei den old-school analog Dingern mag das anders sein.

    Gruß
    Malte

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    8
    Hmm,
    da es also kein echtes Auslesen gibt, müßte man über das Entfernen der Elektronik und zwei Endschalter nachdenken (es sind bei mir nur zwei Stellungen erforderlich).

    Wie steuert man den verbliebenen Gleichstrom-Getriebemotor dann an?
    Wenn am passenden Spulenende HIGH anliegt, dreht er sich unentwegt und wenn umgesteuert werden soll, muß die Spule komplett umgepolt werden, entweder mit H-Brücke oder irgendwie manuell?
    Reicht eigentlich der Strom aus einem Port oder muß noch ein passender Baustein eingebaut werden?

    Gruß
    robkpc

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    H-Brücke ist da genau das richtige Stichwort, weil du den Motor sonst nicht umgepolt bekommst. Was meinst du mit manuell? Einen Motor auf gar keinen Fall direkt am Controller betreiben, davon wird dieser höchstwahrscheinlich zerstört.

    Musst du denn unbedingt wissen, dass der Servo in einer bestimmten Stellung ist? Wenn er richtig angesteuert wird, sollte er auch die gewünschte Stellung einnehmen. Kommt aber eben auf die Anwendung an.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2014
    Beiträge
    8
    Zitat Zitat von Geistesblitz Beitrag anzeigen
    H-Brücke ist da genau das richtige Stichwort, weil du den Motor sonst nicht umgepolt bekommst. Was meinst du mit manuell? Einen Motor auf gar keinen Fall direkt am Controller betreiben, davon wird dieser höchstwahrscheinlich zerstört.
    Bei "manuell" hatte ich ich an eben das komplette Umpolen der Spule nebst Löschdioden und einen Baustein zur Erhöhung der Portbelastung gedacht. Ziemlich umständlich und aufwendig; ich habe aber noch einen adafruit-motorcontroller, vielleicht kann ich damit den ausgeschlachteten Servo betreiben.

    Musst du denn unbedingt wissen, dass der Servo in einer bestimmten Stellung ist? Wenn er richtig angesteuert wird, sollte er auch die gewünschte Stellung einnehmen. Kommt aber eben auf die Anwendung an.
    Die "tatsächliche" Stellung wollte ich nur deshalb wissen, um diese bei Umsteuerung des Servo als Startwert eingeben zu können - damit er nicht erst mal auf den alten Startwert zurückfällt.

    Was wird denn eigentlich im normalen Fall an den Servo geschickt? Ich lese da immer microseconds, bastelt sich die interne Servo-Elektronik daraus einen Winkelwert zurecht, den der interne Regler dann einhält? Muß dieser Wert dann alle 20 ms vom AVR erneut gesendet werden oder behält ihn der interne Regler, bis ein neuer Wert kommt?

    Gruß
    robkpc

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    ... Was wird denn eigentlich im normalen Fall an den Servo geschickt ...
    In dem von mir oben verlinkten Beitrag zur Ansteuerung der Servos steht das doch drin: im "Normalfall / Standardservo-analog" alle etwa 20 ms die gewünschte Position in Form der Rampe von etwa 1 bis 2 ms.

    ... oder behält ihn der interne Regler, bis ein neuer Wert kommt ...
    Standard ist die genannte 20ms-Periode - die man je nach Servo recht flexibel dimensionieren kann. Einige, meist digitale Servos behalten den Wert - manche könnten theoretisch bis zur nächsten, geänderten Wunschstellung ohne Input bleiben. Aber das macht wenig Sinn (wohl weil eben nicht alle alles können).

    Mit diesem Beispiel (runterscrollen bis zum Video) kann ich aber gut zeigen, dass die einfache Sollwertvorgabe ohne jegliche Rückmeldung bei guter Programmierung den Servo ziemlich brav verschiedene Bewegungen machen lässt. Mit ner recht ordentlichen Feinmotorik. Und das sind hier alles billige Servos aus der <5€-Klasse.
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. RC-Servo Position bestimmen
    Von Jared im Forum Motoren
    Antworten: 21
    Letzter Beitrag: 11.07.2015, 09:55
  2. Antworten: 14
    Letzter Beitrag: 24.06.2012, 11:47
  3. Trajektorien eines 3-Achs Roboters in Position und Geschwin.
    Von Henryy im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 3
    Letzter Beitrag: 24.01.2010, 11:17
  4. Auslesen eines Sensor
    Von BlackBroom im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 28.04.2007, 09:56
  5. Position eines Modellflieger ermitteln.
    Von Zeroeightfifteen im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 1
    Letzter Beitrag: 14.06.2006, 16:40

Berechtigungen

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

Labornetzteil AliExpress