Знайомство з обчислювальними можливостями робота Lego mindstorms EV3 № 3

Знайомство та робота з конструктором LEGO Mindstorms EV3 відкриває перед учнями захопливий світ робототехніки.Обчислювальні можливості робота. Під час уроків діти не лише дізнаються про будову та можливості конструктора, а й вчаться створювати власних роботів і програмувати їх дії. Така діяльність розвиває логіку, технічне мислення, навички командної роботи та зацікавлює учнів у вивченні STEM-дисциплін.
- 13 сторінки документу;
- матеріал для вчителя робототехніки;
- файл у форматі .pdf
Ваш документ у форматі pdf:
Зміст
Урок №3 – Обчислювальні можливості роботаВступ:
Наше третє заняття ми присвятимо вивченню обчислювальних можливостей модуля 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
Приступимо до створення програми:
Використовуючи програмний блок “Константа” , заведемо в програму постійне число Пі, рівне приблизно 3,14159 .
Використовуючи програмний блок “Змінна” , створимо в програмі змінну D і занесемо в неї значення діаметра колеса в залежності від використовуваного конструктора (якщо ви використовували інші колеса, то самостійно виміряйте діаметр і внесіть значення в програмний блок).
Використовуючи програмний блок “Математика” , помножимо значення блоку “Константа” на значення змінної D . Для передачі значення з змінної D в програмний блок “Математика”використовуємо другий програмний блок “Змінна” в режимі “Зчитування” ! (Для передачі значень між програмними блоками використовуються шини даних. Щоб встановити шину даних, необхідно “потягнути” вихідний параметр одного програмного блоку і “приєднати” його до вхідного параметру іншого програмного блоку)
Використовуючи програмний блок “Математика” , розділимо значення шляху (1000 мм) на значення, отримане в кроці 3 .
Отримане в кроці 4 значення. округливши до двох знаків після коми, виведемо на екран модуля EV3.
Отримане в кроці 4 значення подамо в параметр “Обороти” блоку “Рульове управління” .
Завантажимо отриману програму в нашого робота. Поставимо робота на рівну вільну площадку і запустимо програму. Вимірявши відстань, пройдену роботом, переконаємося в правильності нашої програми!
Завдання №5: необхідно написати програму, розраховувати значення параметра “Градуси” для розвороту нашого робота (Урок №2, завдання №1)
Дане завдання має схожість з попередньою – нам тільки потрібно знайти відстань, яку повинні проїхати колеса нашого робота. Для того, щоб наш робот розвернувся на 180 градусів – необхідно, щоб праве і ліве колеса, проїхавши певний шлях по колу, помінялися місцями. Як бачимо з Рис. 8 – кожне колесо при цьому проїде рівно половину окружності з діаметром, рівним відстані між центрами коліс (червона лінія на Рис. 8) . Підходящої лінійкою поміряти відстань між центрами коліс. Для робота, зібраного за інструкцією small-robot-45544 , ця відстань дорівнює 120 мм . Отже, помноживши це значення на число Пі (3,14159) і розділивши на 2, Ми знайдемо відстань, яке має проїхати кожне з коліс нашого робота. Як знайти відповідне цій відстані число оборотів мотора – ми розібрали в Задачі 4 даного уроку. Для того, щоб перевести отримане число оборотів в градуси – згадаємо співвідношення: 1 оборот мотора = 360 градусів . Отже, якщо ми, скориставшись програмним блоком “Математика” , помножимо отримане значення оборотів на 360 і подамо результат в параметр “Градуси” програмного блоку “Незалежне керування моторами” (Урок №2 Рис.7 поз. 2) , то вирішимо потрібні завдання.
Мал. 8
Спробуйте написати програму для вирішення завдання №5 самостійно, не підглядаючи в рішення!
Рішення Завдання №5
Оптимізація рішення Завдання №5
Одна з найважливіших завдань програміста, це не тільки рішення поставленого завдання, а пошук оптимального рішення, яке дозволяє економити пам’ять і обчислювальні ресурси. Давайте ще раз повернемося до вирішення Завдання №5.
Позначимо через D 1 – діаметр колеса нашого робота, а через D 2 – відстань між центрами коліс.
Тоді відстань, пройдену кожним колесом при розвороті може бути знайдено за формулою:
Відстань, яку проїжджає робот за один оборот, виражається формулою:
Розділивши першу формулу на другу, обчислимо значення оборотів двигуна для розвороту робота:
Щоб отримати необхідну нам значення градусів, помножимо попередню формулу на 360:
Отже: для того, щоб розгорнути нашого робота на 180 градусів, ми повинні відстань між центрами коліс розділити на діаметр колеса і помножити на 180 . Наша формула значно спростилася і має чудове наслідок: якщо ми замість 180 поставимо в нашу формулу довільне значення, то саме на цей кут в результаті поверне навколо своєї осі наш робот!
Вирішимо нашу Завдання №5 за допомогою програмного блоку “Математика” в режимі “Додатки” :
