fredag den 4. september 2009

Vores første Lejos program

Formål:

Formålet med dagens øvelse var at bygge en robot og få den til at følge en linje, ved hjælp af Lejos og Java.


Forløb

Efter at have fundet de nødvendige blokke gik arbejdet med at bygge robotten igang, på grund af rfoghs overlegne evner ud i at finde legoklodser gik dette smertefrit.

Vi fandt en byggevejledning på:

http://www.active-robots.com/products/mindstorms4schools/building-instructions.shtml

Da pepe havde installeret nxj compiler med mere hjemmefra var det bare at gå i gang med at programmere robotten.

Som manualen foreskriver er det en god idé at sætte $NXJ_HOME variablen, samt at sætte $NXJ_HOME/bin i path.

Der viste sig dog et problem, idet det tog lang tid at få forbindelse til nxj brikken, da det lykkedes var det ikke muligt at lægge programmet op.

Vi fandt ud af at når brikken startede op stod der LEGO Mindstorms, og ikke noget med lejos. Efter at have forsøgt at finde den firmware der skal lægges på brikken for at uploade javaprogrammer, prøvede vi os frem med nxjflash og dette gik igennem uden problemer.


Forsøg

Det første forsøg var blot at få hul igennem til robotten, der blev lagt et program op med følgende kode:


import lejos.nxt.*;

public class eksempel
{
public static void main(String[] args)
{
Motor.B.setSpeed(0xFF);
Motor.C.setSpeed(0x8F);
Motor.C.forward();
Motor.B.forward();
}
}
Det viste sig dog hurtigt at da der ikke er nogen while(1) løkke eller en wait mekanisme, var programmet hurtigt afviklet.

Dette blev konstateret da nxj -r eksempel gjorde at brikken plingede at den var færdig idet programmet var blevet uploadet.

en linje med Button.ENTER.waitForPress(); blev indført og robotten begyndte at køre i fine cirkler.

Rfogh kommenterede at traditionen foreskriver at klasser (som eksempel) skrives med stort begyndelsesbogstav. Dette blev noteret til fremtidige klasser.

Det næste forsøg der blev gjort var at lægge det i øvelsesbeskrivelsen foreslåede kode ind i brikken.

Dette virkede efter hensigten og robotten fulgte fint stregen. Det blev bemærket at når enden blev nået kørte robotten i ring for at finde stregen igen, og når enden med det blå ark papir blev nået fulgte robotten kanten af papiret rundt for så at begynde på ruten igen.

På dette punkt var tiden så rigeligt gået og vi regner med at fortsætte til næste øvelsesgang med at ændre på værdier og beskrive hvad dette medfører.

Forløsning

Konklusionen på denne øvelsesgang er at med de rette variable sat er det nemt at lægge programmer over i nxj brikken, det er til at læse koden der anvendes og det er en meget god idé at læse øvelsesvejledningen igennem inden man går igang med øvelsen, og ikke bare klør på med krum hals.

Ingen kommentarer:

Send en kommentar