Kőnig Tibor Microsoft Magyarország
Robotok A Lego MINDSTORMS NXT programozói szemmel Programozás kódolás nélkül: a Microsoft Visual Programming Language Néhány működő robot (azaz a programjaik) elkészítése Ötletbörze
A robotika három törvénye 1. 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. 2. 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. 3. 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 ö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)HiTechnicMindSensors további futtató- és fejlesztőkörnyezetek (nagyrészt ingyenesek)
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?
Az NXT háromféle üzemmódban használható: ÜzemmódProgramozásFuttatásElőnyökHátrányok ÖnállóPC vagy NXTNXT (a program letöltése után) az NXT önállóan, PC nélkül működik a programok mérete korlátozott TávvezéreltPC vagy PDA, SmartPhone PC (parancsok küldése az NXT-nek) tetszőleges méretű és bonyolultságú program készíthető az NXT nem önállóan működik, a futtatáshoz kell a PC is SzimuláltPCPC (nincs is NXT, csak egy szimulált környezet) mint fent, plusz tetszőleges szimulált környezet kialakítható csak egy szimuláció… Robotics Studio
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 Robotics Studio része … többek között használható robotok programozására is
Beépített tevékenységek Saját tevékenységek Szolgáltatások Diagram (= alkalmazás) A kijelölt szolgáltatás tulajdonságai A fejlesztési projekt elemei
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
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
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
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
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ő
Beépített és saját tevékenységek Beépített szolgáltatások Alkalmazások megépítése, futtatása
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 Robotics Studio egyéb tevékenységei, szolgáltatásai egyszerűen integrálhatók
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)
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
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
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
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.
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 letöltések kezdőlapja hu/robotics/aa731520(en-us).aspx hu/robotics/aa731520(en-us).aspx Szükséges letöltések Microsoft Robotics Studio (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 Sumo Competition for Microsoft Robotics Studio (1.5) Soccer Simulation for Microsoft Robotics Studio (1.5)