Skip to content
Занятие 3. Движение по времени: задачи 4.1–4.2 и почему на этом нельзя строить робота

Занятие 3. Движение по времени: задачи 4.1–4.2 и почему на этом нельзя строить робота

Занятие 3. Движение по времени (мини-задачи 4.1–4.2)

Цель занятия: обучающиеся выполняют 4.1–4.2 (проезд вперёд/назад t секунд с остановкой) и экспериментально показывают, почему движение по времени ненадёжно для задач на расстояние.

Разминка-вспоминание (5 мин, без подглядывания)

  1. Что означает drive(150, 150) и drive(-150, -150)?
  2. Чем stopBrake() отличается от stopCoast()?
  3. Ниже какого напряжения на банку нельзя разряжать Li-аккумулятор?
  4. Что меняем в проекте при замене драйвера моторов?

Разбор (worked example)

Эталонное решение 4.1 «вперёд t секунд и стоп» — с объяснением каждой строки:

const int PWM_RUN = 150;      // не 255: на максимуме моторы разбалансированы сильнее,
                              // а торможение даёт длинный юз
void task_4_1(float t_sec) {
  drive(PWM_RUN, PWM_RUN);
  delay((unsigned long)(t_sec * 1000));
  stopBrake();                // активный тормоз: юз короче и повторяемее, чем выбег
}
// 4.2 = то же с drive(-PWM_RUN, -PWM_RUN)
Почему stopBrake, а не stopCoast. При выбеге робот катится, пока кинетическая энергия не уйдёт в трение — путь выбега зависит от скорости, массы и покрытия и «плавает». При активном торможении обмотки замыкаются, мотор работает генератором на самого себя — остановка резкая и повторяемая. Для всех задач «…и остановиться» по умолчанию тормозим активно. Свободный выбег пригодится позже — для мягкого подъезда к объекту с захватом.

Практика

Сдать 4.1 и 4.2 по протоколу

Судья (соседняя пара) называет t (например, 2,5 с). Три попытки, фиксация в журнал: реально пройденный путь рулеткой.

Эксперимент «батарея врёт»

Одна и та же программа (t = 3 c, PWM = 150): 3 заезда на свежезаряженной батарее, 3 заезда на подсевшей (или через понижающий преобразователь имитировать просадку). Измерить путь каждого заезда, посчитать разброс.

Эксперимент «покрытие врёт»

Тот же заезд на линолеуме и на баннере соревновательного поля. Записать разницу.

Вывод письменно (2 предложения в журнал)

От чего зависит путь при движении по времени и для каких задач регламента этот способ пригоден (только 4.1–4.2, где критерий — само время), а для каких — нет (4.3+).

Типичные ошибки:

  • delay(t_sec * 1000) при int t_sec и дробном вводе — потеря дробной части;
  • остановка через drive(0,0) у некоторых драйверов = выбег, а не тормоз — проверить свой драйвер и зафиксировать в HAL;
  • «зашью PWM=255, доеду быстрее» — на полной мощности разница моторов максимальна, робот уводит вбок уже на первом метре.

Мини-проверка выхода

Заезды 4.1/4.2 в допуске по времени + устный ответ: «почему для задачи “проехать 50 см” мы завтра возьмём энкодеры, а не секундомер?» (ожидаем: путь за время зависит от напряжения батареи, нагрузки, покрытия — эксперимент это показал).

Над-образовательная активность (Такман: начало шторма)

Первые «у них едет, у нас нет» — нормируем: сравниваем не пары между собой, а разброс заездов внутри пары; вводим правило пост-разбора «1 гипотеза → 1 изменение → контрольный заезд».