Algorithme gevraagd voor mijn high-speed detectie systeem.

Ik zou eigenlijk niet weten waarom de oudere data, of een afgeleide in de tijd, interessant zou zijn voor het algoritme; wat voor algoritme zou je daar op los willen laten?

Ik vraag me af of dit niet eenvoudiger en betrouwbaarder op te lossen is met auto-correlatie, maar ook daar heb ik weinig ervaring mee.

Jammer dat de informatie van Robert2411 niet publiek gedeeld mag worden; ik neem aan dat dat komt omdat het eigendom is van een werkgever of zo?

@Robert2411: kun je er iets over vertellen, zonder de details die eventueel geheim moeten blijven?

Op 30 maart 2013 18:18:07 schreef SparkyGSX:
Ik denk dat je beter het verschil kunt pakken tussen elk pixel en zijn (bijna) directe buren, dan heb je eigenlijk al een afgeleide (helling) bepaald. Een geldige detectie zijn een positieve en negatieve piek na elkaar, op kleine afstand.

Een van de mogelijkheden dat Robert mij gestuurd heeft komt idd hiermee overeen. Hiermee ben ik nu verder data aan het vergelijken en simuleren. Het grote voordeel van mijn nuttig laser signaal is dat zijn breedte vrij beperkt en constant is. Zodra er dan een stijgende flank in het signaal voorkomt moet voor een geldig signaal enkele pixels later een duidelijke omgekeerd verloop aanwezig zijn. De laser kan bijna geen signaal geven over meer dan 7 pixels door zijn projectie diameter en het optisch meetsysteem. Dat is een enorm voordeel.

De fout die ik gemaakt heb is om over een bepaalde afstand het gemiddelde te berekenen als basis. Dat is niet juist tov de max 7 pixels goede puls door de laser. Omdat ik nu niet onderzochte of er zowel een positieve als een negatieve flank binnen een beperkte zone voorkwam krijg ik nu detectie bij iedere voldoende sterke flank. Die komen veel voor in felle zon door sterke uitgesproken schaduwen.

Ik denk dat jullie mij hier op de heel goede weg geholpen heb. ik implementeer zo snel mogelijk deze methode en zal die dan vergelijken met de vroegere resultaten.

Hallo Frans,

Ook even deze discussie gevolgd. Als ik het zo bekijk zal hier inderdaad een aardige stukje signaalprocessing nodig zijn om in volle zon er het piepkleine signaal uit te pikken. Misschien een beetje off-topic, maar moest er geen enkele van de voorgestelde methodes lukken, kan je misschien van de nood een deugd maken en juist van het sterke zonlicht optimaal gebruik maken. Mijn oplossing zou er in bestaan om op de data van de linesensor er een contrast detectie algorithme op los laten. Een eenvoudige methode - zeker niet optimaal - zou er in bestaan om van een aantal pixels b.v. de middelste 32 de som van de absolute verschilwaarden van de pixels onderling te maken. Deze som is dan een maat van het aanwezige contrast. Via een ingestelde of eventueel automatisch berekende drempelwaarde kan dan beslist worden de triggering in te zetten. Dus maximum contrast = beeld in focus.

Dit is wat ik bedoel in volgende stukje pseudo code :

//
// Check Contrast in Line Sensor
//
unsigned long contrast Check_Contrast(int arr_size)
{
int i; // loop counter
unsigned long abs_sum; // sum of absolute values

abs_sum = 0; // initialyse sum of absolute values

for (i=1;i<arr_size;i++)
{
abs_sum = abs_sum + abs(line_sensor_data - line_sensor_data[i-1]); // update sum of abs value's
}
return abs_sum; // return sum of absolute values
}

@Arnoldus,
De voorgaande tips die ik gekregen heb zijn heel eenvoudig. Op het einde van iedere scanlijn zou het resultaat reeds bekent zijn. Alle berekeningen gebeuren dan terwijl de pixels binnen lopen. Die afgeleide nemen is enkel een aftrekking, slechts 1 clock tick heb ik hiervoor nodig. Op het einde nog enkele testen en het is klaar.

Ondertussen heb ik hier een simulatie kunnen maken via kunstlicht. Die simulatie toont heel mooi aan waarom mijn huidige methode faalt.
http://farm9.staticflickr.com/8395/8609455304_37790c37a6_c.jpg
patroon2 by fotoopa, on Flickr

Via 1 Kw belichting is hier een schaduw gesimuleert. Omdat ik de gemiddelde uit een deel van een volle scanlijn bereken als referentie komt door die schaduw plots de voorwaarde geldig voor een detectie.

Die voorwaarde was:
waarde op pixel 32 moet minimaal 20 eenheden boven het gemiddelde zijn. Door die schaduw wordt plots de gemiddelde waarde veel lager en voldoet de voorwaarde terwijl die helemaal niet door de laser komt.

Ah, maar dan is het duidelijk: je wilt een opgaande en een neergaande flank zien binnen 8 pixels. Iets wat je volgens mij prima kunt doen door een afgeleide te berekenen, en dan te kijken waar je een grote positieve waarde en een grote negatieve waarde binnen 8 pixels vindt. De x-positie van de piek zou dan precies tussen die twee waardes in moeten zitten.

Dag fotoopa,

Dit idee van deze dubbele afgeleide is inderdaad niet slecht denk ik. Dit wil echter wel zeggen dat je het netto sensorbereik wat inkort (20-tal pixels). Ik neem echter aan dat dit niet echt relevant is.

Ter informatie: In een DCT zou die schaduw zich manifesteren als een hoge waarde in het begin van de array a[1], a[2] en dit onafhankelijk van de locatie van de schaduw. Deze is dan volledig weg als je de waarde op 0 zet of kwantiseert.

Veel succes met het implementeren.

Op 1 april 2013 10:43:38 schreef alex278:
Ah, maar dan is het duidelijk: je wilt een opgaande en een neergaande flank zien binnen 8 pixels. Iets wat je volgens mij prima kunt doen door een afgeleide te berekenen, en dan te kijken waar je een grote positieve waarde en een grote negatieve waarde binnen 8 pixels vindt. De x-positie van de piek zou dan precies tussen die twee waardes in moeten zitten.

Ja dat klopt. Heb ik ondertussen reeds gesimuleerd in excel met een nieuwe test data. De resultaten zijn verbluffend goed en eenvoudig.

Ik heb eerst de afgeleide gemaakt maar met 2 pixels verschil dus x-x2 voor het aftrekken. Dit geeft gezien mijn laser systeem nog betere resultaten. Dan neem ik een afgeleide maar juist omgekeerd dus: x2-x Dit kan ik doen terwijl de pixels binnen gelezen worden. Via een korte shift register kan ik ze vertragen voor de bewerkingen. Met die beide afgeleiden ga ik dan mits onderlinge vertraging de lopende som maken. Zo worden de beide resultaten opgeteld en worden die sommen dubbel zo groot en binnen het geldig venster. Nu kan ik die sommen nog wat bijhouden om ze te onderzoeken in een triggervenster. Is er dan een som waarde die boven een minimale ingestelde ruiswaarde ligt dan heb ik de perfecte trigger. Bij de simulatie werkt het voorlopig perfect. Veel pixels verschuiven moet ik niet, hoogstens zullen er 5 of 6 nodige zijn. Dat wordt geen probleem. Nu nog de verilog code schrijen

@YokoTsuno,

