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. Schaeffler Technologies AG & Co. KG, Nürnberg
  2. LogPay Financial Services GmbH, Eschborn
  3. MBtech Group GmbH & Co. KGaA, Stuttgart
  4. Comline AG, Dortmund


Anzeige
Blu-ray-Angebote
  1. (u. a. Hobbit Trilogie Blu-ray 43,89€ und Batman Dark Knight Trilogy Blu-ray 17,99€)
  2. 12,85€ + 5€ FSK18-Versand

Folgen Sie uns
       


  1. UAV

    Matternet startet Drohnenlieferdienst in der Schweiz

  2. Joint Venture

    Microsoft und Facebook verlegen Seekabel mit 160 Terabit/s

  3. Remote Forensics

    BKA kann eigenen Staatstrojaner nicht einsetzen

  4. Datenbank

    Börsengang von MongoDB soll 100 Millionen US-Dollar bringen

  5. NH-L9a-AM4 und NH-L12S

    Noctua bringt Mini-ITX-Kühler für Ryzen

  6. Wegen Lieferproblemen

    Spekulationen über Aus für Opels Elektroauto Ampera-E

  7. Minix

    Fehler in Intel ME ermöglicht Codeausführung

  8. Oracle

    Java SE 9 und Java EE 8 gehen live

  9. Störerhaftung abgeschafft

    Bundesrat stimmt für WLAN-Gesetz mit Netzsperrenanspruch

  10. Streaming

    Update für Fire TV bringt Lupenfunktion



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Optionsbleed: Apache-Webserver blutet
Optionsbleed
Apache-Webserver blutet
  1. Apache-Sicherheitslücke Optionsbleed bereits 2014 entdeckt und übersehen
  2. Open Source Projekt Oracle will Java EE abgeben

Lenovo Thinkstation P320 Tiny im Test: Viel Leistung in der Zigarrenschachtel
Lenovo Thinkstation P320 Tiny im Test
Viel Leistung in der Zigarrenschachtel
  1. Adware Lenovo zahlt Millionenstrafe wegen Superfish
  2. Lenovo Smartphone- und Servergeschäft sorgen für Verlust
  3. Lenovo Patent beschreibt selbstheilendes Smartphone-Display

Wireless Qi: Wie die Ikealampe das iPhone lädt
Wireless Qi
Wie die Ikealampe das iPhone lädt
  1. Noch kein Standard Proprietäre Airpower-Matte für mehrere Apple-Geräte

  1. Re: AI gibt es nicht.

    wlorenz65 | 05:10

  2. Re: K(n)ackpunkt Tastaturlayout

    zilti | 04:10

  3. Re: Und bei DSL?

    bombinho | 03:21

  4. Re: Geringwertiger Gütertransport

    DASPRiD | 03:07

  5. Re: Absicht?

    exxo | 02:46


  1. 17:43

  2. 17:25

  3. 16:55

  4. 16:39

  5. 16:12

  6. 15:30

  7. 15:06

  8. 14:00


  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