Робот-курьер Урок 1.1 Все курсыДля учителяПройти в программе Ученик Arduino Uno + шилд моторов L298P
Тема 1 · Урок 1.1

Собираем робота и оживляем плату

Собери робота и проверь каждый установленный узел диагностическим скетчем.

2 × 45 мин1–2 ученика на роботаСборка

Результат урока

Собранный робот: оба мотора проверены в обе стороны и останавливаются, оба датчика линии реагируют на белое и чёрное. Результаты проверки записаны в журнал.

Ты научишься

  • Собрать ходовую часть робота по инструкции и проверить каждый узел.
  • Различать перед, зад, левую и правую стороны робота.
  • Загрузить программу в Arduino и объяснить, что делают setup() и loop().
  • Проверить оба мотора, их остановку и оба датчика линии; отличать команду программы от наблюдаемого результата.

Нужно знать

Ничего — это первый урок.

Понадобится

Основа 130 × 150Кронштейн мотораКронштейн мотора (зеркальный)Мотор-редуктор × 2Колесо × 2Шаровая опораДержатель ArduinoArduino Uno R3Шилд моторов L298P (Амперка)Планка датчиковДатчик линии (аналоговый, Trema) × 2Крепление выключателяБатарейный отсек моторов с выключателемUSB-кабель для ArduinoКрепёж: винты, гайки, шайбы, стойкиОтвёртка

Зачем этот урок

Весь курс ты будешь работать с одним роботом — своим. Сегодня соберёшь его ходовую часть, установишь «мозг» робота — плату Arduino — и напишешь первую программу. К концу урока ты проверишь каждый установленный узел и запишешь, что он действительно работает.

Готовый робот-курьер: платформа на двух колёсах, плата управления, датчики спереди и захват
Так робот будет выглядеть в конце курса. Сегодня собираем основу: платформу, моторы, колёса, плату и датчики линии.
Безопасность

Пока идёт сборка, батарейный отсек отключён, а USB-кабель не подключён к компьютеру. Батарейный отсек к шилду заранее подключает взрослый. Моторы ты включаешь и выключаешь только выключателем.

1
Занятие 1 · 45 мин
Ходовая часть
1

Распределите роли

3 мин

Что должен делать робот. Сначала роботу нужно правильно выполнять отдельные команды: вращать каждое колесо, останавливаться и сообщать показания датчиков. До самостоятельной поездки проверим каждый узел по очереди, чтобы искать причину ошибки в одном месте.

Что используем и как это работает. Arduino Uno выполняет программу. Драйвер L298P по её сигналам управляет питанием моторов: вывод DIR задаёт направление, PWM — долю времени подачи питания. Мотор превращает электрическую энергию во вращение, а колесо — в движение. Два датчика отражения снизу помогают различать светлую поверхность и чёрную линию.

Как связать измерение с действием. Команда и результат — разные вещи. Надпись в мониторе означает, что программа дошла до печати; вращение проверяем глазами. На подставке проверим оба направления каждого колеса и остановку, затем сравним показания датчиков над белой и чёрной карточками. Так узнаем, как именно собран наш робот.

Вы работаете вдвоём. Один — Пилот: держит детали и отвёртку. Второй — Штурман: читает шаг вслух, подаёт детали и проверяет результат по картинке.

  1. Решите, кто начинает Пилотом.
  2. После каждой детали, которая закреплена винтами, меняйтесь ролями.
Должно получиться

Каждый знает свою роль. Штурман держит инструкцию, Пилот — инструмент.

2

Разложи детали

7 мин

Прежде чем собирать, найди каждую деталь. Так ты не перепутаешь похожие детали и сразу увидишь, если чего-то не хватает.

Основа 130 × 150
1 шт.
Кронштейн мотора
1 шт.
Кронштейн мотора (зеркальный)
1 шт.
Планка датчиков
1 шт.
Держатель Arduino
1 шт.
Крепление выключателя
1 шт.
Колесо
2 шт.
  1. Разложи печатные детали в ряд, как на карточках.
  2. Найди два кронштейна моторов. Они похожи, но зеркальные: положи их рядом и посмотри — полочки смотрят в разные стороны.
  3. Рядом положи покупные детали: Arduino, шилд моторов, два мотора, шаровую опору, два датчика линии, батарейный отсек и пакеты с крепежом.
