250 likes | 668 Views
Kőnig Tibor http://blogs.msdn.com/tibork-on-ms Microsoft Magyarország. A Lego MINDSTORMS NXT programozása a Microsoft Robotics Studioval. Amiről szó lesz. Robotok A Lego MINDSTORMS NXT programozói szemmel Programozás kódolás nélkül: a Microsoft Visual Programming Language
E N D
Kőnig Tibor http://blogs.msdn.com/tibork-on-ms Microsoft Magyarország A Lego MINDSTORMS NXT programozása a Microsoft RoboticsStudioval
Amiről szó lesz • Robotok • A Lego MINDSTORMS NXT programozói szemmel • Programozás kódolás nélkül: a Microsoft Visual ProgrammingLanguage • Néhány működő robot (azaz a programjaik) elkészítése • Ötletbörze
Robotok A robotika három törvénye • A robotnak nem szabad kárt okoznia emberi lényben, vagy tétlenül tűrnie, hogy emberi lény bármilyen kárt szenvedjen. • A robot engedelmeskedni tartozik az emberi lények utasításainak, kivéve, ha ezek az utasítások az első törvény előírásaiba ütköznének. • A robot tartozik saját védelméről gondoskodni, amennyiben ez nem ütközik az első és második törvény előírásaiba. (A robotika kézikönyve, 56. kiadás, 2058)
A Lego MINDSTORMS NXT áttekintése • A Lego MINDSTORMS NXT összetevői • központi egység („NXT Brick”), rajta kijelző, nyomógombok (1) • nyomásérzékelő (2), hangerősség- (3), fényesség- (4) és távolságmérő (5) • 3 szervomotor (6) • Technic alkatrészek • egyszerű vizuális szoftverfejlesztői környezet • Más gyártók külön megvásárolható termékei • iránytű, szín- és gyorsulásmérő, infravörös érzékelő és labda (HiTechnic, MindSensors) • további futtató- és fejlesztőkörnyezetek (nagyrészt ingyenesek)
A Lego MINDSTORMS NXT programozói szemmel • Az NXT Brick főbb adatai: • 32 bites CPU • 64 kB memória • USB 2.0 • Bluetooth • 100 x 64 pixeles képernyő (4 szürkeárnyalat) • Ez az a „számítógép”, amelyet programozhatunk… • … vagy mégsem?
A Lego MINDSTORMS NXT programozói szemmel Az NXT háromféle üzemmódban használható: RoboticsStudio RoboticsStudio
Programozás kódolás nélkül: a Visual ProgrammingLanguage • Egyszerű, vizuális programozást tesz lehetővé vidd-és-dobd egérműveletek segítségével • alakzatok elhelyezése egy diagramon • alakzatok összekötése, tulajdonságaik megadása • alkalmazás = diagram • Általános célú programozási nyelv, amely a Microsoft RoboticsStudio része • … többek között használható robotok programozására is
A VPL fejlesztőkörnyezet A fejlesztési projekt elemei Saját tevékenységek Diagram (= alkalmazás) Beépített tevékenységek A kijelölt szolgáltatás tulajdonságai Szolgáltatások
Beépített tevékenységek • A VPL alapszolgáltatásai • a programnyelv utasításai és beépített eljárásai • Adatkezelés • adat, változó, lista • Vezérlés • elágazás, egyesítés • Egyebek • számítások, megjegyzések
Saját tevékenységek • Meglévő összetevők „csomagolásával” előállított új, összetett tevékenységek • beépített és saját tevékenységek • szolgáltatások • Paraméterek • bemenő és kimenő • értesítések
Szolgáltatások • A VPL képességeit kiegészítő funkciók • külső eljárástárak • Hardvereszközök, szoftveres szolgáltatások, szimulációs környezetek • Konfigurációs űrlapok a szolgáltatások beállításához
Futtatás, hibakeresés Programok végrehajtásának követése, beállítások módosítása böngészőből Alkalmazások indítása a fejlesztő-környezetből és a parancssorból
Szimuláció • A „való világ” fizikai törvényeinek megfelelő szimulációs környezet • AGEIA, hardver- vagy szoftver-támogatással • A (robot-) alkalmazás a tényleges robot megépítése nélkül tesztelhető
Programozás a Visual ProgrammingLanguage használatával • Beépített és saját tevékenységek • Beépített szolgáltatások • Alkalmazások megépítése, futtatása DEMO
MINDSTORMS NXT robotok programozása a VPL segítségével • Minden Lego-gyártmányú és több külső összetevő elérhető szolgáltatás formájában • központi egység („brick”), motorok, érzékelők • speciális szolgáltatások • telep, hajtás, adatkezelés • HiTechnic és MindStorms érzékelők • gyorsulásmérő, iránytű • Az NXT-szolgáltatások és a RoboticsStudio egyéb tevékenységei, szolgáltatásai egyszerűen integrálhatók
MINDSTORMS NXT szolgáltatások egyedi beállításai • Központi egység • SerialPort: a Bluetooth-kapcsolat beállításakor kapott COM port száma • Motor • MotorPort: a port, amelyhez a motor csatlakozik (MotorA/B/C, AnyMotorPort) • Érzékelők • SensorPort: a port, amelyhez az érzékelő csatlakozik (Sensor1/2/3/4, AnySensorPort) • IsOn: a fényességmérő lámpáját kapcsolja be/ki • Hajtás • két motorból álló együttes • DistanceBetweenWheels: a két kerék távolsága méterben • WheelDiameter: a kerék átmérője méterben (0.055)
MINDSTORMS NXT robotok programozása a VPL segítségével • Távirányított robot készítése • Akadályok felderítésére, kikerülésére, megsemmisítésére (yesss! ) és adatok gyűjtésére képes robot készítése DEMO
Ötletbörze, avagy milyen robotokat építsünk? • Munka • „haletető”: teherszállítás, indítás gombbal, hanggal, időzítve és/vagy súlyérzékeléssel • „tojásválogató”: futószalagon/csúszdán érkező fehér és színes pingponglabdák szortírozása • „szobafelmérő”: helyiség teljes bejárása, akadály-, fény- és hangtérkép készítése, tárolása fájlban/listában/adatbázisban • „fényszabályozó”: villanykapcsoló fel- és lekapcsolása a helyiségben lévő fénytől függően
Ötletbörze, avagy milyen robotokat építsünk? • Munka (folytatás) • „autóparkoló”: hangparancsra beállás két akadály közötti üres helyre • „radar”: érzékelők körbeforgatása, a kapott távolság-, fényesség- és hangerőértékek megjelenítése • „manipulátor”: az egyik szervomotor kézi mozgatásának utánzása a másikkal • „fénytávírász”: zseblámpával adott morzejelek fogadása, értelmezése, leírása
Ötletbörze, avagy milyen robotokat építsünk? • Akrobatika • „tornász”: felugrik (és talpra esik ), bukfencezik, gurul, kézen/fejenáll • „lépcsőmászó”: esetleg vihet is valamit • Művészet • „billentyűs”: játékszintetizátor fölött mozgó „kéz” • „ütős”: ugyanez xilofonnal és ütőkkel • „dobos”: két „dobverő” (pergő és cin), egy „pedál” (lábdob) plusz játékdob, triangulum, stb.
Ötletbörze, avagy milyen robotokat építsünk? • Játék • „amőba”: X és O helyett pl. színes korongokat leolvasó szem és mozgató kéz (az alakfelismerés nem egyszerű) • „Kempelen Farkas”: egyszerű sakkjátékos (kéz), mögötte tetszőlegesen bonyolult, a játék állását fejben tartó program • „büntetődobó”: a labdát a mért távolságtól függően más-más erővel eldobó játékos
A RoboticsStudio összetevőinek letöltése • A letöltések kezdőlapja • http://msdn2.microsoft.com/hu-hu/robotics/aa731520(en-us).aspx • Szükséges letöltések • Microsoft RoboticsStudio (1.5) Refresh • benne további önálló telepítők (AGEIA Physics, DirectX SDK, Microsoft .NET 3.0, Visual C++ Runtime, Visual Studioba integrált Súgó) – javasolt ezek telepítése is! • További hasznos letöltések • SumoCompetitionfor Microsoft RoboticsStudio (1.5) • SoccerSimulationfor Microsoft RoboticsStudio (1.5)