Tijdstamp kalibratiesysteem met LEDjesGedurende twee weekenden heeft de studiereis commissie hard gewerkt aan een casestudy van het bedrijf Fugro. Deze casestudies voert de studiereis uit om de reis te kunnen financieren. Fugro werkt aan een onder water positioneringssysteem dat uiteindelijk bedoelt is voor het positioneren van Remotely Operated Vehicles (ROVs) onder water. Het is helaas niet mogelijk om GPS te gebruiken zoals navigatiesystemen in de auto, omdat het GPS signaal maar een paar centimeter in het wateroppervlak kan penetreren. Akoestische methoden worden nu gebruikt, maar daaraan kleven ook enkele nadelen zoals beperkte nauwkeurigheid en hoge kosten. Daarom onderzoekt Fugro nu naar de mogelijkheid om een systeem te maken met behulp van camera's. Aan de hand van opeenvolgende foto's kan de beweging worden bepaald, maar deze camera's moeten dan wel goed gekalibreerd zijn in de tijd. Dit wordt gedaan door precies getimede foto's te maken. Het systeem dat nu wordt gebruikt heet StarPort en dit systeem triggert tegelijkertijd de camera, terwijl hij een tijdstamp uitgeeft. Dit systeem kan heel nauwkeurig zijn als de camera tegelijk triggert als het StarPort systeem aangeeft. Echter, wanneer een PAL-camera wordt gebruikt zijn de trigger delay tijd en de shutter openingstijd niet bekend. Daarom is het nodig om een test te maken die kan controleren of het StarPort systeem nauwkeurig kan werken met PAL-camera's. Aan ons de taak om zo'n testsysteem te ontwerpen die een zeer nauwkeurige tijdstamp maakt die kan worden vergeleken met de StarPort output. Het idee dat we hebben geimplementeerd is verassend eenvoudig. Het is in principe een ledklok. De PAL-camera's, getriggerd door het StarPort systeem, maken van ons systeem een foto en van die foto moet worden afgelezen wat de trigger delay tijd en de shutter openingstijd is ten opzichte van het StarPort systeem. In principe hebben we dus een soort gesynchroniseerde counter nodig die de tijd aangeeft wanneer de foto is genomen. Deze tijd kan worden vergeleken met de StarPort output en het verschil hier tussen geeft de trigger delay tijd van de PAL-camera's. Om de sluitertijd te bepalen hebben we gebruik gemaakt van het feit dat camera's licht integreren. Door middel van een looplicht kan dan worden bepaald hoelang de shutter open was. De counter moet de tijd aan kunnen geven tot één minuut na het trigger signaal van StarPort, met een precisie van 0.125 ms. Dit houdt dus in dat de counter tot 480000 1/8e milliseconden moet kunnen tellen. In theorie kunnen we een looplicht maken bestaande uit 480000 LEDs en hieruit kan dan met een precisie van 0.125 ms worden bepaald wat de trigger delay tijd van de camera is en wat de shutter openingstijd is. Natuurlijk is dit totaal niet praktisch en daarom hebben we twee counters geimplementeerd. Een grove counter en een fijne counter. De fijne counter is een LED matrix waar het looplicht is geimplementeerd. Door elke 0.125ms de volgende led te laten oplichten en op de foto te tellen hoeveel leds er aan waren, kan de sluitertijd bepaald worden. De grove counter zorgt ervoor dat er tot één minuut kan worden geteld. Dit is een binaire Gray code teller geworden. Het kan gebeuren dat de sluiter geopend is over twee grove tellen en door de integratie van het licht kan dan niet meer de tijd worden bepaald. We hebben dit opgelost door Gray code te gebruiken, maar dan nog kan de teller soms niet goed worden afgelezen doordat de camera het LED licht integreert. Om dit te verhelpen kunnen we de grove teller twee keer uitvoeren en deze afwisselend ophogen. Makkelijk toch? Maar er is een elegantere oplossing! Als we de OR operatie uitvoeren tussen opeenvolgende tellen (dit is eigenlijk wat de camera doet want hij integreert het licht) dan zien we een regelmatig patroon, waar de eerste tel om en om dan wel oneven en even is. Om hier onderscheid in te kunnen maken hoeven we maar twee extra LEDs toe te voegen in plaats van de grove teller dubbel uit te voeren! Figuur 1: Alle LED's met hun functie In figuur 1 is het systeem te zien met alle geimplementeerde LEDs. De fijne en de grove LED counters zijn net besproken. Daarnaast zijn er ook nog twee LEDs waarmee je kan instellen wat de loopsnelheid is van het looplichtje en hiermee kan dus worden gewisseld tussen de maximale gemete shuttertijden. Daarnaast zijn er ook nog vier LEDs geplaatst in de hoeken plus nog één extra rechtsonder van het device (omcirkeld met blauw). Deze zijn daar geplaatst zodat het image processing gemakkelijker wordt. Wanneer de foto is gemaakt is het wel zo handig om een script te hebben die output wat de gemeten waarden zijn. Om dit te bewerkstelligen moet eerst het systeem uit de foto worden herkend. Dit wordt gedaan door middel van de vier LEDs in de hoeken. Vervolgens wordt dit deel getransformeerd zodat makkelijker de informatie uit de LED counters kan worden verkregen. De laatste stap is om deze informatie te decoderen naar echte tijden. Figuur 2: De ingewanden van het apparaat Het hele device is gerealiseerd en uitvoerig getest om te verifieren dat het voldoet aan alle specificaties. In figuur 2 kun je de binnenkant van het device bekijken. Een grote uitdaging is om de precisie van het systeem te controleren. Tijdens de verificatie stap kwamen we erachter dat onze oscillator door te lange draden 150ppm afwijkt (een normaal kristal wijkt max ca 20ppm af). Door kortere draadjes naar het kristal en een beter kristal kwam de afwijking uit op 35 ppm. Dit is eigenlijk nog teveel omdat het systeem ook een tijdje synchroon moet kunnen werken zonder extern PPS (Pulse Per Second, zeer preciese tijdreferentie) signaal. Omdat we dus een precieze secondereferentie hebben kunnen we de afwijking bepalen. Aan het eind van de seconde blijft in de interne tijd timer een waarde staan, als deze waarde 0 is, is er geen error, is deze waarde groter of kleiner dan 0 dan kan de volgende seconde deze waarde van de timer afgetrokken worden. Zo kwam de absolute afwijking uit op ca 2-3 us per seconde. Waardoor het systeem nog ongeveer 2 minuten kan werken voordat de afwijking te groot wordt. Daarnaast zijn er enkele mensen naar Fugro toegegaan om het systeem te presenteren. Het was een leuke case die bijna alle aspecten van de elektrotechniek omvatte: een beetje ElBas, Matlab programmeren, microcontrollers coden en lekker solderen. Het case study weekend zelf was erg interessant en leerzaam. Het is fijn om te zien dat al die jaren van elektrotechniek studeren toch best nuttig is geweest en je met de kennis en vaardigheden een case study voor een bedrijf kunt oplossen. Je ziet concreet in wat voor toepassingen elektrotechniek allemaal voorkomt en maakt kennis met een bedrijf die wellicht je toekomstige werkgever kan zijn. Verder is het ook gewoon hartstikke gaaf om in twee weekenden een systeem in elkaar te zetten dat voldoet aan de meeste specificaties en straks als onderdeel van een veel groter systeem een rol zal spelen. |