• IT-Karriere:
  • Services:

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.

Stellenmarkt
  1. Bystronic Lenhardt GmbH, Neuhausen-Hamberg
  2. BG-Phoenics GmbH, Hannover

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:

  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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Der Edison beeindrucktStromverbrauch und Fazit 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12.  


Anzeige
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)
  2. (u. a. RTX 2080 ROG Strix Gaming Advanced für 699€, RTX 2080 SUPER Dual Evo OC für 739€ und...
  3. 419,00€ (Bestpreis!)

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...


Folgen Sie uns
       


iPhone 11 Pro Max - Test

Das neue iPhone 11 Pro Max ist das erste iPhone mit einer Dreifachkamera. Dass sich diese lohnt, zeigt unser Test.

iPhone 11 Pro Max - Test Video aufrufen
DSGVO: Kommunen verschlüsseln fast nur mit De-Mail
DSGVO
Kommunen verschlüsseln fast nur mit De-Mail

Die Kommunen tun sich weiter schwer mit der Umsetzung der Datenschutz-Grundverordnung. Manche verstehen unter Daten-Verschlüsselung einen abschließbaren Raum für Datenträger.
Ein Bericht von Christiane Schulzki-Haddouti

  1. Digitale Versorgung Viel Kritik an zentraler Sammlung von Patientendaten
  2. Datenschutz Zahl der Behördenzugriffe auf Konten steigt
  3. Verschlüsselung Regierungen wollen Backdoors in Facebook für Untersuchungen

Red Dead Redemption 2 für PC angespielt: Schusswechsel mit Startschwierigkeiten
Red Dead Redemption 2 für PC angespielt
Schusswechsel mit Startschwierigkeiten

Die PC-Version von Red Dead Redemption 2 bietet schönere Grafik als die Konsolenfassung - aber nach der Installation dauert es ganz schön lange bis zum ersten Feuergefecht in den Weiten des Wilden Westens.

  1. Rockstar Games Red Dead Redemption 2 belegt 150 GByte auf PC-Festplatte
  2. Rockstar Games Red Dead Redemption 2 erscheint für Windows-PC und Stadia
  3. Rockstar Games Red Dead Online wird zum Rollenspiel

ZFS erklärt: Ein Dateisystem, alle Funktionen
ZFS erklärt
Ein Dateisystem, alle Funktionen

Um für möglichst redundante und sichere Daten zu sorgen, ist längst keine teure Hardware mehr nötig. Ein Grund dafür ist das Dateisystem ZFS. Es bietet Snapshots, sichere Checksummen, eigene Raid-Level und andere sinnvolle Funktionen - kann aber zu Anfang überfordern.
Von Oliver Nickel

  1. Dateisystem OpenZFS soll einheitliches Repository bekommen
  2. Dateisystem ZFS on Linux unterstützt native Verschlüsselung

    •  /