Е поредица, която обхваща теорията и практиката от всички области на компютърните науки

examen.press е поредица, която пренася теория и практика от всички области на компютърните науки за университетско образование.

обхваща

Карстен Бернс Даниел Шмит Програмиране с роботизирани системи LEGO R MINDSTORMS R NXT, методология на проектиране, алгоритми 123

Съдържание 1 Въведение. 1 1.1 LEGO MINDSTORMS като система за обработка на информация. 2 1.2 Преподавателски принос на книгата. 3 1.3 Структура на книгата. 4 2 роботика. 5 2.1 Роботи. 5 2.1.1 Исторически произход на роботите. 6 2.1.2 Приложения и класификация на роботизирани системи. 7 2.1.3 Роботика - интердисциплинарна изследователска област. 10 2.1.4 Програмиране на роботи. 11 2.2 Принос на компютърните науки към роботиката. 12 3 Основи на компютърните науки. 17 3.1 Разработване на програма. 17 3.2 Моделиране и абстракция. 19 3.3 Елементи на програмирането. 21 3.3.1 Класове. 21 3.3.2 Структури на данни. 22 3.3.3 Методи и функции. 25 3.3.4 Програми. 26 3.3.5 Логика и функции. 26 3.3.6 Условни отчети и разклонения. 28 3.3.7 Цикли и повторения. 29 3.3.8 Наблюдател. 31 3.4 Езици за програмиране и компилатори. 32 3.4.1 Съставител. 32 3.4.2 Преводач. 34 3.5 Структура и функция на операционните системи. 35 3.5.1 Процеси. 36 3.5.2 Операционни системи. 37 3.6 Компютри и електроника. 37 ix

x Съдържание 4 Системата LEGO MINDSTORMS. 41 4.1 Микроконтролер. 42 4.1.1 Интерфейс на сензор/изпълнителен механизъм. 43 4.1.2 Подготвени програми. 44 4.2 Задвижващи механизми. 45 4.2.1 Електрически мотор. 45 4.2.2 Зъбно колело. 48 4.3 Сензорна технология. 49 4.3.1 Сензор за бутон. 50 4.3.2 Ултразвуков сензор. 51 4.3.3 Сензор за светлина. 53 4.3.4 Цветен сензор. 54 4.3.5 Сензор за шум. 55 4.3.6 Акселерометър. 56 4.3.7 Сензор за компас. 57 4.3.8 Жиросензор. 58 4.3.9 RFID сензор. 59 4.3.10 Други сензори. 60 4.3.11 Оценка на сензора. 61 5 Разработване на програми LEGO NXT. 63 5.1 Графично програмиране с NXT-G. 63 5.1.1 Програмна среда. 64 5.1.2 Компилиране и стартиране. 65 5.1.3 Програма за редактиране. 65 5.1.4 Последователни и паралелни програми. 66 5.1.5 Линии за данни и променливи. 66 5.1.6 Помощна функция и документация. 68 5.2 Програмиране на елементи в NXT-G. 68 5.2.1 Обща палитра. 69 5.2.2 Действие. 69 5.2.3 Сензор. 70 5.2.4 Процедура. 72 5.2.5 Данни. 73 5.2.6 Голям набор от функции. 74 5.2.7 Собствени блокове. 75 5.3 Пример за приложение на интелигентен робот. 76 5.3.1 Роботът се научава да шофира. 77 5.3.2 Избягване на препятствия. 81 5.3.3 Поредици от редове. 86 5.4 Програмиране на задачи с NXT-G. 90 5.4.1 Поредици от линии, като се избягват препятствия и всички останали 90 5.4.2 Роботът-пазач. 91