Ja ik heb pixels over langs beide kanten. De array is 128 pixels waarvan ik er normaal nooit meer dan 32 nodig heb in mijn geselecteerd venster. Door het referentie punt van dit venster te verschuiven kan ik de zone voor de juiste trigger via mijn klavier bijregelen. Ook de toegepaste breedte van de triggerzone is instelbaar alsmede het ruisniveau maar ook nog eens de integratie tijd van de sensor. Die integratietijd heeft wel invloed op de scan tijd Maar in volle zon moet die integratietijd zo kort mogelijk staan om saturatie te vermijden.

Update:
Meteen nog een extra foto hoe ik de testopstelling gemaakt heb om de zon te simuleren en een ongewenste trigger te bekomen:

http://farm9.staticflickr.com/8122/8609221193_7c1b81340c_c.jpg
Test setup for detection algorithme C1B9479 by fotoopa, on Flickr

Met die 1000 W halogeen lamp en korte afstand kom het wel wat warm tijdens de testen!

Hiermee kan ik beter opnames vergelijken of de nieuwe algorithmes echt wel beter gaan werken. Nu volop de code aan het voorbereiden. Programatie wordt zo opgevat dat de instelling die invloed hebben op het algorithme via parameter setting gemakkelijk kunnen aangepast worden. Een ringbuffer voor de input sensor data kan hierbij veel helpen.

[Bericht gewijzigd door fotoopa op (18%)]

Resultaat implementatie van het nieuwe algorithme.

Ik heb op basis van de gekregen tips hier in deze topic het algorithme uitgewerkt. Meteen heb ik vele data eerst opgenomen om een simulatie van die opnames te kunnen maken. Het algorithme maakt gebruik van de aangeprezen methode om de afgeleiden te bepalen van het binnen komende sensor signaal. Tijdens mijn simulatie's heb ik gezien dat mijn echt nuttig lasersignaal een zeer konstante vorm heeft en een heel beperkte breedte (aantal pixels signaal 6 tot max 7). Dit komt mij zeer goed van pas tijdens de verwerking.

Hierbij een basis tekening waarop ik de verilog code heb ontwikkeld:

http://farm9.staticflickr.com/8392/8618468891_ce26a5ea41_c.jpg
detector_berekening by fotoopa, on Flickr

Op Flickr staat een hogere resolutie beeld indien gewenst. Ook daarstaat wat uitleg bij maar dit herneem ik hier even:

====================================
Ik maak gebruik van de afgeleide van het sensor signaal terwijl het binnen komt. Bovenaan de sensor data op t0, t1, t2 enz. Deze data wordt telkens bij een nieuwe input doorgeschoven. Omdat ik voor de volgende bewerkingen ook moet aftrekken zijn de waardes als signed voorzien en meteen op de breedte van de eindberekening. Vandaar dat ik de input data tot 10 bit signed maak.

De 2 volgende registers bepalen de afgeleiden maar berekend op een afstand van 2T van elkaar. Door de vorm van het signaal door de laser blijkt na simulatie dit een betere methode dan met 1T verschil. Ik maak zowel de afgeleide voor de positieve als de negatieve flank omdat ik die later ga samentellen met een verschuiving in 2T of 3T samples.

De sum registers zijn die optelling. Het resultaat is dat je eigenlijk zowel de opgaande flank als de verschoven neergaande flank optelt. ik heb hiervoor 2 verschillende sum registers gemaakt eentje voor 2T en eentje voor 3T verschuiving. Bij de simulatie heb ik ondervonden dat voor zwakke signalen van de laser de 2T verschuiving het best werkt. Met 3T verschuiving gaat het beter voor sterkere signalen. Dit komt omdat de basis vorm van het meetsignaal iets breder is bij sterke signalen.

Nu praktisch kan ik selecteren uit 4 detectie methodes.
1. Hier wordt enkel level gebruikt zoals vroeger. Kan niet beter als het omgevingslicht konstant is, dus zonder zon of bij overtrokken weer.

2. sum met 2T verschuiving. Werkt heel goed voor kleine signalen.

3. sum met 3T verschuiving, iets beter voor sterke signalen.

4. sum 2T en sum 3T samen. Dit is iets strenger van voorwaarde bij sterke zon. De meet gevoeligheid zal wel iets lager zijn.

Het geheel is nu afgewerkt en reeds getest.
Binnenhuis met een flits als stoorbron kan ik het verschil enorm goed zien. Level detectie stoort heel snel onder de invloed van het minste flitslicht terwijl de andere standen ruimschoots onderdrukken.

Buitenhuis in de field in volle zon zijn de ongewenste triggers bijna volledig te vermijden. Is er echt veel zon met storingen dan moet ik het level slechts een klein beetje verhogen. Maar echte zon reflectie's op random achtergrond kunnen nog blijvend storen. Daar zijn de stoor signalen dan echt te sterk. Maar praktisch is het nu al heel goed werkbaar. Gelukkig heb ik heel veel parameters om mee te spelen.
Dit algorithme kost mij geen extra reken tijd omdat op het einde van iedere scan lijn de detectie reeds gekent is. De detectie tijd blijft hierdoor op 50 usec.

===================================

De uitleg is een beetje met mijn eigen woorden, je kunt het waarschijnlijk in een wiskundige regel samen vatten. Maar het werkt vrij behoorlijk en vooral het kost mij geen extra vertraging door deze berekeningen. Alles draait binnen de FPGA synchroon met het serieel binnen nemen van de sensor data op 64 MHz. Alle bewerkingen gebeuren dan ook op deze clock zijnde 15.6 ns per add of sub bewerking.

Samengevat:

Het is een grote verbetering, het sluit niet alle ongewenste triggers uit maar het is toch veel stabieler in volle zon. Anderzijds heb ik ook het oude level algorithme beschikbaar die ik vanaf het klavier kan inschakelen. Zodra de zon verdwenen is of als het donker wordt is dit de meeste gevoelige methode.

Vandaag deze soort mug-vlieg opgenomen in volle zon, ze vliegt hier net weg, haar vleugels zijn reeds open en de pootjes zijn net los aan het komen van de achtergrond:

http://farm9.staticflickr.com/8109/8618468979_7fbc3b9bdb_c.jpg
D400386 by fotoopa, on Flickr

Deze hommelkoningin was er heel even maar zodra ze mij in het visier had was ze er weer vandoor.

http://farm9.staticflickr.com/8401/8619575064_8b4d1cf05a_c.jpg
Aardhommel - Bombus terrestris D400366 by fotoopa, on Flickr

Het blijft spijtig zo koud dat ik geen andere beestjes gezien heb. Zelfs de vliegen laten het afweten. Maar volgende week gaan we blijkbaar toch een verbetering hebben, dan volgt de eindtest.
Nogmaals mijn vele dank bij de hulp van de ontwikkeling van dit algorithme!

Frans.

Ik kan alleen maar zeggen dat ik er weer even stil van ben :)

Op 4 april 2013 17:14:33 schreef fotoopa:
ze vliegt hier net weg, haar vleugels zijn reeds open

De foto is zo scherp dat het geslacht te zien was?

Naar aanleiding van deze post in het SYP topic: http://www.circuitsonline.net/forum/view/message/1553703#1553703

Het leek me handiger om daar niet teveel inhoudelijk op in te gaan, maar het in dit topic een beetje bij elkaar te houen.

