Date: 7. februar 2014
Duration of activity: 9.15-14.15 - 5 timer
Group members participating: Christian Hansen, Pætur Askildsen, Søren Gregersen
Goal: At gennemføre ugens opgaver samt at finde ud af, hvordan lyssensoren fungerer som inputkilde.
Plan: Gå opgaverne sekventielt igennem
Results: Vi har gennemført alle opgaverne.
Exercise 1
Try to place the light sensor above different colors and make a table of light values corresponding to the different colors. Use the light percent values for black and white to explain how the threshold value could be obtained from a reading above black and white.
Målinger over forskellige værdier returneret af lyssensoren når denne er holdt over Legoklodser med forskellig farve. Alle målinger er foretaget med samme afstand til klodsen og under samme lysforhold.
- Hvid 57 %
- Gul 47 %
- Rød 44 %
- Blå 33 %
- Grå 33 %
- Grøn 31 %
- Sort 28 %
Vores egne målinger på sort viste 28 % mens den på hvide gav 57 %. Ved at tage gennemsnittet af de to værdier får vi den blackWhiteThreshold værdi som er den mest korrekte i vores kontekst: 42,5 %.
Exercise 2
The light sensor is used with the red LED turned on light.setFloodlight(true). This means that the sensor measures the reflection of the red LED. Try to turn the LED off and notice the difference in measurements obtained by making a similar table of readings above different colors. With the LED turned off the ambient light level is measured. This is e.g. useful in day/night detection.
- Hvid 31 %
- Gul 31 %
- Rød 28 %
- Blå 25 %
- Grå 20 %
- Grøn 29 %
- Sort 18 %
Vi kan se, at ved at slukke for det røde lys, er værdierne meget tættere på hinanden; spredningen er lavere. Dette skyldes sandsynligvis, at det omkringværende lys var ret begrænset, og at mange af farverne dermed returnerede næsten samme værdi. Det er derfor en god idé at have den røde LED til at lyse når man er i low-light conditions.
Exercise 3
In the program a delay of 10 msec is used between light sensor readings. We call this the sample interval. Try with a sample interval of 100 msec, 500 msec and 1000 msec. Explain what happens.
What happens:
Bilen stoppede engang imellem. Det blev fikset ved at udskifte begge motorer.
Ved stigende sample interval: 100, 500 og 1000 msec blev bilens udsving / drejninger større. Dette kan forklares med at bilen får længere tid til at dreje hhv. til venstre eller højre. Ved 1000 msec viste det sig endda, at den et par gange kørte rundt om sig selv, fordi den ikke kunne fange linjen.
Video af kørsel med sample interval på 100 msec
Video af kørsel med sample interval på 500 msec
Video af kørsel med sample interval på 100 msec
Video af kørsel med sample interval på 500 msec
Exercise 4, Data logger
A data logger, [4], is a mechanism that can be used to collect and record data from e.g. a sensor for later inspection. In the leJOS system a data logger can be implemented to collect data and record them in a flash file. The sampled data can then be used to plot a graph of the light values:
Vi har lavet fire forskellige kørsler med hver sin sample interval. 10ms, 100ms, 500ms og 1000ms. De forskellige grafer kan ses herunder
Ud fra graferne kan det ses, at jo større et sample interval desto færre oscillationer pr. tid. Altså jo større sample interval jo lavere frekvens. Dette stemmer overens med vores observationer fra opgave 3: Ved højere sample intervals fås en lavere frekvens på, hvor ofte bilen drejer til venstre eller højre, hvilket giver større udsving / drejninger. Eller sagt på en anden måde: Jo større frekvens, ved lavere sample interval, jo større oscillation i, i hvilken retning bilen kører.
Exercise 5
Try to use text strings directly in the calls to LCD.drawString instead of the variables right and left. Use Runtime.getRuntime().freeMemory() to show the amount of free memory on the heap during the execution. Use this to explain what happens when text strings are used directly in method calls.
Vi kørte de to forskellige opsætninger af programmet og fik en række værdier ud af begge kørsler. Gennemsnittet for programmet med variable var 47509 mens det program uden variabler men med text string, havde en værdi på 47840. Det giver en værdiforskel på 331, hvad der svarer til 0,7 %. Altså bruges der en anelse mere hukommelse i programmet med variable end det uden, da den værdi vi fik ud var den ledige hukommelse under kørslen. Dette giver mening, da der bruges hukommelse på at instantiere og dermed gemme variablerne. I vores program er det ikke nogen fordel at bruge variablerne, da de kun bruges én gang hver, men havde de skulle bruges flere gange, havde det givet mening, da det så ville have sparet hukommelse ift. at skulle skrive variablen som string hver gang den skulle bruges.
Conclusion: Lysintensiteten er højere for lyse farver end for mørke farver. Med det røde lys slukket er lysintensitetens spredning for de forskellige farver lavere end hvis det røde lys er tændt. Sample interval tiden afgør hvor store udsving bilen har. Jo større interval, jo længere og større udsving.
References:
Ingen kommentarer:
Send en kommentar