• IT-Karriere:
  • Services:

Einen Servo steuern

Ein Servo ist ein Stellmotor, dem ein einzustellender Winkel (Servo-Ausschlag) vorgegeben wird, den dieser dann auch unter Belastung hält. Die Ansteuerung erfolgt traditionell über eine Signalleitung, die regelmäßig - in einem wiederkehrenden, 20 Millisekunden langen Zeitfenster - einen elektrischen Impuls übermittelt. Die Länge des Impulses bestimmt den Winkel. Je nach Servo und dessen maximal einstellbarem Winkel, zum Beispiel -90 Grad bis +90 Grad, liegt die Signallänge irgendwo zwischen 0,7 Millisekunde (-90 Grad) bis zu circa 2,5 Millisekunde (+90 Grad).

Stellenmarkt
  1. Libri, Hamburg
  2. W&W Informatik GmbH, Ludwigsburg

In der Theorie würden wir also in einer Schleife alle 20 Millisekunden einen Pin für 1 bis 2 Millisekunden "an"-schalten, um den Servo zu steuern. Auf einem Multitasking-Betriebssystem wie Linux sind solche kleinen Zeiteinheiten aber nur unzuverlässig einzuhalten.

Pulsweitenmodulation

Also müssen wir uns anderweitig behelfen. Als Arduino-kompatible Plattform unterstützt der Galileo auch die Generierung von PWM-Signalen an bestimmten Pins. PWM steht für Pulsweitenmodulation und wird benutzt, um analoge Werte über die an sich nur digital (Strom an/aus) arbeitenden Pins zu übertragen.

Bei PWM werden die digitalen Pins innerhalb eines festen Zeitrahmens (die Periode) in sehr kurzen Abständen an- und ausgeschaltet. Als Zeichnung sieht das Ganze aus wie eine Wellenfolge von Bergen und Tälern. Für einen angeschlossenen Baustein entsteht dadurch der Eindruck, nur einen Bruchteil des Stromes zu erhalten.

Ein Beispiel: Ein Baustein erwartet an seinem Eingangspin einen Wert, der zwischen 0 und 255 liegen kann, wobei der Wert zum übertragenen Strom korreliert: 0 bedeutet kein Strom, 255 bedeutet maximalen Strom über eine Dauer X. Wir wollen den Wert 127 übertragen, müssen also den "halben" Strom übertragen. Mit PWM können wir genau dies erreichen. In der Zeit X wird unser Ausgangspin abwechselnd an- und abgeschaltet. Zum Beispiel: In einem Zehntel der Zeit wird der Strom angeschaltet und im zweiten Zehntel wieder abgeschaltet, im dritten wieder an, dann wieder aus usw. Gerechnet auf die Zeit X kommt dabei nur die Hälfte des Stroms an - die Hälfte im Vergleich zu einem ständig geschalteten Strom.

Hardware statt Software

Auf dem Galileo ist der Chip Cypress CY8C9540A I/O Expander für die Umsetzung der PWM-Funktion mitverantwortlich. Wir können ihn steuern und dabei einfach einen Wert übergeben, der zwischen 0 und 255 liegen darf und als PWM-Signal ausgegeben werden soll.

Wie uns das hilft? Die Servo-Elektronik hat eine für uns erfreuliche Eigenschaft: Innerhalb des oben genannten 20-Millisekunden-Zeitfensters interessiert sie sich nur für den ersten Impuls, der sie erreicht, weitere Impulse ignoriert sie. Moderne Servos ignorieren dieses Schema völlig und akzeptieren einfach jeden Impuls, der eine sinnvolle Länge hat und dem eine signifikante Pause folgt. Um sicherzugehen, orientieren wir uns jedoch am 20-Millisekunden-Schema.

Wir müssen den Chip also überreden, als Zeitspanne X 20 Millisekunden anzusetzen und ungefähr ausrechnen, wie die Werte 0 bis 255 in "Berge und Täler" umgesetzt werden. Die "Berge" und die zugehörigen Werte, die einer Zeitspanne von 1 bis 2 Millisekunden entsprechen, benutzen wir dann zur Servo-Ansteuerung.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Ein ZwischenüberblickI2C - die letzte Abkürzung, versprochen! 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11.  


Anzeige
Top-Angebote
  1. 749€ (Bestpreis!)
  2. 58,48€ (PC), 77,97€ (PS4, Xbox One)
  3. 9,74€
  4. (u. a. Titanfall 2 für 4,49€, FIFA 20 für 17,49€, Burnout Paradise Remastered für 4,99€)

hungkubwa 31. Jan 2014

Wozu der Umweg über Flattr wenn man auch direkt Paypal nutzen kann? Versteh ich nicht.

savejeff 30. Jan 2014

Danke :] Ich benutze die app täglich auf mehreren PCs und habe mich so drann gewöhnt. Sie...

Anonymer Nutzer 30. Jan 2014

Besten Dank für die Info. Gruss, gehirnpest

Casandro 30. Jan 2014

...ein 5 Jahresprojekt, dass dann nach 7 Jahren wegen nicht eingetretenem Erfolg eingestellt.

Anonymer Nutzer 30. Jan 2014

[..] und wir wollen dabei lernen. Genau sowas hat mir bei Golem bisher immer gefehlt...


Folgen Sie uns
       


Windows Powertoys - Tutorial

Wir geben einen kurzen Überblick der Funktionen von Powertoys für Windows 10.

Windows Powertoys - Tutorial Video aufrufen
    •  /