Вступ:На другому занятті ми детальніше познайомимося з середовищем програмування і детально вивчимо команди, що задають рух нашому роботові-візку, зібраному на першому занятті. Отже, давайте запустимо середовище програмування Lego mindstorms EV3, завантажимо наш проект lessons.ev3, створений раніше і додамо в проект нову програму - lesson-2-1. Програму можна додати двома способами:
Мал. 1 2.1. Палітри програмування і програмні блокиДавайте тепер звернемо свій погляд в нижній розділ середовища програмування. З матеріалу першого заняття ми вже знаємо, що тут знаходяться команди для програмування робота. Розробники застосували оригінальний прийом і, згрупувавши програмні блоки, привласнили кожній групі свій колір, назвавши групи палітрами. Зелена палітра називається: "Дія" : Мал. 2 На даній палітрі розташовані програмні блоки управління моторами, блок виведення на екран, блок управління індикатором стану модуля. Зараз ми почнемо вивчення цих програмних блоків. 2.2. Зелена палітра - блоки діїПерша програмна блок зеленої палітри призначений для управління середнім мотором, другий блок - для управління великим мотором. Так як параметри цих блоків ідентичні - розглянемо настройку на прикладі блоку - великий мотор. Мал. 3 Для правильного налаштування блоку управління великим мотором ми повинні:
Чим же відрізняються режими? Режим: "Включити" включає мотор з заданим параметром "Потужність" і після цього управління передається наступному програмному блоку програми. Мотор буде продовжувати обертатися, поки не буде зупинений наступним блоком "Великий мотор" з режимом "Вимкнути" або наступний блок "Великий мотор" нічого очікувати утримувати інші параметри виконання. Режим "Включити на кількість секунд" включає великий мотор з встановленою потужністю на вказану кількість секунд, і тільки по завершенню часу мотор зупиниться, а управління в програмі перейде до наступного програмного блоку.і "Включити на кількість оборотів" : тільки після виконання встановленого обертання мотора, він зупиниться і управління в програмі перейде до наступного блоку. Параметр потужність (на Рис. 3 потужність встановлена в 75) може приймати значення від -100 до 100. Позитивні значення потужності задають обертання мотора за годинниковою стрілкою, негативні - проти годинникової. При значенні потужності рівному 0 мотор обертатися не буде, чим "вище" значення потужності, тим швидше обертається мотор. Параметр потужність задається тільки цілими значеннями, параметри: секунди, градуси, обороти можуть набувати значень з десятковим дробом. Але слід пам'ятати, що мінімальний крок обертання мотора дорівнює одному градусу. Окремо слід сказати про параметр "Гальмувати в кінці" . Даний параметр, якщо встановлений в значення "Гальмувати" змушує мотор гальмувати після виконання команди, а якщо встановлений в значення "Рухатися накатом" , то мотор буде обертатися за інерцією, поки сам не зупиниться. Наступні два програмних блоку "Рульове управління" і "Незалежне керування моторами" реалізують управління парою великих моторів. За замовчуванням лівий великий мотор підключається до порту "В" , а правий - до порту "С" . Але ви можете в настройках блоку поміняти порти підключення відповідно до вимог вашої конструкції ( Рис. 4 поз. 1 ). Мал. 4 Параметр "Рульове управління" ( Рис. 4 поз. 2 ) може приймати значення від -100 до 100. Негативні значення параметра змушують робота повертати наліво, при значенні рівному 0 робот рухається прямо, а позитивні значення змушують робота повертати направо. Стрілка над числовим параметром змінює свою орієнтацію в залежності від значення, підказуючи тим самим напрямок руху робота ( Рис. 5 ).
Програмний блок "Незалежне керування моторами" схожий на програмний блок "Рульове управління". Він також керує двома великими моторами, тільки замість параметра "Рульове управління" з'являється можливість незалежного управління потужністю кожного мотора. При рівному значенні параметра "Потужність" для лівого і правого мотора робот буде рухатися прямолінійно. Якщо на один мотор подати від'ємне значення потужності (наприклад -50), а на другий - позитивне значення (наприклад 50), то робот буде розгортатися на місці ( Рис. 6 ). Мал. 6 Режими роботи цих блоків аналогічні режимам блоку управління одним мотором, тому додаткового опису не вимагають ... 2.3. Прямолінійний рух, повороти, розворот на місці зупинкаОтже, тепер ми можемо написати програму руху робота по якомусь маршруту. Завдання 1: Проїхати прямолінійно вперед на 4 обороту двигуна. Розвернутися. Проїхати на 720 градусів. Рішення ( Рис. 7 ):
Примітка: Чому при розвороті довелося підбирати значення градусів в блоці 2 ?. Чи не 360 градусів - шукана величина? Ні, якщо ми поставимо значення параметра "Градуси" рівним 360 , то тим самим змусимо на шукану величину провернутися вали лівого і правого моторів нашого робота. На який кут провернеться робот навколо своєї осі - залежить від розміру (діаметра) коліс і відстані між ними. На Рис. 7значення параметра "Градуси" одно 385 . Дане значення дозволяє роботу, зібраному за інструкцією small-robot 45544розвернутися навколо своєї осі. Якщо у вас інший робот, то вам доведеться підібрати інше значення. Чи можна це значення знайти математично? Можна, але про це ми поговоримо пізніше. Мал. 7 Завдання 2: Встановіть на рівній поверхні яку-небудь перешкоду (банку, кубик, невелику коробку), відзначте місце старту вашого робота. Створіть в проекті нову програму: lesson-2-2, що дозволяє роботу об'їхати навколо перешкоди і повернутися до місця старту. Скільки програмних блоків ви використовували? Поділіться своїм успіхом в коментарі до уроку ... впередназад | |
| |
Переглядів: 1076 | |
Всього коментарів: 0 | |