Op 19 oktober 2013 08:59:08 schreef fotoopa:
[...]De detectie problemen zullen nooit volledig ideaal oplosbaar zijn. Wel wordt de meetgevoeiligheid jaar na jaar verhoogt.
De echte problemen zijn:

- Detectie van een uiterst klein (zwart) snel bewegend object kleiner dan 1mm tot op 0.5 meter focus afstand van de camera lens.
- Het moet ook kunnen werken bij sterk zonlicht (beestjes vliegen liever als het mooi weer is).
- De IR laser moet een heel lage duty cycle hebben. vb 2 usec on, 48 usec off. Hierdoor zien de beestjes minder goed die laserstraal.
- De meetcyclus ( laser on + laser off) mag max 50 usec zijn.
- Er is een bandpass filter nodig afgestemd op de laserstraal. Dit om de invloed van het omgevings licht te beperken.

Ik wist niet dat je de laser tussendoor ook steeds uit zette; gebruik je de data die je in die tijd van de sensor krijgt om de invloed van het omgevingslicht te verminderen? Je zou simpelweg de meetwaarden van de laatste scan zonder laser kunnen neme en die van de scan met laser af kunnen trekken. Je doet dan eigenlijk de aanname dat de invloed van het zonlicht tussen 2 opvolgende scans niet noemenswaardig veranderd (dus ook niet verschuift op de sensor, dat zou wel eens een probleem kunnen zijn). Alleen op de plaatsen waar de laser invloed heeft op de meetwaarde zou je dan een groot verschil tussen die scans moeten zijn.

Je meet met 2 lasers, toch? Misschien zou het zinvol zijn om ze achter elkaar in plaats van tegelijk aan te zetten, zodat je van elke laser een aparte scan hebt. Je zou dan bijvoorbeeld kunnen bepalen of een object in de richting van het focus punt beweegt, of juist er vandaan, als je van de beide scans een detectie op een andere plaats krijgt. Met de voorwaarde dat je een object kunt volgen terwijl het naar het focus punt beweegt, kun je het geheel misschien nog wel wat gevoeliger maken.

Ik heb heel weinig verstand van optica, maar misschien is er een mogelijkheid om de laser door een halfdoorlatende spiegel te laten schijnen, en dat licht op een of andere manier weer te mengen met het licht dat je terug krijgt, als een soort van auto-correlatie filter of zo?

Met een dergelijke constructie van spiegels zou je misschien ook heel selectief in de lengterichting van de laser kunnen meten, waarbij je naar de sensor van de linker laser kijkt terwijl de rechter aan staat, en andersom natuurlijk.

Nog een wild idee: kun je een laser ook gebruiken als een detector, op dezelfde manier als dat je een LED kunt gebruiken als fotodiode? Zo ja, is het ding dan ook selectief op de golflengte en de openingshoek van het inkomende licht?

@SparkyGSX

Oeps ik had deze posting niet gezien...

Even verduidelijken. Ik heb al veel verschillende meetsystemen gebouwd en die zijn soms totaal verschillend van werking. De bedoeling blijft wel steeds hetzelfde. Een zo kleine mogelijk vliegend insect in volle vlucht te detecteren.

Nu eerst de gebruikte systemen wat meer uitleggen:
In deze origineele topic ging het over een line-array detector die werkt op licht in de range rond 700 nm maar gaan ook nog prima voor de groene lasers op 535 nm. Voor IR lasers op 980 nm die ik ook nog heb en die wel schakelbaar zijn, werken deze line-array's niet meer.

Best zou eigenlijk de rode lasers zijn rond de 700 nm maar ikzelf zie niet zo goed rood licht waardoor ik last krijg in volle zon om de laserstraal op een object te zien. Vandaar dat ik die groene laser gebruik van 535 nm. Maar deze groene lasers kunnen niet geschakeld worden. Ik moet ze konstant sturen. Hoewel er 2 groene lasers gebruikt worden is de 2de laser enkel voor mijn ogen opdat ik zou zien waar de beide projectie punten vallen (dit is het focus punt van de camera). Die 2de groene laser is trouwens niet geschikt om een meetsignaal te geven via reflectie op de line array omdat dit gewoon inline staat en niet onderhoek. Opdat hij echter geen storend licht zou projecteren op de line-array wordt die laser iets hoger gericht waardoor dat meetsignaal net te hoog boven de line array komt.

Een ander meetsysteem is er een met een IR laser op 980 nm en een photodiode BPW41N met ingebouwde band-pas filter afgesteld rond de 950 nm. De gebruikte IR laser is hier wel schakelbaar (tot 5 MHz via de voeding). Hierbij gebruik ik nu reeds het aan en uitzetten van die IR laser en meet eerst het omgevingslicht en direct erna het omgevingslicht+IR licht om het verschil te maken. Dat werkt trouwens nu al enkele jaren zo met vrij goed resultaat. Ook bij dit systeem heb ik nog eens afzonderlijk mijn 2 groene lasers maar die maken geen deel uit van het meetsysteem en zijn enkel bedoeld voor de visualisatie. Die 535 nm is sterk onderdrukt door de band-pass-filter bij de BPW41N photodiode. Ook hier staan de groene lasers trouwens een paar mm hoger geprojecteerd zodat ze toch geen signaal zouden geven op de detector.

Deze BPW41N diode was direct gekoppeld aan een Atmega328 ucontroller om de lichtwaarde te bepalen via de ADC. Ook hier een On en Off time ieder 50 us zodat ik weer omgevingslicht en som IR + omgevingslicht kon berekenen. Iedere 100 us had ik dan een signaal om te bepalen of er detectie was of niet.

Nu wou ik die 50us On en 50 us Off tijd wijzigen. Daarvoor moet de eigen capaciteit van de photodiode zo laag mogelijk worden. Dit kan met een gewijzigde schakeling want als de reverse spanning op die diode hoger wordt verlaagd de C waarde behoorlijk en is de stijlheid van het signaal veel beter. Vandaar dat ik nu reeds op 4 us On tijd en 46 us Off tijd kan werken met een veel beter signaal. Omdat er nu minder tijd beschikbaar is voor de ADC convertor heb ik er een snelle ADS7885 bijgeplaatst. Die heeft slechts een acquisitie tijd van 270 ns nodig en kan ik de piek van het signaal snel meten. Het omgevingslicht kan ik nu net voor het einde van de 46us off tijd opmeten waardoor ik nog beter het verschil tussen IR en omgeving bekom. Dat is opnieuw een zeer grote verbetering. Het eerste resultaat staat trouwens hier al:

http://farm8.staticflickr.com/7430/10460412916_d2d5f11a2d_c.jpg
Analog signal of the reflectd IR laser signal. by fotoopa, on Flickr (klickbaar)

Schema: maar is ondertussen iets gewijzigd vanwege bias voor de BPW41N:
http://www.flickr.com/photos/fotoopa_hs/10294651695/

Maar alle problemen zijn nog niet opgelost. Als de zon er is kan het omgevingslicht de versterker satureren. Ik kan dit verhinderen door de meetlens toe te draaien (er zit een diafragma op) maar dan verlaagd ook het IR signaal, dus de totale gevoeligheid gaat naar beneden. Ik zou ook de verstering kunnen aanpassen maar de kleine extra capaciteit die op mijn BPW41N diode komt zorgt weer voor sterke vertragingen. De stroom in de diode ligt rond de 10 uA en de huidige weerstand bij de opamp is 270k. Breng je die veel hoger dan bekom je wel meer signaal voor de zwakke beestjes maar het kan gebeuren dat ik de On tijd moet vergroten door de grotere vertraging van het signaal. Een langere On tijd wil ik nu juist vermijden opdat de beestjes minder snel dit IR meetlicht zouden zien ( want ja beestjes zien IR en vermijden er door te vliegen).

