Med Asbjørn, Christer og Jesper

fredag den 28. september 2007

NXT programmering, lesson 4

Tidsforbrug: 3 timer
Deltagere: Asbjørn, Christer og Jesper

Målet for dagens session er, at:
  • Black White Detection
    • Montering og test af lyssensor
  • Line Follower with Calibration
    • Brug af lyssensor til at følge en sort streg
  • ColorSensor with Calibration
    • Udvidelse af kode til at genkende grøn
  • Line Follower that stops in a Goal Zone
    • Forberedelse til næste uges løb
Programmerne vi lavede under denne session kan findes på adressen:
http://www.daimi.au.dk/~jn/lego/uge5/

Disse punkter gennemgår vi et for et nedenfor.

Black White Detection
Tidsforbrug: 15 minutter.

Dagens første opgave var at montere lyssensoren på LEGO™ bilen. Det var hurtigt gjort ud fra LEGO™ Mindstorms Education NXT Base Set 9797 byggeinstruktionshæftet. Derefter hentede vi BlackWhiteSensor.java og skrev et program omkring den. Igennem eksperimenter kunne vi se, at den var meget god til at skelne mellem mørke og lyse farver. Mørke farver gav høje værdier og lyse farver gav lave værdier.


Line Follower with Calibration
Tidsforbrug: 45 minutter

Vi hentede LineFollowerCal.java fra nettet og forsøgte at overføre det til NXT'en. Det lykkedes dog ikke først. Hver gang vi prøvede, skrev den "Data abort", dumpede registre til skærmen og frøs. Vi lånte da en NXT af en anden gruppe og forsøgte at overføre programmet til den i stedet. Det virkede fint, hvorfor vi konstaterede, at det var vores NXT den var gal med. Herefter hentede vores instruktor en ny NXT til os, hvilket løste problemet. Vi kunne nu køre programmet og følge en sort streg på gulvet.

ColorSensor with Calibration
Tidsforbrug: 30 minutter

Nu skulle vi udvide BlackWhiteSensor til ColorSensor, så den kunne skelne mellem sort, hvid og grøn. Så i stedet for at opdele intervallet af mulige målinger i to klasser, skal den nu opdeles i tre, da grøn måles som en gråtone et sted mellem de to andre. Det viste sig eksperimentelt at den anvendte nuance af grøn gav en måling ca midt mellem målingerne for sort og hvid.

Line Follower that stops in a Goal Zone
Tidsforbrug: 90 minutter (resten af tiden)

Nu var det tid til at arbejde på bilens egenskaber for at følge linjen på jorden hurtigst muligt. For at forbedre bilens evne for at holde sig på stregen, udvidede vi den med to RCX lyssensorer som vist på billedet til højre.
Vi opdagede at de tilgængelige RCX sensorer ikke havde samme følsomhed som NXT sensoren. Der var simpelthen ikke så stor forskel på en hvid-måling og en sort-måling. Farvemåling viste sig at være upraktisk, hvis ikke umulig. Dette er dog ikke at være et problem, da vi kun har brug for at genkende farve til aller sidst, og der er NXT sensoren nok. For at kunne bruge både RCX og NXT sensorer med vores BlackWhiteSensor og ColorSensor lavede vi et software interface fælles for de to og wrapper klasser til at pakke LightSensor og RCXLightSensor klasserne ind.

Efter gentagne eksperimenter med den viste robot besluttede vi os for at ændre den igen. Sensorerne sad for tæt på hinanden og for tæt på robotten. Dette bevirkede, at den reagerede for sent når underlaget ændrede sig. Desuden har vi udviddet softwaren så den ikke bare reagerer i forhold til hvad den ser lige nu, men husker til hvilken side den sidst har set stregen, så hvis den kører helt uden for stregen kan den finde den igen. Denne opdatering gjorde en meget stor forbedring. Det lykkedes altså at finde en konfiguration der virkede ret godt, men vi aftalte at mødes igen den følgende uge til en gang tweaking inden konkurrencen.

Ingen kommentarer: