Вступ:Наше третє заняття ми присвятимо вивченню обчислювальних можливостей модуля EV3 і розберемо приклади практичних рішень задач на обчислення траєкторії руху. Знову запускаємо середу програмування Lego mindstorms EV3, завантажуємо наш проект lessons.ev3 і додаємо в проект нову програму - lesson-3-4. Додавати нову програму в проект ми навчилися з вами на попередньому уроці. 3.1. Червона палітра - операції з данимиПрограмні блоки, необхідні для виконання різних операцій над числовими, логічними або текстовими даними, зосереджені в червоній палітрі середовища програмування Lego mindstorms EV3. Червона палітра містить 10 програмних блоків. На відміну від зеленої палітри - з програмними блоками червоною палітри ми будемо знайомитися поступово, у міру просування по курсу програмування і виникнення необхідності в нових програмних конструкціях. рис.1 3.2. Числові значення. Блок "Константа", блок "Змінна"Середовище програмування Lego mindstorms EV3 дозволяє нам обробляти в своїх програмах п'ять різних типів даних: "Текст" , "Числове значення" , "Логічне значення" , "Числовий масив" , "Логічний масив" . У сьогоднішньому уроці ми навчимося оперувати з числовими даними. Тип даних "Числове значення" дозволяє нам виконувати різні математичні операції над числами. Числа в програмі можуть бути як позитивними, так і негативними, бути цілими значеннями або містити десяткову дріб. Приклади: -15 ; 3,145 ; 8 ; -247,34 . Перед тим, як почати обробляти різні типи даних в наших програмах, нам треба навчитися їх створювати і зберігати. Для цих цілей середовище програмування Lego mindstorms EV3 надає два види програмних блоків: "Змінна" і "Константа" . Ці блоки дозволяють створити в пам'яті робота спеціальні осередки, що дозволяють записувати, витягувати і редагувати різні типи даних. Програмний блок "Константа" (Рис. 2)дозволяє створювати осередок пам'яті для зберігання одного з п'яти типів даних (Рис. 2 поз. 1) . Необхідне значення записується в осередок на етапі створення програми (Рис. 2 поз. 2) і залишається незмінним під час виконання всієї програми. Для отримання значення,"Константа" використовується "Висновок" (Рис. 2 поз. 3) . Детальніше з витяганням даних з програмних блоків ми познайомимося нижче при вирішенні практичного завдання Уроку №3. Мал. 2 На відміну від програмного блоку "Константа" - в блоці "Змінна" присутні два режими "Зчитування" і "Записати" (Рис. 3 поз. 1) . Перед першим використанням необхідно задати ім'я змінної, вибравши параметр блоку "Додати змінну" (Рис. 3 поз. 2) . Ім'я змінної може містити тільки великі і малі літери латинського алфавіту, цифри, а також символи _ і - . Задати значення змінної можна, записавши або передавши число в параметр "Значення" (Рис. 3 поз. 3) . Мал. 3 3.3. Блок математика, блок округлення Для виконання математичних обчислень служить програмний блок "Математика" . Він дозволяє виконати обрану математичну операцію (Рис. 4 поз. 1) над двома числами, заданими параметрами "a" і "b" . В режимах "Абсолютна величина" і "Квадратний корінь" для обчислення доступний тільки один параметр "a" . Мал. 4 Окремо слід зупинитися на режимі "Додатки" . В цьому режимі кількість параметрів для розрахунку збільшується до чотирьох: "a" , "b" , "c" і "d" . У параметр "Рівняння" (Рис. 5 поз. 1) можна вписати будь-яку довільну формулу, яка виробляє обчислення з цими параметрами. Мал. 5 Іноді виникає необхідність провести округлення результату обчислення. Наприклад: при налагодженні програми, можна виводити на екран модуля EV3 округлені проміжні розрахунки, щоб легше було візуально контролювати хід виконання програми. Для цього призначений програмний блок "Округлення" (Рис. 6) . Режими "До найближчого" , "Округлити до більшого" і "Округлити до меншого" виробляють округлення до цілого значення. У режимі "Відкинути дробову частину" можна задати кількість залишених знаків дробової частини після коми. Мал. 6 3.4. Приклади виконання обчислень в програміНастав час застосувати отримані знання на практиці. Завдання №4: необхідно написати програму прямолінійного руху для проїзду роботом відстані в 1 метр. Рішення: За один повний оборот мотора робот проїжджає відстань, рівну довжині окружності колеса. Цю відстань можна знайти, помноживши число Пі (= 3,14159) на діаметр колеса. Діаметр колеса з освітнього набору Lego mindstorms EV3 дорівнює 56 мм , а - з домашнього набору Lego mindstorms EV3 дорівнює 43,2 мм . Якщо переведемо відстань в 1 метр в міліметри (1000 мм) і розділимо на відстань, яке робот проходить за один оборот мотора, то дізнаємося: скільки оборотів мотора необхідно для проїзду всього заданого відстані. Мал. 7 Приступимо до створення програми:
Завантажимо отриману програму в нашого робота. Поставимо робота на рівну вільну площадку і запустимо програму. Вимірявши відстань, пройдену роботом, переконаємося в правильності нашої програми! Завдання №5: необхідно написати програму, розраховувати значення параметра "Градуси" для розвороту нашого робота (Урок №2, завдання №1) Дане завдання має схожість з попередньою - нам тільки потрібно знайти відстань, яку повинні проїхати колеса нашого робота. Для того, щоб наш робот розвернувся на 180 градусів - необхідно, щоб праве і ліве колеса, проїхавши певний шлях по колу, помінялися місцями. Як бачимо з Рис. 8 - кожне колесо при цьому проїде рівно половину окружності з діаметром, рівним відстані між центрами коліс (червона лінія на Рис. 8) . Підходящої лінійкою поміряти відстань між центрами коліс. Для робота, зібраного за інструкцією small-robot-45544 , ця відстань дорівнює 120 мм . Отже, помноживши це значення на число Пі (3,14159) і розділивши на 2, Ми знайдемо відстань, яке має проїхати кожне з коліс нашого робота. Як знайти відповідне цій відстані число оборотів мотора - ми розібрали в Задачі 4 даного уроку. Для того, щоб перевести отримане число оборотів в градуси - згадаємо співвідношення: 1 оборот мотора = 360 градусів . Отже, якщо ми, скориставшись програмним блоком "Математика" , помножимо отримане значення оборотів на 360 і подамо результат в параметр "Градуси" програмного блоку "Незалежне керування моторами" (Урок №2 Рис.7 поз. 2) , то вирішимо потрібні завдання. Мал. 8 Спробуйте написати програму для вирішення завдання №5 самостійно, не підглядаючи в рішення!
Одна з найважливіших завдань програміста, це не тільки рішення поставленого завдання, а пошук оптимального рішення, яке дозволяє економити пам'ять і обчислювальні ресурси. Давайте ще раз повернемося до вирішення Завдання №5. Позначимо через D 1 - діаметр колеса нашого робота, а через D 2 - відстань між центрами коліс. Тоді відстань, пройдену кожним колесом при розвороті може бути знайдено за формулою: Відстань, яку проїжджає робот за один оборот, виражається формулою: Розділивши першу формулу на другу, обчислимо значення оборотів двигуна для розвороту робота: Щоб отримати необхідну нам значення градусів, помножимо попередню формулу на 360: Отже: для того, щоб розгорнути нашого робота на 180 градусів, ми повинні відстань між центрами коліс розділити на діаметр колеса і помножити на 180 . Наша формула значно спростилася і має чудове наслідок: якщо ми замість 180 поставимо в нашу формулу довільне значення, то саме на цей кут в результаті поверне навколо своєї осі наш робот! Вирішимо нашу Завдання №5 за допомогою програмного блоку "Математика" в режимі "Додатки" :
впередназад | |
| |
Переглядів: 969 | |
Всього коментарів: 0 | |