marvin:lab1
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
marvin:lab1 [2008/09/22 14:33] – deva | marvin:lab1 [2008/10/09 20:32] (current) – rieper | ||
---|---|---|---|
Line 4: | Line 4: | ||
**Participants: | **Participants: | ||
+ | **Formål: | ||
+ | |||
+ | Herunder ses nogle billeder fra øvelsen.\\ | ||
{{: | {{: | ||
{{: | {{: | ||
- | {{: | + | {{: |
+ | |||
+ | ====Softwareinstallation/ | ||
+ | Problemer med installation af software. Kan vise sig at være problematisk at køre på Vista, men kan installeres på XP og Linux. Det viser sig at være problematisk at flashe NXT modulet via USB og Bluetooth - vi kan ikke kommunikere med modulet. Det er ikke muligt at ressette NXT modulet, der formodes at være i stykker. Efter samtale med vejlederen vælges at skifte til et andet modul. Det nye modul befinder sig på Ole's kontor, men han er ikke tilstede. Efter at have testet, at dette nye modul kan resettes, vælger vi at anvende dette modul for at komme videre.\\ | ||
+ | |||
+ | Vi fik herefter hjælp til at flashe fra en anden gruppe, hvorefter det var muligt at uploade programer til modulet.\\ | ||
+ | I mellemtiden blev der iøvrigt indsamlet legostumper til kasserne.\\ | ||
+ | |||
+ | ====Upload af program til NXT modulet==== | ||
+ | Uploadede programet '' | ||
+ | Herefter Hentes nu endnu engang java koden, '' | ||
+ | |||
+ | ====Koden==== | ||
+ | Koden kan findes via linket http:// | ||
+ | <code java> | ||
+ | import lejos.nxt.*; | ||
+ | /** | ||
+ | * A simple line follower for the LEGO 9797 car with | ||
+ | * a single light sensor. | ||
+ | * | ||
+ | * The light sensor should be connected to port 3. The | ||
+ | * left motor should be connected to port C and the right | ||
+ | * motor to port B. | ||
+ | * | ||
+ | * Variables initialized with a constant string are used | ||
+ | * in the LCD.drawString calls of the control loop to | ||
+ | * avoid garbage collection. | ||
+ | * | ||
+ | * @author | ||
+ | * @version 22.08.08 | ||
+ | */ | ||
+ | public class LineFollower { | ||
+ | |||
+ | public static void main (String[] aArg) | ||
+ | throws Exception | ||
+ | { | ||
+ | String left = "Left "; | ||
+ | String right= " | ||
+ | |||
+ | LightSensor light = new LightSensor(SensorPort.S3); | ||
+ | final int blackWhiteThreshold = 45; | ||
+ | |||
+ | final int forward = 1; | ||
+ | final int stop = 3; | ||
+ | final int flt = 4; | ||
+ | final int power = 80; | ||
+ | |||
+ | // Use the light sensor as a reflection sensor | ||
+ | light.setFloodlight(true); | ||
+ | LCD.drawString(" | ||
+ | |||
+ | // Show light percent until LEFT is pressed | ||
+ | while (! Button.LEFT.isPressed()){ | ||
+ | LCD.drawInt(light.readValue(), | ||
+ | LCD.refresh(); | ||
+ | } | ||
+ | |||
+ | // Follow line until ESCAPE is pressed | ||
+ | while (! Button.ESCAPE.isPressed()){ | ||
+ | |||
+ | if (light.readValue() > blackWhiteThreshold){ | ||
+ | // On white, turn right | ||
+ | LCD.drawString(right, | ||
+ | MotorPort.B.controlMotor(0, | ||
+ | MotorPort.C.controlMotor(power, | ||
+ | } | ||
+ | else{ | ||
+ | // On black, turn left | ||
+ | LCD.drawString(left, | ||
+ | MotorPort.B.controlMotor(power, | ||
+ | MotorPort.C.controlMotor(0, | ||
+ | } | ||
+ | LCD.drawInt(light.readValue(), | ||
+ | LCD.refresh(); | ||
+ | Thread.sleep(100); | ||
+ | |||
+ | } | ||
+ | |||
+ | // Stop car gently with free wheel drive | ||
+ | MotorPort.B.controlMotor(0, | ||
+ | MotorPort.C.controlMotor(0, | ||
+ | LCD.clear(); | ||
+ | LCD.drawString(" | ||
+ | LCD.refresh(); | ||
+ | Thread.sleep(1000); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Test af Sensor - transmitter/ | ||
+ | Vi har målt følgende intensiteter fra lysdioderne: | ||
+ | ^ Overflade ^ Intensitet ^ | ||
+ | | sort | 36 | | ||
+ | | hvid | 56 | | ||
+ | | blå | 40-44| | ||
+ | | grå | 47 | | ||
+ | | brun tape | 46-49 | | ||
+ | | blåmønstret gulv | 41 | | ||
+ | Desuden bemærkes, at afstanden mellem sensoren og overfladen samt den generelle lyssætning i rummet har stor påvirkning på tallene. Det er muligt at koble lyssenorer til af den gamle type med en konnektor, men vi har ikke målt på disse. | ||
- | Problemer med installation | + | ====Konklusion==== |
+ | Det lykkes ikke at flashe NXT modulet, og det lader til, at vi for fremtiden er afhængige | ||
+ | Lyssensoren af den nye type er god til at skelne mellem hvid og sort, men til gengæld er det svært at måle forskel på blå og grå. Det må desuden konkluderes at kodeeksemplet | ||
- | Kan desuden ikke resette NXT modulet, der formodes at være i stykker. | + | ====Forslag |
- | NXT modulet kunne ikke kommunikere, | + | For at lave en god linefollower skal oscillationerne mellem venstre |
- | Fik hjælp til at flashe fra en anden gruppe | + | |
- | Indsamlede lego stumper | + | |
- | Uploadede program | + | |
- | Foretog ændringer | + | |
- | - Hastigheden svarede ikke til forventninger, | + | |
- | Frustration! | + | |
- | Henter nu endnu engang java kode (linefollower) fra hjemmesiden | + | |
- | Det lader til at vi har kørt med forkert kode - øv, men nu virker det! | + | |
- | Vi når at måle følgende intensiteter fra lysdioderne: | + | |
- | sort = 36, hvid=56, blå=40-44, grå=47, brun tape=46-49, blåmønstret gulv=41 | + | |
- | Desuden ses at afstanden har stor påvirkning på tallene. | + |
marvin/lab1.txt · Last modified: 2008/10/09 20:32 by rieper