Ik werk nog een oplossingen zoals een mini smd relais voor de instelling van andere weerstanden in de kring, of met een analoge schakelaar (maar weer het probleem van de C) enz. Omdat er momenteel weinig zon is kan ik het omgevingslicht bij sterke zon nog niet nauwkeurig bepalen. Wel heb ik dit vroeger al eens gedaan en daarbij komt de diode stroom tot ver boven de 100 uA. Dit is een zeer hoge waarde tov het nutig signaal die slechts enkele uA bedraagt. Ik zou een soort auto bias systeem moeten kunnen maken die meeloopt met het omgevingslicht opdat het omgevingslicht de versterker niet zou satureren en toch een hoge versterking bied om de kleine toename van het IR licht door het beestje toch te kunnen detecteren. Maar dit betrouwbaar maken is niet zo eenvoudig. S'avonds als het donker is heb ik al deze problemen niet want er is geen meetbaar IR licht van het omgevingslicht.

Meten met 2 lasers heb ik nog niet in detail nagezien. Hier kan wel iets inzitten. Wel moet rekening gehouden worden dat de lasers naast elkaar moeten staan en daardoor een verschuiving projecteren. Of die niet te groot zou zijn moet even berekend worden. Met de line-array was richting bepalen vanzelfsprekend. Die kon je afleiden uit de belichte pixels. Met 1 diode kan ik enkel met de level rekenen. Richting kan ik er niet uit bepalen tenzij het te laat is (signaal loopt op en dan weer af zonder aanduiding naderen of verwijderen)

Ik zoek dus een oplossing voor het sterke zon licht overdag. Die zorgt voor een BPW41N stroom die zelfs boven de 100 uA gaat terwijl het nuttig signaal ergens rond de 0.1 tot 10 uA max bedraagt. Er moet een oplossing gevonden worden om bij sterk zonlicht (boven de 100 uA in de diode) toch de volledige range van de opamp van 0.1 tot 3V output te kunnen gebruiken. Ik zoek een oplossing in de richting van instellen van de versterker in functie van gemeten zonlicht. Er is voldoende tijd in de order grote van 10-20 usec om dit te meten en een nieuwe meting uit te voeren met de aangepaste instellingen. ik denk hierbij aan sample en hold chips, ook eventueel DAC chip voor het instellen van de meetlevels. Alles moet binnen een cyclus van rond de 50 us kunnen behandeld worden. Na iedere cyclus moet een nieuwe instelling berekend worden om de gewijzigde toestand van het zonlicht te beheren. Ik stuur alles via een FPGA controller, berekenen en uitvoeren is binnen deze tijd geen probleem.

Samengevat:
Het aandeel IR laser signaal ligt tussen 0 en 10 uA en moet 50% van de opamp range kunnen weergeven (ongeveer 2.2V variatie naar de ADC7885).
De waarde van het omgevings licht kan schommelen tussen 0 en 100 uA op de BPW41N.
S'avonds is het omgevingslicht = 0 uA en mag een afzonderlijke instelling hebben.
Een meet- en regel cyclus is max 50 usec. Maar indien nodig kan een meet cyclus van het omgevings licht en de bijhorende regel cyclus verlengd worden met max extra 50us.
Het IR laser signaal mag max 4 usec On , min. 46 usec Off staan.
Ik beschik over meerdere OPA380 chips en ADS7885 ADC convertors. sample en hold ic's moet ik eventueel nog aankopen alsook analoge switches. Gezien ik toch nog nieuwe bestellingen moet maken bij Mouser is dit geen probleem.

En je detectiesignaal moduleren, zeg maar zoals die tv infraroodontvangers werken?

Het probleem blijft vooral buiten op witte oppervlakte waar de zon direct opvalt. Ook struiken waar waterdruppels opliggen kunnen heel sterke zonnestralen weerkaatsen, daar zit enorm veel IR licht in en het veranderd constant als je beweegt. De moeilijkheid is om het IR licht van een heel klein object toch te kunnen meten. Een enkele puls met een duur van 4 usec moet dit kunnen. In de schaduw of bij bewolkte hemel werkt dit nu al perfect. Alle infrarood ontvangers zijn veel te traag omdat die een regelsysteem nodig hebben voor hun gain regeling. Mijn probleem blijft nog enkel het omgevingslicht op de opamp te kunnen beheersen omdat die minstens factor 100 tot 1000maal sterker is dan het nuttig meetsignaal.

Nu werkt het al zeer goed omdat ik de totale lichthoeveelheid bij zonlicht beperkt via het diafragma op de meetlens maar dit is ten koste van de gevoeligheid. Resultaat is dat de beestjes iets groter moeten zijn, enkele mm, en liefst niet volledig mat zwart omdat dit het IR licht minder weerkaatst.

Ik zoek eigenlijk een oplossing hoe ik de input moet kunnen instellen opdat het omgevingslicht de opamp niet in saturatie brengt. Ik denk dat het meten van het omgevingslicht net enkele us voor het meten van het IR laser signaal en hierna de opamp instellen een oplossing moet kunnen brengen. Er is toch 46 us tijd voor deze meting en regeling uit te voeren, daarna gaat de laser aan gedurende 4 us en moet het gereflecteerd signaal kunnen gemeten worden.

Ik zou graag verder werken op basis van dit schema aangevuld met een regeling:

http://farm8.staticflickr.com/7391/10294651695_f6ed4c7c9e_c.jpg
IR detector opa380 + ADS7885 by fotoopa, on Flickr

Schema is iets gewijzigd, de BPW41N heeft een extra -5V bias om de eigen capaciteit te verlagen en de componenten met een * zijn niet allemaal bestukt. R12 is weggelaten en R5 is 270k.

Ik neem aan dat je weet dat zwart niet perse zwart is voor infrarood?
Een voorbeeld:
http://robert.nedslack.nl/bloemetjesbroek.jpg
Voor het normale oog ziet die er gewoon donkerblauw uit.

Ja dat de gewone te traag zijn geloof ik, maar die maak je dan zelf. Het gaincontrol systeem hoeft niet supersnel te zijn toch?

Heb je al geexperimenteerd met een polarisatiefilter? Je laser is waarschijnlijk wel gepolariseerd, zonlicht willekeurig, dus je filtert de helft er al uit. En je insecten zijn niet 'metalig' denk ik, dus zullen in dezelfde polarisatie reflecteren. Reflecties van auto's en 'moderne' ruiten heb je neem ik aan niet zo'n last van.

En hoe zit het met het andere eind van het spectrum? Misschien hebben ze minder last van (near)UV?

Ja ik heb al heel wat zwart gemeten. Er is daar idd heel veel verschil in. Ik heb verschillende testkaartjes gemaakt die mij een idee geeft van het gereflecteerd signaal. Die BPW41N heeft trouwens een zeer effectieve bandpass filter. Polarisatie filters heb ik nog niet getest. Ik heb er wel liggen, die test zou ik nog kunnen uitvoeren.