xii Съдържание 7.4 Създаване на карта. 169 7.4.1 Основи на картографирането. 169 7.4.2 Структура на мрежова карта. 171 7.4.3 Трансформация на координати. 173 7.4.4 Откриване на оптични характеристики на околната среда. 177 7.4.5 Разпознаване и разграничаване между RFID ориентири. 179 7.4.6 Топологично картографиране. 180 7.4.7 Локализация въз основа на информация за картата. 182 7.5 Навигиране по карти. 183 7.5.1 Алгоритми за търсене на растерни карти. 183 7.5.2 Намиране на път в графики. 187 8 задачи за програмиране с LeJOS. 191 8.1 Стационарни системи. 191 8.1.1 Сканиране, рисуване и копиране. 191 8.1.2 Рамо на робота. 192 8.1.3 Сортирач на топки. 193 8.1.4 Воденична игра. 194 8.1.5 Кубчето на Рубик на Рубик. 196 8.1.6 Судоку. 196 8.2 Мобилни роботизирани системи. 197 8.2.1 Робот за почистване. 197 8.2.2 Роботи за почистване. 198 8.2.3 Геокеширане на роботи. 199 8.2.4 Конвой на робот. 200 8.2.5 Превозно средство Braitenberg. 201 8.2.6 Всепосочен робот. 201 8.2.7 Система за избор на поръчки. 202 A Приложение. 203 A.1 Упражнения и експерименти с NXT. 203 A.2 Общи съвети и трикове за LeJOS. 207 A.3 Решения за упражнения и съвети за решения за LeJOS. 209 A.4 Източници на доставки и контакти с компанията. 214 A.5 Допълнителни езици за програмиране за dennxt. 215 Речник. 217 Литература. 227 Предметен индекс. 231

16 2 Роботиката остава висока, тъй като завършилите трудно могат да задоволят нуждите на индустрията и в бъдеще ще са необходими повече от по-малко ИТ специалисти. В следващата глава са дадени основни познания за ИТ, които са в основата на всяко обучение по ИТ. Това включва компютърните компоненти, както и програмни елементи и инструменти.

4.3 Сензорна технология 61 4.3.11 Оценка на сензора Освен получаване и преобразуване на физически в електронни величини, оценката и обработката на сензорите играят решаваща роля. Почти всички сензори трябва да бъдат настроени към стойностите на сензора, за да се филтрират смущения, да се усилят стойностите или да се оценят само определени зони на приемане. Класическите методи за филтриране на смущения работят върху средни стойности. Или последните n измервания на стойността на сензора s са усреднени n s усреднени = 1 n s i = s 1 + s 2 +. + sn (4.8) i = 1 n или новата стойност s е включена само в изходната стойност до определен процент p [0.1]: s filter = (1 p) s filterold + ps (4.9) Друга възможност е Среден филтър, който е един от така наречените филтри за класиране. Филтрираната стойност се определя от последните n измервания, като се сортират според размера и се избере средната стойност. Ако n е четно число, се изчислява средната стойност на двете средни стойности на сензора: < 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 Пример за приложение Intelligent Robot 89 gen с оранжевия бутон Enter на много светъл фон, където калибрирането завършва чрез потвърждаване отново с клавиша Enter. Калибрирането може да се извърши с помощта на тази програма, заредена на NXT, или с помощта на калибриращи блокове от големия набор от функции в разширения диапазон. Получената стойност на яркостта на светлинния сензор се мащабира от суровата стойност на сензора, която е между 0 и 1023, като се използва формула 5.4. Тези минимални и максимални стойности се определят чрез калибриране. Можете да направите това след всяка промяна в условията на осветление на NXT и не е необходимо да променяте граничните стойности, например когато правите сравнения в програмата. 0 ако сурова стойност 0 d> 0 възпроизвежда звук с височина f и продължителност df = 0 d> 0 пауза с продължителност df> 0 d = 0 задайте скоростта на f BPM f> 0 d = 1 задайте силата на звука на f процента 16 http: //extras.springer.com/

104 5 Разработване на програми LEGO NXT Задача за програмиране 40: Контрол на позицията С течение на времето може да се случи конструкцията да се движи по-ниско или по-високо по време на управлението, докато достигне крайните точки на възможното движение. Сега програмата трябва да бъде разширена по такъв начин, че системата, когато е в балансирано състояние, да се изравнява отново на началното ниво. За да направите това, сензорите за въртене на трите двигателя трябва да бъдат настроени на 0 в началото. Ако системата (относително) е в покой, всички двигатели трябва да се движат синхронно нагоре или надолу, за да върнат средно стойностите си на въртене (в градуси) до 0. Задача за програмиране 41: Задаване на височина В допълнение към двете завъртания, височината представлява трета регулируема степен на свобода.