de IR 'afstands' sensor
(verschenen in robobits nr 14)

In Robobits nummer 2 kwam Henny al met een piep klein schakelingetje voor een infrarood nabijheids sensortje. Dit sensortje werkt op zich goed maar ik had voor mijn eigen toepassingen liever een wat geavanceerdere mogelijkheid om mijn omgeving af te tasten. Een object is met deze sensor immers dichtbij of hij is het niet, er zit geen mate van afstand in de uitlezing. Bovendien is het bereik van dit sensortje maar zo’n 5 cm.

Het sensortje dat Henny gebruikte was de inmiddels wel bekende IS471F. Deze 1 chip oplossing van Sharp is samen met 1 of enkele ir-LED’s alles wat nodig is om een object te kunnen detecteren. Ik vond het om te beginnen belangrijk om het bereik te vergroten. Experimenteel onderzocht ik of mijn probeerseltjes een positief effect op leveren of niet. Als eerste heb ik de LED’s in een reflectortje gestoken, dit had echter weinig effect. Wel kon, met behulp van wat Typ-ex  op de onderkant, het strooilicht van de LED goed tegengehouden worden. Hierdoor was in ieder geval  dat probleem makkelijk opgelost. Ook het gebruik van meerdere LED’s bood geen soelaas, het is erg moeilijk om de LED’s zo te richten dat zijn een overlappend gebied beschijnen.

Daarna heb ik met behulp van een transistortje de stroom door de LED’s vergroot. Het IC stuurt standaard 50mA door de LED’s, door dit op te voeren naar 125mA kon de afstand een heel stuk vergroot worden. Deze stroom is natuurlijk erg hoog voor een LED maar omdat de dutycycle van de uitgezonden puls laag is krijgt hij dit maar kort voor zijn kiezen en zal het dus niet zo’n groot probleem zijn.

Als troef had ik echter een aantal IR-lensjes besteld bij de heer Conrad, waar overigens alle belangrijke onderdelen vandaan kwamen. Deze lens ziet er uit als een half bolletje met een doorsnee van een ruime centimeter. Doordat de lens zo’n groot oppervlak heeft en dit op de sensor bundelt vangt deze veel meer licht. Het resultaat is erg goed te noemen, afstanden van 30 cm of wel meer kunnen bij een goed reflecterend object gedetecteerd worden! Door de lens is het detectie gebied wel veranderd in een smalle bundel, maar hij blijft gevoelig genoeg om alle nabije objecten te detecteren.

Door de eenvoudige transistor schakeling te vervangen met een spanningsgestuurde stroombron kan de stroom die door de LED’s gaat ingesteld worden. Hiermee is het mogelijk om een schatting te doen van de afstand waarop een object staat. Dit is echter geen vaste maat voor de afstand. Een slecht reflecterend object dat dicht bij staat lijkt net zo ver te staan als een goed reflecterend object dat veraf staat. In de praktijk is de afgetaste ‘afstand’ toch redelijk bruikbaar.

De schakeling

Om de gevoeligheid in te stellen wordt gebruik gemaakt van een spanning uit een DAC. Om te voorkomen dat deze DAC een te grote stroom te verweken krijgt heeft elke sensorschakeling deze spanning gebufferd met een emitter volger, T2. Bovendien wordt deze spanning gebufferd met C2 om instabiliteit door hoogfrequente narigheid te voorkomen.

Het schakelingetje met T1 vormt de stroombron. De werking van deze is eigenlijk vrij eenvoudig. R2 en R3 vormen een spanningsdeler. Stel dat de sensor R3 helemaal naar aarde trekt. Dan is de spanning aan de basis van transistor T1 560/560+330 * 5V = 3,14 Volt. Over de emitter staat altijd 0,6 Volt dus over R1 staat 5-(3.14+0.6)=1,25 Volt.

De stroom door deze weerstand is dan dus 1.25/10=125 mA, dit is de zelfde stroom als die door de LED’s lopen!. Nu zou je denken dat de stroom door de basis wel enige invloed zou kunnen hebben, maar deze is veel kleiner als de stroom die door R2 en R3 loopt. Deze heeft dus haast geen invloed en is te verwaarlozen.

Als de spanning die aan R3 aangeboden wordt hoger is wordt de spanning aan de basis ook hoger en wordt dus de spanning over R10 lager. Hierbij neemt de stroom dus af.

De sensor trekt zijn uitgang helemaal naar beneden, diode D1 zorgt er echter voor dat de spanning die aan R3 aangeboden wordt niet lager wordt als de DAC spanning – 1,2 Volt. Dit als gevolg van de emitter overgang in transistor T2 en de diode overgang van D1, beide 0,6 Volt.

Op het eerste gezicht zou dit kortsluiting betekenen, omdat de sensor pootje 4 helemaal naar beneden trekt en transistor T2 omhoog trekt. Echter de sensor heeft op pootje 4 geen open collector uitgang maar een stroombegrensde uitgang. Door diode D1 loop dus de standaard 50 mA waarmee de sensor normaal de LED’s aanstuurt.

Voor diode D1 had ik eerst een standaard 1n4007 gepakt, maar dat deze diode eigenlijk alleen geschikt is voor gelijkrichten bleek wel weer. De korte pieken die ik eigenlijk op mijn scoopje hoorde te zien waren lelijk en breed geworden. Een 1N4148 bleek uitkomst te bieden omdat deze lekker snel en strak schakelt.

Door met de DAC spanning laag te beginnen en op te voeren kan gekeken worden bij welke minimale intensiteit het voorwerp gedetecteerd wordt. Deze intensiteit is een maat voor de afstand van het voorwerp. Hoe lager de spanning, hoe meer stroom er door de LED’s lopen en dus hoe verder het voorwerp is.

Door het toepassen van deze sensor in een robotje met 2 wieltjes kon deze het meest dicht bij zijnde voorwerp vinden en een vaste afstand daarvan verwijderd blijven. Het gevolg is dat hij naar je hand toe rijd, deze kan volgen als je ‘m weg trekt en terug deinst als je dichter bij komt. Verdere programmatuur heb ik op dit moment nog niet ontwikkeld, ik wil eerst een goeie reflectie sensor ontwikkelen voor ‘end of world’ detectie van de tafel en eventuele markeringen (voor bijvoorbeeld een sumo-bot) en het programma moet omgeschreven worden naar assembler omdat de BASCOM implementatie inmiddels aan de 4k limiet van mijn 89c4051 zit.