De veranderingen van het omgevingslicht kunnen wel degelijk heel snel verlopen door het object zelf. Denk maar eens als je zou op een barcode je laser richten. Die zou mits een kleine beweging van je camera direct de invloed van je streepjescode weergeven. De laserstraal is ongeveer 4x2.5mm in de geprojecteerde meetzone. De optische lens projecteerd deze laser dan op de photodiode en leverd daar een gefocuseerd iets die nog fijner is, ergens tussen 0.5 en 1mm door de lens verhoudingen. De meetlens staat dus scherp geprojecteerd op de ontvanger en die afstand is constant in de opstelling.

De onderzijde, naar het UV toe wordt nog beter waargenomen door de insecten. Trouwens er wordt heel veel UV licht gebruikt om ze juist te lokken zoals bij nachtvlinders. Ik gebruik daar licht voor rond de 350-400 nm. Als laser is dit bereik zeker niet interresant.

Het liefst zou ik de laserstraal beperkt houden tot pulsen tussen 2 en 4 usec met een Off tijd tussen 40 en 100 usec. Meet cyclusen boven de 100 usec beginnen langzaam te worden. Veel tijd voor een auto gain blijft er niet over. ik zou liever van iedere cyclus de omgeving en IR meten die zo dicht mogelijk bij elkaar horen. Dan moet de kans op afwijkingen het laagst zijn.

Met een aan-tijd van 4us zit je op een frequentie van 125kHz, als we voor het gemak even aannemen dat je 50% pulsbreedte zou gebruiken, om even een gevoel te krijgen bij de orde van grootte. Ik snap dat je geen 50% pulsbreedte gebruikt, en de werkelijke frequentie 20kHz is, maar daar gaat het niet om.

Volgens mij wil je niet perse 4us aan en 46us uit, maar wil je een pulsbreedte van 12.5% of minder, zodat de gemiddelde intensiteit lager wordt, en de insecten de laser niet of minder goed zien.

Ik vraag me af of je die maximale intensiteit (12.5% bij het huidige vermogen) wel onder alle omstandigheden moet vasthouden; ik kan me zo voorstellen dat de insecten bij sterk zonlicht die laser ook minder goed zien, en dat je in dat geval ook een sterkere laser zou kunnen gebruiken, of een grotere pulsbreedte, zonder daar last van te hebben.

Polarisatiefilters lijken me op zich wel een goed idee, aangezien je daarmee het zonlicht relatief veel sterker verzwakt dan de laser, als het goed is, en aangezien die ook gebruikt worden voor normale fotografie, zou ik verwachten dat ze niet bijzonder kostbaar of slecht verkrijgbaar zijn, en geen grote optische problemen zouden introduceren.

Wederom, ik heb weinig verstand van optica, maar ik denk dat je met zo'n polarisatiefilter maximaal een factor 2 kunt winnen in de signaal/ruis verhouding, toch? Kun je zo'n filter op een of andere manier meer of minder stijl maken (bij de productie ervan, bedoel ik), of is de mate van demping altijd min of meer evenredig met de cosinus van de hoek tussen het inkomende licht en de richting van het filter?

Als de pulsfrequentie nog flink omhoog zou kunnen, zijn er misschien nog wel andere trucjes uit de digitale signaal bewerking toepasbaar, maar ook dat is niet bepaald mij expertise. Ik krijg de indruk dat Robin91 en Druiloor daar meer verstand van hebben, of misschien zijn er nog wel andere mensen aanwezig die daar een duit over in het zakje willen doen. Ik denk dan aan iets in de trant van een (auto-)correlatie, eventueel in combinatie met een frequentie sweep van de laser, waarbij je dus steeds bewust een bepaalde frequentie opwekt, en dan min of meer met een bijzonder scherp softwarematig filter die specifieke frequentie weer uit het meetsignaal haalt.

Zou het mogelijk zijn om wat metingen te doen met hoge samplerates, zodat we die kunnen analyseren? Ik denk dat een goed beeld van het frequentiespectrum daarvan heel nuttig kan zijn.

Ik zou eigenlijk verwachten dat de verstoring redelijk breedbandig en niet bijzonder herhalend is, als het gaat om reflecties door druppels en andere oppervlakken.

Heb je enig idee tot welke frequentie je met de bestaande laser zou kunnen gaan? De fotodiode lijkt op dit moment blijkbaar een beperkte factor, maar aangezien er met met veel hogere frequenties gecommuniceerd kan worden via glasvezel kabels e.d., bestaan er duidelijk wel veel snellere exemplaren. Ik kan me wel voorstellen dat de gevoeligheid daarvan misschien weer veel lager ligt of zo, zodat het product van de gevoeligheid en bandbreedte min of meer gelijk blijft. Wederom is bovenstaande voornamelijk bedoeld om mensen die meer verstand van en ervaring met deze materie hebben uit te dagen hierop te reageren, ik heb er geen verstand van en blaat hier ook maar wat in de rondte.

Op 26 oktober 2013 13:42:14 schreef SparkyGSX:Volgens mij wil je niet perse 4us aan en 46us uit, maar wil je een pulsbreedte van 12.5% of minder, zodat de gemiddelde intensiteit lager wordt, en de insecten de laser niet of minder goed zien.

Ja dat klopt! Een nog lagere pulsbreedte zou ik nog beter vinden.

Ik vraag me af of je die maximale intensiteit (12.5% bij het huidige vermogen) wel onder alle omstandigheden moet vasthouden; ik kan me zo voorstellen dat de insecten bij sterk zonlicht die laser ook minder goed zien, en dat je in dat geval ook een sterkere laser zou kunnen gebruiken, of een grotere pulsbreedte, zonder daar last van te hebben.

Dat zou kunnen overdag maar het systeem moet ook s'nachts werken en dan blijft nog enkel de IR laser over. Juist hierin vliegen hebben ze niet veel goesting. Ze draaien rondjes rond de laserstraal maar je krijgt niet zo snel een trigger. De kans verhoogt voor vb kleine muggen. Die vliegen meer in groep en dan is er wel altijd eentje die zicht laat vangen.

Polarisatie filters bij fotografie werken zeer goed op voorwaarde dat je die heel juist afsteld tov het ongewenste licht. Ook dit licht kan sterk veranderen van richting. Voor deze toepassing zou je enkel kunnen regelen dat het IR licht geen nadeel heeft maar hoeveel de onderdrukking uiteindelijk zal zijn voor zonlicht kan je niet bepalen. Vooral het is een mobiele fotografie, je beweegt in alle richtingen.

Als de pulsfrequentie nog flink omhoog zou kunnen, zijn er misschien nog wel andere trucjes.
Heb je enig idee tot welke frequentie je met de bestaande laser zou kunnen gaan? De fotodiode lijkt op dit moment blijkbaar een beperkte factor.

De laser mag ik schakelen tot 5MHz volgens de specs, dat zou 100ns On/Off zijn maar de beperking ligt idd in de huidige BPW41N. Die bezit te veel capaciteit. Met een extra -9V reverse spanning heb ik die C waarde duidelijk lager kunnen trekken en dit resulteert in een veel steilere kurve. Vandaar dat ik nu na 4us reeds meer dan 70% van het max signaal bekom. wil je meer signaal dan is dit ten koste van veel meer tijd door de RC constante. Wordt bekomen door die 270k en rond de 20pf of meer van de diode.

