Складність програмування
Роботи можуть бути розроблені для виконання широкого кола завдань. Деякі з цих завдань дуже прості, наприклад відкривання автоматичних дверей. Інші можуть бути набагато складнішими, як-от автономний автомобіль, який орієнтується в міському середовищі. Якою б складною не була задача, її можна розбити на простіші завдання. Ці завдання відомі як поведінка та є будівельними блоками програмування робототехніки.
Поведінка – це спосіб, яким робот діє, і може змінюватися за складністю залежно від того, як робот побудований або запрограмований. Простий мобільний робот, як-от VEX V5 Speedbot, має лише два двигуни, тоді як Clawbot має чотири двигуни, включаючи два додаткові двигуни для руки та кігтя. Поведінка обох роботів включатиме обертання цих двигунів для досягнення поставлених цілей. Маючи більше дизайну та програмування, ви можете почати з цієї простої поведінки та виконувати більш складну поведінку.
Нижче наведено список поведінки роботів, що змінюється від простого до складного як для Speedbot, так і для Clawbot. У дужках ви можете побачити простіші способи поведінки, які складають кожну з них.
-
Обертайте двигун, призначений для певного порту
-
Рухайтеся вперед (обертайте лівий і правий двигуни за допомогою трансмісії)
-
Проїхати 5 метрів (їхати вперед, потім зупинитися)
-
Візьміться за далекий предмет (пройдіть 2 метри, поверніть моторчик, щоб схопити його)
-
Візьміть предмет і покладіть його на високу полицю (візьміть віддалений предмет, поверніться, пройдіть 2 метри, використовуйте двигуни рук і кігтів, щоб підняти і відпустити предмет)
Ви можете побачити, як можна деконструювати будь-яку складнішу поведінку на простішу. Вони стають будівельними блоками будь-якого складного завдання.
Поради вчителю
-
Навчіть студентів розбити складну поведінку роботів на менші прості кроки. Цей процес відомий як розкладання.
-
Поясніть студентам, що декомпозиція (поділ) складної поведінки на простіші завдання є важливою частиною планування та програмування.
-
Дозвольте студентам запускати свої автономні проекти, якщо є достатньо часу для занять.
Розширте своє навчання
Щоб зв’язати цю дію з обчислювальним мисленням і декомпозицією, попросіть студентів намітити або перерахувати поведінкові кроки, які мав би виконати робот, щоб виконати дії, наведені нижче:
-
Вправа перша: пройдіть 1 метр і поверніться на вихідну точку.
-
Дія друга: переверніть коробку, розташовану на відстані 60 см перед роботом.
-
Завдання третє: візьміть предмет, струсіть його, пройдіть 30 см, покладіть предмет на землю та поверніться до початкової точки.
Мотивуйте дискусію
Студенти повинні поділитися поведінковими кроками, які вони перерахували для діяльності з Розширення навчання вище. Кожне з наведених нижче запитань можна поставити після будь-якої або всіх вправ.
З: Які кроки чи дії перерахувала кожна група, щоб успішно виконати цю вправу?
A: Учням потрібно буде врахувати довжину, яку має пройти робот, рух і швидкість руки, а також перерахувати прості поведінки робота, необхідні для виконання дії чи завдання (їзда вперед, заднім ходом, поворот ліворуч або праворуч). Учні повинні створити свої списки поведінки, щоб кожен крок був представлений.
З: Чим були подібні та відмінні рішення (списки кроків) для цієї діяльності?
A: Учні зроблять порівняння на основі своїх рішень. Діаграма Венна може бути хорошим способом упорядкування кроків, якими діляться учні. Якщо більшість студентів називають певний крок, додайте його в центрі, де кола перекриваються. Якщо лише один чи кілька учнів називають певний крок, додайте його до одного чи іншого кола. Після завершення кроки в центрі мають бути надійно простими, і їх не можна буде розбити далі, тоді як кроки, перелічені лише в одному з кіл, швидше за все, не такі прості, як могли б бути. Однак цей шаблон може бути змінений залежно від досвіду класу в розбитті складної поведінки на найпростіші кроки.
З: Чи були подібні успішні рішення? Якщо так, то якими вони були?
A: Найбільш вдалими були ті рішення, які включали найбільшу кількість деталей і конкретності. Робот запрограмований на мові з дуже специфічною поведінкою, яка була розбита на найменші компоненти. Наприклад, можна сказати, що робот «проходить 1 метр і повертається на вихідну точку», але цей високорівневий опис нелегко перекласти під час програмування. Ви повинні розбити його далі: їде вперед на 1 метр, повертається на 180 градусів і їде вперед на 1 метр. Але навіть це може бути недостатньо точним, і вам потрібен такий рівень деталізації, щоб бути готовим до програмування: установіть швидкість приводу та повороту на 40%, проїдьте вперед на 1 метр, зачекайте 3 секунди, поверніть ліворуч на 180 градусів, зачекайте 1 секунду , і проїхати вперед на 1 метр. Чим далі ми розбиваємо складну поведінку, щоб зробити її поведінкою робота, готовою до програмування, тим краще ми готові завершити проект.