Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Letzte Überarbeitung Beide Seiten der Revision | ||
legomindstorms:inhalt [2015-11-30 20:30] rainer [RCX] |
legomindstorms:inhalt [2015-11-30 22:08] rainer [NXT Sensoren] |
||
---|---|---|---|
Zeile 21: | Zeile 21: | ||
Das Sensor-Interface von NXT und EV3 verwendet 6 Leitungen: | Das Sensor-Interface von NXT und EV3 verwendet 6 Leitungen: | ||
- | - RCX kompatibeler Analog-Eingang (s.u.) | + | - RCX kompatibler Analog-Eingang (s.u.) |
- Masse (GND) bei NXT, Auto-ID Eingang beim EV3 | - Masse (GND) bei NXT, Auto-ID Eingang beim EV3 | ||
- GND | - GND | ||
Zeile 28: | Zeile 28: | ||
- SDA für I²C, Digital Ein-/Ausgang, Analogeingang beim EV3 | - SDA für I²C, Digital Ein-/Ausgang, Analogeingang beim EV3 | ||
+ | Dabei sollte der RCX-Analogeingang auf Pin 1 lt. Hardware-Beschreibung bei beiden die nachfolgend für den RCX dargestellte | ||
+ | Schaltung verwenden, bei der die Batteriespannung über eine 20mA-Strombegrenzung angeschaltet wird. | ||
+ | Messungen ergaben jedoch, dass dies nicht der Fall ist. Da nur der Ultraschall-Sensor diese Versorgung benutzt und seine Resultat über I²C übergibt, wird die Stromquelle offenbar nur hier eigeschaltet. | ||
- | ==== RCX ==== | + | ==== Sensor-Erkennung und -Einstellung ==== |
+ | |||
+ | Während für den NXT der Typ des Sensors manuell eingestellt werden muss, | ||
+ | enthält der EV3 enthält eine Sensor-Erkennung nach folgender Tabelle | ||
+ | in der notierten Reihenfolge (s. S. 7 des Handbuchs). | ||
+ | Ob dies auch bei neueren Ständen der NXT-Firmware erfolgt, ist unbekannt. | ||
+ | |||
+ | |||
+ | ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ ^ | ||
+ | | | L | | | H | H | I²C Sensor | | ||
+ | | | L | | | L | | NXT Helligkeitssensor | | ||
+ | | <0.1V | L | | | | | NXT Farbsensor | | ||
+ | | | L | | | | | NXT Schalter (Touch) | | ||
+ | | <0.1V | H | | | | | EV3 Digitalsensor | | ||
+ | | <3.1V | H | | | | | EV3 Einfachsensor | | ||
+ | | >4.8V | H | | | | H | EV3 Farbsensor | | ||
+ | |||
+ | Das Prinzip scheint recht einfach zu sein: | ||
+ | * Wenn der Sensor I²C verwendet, sind durch 82kΩ-Pullups die Pins 5 und 6 auf High. Sodann muss eine I²C Kommunikation erfolgreich sein. | ||
+ | * Da beim NXT die Pins 2 und 3 beide GND sind und in den Sensoren verbunden sind, zeigt Pin 2 Low einen NXT-Sensor an. | ||
+ | * Ist Pin 2 nicht verbunden, was bei allen verfügbaren Sensor-Schaltplänen der Fall ist, und somit nicht Low, dann handelt es sich um einen EV3-Sensor. | ||
+ | * Innerhalb der EV3-Familie entscheidet Pin 1 über den Sensor. | ||
+ | |||
+ | Allerdings passt der Schaltplan des EV3 nicht ganz hierzu. Dort wird Pin 2 durch einen Spannungsteiler von 10kΩ/18kΩ an 5V im unbeschalteten Zustand auf 3.2V eingestellt; dies wäre sinnvoll, wenn die Sensoren drei Fälle durch offenlassen, Verbinden mit Masse und Verbinden mit +5V codieren würden. | ||
+ | In allen veröffentlichen Schaltplänen für EV3-Sensoren ist jedoch Pin 2 offen, und Pin 1 an Masse, mit der Ausnahme des Schalters (Touch), der Pin 1 über 910Ω an Masse legt. | ||
+ | |||
+ | Ferner sind die 82kΩ-Pullups für den I²C bereits in der Steuerung vorhanden und nicht auf den Sensoren. | ||
+ | |||
+ | Zudem sind in der Tabelle zwei Zeilen als redundant wegelassen worden; | ||
+ | und der EV3-Farbsensor ist ein I²C-Sensor, der Pin 1 auf Low legt. | ||
+ | |||
+ | Damit der NXT-Helligkeitssensor im EV3 richtig erkannt wird, muss lt. Tabelle Pin 5 auf digital Low liegen. | ||
+ | Er ist jedoch über 10kΩ mit der Basis eines Transistors verbunden, der weitere 10kΩ parallel liegen. | ||
+ | Damit ist die Spannung an Pin 5 ca. 2.2V, also digital unbestimmt und nicht Low. | ||
+ | Somit ist es nicht verwunderlich, dass der EV3 den NXT-Helligkeitssensor nicht erkennt. | ||
+ | |||
+ | |||
+ | ==== RCX-Sensoren ==== | ||
Das Sensor-Interface des RCX kann mit einer 2-Draht Verbindung sowohl passive als auch aktive Sensoren betreiben. | Das Sensor-Interface des RCX kann mit einer 2-Draht Verbindung sowohl passive als auch aktive Sensoren betreiben. | ||
Zeile 44: | Zeile 84: | ||
dies ist jedoch nicht der Fall, s.u. | dies ist jedoch nicht der Fall, s.u. | ||
- | An einem NXT wurden jedoch statisch 4.96V im Leerlauf und 1.24V bei Anschluss von 3.3kΩ gegen Massse gemessen, | ||
- | was auf einen Widerstand von 10kΩ gegen +5V schließen läßt und die Beschaltung erheblich vereinfacht. | ||
Zeile 72: | Zeile 110: | ||
was wohl meistens nicht sinnvoll ist. | was wohl meistens nicht sinnvoll ist. | ||
+ | Allerdings wird weder vom NXT noch vom EV3 normalerweise die Stromquelle von 20mA zur Batterie eingeschaltet, | ||
+ | so dass, wie im folgenden dargestellt, die Verwendung wesentlich einfacher ist. | ||
+ | |||
+ | |||
+ | ==== NXT Sensoren ==== | ||
+ | |||
+ | Messungen ergaben, dass an Pin 1 statisch 4.96V im Leerlauf und 1.24V bei Anschluss von 3.3kΩ gegen Massse vorliegen, | ||
+ | was auf einen Widerstand von 10kΩ gegen +5V schließen läßt. | ||
+ | Da zudem von den veröffentlichten Schaltungen nur der NXT Ultraschall-Sensor die Versorgung über Pin 1 wegen der höheren Spannung verwendet, könnte es sein, dass diese Feature gar nicht mehr vorhanden ist. Es konnte auch im eingebauten Sequenzer, bei dem auf Port 4 der Ultraschallsensor liegt, keine höhere Spannung als 5V beobachtet werden. | ||
+ | |||
+ | Daher wird angenommen, dass dieses Feature gar nicht (mehr) bestückt ist und Pin 1 immer mit 10kΩ statisch gegen 5V angeschlossen ist. | ||
+ | Das vereinfacht die Erstellung eigener Sensoren erheblich. | ||
+ | |||
+ | Beispielsweise kann mit einem LM335 eine Ausgangsspannung von 10mV/K, also von 2.93V für 20°C, erzeugt werden; | ||
+ | das entspricht einem Messwert von 600. | ||
+ | Die Auflösung ist recht genau 0.5°C. | ||
+ | |||
+ | Erweitert man einen Operationsverstärker wie den LM324 mit einem Feldeffekttransistor wie dem BS170 oder 2N7000, | ||
+ | dann kann der gesamte Spannungbereich von 0 bis 5V verwendet werden. | ||
Zeile 80: | Zeile 137: | ||
Ist, wie beim NXT experimentiell ermittelt, `U_v=5V` und damit gleich der Referenzspannung des A/D-Wandlers, | Ist, wie beim NXT experimentiell ermittelt, `U_v=5V` und damit gleich der Referenzspannung des A/D-Wandlers, | ||
dann ist der angezeigte Wert `alpha = 1024*R_x/(R_x+R_v)` mit `R_v`=10kΩ. | dann ist der angezeigte Wert `alpha = 1024*R_x/(R_x+R_v)` mit `R_v`=10kΩ. | ||
- | |||
- | === Spannungsmessung === | ||
- | |||
- | Wenn | ||