LeJOS to alternatywny zastępnik oryginalnego firmware LEGO wgrywany do RCX-a.
Pamięć w RCX jest podzielona na ROM i RAM. W ROM znajdują się funkcje za pomocą których można sterować procesorem i wejsciami/wyjściami RCX-a. W skrócie: wywołuje się funkcję z ROM aby powiedzieć RCX-owi, że ma zakręcić silnikiem A w przód, a inna aby zatrzymać ten silnik albo aby odczytać wartość z czujnika. Do RAM-u wgrywa się firmware - czyli tak jakby program sterujący, który potrafi zinterpretować program stworzony na komputerze i przetłumaczyć go na wywołania funkcji z ROM. Oryginalny firmware LEGO służy do interpretacji programów napisanych w oryginalnym oproramowaniu dostarczanym z RIS (Robotic Invention System - bardzo prosty sposób programowania, żeby nie powiedzieć prymitywny) oraz w ROBOLAB (dużo bardziej złożone środowisko programistyczne, ale nadal "klikalskie")
Z powodu, że oprogramowanie LEGO jest jakie jest, powstały zastępniki. Są trzy rodzaje zastępników:
- Zastępnik który korzysta zarówno z funkcji zawartych w pamięci ROM RCX-a, jak i oryginalnego firmware LEGO wgrywanego doniego. Działa w ten sposób, że programy piszę się w konkretnym języku i używa specjalnie do tego celu stworzonego kompilatora tak aby program wynikowy był możliwy do uruchomienia na oryginalnym firmware LEGO. Takim zastępnikiem jest np. oprogramowanie NQC (Not Quite C - Nie całkiem język C).
- Inny rodzaj zastępnika to podejście od drugiej skrajnej strony - niekorzystający ani z oryginalnego firmware LEGO jak i z funkcji zaimplementowanych w ROM. Sztandarowym przykładem takiego zastępnika jest Legos - posiadający swój firmware, który po wgraniu do RCX-a nie używa funkcji zaimplementowanych w pamięci ROM, tylko sam steruje procesorem, pamięcia itd. Podany tu jako przykład Legos ma dwa duże plusy: z racji działania na "żywym organiźmie" z pominięciem funcji z pamięci ROM jest bardzo szybki, oraz to że programy piszę się w języku C lub C++ co zadowoli nawet zaawansowanych programistów.
- Ostatni rodzaj zastępnika to hybryda. Posiada swój firmware, ale ten firmware korzysta z funkcji zawartych w pamięci ROM do sterowania sprzętem. Dzieki temu może nie jest taki szybki, ale jest mniejszy i może posiadać bardziej wyrafinowaną strukturę. I takim właśnie zastępnikiem jest LeJOS. Językiem programowania, w którym tworzy się programy jest Java (!) a wgrywany do RCX-a firmware jest niczym innym jak malutką maszyną wirtualną Javy! LeJOS rozwija się jako LEGO Java OS.
LeJOS jest w tej chwili jednym z najbardziej zaawansowanych zastępników. Nie porównam go z Legos-em bo nie interesuje mnie on zupełnie, ale mogę powiedzieć, że napewno jest bardziej rozbudowany od NQC (ponieważ ten korzysta z oryginalnego firmware LEGO i jest nim ograniczony). Natomiast biblioteke API LeJOS-a na chwilę obecną jest imponująca a projekt (mimo tego, że powoli) nadal jest rozwijany!
Na stronach w tym dziale będę umieszczał moje doświadczenia z pisaniem programów na RCX-a w języku Java, wykorzystujących API LeJOS-a.
Aktualnie jedyną wersją LeJOS-a, która w miarę bezproblemowo współpracuje z wieżyczką na USB pod Linuxem, jest wersja z CVS projektu. Można powiedzieć, że jest to rozwojowa wersja wersji 3.0 LeJOS-a, którego Preview niedawno został przez twórców wypuszczony. Pod Windowsem bardzo dobrze działa oficjalna stabilna wersja 2.1 z obydwoma rodzajami wieżyczek, natomiast wersja stabilna 2.1 pod Linuxem podobno działa tylko z wieżyczką szeregową. Nie wiem napewno, bo nie posiadam wieżyczki szeregowej.
Moje strony o LEGO