torsdag den 28. oktober 2010

Lab 7


Torsdag d. 28 oktober 2010
Tilstedeværende: Lars Christian Ersly og Line Løfquist
Mål: Løse dagens labopgaver :), deriblandt at lave robottype 1,2a og 2b.
Plan: Løse opgaverne i den angivne rækkefølge
Assigment 1, byg robot 1
Goal: at få robottype 1 til at køre efter lyd
Vi startede med at bygge robotten om så den havde en lyd sensor så vi kunne lave en robot der kørte efter lyd. Herefter programmerede vi følgende program: http://code.google.com/p/lego2010/source/browse/trunk/Lego%20Lab7/src/Vehicle1.java
der virker efter hensigten. Vi brugte Car-klassen fra tidligere til at få bilen til at køre. Vi stødte ikke på nogle problemer undervejs.
Assigment 2, byg robot 2a (der viger væk fra lyset)
Goal: at få robotten til at køre væk fra lyset
Vi byggede robotten om så den ikke længere havde en lydsensor men i stedet havde to lydsensorer, som ses på billedet herunder:
Herefter programmerede vi type 2a, der skal vige væk fra lyset. Vi forsøgte os først med at bruge readNormalizedValue fra lyssensoren som input til motorene, dette resulterede i at bilen hele tiden kører da disse værdier er forholdsvis store (>>100). Vi prøvede så med at dividere disse værdier med 10, dette resulterede i at bilen kørte meget langsomt, men det virkede da så den kørte væk fra lyset. For at løse problemet med at bilen nemt kom til at køre så langsomt den ikke kunne trække sig selv lavede vi en defaultSpeed værdi hvortil vi lagde en værdi afhængig af en modificeret lysværdien, dette virkede glimrende. Type 2b, der skal køre efter lyset er programmeret lige sådan, bortset fra at der er byttet om på de to sensorer i forhold til motorer. Herunder ses en film af 2b, der følger en lygte.

Assigment 3, ændre programmet for 2b til at køre med 2 tråde, i stedet for 1
Vi ændrede koden så der blev lavet en tråd for hver motor og den dertilhørende sensor. Det største problem vi havde i forbindelse med opdelingen var at vi ikke længere kunne benytte Car-klassen, dette løste vi ved at på hver motor at bruge metoden controlMotor og give de rette parametre med. Da vi testede løb vi ind i det problem at det kun var den ene af trådende der startede, dvs. kun det ene hjul kørte rundt. Vi forsøgte at løse dette ved at extende ThreadContorl med Threads i stedet for at implementere interfacet runnable.
Dette virkede og nu kan robotten igen køre efter lyset. Vi har ikke helt forstået hvorfor vi skulle lave det så det kørte i 2 tråde?

Assignmet 4, ændre programmet så det tager hensyn til målingerne inden for N tid.
Da vi kom til denne assignment indså vi at vi måske ikke havde udført opgaverne rigtigt, da det ser ud som om at vi i den sidste assignment skulle gå ud fra Tom Deans kode, som også var den vi skulle have ændret i assignment 3. Derfor startede vi med at tilpasse vores kode så den havde de samme lysmålinger, med normalized som Tom Dean brugte. Den største forskel var at vores selvopfunde kode ide kørte hele tiden og Tom Deans holdte stille medmindre der var lys.
Nu skal vi så have ændret programmet så det husker Min og Max tilbage i tiden. Koden kan ses her:
Desværre nåede vi ikke mere i dag, da tiden er gået.






Ingen kommentarer:

Send en kommentar