Az NXT programozási lehetõség nélkül nem volna más, mint egy többfunkciós mozgó játék. A megfelelõ programozási nyelveket alkalmazva viszont önálló robottá válhat.
A robot programozása kétféle irányból közelíthetõ meg. Egyrészrõl a robot NXT egységébe tölthetõ le egy asztali gépen megírt program, másrészrõl egy asztali gépen futó program USB vagy Bluetooth kapcsolaton keresztül közvetlenül irányíthatja a robotot. Az elsõ megközelítés elõnye, hogy a robot teljesen autonóm módon mûködhet, ugyanakkor csak kellõen kis méretû és egyszerû programok írhatók meg így. A második megoldás mellett az szól, hogy a kis számítási és memóriakapacitású NXT eszköz helyett a lényegi számításokat a nagyságrendekkel nagyobb hardverkörnyezet végzi el. Ekkor viszont a kommunikációs kapcsolatnak kellõen gyorsnak és megbízhatónak kell lennie.
Az NXT programozására alkalmas nyelvek egy áttekintését mutatja az alábbi oldal, mely mindkét megközelítésmódot ismerteti.
Fontos megjegyezni azonban azt is, hogy a Mindstorms készlet programozása világszerte sokak fantáziáját megmozgatja, akik sok energiát áldoznak arra, hogy minél több és minél komolyabb megoldások szülessenek. Ebbõl következõen a lehetõségek szinte napról napra bõvülnek, mindig érdemes újabb, a kitalált feladathoz jól illeszkedõ szoftvereket keresni, a használt környezetek legújabb változatát alkalmazni.
Az elsõ csoportba tartozó legkézenfekvõbb programozási mód a LEGO által a készlethez adott cd-n található LEGO MindStorms NXT Software használata (a táblázatban NXT-G néven láthatók). Ez a programozási környezet elsõsorban nem programozóknak készült, akik grafikus építõkockákból a robot építéséhez hasonlóan viszonylag gyorsan állíthatják össze és konfigurálhatják az irányító programot. A környezet egyúttal néhány alap robottípus építését is támogatja, ahogy arról a következõ fejezetben szó lesz. A program hátránya, hogy hagyományos programozási nyelvekhez szokott fejlesztõnek eléggé idegen, komolyabb programok már nem igazán áttekinthetõek benne. A készülõ kód a többi megoldáshoz képest lassan fut és sok memóriát igényel.
A következõ lehetõség az ingyenes letölthetõ
NBC/NXC nyelvpáros használata, melyhez a szintén ingyenes
a Bricx Command Center biztosít programozási környezetet. A két nyelv közül az NXC a magasabb szintû, C programozási nyelvhez való hasonlóságát és különbözõségét neve is mutatja: Not eXactly C. Az NBC (Next Byte Codes) az NXT egység bájtkódjának felel meg, az NXC programok is elsõre erre a nyelvre fordulnak le. Ez a két programozási nyelv gyakorlott programozók számára készült, mélyebb szintû betekintést enged az NXT világába. Az eredményül kapott kód gyorsabb, kisebb méretû, mint a LEGO MindStorms NXT Software-rel elõállított.
Ugyanakkor a nyelv kifejezõereje még eléggé korlátos: ezen oldal írása közben készült el az a változat (NBC 1.0.1.b32 beta), amely tömbök esetében a változóval címzést is engedélyezi, ami egy ciklus megírásához eléggé fontos. Ezen kívül csak az egész számokat ismeri, így racionális számok kezelésére kerülõ megoldásként például a százszoros érték tárolása lehet megoldás.
Ráadásul a nyelv nem teljesen kiforrott a két fenti változat között például a NumOut függvény két paramétere valamiért megcserélõdött, sok vidám percet okozva a fejlesztõnek a hiba megtalálásáig és minden elkészült program módosításáig.
Reményt keltõ viszont, hogy a programnak szinte havonta jön ki új változata, ezért középtávon ezek a problémák is valószínûleg meg fognak oldódni.
Érdekes lehet még a robotikában komoly hírnévnek örvendõ Carnegie Mellon egyetem robotakadémiája által fejlesztett
RobotC nyelv, mely többek között a Mindstorms készlettel is használható. Bár ez a környezet nem ingyenes, van egy egyhónapos próbaváltozata is. A nyelv C-re épül, de az NXC-vel ellentétben a C teljes funkcionalitását biztosítja és ehhez ad ipari szabványokban megszokott C támogatást.
A
LeJOS programozási környezet az eddigi megoldásokon túlmegy abban az értelemben, hogy az NXT operációs rendszerét is lecseréli. Ennek hatására egy kicsi Java virtuális gép jelenik meg a roboton. Ez NXJ API-nak megfelelõ egyszerûsített, ugyanakkor NXT-vel kapcsolatos lehetõségekkel bõvített Java nyelvû programok futtatását teszi lehetõvé. Ez a megoldás sem tekinthetõ még igazán kiforrottnak, de néhány havonta új verzió készül el.
Az NXT kockát nem csak a saját beépített processzorán futó programok irányíthatják, hanem az USB vagy a Bluetooth csatlakozás túloldalán lévõ eszköz, leginkább számítógép is vezérelheti.
Ennek egyszerûbb formája, amikor a vezérlõ eszköz távirányítóként mûködik, vagyis az emberi utasításokat a kapcsolat sebességével viszi át a robotra. Erre többek között egy mobiltelefonra töltött javás alkalmazás, a BrickxCC, a RobotC is képes.
Ennél érdekesebb lehetõség, amikor egy PC-n futó program távirányítja a robotot a Bluetooth kapcsolaton át. Ebbõl a célbõl számos ismert programozási nyelvhez készül kiegészítés, így Java-hoz, C#-hoz (kettõ is), Perlhez, Pythonhoz, Rubyhoz.
forrás:[http://jataka.hu/rics/lego/index.html]