Kleuren sorteren met de TCS3472

De mogelijkheden van de nieuwe Zauberling zijn sterk toegenomen doordat achterop de module de seriële I2C bus beschikbaar is gemaakt. Deze bus biedt onder andere de mogelijkheid verscheidene externe sensoren aan te sluiten.

Voor mijn eerste experiment koos ik de TCS3472 kleursensor. De originele kleurensorteer-lijn van fischertechnik bleek hiervoor een mooi uitgangspunt.

Video : toestemming voor cookies nodig
Instellingen
Color sort - Front

Het productprogramma van fischertechnik biedt al jarenlang voorgebouwde training- en simulatiemodellen. Deze ‘Training Models’ kunnen worden gebruikt in het technisch onderwijs en educatie op het gebied van STEM (Science, Technology, Engineering and Mathematics). Met deze, doorgaans met een lopende band of grijper-arm uitgeruste modellen, kunnen diverse industriële automatiseringsprocessen worden gesimuleerd.

Vaak zijn deze modellen in verschillende uitvoeringen verkrijgbaar. Als 9 volt modellen voor aansturing met fischertechnik’s eigen TXT-controller, of als 24 volt modellen waarbij een adaptor printplaat het experimenteren met een externe PLC (Programmable Logic Controller) mogelijk maakt. De adaptor-PCB biedt dan onder andere schroefklemmen voor het aansluiten van de pneumatische ventielen en relais waarmee de draairichting van motoren kan worden gecontroleerd.

De ‘Training Models’ zijn alleen op bestelling verkrijgbaar en worden kant en klaar gebouwd geleverd. De technische ontwikkelingen kunnen soms erg snel gaan, en de modellen zijn in verschillende uitvoeringen leverbaar. De verschillende promotiefoto’s van verschillende incarnaties van de sorteer lijn met kleurenherkenning (536633) lijken zelfs simpelweg door middel van foto-montage te zijn gemaakt om te verduidelijken dat het model zowel met de 24 volt PLC-printplaat (waaraan merkwaardig genoeg de relais voor de motor lijken ontbreken) als met de 9 volt TXT-controller kan worden aangestuurd.

Color sort line 1Color sort line 2

Hoewel door de jaren heen de basisfunctionaliteiten van deze modellen grotendeels gelijk zijn gebleven (fabriekssimulatie, kleuren- of ‘producten’ sorteren), worden deze simulatiemodellen telkens geactualiseerd naar de stand van de techniek en met de nieuwe mogelijkheden in het fischertechnik productprogramma. Waar in vroegere modellen voor kleurherkenning bijvoorbeeld een combinatie van een kogellamp (37869) en fototransistor (36134) als reflectielicht-sensor werden gebruikt, wordt hier tegenwoordig de kleursensor (128599) voor ingezet. Net zoals de TX- en later TXT-controllers dikwijls de rol van de vroegere interface modules overnamen.

Werking van de originele kleuren-sorteerlijn

De originele sorteerlijn 536633 simuleert het geautomatiseerd detecteren en scheiden van kleine witte, rode en blauwe schijven door middel van de fischertechnik kleursensor (128599). Zodra een schijf op de lopende band de eerste lichtsluis is gepasseerd, begint een serie reflectielicht-metingen. Terwijl het object onder de sensor door beweegt, beschijnt de fischertechnik kleursensor het object met LED-licht en meet de hoeveelheid geflecteerd licht. Zodra de schijf de tweede detectiesluis bereikt, stoppen deze metingen is de laagste reflectielicht-waarde van de gepasseerde schijf bepaald. Elk van de drie kleuren levert hierbij een andere minimale waarde op. De uitgangswaarde van de sensor is een analoge spanning tussen 0 en 2 volt en is afhankelijk van omgevingslicht en de meetafstand en kleur van het object. Deze waarde bepaalt, door vergelijking met vaste drempelwaarden, de (vermoedelijke) kleur van het object dat passeerde.

Hierna hoeft de band slechts de betreffende afstand door te draaien waarna de pneumatische uitstoter de schijf van de band in het juiste magazijn kan schuiven. Hierbij is het aantal pulsen van een pulsgever op de motor een maat voor de vereiste afstand die de transportband door moet draaien. Drie aanvullende lichtsluizen detecteren dat een kleur-opslaglocatie vol is, zodat bij het originele model vijf lichtsluizen worden gebruikt.

Color sort - Color sensor TCS3472

Kleursensor en laserdetectie

Het kleurdetectieproces van de fischertechnik kleursensor is niet ideaal. Er wordt slechts éen reflectielicht-waarde gelezen. Tegenwoordig zijn er (voor verbazend weinig geld, denk aan bedragen rond de € 1,50 in plaats van >€ 25,- voor een fischertechnik 128599) kleursensoren die vier reflectiecomponenten lezen en zich bovendien via de I2C bus laten uitlezen. Een bruikbaar voorbeeld is de TCS3472. Deze sensor heeft bovendien een infrarood filter om de storende invloed van omgevingslicht nog verder te beperken. Deze goedkope, maar zeer nauwkeurige sensor, werd reeds in het verleden uitgebreid in de ft:pedia beschreven.

Omdat de gesorteerde plastic dominostenen in ruime rode fischertechnik cassettes (130961) worden opgevangen, heb ik de detectie-sensoren in de opslaglocaties laten vervallen. Ook de lichtsluis aan het begin kan door de doorlopende kleurdetectie komen te vervallen. Om de detectiebundel zo smal mogelijk te maken, koos ik voor halfgeleiderlasers als lichtbron voor de vier lichtsluizen langs het traject. Als sensor volstaan foto-weerstanden (LDR’s). Doordat de detectiedrempel bij gebruik van lasers erg klein kan zijn, heeft het omgevingslicht hierdoor relatief weinig invloed en hoeven er geen (gevoeliger) foto-transistoren te worden gebruikt.

Color sort - LDR with lasers
Color sort - Lasers

Halfgeleiderlasers zijn tegenwoordig niet duur meer. Voor enkele euro’s koop je al een 50 mW exemplaar waarmee je gemakkelijk honderden meters ver kunt schijnen. Voor een project als dit, waarbij de afstand slechts 10 cm. is, volstaat nog een kleinere 5 mW laser. Ik gebruikte de KY-008 module met rode (650nm) laser diode die vaak samen met een ontvangende sensormodule wordt verkocht. Deze modules werken op 5 volt en konden in mijn geval direct vanuit de Zauberling worden gevoed. Als sensor gebruikte ik niet de meegeleverde ISO203 Laser Receiver Module, maar soldeerde ik een paar eenvoudige LDR’s in fischertechnik lichtstenen (38216). Op de foto’s zijn de stoorlichtkappen verwijderd. Deze bleken in de praktijk niet echt noodzakelijk doordat de ingangsgevoeligheid van de Zauberling bij beschijnen door een dergelijke sterke laser-lichtbundel zeer laag kon worden ingesteld.

Een andere manier van kleuren sorteren

De kleursensor is via de I2C bus aangesloten op een Zauberling-module die als enige taak het decoderen van de kleur heeft. Elk van de vier uitgangen representeert een herkende kleur en wordt actief als deze betreffende kleur wordt gedetecteerd. Deze uitgangssignalen worden tevens gebruikt om de kleur-indicator LED’s bij de bakjes te laten oplichten zodat onmiddelijk na het verlaten van de sensorsluis zichtbaar is in welk bakje de steen zal worden geschoven. Elk uitgangssignaal dient tevens als ingang van één van de twee ingangen van een AND-poort. Het signaal van een lichtsluis langs het traject vormt telkens de andere ingang van deze AND-poort. Op deze manier zal alleen het pneumatische ventiel van de betreffende schuif worden geactiveerd om het object in het juiste bakje schuiven. De timing van detectie vlak voor een schuifje, en de daadwerkelijke schuifbeweging is licht afhankelijk van de snelheid van de lopende band. Hiertoe is voorzien in een instelbare vertraging. Bij het NAND-programma van de Zauberling (programmakeuze 2) is de rechter potentiometer (SET 2) hiervoor gereserveerd. De tijd dat de uitgang van de AND-poort ‘naijlt’ op de ingangen kan hiermee eenvoudig tussen 0 en 500 milliseconden worden ingesteld.

Color sort - Lasers along the track

Door de plooibaarheid en programmeerbaarheid van de Zauberling, was de aansturing relatief eenvoudig. Eén Zauberling houdt zich bezig met de kleurdetectie via de op de I2C bus aangesloten kleursensor. Deze functionaliteit is door uit commentariëren van #define FUNC13_COLORSENSOR in de standaard Zauberling-software onder DIP-switch instelling 13 te programmeren. Ingang 1 van de Zauberling kan, zonder verdere noodzakelijke externe aansluitingen, als HIGH worden ingesteld door de ingangskarakteristiek op W (ohms, DIP-schakelaar omhoog) in te stellen. De module houdt dan de laatst gedetecteerde kleur vast. Anders zal de huidige gedetecteerde kleur slechts momentaan aan de uitgang verschijnen. Elke uitgang representeert een andere kleur: Q1 wordt actief voor rood, Q2 voor groen, Q3 voor blauw en Q4 voor geel.

Er zijn voorts nog vier 2-input AND-poorten nodig. Hiervoor worden twee aanvullende Zauberlingen gebruikt die op programma 2 zijn ingesteld. Hiervoor zouden ook de normale Silberlingen kunnen worden gebruikt. Zoals gezegd, is bij de Zauberling deze poort-functie echter reeds voorzien van een regelbare ‘vertraging’ van de uitgang. Hierdoor is geen aanvullende monoflop nodig om de schuiver-actie te vertragen als de band niet snel genoeg loopt. Eventueel zal de timing waarschijnlijk ook wel op te lossen zijn door de lasers nog dichter bij de schuivers te plaatsen of schuin over de band te laten schijnen.

Betrouwbaarder kleurdetectie

Met een infrarood-filter en werkelijke RGB-meting zijn de kleurmetingen van de TCS3472 een stuk betrouwbaarder dan die van fischertechniks originele kleursensor. De meting is een stuk ongevoeliger voor omgevingslicht en niet gelimiteerd tot de traditionele witte, rode en blauwe kleurschijven. Met de originele reflectielicht-sensor was het waarschijnlijk lastig geweest de kleur groen betrouwbaar te detecteren, terwijl met de TCS3472 zelfs nog een goed onderscheid tussen geel en wit te maken viel. Elke meting levert vier waarden op, die kunnen worden beschouwd als een RGB-vector met een bepaalde lengte (de ‘Clear Light’-meting). Het is eenvoudig in te zien dat dit een betrouwbaarder kleurbepaling mogelijk maakt dan op basis van drempelwaarden van één enkele reflectielicht-meetwaarde.

Color sort - blue detected

Met de TCS3472 is het mogelijk meer dan de traditionele drie, of zoals in het verbeterde model vier, kleuren te onderscheiden. Zo zouden we bijvoorbeeld een vijfde kleur (bv. wit of zilverkleurig) gewoon aan het eind van de band in een bakje kunnen laten rollen. In mijn geval zou dit het overspuiten van de dominostenen hebben vereist; deze hadden simpelweg maar vier verschillende kleuren. Ter demonstratie van het principe leek me vier kleuren daarom dan ook meer dan voldoende.

Continuemeting

Een ander groot voordeel van het kleurmeten met de TCS3472, is dat er geen concreet einde van de meetcyclus hoeft te worden ongescheiden. Dit voordeel wordt echter nog niet optimaal gebruikt in het huidige model. Net als het originele fischertechik model, raakt het model de kluts kwijt als er meerdere objecten dicht achter elkaar op de transportband worden gelegd. De transportband kan hierdoor telkens slechts één kleurobject per keer sorteren.

De snelheid van het systeem zou echter sterk kunnen worden verbeterd als de volgende kleur al zou kunnen worden bepaald voordat het laatste object zijn gewenste kleur-sorteerbakje langs de baan bereikt heeft. In de huidige opzet is dat natuurlijk nog niet mogelijk omdat de uitstoot-schuifjes zich baseren op de laatst herkende kleur en deze ongewijzigd moet blijven totdat de betreffende laser-detector langs de baan signaleert dat het object van de baan kan worden geschoven.

Color sort - Back

Dit zou kunnen worden opgelost met een ‘geheugenbuffer’ voor de volgorde en onderlinge afstanden tussen de kleurobjecten op de baan. Een voorwaarde is dan wel een nauwkeuriger afstandmeting van de door de transportband afgelegde weg. Het oorspronkelijke fischertechik model gebruikt reeds een impulsgever voor de bepaling van de afstand tot de juiste uitstoot-schuif, maar dit alleen maakt gelijktijdigheid op de band nog niet mogelijk. Het is zeker een prikkelende uitdaging om dit proces, bijvoorbeeld door gebruik van een encoder- of stappenmotor, verder te optimaliseren. Wie weet wordt dit project dus in de toekomst nog vervolgd...
 
Het huidige model is in een filmpje op YouTube in actie te zien, hier is ook een filmpje van de originele fischertechnik sorteerlijn 536633 te vinden.

Color sort - Front 2