Должно получиться

Все детали лежат перед тобой. Ты можешь показать оба зеркальных кронштейна.

Подсказка: Не хватает детали

Не заменяй её похожей. Сверь пакет с карточками ещё раз; если детали нет — сообщи взрослому.

3

Потренируйся на одном винте

4 мин

Почти все детали робота держатся на винтах и гайках. Соберём одно соединение на столе.

  1. Возьми винт, две шайбы и гайку из пакета «Тренировка».
  2. Надень шайбу на винт, проведи винт через две детали, надень вторую шайбу и накрути гайку пальцами.
  3. Придержи гайку пальцем и затяни винт отвёрткой. Остановись, как только детали перестали шевелиться.
Основа робота сверху: сетка отверстий, большое прямоугольное окно и маленькое квадратное
Сетка отверстий основы. Через эти отверстия будем крепить все узлы.
Должно получиться

Порядок соединения: винт → шайба → деталь → деталь → шайба → гайка. Детали не болтаются.

Как это устроено: Почему нельзя затягивать изо всех сил

Детали напечатаны из пластика. Если перетянуть винт, пластик продавится или треснет. Признак перетяжки — деталь прогибается или белеет вокруг винта.

4

Договоритесь, где перед

3 мин

Чтобы «левое колесо» всегда значило одно и то же, отметим перед робота.

  1. Положи основу плоско: маленькое квадратное окно — дальше от тебя, длинное прямоугольное — ближе.
  2. Дальняя сторона — перед. Наклей на неё бумажную стрелку «вперёд».
  3. Лево и право определяй как водитель, который сидит в роботе и смотрит по стрелке.
Должно получиться

На основе есть стрелка «вперёд». Вы оба показываете левую сторону робота одинаково.

5

Прикрепи кронштейны моторов

8 мин

Кронштейны держат моторы снизу основы.

Основа снизу с двумя закреплёнными кронштейнами, выделенными оранжевым
Вид снизу. Новые детали выделены оранжевым.
  1. Переверни основу так, чтобы стрелка осталась видна сбоку.
  2. Приложи кронштейны к нижней стороне, как на рисунке. Большие круглые отверстия смотрят наружу — туда будут выходить оси колёс.
  3. Вставь винты сверху, снизу надень шайбы и гайки. Сначала наживи все винты пальцами, потом затяни.
Должно получиться

Два кронштейна стоят друг напротив друга, большие отверстия — снаружи. Кронштейны не качаются.

Проверь себя
6

Установи моторы

8 мин

Ось мотора — вращающийся стержень, на который надевается колесо. Она должна выйти наружу через отверстие кронштейна.

Основа снизу: два мотора установлены в кронштейны, оси выходят наружу
Корпус мотора внутри, ось — снаружи.
  1. Приложи первый мотор к кронштейну изнутри. Ось проходит через большое отверстие наружу.
  2. Закрепи мотор винтами из пакета «Моторы». Держи мотор рукой, пока затягиваешь.
  3. Так же установи второй мотор.
  4. Наклей на провода метки: Л — левый мотор, П — правый. Сверься со стрелкой «вперёд».
Должно получиться

Оба мотора держатся крепко, оси смотрят влево и вправо, провода подписаны.

Подсказка: Мотор не встаёт в кронштейн

Не дави и не подпиливай. Проверь, тот ли это кронштейн: может быть, ты взял зеркальный для другой стороны.

7

Надень колёса

5 мин
  1. Совмести отверстие колеса с осью мотора. Форма отверстия должна совпасть с формой оси.
  2. Надень колесо, придерживая мотор за корпус. Не бей по колесу.
  3. Посмотри сбоку: колесо не должно касаться кронштейна или основы.
Основа с двумя колёсами, вид сбоку-сверху
Между колесом и кронштейном виден зазор.
Должно получиться

Два колеса стоят на осях и ничего не задевают.

8

Добавь заднюю опору и проверь робота

7 мин

Колёс два, поэтому роботу нужна третья точка опоры сзади — шаровая опора.

Основа с колёсами и опорой на стойках в задней части
Опора крепится снизу у задней стороны основы на стойках.
  1. Закрепи шаровую опору снизу у задней стороны основы. Стойки из пакета «Опора» подобраны по высоте.
  2. Поставь робота на стол. Он должен стоять ровно на двух колёсах и опоре.
  3. Аккуратно покачай робота. Ничего не должно болтаться.
Должно получиться

Робот стоит устойчиво и ровно. Ходовая часть готова.

Проверь себя
2
Занятие 2 · 45 мин
Электроника и первая программа
9

Установи Arduino

6 мин

Arduino — «мозг» робота. Плата лежит на держателе, чтобы её контакты снизу не касались винтов.

Держатель с платой Arduino на основе робота, выделен оранжевым
Держатель и плата в центре основы.
  1. Закрепи держатель Arduino в центре основы стойками вверх.
  2. Положи плату на стойки так, чтобы разъём USB был у края и до него можно было дотянуться.
  3. Закрепи плату винтами. Затягивай их по очереди, понемногу.
Должно получиться

Плата лежит ровно и не касается винтов основы. Разъём USB свободен.

10

Подготовь компьютер

5 мин

Программы для робота пишут в MyRobotica. В ней есть уроки и редактор кода.

  1. Подключи USB-кабель к Arduino и к компьютеру. Батарейный отсек моторов остаётся отключённым.
  2. Открой MyRobotica, курс «Робот-курьер» и урок 1.1. Открой учебный проект урока.
  3. В правой части кнопки Загрузить на робота выбери своего настоящего робота. В Подробнее о связи проверь плату Arduino Uno и её порт.
  4. В редакторе оставь пустые функции setup() и loop() и сохрани программу.
Должно получиться

На плате горит индикатор питания ON. В MyRobotica открыт учебный проект, выбран настоящий робот с платой Arduino Uno и виден его порт.

Подсказка: Не вижу порт

Отключи и снова подключи кабель. Если порт так и не появился, возможно, кабель только заряжает и не передаёт данные. Попроси другой кабель.

Программы для робота пишут в MyRobotica. В ней есть уроки и редактор кода.

  1. Подключи USB-кабель к Arduino и к компьютеру. Батарейный отсек моторов остаётся отключённым.
  2. Открой MyRobotica, курс «Робот-курьер», урок 1.1 и его учебный проект.
  3. В правой части кнопки Загрузить на робота выбери своего настоящего робота. Открой Подробнее о связи и проверь плату Arduino Uno. Отключи USB-кабель, посмотри, как изменилось состояние связи, и подключи его снова. Запиши имя порта в журнал.
  4. В редакторе оставь пустые функции setup() и loop() и сохрани программу.
Должно получиться

В MyRobotica открыт учебный проект и выбран настоящий робот с платой Arduino Uno. Имя его порта записано.

Подсказка: Порт так и не появился

Кабель может только заряжать и не передавать данные. Попроси другой кабель.

  1. Подключи USB-кабель к Arduino и к компьютеру. Батарейный отсек моторов остаётся отключённым.
  2. В MyRobotica открой курс «Робот-курьер», урок 1.1 и его учебный проект. В правой части кнопки Загрузить на робота выбери своего настоящего робота. Через Подробнее о связи проверь плату Arduino Uno и найди её порт.
  3. Сохрани программу с пустыми setup() и loop(), нажми Проверить код, а потом Загрузить на робота.
  4. Запиши в журнал: плату, порт, версию MyRobotica и чем Проверить код отличается от Загрузить на робота — что делает каждая кнопка и нужна ли для неё плата.
Должно получиться

Пустой скетч проверен и загружен. В журнале — плата, порт, версия MyRobotica и разница двух кнопок.

Подсказка: Проверить код и Загрузить на робота

Отключи кабель и нажми обе кнопки по очереди. Какая сработала без платы?

12

Надень шилд и подключи моторы

7 мин

Выводы Arduino не могут дать моторам достаточно тока. Поэтому моторы подключаются к шилду — плате, которая надевается сверху на Arduino и включает моторы по её командам.

Безопасность

Сначала отключи USB-кабель. Ничего не подключай и не отключай, пока плата под питанием.

  1. Совмести ножки шилда с гнёздами Arduino и аккуратно надави сверху. Ни одна ножка не должна остаться снаружи или согнуться.
  2. Подключи провода моторов к клеммам шилда:
Что подключаемКуда
Левый мотор
Пометь провода буквой «Л».
Клеммы канала M2 на шилде
Правый мотор
Пометь провода буквой «П».
Клеммы канала M1 на шилде
Батарейный отсек (через выключатель)взрослый
Подключает взрослый.
Клеммы питания моторов на шилде
  1. Батарейный отсек с выключателем уже подключён взрослым. Проверь, что выключатель выключен. Если провода отсека не подключены — сам их не подключай, позови взрослого.
Должно получиться

Шилд сидит на Arduino ровно. Провода моторов закреплены в клеммах и подписаны.

13

Установи датчики линии

6 мин

Датчики линии будут «смотреть» на пол и замечать чёрную линию. Ставим их спереди, поперёк робота.

  1. Закрепи планку датчиков снизу у переднего края основы на стойках.
  2. Закрепи на планке два датчика — левый и правый — чувствительной стороной вниз, к полу. Датчики на одинаковой высоте.
  3. Подключи датчики к шилду по таблице. Буквы у контактов датчика: S — сигнал, V — питание, G — земля.
Что подключаемКуда
Левый датчик · S (сигнал)A4
Левый датчик · V (питание)5V
Левый датчик · G (земля)GND
Правый датчик · S (сигнал)A5
Правый датчик · V (питание)5V
Правый датчик · G (земля)GND
  1. Уложи провода так, чтобы они не касались колёс.
Должно получиться

Два датчика смотрят вниз, их провода подключены и не свисают к колёсам.

14

Проверь все узлы робота

14 мин

Теперь проверим, что каждая часть робота работает: оба колеса и оба датчика. Программа для проверки уже открыта в редакторе справа.

Безопасность

Поставь робота на подставку так, чтобы колёса висели в воздухе и не касались стола. Пока выключатель моторов выключен, колёса крутиться не могут.

Программу писать не нужно — она готова. Ты будешь отправлять ей буквы и цифры, а она будет крутить одно колесо или показывать числа датчиков.

Готовая диагностикаL11_Diagnostics.ino.ino
// Программа проверки для робота курса (Arduino Uno + шилд L298P).// Робот стоит на подставке: колёса висят в воздухе.// Колесо крутится со скоростью 120 из 255 около 0,3 секунды.const int LEFT_DIR = 7;const int LEFT_PWM = 6;const int RIGHT_DIR = 4;const int RIGHT_PWM = 5;const int LEFT_SENSOR = A4;const int RIGHT_SENSOR = A5;const int FORWARD = HIGH;const int BACKWARD = LOW;const int TEST_PWM = 120;const unsigned long PULSE_MS = 300;bool running = false;unsigned long startedAt = 0; void reportSensors() {  Serial.print("LEFT=");  Serial.print(analogRead(LEFT_SENSOR));  Serial.print(" RIGHT=");  Serial.println(analogRead(RIGHT_SENSOR));} void beginPulse(int dirPin, int pwmPin, int direction) {  digitalWrite(dirPin, direction);  analogWrite(pwmPin, TEST_PWM);} // ===== Готовая оболочка — не меняй =====void stopMotors() {  analogWrite(LEFT_PWM, 0);  analogWrite(RIGHT_PWM, 0);  running = false;} void setup() {  pinMode(LEFT_PWM, OUTPUT);  pinMode(RIGHT_PWM, OUTPUT);  stopMotors();  pinMode(LEFT_DIR, OUTPUT);  pinMode(RIGHT_DIR, OUTPUT);  pinMode(LEFT_SENSOR, INPUT);  pinMode(RIGHT_SENSOR, INPUT);  Serial.begin(9600);  Serial.println("READY: 1=L forward, 2=L backward, 3=R forward, 4=R backward, d=sensors, s=stop");} void loop() {  if (running && millis() - startedAt >= PULSE_MS) {    stopMotors();    Serial.println("PWM=0; verify physical stop");  }  if (!Serial.available()) return;  char command = Serial.read();  if (command == 's') {    stopMotors();    Serial.println("PWM=0; verify physical stop");    return;  }  // Пока идёт импульс, новые команды не продлевают и не перезапускают его.  if (running) return;  if (command == 'd') {    reportSensors();    return;  }  if (command < '1' || command > '4') return;  // Удаляем накопленные команды: один ввод не должен запускать очередь движений.  while (Serial.available()) Serial.read();  stopMotors();  startedAt = millis();  running = true;  if (command == '1') beginPulse(LEFT_DIR, LEFT_PWM, FORWARD);  if (command == '2') beginPulse(LEFT_DIR, LEFT_PWM, BACKWARD);  if (command == '3') beginPulse(RIGHT_DIR, RIGHT_PWM, FORWARD);  if (command == '4') beginPulse(RIGHT_DIR, RIGHT_PWM, BACKWARD);  Serial.println("Observe wheel; no automatic hardware PASS");}
Как это устроено: Что делает программа
  • reportSensors печатает два числа: что видит левый и правый датчик.
  • beginPulse включает одно колесо.
  • Через 0,3 секунды колесо само останавливается: это делает stopMotors.

В программе уже готово всё, кроме двух функций в разделе «Твоя часть». Допиши их:

  • reportSensors — печатает числа левого и правого датчика с подписями;
  • beginPulse — включает выбранный мотор в нужную сторону со скоростью TEST_PWM. Второй мотор при этом выключен.

Остальную программу не меняй.

Допиши две функцииL11_Diagnostics_Gaps.ino.ino
// Программа проверки для робота курса (Arduino Uno + шилд L298P).// Робот стоит на подставке: колёса висят в воздухе.// Колесо крутится со скоростью 120 из 255 около 0,3 секунды.const int LEFT_DIR = 7;const int LEFT_PWM = 6;const int RIGHT_DIR = 4;const int RIGHT_PWM = 5;const int LEFT_SENSOR = A4;const int RIGHT_SENSOR = A5;const int FORWARD = HIGH;const int BACKWARD = LOW;const int TEST_PWM = 120;const unsigned long PULSE_MS = 300;bool running = false;unsigned long startedAt = 0; // ===== Твоя часть =====void reportSensors() {  // Цель: показать в мониторе подписанные показания левого и правого датчиков.} void beginPulse(int dirPin, int pwmPin, int direction) {  // Цель: включить только указанный мотор с указанным направлением и TEST_PWM.} // ===== Готовая оболочка — не меняй =====void stopMotors() {  analogWrite(LEFT_PWM, 0);  analogWrite(RIGHT_PWM, 0);  running = false;} void setup() {  pinMode(LEFT_PWM, OUTPUT);  pinMode(RIGHT_PWM, OUTPUT);  stopMotors();  pinMode(LEFT_DIR, OUTPUT);  pinMode(RIGHT_DIR, OUTPUT);  pinMode(LEFT_SENSOR, INPUT);  pinMode(RIGHT_SENSOR, INPUT);  Serial.begin(9600);  Serial.println("READY: 1=L forward, 2=L backward, 3=R forward, 4=R backward, d=sensors, s=stop");} void loop() {  if (running && millis() - startedAt >= PULSE_MS) {    stopMotors();    Serial.println("PWM=0; verify physical stop");  }  if (!Serial.available()) return;  char command = Serial.read();  if (command == 's') {    stopMotors();    Serial.println("PWM=0; verify physical stop");    return;  }  // Пока идёт импульс, новые команды не продлевают и не перезапускают его.  if (running) return;  if (command == 'd') {    reportSensors();    return;  }  if (command < '1' || command > '4') return;  // Удаляем накопленные команды: один ввод не должен запускать очередь движений.  while (Serial.available()) Serial.read();  stopMotors();  startedAt = millis();  running = true;  if (command == '1') beginPulse(LEFT_DIR, LEFT_PWM, FORWARD);  if (command == '2') beginPulse(LEFT_DIR, LEFT_PWM, BACKWARD);  if (command == '3') beginPulse(RIGHT_DIR, RIGHT_PWM, FORWARD);  if (command == '4') beginPulse(RIGHT_DIR, RIGHT_PWM, BACKWARD);  Serial.println("Observe wheel; no automatic hardware PASS");}
Подсказка: С чего начать

