Je kent ze ongetwijfeld. Van die poortjes bij een supermarkt of bouwmarkt. Je kunt er wel in maar moet via de kassa weer naar buiten. Vaak werkt zo’n poortje met een actieve infrarood sensor. Zodra je je in de straal bevindt gaat het poortje korte tijd open.
Afbeelding: Toegangspoorten (met toestemming van Alrecar B.V. Sprang-Capelle)
Je hebt actieve infrarood sensoren waarbij aan één kant van de doorgang zich de zender bevindt die dus het infrarode licht uitzendt en er tegenover zit dan de ontvanger. Zodra de ontvanger geen infrarood licht ontvangt kan op die veranderde situatie gereageerd worden.
De infrarood sensor van Mindstorms is iets simpeler. De zender en de ontvanger zitten naast elkaar. Het infrarode licht wordt uitgezonden en wanneer er dan iemand of iets zich in die lichtstraal bevindt wordt deze teruggekaatst, opgevangen door de ontvanger en kan er een reactie plaatsvinden.
Wij zullen ons in verband met de eenvoud alleen bezig houden met een infrarood sensor zoals die van Lego (of de HiTechnic NXT EOPD)
Het poortje simuleren we met de Lego-robot. In plaats het openen van een poort laten we de robot kort achteruit rijden, namelijk precies één omwenteling van de voorwielen. Voor het openen van een poort zou je ook een motor gebruiken en deze een korte slag laten maken. Ook zorg je ervoor dat de afstand van de ‘persoon’ (of de poort) tot de IR-sensor op het scherm wordt getoond. Voor dit laatste kun je deze code gebruiken.
'connect IR sensor to port 4 Sensor.SetMode(4,0) 'Set port 4 to mode 0: distance in cm While "True" LCD.StopUpdate() 'to prevent flickering, don't update LCD until text is ready LCD.Clear() LCD.Text(1,45,55,2,Sensor.ReadRawValue(4,0)+" cm") LCD.Update() EndWhile
Met het voorbeeld van de PIR sensor moet het nu niet zo heel moeilijk meer zijn om het toestandsdiagram te tekenen en daarna de code voor deze schakeling te schrijven.
A. Teken het toestandsdiagram en schrijf het programma.
B. Als de infraroodstraal niet meer wordt onderbroken, hoe lang duurt het dan voordat de sensor dit signaleert?
C. Zorg er in het toestandsdiagram en in de code voor dat de robot daarna 5 seconden wacht en dan terugrijdt naar zijn eerste positie.
D. Onderzoek wat het effect is van het wijzigen van de sensormodus in 1, resp. 2.