Wie man die Sensorenvielfalt erhöht.

Der aktuelle fischertechnik-Controller (Robo TX(T) Controller) wird mit acht sowohl digital (0-5 V) als auch analog (0-5 kOhm) nutzbaren Sensor-Eingängen, vier Motor-Ausgängen und vier Zähleranschlüssen geliefert. Dazu kommen – je nach Kasten – diverse Sensoren:

  • digitale Spursensoren aus zwei nebeneinander liegenden Infrarot-Sensoren, mit denen ein (autonomer) Roboter entlang einer Linie navigiert werden kann.
  • Farbsensoren,
  • Ultraschall-Abstandssensoren, die Gegenstände in Abständen von ca. 3 cm bis 4 m erkennen,
  • Wärmesensoren (NTC-Widerstände),
  • Fotowiderstände und Fototransistoren,
  • Potentiometer,
  • Reed-Kontakte und
  • Taster.

Bei komplexen Modellen können dabei die acht Eingänge und vier Ausgänge knapp werden. Eine Lösung ist es, mehrere TX(T)-Controller (bis zu neun: ein Master und acht Extensionen) über die EXT-Anschlüsse (RS485, siehe auch [12]) in Reihe zu schalten. Damit summieren sich die Sensoreingänge auf bis zu 81 und die Motor-Ausgänge auf bis zu 36. Allerdings summieren sich auch die Kosten für die TX(T) Controller.

Eine günstigere Möglichkeit, die Zahl der Ein- und Ausgänge an einem TX(T) Controller fast beliebig zu erweitern, ist die Verwendung von I2C-Sensoren und -Aktoren. Das I2C-Bus-Protokoll unterstützt der TX(T) Controller am EXT2-Anschluss. Mit einer Busgeschwindigkeit von (je nach Sensor bzw. Aktor) bis zu 400 kHz können – jedenfalls theoretisch – über 100 Sensoren oder Aktoren angesteuert werden; mit einem Multiplexer [5] lassen sich die Adressen (und damit die anschließbaren Sensoren und Aktoren) nahezu unbegrenzt erweitern.

Sensoren, die das von Philips (heute NXP Semiconductors) entwickelte I2C-Protokoll [1] unterstützen, gibt es im Elektronik-Fachhandel. Der TX-Anschluss bietet eine Stromversorgung von 5 V. Der I2C-Bus am EXT-Anschluss des TXT Controllers arbeitet hingegen mit 3,3 V und bietet leider keine eigene Stromversorgung für I2C-Sensoren und -Aktoren; hier ist man auf einen Step-Down-Spannungswandler (9 V -> 3,3/5 V) angewiesen. Zahlreiche Sensoren und Aktoren lassen sich sowohl mit 5 V als auch mit 3,3 V betreiben; ggf. ist für die Signale auf dem I2C-Bus ein Level-Shifter erforderlich (3,3 V -> 5 V).

Für einige I2C-Sensoren gibt es bereits in der fischertechnik-Programmierumgebung RoboPro geschriebene fertige Treiber (zum Download):

  • 7-Segment-LED-Anzeigen SAA1064 (5 V, 100 kHz), Adafruit (7- und 14-Segment-Display, 5 V, 400 kHz) und Sparkfun (3,3-5 V, 400 kHz) [2, 16, 17]
  • Luftdrucksensor BMP085 (5 V, 3,4 MHz) [3]
  • Bewegungssensor im Nunchuk (3,3 V, 400 MHz) [4, 11]
  • GPS-Sensor Navitron v2 (5 V, 400 MHz) [6]
  • Real-Time-Clock (RTC) DS1307 und DS 3231 (5 V, 100/400 kHz) [7]
  • Ultraschall-Sensoren SRF02 und SRF08 (5 V, 400 kHz) [8]
  • LC-Displays (20×4) LCD2004 und LCD05 (5 V, 400 kHz) [9] mit Keypad
  • Kompass-Sensoren CMPS10 (5 V, 400 kHz) und HMC6352 ( 5 V, 400 kHz) [10]
  • I2C-Kamera Pixy CMUcam5 (5 V, 400 kHz) [13]
  • Multiplexer TCA9548A (3,3-5 V, 400 kHz)
  • Temperatursensor MCP9808 [14]
  • Farbsensoren TCS34725 und ISL29125 [15]
  • BlinkM RGB LED

Vertiefende und weiterführende Leseempfehlungen:

[1] Dirk Fox: I²C mit dem TX – Teil 1: Grundlagen. ft:pedia 3/2012, S. 32-37.
[2] Dirk Fox: I²C mit dem TX – Teil 2: LED-Display. ft:pedia 4/2012, S. 32-37.
[3] Georg Stiegler: I²C mit dem TX – Teil 3: Luftdruckmessung. ft:pedia 1/2013, S. 32-38.
[4] Dirk Fox: I²C mit dem TX – Teil 4: Nunchuk-Fernsteuerung. ft:pedia 2/2013, S. 41-49.
[5] Georg Stiegler: I²C mit dem TX – Teil 5: Multiplexer. ft:pedia 2/2013, S. 50-52.
[6] Dirk Fox: I²C mit dem TX – Teil 6: GPS-Sensor. ft:pedia 3/2013, S. 54-62.
[7] Dirk Fox: I²C mit dem TX – Teil 7: Real-Time-Clock (RTC). ft:pedia 4/2013, S. 28-34.
[8] Dirk Fox: I²C mit dem TX – Teil 8: Ultraschall-Sensor. ft:pedia 4/2013, S. 35-40.
[9] Dirk Fox: I²C mit dem TX – Teil 9: LC-Displays. ft:pedia 1/2014, S. 47-57.
[10] Dirk Fox: I²C mit dem TX – Teil 10: Kompass-Sensoren. ft:pedia 2/2014, S. 57-64.
[11] Dirk Fox: Nunchuk steuert ROBO-TX-Controller. c’t Hardware Hacks, S. 64-69.
[12] Christoph Nießen: Die RS-485-Schnittstelle des ROBO TX Controllers. Analyse des RS485-Protokolls.
[13] Dirk Fox, Dirk Wölffel: I²C mit dem TX – Teil 11: Pixy-Kamera. ft:pedia 4/2014, S. 43-51.
[14] Dirk Fox: I²C mit dem TX(T) – Teil 12: Temperatursensor. ft:pedia 4/2015, S. 44-48.
[15] Dirk Fox: I²C mit dem TX(T) – Teil 13: Farbsensoren. ft:pedia 1/2016, S. 79-88.
[16] Dirk Fox: I²C mit TX(T) – Teil 14: LED-Display (2). ft:pedia 4/2016, S. 84-89.
[17] Dirk Fox: I²C mit TX(T) – Teil 15: LED-Display (3). ft:pedia 1/2017, 86-91.
[18] Dirk Fox: I²C mit dem TX(T) – Teil 16: Servo-Driver. ft:pedia 2/2017, S. 41-47.
[19] Dirk Fox: I²C mit dem TX(T) – Teil 17: Luftdruck- und Temperatursensor (2). ft:pedia 1/2019, S. 64-70.
[20] Dirk Fox: I²C mit dem TX(T) – Teil 18: Keypads und GPIOPort-Erweiterung. ft:pedia 2/2019, S. 46-51.

kommentieren

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Erstelle eine Website oder ein Blog auf WordPress.com

Nach oben ↑

%d Bloggern gefällt das: