⚙️ Конструирование • 💻 Программирование • 📐 Физика • 🎯 Точность
6 класс • Технология • 45 минут
👨🏫 Учитель: Ахметов Рустам
🏫 Школа: ГБОУ № 1362
📅 Дата: 2025-06-13
🎯 Цель: Создать мобильного робота и научить его точно поворачивать!
Создать комплексную методическую презентацию для практической работы по конструированию мобильного робота и программированию различных типов поворотов с глубоким физико-математическим обоснованием.
🛠️ Наша практическая миссия:
🎯 К концу практикума мы сможем:
⚡ При работе с электронными компонентами:
🔧 При конструировании:
💻 При программировании:
🔧 Конструкторские наборы:
Платформа | Компоненты | Возможности | Особенности |
---|---|---|---|
LEGO Mindstorms | Блоки, моторы, датчики, EV3 | Быстрое прототипирование | Графическое программирование |
Arduino Robot Kit | Шасси, моторы, Arduino Uno | Глубокое программирование | C/C++ код |
mBot (mCore) | Алюминиевое шасси, датчики | Готовая платформа | Scratch + Arduino IDE |
VEX Robotics | Металлические детали, моторы | Прочные конструкции | Профессиональный уровень |
⚙️ Ключевые компоненты робота:
🔍 Инструменты для точности:
Инструмент | Назначение | Точность | Применение |
---|---|---|---|
Транспортир | Измерение углов поворота | ±1° | Проверка точности поворотов |
Линейка | Измерение размеров робота | ±1 мм | Определение габаритов |
Рулетка | Измерение траекторий | ±5 мм | Радиусы дуг, дистанции |
Секундомер | Время выполнения команд | ±0.01 с | Калибровка скорости |
Компас | Ориентация робота | ±5° | Проверка направления |
📊 Тестовый полигон:
🎯 Основная цель: Создать мобильного робота, способного выполнять точные повороты для навигации в пространстве
📋 Технические требования:
Конструкция робота:
Программные возможности:
🏭 Промышленные роботы:
Роботы-манипуляторы:
1Требования к точности:
2- Позиционирование: ±0.1 мм
3- Ориентация: ±0.1°
4- Повторяемость: ±0.05 мм
5- Время цикла: 1-5 секунд
6
7Применение:
8- Сварка автомобильных кузовов
9- Сборка электронных компонентов
10- Покраска изделий
11- Упаковка продукции
Мобильные роботы на складах:
1Amazon Warehouse Robots:
2- Точность позиционирования: ±2 см
3- Скорость поворота: 180°/с
4- Грузоподъемность: до 1 тонны
5- Время автономной работы: 24 часа
6
7Задачи:
8- Навигация между стеллажами
9- Точная подача к рабочим местам
10- Избегание столкновений
11- Оптимизация маршрутов
🚙 Беспилотные автомобили:
Система поворотов:
1Алгоритмы управления:
2- Расчет траектории движения
3- Компенсация скольжения колес
4- Учет центробежных сил
5- Адаптация к дорожным условиям
6
7Точность:
8- Отклонение от полосы: ±10 см
9- Точность парковки: ±5 см
10- Угол поворота руля: ±0.5°
Математическое моделирование:
\[R = \frac{L}{\tan(\delta)}\]где:
🏆 Робототехнические соревнования:
FIRST Robotics Competition:
1Задачи на точность поворотов:
2- Навигация по полю 16×8 м
3- Точное позиционирование у целей
4- Повороты в ограниченном пространстве
5- Работа в команде с другими роботами
6
7Критерии оценки:
8- Скорость выполнения задач
9- Точность попадания в цели
10- Надежность системы управления
11- Эффективность алгоритмов
RoboCup:
1Футбол роботов:
2- Точное ведение мяча
3- Повороты с мячом
4- Удары по воротам
5- Командное взаимодействие
6
7Требования:
8- Время реакции: < 100 мс
9- Точность удара: ±2°
10- Скорость поворота: до 360°/с
📊 Метрики качества робота:
Точность поворотов:
\[\varepsilon = |\alpha_{\text{программа}} - \alpha_{\text{факт}}|\]Цель: ε < 5° для всех тестов
Стабильность конструкции:
Эффективность программы:
🏆 Дополнительные вызовы:
🔧 Принцип работы:
1Схема дифференциального привода:
2
3 ┌─────────────────┐
4 │ │
5 │ РОБОТ │
6 │ │
7 └─────┬─────┬─────┘
8 │ │
9 ┌───▼─┐ ┌─▼───┐
10 │ ML │ │ MR │ ML, MR - моторы
11 └─────┘ └─────┘
12
13Типы движения:
14ML = MR > 0 → Движение вперед
15ML = MR < 0 → Движение назад
16ML > 0, MR = 0 → Поворот направо
17ML = 0, MR > 0 → Поворот налево
18ML = -MR → Поворот на месте
📊 Кинематика дифференциального привода:
Линейная скорость центра робота:
\[v = \frac{v_L + v_R}{2}\]Угловая скорость поворота:
\[\omega = \frac{v_R - v_L}{L}\]Радиус поворота:
\[R = \frac{L}{2} \cdot \frac{v_L + v_R}{v_R - v_L}\]где:
⚡ Физические принципы:
Момент силы для поворота:
\[M = F \cdot \frac{L}{2}\]Угловое ускорение:
\[\varepsilon = \frac{M}{I}\]Момент инерции робота:
\[I = I_{\text{корпус}} + 2 \cdot I_{\text{колесо}}\]Угол поворота за время t:
\[\alpha = \omega_0 t + \frac{\varepsilon t^2}{2}\]🎯 Практический расчет:
Для поворота на 90° (π/2 радиан):
1Дано:
2- Колея робота L = 20 см
3- Скорость колеса v = 10 см/с
4- Требуемый угол α = 90° = π/2 рад
5
6Расчет времени поворота:
7ω = v/R = 2v/L = 2×10/20 = 1 рад/с
8t = α/ω = (π/2)/1 = 1.57 с
📐 Геометрия поворота по дуге:
Связь между скоростями колес:
\[\frac{v_L}{v_R} = \frac{R - L/2}{R + L/2}\]Для заданного радиуса R:
\[v_L = v \cdot \frac{R - L/2}{R}\] \[v_R = v \cdot \frac{R + L/2}{R}\]Длина дуги поворота:
\[S = R \cdot \alpha\]Время движения по дуге:
\[t = \frac{S}{v} = \frac{R \cdot \alpha}{v}\]⚠️ Источники погрешностей:
Проскальзывание колес:
\[v_{\text{факт}} = v_{\text{теор}} \cdot (1 - k_{\text{скольж}})\]где k_скольж = 0.02-0.1 (коэффициент проскальзывания)
Неравномерность моторов:
1Различие скоростей моторов при одинаковых командах:
2Δv = |v_L - v_R| / v_средн
3
4Типичные значения:
5- Дешевые моторы: Δv = 5-10%
6- Серводвигатели: Δv = 1-2%
7- Шаговые двигатели: Δv = 0.1-0.5%
Люфты в механизмах:
Инерция системы:
\[t_{\text{разгон}} = \frac{I \cdot \omega}{M_{\text{мотор}}}\]🔧 Методы повышения точности:
🎯 Основные требования к платформе:
Устойчивость:
Симметрия:
Жесткость:
🚗 Конфигурация “Дифференциальный привод”:
1Вид сверху:
2 ┌─────────────────┐
3 │ Контроллер │
4 │ │
5 ├─────┬─────┬─────┤
6 │ █ │ │ █ │ █ - Ведущие колеса
7 │ │ │ │
8 │ │ o │ │ o - Опорное колесо/шарик
9 └─────┴─────┴─────┘
10
11Преимущества:
12✓ Простота конструкции
13✓ Поворот на месте
14✓ Высокая маневренность
15✓ Точное программирование
16
17Недостатки:
18✗ Требует балансировки
19✗ Скольжение опорного колеса
20✗ Чувствительность к неровностям
⚙️ Расчет оптимальных размеров:
Колея (расстояние между колесами):
\[L = 0.6 \times l_{\text{платформы}}\]Положение опорного колеса:
\[d_{\text{опора}} = 0.7 \times l_{\text{платформы}}\]Высота центра тяжести:
\[h_{\text{цт}} < \frac{L}{4}\]📋 Этап 1: Основание платформы (5 минут)
1Компоненты:
2- Основная рама (базовая пластина)
3- Балки для усиления конструкции
4- Крепежные элементы
5
6Порядок сборки:
71. Соединить основные балки в прямоугольную раму
82. Установить поперечные балки для жесткости
93. Проверить прямоугольность конструкции
104. Затянуть все соединения
11
12Контроль качества:
13✓ Отсутствие люфтов в соединениях
14✓ Плоскость основания
15✓ Симметрия конструкции
📋 Этап 2: Установка ведущих колес (4 минуты)
1Последовательность:
21. Закрепить моторы на боковых сторонах рамы
32. Убедиться в соосности моторов
43. Установить колеса на валы моторов
54. Проверить свободное вращение
6
7Критические параметры:
8- Высота осей колес: одинаковая ±1 мм
9- Расстояние между колесами: L = 18-22 см
10- Диаметр колес: одинаковый ±0.5 мм
11- Отсутствие трения в подшипниках
12
13Проверка:
14✓ Колеса касаются поверхности одновременно
15✓ Нет заедания при вращении
16✓ Моторы надежно закреплены
📐 Определение центра тяжести:
Метод весов:
11. Взвесить полностью собранного робота: m_общ
22. Подвесить робота за переднюю точку
33. Измерить отклонение от вертикали: α
44. Рассчитать положение ЦТ:
5
6x_цт = L_база × sin(α)
Практический тест балансировки:
1Тест "Стойка на двух колесах":
21. Поднять опорное колесо
32. Робот должен устойчиво стоять на ведущих колесах
43. Допустимый наклон: не более 5°
5
6Коррекция дисбаланса:
7- Перемещение аккумулятора
8- Добавление балластного груза
9- Изменение положения контроллера
🔧 Оптимизация конструкции:
Жесткость соединений:
\[k_{\text{жест}} = \frac{F}{\delta}\]где F - приложенная сила, δ - деформация
Частота собственных колебаний:
\[f_0 = \frac{1}{2\pi} \sqrt{\frac{k}{m}}\]Цель: f₀ > 20 Гц (избежание резонанса с частотой моторов)
📱 Размещение контроллера:
1Требования:
2- Защита от вибраций
3- Доступ к портам подключения
4- Возможность программирования
5- Защита от ударов
6
7Рекомендуемое положение:
8- Центр платформы (для баланса)
9- Высота 5-10 см от основания
10- Ориентация портами наружу
🔋 Установка аккумулятора:
1Критерии размещения:
2- Максимально низко (снижение ЦТ)
3- Симметрично относительно оси робота
4- Надежное крепление
5- Легкость замены
6
7Крепление:
8- Липучки Velcro
9- Эластичные ремни
10- Специальные держатели
🔗 Прокладка проводов:
1Принципы:
2- Минимальная длина
3- Защита от заломов
4- Группировка по функциям
5- Маркировка соединений
6
7Схема подключения:
8Контроллер → Моторы: толстые провода (мощность)
9Контроллер → Датчики: тонкие провода (сигналы)
10Аккумулятор → Контроллер: провода питания
🎯 Структура программы управления:
1# Псевдокод базовой программы
2class RobotController:
3 def __init__(self):
4 self.left_motor = Motor('портA')
5 self.right_motor = Motor('портB')
6 self.wheel_diameter = 5.5 # см
7 self.wheelbase = 20.0 # см
8
9 def move_forward(self, distance, speed=50):
10 # Движение вперед на заданное расстояние
11
12 def turn_on_spot(self, angle, speed=30):
13 # Поворот на месте на заданный угол
14
15 def turn_arc(self, radius, angle, speed=40):
16 # Поворот по дуге заданного радиуса
📐 Калибровочные константы:
1# Константы робота (определяются экспериментально)
2WHEEL_DIAMETER = 5.5 # Диаметр колеса в см
3WHEELBASE = 20.0 # Расстояние между колесами в см
4DEGREES_PER_ROTATION = 360 # Градусов на оборот мотора
5MOTOR_POWER_MAX = 100 # Максимальная мощность мотора
6FRICTION_COEFFICIENT = 0.8 # Коэффициент сцепления с поверхностью
⚙️ Алгоритм поворота на заданный угол:
1def turn_on_spot(self, angle_degrees, power=30):
2 """
3 Поворот робота на месте на заданный угол
4
5 Параметры:
6 angle_degrees: угол поворота в градусах (+/- для направления)
7 power: мощность моторов (0-100)
8 """
9
10 # Расчет количества оборотов колеса
11 wheel_rotations = (angle_degrees * self.wheelbase) / (360 * self.wheel_diameter)
12
13 # Преобразование в градусы поворота мотора
14 motor_degrees = wheel_rotations * 360
15
16 if angle_degrees > 0: # Поворот направо
17 self.left_motor.run_angle(power, motor_degrees)
18 self.right_motor.run_angle(-power, motor_degrees)
19 else: # Поворот налево
20 self.left_motor.run_angle(-power, abs(motor_degrees))
21 self.right_motor.run_angle(power, abs(motor_degrees))
22
23 # Ожидание завершения поворота
24 wait_for_completion()
📊 Математическое обоснование:
Длина дуги, которую проходит колесо:
\[S_{\text{колесо}} = \frac{\alpha \cdot L}{2}\]Количество оборотов колеса:
\[N_{\text{оборотов}} = \frac{S_{\text{колесо}}}{\pi \cdot D} = \frac{\alpha \cdot L}{2\pi \cdot D}\]Угол поворота мотора:
\[\alpha_{\text{мотор}} = N_{\text{оборотов}} \cdot 360°\]📐 Алгоритм движения по дуге:
1def turn_arc(self, radius_cm, angle_degrees, base_power=40):
2 """
3 Поворот робота по дуге заданного радиуса
4
5 Параметры:
6 radius_cm: радиус поворота в см
7 angle_degrees: угол поворота в градусах
8 base_power: базовая мощность для внешнего колеса
9 """
10
11 # Вычисление скоростей левого и правого колес
12 if angle_degrees > 0: # Поворот направо
13 # Правое колесо - внутреннее, левое - внешнее
14 outer_radius = radius_cm + self.wheelbase / 2
15 inner_radius = radius_cm - self.wheelbase / 2
16
17 left_power = base_power # Внешнее колесо
18 right_power = base_power * (inner_radius / outer_radius)
19 else: # Поворот налево
20 # Левое колесо - внутреннее, правое - внешнее
21 outer_radius = radius_cm + self.wheelbase / 2
22 inner_radius = radius_cm - self.wheelbase / 2
23
24 right_power = base_power # Внешнее колесо
25 left_power = base_power * (inner_radius / outer_radius)
26
27 # Расчет времени движения
28 arc_length = (abs(angle_degrees) * pi * radius_cm) / 180
29 wheel_speed = (base_power / 100) * self.max_wheel_speed
30 travel_time = arc_length / wheel_speed
31
32 # Выполнение поворота
33 self.left_motor.run_time(left_power, travel_time * 1000) # мс
34 self.right_motor.run_time(right_power, travel_time * 1000)
🧮 Математические расчеты для дуги:
Радиусы для левого и правого колес:
\[R_L = R - \frac{L}{2}, \quad R_R = R + \frac{L}{2}\]Отношение скоростей:
\[\frac{v_L}{v_R} = \frac{R_L}{R_R} = \frac{R - L/2}{R + L/2}\]Длина дуги:
\[S = R \cdot \frac{\alpha \cdot \pi}{180°}\]🔧 Калибровка базовых параметров:
1def calibrate_wheel_diameter(self, test_distance=100):
2 """
3 Калибровка диаметра колеса
4 Робот проезжает известное расстояние, измеряется количество оборотов
5 """
6 print("Поставьте робота на линию старта")
7 input("Нажмите Enter для начала калибровки...")
8
9 # Подсчет оборотов мотора
10 initial_position = self.left_motor.angle
11
12 # Движение на заданное расстояние
13 self.move_forward(test_distance, speed=30)
14
15 final_position = self.left_motor.angle
16 motor_rotations = (final_position - initial_position) / 360
17
18 # Вычисление реального диаметра
19 actual_diameter = test_distance / (motor_rotations * pi)
20
21 print(f"Калиброванный диаметр колеса: {actual_diameter:.2f} см")
22 return actual_diameter
23
24def calibrate_wheelbase(self, test_angle=360):
25 """
26 Калибровка расстояния между колесами
27 Робот делает полный оборот, измеряется количество оборотов моторов
28 """
29 print("Установите робота в центр тестовой области")
30 input("Нажмите Enter для начала калибровки...")
31
32 initial_position = self.left_motor.angle
33
34 # Поворот на полный круг
35 self.turn_on_spot(test_angle, power=25)
36
37 final_position = self.left_motor.angle
38 motor_rotations = abs(final_position - initial_position) / 360
39
40 # Вычисление реальной колеи
41 actual_wheelbase = (motor_rotations * self.wheel_diameter * pi) / (test_angle * pi / 180)
42
43 print(f"Калиброванная колея: {actual_wheelbase:.2f} см")
44 return actual_wheelbase
📊 Компенсация систематических ошибок:
1def compensated_turn(self, target_angle, power=30):
2 """
3 Поворот с компенсацией систематических ошибок
4 """
5 # Эмпирические коэффициенты коррекции
6 correction_factors = {
7 90: 1.02, # Поворот на 90° требует коррекции +2%
8 45: 1.01, # Поворот на 45° требует коррекции +1%
9 180: 1.03, # Поворот на 180° требует коррекции +3%
10 }
11
12 # Применение коррекции
13 corrected_angle = target_angle * correction_factors.get(target_angle, 1.0)
14
15 # Выполнение скорректированного поворота
16 self.turn_on_spot(corrected_angle, power)
🎯 Программа комплексного тестирования:
1def test_suite(self):
2 """
3 Комплексный тест всех типов поворотов
4 """
5 tests = [
6 ("Поворот на 90° направо", lambda: self.turn_on_spot(90)),
7 ("Поворот на 90° налево", lambda: self.turn_on_spot(-90)),
8 ("Поворот на 180°", lambda: self.turn_on_spot(180)),
9 ("Поворот на 45° направо", lambda: self.turn_on_spot(45)),
10 ("Движение по дуге R=30см на 90°", lambda: self.turn_arc(30, 90)),
11 ("Квадрат 40×40 см", self.draw_square),
12 ("Восьмерка", self.draw_figure_eight),
13 ]
14
15 for test_name, test_function in tests:
16 print(f"\nВыполняется тест: {test_name}")
17 input("Нажмите Enter для продолжения...")
18
19 start_time = time.time()
20 test_function()
21 end_time = time.time()
22
23 print(f"Время выполнения: {end_time - start_time:.2f} с")
24
25 accuracy = input("Оцените точность (1-10): ")
26 print(f"Точность: {accuracy}/10")
27
28def draw_square(self, side_length=40):
29 """Рисование квадрата заданного размера"""
30 for i in range(4):
31 self.move_forward(side_length)
32 self.turn_on_spot(90)
33
34def draw_figure_eight(self, radius=25):
35 """Рисование восьмерки"""
36 # Первая окружность
37 self.turn_arc(radius, 360)
38 # Переход ко второй окружности
39 self.turn_on_spot(180)
40 # Вторая окружность
41 self.turn_arc(radius, 360)
📋 Протокол испытаний:
Тест 1: Точность поворота на месте
1Цель: Проверить точность поворотов на фиксированные углы
2
3Процедура:
41. Установить робота в центр тестового поля
52. Совместить переднюю часть робота с отметкой 0°
63. Выполнить команду поворота на 90°
74. Измерить фактический угол поворота транспортиром
85. Записать отклонение от заданного угла
9
10Тестовые углы: 30°, 45°, 90°, 180°, 270°
11Количество повторов: 3 для каждого угла
12
13Критерии успеха:
14✓ Отклонение < ±5° для углов 90°, 180°
15✓ Отклонение < ±3° для углов 30°, 45°
16✓ Стабильность результатов (разброс < 3°)
Тест 2: Движение по дуге
1Цель: Проверить способность двигаться по заданной траектории
2
3Процедура:
41. Начертить на полу дугу радиусом 30 см, угол 90°
52. Установить робота в начальную точку
63. Запустить программу движения по дуге
74. Измерить отклонение от идеальной траектории
8
9Параметры тестирования:
10- Радиусы: 20 см, 30 см, 50 см
11- Углы дуги: 90°, 180°
12- Скорости: медленная (30%), средняя (50%)
13
14Критерии успеха:
15✓ Отклонение от траектории < ±3 см
16✓ Достижение конечной точки с точностью ±5 см
⚠️ Типичные проблемы и решения:
Проблема: Робот поворачивает неточно
1Возможные причины:
21. Неправильная калибровка диаметра колес
32. Разные диаметры левого и правого колеса
43. Проскальзывание колес
54. Неравномерная работа моторов
6
7Диагностика:
8- Измерить диаметры колес штангенциркулем
9- Проверить синхронность работы моторов
10- Тестировать на разных поверхностях
11
12Решения:
13- Перекалибровка констант программы
14- Замена колес на более точные
15- Программная компенсация разности моторов
16- Использование энкодеров для обратной связи
Проблема: Робот движется не по дуге, а ломаной линией
1Причины:
21. Слишком большой шаг дискретизации
32. Недостаточно плавное изменение мощности
43. Люфт в механизмах
5
6Решения:
7- Уменьшить временной шаг управления
8- Использовать плавное ускорение/торможение
9- Проверить жесткость всех соединений
10- Применить сглаживающие фильтры к командам
📈 Таблица результатов тестирования:
Тест | Заданное значение | Измеренное значение | Ошибка | Оценка |
---|---|---|---|---|
Поворот 90° №1 | 90° | 87° | -3° | ✓ |
Поворот 90° №2 | 90° | 91° | +1° | ✓ |
Поворот 90° №3 | 90° | 89° | -1° | ✓ |
Поворот 45° №1 | 45° | 44° | -1° | ✓ |
Дуга R=30, 90° | R=30см, 90° | R=32см, 88° | ΔR=+2см, Δα=-2° | ✓ |
Квадрат 40×40 | Замкнутая фигура | Ошибка замыкания 3см | 3см | ✓ |
🧮 Статистическая обработка:
Средняя абсолютная ошибка: \[MAE = \frac{1}{n} \sum_{i=1}^{n} |\text{ошибка}_i|\]
Стандартное отклонение: \[\sigma = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (\text{ошибка}_i - \bar{\text{ошибка}})^2}\]
Коэффициент точности: \[K_{\text{точн}} = \frac{\text{количество успешных тестов}}{\text{общее количество тестов}} \times 100\%\]
🔧 Автоматическая калибровка:
1def auto_calibration(self):
2 """
3 Автоматическая калибровка на основе результатов тестов
4 """
5 calibration_data = []
6
7 # Серия тестовых поворотов
8 test_angles = [90, 180, 270, 360]
9
10 for target_angle in test_angles:
11 print(f"Калибровка для угла {target_angle}°")
12
13 # Выполнить поворот
14 self.turn_on_spot(target_angle)
15
16 # Пользователь измеряет фактический угол
17 actual_angle = float(input(f"Введите фактический угол поворота: "))
18
19 # Вычислить коэффициент коррекции
20 correction_factor = target_angle / actual_angle
21 calibration_data.append((target_angle, correction_factor))
22
23 # Вычислить средний коэффициент
24 avg_correction = sum(cf for _, cf in calibration_data) / len(calibration_data)
25
26 # Обновить параметры робота
27 self.wheelbase *= avg_correction
28
29 print(f"Новая калиброванная колея: {self.wheelbase:.2f} см")
30 print(f"Коэффициент коррекции: {avg_correction:.3f}")
31
32 return avg_correction
📐 Коррекция по типам поворотов:
1# Таблица индивидуальных коррекций
2ANGLE_CORRECTIONS = {
3 30: 1.01, # Малые углы - коррекция +1%
4 45: 1.005, # Средние углы - коррекция +0.5%
5 90: 1.02, # Прямой угол - коррекция +2%
6 180: 1.03, # Полуоборот - коррекция +3%
7 270: 1.025, # 3/4 оборота - коррекция +2.5%
8 360: 1.04 # Полный оборот - коррекция +4%
9}
10
11def corrected_turn(self, angle):
12 """Поворот с индивидуальной коррекцией"""
13 correction = ANGLE_CORRECTIONS.get(angle, 1.0)
14 corrected_angle = angle * correction
15 self.turn_on_spot(corrected_angle)
⏱️ Регламент демонстраций:
🎯 Программа демонстраций:
Демонстрация 1: Базовые повороты
1Задание: Выполнить серию точных поворотов
2- Поворот на 90° направо
3- Поворот на 90° налево
4- Поворот на 180°
5- Возврат в исходное положение
6
7Критерии оценки:
8✓ Точность углов (±5°)
9✓ Стабильность позиции
10✓ Плавность движений
11✓ Время выполнения
Демонстрация 2: Сложная траектория
1Задание: Нарисовать фигуру по выбору команды
2Варианты:
3- Квадрат со стороной 30 см
4- Треугольник с углами 60°
5- Восьмерка из двух окружностей
6- Спираль из 3-4 витков
7
8Критерии оценки:
9✓ Точность геометрии фигуры
10✓ Замыкание траектории
11✓ Сложность программирования
12✓ Креативность решения
📊 Система оценивания (25 баллов максимум):
Качество конструкции (8 баллов):
Точность программирования (10 баллов):
Сложность решения (4 балла):
Презентация и объяснение (3 балла):
🔧 Технические аспекты:
💻 Программирование:
⚙️ Инженерные решения:
🥇 Конкурсные категории:
“Инженерная точность”
“Программистский элегант”
“Конструкторское мастерство”
“Комплексное решение”
“Творческий подход”
🛠️ Что мы освоили в конструировании:
💻 Что мы изучили в программировании:
🔬 Что мы поняли о физике:
🎯 Оцените работу вашей команды (1-5 баллов):
⚙️ Конструирование робота: ⭐⭐⭐⭐⭐
💻 Программирование движений: ⭐⭐⭐⭐⭐
🧪 Тестирование и оптимизация: ⭐⭐⭐⭐⭐
🤝 Командная работа: ⭐⭐⭐⭐⭐
🔧 Самые интересные открытия:
⚡ Трудности и их преодоление:
🚀 Идеи для развития:
📈 Направления улучшения:
Конструкторские модификации:
Программные усовершенствования:
Расширение функциональности:
1. Завершение программирования (если необходимо) Доработать программы робота для всех типов поворотов:
2. Отчет о практической работе Подготовить структурированный отчет:
1Структура отчета:
21. Описание конструкции робота
3 - Схема сборки
4 - Основные размеры и характеристики
5 - Используемые компоненты
6
72. Программные решения
8 - Алгоритмы поворотов
9 - Калибровочные константы
10 - Методы повышения точности
11
123. Результаты тестирования
13 - Таблица измерений точности поворотов
14 - Анализ ошибок и их причин
15 - Способы устранения проблем
16
174. Выводы и предложения
18 - Достигнутые результаты
19 - Направления улучшения
20 - Практическая значимость проекта
3. Программирование сложной траектории Создать программу для движения робота по одной из траекторий:
Вариант A: Восьмерка
1def draw_figure_eight(self, radius=25):
2 """
3 Программа рисования восьмерки
4
5 Параметры:
6 radius: радиус каждой окружности в см
7 """
8 # Ваш код здесь
9 pass
Вариант B: Спираль
1def draw_spiral(self, initial_radius=10, turns=3, radius_increment=5):
2 """
3 Программа рисования спирали
4
5 Параметры:
6 initial_radius: начальный радиус в см
7 turns: количество витков
8 radius_increment: увеличение радиуса за виток
9 """
10 # Ваш код здесь
11 pass
Вариант C: Звезда
1def draw_star(self, outer_radius=30, inner_radius=15, points=5):
2 """
3 Программа рисования звезды
4
5 Параметры:
6 outer_radius: внешний радиус в см
7 inner_radius: внутренний радиус в см
8 points: количество лучей звезды
9 """
10 # Ваш код здесь
11 pass
4. Исследование зависимости точности от скорости Провести эксперимент:
Проект 1: “Адаптивная система управления” Разработать систему, которая автоматически адаптируется к условиям:
1class AdaptiveRobotController:
2 def __init__(self):
3 self.surface_type = "unknown"
4 self.correction_factors = {}
5
6 def detect_surface(self):
7 """Определение типа поверхности по характеру движения"""
8 pass
9
10 def adaptive_turn(self, angle):
11 """Поворот с автоматической коррекцией под поверхность"""
12 pass
13
14 def learn_from_errors(self, target_angle, actual_angle):
15 """Обучение на основе ошибок"""
16 pass
Проект 2: “Групповая координация роботов” Создать систему управления несколькими роботами:
Проект 3: “Робот-художник” Робот, рисующий сложные узоры:
⚙️ Конструкторские навыки:
💻 Программистские компетенции:
🔬 Физико-математическое понимание:
🎯 Ключевые выводы практикума:
“Точность робота определяется не только программой, но и качеством конструкции”
“Каждый миллиметр в геометрии робота влияет на точность его движений”
“Калибровка и компенсация ошибок превращают теоретические расчеты в практические результаты”
🔮 Универсальные принципы инженерии:
💭 Техника “Робот моей мечты”: Представьте идеального мобильного робота:
🔬 Философские вопросы робототехники:
🚀 Карьерные перспективы:
🏭 Области применения навыков:
🔮 Следующий урок: “Датчики и системы обратной связи в мобильных роботах”
🎯 Готовимся к новым вызовам:
⚙️ ВЫ СТАЛИ НАСТОЯЩИМИ ИНЖЕНЕРАМИ-РОБОТОТЕХНИКАМИ!
Теперь вы умеете создавать роботов, которые точно выполняют ваши команды и движутся именно туда, куда нужно!
📖 Документация и руководства:
🎥 Видеоуроки и каналы:
📱 Симуляторы для практики:
💻 ПО для 3D моделирования:
📐 Калькуляторы и справочники:
Удачи в дальнейшем освоении робототехники! 🤖✨