Abo
  • Services:
Anzeige
Intel Edison mit Augen und Kamera
Intel Edison mit Augen und Kamera (Bild: Alexander Merz/Golem.de)

Servo ansteuern leicht gemacht

Die Ansteuerung des Servos ist deutlich einfacher als beim Galileo, trotzdem wenden wir etwas mehr Code auf, um den Ablauf verständlicher zu gestalten.

Zur Erinnerung: Ein Servo wird gesteuert, indem ein elektrischer Impuls mit einer definierten Dauer an den Servo geschickt wird. Die Länge steht für die anzusteuernde Position, dabei entspricht der kürzeste erkannte Impuls 0 Grad, der längste 180 Grad.

Beim Galileo war es nicht möglich, derart kurze Schaltzeiten direkt zu realisieren, weshalb wir per PWM tricksen mussten. Beim Edison hingegen sind diese Schaltzeiten möglich. Deswegen ist die Funktion für die Servoansteuerung auch recht einfach:

Anzeige

  1. void servo(int deg) {
  2.  
  3. unsigned long t = map_deg_to_time(deg);
  4. unsigned long b, a;
  5. unsigned long period = 20000;
  6.  
  7. a = time();
  8. b = time();
  9.  
  10. gpio->write(1);
  11. while(t > (b - a)) {
  12. b = time();
  13. }
  14. gpio->write(0);
  15. while(period > (b - a)) {
  16. b = time();
  17. }
  18. }

Die aufgerufene Funktion map_deg_to_time() rechnet die übergebene Gradzahl in die benötigte Zeitdauer um. Dann wird der Pin, über den der Servo angesteuert wird, auf High (=1) geschaltet. Als nächstes wird die ermittelte Zeitdauer abgewartet. Ist sie verstrichen, wird der Pin wieder auf Low (=0) geschaltet, das Signal beendet. Zum Schluss wird erneut eine kurze Zeitspanne abgewartet. Das verhindert, dass ein zweiter Aufruf der Funktion zu früh erfolgt, und das Signal vom Servo womöglich falsch oder gar nicht interpretiert wird.

Der eine oder andere wird sich fragen, warum wir die Zeitdauer so umständlich herunterzählen, statt zum Beispiel usleep() zu nutzen. Auf diese Weise verringern wir die Möglichkeit, dass uns das Betriebssystem während der Wartedauer in die Quere kommt - allerdings auf Kosten der Performance des gesamten Systems.

Eine kleine Optimierungsmöglichkeit für die Servo-Ansteuerung wäre es, statt von Pixel in Grad in Zeitdauer direkt von Pixel in Zeitdauer umzurechnen, außerdem vermeiden wir so sich aufaddierende Rundungsfehler. Der Zwischenschritt macht unser Vorgehen aber transparenter und verständlicher.

 Der Edison beeindrucktStromverbrauch und Fazit 

eye home zur Startseite
derdiedas 21. Nov 2014

Na ja - das Edison/Arduino Gespann ist nun so viel kleiner nicht. Das reine Edison Modul...

_speedy_ 21. Nov 2014

und vom USB-Stick? Von SD wäre natürlich genial und vielleicht besser Intel hier ja noch...

Zwangsangemeldet 20. Nov 2014

Irgendwie ist die Betonung des Sprechers im Video ... hmm, naja, seltsam. *Sehr* seltsam...



Anzeige

Stellenmarkt
  1. T-Systems International GmbH, München
  2. STAHLGRUBER GmbH, Poing
  3. Robert Bosch GmbH, Stuttgart-Feuerbach
  4. Dataport, Kiel


Anzeige
Blu-ray-Angebote
  1. 16,99€ (ohne Prime bzw. unter 29€ Einkauf zzgl. 3€ Versand)
  2. 23,99€ (Vorbesteller-Preisgarantie)
  3. (u. a. Spaceballs, Training Day, Der längste Tag)

Folgen Sie uns
       


  1. Blitzkrieg 3

    Neuronale-Netzwerke-KI für Echtzeit-Strategiespiel verfügbar

  2. Mobilfunk

    Fonic Smart S erhält mehr Datenvolumen

  3. Gesetzesentwurf

    Ein Etikettenschwindel bremst das automatisierte Fahren aus

  4. Triby Family

    Portabler Lautsprecher mit E-Paper-Display wird Alexa-fähig

  5. Range Extender

    Mazda plant Elektroauto mit Wankelmotor

  6. Autonomes Fahren

    Uber stoppt nach Unfall Versuch mit selbstfahrenden Taxis

  7. Elektroauto

    Tesla Model 3 soll weiter kommen als der Ampera-E

  8. Blizzard

    Starcraft Remastered erscheint im Sommer 2017

  9. Atom-Unfall

    WD erweitert Support für NAS mit Intels fehlerhaftem Atom

  10. SecurityWatchScam ID

    T-Mobile blockiert Spam-Anrufe



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Airselfie im Hands on: Quadcopter statt Deppenzepter
Airselfie im Hands on
Quadcopter statt Deppenzepter
  1. Fiberglas und Magneten Wabbeliger Quadcopter übersteht Stürze
  2. Senkrechtstarter Solardrohne fliegt wie ein Harrier
  3. Mobiler Startplatz UPS-Lieferwagen liefert mit Drohne Pakete aus

Tuxedo Book XC1507 v2 im Test: Linux ist nur einmal besser
Tuxedo Book XC1507 v2 im Test
Linux ist nur einmal besser
  1. Gaming-Notebook Razer aktualisiert Blade 14 mit Kaby Lake und 4K-UHD
  2. MSI GS63VR und Gigabyte Aero 14 im Test Entscheidend ist der Akku

BSI: Schützt euer Owncloud vor Feuer und Wasser!
BSI
Schützt euer Owncloud vor Feuer und Wasser!
  1. VoIP Deutsche Telekom hatte Störung der IP-Telefonie
  2. Alte Owncloud und Nextcloud-Versionen Parteien und Ministerien nutzen unsichere Cloud-Dienste
  3. NFC Neuer Reisepass lässt sich per Handy auslesen

  1. Re: irgendwie werde ich das Gefühl nicht los...

    onkel hotte | 10:24

  2. Re: Jetzt mal halblang!

    JohnZ | 10:24

  3. Re: Typisch Dummschland

    Prinzeumel | 10:24

  4. Re: Wankelmotor: Besseres Verbrenner-Konzept als...

    Klausens | 10:23

  5. Re: Wenn schon remastered, dann bitte Command and...

    Sander Cohen | 10:23


  1. 10:28

  2. 09:47

  3. 09:03

  4. 08:42

  5. 07:50

  6. 07:36

  7. 07:14

  8. 19:03


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel