Урок №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

Приступимо до створення програми:

  1. Використовуючи програмний блок "Константа" , заведемо в програму постійне число Пі, рівне приблизно 3,14159 .Рішення завдання. блок Константа
  2. Використовуючи програмний блок "Змінна" , створимо в програмі змінну D і занесемо в неї значення діаметра колеса в залежності від використовуваного конструктора (якщо ви використовували інші колеса, то самостійно виміряйте діаметр і внесіть значення в програмний блок).Рішення завдання. Блок Мінлива.
  3. Використовуючи програмний блок "Математика" , помножимо значення блоку "Константа" на значення змінної D . Для передачі значення з змінної D в програмний блок "Математика"використовуємо другий програмний блок "Змінна" в режимі "Зчитування" ! (Для передачі значень між програмними блоками використовуються шини даних. Щоб встановити шину даних, необхідно "потягнути" вихідний параметр одного програмного блоку і "приєднати" його до вхідного параметру іншого програмного блоку)Рішення завдання. Блок Математика.
  4. Використовуючи програмний блок "Математика" , розділимо значення шляху (1000 мм) на значення, отримане в кроці 3 .Рішення завдання. Другий блок Математика.
  5. Отримане в кроці 4 значення. округливши до двох знаків після коми, виведемо на екран модуля EV3.Рішення завдання. Висновок результату на екран.
  6. Отримане в кроці 4 значення подамо в параметр "Обороти" блоку "Рульове управління" .Рішення завдання. Блок рульове управління.

Завантажимо отриману програму в нашого робота. Поставимо робота на рівну вільну площадку і запустимо програму. Вимірявши відстань, пройдену роботом, переконаємося в правильності нашої програми!

Повне рішення задачі №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.

Позначимо через D 1 - діаметр колеса нашого робота, а через D 2 - відстань між центрами коліс.

Тоді відстань, пройдену кожним колесом при розвороті може бути знайдено за формулою: 017

Відстань, яку проїжджає робот за один оборот, виражається формулою: 018

Розділивши першу формулу на другу, обчислимо значення оборотів двигуна для розвороту робота: 019

Щоб отримати необхідну нам значення градусів, помножимо попередню формулу на 360: 020

Отже: для того, щоб розгорнути нашого робота на 180 градусів, ми повинні відстань між центрами коліс розділити на діаметр колеса і помножити на 180 . Наша формула значно спростилася і має чудове наслідок: якщо ми замість 180 поставимо в нашу формулу довільне значення, то саме на цей кут в результаті поверне навколо своєї осі наш робот!

Вирішимо нашу Завдання №5 за допомогою програмного блоку "Математика" в режимі "Додатки" :

Рішення Завдання 5

 

 

Категорія: Уроки з LEGO | Додав: admin (05.07.2018)
Переглядів: 969 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]