De keuze van de BPW41 ligt vooral bij de ingebouwde bandpass filter voor IR rond de 950 nm. Die filter is zo goed dat de onderdrukking van de rest van het omgevingslicht uitstekend is terwijl er in de bandpass toch een heel hoge stroom tot 40 uA ontstaat. Pindiodes zijn veel sneller maar geven beduidend minder stroom en hebben normaal geen bandpass filter.

Mijn huidige testen geven aan dat ik tot 2us On tijd kan gaan zonder te veel van het signaal gedeelte te moeten missen. Opvallend is ook dat na het uitschakelen van de IR diode er nog een tijd nodig is (eigenlijk dezelfde tijd) om te ontladen. Maar praktisch is die ontlaattijd zelfs nog wat langer. Het zou nu wel mogelijk zijn om vb enkel korte bursten te geven met 4-6 us en dan een langere wachttijd om op het einde de echte omgevingstijd te bepalen. Met burst mode zou je minder kans moeten hebben op ongewenste triggers door een plotse piek en kan je idd mogelijk mits een algorithme meer zekerheid berekenen voor de echte detectie.

Ik heb zopas even kans gekregen om met de nieuwe opstelling te meten met redelijk wat zon direct op het wit testblad. Nu zie ik dat de zon minder invloed heeft dan ik eerst afzonderlijk had gemeten met een BPW41N in mijn losse hand in volle zon. Nu deze in het lens systeem ingebouwd zit is er betere afscherming en bundeling met perfecte focus. Voorlopig meet ik slechts een ambient van 0.5V terwijl mijn laser signaal er nog 2V bovenop gaat. In de zomer zal die zon nog wel stukken hoger zijn maar ik vermoed dat het toch minder probleem gaat vormen dan eerst gedacht.

De BPW41N zit ingewerkt in een alu blokje met slechts een klein gaatje aan de voorkant die het IR licht moet doorlaten. Niet het volledige oppervlakte van de diode is zo beschikbaar. Zo wordt de meting nauwkeuriger (projectie verschuift sneller bij diepte verandering van de laser op het object).

Maar verder werken op burst pulsen in de meting zou best nog betere resultaten kunnen geven.

Hierbij de meetopstelling:

http://farm6.staticflickr.com/5529/10492515873_f095d1ed86_c.jpg
PA269182 by fotoopa, on Flickr

Ik gebruik een extra denano FPGA boardje om de laser te sturen tijdens het testen. De kleine picoscope en de LA helpen mij tijdens de metingen.

Ik ga zeker nog metingen kunnen doen maar dat zal slechts binnen enkele weken zijn. Tussendoor moeten we ook nog gaan fietsen!
Op de FPGA board zit al een programma die 64 Kb aan data kan verzamelen en dan doorsturen naar de PC voor analyse. Die resultaten zijn voor halfweg november voorzien.

Zo'n fotodiode laat zich, verwacht ik, redelijk modelleren als een stroombron met een condensator parallel, of niet? Ik zou verwachten dat de capaciteit van de diode min of meer buiten spel gezet kan worden door ervoor te zorgen dat de spanning erover niet veranderd; immers, met een constante spanning over een condensator loopt er geen stroom door. Misschien zou je iets dergelijks kunnen doen met een opamp, waarbij je de stroom meet die de opamp moet leveren of opnemen om de spanning gelijk te houden; die stroom zou gelijk moeten zijn aan de stroom die de fotodiode zelf levert, lijkt me.

Oei dit kan ik niet direct plaatsen, analoog is echt niet mijn beste kant. Maar eens een tekening begrijp ik het wel beter. Ik heb nog wat opties op mijn testprintje om het gedrag van de opamp wat aan te passen.

Ondertussen heb ik de timing van de laser wat aangepast. Nu gaat het 4-6-4-6-4-26 us total dus 50us met 3 On bursten elk 4us. Ik zie dat de ontlading tussen de pulsen met die 6us rust niet volledig gedaan is waardoor de volgende pulsjes lichtjes oplopen. Na de langere rustpause zit ik dan wel terug op het zwart niveau. Hierbij een printout:

http://farm8.staticflickr.com/7415/10493436064_d07bdfc959_c.jpg
IR_detector by fotoopa, on Flickr

Ik gebruik hier een wit oppervlakte waardoor de gereflecteerde signalen heel sterk zijn. In de field tracht ik de detectie al in te stellen op 6 eenheden boven de ambient bij een ADC van 8 bit met een range tot 5V. Dit zou dan zijn vanaf 117 mV boven ambient licht. Hier is de max ongeveer 1500 mV hoger!
Burst mode zou zeker de betrouwbaarheid van de meting verhogen. ik weet immers die juiste timing en praktisch moeten de 3 bultjes voldoen aan een minimum ingesteld level. Natuurlijk wordt de IR intensiteit weer hoger door de 3 burstjes. ik zou eventueel de rustperiode nog wel wat kunnen verlengen zodat de totaal tijd rond de 70us komt. Hier is de meetperiode eigenlijk maar 24us. in deze korte tijd kunnen de beestjes zich nauwelijks bewegen zonder opgemerkt te worden. Ik kan wel de tussenliggende zwart niveaus ook meten. Mijn ADC7885 is voldoende snel om de data door te sturen naar de FPGA.

Ondertussen ook eens gemeten op mat zwart papier object. Dit is een van de moeilijkste objecten. Hierbij heb ik nog een level van 215mV en zou detectie geven. Dit zonder zonlicht. De vorm van het detectie signaal is volledig gelijk, enkel het level is lager.

Update:

Ik heb ook even een polarisatie filter getest maar dit blijkt weinig resultaat te geven. Een globale kleine verzwakking is het resultaat van het lasersignaal terwijl verdraaien aan de lens voor de polarisatie geen merkbaar verschil geeft.

Een HOYA IR R72 doorlaatfilter geeft een heel kleine verzwakking, nauwelijks zichtbaar. Wat logisch is, de 980 nm valt volledig binnen zijn doorlaat.

Wat voor polarisatiefilter gebruikte je? Ik neem aan dat het filter van die fotodiode een simpel kleurfilter is, maar anders zou een circ. pol. filter roet in het eten kunnen gooien.
Overigens is volgens mijn datasheet de BPW41N ook een pindiode? Je kunt sowieso de reverse spanning verhogen en dan zit je nog maar aan 10pF

Misschien staar je je blind op de fotodiode. Je hebt ook InGaAs fotodiodes, met hele mooie rise/fall times. Gevoeligheid 900-1700nm. Doordat hij al boven de 900nm begint filter je al een hele hoop weg.
Verder kun je nog een band-pass filter plaatsen. Bijvoorbeeld zoiets: http://www.ebay.com/itm/New-stop-380-780nm-visible-RGB-pass-810-980nm-…
Of een van de meer gerenommeerde bedrijven (maar dan zit je al snel boven de 60 euro).

Of: Plaats een 2e diode tegen de huidige diode, omdat die buiten focus zit zal hij een goede indicatie geven van het achtergrondniveau denk ik. Kun je natuurlijk ook segmented fotodiodes nemen ;)

Op 26 oktober 2013 22:42:46 schreef pe5ocb:
Wat voor polarisatiefilter gebruikte je? Ik neem aan dat het filter van die fotodiode een simpel kleurfilter is, maar anders zou een circ. pol. filter roet in het eten kunnen gooien.

