🔧 Конструирование • 💻 Программирование • 📏 Измерения 5 класс • Технология • 90 минут
👨🏫 Учитель: Ахметов Рустам
🏫 Школа: ГБОУ № 1362
📅 Дата: 2025-06-11
🎯 Миссия: Создать своего первого программируемого робота!
🎯 План практической работы
🚀 Наша миссия сегодня:
🔧 Собрать робота - от деталей к работающей модели
💻 Написать программу - научить робота двигаться точно
📏 Провести измерения - проверить точность движения
🧮 Рассчитать погрешности - стать настоящими инженерами
⚙️ Оптимизировать работу - добиться максимальной точности
🎯 Результат урока:
Работающий робот, который проезжает ровно 30, 50 и 100 см
Программа с точными расчетами
Анализ погрешностей и способы их устранения
👥 Работаем в парах:
🔧 Конструктор - отвечает за сборку
💻 Программист - отвечает за алгоритмы
🔄 Актуализация знаний
Вспоминаем предыдущие уроки
❓ Блиц-опрос
1. Подключение мотора:
Какие провода подключаем к контроллеру?
Что означают цвета проводов?
Зачем нужна правильная полярность?
2. Программирование:
Какая команда заставляет мотор вращаться?
Как регулировать скорость мотора?
Что такое ШИМ-сигнал?
3. Алгоритмы:
Что такое алгоритм?
Как записать алгоритм в виде блок-схемы?
Какие команды понимает робот?
🎯 Задача урока
🤖 Техническое задание:
Создать робота, который может проехать точно заданное расстояние:
30 см (для маневров в узких местах)
50 см (стандартное движение)
100 см (длинные перемещения)
📏 Требования к точности:
Погрешность не более ±5 см
Движение по прямой линии
Повторяемость результатов
🧠 Что нужно учесть:
Физические свойства мотора
Трение колес о поверхность
Инерцию робота
Точность измерений
🔬 Физические основы
⚡ Преобразование энергии в роботе:
Электрическая энергия → Магнитная энергия → Механическая энергия → Кинетическая энергия
🔋 Электрическая энергия:
Батарея → ток → контроллер → мотор
🧲 Магнитная энергия:
Ток в обмотках → магнитное поле → вращение ротора
⚙️ Механическая энергия:
Вращение мотора → движение колес → перемещение робота
🏃 Факторы, влияющие на движение:
Трение колес о поверхность
Сопротивление воздуха
Инерция массы робота
Люфт в механических соединениях
🔧 Этап 1: Сборка модели робота
От деталей к работающему устройству
📋 Инструкция по сборке
🧰 Необходимые детали:
Контроллер (мозг робота)
Мотор (мышцы робота)
Колеса (ноги робота)
Рама/шасси (скелет робота)
Соединительные провода (нервы робота)
Батарейный блок (сердце робота)
⚠️ Техника безопасности:
Отключаем питание при сборке
Аккуратно обращаемся с электроникой
Проверяем надежность соединений
🔨 Пошаговая сборка
Шаг 1: Сборка шасси
Соединить основные балки рамы
Проверить жесткость конструкции
Убедиться в симметричности
Шаг 2: Установка мотора
Закрепить мотор на раме
Убедиться в отсутствии люфта
Проверить свободу вращения
Шаг 3: Установка колес
Надеть колеса на валы мотора
Проверить параллельность колес
Убедиться в отсутствии биения
Шаг 4: Монтаж контроллера
Разместить контроллер на раме
Обеспечить доступ к портам
Защитить от механических повреждений
🔌 Электрические соединения
📊 Схема подключения:
1Контроллер Arduino:
2+5V → Красный провод мотора
3GND → Черный провод мотора
4Pin 9 → Управляющий провод (ШИМ)
56Дополнительно (для реверса):
7Pin 7 → Направление 1
8Pin 8 → Направление 2
🔍 Проверка подключения:
Все провода надежно зафиксированы?
Полярность соблюдена?
Нет коротких замыканий?
Контакты чистые?
🧪 Алгоритм тестирования:
1НАЧАЛО тестирования
2 Установить слабую мощность мотора
3 Включить мотор на 2 секунды
4 Выключить мотор на 1 секунду
5 Повторить 3 раза
6КОНЕЦ тестирования
⚙️ Калибровка механики
📏 Измерение параметров робота:
Параметр
Измерение
Единицы
Диаметр колеса
___ мм
мм
Расстояние между колесами
___ мм
мм
Масса робота
___ г
г
Длина робота
___ мм
мм
Ширина робота
___ мм
мм
🧮 Расчет длины окружности колеса:
\[L = \pi \times d = 3.14 \times d \text{ (мм)}\]
Пример: При диаметре колеса 56 мм:
\[L = 3.14 \times 56 = 175.84 \text{ мм}\]
📝 Это означает: За один полный оборот колеса робот проедет ~176 мм
💻 Этап 2: Программирование движения
От алгоритма к псевдокоду
🧠 Алгоритм движения на заданное расстояние
📊 Блок-схема алгоритма:
1 ⭕ НАЧАЛО
2 ↓
3 📥 Ввод: расстояние S
4 ↓
5 🧮 Расчет времени: t = S / v
6 ↓
7 📦 Включить мотор
8 ↓
9 ⏰ Ждать время t
10 ↓
11 📦 Выключить мотор
12 ↓
13 ⭕ КОНЕЦ
🎯 Ключевая формула:
\[t = \frac{S}{v}\]
где:
t - время движения (с)
S - расстояние (см)
v - скорость робота (см/с)
📝 Базовый псевдокод
💻 Основной алгоритм движения:
1ПРОГРАММА "Движение робота"
2 3ПЕРЕМЕННЫЕ:
4 пин_мотора = 9
5 скорость_мотора = 150
6 7НАЧАЛО
8 Инициализировать контроллер
9 Вывести "Робот готов к движению"
1011 ЦИКЛ (бесконечный):
12 Движение_на_расстояние(30)
13 Ждать 3 секунды
1415 Движение_на_расстояние(50)
16 Ждать 3 секунды
1718 Движение_на_расстояние(100)
19 Ждать 5 секунд
20 КОНЕЦ ЦИКЛА
21КОНЕЦ
2223ФУНКЦИЯ Движение_на_расстояние(расстояние):
24 Вывести "Движение на", расстояние, "см"
2526 время = Рассчитать_время(расстояние)
2728 Включить мотор с мощностью скорость_мотора
29 Ждать время секунд
30 Выключить мотор
3132 Вывести "Движение завершено"
33КОНЕЦ ФУНКЦИИ
3435ФУНКЦИЯ Рассчитать_время(расстояние):
36 скорость = 10.0 // см/с (экспериментальное значение)
37 ВОЗВРАТ расстояние / скорость
38КОНЕЦ ФУНКЦИИ
🔬 Экспериментальное определение скорости
📏 Алгоритм измерения скорости:
1АЛГОРИТМ "Определение скорости робота"
2 3НАЧАЛО
4 Подготовить измерительную ленту
5 Подготовить секундомер
6 Отметить стартовую линию
7 8 ДЛЯ каждой_мощности ОТ 50 ДО 255 ШАГ 50:
9 Установить мощность мотора = каждая_мощность
1011 ДЛЯ измерение ОТ 1 ДО 3:
12 Поставить робота на стартовую линию
13 Запустить секундомер
14 Включить мотор
15 КОГДА робот проедет 100 см:
16 Остановить секундомер
17 Выключить мотор
18 Записать время в таблицу
19 КОНЕЦ КОГДА
20 КОНЕЦ ДЛЯ
2122 Рассчитать среднее время
23 Рассчитать скорость = 100 / среднее_время
24 КОНЕЦ ДЛЯ
25КОНЕЦ
📊 Таблица измерений скорости:
Измерение
Мощность ШИМ
Время, с
Скорость, см/с
1
50
___
___
2
100
___
___
3
150
___
___
4
200
___
___
5
255
___
___
⚙️ Улучшенный алгоритм с калибровкой
💻 Псевдокод с настройкой параметров:
1ПРОГРАММА "Точное движение робота"
2 3СТРУКТУРА Конфигурация_робота:
4 диаметр_колеса = 56.0 // мм
5 базовая_скорость = 10.0 // см/с при ШИМ=255
6 стандартная_мощность = 150 // Обычная мощность
7 коэффициент_коррекции = 1.0 // Для точной настройки
8КОНЕЦ СТРУКТУРЫ
910ПЕРЕМЕННАЯ робот: Конфигурация_робота
1112ФУНКЦИЯ Калибровка_робота():
13 Вывести "=== КАЛИБРОВКА РОБОТА ==="
14 Вывести "Диаметр колеса:", робот.диаметр_колеса, "мм"
1516 окружность = 3.14159 * робот.диаметр_колеса
17 Вывести "Окружность колеса:", окружность, "мм"
1819 Вывести "Калибровка завершена"
20КОНЕЦ ФУНКЦИИ
2122ФУНКЦИЯ Точное_движение(расстояние):
23 // Расчет времени с учетом мощности мотора
24 коэффициент_скорости = робот.стандартная_мощность / 255.0
25 реальная_скорость = робот.базовая_скорость * коэффициент_скорости
26 время_движения = (расстояние / реальная_скорость) * робот.коэффициент_коррекции
2728 Вывести "Движение на", расстояние, "см, время:", время_движения, "с"
2930 Включить мотор с мощностью робот.стандартная_мощность
31 Ждать время_движения секунд
32 Выключить мотор
33КОНЕЦ ФУНКЦИИ
🧮 Этап 3: Математические расчеты
Точность через вычисления
📊 Расчет времени движения
🎯 Основная формула:
\[t = \frac{S}{v}\]
📝 Пример расчета для робота:
Дано:
Требуемое расстояние: S = 50 см
Измеренная скорость: v = 12 см/с
Мощность мотора: 150/255 ≈ 59%
Решение:
\[t = \frac{50}{12} = 4.17 \text{ с}\]
💻 Алгоритм расчета:
1ФУНКЦИЯ Расчет_времени_движения(расстояние, скорость):
2 время = расстояние ÷ скорость
3 время_в_миллисекундах = время × 1000
4 ВОЗВРАТ время_в_миллисекундах
5КОНЕЦ ФУНКЦИИ
📏 Связь оборотов колеса с расстоянием
🔄 Расчет количества оборотов:
Формула:
\[N = \frac{S}{L} = \frac{S}{\pi \times d}\]
где:
N - количество оборотов
S - расстояние (мм)
L - длина окружности колеса (мм)
d - диаметр колеса (мм)
📝 Пример:
Для движения на 500 мм с колесом диаметром 56 мм:
1ФУНКЦИЯ Калибровка_скорости():
2 максимальная_скорость = Измерить_скорость_при_максимальной_мощности()
3 4 ДЛЯ мощность ОТ 50 ДО 255 ШАГ 25:
5 коэффициент = мощность ÷ 255
6 ожидаемая_скорость = максимальная_скорость × коэффициент
7 8 фактическая_скорость = Измерить_скорость(мощность)
910 коэффициент_коррекции = ожидаемая_скорость ÷ фактическая_скорость
1112 Сохранить коэффициент для данной мощности
13 КОНЕЦ ДЛЯ
14КОНЕЦ ФУНКЦИИ
1ФУНКЦИЯ Скорректированное_время(расстояние, базовое_время):
2 // Учет времени разгона (примерно 0.2с)
3 время_разгона = 0.2
4 5 // Учет времени торможения (примерно 0.1с)
6 время_торможения = 0.1
7 8 // Коррекция основного времени
9 скорректированное_время = базовое_время - время_разгона - время_торможения
1011 // Минимальное время не может быть меньше 0.5с
12 ЕСЛИ скорректированное_время < 0.5 ТО
13 скорректированное_время = 0.5
14 КОНЕЦ ЕСЛИ
1516 ВОЗВРАТ скорректированное_время
17КОНЕЦ ФУНКЦИИ
📏 Этап 4: Проведение измерений
Экспериментальная проверка точности
🔬 Методика измерений
📋 Подготовка к эксперименту:
🧰 Необходимое оборудование:
Измерительная лента или рулетка
Секундомер
Маркер для отметок
Рабочий лист для записи результатов
Калькулятор
📐 Подготовка полигона:
Ровная поверхность длиной не менее 150 см
Стартовая линия
Отметки на 30, 50, 100 см
Хорошее освещение для наблюдения
📊 Алгоритм проведения измерений
🎯 Протокол испытаний:
1АЛГОРИТМ "Испытание точности робота"
2 3ДЛЯ каждое_расстояние ИЗ [30, 50, 100]:
4 Вывести "Тестирование движения на", каждое_расстояние, "см"
5 6 ДЛЯ попытка ОТ 1 ДО 3:
7 Поставить робота на стартовую линию
8 Запустить программу движения на каждое_расстояние
910 КОГДА робот остановился:
11 Измерить фактическое расстояние от старта
12 Записать результат в таблицу
13 Рассчитать погрешность
14 КОНЕЦ КОГДА
1516 Вернуть робота на старт
17 Ждать 5 секунд перед следующей попыткой
18 КОНЕЦ ДЛЯ
1920 Рассчитать среднее расстояние для данного задания
21 Рассчитать среднюю погрешность
22КОНЕЦ ДЛЯ
1ФУНКЦИЯ Анализ_погрешностей(результаты_измерений):
2 ЕСЛИ средняя_погрешность > 15% ТО
3 Вывести "Проверить:"
4 Вывести "- Калибровку скорости"
5 Вывести "- Механические соединения"
6 Вывести "- Заряд батареи"
7 8 ИНАЧЕ ЕСЛИ средняя_погрешность > 10% ТО
9 Вывести "Рекомендуется:"
10 Вывести "- Уточнить коэффициенты"
11 Вывести "- Проверить поверхность движения"
1213 ИНАЧЕ
14 Вывести "Точность в норме!"
15 КОНЕЦ ЕСЛИ
1617 ЕСЛИ разброс_результатов > 5% ТО
18 Вывести "Низкая повторяемость - проверить стабильность питания"
19 КОНЕЦ ЕСЛИ
20КОНЕЦ ФУНКЦИИ
⚙️ Этап 5: Оптимизация и калибровка
Достигаем максимальной точности
🔧 Методы улучшения точности
📊 Основные направления оптимизации:
1. Калибровка времени движения
Корректировка базовой скорости
Учет времени разгона/торможения
Компенсация инерции
2. Механическая настройка
Проверка параллельности колес
Устранение люфтов
Балансировка робота
3. Программная коррекция
Адаптивные коэффициенты
Компенсация систематических ошибок
Учет условий эксплуатации
💻 Алгоритм автоматической калибровки
🎯 Самообучающийся алгоритм:
1АЛГОРИТМ "Автоматическая калибровка"
2 3ФУНКЦИЯ Автокалибровка():
4 эталонное_расстояние = 50 // см
5 6 ДЛЯ попытка ОТ 1 ДО 5:
7 фактическое_расстояние = Измерить_движение(эталонное_расстояние)
8 9 коэффициент_коррекции = эталонное_расстояние ÷ фактическое_расстояние
1011 Обновить параметры робота с новым коэффициентом
1213 Вывести "Попытка", попытка, ": коррекция =", коэффициент_коррекции
14 КОНЕЦ ДЛЯ
1516 Вывести "Калибровка завершена"
17КОНЕЦ ФУНКЦИИ
1819ФУНКЦИЯ Измерить_движение(плановое_расстояние):
20 Запустить робота на заданное расстояние
21 Дождаться остановки
22 фактическое = Измерить линейкой текущую позицию
23 ВОЗВРАТ фактическое
24КОНЕЦ ФУНКЦИИ
📐 Коррекция систематических ошибок
🧮 Типы систематических ошибок:
1. Недоезд (робот не доезжает до цели):
1Причины:
2- Заниженная скорость в расчетах
3- Большое трение
4- Низкий заряд батареи
56Решение:
7- Увеличить время движения на 5-10%
8- Увеличить мощность мотора
9- Использовать коэффициент коррекции > 1.0
2. Переезд (робот переезжает цель):
1Причины:
2- Завышенная скорость в расчетах
3- Инерция робота
4- Проскальзывание при торможении
56Решение:
7- Уменьшить время движения на 5-10%
8- Добавить плавное торможение
9- Использовать коэффициент коррекции < 1.0
🎯 Алгоритм адаптивной коррекции
💻 Интеллектуальная настройка:
1ФУНКЦИЯ Адаптивная_коррекция(целевое_расстояние):
2 // История последних измерений
3 МАССИВ история_погрешностей[10]
4 5 // Рассчитать базовое время
6 базовое_время = целевое_расстояние ÷ калиброванная_скорость
7 8 // Применить адаптивную коррекцию
9 ЕСЛИ средняя_погрешность_истории > 5% ТО
10 ЕСЛИ тенденция = "недоезд" ТО
11 коэффициент = 1.0 + (средняя_погрешность ÷ 100)
12 ИНАЧЕ ЕСЛИ тенденция = "переезд" ТО
13 коэффициент = 1.0 - (средняя_погрешность ÷ 100)
14 КОНЕЦ ЕСЛИ
15 ИНАЧЕ
16 коэффициент = 1.0 // Коррекция не нужна
17 КОНЕЦ ЕСЛИ
1819 скорректированное_время = базовое_время × коэффициент
2021 ВОЗВРАТ скорректированное_время
22КОНЕЦ ФУНКЦИИ
2324ФУНКЦИЯ Обновить_историю(новая_погрешность):
25 // Сдвинуть массив и добавить новое значение
26 ДЛЯ i ОТ 0 ДО 8:
27 история_погрешностей[i] = история_погрешностей[i+1]
28 КОНЕЦ ДЛЯ
29 история_погрешностей[9] = новая_погрешность
30КОНЕЦ ФУНКЦИИ
🏆 Финальная оптимизация
📊 Комплексная программа точного движения:
1ПРОГРАММА "Высокоточное движение робота"
2 3СТРУКТУРА Профиль_робота:
4 базовая_скорость: вещественное
5 коэффициент_коррекции: вещественное
6 время_разгона: вещественное
7 время_торможения: вещественное
8 история_измерений: массив[10]
9КОНЕЦ СТРУКТУРЫ
1011ФУНКЦИЯ Точное_движение(расстояние):
12 // Этап 1: Расчет базового времени
13 базовое_время = расстояние ÷ профиль.базовая_скорость
1415 // Этап 2: Применение коррекций
16 скорректированное_время = базовое_время × профиль.коэффициент_коррекции
17 скорректированное_время = скорректированное_время - профиль.время_разгона - профиль.время_торможения
1819 // Этап 3: Выполнение движения
20 Включить мотор с оптимальной мощностью
21 Ждать скорректированное_время
22 Выключить мотор
2324 // Этап 4: Измерение результата
25 фактическое_расстояние = Измерить_позицию()
26 погрешность = Рассчитать_погрешность(расстояние, фактическое_расстояние)
2728 // Этап 5: Обновление профиля
29 Обновить_профиль(погрешность)
3031 ВОЗВРАТ фактическое_расстояние
32КОНЕЦ ФУНКЦИИ
🏠 Домашнее задание
📋 Обязательные задания
1. Анализ точности движения
Проанализируйте результаты измерений и ответьте на вопросы:
При каком расстоянии погрешность минимальна и почему?
Какие факторы больше всего влияют на точность?
Как можно улучшить повторяемость результатов?
2. Предложения по улучшению
Придумайте и опишите 3 способа повышения точности движения робота:
Механические улучшения
Программные решения
Методы измерения
3. Планирование траектории
Составьте алгоритм движения робота по прямоугольной траектории:
Длина: 60 см
Ширина: 40 см
Робот должен вернуться в исходную точку
Учтите повороты на 90°
🎯 Дополнительные задания (по выбору)
🔬 Для исследователей:
Проведите эксперимент по влиянию различных факторов на точность:
Заряд батареи (100%, 75%, 50%)
Поверхность движения (гладкая, шероховатая)
Нагрузка робота (без груза, с грузом 100г)
Постройте графики зависимостей и сделайте выводы.
💻 Для программистов:
Разработайте алгоритм “умного” робота, который:
Запоминает свои ошибки
Автоматически корректирует параметры
Адаптируется к разным условиям
Опишите алгоритм в виде блок-схемы и псевдокода.
🔧 Для конструкторов:
Предложите конструктивные улучшения робота:
Более точная система колес
Дополнительные датчики для контроля
Механизм стабилизации движения
Нарисуйте схемы и объясните принцип работы.
🌐 Полезные ресурсы
📚 Для изучения:
Основы мехатроники и робототехники
Методы калибровки роботов
Анализ погрешностей в технических системах
💻 Симуляторы:
Виртуальные роботы для отработки алгоритмов
Программы для моделирования движения
Калькуляторы погрешностей
🎥 Видеоматериалы:
Сборка роботов разной сложности
Методы программирования движения
Профессиональная калибровка роботов
🎉 Подведение итогов практикума
🏆 Наши достижения
🔧 Конструкторские навыки:
✅ Собрали работающую модель робота
✅ Освоили принципы механической сборки
✅ Научились подключать электронные компоненты
✅ Поняли важность точности в конструировании
💻 Программистские навыки:
✅ Создали алгоритмы точного движения
✅ Освоили принципы калибровки
✅ Научились анализировать результаты
✅ Поняли связь программы и физического мира
🧮 Исследовательские навыки:
✅ Провели серию измерений
✅ Рассчитали погрешности
✅ Проанализировали причины отклонений
✅ Предложили способы улучшения
🌟 Главные открытия
🎯 Ключевые выводы:
“Точность робота зависит от точности его создателя”
“Программа - это мост между идеей и реальностью”
“Измерения и анализ - основа инженерного мышления”
🔮 Связь с будущим:
Промышленные роботы требуют еще большей точности
Автономные автомобили должны ездить с точностью до сантиметра
Медицинские роботы работают с точностью до миллиметра
Космические аппараты навигируют с точностью до метра на расстоянии миллионов километров
📊 Оценка работы
🎯 Критерии успешности:
🟢 Отличная работа (5 баллов):
Робот собран качественно и работает стабильно
Программа обеспечивает точность ±5%
Измерения проведены аккуратно
Анализ результатов глубокий и обоснованный
🟡 Хорошая работа (4 балла):
Робот работает с небольшими недочетами
Точность программы ±10%
Измерения в основном корректны
Анализ поверхностный, но верный
🟠 Удовлетворительная работа (3 балла):
Робот работает, но с заметными проблемами
Точность программы ±15%
Измерения проведены с ошибками
Анализ слабый или отсутствует
🔮 Следующий урок: “Датчики робота - глаза и уши искусственного интеллекта”
🎯 Готовимся изучать:
Ультразвуковые датчики расстояния
Датчики цвета и освещенности
Программирование реакции на сенсоры
Создание “умного” поведения робота
🤖 ВЫ СОЗДАЛИ СВОЕГО ПЕРВОГО ТОЧНОГО РОБОТА! Теперь научим его чувствовать мир вокруг себя!