Coinurl2

Monday, 11 June 2012

Slut Projekt Session 4


Slut Projekt Session 4

Tid: 12 timer, Deltagere: Kenneth, Rawad.

Siden sidst:
Intet at bemærke.

Formål:
Formålet med denne session er at udforske hvordan hitechnics infrarød sensor fungerer, og så ud fra den viden designe en detektions mekanisme baseret på IR dioder. Den fjernstyrede segway robot vil være udstyret med IR dioder, der udstråler infrarødt lys. Opponent robotten (den autonome) vil have en IR seeker der er istand til at opfange dette lys og måle retning og afstand.

Plan

  1. Undersøgelse af Hitechnic IR seeker (DC) med IR LED’er
  2. Undersøgelse af Hitechnic IR seeker (AC mode) med IR bold
  3. Analyse af IR Emitter design til fjernstyret robot
  4. Konstruktion af IR Emitter
  5. konklusion

1. Undersøgelse af Hitechnic IR seeker i DC mode (med IR LED’er)
Vi har i samtale med Ole Caprani omkring detekterings mekanismer, besluttet at bestille Hitechnic NXT IRSeeker V2 sensor for LEGO Mindstorms [2]. De blev bestilt som en del af et “Lego soccer set” der består af to af disse IRSeekers samt en IR bold.

IRSeekeren kan fungere i to modes, hhv. moduleret (AC) mode og ikke-moduleret (DC) mode. I AC mode kan sensoren detektere moduleret signaler som f.eks. fra IR bolden og fjernbetjeninger. AC mode filtrer ikke modulerede lyskilder som f.eks. sollys.
DC mode kan detektere konstant lys, som sollys etc.

Seekeren kan detektere retning og afstand, som det ses på billedet herunder indikere 5 at lyskilden er i fronten osv. 


IRSeekers skal bruges til at detektere infrarødt lys. Til udstråling af IR lys har vi bestilt 25 stks. IR-LED Black 20grader 5mm 20mA [1].

For at teste IRSeekeren har vi lavet en lille opstilling med et fumlebræt og en strømforsyning, hvor vi power en 20mA IR-led[1]. Opstillingen kan ses på billedet herunder. Testen er foretaget i elektronik lab i edison (IHA).



I første omgang har vi forsøgt at power dioden beskrevet ovenover og peget sensoren imod den for at se om den kan detektere dioden i DC mode. Resultatet af testen var at der blev detekteret en lyskilde, dog var vi meget i tvivl om det rent faktisk var LED’en der var lyskilden pga. meget svage målinger omkring lysdioden. Vi slukkede herefter lysdioden og målte omkring den, og fik samme resultat hvilket førte os til den konklusion at det må have været støj i lokalet som vi har målt. Derfor prøvede vi at måle indflydelsen fra solen ved at holde IRSeekeren på den anden siden af gardinerne. Her blev intensiteten målt til omkring 200 hvilket var meget højere end vi havde målt ved dioden.
Vi anvendte et digitalt kamera for at se om dioden overhovedet udsendte IR lys, som det kan ses på billedet herunder kan man intet lys se i dioden.


Efter mislykket forsøg med at få lys ud af de første dioder, lånte vi en IR-diode med en meget større sprednings vinkel fra elektronik værkstedet i Edison (værdi på spredningsvinkel ukendt). Her kunne vi detekere dioden med sensoren, og rent faktisk også se lyset i kameraet. Dog var forskellen mellem støj og infrarødt lys fra dioden meget lille, som det kan ses på målinger herunder. getAverage funktionen i IRseeker klassen anvendes  til at opsamle data.

I lommen på cowboybukser
Direction 0
Intensitet 0

Max baggrundsstøj omkring test opstillingen
Intensitet 26 (i retning af vinduet)

Tændt diode afstand 0 cm 0grader (IRseekers hældning til diode)
Direction: 5
Intensitet: 205

Tændt diode 10 cm, i retning af diode
Direction: 5
Intensitet: 170

Tændt diode 20 cm, i retning af diode
Direction: 5
Intensitet: 87

Tændt diode 30 cm, i retning af diode
Direction: 5
Intenistet: 69

Tændt diode 30 cm, 90 grader fra diode
Direction: 7
Intensitet: 60

Tændt diode 30 cm, 45 grader fra diode
Direction: 7
Intensitet: 65
Vi kan udfra ovenstående målinger konkludere at man i DC mode godt kan måle afstanden og vinklen til en IR-diode. Dog målte vi en voldsom baggrundsstøj som vi fjernede ved at afskærme solen fra test opstillingen. Da robotten i sidste ende skal fremvises i et rum med lys vil der være stor risiko for at solen vil have en indflydelse på bestemmelsen af IR-seekers direction.
2. Undersøgelse af Hitechnic IR seeker i AC mode (med IR Bold)