Ik heb een cokin W.A.Circulair Pola filter 62mm. Die gebruikte ik vroeger veel bij mijn gewone fotografie. Je kon hem correct verdraaien tot je het gewenste effect had. Door ramen fotograferen of fotokaders waar glas voor stond werkt dit uitstekend. Voor mijn huidige meetlens zou die niet praktisch zijn, die lens is slechts 30mm.

Overigens is volgens mijn datasheet de BPW41N ook een pindiode? Je kunt sowieso de reverse spanning verhogen en dan zit je nog maar aan 10pF

Dat heb ik idd al gedaan. Het online schema is nog niet aangepast maar ik gebruik nu al een extra -9V voor die reverse spanning. De capaciteit verlaagd idd behoorlijk met veel betere resultaten als gevolg. 10 pf zal het nog wel niet zijn eerder rond de 18 a 20 pf. Ik vraag me trouwens af of het de moeite zou zijn een nog hogere spanning te gebruiken. De capaciteit blijft wel verlagen maar veel minder. Om die negatieve spanning te maken moet ik een afzonderlijk spanningsdeeltje bijplaatsen. Dit zou kunnen met een gescheiden DC/DC blokje van 5/12v of 5/15v. Bij 5v negatief kan ik gebruik maken van de eenvoudige "switched-capacitor voltage convertors" en die kunnen direct ingebouwd worden bij de detector in de lens. die zijn echter beperkt tot -5v.

Misschien staar je je blind op de fotodiode. Je hebt ook InGaAs fotodiodes, met hele mooie rise/fall times. Gevoeligheid 900-1700nm. Doordat hij al boven de 900nm begint filter je al een hele hoop weg.

Ik heb al de hele lijst afgelopen bij "Mouser" Er zijn er idd die veel sneller zijn met minder Cap maar doorgaans is de stroom dan ook veel kleiner waardoor je meer moet gaan versterken om de range van 5v te bekomen. Dan verlies je daar weer. Er zullen wel andere betere zijn maar voorlopig zie ik nog niet veel betere. Ik zoek echter hier nog naar andere types. Die kan ik bij mijn volgende bestelling bijnemen. Normaal bestel ik 5 of 10 stuks per diode. Zo kan ik nog selecteren en moet ik mijn testprintjes niet direct gaan afbreken.

Verder kun je nog een band-pass filter plaatsen. Bijvoorbeeld zoiets: http://www.ebay.com/itm/New-stop-380-780nm-visible-RGB-pass-810-980nm-…
Of een van de meer gerenommeerde bedrijven (maar dan zit je al snel boven de 60 euro).

Via ebay bestel ik niet. ik weet, het is een idee fix maar dit blijft zo. Wel heb ik al speciale filters besteld bij "Edmund Optics" in England. Daar hebben ze vrijwel alles maar idd vrij duur. Het probleem is als je een heel smalle bandpass filter besteld dat die 100% moet kloppen met je laser. Zo had ik een filter bestel voor 850 nm -+ 10nm maar die bleek toen toch niet te kloppen met mijn gekochte laser die normaal 855 nm moest zijn. Dat kun je zelf niet zomaar meten maar je bent wel 70 euro kwijt. Die filter ligt nu in mijn kast bij "ongebruikte onderdelen".

Of: Plaats een 2e diode tegen de huidige diode, omdat die buiten focus zit zal hij een goede indicatie geven van het achtergrondniveau denk ik. Kun je natuurlijk ook segmented fotodiodes nemen ;)

Dan kan ik evengoed iedere keer direct voor de IR puls het omgevingslicht meten. Die zou nog beter overeenkomen met het object omdat het dezelfde plaats is. Trouwens op mijn LCD display zullen beide waarden afgebeeld worden. De meest eenvoudige oplossing is dan gewoon het diafragma van de meetlens iets toedraaien tot er geen saturatie meer is. S'nachts mag die altijd volledig openblijven, ambient licht is er dan gewoon niet.

Mocht je betere pindiodes vinden dan hoor ik het graag. Ik bestel dergelijke componenten altijd bij "Mouser", de vrijdag namiddag besteld, de maandag voormiddag thuis geleverd. Ik maak altijd bestellingen rond de 100 euro, vanaf 65 euro is de levering gratis.

Ik zoek nog oplossingen voor een hogere negatieve spanning te maken (voor -5v heb ik al een chipje gevonden met enkele caps er rond) maar dit mag niet groot zijn en liefst geen storende switched mode die weer instraalt op de detector. Andere pindiodes eventueel ook maar ze moeten geschikt zijn voor mijn bestaande IR lasers die werken op 980nm want die kan ik schakelen tot 5MHz en niet alle lasers laten dit toe. De meeste IR diodes werken wel rond de 940 nm en hebben een daylight ingebouwde filter. Die passen nog net in de doorlaat.

Ondertussen heb ik het aangepaste schema online geplaatst:

http://farm3.staticflickr.com/2823/10508191515_ccda8e0fa1_c.jpg
detector-BPW41N-OPA380 by fotoopa, on Flickr

Ik denk ook nog om een IR lichtbundel te maken op 940 nm met meerdere IR leds zoals de Mouser nummer "782-VSMB2000X01" Ik zou 10 van deze diodes willen in een cirkel plaatsen en er een lichtbundel mee maken eventueel met nog een lensje ervoor om nog smaller te bundelen. Met dit soort IR licht denk ik grotere objecten op langere afstand te kunnen detecten. vb hiervan zouden aanvliegende vogels zijn die in de winter komen eten aan een ophangend voederbakje. Camera en meetsysteem moeten niet noodzakelijk een geheel zijn, het meetsysteem wel. Anderszijds kan ik zo een lichtbundel gebruiken voor ambient simulatie bij mijn huidige high-speed macro beestjes.

Update:

Nog even getest met een reverse spanning van -18v maar de verbetering tov -9v is minimaal. praktisch niet echt de moeite om tot die hogere reverse spanning te gaan. -9v voldoet ruim.

Op 25 oktober 2013 19:23:46 schreef pe5ocb:
En je detectiesignaal moduleren, zeg maar zoals die tv infraroodontvangers werken?

Ik heb hierover nog even nagedacht. Daar zit iets in. Nu ik zie dat ik kan werken met pulsen tot 2us ON/OFF moet dit gaan. Nog even kijken of ik ac kan koppelen zodat de tragere omgevings invloed toch niet doorkomt en geen saturatie geeft. Maar eerst even enkele dagen gaan fietsen, de wind zit mee, zeker morgen.

Edmund had ik juist van in de catalogus zitten bladeren ;) Het mooiste zou een laser-line bandpass zijn, maar dan moet je inderdaad zeker zijn van je lasergolflengte, plus die dingen zijn erg duur.
Een gewoon bandpass interferentiefilter is er weer niet met 980nm als center golflengte.
Heb je niet een universiteit in de buurt zitten? Dan zou je namelijk even het spectrum van je lasers kunnen laten meten, dat zullen ze vast wel doen. Zeker als je je opstelling laat zien ;)
Ik studeer zelf in Delft en heb daar ooit voor m'n HBO ook stage gelopen, dus ken wel wat mensen daar. Zo heb ik ook mijn lasers laten doormeten. Heb zelf helaas nog geen (werkende) spectrometer ;)
Je hebt overigens ook genoeg leveranciers in Nederland, zoals http://www.acalbfi.com en http://www.laser2000.nl/ Bij de laatste kun je in ieder geval alles uit de thorlabs catalogus bestellen.

