Målet med den første lab session er at få etableret en grundforståelse, og blive bekendt med nogle basale principper, værktøjer og fremgangsmåder. VI skal blandt andet opnå en indsigt i hvordan interaktion og konstruktion af LEGO robotter foregår, og ikke mindst få til vane at skrive en sideløbende rapport over vores labnotes.
What:
- Installer leJOS.
- Compile LineFollower.java
- Overfør til NXT enhed.
- Byg Bil.
Installering a leJOS:
How:
Vi havde installeret leJOS hjemmefra inden lab sessionen på den maskine vi havde planlagt at benytte til formålet, og dette gik let og smertefrit. Vi har valgt ikke at bruge Eclipse, men derimod Intellij IDEA som ide, det dette ligger mere for hånden for os at bruge, da vi har arbejdet ekstensivt med det på tidligere projekter.
Compile LineFollower.java:
How:
Da vi ikke benytter Eclipse, kan vi af gode grunde ikke benytte det tilhørende addon, men vi kunne genbruge et ANT script fra et af de eksisterende leJOS eksempler, hvilket kørte upåklageligt.
Overføre til NXT enhed:
How:
Da vi forsøgte at interagere med NXT enheden kunne i initielt ikke få nogen kontakt, hvorefter det dog hurtigt slog os at vi var kommet til at springe et afsnit i manualen over, og slet ikke havde fået installeret driveren til enheden, hvorefter det ikke var nogen stor overraskelse. Ud over en langsom nedhentings hastighed, gik installationen af driveren tilsyneladende uden yderligere problemer, og det ANT compilered program blev uploaded uden brok.
Test LineFollower.java:
How:
Robotten var bygget færdig, og det store øjeblik var kommet til at den skulle testes med sit LineFollower program, men til vores store skuffelse fik vi kastet en java exception efter os da vi prøvede at køre det, med følgende identifikation: Class: 16, Method: 32, PC: 3895 (se billedet nedenfor):
Vi undersøgte enheden, og indså at firmware ikke var fuldstændig up to date, så vi besluttede os for at opdatere dette. Det var her vi for alvor rendte ind i problemer, da vi ikke kunne flashe det eksisterende firmware. Det viste sig at vi var rendt ind i java kompatibilitets problemer mht. 32/64-bit versioner, da begge versioner var installeret på PC’en, var der stridighed med hvorhen den aktuelle miljøvariable skulle pege. Vi specificerede derefter miljøvariablen LEJOS_NXT_JAVA_HOME, der specifikt fortæller NXT hvilken java version den skal benytte, hvorefter vi kunne flash of reinstallere firmware.
Da enheden kørte efter planen, testede vi den ved at ændre følgende sleep tider for lys sensoren, og observerede ændringerne i opførslen.
10 milisecs, god til tynde streger, skifter retning tit.
100 milisecs, god til mellem tykke streger.
500 milisecs, kører meget i cirkler
1000 milisecs, umulig at bruge.
Nedenfor ses nogle videoer af robotten i aktion med de forskellige indstillinger.
Link til kode: Da det eneste kode benyttet i denne lab session var noget udleveret og præ-skrevet, mener vi ikke at det er nødvendigt at linke hertil, da vi ikke har foretaget andre ændringer end "tweaking" af sleep tiden
