legomindstorms:inhalt
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
legomindstorms:inhalt [2015-11-30 22:38] – [Sensor-Erkennung und -Einstellung] rainer | legomindstorms:inhalt [2015-11-30 23:11] (aktuell) – rainer | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
Für beide gibt es auf [[http:// | Für beide gibt es auf [[http:// | ||
- | + | Hier ist zunächst | |
- | ===== Generationen ===== | + | |
- | + | ||
- | Es gibt derzeit drei Generationen (siehe auch [[wp> | + | |
- | - RCX mit 2-Draht Anschlüssen (2 Aktoren, 3 Sensoren) | + | |
- | - NXT mit 6-Draht Anschlüssen (3 Aktoren, 4 Sensoren) | + | |
- | - EV3 mit kompatiblen Anschlüssen (4 Aktoren, 4 Sensoren) | + | |
- | + | ||
- | Alle können mit 6 Batterien à 1.5V, also nominell 9V, betrieben werden. | + | |
- | Dies ergibt als Maximalspannung bei frischen Batterien 9.6V. | + | |
- | Bei Verwendung von Ni-Akkumulatoren | + | |
- | Am häufigsten werden Li-Akkumulatoren verwendet, deren Nominalspannung 8.4V beträgt. | + | |
- | + | ||
- | + | ||
- | ===== Sensor-Interface ===== | + | |
- | + | ||
- | Das Sensor-Interface von NXT und EV3 verwendet 6 Leitungen: | + | |
- | - RCX kompatibler Analog-Eingang (s.u.) | + | |
- | - Masse (GND) bei NXT, Auto-ID Eingang beim EV3 | + | |
- | - GND | + | |
- | - +5V, max. 20mA (+4.3V bei NXT lt. Manual, gemessen 4.75V) | + | |
- | - SCL für I²C, Digital Ein-/ | + | |
- | - SDA für I²C, Digital Ein-/ | + | |
- | + | ||
- | 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. | + | |
- | + | ||
- | ==== 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 | | + | |
- | | | L | | + | |
- | | < | + | |
- | | | L | | + | |
- | | < | + | |
- | | < | + | |
- | | > | + | |
- | + | ||
- | 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; | + | |
- | 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, | + | |
- | + | ||
- | 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, | + | |
- | + | ||
- | + | ||
- | ==== RCX-Sensoren ==== | + | |
- | + | ||
- | Das Sensor-Interface des RCX kann mit einer 2-Draht Verbindung sowohl passive als auch aktive Sensoren betreiben. | + | |
- | Diese Schnittstelle ist auch in den Nachfolgern noch auf Pin 1 und 2 verfügbar und erlaubt sehr einfache Sensoren. | + | |
- | Aktoren (Motoren) wurden gleichfalls über 2-Draht-Verbindungen angeschlossen. | + | |
- | + | ||
- | Aus den Unterlagen zum NXT geht hervor, dass die Verbindung auch die Betriebsspannung für aktive Sensoren bereitstellt, | + | |
- | Diese wird für 0.1ms unterbrochen; | + | |
- | Während der Unterbrechung liegt die Betriebsspannung über 10kΩ an der Batteriespannung, | + | |
- | und es wird die analoge Spannung mit dem Maximalwert von 5V mit 10 Bit Auflösung, also ca. 5mV, gemessen. | + | |
- | Durch eine passende Belastung wird die Spannung geringer, und der Messwert ist das analoge Eingangssignal. | + | |
- | + | ||
- | Lt. Schaltplan des NXT sollte die Spannung über 1kΩ mit einer Si-Doppeldiode (1PS226) geklemmt werden, also ca. 5.7V betragen; | + | |
- | dies ist jedoch nicht der Fall, s.u. | + | |
- | + | ||
- | + | ||
- | + | ||
- | === Schalter- (Touch-) Sensor === | + | |
- | + | ||
- | Der einfachste Sensor ist ein Schalter, der im eingeschalteten Zustand einen Widerstand von 2,2kΩ zwischen beide Pole legt, | + | |
- | die ansonsten offen sind. | + | |
- | Dann liegt die gemessene Spannung zwischen 1,3V und 1,8V (266..368, bei einem Strom von 0,6mA und 0.8mA), sonst auf Maximalwert 5V (1024). | + | |
- | + | ||
- | Offensichtlich kann auch ein Optokoppler verwendet werden, wenn eine galvanische Trennung benötigt wird. In der Regel reicht dafür ein Strom von 1mA im Eingangskreis aus. | + | |
- | + | ||
- | === Analoge Sensoren === | + | |
- | + | ||
- | Durch entsprechende Belastung des 10kΩ-Widerstands in den Messpausen können analoge Spannungen eingestellt und an den Brick übertragen werden. | + | |
- | + | ||
- | Im einfachsten Fall ist das ein Widerstand, dessen Wert aus der Batteriespannung und der gemessenen Spannung bestimmt werden kann. | + | |
- | Durch die wenig genaue bekannte Betriebsspannung (bis zu 20% unter dem Nominalwert von 9V) sind die Messwerte gleichfalls recht ungenau, so dass Relativwerte bevorzugt werden sollten. | + | |
- | + | ||
- | Im einfachsten Fall ist das ein Fotowiderstand mit 10kΩ Normalwert, dessen Dunkelwiderstand ca. 1MΩ beträgt und bei hellem Licht auf ca. 1kΩ sinkt. | + | |
- | + | ||
- | Da die Pausen, in denen gemessen wird, vom Sensor schlecht erkennbar sind, versucht der Sensor kontinuierlich, | + | |
- | Hierzu sind mindestens (9.6V-5V)/ | + | |
- | Eine Begrenzung ist notwendig, um den Stromverbrauch nicht unnötig groß zu machen; | + | |
- | dies kann durch einen 1kΩ-Widerstand erfolgen; dann liegt die kleinste Messpannung bei ca. 1V, also bei 20% vom Endwert. | + | |
- | Mit erheblichem Schaltungsaufwand kann dieser Wert auf vielleicht 0.25V, also 10% vom Endwert, verbessert werden, | + | |
- | 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, | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== NXT Sensoren ==== | + | |
- | + | ||
- | Am NXT und | + | |
- | 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. | + | |
- | + | ||
- | + | ||
- | + | ||
- | === Widerstandsmessung === | + | |
- | + | ||
- | Legt man eine Widerstand R an, dann ist die Spannung `U_x=U_v*(R_x/ | + | |
- | Ist, wie beim NXT experimentiell ermittelt, `U_v=5V` und damit gleich der Referenzspannung des A/ | + | |
- | dann ist der angezeigte Wert `alpha = 1024*R_x/ | + | |
- | + | ||
- | === Spannungsmessung === | + | |
- | + | ||
- | Wenn | + | |
- | + | ||
legomindstorms/inhalt.1448919520.txt.gz · Zuletzt geändert: 2015-11-30 22:38 von rainer