Als je geld teveel hebt kun je ook eens kijken naar een spectrometer van http://www.oceanoptics.com/ Of een tweede handsje.
Maar allicht heeft een van de leveranciers wel een demo exemplaar dat je kunt lenen/huren.

Hoezo verlies je als je moet versterken? Ik ben niet anders gewend dan versterken. En er bestaan genoeg snelle opamps.

Dan kan ik evengoed iedere keer direct voor de IR puls het omgevingslicht meten. Die zou nog beter overeenkomen met het object omdat het dezelfde plaats is. Trouwens op mijn LCD display zullen beide waarden afgebeeld worden. De meest eenvoudige oplossing is dan gewoon het diafragma van de meetlens iets toedraaien tot er geen saturatie meer is. S'nachts mag die altijd volledig openblijven, ambient licht is er dan gewoon niet.

Is je diafragma uberhaupt niet gewoon te groot? Of heb je misschien last van strooilicht? Ik zie op een van de eerste foto's dat je er al een zwarte tube omheen hebt zitten.
Wat zit er precies in de ontvangopstelling?
Waar zitten de lenzen/de lens en waar het diafragma?
Je zou namelijk een pinhole voor je fotodiode kunnen plaatsen. Zodat wanneer je een afbeelding maakt van je meetpunt, slechts het meetpunt doorkomt.
Overigens is een glasvezel daar ook heel geschikt voor (single-mode vezel dan).

Grotere negatieve spanning zou ik zelf gewoon met 2 negen volt batterijen doen, maar weet even niet meer wat voor stroom er door die diode gaat.

Geen idee wat ik verder vergeten ben, was gisteren begonnen aan de post maar moest toen weg ;)

/edit:
Ah ik zie je update. Qua capaciteit zou -18 volt toch bijna een factor 2 moeten verschillen.

Je kunt inderdaad AC koppelen, of dmv autocorrelatie.

Dank voor de verschillende tips!

Ik ben nu op fietsvakantie in Cochem, internet is hier enorm traag.
Nee zoveel uitgeven om de laser te kunnen meten zit er niet in. Vroeger zou dit wel gegaan hebben ik heb nog werken gedaan voor xray machines en detectie van vreemde objecten in voedings flessen voor baby's. Toen was daar ook een volledig lab voor allerlei lasers. Ondertussen is dit gedaan, het is ook al 10 jaar geleden. Nu ben ik al 9 jaar op "rust".

De opamp is niet direct het probleem, een OPA380 is daarvoor ideaal maar het is vooral de diode capaciteit die de RC constante bepaald. Heb je een hogere versterking dan is die weerstand hoger en de stijlheid slechter.

Ik heb idd in de testen 2x een 9V batterij gebruikt. Praktisch zou dit ook kunnen in de field omdat de reverse stroom door de diode heel klein is en zeker als er weinig licht is. Het is zeker een goedkope oplossing.

De meetlens is een lens uit de oude vergroters inclusief diafragma. ze zijn zeer goed van kwaliteit voor deze toepassing. Binnen in de ruimte is er een zwarte koker geplaatst zodat er geen licht verstrooing kan plaatsvinden anders wordt idd het IR licht langs alle kanten weerkaatst. Die zwarte tube aan de buitenkant is om de achterkant van de onvanger volledig af te schermen. De minste lek geeft idd strooilicht en geeft valse waarden.

Die pinhole is er al aanwezig. Er is slechts een klein gaatje van 2 mm net voor de diode, de rest is afgesloten door een alu behuizing. In de nieuwe opbouw zou ik een vertikale spleet voorzien die in afstand regelbaar is. Horizontaal zou dit optimaal kunnen ingesteld worden want dat bepaald de detectie resolutie van de projectie. Je ziet al deze factoren zijn reeds in rekening gebracht.

Ik ben nu een weekje in verlof, tijd om alles eens op een rij te plaatsen (ideaal om te dromen tijdens het fietsen hier in de moezel streek met hellingen tot 10% maar met de E-bike gaat het prima!). Volgende week start ik nieuwe metingen.

Update:
E-bike getest op helling tot 15% over lange afstand. oef, die energie hadden we nodig om toch aan 10km/h naar boven te kunnen rijden. Maar het is ons gelukt. Het was een tochtje van 40km maar niet alles aan die grote helling!

Terug thuis uit fiestvakantie zijn we weer aan de slag gegaan. Het schema is bijgewerkt, er is nu een ac koppeling tussen de BPW41N en de opamp waardoor de invloed van het zonlicht vermeden wordt. Nu is ook de versterking opgetrokken zodat zelfs volledig zwarte objecten een zeer mooi signaal afgeven. Ik ga nu 6 x samplen, 3x de high levels en 3x de low levels. Som van de high levels optellen en aftrekken van de som van de 3 low levels. Als dit resultaat een bepaald niveau overtreft is er een detectie. De meetcyclus is beneden de 50 us.

Schema:

http://farm4.staticflickr.com/3796/10646050006_bef2bae679_c.jpg
opa380_neg_v2 by fotoopa, on Flickr

Metingen op een zwart object:

http://farm6.staticflickr.com/5471/10646050136_c2b674c9cf_c.jpg
opa380_wave by fotoopa, on Flickr

Voor die negatieve spanning moet ik nog een oplossing zoeken. Testen zijn gedaan met een 9V batterij. In de field zou ik dit ook kunnen gebruiken omdat er nauwelijks stroom vloeit. Ofwel vind ik een goede switched-capacitor voltage convertor. Voor -5v zijn die zeer eenvoudig en klein maar voor vb -12v heb ik nog geen gevonden. Kleine gescheiden dc-dc convertors zijn er wel maar die zijn meestal niet stabiel als er geen minimale stroom vloeit. De nodige stroom is lager dan 1mA.

Nog even een laatste stand van zaken.
Er zijn heel wat nieuwe testen gedaan. Via een dremmel en een rotor met 2 uiteinden elk 5mm breedte heb ik vliegende beestjes gesimuleerd aan een vliegsnelheid van 90 km/uur waarbij de oppervlakte 5x5mm is die voorbijkomt en dit met een zwart oppervlakte (wit geeft veel meer signaal).

Een foto van de opstelling:

http://farm4.staticflickr.com/3744/10755474944_77338c9461_c.jpg
Detector test with rotor_blade. by fotoopa, on Flickr

Het meetresultaat is hier te zien:

http://farm3.staticflickr.com/2825/10759086075_f5d8b593cf_c.jpg
roto_blade_max_speed 12000 tr:min by fotoopa, on Flickr

Zodra ik de IR laser start en het rotor segment van 5mm breedte voorbij komt bij 12000 tr/min komen de detectie pulsen binnen. Ik scan om de 40 usec 15 usec On 25 usec Off van de laser. Dit geeft zeer mooie signalen uit de OPA380 versterker. Ik neem altijd minimaal 2 geldige levels alvorens een detectie te valideren. Dit neem minimaal 80 usec in beslag.

Het is nu tijd om weer nieuwe pcb's te maken waar alles op staat. Er is ook nog wat wachten op heel veel zon om de invloed van het ambient licht verder te testen maar met de ac koppeling is dit al vrij ver uitgetest en opgelost. Eerst de nodige compenenten nog bestellen en we kunnen weer verder afwerken.