MKleinSB / pxt-columbuseye

Ein MakeCode-Projekt
https://mkleinsb.github.io/pxt-columbuseye/
MIT License
0 stars 0 forks source link
calliope colorsensor esero makecode tcs34725

Diese Seite auf Github Pages bei https://mkleinsb.github.io/pxt-columbuseye/ öffnen

MKleinSB/pxt-columbuseye

Mit dem TCS34725 Sensor kann man die Rot-, Grün- und Blauanteile des Lichts messen. Erweiterungen für den Calliope mini verfügen über eine LED zur Beleuchtung, manche auch über einen Kunststoffring oder sogar einer Linse. Varianten mit Kunststoffring sind zu empfehlen, da dort der Abstand zum Objekt immer gleich groß ist und es zu weniger Fremdlichteinstreuung kommt. Die vorliegende Erweiterung entstand für http://columbuseye.rub.de/. Dort gibt es auch die zugehörigen Arbeitsblätter für den Unterricht unter http://columbuseye.rub.de/unterricht/#Arbeitsbl%C3%A4tter

Die Farben sind nach den Farben des Pelikan Wasserfarbkastens benannt, da dieser in jeder Klasse vorhanden sein sollte.

Dank an Niels Dedring für den netten Kontakt und die Rückmeldungen.

Originalcode der Erweiterung https://github.com/samnied/pxt-tcs34725 TCS34725 extension von Samuel Niederer. Danke!

Grovesensor Adafruitsensor
Grove RGB-Sensor TCS34725 Sensor Breakout

Blöcke

starte Farbsensor

Initialisiert den TCS34725 RGB-Sensor. Muss immer zu Beginn aufgerufen werden.

TCS34725.start()

lerne Farbe

Speichert die Farbdaten in die angegebene Farbe um diese dann später wiederzuerkennen. Theoretisch muss nicht schwarz in schwarz gespeichert werden, ist aber zum Wiedererkennen besser. Außerdem leuchtet die LED in der entsprechenden Farbe. Die Speicherung der jeweiligen Farbe muss mit dem Knopf "A" bestätigt werden. Wenn keine Farbdaten eingelernt werden wird auf Standardwerte zurückgegriffen.

TCS34725.LernFarbe(Wasserfarben.Schwarz)

Farbdaten

Liest die Farbanteile (Jeweils 0-255) der aktuellen Farbe aus. Jeweils Für Rot, Grün und Blau.

TCS34725.getSensorData(RGB.RED)

Zeichne Säule

Zeichnet eine Säule auf dem Calliope mini Display. Die Werte werden an die Displayhöhe von 5 roten LEDs angepasst, es können bis zu 5 Spalten angegeben werden. 0 ist die linke Spalte, 2 die mittlere und 4 die rechte. So kann man bequem die drei mit Farbdaten ausgelesenen RGB-Werte darstellen.

TCS34725.zeichneSaule(0, Spalten.col0)

Wasserfarbe erkannt

Liest den Farbsensor aus und vergleicht die Werte mit den eingelernten Daten. Um ungleichmäßigen Farbauftrag auszugleichen haben alle RGB-Werte eine voreingestellte Toleranz von +-30. Diese kann über den Block "Toleranz bei Farberkennung" angepasst werden.

TCS34725.Wasserfarbe(Wasserfarben.Schwarz)

setze RGB-LED-Farbe auf

Färbt die RGB-LED des Calliope mini in der entsprechenden Farbe (Brauntöne und Schwarz lassen sich schlecht darstellen)

TCS34725.SetLedColor(Wasserfarben.Magenta)

... mehr

Toleranz bei Farberkennung

Hiermit kann die Toleranz der Farberkennung verschärft oder erweitert werde. Voreinstellt ist +-30, d.h. jeder einzelne RGB-Wert kann um 30 nach oben oder unten abweichen. Den Wert sollte man verringern wenn die Farben nicht unterschieden werden können.

TCS34725.Toleranzf(30)

Farberkennung RGB

Liest den Farbsensor aus und vergleicht die Werte mit den angegebenen RGB Werten. Um ungleichmäßigen Farbauftrag auszugleichen haben alle RGB-Werte eine voreingestellte Toleranz von +-30. Diese kann über den Toleranzblock angepasst werden.

TCS34725.Farberkennung(0, 0, 0)

Farbmemory

Merke Dir die Reihenfolge der Farben beim Farbmemoryspiel

TCS34725.Farbmemory

Beispielprogramm

Grovesensor

Metadaten (verwendet für Suche, Rendering)