Este o serie care acoperă teoria și practica din toate domeniile informaticii

examen.press este o serie care transmite teorie și practică din toate domeniile informaticii pentru învățământul universitar.

este

Karsten Berns Daniel Schmidt Programare cu sisteme robot LEGO R MINDSTORMS R NXT, metodologie de proiectare, algoritmi 123

Cuprins 1 Introducere. 1 1.1 LEGO MINDSTORMS ca sistem de procesare a informațiilor. 2 1.2 Contribuția didactică a cărții. 3 1.3 Structura cărții. 4 2 robotică. 5 2.1 Roboți. 5 2.1.1 Originea istorică a roboților. 6 2.1.2 Aplicații și clasificare a sistemelor robotizate. 7 2.1.3 Robotica o zonă de cercetare interdisciplinară. 10 2.1.4 Programarea roboților. 11 2.2 Contribuția informaticii la robotică. 12 3 Bazele informaticii. 17 3.1 Dezvoltarea programului. 17 3.2 Modelare și abstractizare. 19 3.3 Elemente de programare. 21 3.3.1 Clase. 21 3.3.2 Structuri de date. 22 3.3.3 Metode și funcții. 25 3.3.4 Programe. 26 3.3.5 Logică și funcții. 26 3.3.6 Declarații și ramuri condiționate. 28 3.3.7 Bucle și repetări. 29 3.3.8 Observator. 31 3.4 Limbaje de programare și compilatoare. 32 3.4.1 Compilator. 32 3.4.2 Interpret. 34 3.5 Structura și funcția sistemelor de operare. 35 3.5.1 Procese. 36 3.5.2 Sisteme de operare. 37 3.6 Calculatoare și electronice. 37 ix

x Cuprins 4 Sistemul LEGO MINDSTORMS. 41 4.1 Microcontroler. 42 4.1.1 Interfața senzor/actuator. 43 4.1.2 Programe pregătite. 44 4.2 Actuatoare. 45 4.2.1 Motor electric. 45 4.2.2 Unelte. 48 4.3 Tehnologia senzorilor. 49 4.3.1 Senzor buton. 50 4.3.2 Senzor cu ultrasunete. 51 4.3.3 Senzor de lumină. 53 4.3.4 Senzor de culoare. 54 4.3.5 Senzor de zgomot. 55 4.3.6 Accelerometru. 56 4.3.7 Senzor busolă. 57 4.3.8 Senzor giroscopic. 58 4.3.9 Senzor RFID. 59 4.3.10 Alți senzori. 60 4.3.11 Evaluarea senzorilor. 61 5 Dezvoltarea programelor LEGO NXT. 63 5.1 Programare grafică cu NXT-G. 63 5.1.1 Mediul de programare. 64 5.1.2 Compilarea și pornirea. 65 5.1.3 Editarea programului. 65 5.1.4 Programe secvențiale și paralele. 66 5.1.5 Linii de date și variabile. 66 5.1.6 Funcția de ajutor și documentația. 68 5.2 Elemente de programare în NXT-G. 68 5.2.1 Paleta generală. 69 5.2.2 Acțiune. 69 5.2.3 Senzor. 70 5.2.4 Procedură. 72 5.2.5 Date. 73 5.2.6 Gama largă de funcții. 74 5.2.7 Blocuri proprii. 75 5.3 Exemplu de aplicație a robotului inteligent. 76 5.3.1 Robotul învață să conducă. 77 5.3.2 Evitarea obstacolelor. 81 5.3.3 Secvențe de linie. 86 5.4 Programarea sarcinilor cu NXT-G. 90 5.4.1 Secvențe de linie, evitând obstacolele și toate celelalte . 90 5.4.2 Robotul de pază. 91

