Olyan sorozat, amely az elméletet és a gyakorlatot a számítástechnika minden területéről lefedi

Az examen.press egy olyan sorozat, amely elméletet és gyakorlatot közvetít az informatika minden területéről az egyetemi oktatás számára.

elméletet

Karsten Berns Daniel Schmidt Programozás LEGO R MINDSTORMS R NXT robotrendszerekkel, tervezési módszertan, algoritmusok 123

Tartalom 1 Bevezetés. 1 1.1 A LEGO MINDSTORMS mint információfeldolgozó rendszer. 2 1.2 A könyv tanítási közreműködése. 3 1.3 A könyv felépítése. 4 2 robotika. 5 2.1 Robotok. 5 2.1.1 A robotok történelmi eredete. 6 2.1.2 A robotrendszerek alkalmazása és osztályozása. 7 2.1.3 Robotika interdiszciplináris kutatási terület. 10 2.1.4 Robotok programozása. 11 2.2 A számítástechnika hozzájárulása a robotikához. 12 3 A számítástechnika alapjai. 17 3.1 Programfejlesztés. 17 3.2 Modellezés és absztrakció. 19 3.3 A programozás elemei. 21 3.3.1 Osztályok. 21 3.3.2 Adatszerkezetek. 22 3.3.3 Módszerek és funkciók. 25 3.3.4 Programok. 26 3.3.5 Logika és funkciók. 26 3.3.6 Feltételes állítások és ágak. 28 3.3.7 Hurkok és ismétlések. 29 3.3.8 Megfigyelő. 31 3.4 Programozási nyelvek és fordítók. 32 3.4.1 Fordító. 32 3.4.2 Tolmács. 34 3.5 Az operációs rendszerek felépítése és működése. 35 3.5.1 Folyamatok. 36 3.5.2 Operációs rendszerek. 37 3.6 Számítógépek és elektronika. 37 ix

x Tartalomjegyzék 4 A LEGO MINDSTORMS rendszer. 41 4.1 Mikrovezérlő. 42 4.1.1 Érzékelő/működtető interfész. 43 4.1.2 Kész programok. 44 4.2 Működtető elemek. 45 4.2.1 Villamos motor. 45 4.2.2 Fogaskerék. 48 4.3 Érzékelő technológia. 49 4.3.1 Nyomógomb érzékelő. 50 4.3.2 Ultrahangos érzékelő. 51 4.3.3 Fényérzékelő. 53 4.3.4 Színérzékelő. 54 4.3.5 Zajérzékelő. 55 4.3.6 Gyorsulásmérő. 56 4.3.7 Iránytű érzékelő. 57 4.3.8 Giroszkóp érzékelő. 58 4.3.9 RFID-érzékelő. 59 4.3.10 Egyéb érzékelők. 60 4.3.11 Az érzékelő értékelése. 61 5 LEGO NXT programok fejlesztése. 63 5.1 Grafikus programozás az NXT-G-vel. 63 5.1.1 A programozási környezet. 64 5.1.2 Összeállítás és indítás. 65 5.1.3 Program szerkesztése. 65 5.1.4 Szekvenciális és párhuzamos programok. 66 5.1.5 Adatsorok és változók. 66 5.1.6 Súgó funkció és dokumentáció. 68 5.2 Programozási elemek az NXT-G-ben. 68 5.2.1 Általános paletta. 69 5.2.2 Művelet. 69 5.2.3 Érzékelő. 70 5.2.4 Eljárás. 72 5.2.5 Adatok. 73 5.2.6 A funkciók széles skálája. 74 5.2.7 Saját blokkok. 75 5.3 Intelligens robot alkalmazási példája. 76 5.3.1 A robot megtanul vezetni. 77 5.3.2 Az akadályok elkerülése. 81 5.3.3 Vonalsorok. 86 5.4 Programozási feladatok az NXT-G-vel. 90 5.4.1 Vonalsorok, elkerülve az akadályokat és az összes többit 90 5.4.2 A védőrobot. 91.

xii Tartalomjegyzék 7.4 Térkép létrehozása. 169 7.4.1 A térképezés alapjai. 169 7.4.2 A rácskártya felépítése. 171 7.4.3 Koordináta transzformáció. 173 7.4.4 Optikai környezeti jellemzők észlelése. 177 7.4.5 Az RFID tereptárgyak felismerése és megkülönböztetése. 179 7.4.6 Topológiai térképezés. 180 7.4.7 Lokalizálás térképinformációk alapján. 182 7.5 Navigálás a térképeken. 183 7.5.1 Keresési algoritmusok raszteres térképekhez. 183 7.5.2 Útkeresés grafikonokban. 187 8 programozási feladat a LeJOS-szal. 191 8.1 Helyhez kötött rendszerek. 191 8.1.1 Szkennelés, rajzolás és másolás. 191 8.1.2 Robotkar. 192 8.1.3 Labdaválogató. 193 8.1.4 Malomjáték. 194 8.1.5 Rubik Rubik-kockája. 196 8.1.6 Sudoku. 196 8.2 Mobil robot rendszerek. 197 8.2.1 Tisztító robot. 197 8.2.2 Robotok tisztítása. 198 8.2.3 Robot geocaching. 199 8.2.4 Robotkonvoj. 200 8.2.5 Braitenberg jármű. 201 8.2.6 Körirányú robot. 201 8.2.7 Rendelésfelvételi rendszer. 202 A függelék. 203 A.1 Gyakorlatok és kísérletek az NXT-vel. 203 A.2 Általános tippek és trükkök a LeJOS-on. 207 A.3 Gyakorlási megoldások és megoldási tippek a LeJOS számára. 209 A.4 Az ellátás forrásai és a vállalati kapcsolatok. 214 A.5 További programozási nyelvek a dennxt számára. 215 Szójegyzék. 217 Irodalom. 227 Tárgymutató. 231

