Case 26 - "Chameleon" Kleurendetectie
Case 26 Chameleon werkt (m.i.) slecht!
Dit is de verbeterde versie van case 26 - "Chameleon (al zegt mijn gevoel dat het nog beter moet kunnen):
Dit programma geeft de exacte RGB-waarden van een kleur. Tenminste in zoverre als de RGB-sensor kleuren exact kan uitlezen, want de sensor blijkt in de praktijk verre van perfect te werken. Zoals je in onderstaande afbeelding kunt zien, liet ik een mBot2 over een papier met daarop alle kleuren gaan om de kleuren te detecteren. Kijk naar de afbeelding en kijk in de tabel welke RGB-waarde de kleur in het ideale geval zou moeten hebben en vergelijk deze met de RGB-waarde zoals de door de kleursensor geregistreerde kleurwaarde:
ideaal | in het echt | ||||||||
kleur | Rood | Groen | Blauw | Rood | Groen | Blauw | |||
wit | 255 | 255 | 255 | 255 | 255 | 255 | |||
magenta | 255 | 0 | 255 | 176 | 48 | 91 | |||
blauw | 0 | 0 | 255 | 20 | 43 | 93 | |||
cyaan | 0 | 255 | 255 | 83 | 177 | 130 | |||
groen | 0 | 255 | 0 | 100 | 174 | 31 | |||
geel | 255 | 255 | 0 | 207 | 217 | 31 | |||
rood | 255 | 0 | 0 | 234 | 39 | 20 | |||
zwart | 0 | 0 | 0 | 11 | 11 | 11 |
Gezegd moet worden: geen enkele printer print kleuren precies correct. Dus een deel van de afwijking komt voor rekening van de printer.
De RGB-kleur van cyaan: 0 -255-255, de sensor ziet: 85-174-132.
Over de printer gesproken: een printer bevat 4 kleuren inkt:
Een rode print is dus opgebouwd uit Geel en Magenta. Je sensor ziet dus geen rood, maar een mengsel van geel en magenta.
- Geel = 225 - 225 - 0
- Magenta = 255 - 0 - 255
- Rood = 255 - 0 - 0. Dus als Rood ideaal gemengd is, bestaat geprint Rood uit: 255 - 127 - 127
KLEUREN HERKENNEN
Met de lichtsensoren kunnen kleuren worden herkend. MAAR: de sensoren kunnen zich vergissen! Cyaan lijkt op Blauw, en Magenta lijkt op Rood. En in gebieden waar kleuren in elkaar overgaan, ligt de vergissing al helemaal op de loer! In de overgang van Groen naar Blauw ziet de sensor altijd even Cyaan (de mengkleur) zien.
Bovendien: de lijnen die je mBot2 moet volgen, zijn nooit perfect in de juiste kleur, want elke printer en elke verf heeft een afwijking. Als je een stukje rode lijn print, kan het best dat hij er in één van deze 3 kleurvarianten uit komt.
Dit programma 'rond kleuren af'. De uitkomst is altijd wit of zwart of rood of geel of groen of cyaan of blauw of magenta (purple genoemd). Tussenliggende kleuren worden afgerond.