Abo
  • Services:
Anzeige
Laika - Frontansicht
Laika - Frontansicht (Bild: Golem.de)

I2C - die letzte Abkürzung, versprochen!

Anzeige

Der I/O-Chip kann über den I2C-Bus angesprochen und gesteuert werden. Auch für dieses System bietet Linux entsprechende dateibasierte Unterstützung über die /sys/class/i2c-dev- und /dev/i2c-*-Interfaces. An dieser Stelle wollen wir uns aber Unterstützung holen: Die i2c-tools enthalten auch ein Python-Modul für I2C und den ähnlichen SMBus. Es lässt sich problemlos auf dem Galileo installieren und ermöglicht auch das Ansprechen des Buses über die Kommandozeile.

Das Python-Modul erfordert unter moderneren Linux-Installationen eine kleinere Änderung. Im Verzeichnis py-smbus des Installationsarchivs muss in der Datei smbusmodule.c in der Zeile 158 eine Konstante geändert werden: Statt I2C_SLAVE ist I2C_SLAVE_FORCE erforderlich. Erst dann sollte es kompiliert und installiert werden.

Der Begriff "Bus" deutet auf ein komplexes Protokoll, wenn nicht gar schwierige Sprache hin, die wir beherrschen müssen. Das Gegenteil ist der Fall, die Kommunikation mit dem I/O-Chip besteht lediglich darin, diversen Registern einen bestimmten Wert zuzuweisen. Das sieht mit dem Python-SMBus-Modul der IC2-Tools wie folgt aus:

  1. from smbus import SMBus
  2. bus = SMBus(0)
  3. bus.write_byte_data(0x20, 0x29, 0x04)

Die Initialisierung SMBus(0) verweist auf das /dev/i2c-0-Device - auf dem Galileo gibt es nur diesen einen I2C-Master. Der Schreibvorgang write_byte_data() schreibt den Wert 0x04 in das Register 0x29. Der erste Parameter 0x20 verweist auf den I/O-Chip - dessen Adresse ist auf dem Galileo fest codiert.

Datenblatt-Deutung

Was macht nun diese Angabe? Ein Blick auf Seite 13 des Datenblattes des Chips löst das Rätsel: Es setzt die PWM Clock Source (Taktvorgabe) auf die programmierbare 367,6-Hz-Einstellung. Standardmäßig liegt diese bei 32 kHz, das heißt, die Periode des PWM-Signals dauert ganze 31,25 Mikrosekunden. Das ist viel zu kurz für uns. 367,6 Hz hingegen entsprechen 2,72 Millisekunden. Das ist schon einmal in der richtigen Größenordnung, aber unter Umständen immer noch zu kurz. Zum Glück ist dieser Wert laut Datenblatt aber programmable. Das heißt, durch Angabe eines Teilers können wir eine kleinere Frequenz erzielen und damit eine längere Periode.

Naheliegenderweise wäre 9 ein guter Teiler: Damit kämen wir auf 40,8 Hz, circa 24 Millisekunden. Das entspricht fast unserem notwendigen 20-Millisekunden-Raster. Wie wir später sehen werden, führt dieser Wert aber zu einer relativ groben Auflösung für die Servo-Ansteuerung. Deswegen entscheiden wir uns für einen Teiler von 2. Das sind 183,8 Hz, circa 5,4 Millisekunden. Das ist lang genug, um einen bis zu 2,5 Millisekunden langen Impuls plus Pause zu generieren, und 5,4 selbst ist ein halbwegs vernünftiger Teiler von 20 Millisekunden, wir bleiben also im Raster. Zur Erinnerung: Die Servo-Elektronik interessiert nur das erste Signal im 20-Millisekunden-Raster, die übrigen drei Signale, die wir hier innerhalb dieser 20 Millisekunden generieren, interessiert sie nicht.

Der Teiler wird ebenfalls über den I2C-Bus gesetzt:

  1. bus.write_byte_data(0x20, 0x2C, 0x02)

Kommen wir zur eigentlichen Länge des Impulses, also zur Länge des zu generierenden "Berges". Dessen Wert setzen wir in Register 2b:

  1. bus.write_byte_data(0x20, 0x2B, value)

Doch welche Werte sind für value zulässig beziehungsweise überhaupt nützlich?