Найди в справке Arduino analogRead, Serial.print, digitalWrite и analogWrite. Сначала проверь датчики — для этого моторы не нужны.

Напиши программу сам. В заготовке есть только номера контактов и выключение моторов.

Напиши свою диагностикуL11_Diagnostics_Empty.ino.ino
// Программа проверки для робота курса (Arduino Uno + шилд L298P).// Робот стоит на подставке: колёса висят в воздухе.// Колесо крутится со скоростью 120 из 255 около 0,3 секунды.const int LEFT_DIR = 7;const int LEFT_PWM = 6;const int RIGHT_DIR = 4;const int RIGHT_PWM = 5;const int LEFT_SENSOR = A4;const int RIGHT_SENSOR = A5;const int FORWARD = HIGH;const int BACKWARD = LOW;const int TEST_PWM = 120;const unsigned long PULSE_MS = 300;bool running = false;unsigned long startedAt = 0; // Напиши диагностику по требованиям урока. При включении моторы стоят.void setup() {  pinMode(LEFT_PWM, OUTPUT);  pinMode(RIGHT_PWM, OUTPUT);  analogWrite(LEFT_PWM, 0);  analogWrite(RIGHT_PWM, 0);} void loop() {}

Что должна уметь программа:

  • работать с монитором порта на скорости 9600;
  • по букве d печатать подписанные числа обоих датчиков;
  • по 1 и 2 крутить левое колесо вперёд и назад, по 3 и 4 — правое;
  • каждый раз крутить со скоростью 120 не дольше 300 мс, потом выключать оба мотора;
  • по букве s сразу выключать оба мотора, даже во время вращения;
  • после включения и кнопки Reset моторы стоят, пока не придёт новая команда;
  • лишние нажатия не копятся в очередь и не продлевают вращение.
Подсказка: Как обойтись без delay

Запомни время начала вращения через millis(). В каждом проходе loop() проверяй, не пришла ли s и не прошло ли 300 мс.

Как проверить робота

  1. Проверь провода. Выключатель моторов выключен. Сверь провода с таблицами подключения: каждый на своём месте и не касается колёс. Колёса крутятся рукой свободно.
  2. Загрузи программу. Нажми Загрузить на робота. Внизу открой Serial Monitor со скоростью 9600. Появится строка READY — плата отвечает. Нажми кнопку Reset на плате: колёса стоят.
  3. Проверь датчики. Отправь d и прочитай два числа. Подложи под левый датчик белую бумагу и отправь d, потом чёрную — и снова d. Сделай так же с правым датчиком. На белом и чёрном числа должны заметно отличаться.
  4. Проверь колёса. Включи выключатель моторов. Отправь 1 и смотри на колёса: коротко крутится только левое колесо вперёд и само останавливается. Потом по очереди отправь 2, 3 и 4.
  5. Проверь остановку. Отправь 1 и сразу s — колесо останавливается. Выключи выключатель моторов и отправь 1 ещё раз: колёса не крутятся.
  6. Запиши результат в журнал для каждого узла из таблицы: команду, ответ в Serial Monitor и фактическое вращение или показание датчика. Если узел ещё не проверен, так и запиши: «не проверен». Если что-то не так — выключи выключатель моторов, отключи USB, открой «Если не получилось», исправь и проверь этот узел ещё раз.