xii Cuprins 7.4 Crearea hărții. 169 7.4.1 Bazele mapării. 169 7.4.2 Structura unei cărți de rețea. 171 7.4.3 Transformarea coordonatelor. 173 7.4.4 Detectarea caracteristicilor optice de mediu. 177 7.4.5 Recunoașterea și diferențierea dintre reperele RFID. 179 7.4.6 Cartografiere topologică. 180 7.4.7 Localizare bazată pe informații despre hartă. 182 7.5 Navigarea pe hărți. 183 7.5.1 Căutare algoritmi pentru hărți raster. 183 7.5.2 Căutare în grafice. 187 8 sarcini de programare cu LeJOS. 191 8.1 Sisteme staționare. 191 8.1.1 Scanare, desen și copiere. 191 8.1.2 Brațul robotului. 192 8.1.3 Sortare bilă. 193 8.1.4 Joc de moară. 194 8.1.5 Cubul lui Rubik Rubik. 196 8.1.6 Sudoku. 196 8.2 Sisteme de robot mobil. 197 8.2.1 Robot de curățare. 197 8.2.2 Curățarea roboților. 198 8.2.3 Geocachingul robotului. 199 8.2.4 Convoiul robotului. 200 8.2.5 Vehicul Braitenberg. 201 8.2.6 Robot omnidirecțional. 201 8.2.7 Sistem de preluare a comenzilor. 202 A Anexă. 203 A.1 Exerciții și experimente cu NXT. 203 A.2 Sfaturi și trucuri generale pentru LeJOS. 207 A.3 Soluții de exerciții și sfaturi pentru LeJOS. 209 A.4 Sursele de aprovizionare și contactele companiei. 214 A.5 Limbaje de programare suplimentare pentru dennxt. 215 Glosar. 217 Literatură. 227 Index de subiecte. 231

16 2 Robotica rămâne ridicată, deoarece nevoile industriei nu pot fi satisfăcute cu greu de absolvenți și în viitor vor fi necesari mai mulți specialiști IT. În capitolul următor, se transmit cunoștințe IT de bază, care stau la baza oricărei formări IT. Aceasta include componentele computerului, precum și elementele și instrumentele de programare.

4.3 Tehnologia senzorilor 61 4.3.11 Evaluarea senzorilor Pe lângă recepționarea și conversia fizică în cantități electronice, evaluarea și procesarea senzorilor joacă un rol decisiv. Aproape toți senzorii necesită ajustări la valorile senzorilor pentru a filtra interferențele, a amplifica valorile sau a evalua doar anumite zone de recepție. Metodele clasice pentru filtrarea interferențelor funcționează la valori medii. Fie ultimele n măsurători ale valorii senzorului s sunt mediate n s mediate = 1 n s i = s 1 + s 2 +. + sn (4.8) i = 1 n sau noua valoare s este inclusă doar în valoarea de ieșire la un anumit procent p [0.1]: s filtru = (1 p) s filtru vechi + ps (4.9) O altă posibilitate este Filtru mediu, care este unul dintre așa-numitele filtre de clasare. Valoarea filtrată este determinată din ultimele n măsurători, sortându-le în funcție de dimensiune și selectând valoarea medie. Dacă n este un număr par, se calculează media celor două valori ale senzorului de mijloc: < 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 Exemplu de aplicație: robot inteligent 89 gen cu tasta Enter portocalie pe un fundal foarte deschis, unde calibrarea este finalizată confirmând din nou cu tasta Enter. Calibrarea poate fi efectuată utilizând acest program încărcat pe NXT sau utilizând blocuri de calibrare din gama largă de funcții din gama extinsă. Valoarea luminozității rezultată a unui senzor de lumină este redusă de la valoarea brută a senzorului, care este între 0 și 1023, folosind formula 5.4. Aceste valori minime și maxime sunt determinate prin calibrare. Acest lucru se poate face după fiecare modificare a condițiilor de iluminare de pe NXT și nu trebuie să schimbe valorile limită, de exemplu atunci când se fac comparații în program. 0 dacă valoarea brută 0 d> 0 redă sunetul cu înălțimea f și durata df = 0 d> 0 pauză cu durata df> 0 d = 0 setați viteza la f BPM f> 0 d = 1 setați volumul la f procent 16 http: //extras.springer.com/

104 5 Dezvoltarea programelor LEGO NXT Sarcina de programare 40: Controlul poziției În timp, se poate întâmpla ca construcția să se miște mai jos sau mai sus în timpul controlului până când a atins punctele finale ale mișcării posibile. Programul urmează să fie extins, astfel încât sistemul, atunci când este într-o stare echilibrată, să se niveleze din nou la nivelul de pornire. Pentru a face acest lucru, senzorii de rotație ai celor trei motoare trebuie să fie setați la 0 la început. Dacă sistemul este (relativ) în repaus, toate motoarele ar trebui să se deplaseze în sus sau în jos sincron pentru a-și readuce valorile de rotație (în grade) la 0 în medie. Sarcina de programare 41: Setarea înălțimii În plus față de cele două rotații, înălțimea reprezintă un al treilea grad de libertate reglabil.