Da nur ein Byte gesetzt werden kann, sind wir limitiert auf den Wertebereich 0 bis 255. Und dies entspricht natürlich nicht direkt einer Zeitangabe. Vielmehr müssen wir ausrechnen, welche Zeitspanne zum Beispiel dem Wert 100 entspricht. Alternativ könnten wir auch sämtliche Werte von 0 bis 255 durchtesten und schauen, wie der Servo reagiert (und ihn im Extremfall zerstören).

 Einen Servo steuernZielgerichtet probieren 

eye home zur Startseite
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...



Anzeige

Stellenmarkt
  1. DATAGROUP Business Solutions GmbH, Hamburg, München, Siegburg bei Köln, Ditzingen bei Stuttgart
  2. PRÜFTECHNIK AG, Ismaning Raum München
  3. Ratbacher GmbH, Stuttgart
  4. noris network AG, Nürnberg


Anzeige
Blu-ray-Angebote
  1. 29,99€ (Vorbesteller-Preisgarantie)
  2. (u. a. Hobbit Trilogie Blu-ray 43,89€ und Batman Dark Knight Trilogy Blu-ray 17,99€)
  3. (u. a. Das Boot, Memento, Ohne Limit und No Escape)

Folgen Sie uns
       


  1. Frontier Development

    Weltraumspiel Elite Dangerous für PS4 erhältlich

  2. Petya-Ransomware

    Maersk, Rosneft und die Ukraine mit Ransomware angegriffen

  3. Nach Einigung

    Bündnis hält Facebook-Gesetz weiterhin für gefährlich

  4. SNES Classic Mini

    Nintendo produziert zweite Retrokonsole in höherer Stückzahl

  5. 5 GHz

    T-Mobile startet LTE-U im WLAN-Spektrum mehrerer US-Städte

  6. Dirt 4 im Test

    Vom Fahrschüler zum Rallye-Weltmeister

  7. Ende der Störerhaftung

    Koalition ersetzt Abmahnkosten durch Netzsperren

  8. NNabla

    Sony gibt Deep-Learning-Bibliothek frei

  9. Mobilfunk

    Deutsche Telekom betreibt noch 9.000 Richtfunkstrecken

  10. Global Internet Forum

    Social-Media-Verbund gegen Terrorpropaganda



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Mobile-Games-Auslese: Ninjas, Pyramiden und epische kleine Kämpfe
Mobile-Games-Auslese
Ninjas, Pyramiden und epische kleine Kämpfe
  1. Ubisoft Chaoshasen, Weltraumaffen und die alten Ägypter
  2. Monument Valley 2 im Test Rätselspiel mit viel Atmosphäre und mehr Vielfalt
  3. Mobile-Games-Auslese Weltraumkartoffel und Bilderbuchwanderung für mobile Spieler

Mesh- und Bridge-Systeme in der Praxis: Mehr WLAN-Access-Points, mehr Spaß
Mesh- und Bridge-Systeme in der Praxis
Mehr WLAN-Access-Points, mehr Spaß
  1. Eero 2.0 Neues Mesh-WLAN-System kann sich auch per Kabel vernetzen
  2. BVG Fast alle Berliner U-Bahnhöfe haben offenes WLAN
  3. Broadcom-Sicherheitslücke Vom WLAN-Chip das Smartphone übernehmen

Neues iPad Pro im Test: Von der Hardware her ein Laptop
Neues iPad Pro im Test
Von der Hardware her ein Laptop
  1. iFixit iPad Pro 10,5 Zoll intern ein geschrumpftes 12,9 Zoll Modell
  2. Office kostenpflichtig Das iPad Pro 10,5 Zoll ist Microsoft zu groß
  3. Hintergrundbeleuchtung Logitech bringt Hülle mit abnehmbarer Tastatur für iPad Pro

  1. Re: Mehr = Mehr Gut?

    ArcherV | 22:46

  2. Re: Vergleich zur X Serie

    Itchy | 22:44

  3. Re: Schon ausverkauft

    LH | 22:32

  4. Re: Helgoland...

    Der_aKKe | 22:27

  5. Re: Ach ja...

    DerDy | 22:05


  1. 17:35

  2. 17:01

  3. 16:44

  4. 16:11

  5. 15:16

  6. 14:31

  7. 14:20

  8. 13:59


  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