Verwendung des VEX IQ-Farbsensors (1. Generation).

Der Farbsensor nutzt reflektiertes Licht, um die Farbe, den Farbtonwert, den Graustufenwert, die Helligkeit und die Nähe eines Objekts zu erkennen.

VEX IQ (1. Generation) Farbsensorteil.

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.


Farbrad, das zeigt, wie der 360-Grad-Kreis mit einem Farbtonwert korreliert. Die Farbe Rot hat einen Grad von 0, die Farbe Grün einen Grad von 120 und die Farbe Blau einen Grad von 240.


So funktioniert der Farbsensor

Der Farbsensor kann sowohl Farbe als auch Nähe erkennen.

Farben erkennen

VEXcode IQ Helligkeit des Blocks, der die Helligkeit von Color3 in % liest.

Diagramm eines Farbsensors, der eine helle Oberfläche erkennt und einen Wert von 80 % meldet und dann eine dunkle Oberfläche erkennt und einen Wert von 20 % meldet.

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.

VEXcode IQ Farbsensor-Lichtblock einstellen, der „Set Color3-Licht“ auf 50 % liest.

Farbsensor, der an einem Roboter in einer dunklen Umgebung angebracht ist. Die Lampe des Farbsensors wird eingeschaltet, um die Umgebung zu beleuchten.

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:

Drei VEXcode IQ-Farbsensorblöcke. Der erste ist die Farbe des Blocks, der den Farbnamen Color3 liest. Der zweite ist ein Farbtonblock, der den Farbton von Color3 in Grad anzeigt. Der dritte ist ein Farberkennungsblock, der „Farbe3 erkennt keine“ liest?

Der Farbsensor kann die Farbe, die er sieht, entweder als Farbwert oder als Farbtonwert melden.

VEXcode IQ Color erkennt Block, der Color3 liest, erkennt keinen? Das Dropdown-Menü „Farbe“ des Blocks wird geöffnet, um eine Liste der zu erkennenden Farben anzuzeigen. Die Liste lautet Orange, Lila, Rotviolett, Violett, Blauviolett, Blaugrün, Gelbgrün, Gelborange und Rotorange.

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.

Farbtonwertdiagramm, das zeigt, wie die 360 Grad mit einem Farbtonwert korrelieren. Die Farbe Rot hat einen Grad von 0, die Farbe Grün einen Grad von 120 und die Farbe Blau einen Grad von 240.

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.

VEXcode IQ: Sie haben einen Objektblock gefunden, auf dem steht: „Farbe 3 ist in der Nähe des Objekts?“

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

VEXcode IQ: Sie haben einen Objektblock gefunden, auf dem steht: „Farbe3 ist in der Nähe des Objekts?“

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.

 

VEXcode IQ-Blockprojekt, das mithilfe eines Farbsensors vorwärts fährt, bis es ein Objekt findet. Das Projekt lautet: „Beim Start vorwärts fahren, warten, bis Color3 ein Objekt gefunden hat, und dann anhalten.“

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.

VEXcode IQ Color erkennt Block, der Color3 liest und Grün erkennt?

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.

 

VEXcode IQ-Blockprojekt, das einen Farbsensor verwendet, um vorwärts zu fahren, bis es die Farbe Grün erkennt. Das Projekt lautet: „Beim Start vorwärts fahren, warten, bis Color3 Grün erkennt, und dann anhalten.“

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.

VEXcode IQ Helligkeit des Blocks, der die Helligkeit von Color3 in % liest.

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 %.

 

VEXcode IQ-Blockprojekt, das einen nach unten gerichteten Farbsensor verwendet, um einer markierten Linie zu folgen. Im Projekt steht: „Beim Start Color3-Licht auf 25 % einstellen.“ Als nächstes gilt: Wenn die Helligkeit von Farbe 3 in % größer als 25 ist, dann drehen Sie den linken Motor um 35 Grad nach vorne, andernfalls drehen Sie den rechten Motor um 35 Grad nach vorne.

In diesem Beispiel wird der Block (Helligkeit von) verwendet, damit der Roboter eine Linie erkennt und ihr folgt, wie im zweiten Video oben gezeigt.

VEXcode IQ-Farbton des Blocks, der den Farbton von Color3 in Grad liest.

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.

 

VEXcode IQ-Blockprojekt, das einen optischen Sensor verwendet, um vorwärts zu fahren, bis es ein Objekt erreicht, und dann nach rechts abzubiegen, wenn es rot ist, oder nach links, wenn nicht. Das Projekt lautet: „Beim Start den Farbton von Color3 in Grad auf Brain drucken, vorwärtsfahren und dann warten, bis Color3 ein Objekt gefunden hat.“ Wenn der Farbton von Color3 in Grad größer als 330 und der Farbton von Color3 in Grad kleiner als 30 ist, dann drehen Sie sich um 90 Grad nach rechts, andernfalls drehen Sie sich um 90 Grad nach links.

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)
solange nicht color_3.is_near_object():
warte(20, MSEC)
Antriebsstrang.Stopp()
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)
solange nicht color_3.GRÜN():
warte(20, MSEC)
Antriebsstrang.Stopp()
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)
while True:
if color_3.brightness() > 25:
# Wenn der Farbsensor Licht erkennt, bewegt sich der Roboter nach links.
LeftMotor.spin_for(FORWARD, 35, DEGREES)
else:
# Wenn der Farbsensor Dunkelheit erkennt, bewegt sich der Roboter nach rechts.
RightMotor.spin_for(FORWARD, 35, DEGREES)
wait(20, MSEC)
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())
drivetrain.drive(VORWÄRTS)
while not color_3.is_near_object():
wait(20, MSEC)
if color_3.hue() > 330 and color_3.hue() < 30:
drivetrain.turn_for(RECHTS, 90, GRAD)
sonst:
drivetrain.turn_for(LINKS, 90, GRAD)

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.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: