Der Farbsensor nutzt reflektiertes Licht, um die Farbe, den Farbtonwert, den Graustufenwert, die Helligkeit und die Nähe eines Objekts zu erkennen.
Der VEX IQ Farbsensor ist im VEX IQ Super Kit enthalten und kann auch hierwerden.
Verwenden Sie einen VEX IQ-Roboter der 2. Generation? Eine Übersicht über die Sensoren der 2. Generation finden Sie hier, sowie Informationen zum optischen Sensor, der Version der 2. Generation des Farbsensors.
Beschreibung des Farbsensors
Der VEX IQ-Farbsensor verfügt über mehrere Modi, die es ihm ermöglichen, verschiedene Arten von Informationen aus seiner Umgebung zu erfassen. Die gesammelten Informationen werden von den Lichtverhältnissen in der Umgebung sowie vom Abstand zwischen dem Sensor und dem Objekt oder der Oberfläche, die er liest, beeinflusst.
So funktioniert der Farbsensor
Der Farbsensor kann sowohl Farbe als auch Nähe erkennen.
Farben erkennen
Im Helligkeitsmodus wird der Farbsensor verwendet, um die Intensität des gesamten Lichts in der Umgebung des Roboters zu erfassen. Je mehr Licht den Farbsensor erreicht, während er aktiv ist, desto höher ist der Prozentwert, der an das Robotergehirn gesendet wird.
Wenn der erkannte Helligkeitsprozentsatz niedrig oder unzuverlässig ist, kann die Lampe des Farbsensors eingeschaltet oder der Helligkeitsprozentsatz der Lampe erhöht werden, indem die folgende Lichteinstellung zum Blockieren verwendet wird:
Der Farbsensor kann die Farbe, die er sieht, entweder als Farbwert oder als Farbtonwert melden.
Farbwerte.Es sind 14 Farben aufgeführt, die der Farbsensor erkennen kann. Die im Bild des Blocks fehlenden Farben sind Rot, Grün, Blau, Weiß und Gelb.
Farbtonwerte.Farbtonwerte sind wie Farbwerte, jedoch numerisch. Der Farbtonwert reicht von 0 bis 360, also Grad. Die oben aufgeführten Farbwerte haben ihre eigenen äquivalenten Farbtonwertbereiche.
Bei der Erkennung von Farben und Farbtönen ist es wichtig, dass der Farbsensor über die richtige Lichtmenge verfügt. Testen Sie Ihren Farbsensor unbedingt bei verschiedenen Lichtstärken und mit unterschiedlich eingestellter Lampe, was auch als Kalibrierung bezeichnet wird, um festzustellen, welche Einstellung für den Farbsensor Ihres Roboters am zuverlässigsten ist.
Nähe erkennen
Der Farbsensor umfasst einen Infrarot-Sensor-Sender. Der Infrarotstrahler sendet ein unsichtbares Licht aus und erkennt dann dessen Reflexion. Wenn der Großteil des Infrarotlichts zurück zum Sensor reflektiert wird, teilt dies dem Robotergehirn mit, dass sich ein Objekt in der Nähe befindet.
Allgemeine Verwendungszwecke des Farbsensors
Farbsensoren werden in vielen Technologieanwendungen eingesetzt, bei denen es wichtig ist, bestimmte Farben auf Displays oder Produkten anzuzeigen.
Einige häufige Anwendungen im täglichen Leben sind:
- Farbkalibrierungstools prüfen, ob ein digitaler Bildschirm korrekte Farben anzeigt, und passen dann die Anzeigeeinstellungen nach Bedarf an. Für Grafiker und jeden Designer, der mit Farben auf einem digitalen Bildschirm arbeitet, ist es wichtig, genau die richtige Farbe sehen zu können. Wenn die Farben nicht stimmen, kommt es zu Missverständnissen und Ressourcenverschwendung.
- Kameras und Camcorder verwenden Farbsensoren, um die Einstellungen entsprechend den Lichtverhältnissen anzupassen, um ihre Fotos und Videos durch Maximierung der Lichtverhältnisse und Verstärkung ansonsten stumpfer Farben zu verbessern. Diese Sensoren ermöglichen es einem Fotografen auch, sich auf bestimmte Farben in seinen Fotos zu konzentrieren.
- Farbsensoren werden manchmal in der Fertigung eingesetzt, um schnell zu prüfen, ob ein Produkt die richtige Farbe hat, bevor es an einen Kunden versendet wird. Beispielsweise können Früchte und Gemüse, die ihre Farbe ändern, wenn sie reif oder zum Verzehr bereit sind, gescannt werden, um sicherzustellen, dass sie die richtige Farbe haben, um sie auf den Markt zu bringen.
Zu den häufigen Verwendungszwecken eines VEX IQ-Roboters gehören:
- Mit diesem Sensor kann die Farbe eines Objekts erkannt werden. Sehen Sie sich diese Animation an, um zu sehen, wie ein Roboter vorwärts fährt, bis der Farbsensor einen grünen Würfel erkennt.
- Mit diesem Sensor kann eine Linie erkannt und/oder verfolgt werden. Sehen Sie sich diese Animation an, um einen Roboter zu sehen, der den Farbsensor verwendet, um entlang einer markierten Linie zu fahren.
- Dieser Sensor kann erkennen, ob sich ein Objekt in der Nähe befindet.
Farbsensoren an einem Wettbewerbsroboter
Denken Sie daran, dass es bei der Erkennung von Farben und Farbtönen wichtig ist, dass der Farbsensor über die richtige Lichtmenge verfügt. Stellen Sie sicher, dass Sie Ihren Farbsensor jedes Mal testen, was auch als Kalibrierung bezeichnet wird, wenn Sie an einem neuen Wettbewerbsort ankommen, da unterschiedliche Lichtstärken die Leistung Ihres Farbsensors beeinflussen können. Testen Sie Ihr Projekt mit verschiedenen Lampeneinstellungen, um festzustellen, welche Einstellung für den Farbsensor Ihres Roboters am zuverlässigsten ist.
Die vom Farbsensor gesammelten Informationen sind nützlich, um einen Wettbewerbsroboter so zu programmieren, dass er auf eine Vielzahl von Bedingungen reagiert. Der Farbsensor kann einen Wettbewerbsroboter auf folgende Weise verbessern:
- Dadurch kann der Roboter die Farbe eines Objekts in der Nähe des Sensors erkennen. Dies ist nützlich, wenn Sie möchten, dass der Roboter verschiedenfarbige Objekte sortiert, zu einem bestimmten farbigen Objekt fährt oder die Farbe von Objekten erkennt, wenn sie am Sensor vorbeikommen.
- Dadurch erkennt der Roboter, wie viel Licht zurück in den Sensor reflektiert wird. Dadurch kann Ihr Roboter fahren, bis er eine Linie auf einer Oberfläche erreicht, oder sogar einer Linie folgen.
- Dadurch erkennt der Roboter, ob sich ein Objekt oder eine Oberfläche in der Nähe befindet. Dies ist hilfreich bei der Bestimmung, ob es sich bei einer erkannten Farbe um einen Messwert eines nahegelegenen Objekts oder möglicherweise um einen anormalen Messwert einer entfernten Oberfläche oder eines entfernten Lichts handelt.
Codierung des Farbsensors in Blöcken
Der <Found an object> Block ist ein boolescher Reporterblock, der eine Bedingung entweder als wahr oder falsch meldet. Boolesche Blöcke wie der <Found an object> Block passen in Blöcke mit hexagonalen (sechsseitigen) Eingängen für andere Blöcke.
Der boolesche Block <Found an object> meldet „wahr“, wenn der Farbsensor ein Objekt erkennt, und „falsch“, wenn der Sensor dies nicht erkennt. Um mehr über boolesche Blöcke zu erfahren, besuchen Sie den Artikel Hilfe oder Blockformen und Bedeutung.
In diesem Beispiel wird der <Found an object> Block zusammen mit einem [Warten bis]-Block zur Näherungserkennung verwendet, um den Roboter vorwärts fahren zu lassen, bis ein Objekt erkannt wird.
Der <Color detects> Block ist auch ein boolescher Reporterblock, der eine Bedingung entweder als wahr oder falsch meldet. Der <Color detects> -Block meldet „wahr“, wenn der Farbsensor die ausgewählte Farbe erkennt, und „falsch“, wenn der Sensor eine andere Farbe erkennt. Um mehr über boolesche Blöcke zu erfahren, besuchen Sie den Artikel Hilfe oder Blockformen und Bedeutung.
In diesem Beispiel wird der <Color detects> -Block zusammen mit einem [Warten bis]-Block verwendet, um den Roboter zu veranlassen, vorwärts zu fahren, bis der Farbsensor ein grünes Objekt erkennt. Der Roboter hört dann auf zu fahren. Dies wird im ersten Video oben veranschaulicht.
Der Block (Helligkeit von) gibt die vom Farbsensor erkannte Lichtmenge an. Es handelt sich um einen Reporterblock, der innerhalb anderer Blöcke mit kreisförmigen Leerzeichen verwendet wird.
Der Block (Helligkeit von) meldet einen Bereich von % bis 100 %.
In diesem Beispiel wird der Block (Helligkeit von) verwendet, damit der Roboter eine Linie erkennt und ihr folgt, wie im zweiten Video oben gezeigt.
Der Block (Farbton) gibt den Farbton der vom Farbsensor erkannten Farbe an. Es handelt sich um einen Reporterblock, der innerhalb anderer Blöcke mit kreisförmigen Leerzeichen verwendet wird.
Der Block (Helligkeit von) meldet einen Bereich von 0 bis 360.
In diesem Beispiel wird der Block (Farbton von) verwendet, damit der Roboter einen Bereich von Farbtonwerten prüft, die der Farbe Rot entsprechen, und sich um 90 Grad nach rechts dreht, wenn diese Werte vom Sensor erkannt werden. Wenn andere Farbtonwerte erkannt werden, dreht sich der Roboter um 90 Grad nach links.
Der Block (Farbton) kann nützlich sein, wenn der Roboter bestimmte Farben erkennen muss, wenn die Umgebungslichtbedingungen möglicherweise inkonsistent sind.
Codierung des Farbsensors in Python
Hinweis:Um einen VEX IQ (1. Generation) Bumper Switch in Python zu programmieren, muss er mit einem VEX IQ (2. Generation) Brain verbunden werden. Das VEX IQ (1. Generation) Brain unterstützt Python nicht.
color_3.is_near_object()
Der Befehl color.is_near_object meldet True , wenn ein Farbsensor ein Objekt oder eine Oberfläche nahe der Vorderseite des Sensors erkennt, und False , wenn ein Farbsensor nicht ein Objekt oder eine Oberfläche nahe der Vorderseite des Sensors erkennt Sensor.
Hinweis:Der im Befehl angezeigte Name des Farbsensors entspricht dem Namen, der ihm in der Konfiguration zugewiesen wurde.
Antriebsstrang.Fahren(VORWÄRTS) |
| In diesem Beispiel wird eineWhile Schleife mit einer nicht Bedingung mit dem Befehl color.is_near_object verwendet, um den Roboter vorwärts fahren zu lassen, bis der Farbsensor ein Objekt in der Nähe der Vorderseite erkennt Der Sensor. |
farbe_3.farbe()
Der Befehl color.color meldet die Farbe, die aktuell vom Farbsensor erkannt wird.
Antriebsstrang.Fahren(VORWÄRTS) |
| In diesem Beispiel wird eineWhile Schleife mit einer not Bedingung mit dem Befehl color.color verwendet, um den Roboter vorwärts fahren zu lassen, bis der Farbsensor ein grünes Objekt erkennt. Der Roboter hört dann auf zu fahren. Dies wird im ersten Video oben veranschaulicht. |
Farbe_3.Helligkeit()
Der Befehl color.brightness gibt die vom Farbsensor erkannte Lichtmenge an. Es wird ein Wertebereich von 0 % bis 100 % gemeldet.
color_3.set_light(25, PERCENT) |
| In diesem Beispiel wird der Befehl color.brightness verwendet, damit der Roboter eine Linie erkennt und ihr folgt, wie im zweiten Video oben gezeigt. |
color_3.hue()
Der Befehl color.hue meldet den Farbton der vom Farbsensor erkannten Farbe. Es meldet einen Bereich von Farbtonwerten von 0 bis 360.
brain.screen.print(color_3.hue()) |
|
In diesem Beispiel wird der Befehl color.hue verwendet, damit der Roboter einen Bereich von Farbtonwerten überprüft, die der Farbe Rot entsprechen, und um 90 Grad nach rechts dreht, wenn diese Werte vom Sensor erkannt werden. Wenn andere Farbtonwerte erkannt werden, dreht sich der Roboter um 90 Grad nach links. Der Befehl color.hue kann nützlich sein, wenn der Roboter bestimmte Farben erkennen muss, wenn die Umgebungslichtbedingungen möglicherweise inkonsistent sind. |