NXT.NET for Lego Mindstorms

Néhány hónappal ezelőtt Dávid Zoli blogbejegyzése kapcsán figyeltem fel a Lego Mindstorms NXT készletére. Aki esetleg nem ismerné, ez egy olyan standard LEGO csomag, amiből programozható robotot építhetünk. A robot "agya" az ún. NXT Brick képes egyszerre négy szenzor jelét venni és három motort vezérelni, sőt a legszebb az egészben, hogy Bluetooth kapcsolatos keresztül távvezérelhető. Szóval nem csak egy gyerekjátékról van szó, sokkal több lehetőséget rejt ez a készlet magában. Nem véletlen, hogy a világban több helyen már ezt használják arra, hogy a diákokkal megszerettessék a programozást és elsajátíttassák a programozás alapjait. Aki nem hiszi, nézze meg ezt a videót egy Lego robotról, amelyik kirakja a Rubik kockát!

Mivel a Bluetooth kapcsolat soros portként látszik, ezért nem ördöngösség a .NET Framework SerialPort osztályán keresztül programozni. Bár ezt már többen megírták, én mégis nekiláttam, hogy életem első robotját a saját .NET alkalmazásomon keresztül távirányítsam. A dolog meglepően gyorsan működött, bár persze számos fejlesztői doksit kellett végigbújni, melyek szerencsére publikusan elérhetőek a Lego oldalán.

Az eredmény egy osztálykönyvtár lett, mely végül az NXT.NET nevet kapta. Teljes mértékben felügyelt kódban, C# 3.0-ban íródott és végül sikerült megoldani, hogy ugyanaz a forráskód változtatás nélkül csont nélkül forduljon .NET Framework 3.5-re és .NET Compact Framework 3.5-re is, tehát egyúttal a mobil változat is elkészült. A kód teljes mértékben angolul kommentezett, ide vezettem át mindent, amit a neten talált forráskódokból és dokumentációkból sikerült kiokoskodnom, így a C# fordító által generált XML kimenetből NDoc segítségével előállt az osztálykönyvtár fejlesztői CHM súgója, melyből íme egy képernyőfotó az elérhető típusok érzékeltetésére (ez is letölthető a CodePlexről):

Kattins a képre a teljes méret megtekintéséhez

A library teszteléséhez készült egy desktop és egy mobil alkalmazás, mindkettő természetesen felügyelt kódban. Bár még nem tud mindent, az alap kommunikáció, tulajdonságok lekérdezése, szenzorok konfigurálása és lekérdezése már megy. Ez látszik belőle Visual Studio 2008-ban:

NXT.NET desktop alkalmazás

Bár a motorok vezérlése még csak alapszinten implementált, elérkezettnek láttam az időt ahhoz, hogy megosszam az eredményt azokkal, akiket érdekel. A projekt súgóját és lefordított állományait kitettem a CodePlexre, onnan lehet letölteni őket. A forráskódokat egyelőre nem osztottam meg, de ha lesz érdeklődés a projekttel kapcsolatban, akkor tervezem azt is kitenni a netre.

Érdekel ez egyáltalán valakit rajtam kívül? Használ ma idehaza valaki Lego Mindstorms NXT-t?



Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2008.04.19. 7:43:45 | Permalink | Hozzászólások: 0 | Tárgyszavak: , ,


  • SQL Server programozása PL/SQL-ben

    Balássy György (MS RD, ASP.NET MVP, MCTS) Miután mindenki számára nyilvánvalóvá vált, hogy az Oracle Server egyáltalán nem “unbreakable”, egyre több cég keresett meg minket azzal a feladattal, hogy az alkalmazás mögött futó Oracle Servert cseréljük le Microsoft SQL Serverre, természetesen a forráskód módosítása nélkül. A két rendszer és a két nyelv között azonban számos különbség van, amit csak azzal tudtunk kiküszöbölni, hogy SQL Servernek közvetlenül megtanítottuk a PL/SQL-t. Tovább »
  • Dual boot VHD-ból

    Balássy György (MS RD, ASP.NET MVP, MCTS) Új gépet telepítek és azt találtam ki, hogy lesz rajta egyszerre egy Windows 7 és egy Windows Server 2008 R2 is. A Windows 7 fog a C: meghajtóról bootolni és a hozzá tartozó összes adat a W: meghajtón lesz. A Windows Server 2008 R2-t VHD-be telepítem, amit szintén a W: meghajtón fogok elhelyezni. Már jó ideje nem használtam dual bootot, mert zavart a sok partíció, de most úgy döntöttem, adok egy esélyt a VHD bootnak. Meglepett, hogy mennyire egyszerű mindezt összehozni. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások