leJOS - Java programmering på NXT

Ole Caprani
Institut for Datalogi, Aarhus Universitet,
ocaprani@cs.au.dk

Sidst opdateret 2.6.12.

Installation af BlueJ og leJOS

For at kunne styre en NXT ved hjælp af Java programmer skal der installeres to systemer på computer og NXT:

  • Programmeringsværktøjet BlueJ skal installeres på computeren og
  • leJOS skal installeres på både computer og NXT.

Det sker ved at gå igennem Installation af BlueJ, Installation af leJOS og Udvidelse af BlueJ til at håndtere leJOS Java programmer.

Kør det første Java program HelloWorld på NXT

Når installationen er afsluttet, kan et Java program bringes til at styre en NXT ved at bruge BlueJ og leJOS. I leJOS Tutorial under Writing and Running your first leJOS NXJ Program er det vist, hvordan et Java program, kaldet HelloWorld, kan overføres til NXT og køres på NXT, så resultatet bliver, at teksten "Hello World" skrives på LCD skærmen på NXT.

Programmet HelloWorld kan også overføres og køres på NXT ved hjælp af programmeringsværktøjet BlueJ. Der er lavet et såkaldt BlueJ projekt, som indeholder Java programmet HelloWorld. Programmet HelloWorld kan så bringes til at køre på NXT'en ved at gå igennem følgende trin:

  1. Tilslut NXT til computeren ved hjælp af et USB kabel.
  2. Tænd for NXT ved at trykke på den orange knap.
  3. Hent BlueJ projektet HelloWorld.zip og pak det ud til en mappe HelloWorld.
  4. Start BlueJ.
  5. Gå ind i menupunktet Project og vælg Open Project ... :

  6. I Open Project dialogboksen vælges mappen HelloWorld, som det BlueJ projekt, der skal åbnes. Derefter åbnes et BlueJ vindue, som indeholder HelloWorld projektet:
  7. Åben en menu ved klik på kassen HelloWorld (ctrl-klik på Mac, højre klik på Windows) og vælg NXT -> NXJ-RunUSB:
    Resultatet er, at NXT efter et stykke tid giver en lyd fra sig for at signalere, at programmet er overført til NXT'en. Dernæst køres programmet og resultatet er, at teksten "Hello World" vises på LCD skærmen.

    Et tryk på en af de fire knapper på NXT standser programmet HelloWorld, og på NXT vises leJOS hovedmenuen ganske som da NXT blev tændt. NXT slukkes ved tryk på den lille grå knap.

Prøv, at vælge Open Editor i kassen HelloWorld's menu og find teksten "Hello World" i det editorvindue, som åbnes:
Lav en ændring i teksten og tryk på Close for at lukke editorvinduet. Åben igen HelloWorld's menu. Vælg NXT -> NXJ-RunUSB. Resultatet er, at det rettede program HelloWorld overføres til NXT og at den nye tekst vises på LCD skærmen på NXT.

Det er altså linien System.out.println("Hello World"); i programmet, som får NXT til at skrive en tekst på LCD. Den næste linie i programmet, altså Button.waitForAnyPress(); får NXT til at vente på, at der trykkes på en af de fire knapper. Prøv at ændre denne linie til Button.ENTER.waitForPressAndRelease(); og kør det ændrede program. Nu er det kun tryk på den orange knap,også kaldes ENTER, som får programmet til at stoppe. Prøv. Se eventuelt i Buttons hvad de enkelte knapper kaldes og hvordan et program kan bringes til at vente på tryk på de forskellige knapper.

Kør programmet GoodbyeWorld på NXT

I BlueJ projektet HelloWorld er der også en kasse med navnet GoodbyeWorld. Kassen rummer en udvidelse af HelloWorld programmet, så NXT både viser tekster på LCD og spiller lyde. Prøv at få GoodbyeWorld til at køre på NXT.

Vælges Open Editor i GoodbyeWorld's menu, kan GoodbyeWorld programmet ses i editorvinduet:

Find Sound.buzz(); og tilføj Sound.pause(1000); Sound.buzz(); efter Sound.buzz();. Kør det ændrede program og hør forskellen. Se eventuelt i Sound hvordan et program kan bruge NXT's højtaler til at frembringe forskellige lyde.