Что проверяемЧто сделатьХорошо, если
ПлатаЗагрузить программу, нажать ResetЕсть READY, колёса стоят
Левое колесоОтправить 1, потом 2Крутится только левое: вперёд, потом назад
Правое колесоОтправить 3, потом 4Крутится только правое: вперёд, потом назад
Левый датчикd на белом и на чёрномЧисла заметно разные
Правый датчикd на белом и на чёрномЧисла заметно разные
Остановкаs и выключатель моторовКолесо останавливается
Если не получилось
Что видишьЧто сделать (выключатель моторов выключен)
Крутится не то колесоПоменяй местами провода моторов в клеммах M1 и M2
Колесо крутится назад вместо вперёдПоменяй местами два провода этого мотора в клемме
Колесо не крутитсяПроверь, что выключатель включён и провода плотно зажаты в клеммах
Число датчика не меняетсяПроверь провода S, V, G и высоту датчика над полом
Нет строки READYПроверь скорость 9600 и выбранный порт
Колесо крутится само после ResetПроверь, что загружена именно эта программа
Ничего не помогаетПозови взрослого и покажи, на каком пункте остановился
Должно получиться

Ты проверил каждое колесо в обе стороны, оба датчика и остановку. Результаты записаны в таблицу.

15

Запиши результат в журнал

4 мин
  1. Запиши в бортовой журнал дату, имя робота и что получилось сегодня.
  2. Отметь, какие узлы прошли проверку сразу, а какие ты исправлял.
  3. Сохрани программу проверки — она пригодится, если робот начнёт вести себя странно.
Должно получиться

Робот проверен, результаты записаны в журнал, программа проверки сохранена.

Проверь себя

Проверь себя

Выберите ответы для подготовки. Они не сохраняются и не оцениваются на сайте. Пройдите проверку знаний в программе курса или обсудите ответы с преподавателем.

● Основное

1.Что подтверждает успешная загрузка скетча?
2.Как проверить левый мотор?
3.Что проверяют у каждого датчика линии?
4.Зачем нужен шилд моторов?
5.Что отключить перед изменением проводки? Выбери все ответы.

★ Средний уровень

1.Что должна вывести функция чтения датчиков?
2.Выбран левый мотор. Что делает правый?
3.Когда настраивают выводы и выключают моторы при запуске?
4.Что доказывает PWM=0?
5.Что делать, если датчик выдаёт постоянное значение?

★★ Продвинутый уровень

1.Как обеспечить обработку s во время импульса?
2.Что делает скетч после Reset?
3.Что делать с накопленными командами движения?
4.Можно ли без энкодеров автоматически подтвердить вращение?
5.Все программные проверки прошли, но колесо не крутится. Итог?

Отвечай на вопросы своего уровня. Нужно верных ответов: Начальный — 4 из 5; Средний — 4 из 5; Продвинутый — 4 из 5. Ответы проверит преподаватель или программа курса.

Итог

Ты собрал ходовую часть робота, установил плату и датчики и написал первую программу. Ты подтвердил работу установленных узлов наблюдениями. Проверка знаний обязательна отдельно. В следующем уроке перейдёшь от отдельных проверок на подставке к управляемому движению.

Как подтвердить результат

Для каждого опыта сохраняй условия, версию программы, наблюдение и вывод. Сравнивая попытки, меняй одну причину за раз; неудачные попытки тоже остаются в журнале. Отметка результата относится к уже выполненным действиям, повторять их ради отметки не нужно. Если результат не получен, запиши расхождение и следующую проверяемую гипотезу. Модель, измерения настоящего робота и объяснение — разные виды доказательств.

Словарь урока

ArduinoПлата с микроконтроллером — маленьким компьютером, который выполняет твою программу.
шилдПлата, которая надевается сверху на Arduino и добавляет ей возможности. Наш шилд управляет моторами.
скетчПрограмма для Arduino.
функцияИменованный блок команд. setup и loop — функции.
светодиодМаленькая лампочка на плате. Светодиод L подключён к выводу 13.
выводКонтакт платы, которым программа может управлять или с которого может читать сигнал.
мсМиллисекунда — тысячная доля секунды. 1000 мс = 1 секунда.