16 2 A robotika továbbra is magas, mivel az ipar igényeit a diplomások alig tudják kielégíteni, és a jövőben több mint kevesebb informatikai szakemberre lesz szükség. A következő fejezetben átadják az alapvető informatikai ismereteket, amelyek minden informatikai képzés alapját képezik. Ez magában foglalja a számítógép alkatrészeit, valamint a programozási elemeket és eszközöket.

4.3 Érzékelő rendszer 61 4.3.11 Érzékelő kiértékelése A fizikai adatok elektronikus mennyiségekké történő átvétele és átalakítása mellett az érzékelők kiértékelése és feldolgozása meghatározó szerepet játszik. Szinte az összes érzékelőt az érzékelő értékéhez kell igazítani az interferencia kiszűrése, az értékek felerősítése vagy csak bizonyos vételi területek értékelése céljából. Az interferencia szűrésére szolgáló klasszikus módszerek átlagértékeken működnek. Vagy az s érzékelő értékének utolsó n mérését átlagoljuk n s átlagban = 1 n s i = s 1 + s 2 +. + sn (4.8) i = 1 n, vagy az új s érték csak bizonyos százalékban szerepel a kimeneti értékben p [0.1]: s filter = (1 p) s filterold + ps (4.9) Egy másik lehetőség a Mediánszűrő, amely az egyik úgynevezett rangsorszűrő. A szűrt értéket az utolsó n mérés alapján határozzuk meg méretük szerinti rendezéssel és az átlagérték kiválasztásával. Ha n páros szám, akkor a két középső érzékelő értékének átlagát kell kiszámítani: < s j n ungerade, j =(n + 1)/2 s median = s j +s j+1 2 n gerade, j = n/2 (4.10) mit Sortierung s 1. s j. s n Alle drei Verfahren sorgen dafür, dass die Werte geglättet werden, das bedeutet, einzelne Ausreißer wirken sich kaum auf den Ausgangswert aus. Dafür reagiert der Filter träge bei Wertänderungen, je nach Anzahl n der gemittelten Daten bzw. nach der Größe des Anteils p (siehe Abb. 4.16). Man muss bei der Wahl von n also immer einen Kompromiss aus guter Glättung (großes n) und schneller Reaktion (kleines n) eingehen. In der Elektrotechnik werden häufig Filter verwendet, die in Schaltungen realisiert sind. Beispiele dafür sind sogenannte Tief- oder Hochpassfilter, die bestimmte Frequenzen unterdrücken können. Bei einem Tiefpassfilter können niederfrequente Signale fast ungeschwächt passieren, wohingegen hochfrequente Signale herausgefiltert werden. Eine der häufigsten Anwendungen für Filter ist die Rauschunterdrückung. So sollen beispielsweise bei Audiosignalen (Schallwellen) bestimmte Frequenzen (Störungen) herausgefiltert werden (Dolby B/C bei Kassettenrecordern, Radio). Aber auch im Auto kommen bei Einparkhilfen oder Navigationssystemen Filter zum Einsatz, die dafür sorgen, dass die gemessenen Entfernungswerte oder die GPS-Position nicht springen.

5.3 Alkalmazási példa Intelligent 89 robot, narancssárga Enter gombbal nagyon világos háttér előtt, ahol a kalibrálás az Enter gombbal történő újbóli megerősítéssel fejeződik be. A kalibrálás elvégezhető ezzel a programmal, amelyet az NXT-re töltöttek, vagy kalibrációs blokkokat használhat a kiterjesztett tartományban lévő nagy funkciósávból. A fényérzékelő eredő fényerő-értékét az 5.4 képlet segítségével az érzékelő nyers értékétől, amely 0 és 1023 között van, skálázzák. Ezeket a minimális és maximális értékeket kalibrálás segítségével határozzák meg. Ezt az NXT fényviszonyainak minden megváltoztatása után megteheti, és nem kell módosítania a határértékeket, például amikor összehasonlítást végez a programban. 0, ha a nyers érték 0 d> 0 hangot játszik le f magassággal és időtartammal df = 0 d> 0 szünet df időtartammal> 0 d = 0 állítsa a sebességet f BPM f> 0 d = 1 állítsa a hangerőt f százalékra 16 http: //extras.springer.com/

104 5 LEGO NXT programok fejlesztése 40. programozási feladat: Helyzetszabályozás Idővel előfordulhat, hogy a konstrukció a vezérlés alatt lejjebb vagy feljebb mozog, amíg el nem éri a lehetséges mozgás végpontjait. A programot most úgy kell kibővíteni, hogy a rendszer, amikor kiegyensúlyozott állapotban van, a kiindulási szinten ismét kiegyenlítődik. Ehhez a három motor forgásérzékelőit az elején 0-ra kell állítani. Ha a rendszer (viszonylag) nyugalomban van, akkor az összes motornak szinkronban kell felfelé vagy lefelé mozognia annak érdekében, hogy forgási értékeik (fokban) átlagosan 0-ra kerüljenek. 41. programozási feladat: A magasság beállítása A két forgatás mellett a magasság egy harmadik beállítható szabadságfokot jelent.Az előző feladat meghosszabbítható, hogy a normál magasság az NXT gombjaival állítható legyen.