I denne test sættes IRSeekeren til at operere i AC mode. Denne test er foretaget i Zuse bygningen.
Først tester vi hvor modtagelig sensoren er overfor baggrundsstøj i AC mode, ved at pege sensoren mod forskellige lyskilder i lokalet og op mod solen.

Resultat ved alle lyskilder:
Direction 0
Intensitet 0

Seekeren blev ikke ligesom i DC mode forstyrret af lyskilderne.

Når IR bolden kommer indenfor rækkevidde af IR Seekeren, begynder den at opføre sig mærkeligt. IR Seekeren kan se i hvilken retning bolden er, men intensitet vises om -1, i alle retninger. Dog skal det bemærkes at den er super god til at finde ud af hvilken retning IR bolden er i. Til at hente retningen fra sensoren anvendes klassen IRSeekerV2. Funktionen der anvendes er .getDirection().

Vi mistænker at getAverage ikke kan bruges i AC, og vil derfor finde en anden måde at hente data fra sensoren på. Vi vil nu afprøve opsamling af sensorværdierne med getSensorValues(). Ved skift til getSensorValues funktionen opdagede vi at der returneres 5 tal i arrayet. Dette afspejler at der er 5 sensorere.

Figuren herover viser hvordan fem sensorere kan detektere 9 directions. Vi har opdaget at direction udregnes ved at se hvilke sensorere der aktivt måler et signal. I frontal retning i.e. direction 5, er der kun sensor 3 der er aktiv. I direction 4, kan det tydeligt ses at både sensor 2 og 3 er aktive. Når begge sensorere er aktive resultere det i en direction der er imellem begge sensorere. I.e. Alle lige tal repræsentere “virtuelle sensorere”.

Vi har forsøgt at se om IR lyset bliver reflekteret og kan forstyrre retningen målt, vi har gjort dette med glas og blanke overflade og kan ingen reflektion måle.

Afstand:
Funktionen getSensorValues returnere alle sensorværdierne (1-5) i et array.


Afstandsmåling med direction 5, hvilket vil sige sensor 3.
0cm intensitet 145
30cm 125
60cm 76
90cm 58
120cm 42
150cm 32

Under målingen opdagede vi at ændring i rotation af IR bolden havde indflydelse på intensiteten målt af IRseekeren. Dette er fordi IR bolden ikke udsender infrarødt med lige høj intensitet i alle retninger. Derfor har vi taget måling med en optimal vinkel på IR bolden for at få konsistente målinger.

Efter afstandsmålingen forsøgte vi at se hvor stor vinklen rundt om sensoren hvor bolden kan detekteres er. Her opdagede vi at mellem direction 9 og 1 (på den anden side af sensoren) giver sensoren nogle mærkelige værdier. Når den er ude af rækkevidde for den yderste sensor 1, kan sensor 2 pludselig måle den. Befinder bolden sig lige bagved sensoren aktiveres alle sensorer med en lav værdi. Er bolden slukket eller udenfor rækkevidde returneres 1 fra alle sensorer.

Retning:
Bestemmelse af sensorens vinkel til bolden kan gøres ved at måle intensiteten af lys på de enkelte sensorer. Hvis to sensorer er aktive på samme tid kan forskellen mellem disse bruges til bestemmelse af boldens placering. Er kun en sensor aktiv er en højere præcision på boldens placering sværere at opnå. Sensor værdien falder hvis bolden flytter sig fra den optimale vinkel, men dette er desværre også tilfældet hvis afstanden til bolden bliver længere. Derfor er det ikke lige til at bruge lysstyrken til vinkelbestemmelse så vel som afstandsbestemmelse.

IRSeeker:
For at vise IRSeekerens karakteristik ved detektionen af IR bolden, har vi foretaget en test med den. IRSeekeren sættes fast til en motor og roteres rundt 360grader, hvor IR bolden er 30cm foran seekeren. Denne test viser os præcis i hvilke vinkler sensorene overlapper og hvor kun en sensor detekterer lys. Følgende kode er brugt til testen[3] og værdierne logges vha. denne klasse[4].

Udførsel:
 

Resultat:







 

Figuren herover viser sensor input intensitet for hver enkelt grads rotation sensoren foretager. ved 0grader er IR bolden på modsat side af retning 5 (modsat fronten). De områder hvor sensorene overlapper svarer til “lige” directions (2,4,6,8) og de steder hvor der kun er en enkelt sensor er “ulige” directions.

Dual sensor setup
Ved at tilføje en ekstra IRseeker der er placeret på samme sted som den originale IRseeker men vinklet, kan vi fordoble vinkel præcisionen. Hvis bare vi kan få de to sensorer til at skrifte direction med samme interval men forskudt 50%. Dette er dog desværre ikke muligt da intervallet for de forskellige directions ikke er lige så stor. Det kan ses herunder at intervallet for sensor 5 (direction 5) er 59 grader hvor intervallet for nabo sensorene er 44 grader.

Sensor 2
interval 219,263: værdi: 44

Sensor 3
interval 154,213: værdi: 59

Sensor 4
interval 101,145: værdi: 44

For at optimere vinkel bestemmelsen har vi beregnet at den anden IRseeker skal være vinklet 24.5 grader ift. den anden. Dette er udregnet ved at tage halvdelen af gennemsnitet af interval værdierne for de midterste sensorer. Vi har valgt ikke at tage de yderste sensorer 1 og 5 med i beregningen da en høj præcision i yderpunkterne ikke er ønsket på kompromi at en høj præcision frontalt.

Vi har konstrueret en anordning der vinkler den ene IRSeeker med 22.5 grader ift. den anden:

Ved at teste konstruktionen på samme måde som med en enkel IRSeeker:
 


Fik vi følgende resultater:

Første test:


Anden test:



For at skabe overblik når begge IRseekernes sensorværdier er plotter i samme diagram har vi markeret hvor sensorene i de enkelte IRSeekers overlapper. De hvide områder imellem de markerede er dem vi vil minimere, da disse hver identifisere en enkel direction. Resultatet viser at der stadig er store områder hvor der ikke er et overlap. Vi mistænker at vi ved at vende den anden sensor har spejlvendt karakteristikken. Istedet prøver vi med en vinkel på 45 grader imellem de 2 IRSeekers:

 

Resultater:
Første test:



Anden test:



Resultaterne med en 45 graders vinkling imellem IRSeekerne viser at de hvide områder omkring midten er gået fra en bredde på 47 grader i test 1 til en bredde på 24 i test 3. Dermed opnåes en meget højere præcision i bestemmelsen af vinklen til lyskilden når den befinder sig foran robotten. Mens det stadig er muligt at bestemme vinkelen når lyskilden befinder sig ved siden af robotten.


3. Analyse af IR design til fjernstyret robot

På baggrund af undersøgelsen i ovenstående afsnit, har vi kunne konkludere at detektering af IR lys med seekeren i DC mode, er næsten ubrugeligt, da afstanden hvor lyskilden kan skelnes fra IR støj er for kort.
Der er derfor nogle muligheder vi skal tage stilling til:

Systemet kan testes i mørkt rum for at undgå støj.
Vi kan forsøge at lave et circuit der kan sende moduleret IR lys med dioderne.
Anvende IR bolden, der allerede udsender moduleret IR lys.

Vi føler at begrænse brugen af robotterne til område hvor der ikke er andre lyskilder end IR vil være ærgeligt og gøre projektet svært at demonstrere. Vi vil derfor ikke vælge at anvende seekeren i DC mode til at detektere IR lyskilder.

At konstruere et circuit der kan modulere IR lys med dioderne og sætte seekeren i AC mode, ville være det optimale valg. Dog er det også en smule ude af scope og omfattende.

Den nemmeste løsning vil være at anvende IR bolden, som IR emitter og anvende seekeren i AC mode. Det vil gøre os i stand til at demonstrere projektet, samt fjerne behovet for hjemmelavet circuit.


4. Konstruktion af IR Emitter

Vi har valgt ikke at konstruere vores egen IR emitter, da det har vist sig at være for komplekst og uden for vores tidsgrænse. Vi vil derfor anvende IR bolden der i testen har vist sig at være detekterbar i en god afstand (over 150cm).


5. Konklusion
Det lykkedes os at evaluere IRseekeren i DC mode med IR LED’er, dog var resultatet ikke optimalt men forventet. Den bedste afstand vi kunne detektere IR LED’erne i DC mode var omkring 30-50cm, men alligevel ineffektivt da baggrundslys nemt var målt til op omkring 200. Vi har også evalueret IRseekeren i AC mode, og var positivt overrasket over hvor nemt IRseekeren havde det med at detektere både afstand og retning. Dog havde vi problemer med getAverage funktionen i AC mode, dette var ikke en stor forhindring da vi nemt kunne opnå nogenlunde samme resultater med getSensorValues(). På baggrund af ovenstående resultater vælger vi at anvende IRbolden istedet for at konstruere vores egen IRemitter pga. det gode resultater samt kompleksiteten i at konstruere en IRemitter i AC mode.



Referencer:
[1]:http://elektronik-lavpris.dk/files/sup2/tsff5210.pdf
[2]:http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NSK1042

[3]:https://dl.dropbox.com/u/4447110/IRSeekerTest.java
[4]:https://dl.dropbox.com/u/4447110/FileLogger.java

No comments:

Post a Comment