Робототехник (Начальный уровень)
Курс предназначен для взрослых без технического опыта, желающих освоить основы робототехники. Вы научитесь собирать простые роботы, программировать микроконтроллеры Arduino, работать с электронными компонентами и создавать механические конструкции. Занятия включают лекции, практику и проектную работу.
Что будет изучаться:
-
Введение в робототехнику
- История и современные направления.
- Основные компоненты роботов: датчики, исполнительные устройства, контроллеры.
- Безопасность при работе с электроникой.
-
Основы электроники
- Электрические цепи, сопротивление, напряжение, ток.
- Пайка, работа с макетными платами (breadboard).
- Измерение параметров с помощью мультиметра.
-
Программирование Arduino
- Установка IDE Arduino, синтаксис языка C++.
- Управление светодиодами, кнопками, сервоприводами.
- Работа с датчиками (света, расстояния, температуры).
-
Механика роботов
- Типы механизмов: шестерни, ременные передачи, рычаги.
- Сборка базового шасси и колесных приводов.
- Принципы устойчивости и баланса конструкций.
-
Интеграция систем
- Создание автономного робота с датчиками и моторами.
- Настройка взаимодействия между электроникой, программой и механикой.
-
Промежуточные темы
- Подключение Bluetooth/Wi-Fi модулей.
- Основы автоматизации и логики поведения робота.
-
Итоговый проект
- Разработка и защита собственного проекта (например, робот-пылесос, светочувствительная тележка).
Ожидаемые результаты:
Должен знать:
- Устройство базовых электронных схем и компонентов.
- Принципы программирования микроконтроллеров.
- Типы датчиков и исполнительных механизмов.
Должен уметь:
- Собирать и тестировать электронные схемы.
- Писать простые программы для Arduino.
- Создавать механические конструкции и интегрировать их с электроникой.
- Решать базовые задачи автоматизации.
Дополнительные элементы:
- Практические проекты: Минимум 5 готовых устройств за курс.
- Поддержка инструкторов: Онлайн-консультации и разбор ошибок.
- Гибкий график: Комбинация онлайн- и офлайн-занятий.
- Сертификат: По итогам защиты проекта.
Хотите узнать, насколько вам необходим этот курс и действительно ли вы разобрались в теме?
Пройдите короткий тест — он поможет определить, стоит ли углубляться в эту тему, или вы уже готовы двигаться дальше.
1.Что такое робототехника и какие её основные направления?
Робототехника — это междисциплинарная область, объединяющая механику, электронику и программирование для создания автоматических устройств (роботов). Основные направления: промышленные роботы, мобильные платформы, дроны, гуманоиды, бытовая автоматизация.
2.Какие компоненты входят в базовый набор робота?
Робот состоит из:
- Контроллера (микрокомпьютер, например Arduino);
- Датчиков (света, расстояния, температуры);
- Исполнительных механизмов (моторов, сервоприводов);
- Энергетической системы (батареи);
- Механической конструкции (рама, колеса).
3.Почему важна безопасность при работе с электроникой?
Неправильное обращение с током, паяльником или компонентами может привести к короткому замыканию, повреждению оборудования или травмам. Следует соблюдать правила: выключение питания перед сборкой, изоляция проводов, использование защитных очков.
4.Что такое электрическая цепь и из каких элементов она состоит?
Электрическая цепь — путь для движения электрического тока. Состоит из:
- Источника энергии (батарея);
- Потребителя (светодиод, мотор);
- Проводников (провода);
- Ключа (переключатель).
5.Как измерить напряжение и силу тока мультиметром?
Для измерения напряжения щупы подключаются параллельно нагрузке, для тока — последовательно. Важно выбрать правильный режим (V для напряжения, A для тока) и предел измерений, чтобы не повредить прибор.
6.Что такое сопротивление и как его влияет на цепь?
Сопротивление — это свойство материала препятствовать току, измеряется в Омах (Ω). Высокое сопротивление снижает ток, что может вызвать перегрев компонентов или их выход из строя. Резисторы используются для контроля тока в цепи.
7.Как работает паяльник и какие инструменты нужны для пайки?
Паяльник нагревает припой, который соединяет компоненты. Необходимые инструменты: паяльник, припой, флюс, кусачки для обрезки выводов. Важно соблюдать температурный режим и чистоту жала.
8.Что такое макетная плата (breadboard) и зачем она нужна?
Макетная плата — это устройство для временной сборки электронных схем без пайки. Используется для тестирования схем перед их финальной сборкой.
9.Как установить и настроить Arduino IDE?
Скачать программу с официального сайта Arduino, установить драйверы для вашего типа платы (например Uno), выбрать в меню Tools порт и модель Arduino.
10.Что такое язык C++ в контексте Arduino?
Arduino IDE использует упрощённый синтаксис C++. Основные элементы: функции setup() и loop(), переменные, условные операторы, циклы.
11.Как управлять светодиодом с помощью Arduino?
Подключить светодиод через резистор к цифровому выводу (например D13) и GND. В коде использовать pinMode(13, OUTPUT) и digitalWrite(13, HIGH/LOW) для включения/выключения.
12.Что такое сервопривод и как его подключить к Arduino?
Сервопривод — двигатель, вращающийся на заданный угол. Подключается через 3 провода: питание (5V), земля (GND), сигнал (цифровой вывод). Используется библиотека Servo.h.
13.Как работает датчик расстояния HC-SR04?
Датчик посылает ультразвуковой импульс и измеряет время его возврата. Расстояние рассчитывается по формуле: (время * скорость звука)/2. В Arduino используется библиотека NewPing.
14.Какие типы передач используются в робототехнике?
Основные типы: зубчатые передачи (шестерни), ременные (ремни и шкивы), цепные, реечные. Каждый тип влияет на скорость и крутящий момент мотора.
15.Что такое шасси и какие бывают виды?
Шасси — основа конструкции робота. Виды: двухколёсное, четырёхколёсное, гусеничное, с поворотными колёсами. Выбор зависит от задачи (скорость, проходимость).
16.Как повысить устойчивость робота?
Распределить вес равномерно, понизить центр тяжести, использовать широкую колёсную базу. Для мобильных платформ добавляют опорные колёса или гироскопы.
17.Что такое мотор-редуктор и зачем он нужен?
Мотор-редуктор — двигатель с понижающим редуктором, увеличивающим крутящий момент за счёт скорости. Используется для движения тяжёлых конструкций.
18.Как интегрировать датчики и моторы в единую систему?
Датчики передают данные на Arduino, который обрабатывает сигналы и отправляет команды моторам через драйверы (например L298N). Пример: робот-линейный трекер с ИК-датчиками.
19.Что такое автоматизация и как её реализовать в простом роботе?
Автоматизация — выполнение действий без участия человека. Реализуется через логические условия в коде. Например, робот останавливается при обнаружении препятствия с помощью датчика расстояния.
20.Как подключить Bluetooth-модуль HC-05 к Arduino?
Подключить VCC к 5V, GND к GND, TX к RX (Arduino), RX к TX (через делитель напряжения, так как HC-05 работает на 3.3V). Используется библиотека SoftwareSerial для обмена данными.
21.Какие ошибки часто возникают при сборке схем?
Частые ошибки: неправильное подключение полярности (например светодиод), перепутанные выводы датчиков, отсутствие резисторов в цепи светодиодов, плохой контакт на макетной плате.
22.Что такое PWM и как его использовать в Arduino?
PWM (широтно-импульсная модуляция) регулирует мощность, подаваемую на устройство. В Arduino реализуется через выводы с меткой ~ (например D3, D5). Используется для изменения яркости светодиодов или скорости моторов.
23.Как собрать простой робот-тележку?
Используется шасси с двумя мотор-колёсами, Arduino, драйвер моторов, датчики (например ИК-датчики для линии), батарейный отсек. Код управляет движением вперёд/назад/поворотами.
24.Как проверить работоспособность собранной схемы?
Поэтапно: проверка подключения компонентов, измерение напряжения мультиметром, тестирование отдельных частей (например светодиоды по одному), загрузка минимального кода для проверки датчиков.
25.Что включает итоговый проект курса?
Студент разрабатывает автономного робота, выполняющего конкретную задачу (например избегание препятствий или следование по линии). Требуется интеграция электроники, механики и программирования, а также презентация решения с объяснением принципов работы.
26.Как подключить и использовать датчик гироскопа MPU-6050 с Arduino?
Датчик MPU-6050 подключается через интерфейс I2C: VCC к 3.3V, GND к GND, SCL к A5, SDA к A4. Используется библиотека Wire.h для инициализации и считывания данных об угле наклона и вращении.
27.Что такое драйвер моторов и зачем он нужен в роботе?
Драйвер моторов (например L298N) управляет питанием двигателей, позволяя регулировать направление и скорость вращения. Arduino не может напрямую управлять мощными моторами из-за ограничений по току.
28.Как реализовать управление роботом через Bluetooth с телефона?
С помощью модуля HC-05 и приложения Bluetooth Terminal. Arduino получает команды (например 'F' для вперед) через Serial и управляет моторами через драйвер.
29.Что такое I2C и SPI интерфейсы, и в чем их различие?
I2C использует два провода (SCL, SDA) и поддерживает подключение множества устройств с уникальными адресами. SPI использует больше проводов (MOSI, MISO, SCK, SS), но работает быстрее, подходит для передачи больших объемов данных.
30.Как использовать прерывания в Arduino для обработки внешних событий?
Прерывания позволяют Arduino выполнять код при внешнем сигнале (например нажатии кнопки). Реализуется через функцию attachInterrupt(), указывающую пин и обработчик события.
31.Что такое литиевые аккумуляторы и как их безопасно использовать в роботах?
Литиевые аккумуляторы (Li-ion, LiPo) обеспечивают высокую емкость, но требуют защиты от перезаряда, переразряда и перегрева. Используются модули защиты и специальные зарядные устройства.
32.Как оптимизировать потребление энергии в роботе?
Применять низковольтные компоненты, отключать неиспользуемые модули через транзисторы, использовать режимы сна в коде (sleep mode), выбирать энергоэффективные датчики.
33.Что такое PID-регулятор и как его применять в робототехнике?
PID-регулятор (Пропорционально-Интегрально-Дифференциальный) используется для точного управления, например, поддержания курса робота. Реализуется через алгоритм, корректирующий ошибку на основе текущих, накопленных и прогнозируемых данных.
34.Как создать печатную плату на основе собранной схемы?
С помощью программ (например Fritzing) проектируется схема, затем создается плата (макетная или заказная). После проверки работоспособности компоненты переносятся на плату, производится пайка.
35.Что такое библиотеки в Arduino и как их добавлять?
Библиотеки — это готовые коды для работы с компонентами. Добавляются через менеджер библиотек (Tools → Manage Libraries) или вручную через ZIP-файл.
36.Как использовать датчик цвета TCS3200 для распознавания объектов?
Датчик TCS3200 измеряет частоту света определенного цвета. Подключается к Arduino через выводы S0-S3 для выбора цветового фильтра и OUT для считывания данных.
37.Что такое шаговый двигатель и как его контролировать?
Шаговый двигатель вращается дискретно (по шагам). Управление осуществляется через драйвер (например A4988), подающий импульсы на обмотки в определенной последовательности.
38.Как реализовать автономное движение робота по линии?
Используются ИК-датчики, установленные в ряд под шасси. Arduino анализирует сигналы и корректирует движение моторов, чтобы держаться линии.
39.Что такое делитель напряжения и зачем он нужен?
Делитель напряжения (два резистора последовательно) снижает напряжение до безопасного уровня для компонентов (например, для подключения 5V датчика к 3.3V входу).
40.Как использовать датчик влажности DHT11?
Подключить VCC к 5V, GND к GND, DATA к цифровому выводу (через резистор 4.7кОм). Используется библиотека DHT.h для считывания температуры и влажности.
41.Что такое транзистор и как его использовать в схемах?
Транзистор управляет током между коллектором и эмиттером через базу. Применяется для коммутации мощных нагрузок (например ламп, моторов) с Arduino.
42.Как реализовать голосовое управление роботом?
С помощью модуля распознавания голоса (например VR3) или подключения к смартфону через Bluetooth. Arduino интерпретирует команды и управляет моторами.
43.Что такое макетирование и зачем оно нужно?
Макетирование — создание временной модели конструкции (например из картона или LEGO) для проверки функциональности перед финальной сборкой.
44.Как использовать GPS-модуль в роботе?
Подключить VCC к 5V, GND к GND, TX к RX Arduino (через делитель напряжения). Используется библиотека TinyGPS++ для получения координат и навигации.
45.Что такое обратная связь в системах управления роботом?
Обратная связь — это информация о состоянии системы (например, данные с датчика скорости), используемая для коррекции действий (например, регулировки мощности мотора).
46.Как создать простой робот-манипулятор?
Использовать 4-5 сервоприводов для сочленений, подключенных к Arduino. Код управляет углами сервомоторов для захвата и перемещения объектов.
47.Что такое watchdog-таймер и как его использовать?
Watchdog-таймер перезагружает Arduino, если программа зависает. Включается через библиотеку Watchdog.h и должен быть сброшен в коде для предотвращения перезагрузки.
48.Как использовать датчик металла (индукционный)?
Индукционный датчик (например металлодетектор) реагирует на изменение магнитного поля при приближении металлических объектов. Сигнал обрабатывается Arduino для определения наличия металла.
49.Что такое фильтрация сигналов и как её реализовать в коде?
Фильтрация уменьшает шумы датчиков. Примеры: усреднение значений (moving average), экспоненциальное сглаживание или использование медианного фильтра.
50.Как документировать проект в робототехнике?
Документация включает: схемы электрических соединений, описание механических компонентов, код программы, логи тестирования, фотографии этапов сборки и итоговой конструкции.
51.Как подключить Wi-Fi модуль ESP-01 к Arduino и использовать его для передачи данных?
ESP-01 подключается через UART: VCC к 3.3V, GND к GND, TX к RX Arduino (через делитель напряжения), RX к TX. Используется библиотека ESP8266WiFi для подключения к сети и отправки данных на сервер или в облачные платформы (например Blynk).
52.Что такое ШИМ-управление моторами и как его реализовать?
ШИМ (широтно-импульсная модуляция) регулирует скорость вращения моторов через изменение длительности импульсов. В Arduino используется функция analogWrite(pin, значение от 0 до 255) на выводах с поддержкой PWM (~).
53.Как использовать ИК-датчик для управления роботом через пульт ДУ?
Подключить ИК-приемник (например VS1838B) к Arduino: VCC к 5V, GND к GND, OUT к цифровому выводу. Используется библиотека IRremote для декодирования сигналов от пульта и управления моторами.
54.Что такое механические передачи и как выбрать подходящее передаточное число?
Передаточное число определяет соотношение скорости вращения ведущей и ведомой шестерни. Выбор зависит от задачи: высокое число увеличивает крутящий момент (для грузовых роботов), низкое — скорость (для гоночных).
55.Как определить мощность потребления робота и подобрать аккумулятор?
Суммируются токи всех компонентов (моторы, датчики, контроллер) и умножаются на напряжение. Аккумулятор выбирается с запасом по емкости (мА·ч), чтобы обеспечить работу в течение планируемого времени.
56.Что такое калибровка датчиков и зачем она нужна?
Калибровка — настройка датчиков под конкретные условия (например, уровень освещенности для ИК-датчиков). Позволяет повысить точность измерений и уменьшить ошибки в работе робота.
57.Как использовать датчик давления BMP180 для измерения высоты?
Подключить BMP180 через I2C (VCC, GND, SCL, SDA). Используется библиотека Adafruit_BMP085 для считывания давления и расчета высоты по формуле: h = 44330 * (1 - (P/P0)^(1/5.255)), где P — текущее давление, P0 — на уровне моря.
58.Что такое таймеры в Arduino и как их использовать для точного управления временем?
Таймеры — аппаратные счетчики, позволяющие выполнять задачи с высокой точностью (например, генерация ШИМ, измерение интервалов). Реализуются через регистры TCCRn и прерывания (TIMER1_COMPA_vect).
59.Как создать автономного робота, избегающего препятствий?
Использовать датчик расстояния (HC-SR04) для обнаружения препятствий. Arduino анализирует данные и при приближении к объекту останавливает моторы, делает поворот и продолжает движение.
60.Что такое механические ограничители и как их использовать в конструкции?
Механические ограничители (например упоры) предотвращают чрезмерное движение частей робота (например, сервоприводов). Устанавливаются физически или программируются через ограничение угла вращения.
61.Как использовать датчик цвета для сортировки объектов?
Калибровать датчик на известные цвета, затем считывать значения RGB с неизвестного объекта. Arduino сравнивает их с эталонами и определяет цвет, управляя исполнительными механизмами (например, направляя объект в нужный отсек).
62.Что такое датчик наклона и как его интегрировать в робота?
Датчик наклона (например SW-520D) определяет положение робота в пространстве. Подключается к цифровому выводу Arduino, который реагирует на изменение угла и корректирует движение (например, стабилизация на склоне).
63.Как реализовать беспроводную зарядку для робота?
Использовать модули беспроводной передачи энергии (например передатчик и приемник на 5V). При подъезде робота к зарядной станции катушки индуктивности передают энергию, заряжая аккумулятор через модуль зарядки.
64.Что такое обратная связь от моторов и как её использовать?
Обратная связь (например энкодеры) измеряет фактическую скорость или угол поворота мотора. Arduino сравнивает данные с заданными значениями и корректирует мощность для достижения точности.
65.Как использовать датчик уровня воды для автоматического контроля?
Подключить датчик (например YL-69) к аналоговому входу Arduino. При контакте с водой изменяется сопротивление, что фиксируется и используется для управления насосом или сигнализации.
66.Что такое механические соединения и какие типы используются в роботах?
Типы: болтовые, сварные, клеевые, шарнирные. Выбор зависит от необходимости разборки, нагрузки и точности. Например, шарниры применяются в манипуляторах для вращения суставов.
67.Как реализовать синхронизацию нескольких роботов через Bluetooth?
Использовать модули HC-05 на каждом роботе, настроив один как мастер, остальные как слейвы. Arduino обменивается командами (например старт/стоп), синхронизируя действия.
68.Что такое термодатчик и как его использовать для защиты оборудования?
Термодатчик (например DS18B20) измеряет температуру моторов или батарей. При превышении порога Arduino отключает питание или активирует охлаждение (вентилятор).
69.Как создать робота с голосовым синтезом?
Подключить модуль синтеза речи (например WTV020-SD-16P) к Arduino. Загрузить аудиофайлы на SD-карту и воспроизводить их по команде (например при обнаружении движения).
70.Что такое оптимизация кода и как её достичь в робототехнике?
Оптимизация уменьшает время выполнения и потребление памяти. Способы: использование прерываний вместо delay(), замена float на int, минимизация вызовов функций в цикле loop().
71.Как использовать датчик движения HC-SR501 для автоматизации?
Подключить VCC к 5V, GND к GND, OUT к цифровому выводу Arduino. При обнаружении движения датчик подает сигнал HIGH, который используется для запуска робота или включения света.
72.Что такое гибкая электроника и как её применять в роботах?
Гибкая электроника (например гибкие датчики давления) позволяет создавать адаптивные конструкции. Используется в роботах с изменяемой формой или для измерения деформации в механических частях.
73.Как реализовать автономную зарядку робота на станции?
Установить датчики батареи и ИК-навигацию. При низком заряде робот ищет ИК-маяк зарядной станции, подъезжает к ней и подключается к контактам через металлические пластины.
74.Что такое механическая передача движения через ремень и как её настроить?
Ременная передача связывает два шкива для передачи вращения. Настройка включает подбор диаметров шкивов для нужного передаточного числа и натяжку ремня для предотвращения проскальзывания.
75.Как использовать датчик газа MQ-135 для контроля воздуха?
Подключить VCC к 5V, GND к GND, AO к аналоговому выводу Arduino. При повышении концентрации газа (CO2, пары) сопротивление датчика падает. Arduino сравнивает значение с порогом и активирует вентиляцию.
1.Какие компоненты необходимы для простой электрической цепи?
A) Источник, проводник, потребитель, ключ
B) Только батарея и лампочка
C) Резистор и конденсатор
D) Микроконтроллер и датчик
Правильный ответ: A
2.Что делает функция setup() в Arduino?
A) Выполняется один раз при запуске программы
B) Постоянно повторяется
C) Управляет датчиками
D) Считывает данные с моторов
Правильный ответ: A
3.Какой датчик измеряет расстояние с помощью ультразвука?
A) HC-SR04
B) DHT11
C) MPU-6050
D) LDR
Правильный ответ: A
4.Для чего используется резистор в цепи со светодиодом?
A) Ограничивает ток
B) Увеличивает напряжение
C) Защищает Arduino от перегрева
D) Управляет яркостью через PWM
Правильный ответ: A
5.Какой тип передачи используется в шестерёнчатых механизмах?
A) Зубчатая
B) Ременная
C) Цепная
D) Все перечисленные
Правильный ответ: D
6.Что означает аббревиатура PWM в контексте Arduino?
A) Широтно-импульсная модуляция
B) Постоянный ток
C) Аналоговый сигнал
D) Цифровой интерфейс
Правильный ответ: A
7.Какой пин Arduino используется для аналоговых измерений?
A) A0
B) D13
C) VCC
D) GND
Правильный ответ: A
8.Что такое макетная плата (breadboard)?
A) Устройство для временной сборки схем без пайки
B) Инструмент для измерения напряжения
C) Микроконтроллер
D) Механический привод
Правильный ответ: A
9.Какой драйвер чаще всего используется для управления моторами?
A) L298N
B) HC-05
C) ESP-01
D) DS18B20
Правильный ответ: A
10.Что происходит при коротком замыкании?
A) Сильный ток повреждает компоненты
B) Моторы останавливаются
C) Датчики перестают работать
D) Arduino перезагружается
Правильный ответ: A
11.Какой язык программирования используется в Arduino IDE?
A) C++
B) Python
C) Java
D) JavaScript
Правильный ответ: A
12.Для чего нужен делитель напряжения?
A) Снижает напряжение для чувствительных компонентов
B) Увеличивает ток
C) Защищает от статического электричества
D) Преобразует переменный ток в постоянный
Правильный ответ: A
13.Какой датчик измеряет температуру и влажность?
A) DHT11
B) HC-SR04
C) LDR
D) MQ-135
Правильный ответ: A
14.Что такое сервопривод?
A) Двигатель, вращающийся на заданный угол
B) Датчик движения
C) Источник питания
D) Микроконтроллер
Правильный ответ: A
15.Какой интерфейс используется для подключения модуля Bluetooth HC-05?
A) UART
B) I2C
C) SPI
D) CAN
Правильный ответ: A
16.Что такое обратная связь в робототехнике?
A) Данные от датчиков для коррекции действий
B) Программный сброс Arduino
C) Энергопотребление компонентов
D) Механическая стабилизация
Правильный ответ: A
17.Какой модуль используется для Wi-Fi подключения?
A) ESP-01
B) L298N
C) MPU-6050
D) HC-SR04
Правильный ответ: A
18.Что означает "GND" в электронике?
A) Общий минусовой провод
B) Положительное напряжение
C) Цифровой вход
D) Аналоговый выход
Правильный ответ: A
19.Какой компонент преобразует электрическую энергию в механическое движение?
A) Мотор
B) Резистор
C) Конденсатор
D) Диод
Правильный ответ: A
20.Что такое прерывание в Arduino?
A) Остановка программы при внешнем событии
B) Цикл в коде
C) Ошибка в подключении
D) Сброс микроконтроллера
Правильный ответ: A
21.Какой датчик используется для определения освещённости?
A) LDR
B) DHT11
C) MQ-135
D) BMP180
Правильный ответ: A
22.Что такое литиевый аккумулятор?
A) Перезаряжаемый источник энергии
B) Датчик температуры
C) Микроконтроллер
D) Механическая передача
Правильный ответ: A
23.Какой функцией в Arduino включается светодиод на пине 13?
A) digitalWrite(13, HIGH)
B) analogWrite(13, 255)
C) pinMode(13, INPUT)
D) delay(1000)
Правильный ответ: A
24.Что такое режим sleep в Arduino?
A) Энергосберегающий режим
B) Режим отладки
C) Цикл ожидания
D) Сброс памяти
Правильный ответ: A
25.Какой тип шасси обеспечивает лучшую проходимость?
A) Гусеничное
B) Двухколёсное
C) С поворотными колёсами
D) Летающее
Правильный ответ: A
26.Какой инструмент используется для временной сборки схем без пайки?
A) Макетная плата
B) Паяльник
C) Мультиметр
D) Отвертка
Правильный ответ: A
27.Какой вывод Arduino используется для аналогового считывания данных?
A) A0
B) D13
C) VCC
D) GND
Правильный ответ: A
28.Что такое короткое замыкание?
A) Непреднамеренное соединение проводников, вызывающее резкий рост тока
B) Обрыв цепи
C) Нормальная работа схемы
D) Подключение датчика к источнику питания
Правильный ответ: A
29.Какой тип датчика измеряет угол наклона робота?
A) Гироскоп MPU-6050
B) Датчик расстояния HC-SR04
C) Термодатчик DS18B20
D) ИК-датчик
Правильный ответ: A
30.Для чего используется библиотека Servo.h в Arduino?
A) Для управления сервоприводами
B) Для подключения Wi-Fi модулей
C) Для работы с дисплеями
D) Для измерения напряжения
Правильный ответ: A
31.Какой интерфейс требует больше проводов: I2C или SPI?
A) SPI
B) I2C
C) Оба используют одинаковое количество
D) Зависит от устройства
Правильный ответ: A
32.Что такое центр тяжести робота?
A) Точка, вокруг которой распределена масса конструкции
B) Место установки батареи
C) Точка крепления датчиков
D) Место подключения моторов
Правильный ответ: A
33.Какой тип шасси обеспечивает минимальное трение при движении?
A) Двухколёсное
B) Гусеничное
C) Четырёхколёсное
D) Летающее
Правильный ответ: A
34.Что такое энкодер в системе управления мотором?
A) Датчик, измеряющий количество оборотов
B) Устройство для преобразования энергии
C) Механический ограничитель
D) Компонент для передачи данных
Правильный ответ: A
35.Какой компонент используется для стабилизации напряжения в схеме?
A) Регулятор напряжения
B) Конденсатор
C) Резистор
D) Диод
Правильный ответ: A
36.Что происходит при подключении светодиода без резистора?
A) Светодиод может перегореть
B) Увеличивается яркость
C) Снижается энергопотребление
D) Ничего не изменится
Правильный ответ: A
37.Какой режим Arduino используется для повторяющихся действий?
A) loop()
B) setup()
C) delay()
D) pinMode()
Правильный ответ: A
38.Что такое литиевый полимерный аккумулятор (LiPo)?
A) Легкий источник энергии с высокой ёмкостью
B) Тип датчика
C) Микроконтроллер
D) Механическая передача
Правильный ответ: A
39.Какой датчик используется для определения уровня освещённости?
A) Фоторезистор (LDR)
B) Датчик давления BMP180
C) Гироскоп MPU-6050
D) Термодатчик DS18B20
Правильный ответ: A
40.Что такое делитель напряжения?
A) Схема из двух резисторов, снижающая напряжение
B) Устройство для измерения тока
C) Компонент для преобразования аналоговых сигналов
D) Источник питания
Правильный ответ: A
41.Какой тип двигателя используется для точного позиционирования?
A) Сервопривод
B) Шаговый двигатель
C) Коллекторный мотор
D) Все перечисленные
Правильный ответ: D
42.Что такое обратная связь в системе управления роботом?
A) Информация от датчиков для коррекции действий
B) Программный сброс Arduino
C) Энергопотребление компонентов
D) Механическая стабилизация
Правильный ответ: A
43.Какой модуль используется для подключения к Wi-Fi сети?
A) ESP-01
B) HC-05
C) L298N
D) MPU-6050
Правильный ответ: A
44.Что означает "VCC" в электронике?
A) Положительный вывод питания
B) Общий минусовой провод
C) Цифровой вход
D) Аналоговый выход
Правильный ответ: A
45.Какой функцией в Arduino управляют яркостью светодиода?
A) analogWrite()
B) digitalWrite()
C) pinMode()
D) delay()
Правильный ответ: A
46.Что такое режим сна (sleep mode) в Arduino?
A) Энергосберегающий режим
B) Режим отладки
C) Цикл ожидания
D) Сброс памяти
Правильный ответ: A
47.Какой тип шасси обеспечивает максимальную манёвренность?
A) Двухколёсное с поворотными колёсами
B) Гусеничное
C) Четырёхколёсное
D) Летающее
Правильный ответ: A
48.Что такое пайка?
A) Процесс соединения компонентов с помощью припоя
B) Измерение напряжения
C) Программирование микроконтроллера
D) Механическая сборка конструкции
Правильный ответ: A
49.Какой датчик используется для измерения температуры воды?
A) DS18B20
B) DHT11
C) MQ-135
D) BMP180
Правильный ответ: A
50.Что такое документация проекта в робототехнике?
A) Схемы, описание конструкции и код программы
B) Список компонентов
C) Фотографии этапов сборки
D) Все перечисленные
Правильный ответ: D
51.Как подключить Wi-Fi модуль ESP-01 к Arduino и использовать его для передачи данных?
A) VCC к 3.3V, GND к GND, TX к RX Arduino через делитель напряжения, RX к TX
B) VCC к 5V, GND к GND, TX к A0, RX к A1
C) VCC к GND, GND к 5V, TX к D13
D) VCC к 3.3V, GND к VCC, TX к RX, RX к TX
Правильный ответ: A
52.Что такое ШИМ-управление моторами и как его реализовать?
A) Регулировка скорости через изменение длительности импульсов с помощью analogWrite()
B) Постоянное питание мотора через драйвер
C) Управление через аналоговый сигнал от датчика
D) Подключение мотора к цифровому пину без драйвера
Правильный ответ: A
53.Как использовать ИК-датчик для управления роботом через пульт ДУ?
A) Подключить ИК-приемник к цифровому пину, использовать библиотеку IRremote
B) Подключить к аналоговому пину, использовать функцию analogRead()
C) Использовать Wi-Fi модуль для приема сигналов
D) Подключить через драйвер моторов
Правильный ответ: A
54.Что такое механические передачи и как выбрать подходящее передаточное число?
A) Высокое число увеличивает крутящий момент, низкое — скорость
B) Передаточное число не влияет на параметры
C) Высокое число увеличивает скорость, низкое — крутящий момент
D) Передаточное число определяет только вес конструкции
Правильный ответ: A
55.Как определить мощность потребления робота и подобрать аккумулятор?
A) Суммировать токи компонентов и умножить на напряжение, выбрать аккумулятор с запасом емкости
B) Измерить напряжение на моторах
C) Учитывать только мощность Arduino
D) Подобрать аккумулятор по весу
Правильный ответ: A
56.Что такое калибровка датчиков и зачем она нужна?
A) Настройка под конкретные условия для повышения точности
B) Сброс датчика к заводским настройкам
C) Уменьшение энергопотребления
D) Установка максимального диапазона измерений
Правильный ответ: A
57.Как использовать датчик давления BMP180 для измерения высоты?
A) Считать давление через I2C, рассчитать высоту по формуле h = 44330*(1-(P/P0)^0.1903)
B) Подключить к аналоговому пину, использовать analogRead()
C) Использовать для измерения температуры
D) Подключить через UART и отправить команду запроса
Правильный ответ: A
58.Что такое таймеры в Arduino и как их использовать для точного управления временем?
A) Аппаратные счетчики, настраиваемые через регистры TCCRn и прерывания
B) Функции delay() и millis()
C) Встроенные библиотеки для измерения времени
D) Внешние модули с кварцевым генератором
Правильный ответ: A
59.Как создать автономного робота, избегающего препятствий?
A) Использовать HC-SR04 для обнаружения объектов, корректировать движение моторов
B) Подключить ИК-датчик к аналоговому пину
C) Использовать GPS-модуль для навигации
D) Применить Wi-Fi для передачи данных
Правильный ответ: A
60.Что такое механические ограничители и как их использовать в конструкции?
A) Физические упоры или программные ограничения угла вращения сервоприводов
B) Датчики, отключающие питание при перегрузке
C) Электронные платы с предохранителями
D) Резисторы для ограничения тока
Правильный ответ: A
61.Как использовать датчик цвета TCS3200 для сортировки объектов?
A) Калибровать на эталоны, считывать RGB и сравнивать с заданными значениями
B) Подключить к цифровому пину через делитель напряжения
C) Использовать для измерения освещенности
D) Применить для управления моторами
Правильный ответ: A
62.Что такое датчик наклона и как его интегрировать в робота?
A) SW-520D, подключенный к цифровому пину, реагирует на изменение угла
B) Датчик давления, измеряющий вес
C) ИК-датчик, определяющий препятствия
D) Гироскоп MPU-6050 через I2C
Правильный ответ: A
63.Как реализовать беспроводную зарядку для робота?
A) Использовать катушки индуктивности для передачи энергии между станцией и роботом
B) Подключить солнечную панель
C) Применить LiPo-аккумуляторы с быстрой зарядкой
D) Использовать USB-порт для зарядки
Правильный ответ: A
64.Что такое обратная связь от моторов и как её использовать?
A) Энкодеры измеряют обороты, Arduino корректирует мощность для точности
B) Датчики температуры моторов
C) Напряжение на выводах мотора
D) Ток, потребляемый мотором
Правильный ответ: A
65.Как использовать датчик уровня воды для автоматического контроля?
A) Подключить YL-69 к аналоговому пину, измерять сопротивление при контакте с водой
B) Использовать ИК-датчик для обнаружения отражения
C) Применить ультразвуковой датчик для измерения расстояния до поверхности
D) Подключить к цифровому пину через транзистор
Правильный ответ: A
66.Что такое механические соединения и какие типы используются в роботах?
A) Болтовые, сварные, клеевые, шарнирные
B) Только болтовые
C) Магнитные и электрические
D) Гидравлические и пневматические
Правильный ответ: A
67.Как реализовать синхронизацию нескольких роботов через Bluetooth?
A) Настроить один модуль HC-05 как мастер, остальные как слейвы для обмена командами
B) Подключить все роботов к одному пину Arduino
C) Использовать Wi-Fi модуль ESP-01
D) Применить ИК-связь
Правильный ответ: A
68.Что такое термодатчик и как его использовать для защиты оборудования?
A) DS18B20 измеряет температуру, Arduino отключает питание при превышении порога
B) Датчик давления, измеряющий нагрузку
C) ИК-датчик для контроля нагрева
D) Резистор с отрицательным ТКС
Правильный ответ: A
69.Как создать робота с голосовым синтезом?
A) Подключить WTV020-SD-16P к Arduino, воспроизводить аудиофайлы с SD-карты
B) Использовать Bluetooth-модуль для передачи звука
C) Применить микрофон и усилитель
D) Подключить динамик к PWM-пину
Правильный ответ: A
70.Что такое оптимизация кода и как её достичь в робототехнике?
A) Использовать прерывания вместо delay(), заменить float на int, минимизировать вызовы в loop()
B) Увеличить количество комментариев в коде
C) Применять только встроенные функции Arduino
D) Упрощать конструкцию робота
Правильный ответ: A
71.Как использовать датчик движения HC-SR501 для автоматизации?
A) Подключить OUT к цифровому пину, Arduino реагирует на сигнал HIGH при обнаружении движения
B) Использовать для измерения расстояния
C) Подключить к аналоговому пину для измерения уровня сигнала
D) Применить для управления моторами напрямую
Правильный ответ: A
72.Что такое гибкая электроника и как её применять в роботах?
A) Гибкие датчики давления для адаптивных конструкций
B) Провода с изоляцией высокой прочности
C) Микроконтроллеры в гибких корпусах
D) Аккумуляторы с изменяемой формой
Правильный ответ: A
73.Как реализовать автономную зарядку робота на станции?
A) Использовать ИК-маяк и металлические контакты для подъезда и подключения
B) Подключить солнечную панель на крыше
C) Применить LiPo-аккумуляторы с беспроводной зарядкой
D) Установить USB-порт на роботе
Правильный ответ: A
74.Что такое механическая передача движения через ремень и как её настроить?
A) Подбор диаметров шкивов для передаточного числа и натяжки ремня
B) Использование цепи вместо ремня
C) Установка дополнительных моторов
D) Применение шестерен вместо шкивов
Правильный ответ: A
75.Как использовать датчик газа MQ-135 для контроля воздуха?
A) Подключить AO к аналоговому пину, сравнивать значение с порогом для активации вентиляции
B) Использовать для измерения температуры
C) Подключить к цифровому пину через транзистор
D) Применить для управления моторами напрямую
Правильный ответ: A
Экзаменационный билет 1
Теоретическая часть:
- Объясните принцип последовательного соединения резисторов и как рассчитывается общее сопротивление.
Ответ: При последовательном соединении резисторы соединяются «встык», общий ток через них одинаковый. Общее сопротивление равно сумме сопротивлений: R_total = R1 + R2 + ... + Rn.
- Как работает ультразвуковой датчик HC-SR04 для измерения расстояния?
Ответ: Датчик отправляет ультразвуковой импульс, который отражается от объекта и возвращается. Время между отправкой и приемом сигнала преобразуется в расстояние по формуле: расстояние = (время × скорость звука) / 2.
Практическая часть:
Напишите код для Arduino, который измеряет расстояние с помощью HC-SR04 и выводит результат в монитор порта.
#define trigPin 9
#define echoPin 10
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("Расстояние: ");
Serial.print(distance);
Serial.println(" см");
delay(1000);
}
Экзаменационный билет 2
Теоретическая часть:
- Как подключить сервопривод к Arduino и для чего используется библиотека Servo.h?
Ответ: Сервопривод подключается к цифровому пину Arduino (например, D9). Библиотека Servo.h позволяет задавать угол поворота (от 0 до 180°) через функцию write(angle).
- Что такое драйвер моторов и почему он необходим при подключении мощных двигателей?
Ответ: Драйвер моторов (например, L298N) регулирует питание двигателей, так как Arduino не может выдавать достаточный ток для мощных моторов.
Практическая часть:
Напишите код для управления сервоприводом с помощью потенциометра, подключенного к аналоговому входу A0.
#include <Servo.h>
Servo myServo;
int potPin = A0;
void setup() {
myServo.attach(9);
}
void loop() {
int potValue = analogRead(potPin); // 0-1023
int angle = map(potValue, 0, 1023, 0, 180);
myServo.write(angle);
delay(15);
}
Экзаменационный билет 3
Теоретическая часть:
- Что такое электромагнитная совместимость (EMC) и почему она важна в робототехнике?
Ответ: EMC — способность устройства работать без помех в электромагнитной среде. В роботах важно экранировать кабели и использовать фильтры для предотвращения сбоев из-за помех.
- Как ИК-датчик (например, VS1838B) декодирует сигналы с пульта ДУ?
Ответ: Датчик принимает модулированный ИК-сигнал, который Arduino обрабатывает с помощью библиотеки IRremote, определяя коды нажатых кнопок.
Практическая часть:
Напишите код для управления мотором через драйвер L298N (вращение вперед/назад по нажатию кнопки).
int in1 = 2;
int in2 = 3;
int buttonPin = 4;
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
digitalWrite(in1, HIGH); // Вращение вперед
digitalWrite(in2, LOW);
} else {
digitalWrite(in1, LOW); // Остановка
digitalWrite(in2, HIGH);
}
}
Экзаменационный билет 4
Теоретическая часть:
- Какие типы аккумуляторов используются в роботах и как выбрать подходящий?
Ответ: NiMH (низкая стоимость, средняя емкость), LiPo (легкие, высокая мощность), Li-ion (долгий срок службы). Выбор зависит от напряжения, тока и массы.
- Как подключить датчик температуры DS18B20 к Arduino через интерфейс One-Wire?
Ответ: VCC к 3.3V, GND к GND, DATA к цифровому пину (например, D2) с подтягивающим резистором 4.7 кОм к VCC.
Практическая часть:
Напишите код для считывания температуры с DS18B20 и вывода в монитор порта.
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.print("Температура: ");
Serial.print(temp);
Serial.println(" °C");
delay(1000);
}
Экзаменационный билет 5
Теоретическая часть:
- Что такое прерывания в Arduino и как они используются?
Ответ: Прерывания позволяют микроконтроллеру временно остановить выполнение текущей задачи для обработки события (например, нажатия кнопки). Реализуются через функции attachInterrupt() и ISR.
- Как подключить Wi-Fi модуль ESP-01 к Arduino и отправить данные на облачную платформу (например, Blynk)?
Ответ: ESP-01 подключается через UART (TX к RX Arduino через делитель напряжения, RX к TX). Используется библиотека ESP8266WiFi для подключения к Wi-Fi и отправки данных.
Практическая часть:
Напишите код для подключения к Wi-Fi сети и отправки значения датчика на сервер Blynk.
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "ВАШ_ТОКЕН";
char ssid[] = "ВАШ_СЕТЕВОЙ_ИДЕНТИФИКАТОР";
char pass[] = "ВАШ_ПАРОЛЬ";
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
int sensorValue = analogRead(A0);
Blynk.virtualWrite(V1, sensorValue);
delay(2000);
}
Экзаменационный билет 6
Теоретическая часть:
- Объясните принцип параллельного соединения резисторов и как рассчитывается общее сопротивление.
Ответ: При параллельном соединении резисторы подключаются между двумя общими точками. Общее сопротивление рассчитывается по формуле: 1/R_total = 1/R1 + 1/R2 + ... + 1/Rn. Общий ток распределяется между резисторами пропорционально их сопротивлениям.
- Как работает фоторезистор (LDR) и как его использовать для измерения уровня освещённости?
Ответ: Фоторезистор изменяет сопротивление в зависимости от интенсивности света: сопротивление падает при увеличении освещённости. Для измерения используется делитель напряжения, где LDR подключен последовательно с фиксированным резистором, а напряжение на их соединении считывается аналоговым входом.
Практическая часть:
Напишите код для Arduino, который регулирует яркость светодиода через PWM в зависимости от уровня освещённости, измеряемого LDR.
int ldrPin = A0;
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int ldrValue = analogRead(ldrPin); // 0 (темно) - 1023 (ярко)
int brightness = map(ldrValue, 0, 1023, 255, 0); // Яркость обратная освещённости
analogWrite(ledPin, brightness);
delay(100);
}
Экзаменационный билет 7
Теоретическая часть:
- Что такое макетная плата (breadboard) и как она используется в сборке схем?
Ответ: Макетная плата — устройство для временной сборки электронных схем без пайки. Имеет ряды соединенных контактов, позволяющих подключать компоненты через провода. Обычно используется для тестирования схем перед созданием печатных плат.
- Почему подключение мотора напрямую к Arduino может быть опасным, и как это решить?
Ответ: Arduino не может обеспечить достаточный ток для большинства моторов, что может привести к перегреву или повреждению микроконтроллера. Решение — использовать драйвер моторов (например, L298N) или транзистор для разделения цепей питания.
Практическая часть:
Напишите код для управления мотором через кнопку: при нажатии мотор вращается 2 секунды, затем останавливается.
int motorPin = 3;
int buttonPin = 2;
void setup() {
pinMode(motorPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
digitalWrite(motorPin, HIGH); // Включить мотор
delay(2000);
digitalWrite(motorPin, LOW); // Выключить мотор
}
}
Экзаменационный билет 8
Теоретическая часть:
- Что такое аналоговый сигнал и как Arduino его обрабатывает?
Ответ: Аналоговый сигнал — непрерывный диапазон напряжений (например, 0-5 В). Arduino использует АЦП (аналогово-цифровой преобразователь) для преобразования сигнала в значение от 0 до 1023, где 0 соответствует 0 В, а 1023 — 5 В.
- Как работает делитель напряжения и для чего он используется?
Ответ: Делитель напряжения — схема из двух резисторов, снижающая входное напряжение до безопасного уровня для чувствительных компонентов. Формула: V_out = V_in * R2 / (R1 + R2).
Практическая часть:
Напишите код для считывания значения с потенциометра и вывода его в монитор порта.
int potPin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int potValue = analogRead(potPin); // 0-1023
Serial.println(potValue);
delay(500);
}
Экзаменационный билет 9
Теоретическая часть:
- Что такое прерывания в Arduino и как они используются для обработки событий?
Ответ: Прерывания позволяют микроконтроллеру мгновенно реагировать на внешние события (например, нажатие кнопки) без постоянного опроса состояния. Реализуются через функции attachInterrupt()
и обработчик прерываний (ISR).
- Как работает датчик движения PIR (например, HC-SR501) и для чего он применяется?
Ответ: PIR-датчик обнаруживает инфракрасное излучение от движущихся объектов. При обнаружении движения на выходе появляется сигнал HIGH. Используется для автоматизации освещения, охраны и других задач.
Практическая часть:
Напишите код для включения светодиода при обнаружении движения с помощью PIR-датчика.
int pirPin = 2;
int ledPin = 13;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (digitalRead(pirPin) == HIGH) {
digitalWrite(ledPin, HIGH); // Включить светодиод
delay(5000); // Держать включенным 5 секунд
digitalWrite(ledPin, LOW); // Выключить
}
}
Экзаменационный билет 10
Теоретическая часть:
- Как выбрать аккумулятор для робота и какие параметры учитывать?
Ответ: Основные параметры: напряжение (соответствие компонентам), ёмкость (время работы), максимальный ток (для питания моторов). Также учитываются масса и размер аккумулятора.
- Как подключить и использовать LCD-дисплей с I2C-модулем на Arduino?
Ответ: Подключить VCC к 5V, GND к GND, SDA к A4, SCL к A5. Использовать библиотеку LiquidCrystal_I2C для инициализации и вывода текста.
Практическая часть:
Напишите код для вывода данных с датчика температуры DHT11 на LCD-дисплей через I2C.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN A0
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
dht.begin();
lcd.begin();
lcd.backlight();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(h);
lcd.print(" %");
delay(2000);
}
Экзаменационный билет 11
Теоретическая часть:
- Объясните принцип работы датчика давления BMP180 и как его использовать для измерения высоты.
Ответ: BMP180 измеряет атмосферное давление через I2C-интерфейс. Для вычисления высоты используется формула:h = 44330 * (1 - (P / P0)^0.1903)
,
где P
— текущее давление, P0
— давление на уровне моря.
- Как подключить и использовать ИК-приемник VS1838B для управления роботом через пульт ДУ?
Ответ: Подключить VCC к 3.3V, GND к GND, OUT к цифровому пину (например, D11). Использовать библиотеку IRremote для декодирования сигналов и реагирования на команды.
Практическая часть:
Напишите код для считывания команд с пульта ДУ и управления сервоприводом (0°, 90°, 180° в зависимости от нажатой кнопки).
#include <IRremote.h>
#include <Servo.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
Servo myServo;
void setup() {
irrecv.enableIRIn();
myServo.attach(9);
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case 0xFFA25D: myServo.write(0); break; // Кнопка 1
case 0xFFE21D: myServo.write(90); break; // Кнопка 2
case 0xFF629D: myServo.write(180); break; // Кнопка 3
}
delay(500);
irrecv.resume();
}
}
Экзаменационный билет 12
Теоретическая часть:
- Что такое передаточное число в механических передачах и как оно влияет на скорость и крутящий момент?
Ответ: Передаточное число — отношение скоростей вращения ведущего и ведомого валов. При увеличении числа (например, 1:5) крутящий момент возрастает, а скорость снижается.
- Как использовать датчик уровня воды YL-69 для автоматического контроля наполнения резервуара?
Ответ: Датчик измеряет сопротивление между контактами, которое снижается при контакте с водой. Аналоговое значение преобразуется в пороговое (например, включение насоса при уровне ниже 500).
Практическая часть:
Напишите код для включения насоса (через реле) при уровне воды ниже порогового значения.
int waterSensor = A0;
int pumpRelay = 3;
int threshold = 500;
void setup() {
pinMode(pumpRelay, OUTPUT);
}
void loop() {
int level = analogRead(waterSensor);
if (level < threshold) {
digitalWrite(pumpRelay, HIGH); // Включить насос
} else {
digitalWrite(pumpRelay, LOW); // Выключить
}
delay(100);
}
Экзаменационный билет 13
Теоретическая часть:
- Как работает датчик цвета TCS3200 и как его использовать для сортировки объектов?
Ответ: Датчик измеряет интенсивность света на разных цветовых фильтрах (красный, зеленый, синий). Калибровка на эталоны позволяет определять цвет объекта по соотношению сигналов.
- Что такое литиевый полимерный аккумулятор (LiPo) и какие меры предосторожности при его использовании?
Ответ: LiPo — легкий источник с высокой плотностью энергии. Требуется защита от перезаряда, глубокого разряда и перегрева. Использовать специализированные зарядные устройства и балансировку.
Практическая часть:
Напишите код для измерения напряжения LiPo-аккумулятора через делитель напряжения (R1=10 кОм, R2=2 кОм) и вывода значения на монитор порта.
int batteryPin = A0;
float R1 = 10000;
float R2 = 2000;
void setup() {
Serial.begin(9600);
}
void loop() {
int adcValue = analogRead(batteryPin);
float voltage = (adcValue / 1023.0) * 5.0 * (R1 + R2) / R2;
Serial.print("Напряжение: ");
Serial.print(voltage);
Serial.println(" В");
delay(1000);
}
Экзаменационный билет 14
Теоретическая часть:
- Как использовать датчик наклона SW-520D для обнаружения переворота робота?
Ответ: Датчик замыкает контакт при наклоне более 30°. Подключается к цифровому пину с подтягивающим резистором. Arduino реагирует на сигнал HIGH.
- Что такое ШИМ (PWM) и как его использовать для регулировки скорости мотора?
Ответ: ШИМ — модуляция ширины импульсов, где длительность сигнала HIGH определяет среднюю мощность. На Arduino реализуется через функцию analogWrite(pin, 0-255), где 0 — 0%, 255 — 100% мощности.
Практическая часть:
Напишите код для плавного увеличения скорости мотора (через L298N) до максимальной и обратно.
int enA = 5;
int in1 = 6;
int in2 = 7;
void setup() {
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
}
void loop() {
digitalWrite(in1, HIGH); // Вращение вперед
digitalWrite(in2, LOW);
for (int speed = 0; speed <= 255; speed++) {
analogWrite(enA, speed);
delay(20);
}
for (int speed = 255; speed >= 0; speed--) {
analogWrite(enA, speed);
delay(20);
}
}
Экзаменационный билет 15
Теоретическая часть:
- Как подключить и использовать GPS-модуль (например, NEO-6M) для определения координат?
Ответ: GPS-модуль подключается через UART (TX к RX Arduino через делитель напряжения, RX к TX). Используется библиотека TinyGPS++ для парсинга данных и получения широты/долготы.
- Что такое механические упоры и как их использовать в конструкции робота?
Ответ: Механические упоры — физические ограничители движения (например, стопоры для сервоприводов). Предотвращают повреждение механизмов при достижении крайних положений.
Практическая часть:
Напишите код для создания простого веб-сервера на ESP-01, который включает светодиод по команде из браузера.
#include <ESP8266WiFi.h>
const char* ssid = "ВАШ_СЕТЕВОЙ_ИДЕНТИФИКАТОР";
const char* password = "ВАШ_ПАРОЛЬ";
WiFiServer server(80);
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
String req = client.readStringUntil('\r');
client.flush();
if (req.indexOf("/on") != -1) digitalWrite(LED_BUILTIN, LOW); // Включить
if (req.indexOf("/off") != -1) digitalWrite(LED_BUILTIN, HIGH); // Выключить
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<h1>ESP-01 Web Server</h1>");
client.println("<a href=\"/on\">ON</a> | <a href=\"/off\">OFF</a>");
}
}
Кейс 1
Создание автономного робота-пылесоса с датчиком расстояния
Описание проекта
Студент собрал простого робота-пылесоса на базе Arduino Uno, двух моторов с драйвером L298N, ультразвукового датчика HC-SR04 и колес. Задача: робот должен двигаться вперед, избегая препятствий, и включать щетку (через реле) при обнаружении объекта вблизи.
Схема подключения:
- HC-SR04: VCC → 5V, GND → GND, Trig → D2, Echo → D3.
- Драйвер L298N: IN1 → D4, IN2 → D5, ENA → D6.
- Реле (щетка): VCC → 5V, GND → GND, IN → D7.
Код (исходный):
#define trigPin 2
#define echoPin 3
#define in1 4
#define in2 5
#define enA 6
#define relayPin 7
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enA, OUTPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
if (distance < 10) { // Если препятствие ближе 10 см
digitalWrite(in1, LOW);
digitalWrite(in2, LOW); // Остановка
digitalWrite(relayPin, HIGH); // Включение щетки
delay(2000); // Работа щетки 2 секунды
} else {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW); // Движение вперед
digitalWrite(relayPin, LOW); // Выключение щетки
}
}
Скрытые проблемы и их решение
Проблема 1: Робот не реагирует на препятствия
Симптомы: Датчик HC-SR04 не возвращает корректные значения, робот продолжает двигаться вперед.
Причины:
- Неправильное подключение Echo-пина (например, подключен к аналоговому входу A0 вместо D3).
- Помехи от окружающей среды (например, отражающая поверхность препятствия поглощает ультразвук).
- Некорректный расчет расстояния (ошибка в формуле).
Решение:
- Проверить подключение датчика: Echo → D3.
- Добавить фильтрацию значений (среднее из 5 измерений):
float getDistance() { long duration = 0; for (int i = 0; i < 5; i++) { digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration += pulseIn(echoPin, HIGH); } return (duration / 5) * 0.034 / 2; }
- Увеличить чувствительность порога (например,
distance < 15 см
).
Проблема 2: Щетка включается, но не выключается
Симптомы: После срабатывания реле щетка работает постоянно, даже после удаления препятствия.
Причины:
- Неправильная логика в коде:
delay(2000)
блокирует выполнение остальных команд. - Неисправность реле (например, залипание контактов).
Решение:
- Переписать код без
delay()
, используяmillis()
для таймера:unsigned long relayStartTime = 0; bool relayActive = false; void loop() { float distance = getDistance(); if (distance < 15) { digitalWrite(in1, LOW); digitalWrite(in2, LOW); if (!relayActive) { digitalWrite(relayPin, HIGH); relayStartTime = millis(); relayActive = true; } } else { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); if (relayActive && millis() - relayStartTime >= 2000) { digitalWrite(relayPin, LOW); relayActive = false; } } }
- Проверить реле мультиметром и заменить его при необходимости.
Проблема 3: Робот дергается при движении
Симптомы: Колеса вращаются неравномерно, робот "зигзагообразно" двигается.
Причины:
- Несимметричная нагрузка на моторы (например, одно колесо туго вращается).
- Недостаточное напряжение питания (аккумулятор разряжен).
Решение:
- Проверить механическую часть: смазать оси, убедиться в равномерном натяжении колес.
- Измерить напряжение аккумулятора: если ниже 6 В (для NiMH), заменить его на заряженный.
Итоговый результат
После устранения проблем робот-пылесос успешно:
- Двигается вперед, избегая препятствий.
- Включает щетку при приближении к объекту и выключает ее через 2 секунды.
- Работает без рывков и зависаний.
Вывод:
Реальные проекты требуют не только корректного кода, но и внимательного подхода к механике, электронике и диагностике ошибок. Использование millis()
вместо delay()
фильтрация данных с датчиков и проверка питания — ключевые шаги для стабильной работы робота.
Кейс 2
Робот-реактив на звуковой сигнал
Описание проекта
Студент создал робота на базе Arduino Uno, датчика звука KY-038 и двух моторов с драйвером L298N. Задача: робот должен останавливаться при обнаружении громкого звука (например, хлопка) и возобновлять движение через 3 секунды.
Схема подключения:
- KY-038: VCC → 5V, GND → GND, DO → D2.
- Драйвер L298N: IN1 → D3, IN2 → D4, ENA → D5.
- Питание моторов: внешний аккумулятор 9В подключен к драйверу.
Код (исходный):
#define soundSensor 2
#define in1 3
#define in2 4
#define enA 5
volatile bool stopRobot = false;
void setup() {
pinMode(soundSensor, INPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enA, OUTPUT);
attachInterrupt(digitalPinToInterrupt(soundSensor), stopHandler, RISING);
}
void loop() {
if (!stopRobot) {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 150); // Средняя скорость
} else {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(3000); // Ожидание 3 секунды
stopRobot = false;
}
}
void stopHandler() {
stopRobot = true;
}
Скрытые проблемы и их решение
Проблема 1: Датчик не реагирует на хлопок
Симптомы: Робот продолжает двигаться, несмотря на громкие звуки.
Причины:
- Неправильная настройка чувствительности датчика (потенциометр на KY-038 установлен слишком низко).
- Неверное подключение вывода DO (например, подключен к аналоговому входу A0 вместо D2).
- Прерывание не срабатывает из-за конфликта с delay() в основном коде.
Решение:
- Повысить чувствительность датчика вращением потенциометра до момента, когда светодиод на модуле загорается при хлопке.
- Проверить подключение DO → D2.
- Заменить
delay(3000)
наmillis()
для таймера:unsigned long pauseStart = 0; void loop() { if (!stopRobot) { // Движение } else { if (millis() - pauseStart >= 3000) { stopRobot = false; } } } void stopHandler() { stopRobot = true; pauseStart = millis(); }
Проблема 2: Робот дергается и останавливается самопроизвольно
Симптомы: Моторы работают рывками, датчик срабатывает без внешних звуков.
Причины:
- Электромагнитные помехи от моторов, влияющие на датчик звука.
- Нестабильное питание (аккумулятор разряжен, напряжение падает ниже 6 В).
Решение:
- Экранировать провода моторов и датчика, добавить керамические конденсаторы 0.1 мкФ к выводам моторов.
- Заменить аккумулятор на заряженный или использовать отдельный источник питания для Arduino (например, через USB).
Проблема 3: Робот не возобновляет движение после остановки
Симптомы: После срабатывания датчика робот останавливается, но не запускается вновь.
Причины:
- Логическая ошибка в коде:
stopRobot
не сбрасывается в false при завершении таймера. - Конфликт между прерыванием и основным циклом (например, прерывание срабатывает повторно во время паузы).
Решение:
- Переписать таймер с использованием
millis()
и флага:unsigned long pauseStart = 0; bool isPaused = false; void loop() { if (!isPaused) { // Движение } else { if (millis() - pauseStart >= 3000) { isPaused = false; } } } void stopHandler() { isPaused = true; pauseStart = millis(); }
- Добавить антидребезг в обработчик прерывания с помощью
delay(50)
или аппаратного фильтра (конденсатор 10 мкФ между DO и GND).
Итоговый результат
После устранения проблем робот:
- Надежно останавливается при хлопке или громком звуке.
- Возобновляет движение через 3 секунды.
- Работает без рывков и ложных срабатываний.
Вывод:
Проект показал важность защиты от электромагнитных помех, точной настройки датчиков и корректного управления прерываниями. Использование millis()
вместо delay()
и экранирование проводов — критические шаги для стабильной работы робота.
Ролевая игра 1
Спасательная миссия в затопленном городе
Цель
Освоить базовые навыки работы с датчиками, моторами и программированием Arduino в условиях командной задачи. Развить навыки решения проблем, распределения ролей и работы под давлением времени.
Формат
Игра проводится в группах по 4-5 человек. Участники получают задание спроектировать и собрать робота, который сможет выполнить спасательную миссию в симуляции "затопленного города".
Сеттинг
Город был частично затоплен из-за прорыва дамбы. В локальных зонах (обозначенных на полигоне) находятся "пострадавшие" (маленькие предметы), которых нужно эвакуировать. Зона затопления имитируется с помощью препятствий (картонные стены, вода из распылителя), а пострадавшие — инфракрасные маяки или цветные объекты.
Роли
- Инженер по механике — отвечает за сборку шасси, установку моторов и колес.
- Программист — пишет код для управления движением, датчиками и эвакуатором.
- Специалист по датчикам — настраивает ультразвуковые, инфракрасные или цветовые датчики для поиска пострадавших.
- Оператор связи — следит за связью между участниками, документирует ошибки и предлагает решения.
- Координатор миссии — руководит общей стратегией, распределяет задачи и контролирует таймер.
Этапы игры
-
Брифинг (20 минут):
- Участники получают карту зоны, описание миссии и ограничения (например, робот должен найти 3 пострадавших за 5 минут).
- Команды распределяют роли и обсуждают концепцию робота.
-
Проектирование и сборка (60 минут):
- Сборка шасси, установка моторов, драйвера L298N, датчиков (HC-SR04, TCS3200, VS1838B).
- Подключение Arduino Uno, батареи и исполнительных механизмов (например, сервопривод для "захвата" пострадавших).
-
Программирование (60 минут):
- Написание кода для:
- Обнаружения препятствий (HC-SR04).
- Поиска пострадавших (TCS3200 или ИК-датчик).
- Автономного движения по маршруту.
- Реакции на внешние сигналы (например, остановка при нажатии кнопки "опасность").
- Написание кода для:
-
Тестирование (30 минут):
- Проверка работы датчиков, корректировка кода, устранение механических недочетов.
-
Финальная миссия (20 минут):
- Робот запускается на полигоне. Команда наблюдает за его работой, но не может вмешиваться.
- Оценка по критериям: количество эвакуированных пострадавших, время выполнения, эффективность обхода препятствий.
Обучающий эффект
- Технические навыки:
- Работа с драйверами моторов, датчиками и Arduino.
- Программирование логики движения и обработки сигналов.
- Командные навыки:
- Распределение ролей, коммуникация, управление временем.
- Диагностика и устранение ошибок в условиях ограниченного ресурса.
- Критическое мышление:
- Прогнозирование сценариев (например, сбой датчика из-за отражающей поверхности).
Возможные вызовы
-
Технические проблемы:
- Датчики не срабатывают из-за помех (например, цветовой датчик TCS3200 некорректно определяет цвет при ярком свете).
- Решение: калибровка датчиков перед миссией, использование фильтров (например, матовые экраны для TCS3200).
-
Несогласованность команды:
- Программист и инженер не согласуют параметры (например, код рассчитан на сервопривод, но механик установил обычный мотор).
- Решение: регулярные встречи для синхронизации задач, использование чек-листов.
-
Недостаток времени:
- Сложность уложиться в сроки из-за непредвиденных ошибок (например, перегрев L298N).
- Решение: планирование резервного времени на тестирование, обучение быстрой замене компонентов.
Итог
Игра помогает участникам:
- Понять взаимосвязь между механикой, электроникой и программированием.
- Научиться работать в команде под давлением времени.
- Применить теоретические знания на практике в имитации реальной задачи.
Ролевая игра 2
Исследовательская миссия на Красной планете
Цель
Освоить работу с беспроводной связью (Bluetooth/Wi-Fi), датчиками температуры и ориентации, а также создать систему дистанционного управления роботом. Развить навыки интеграции различных модулей и командного взаимодействия в условиях удаленного контроля.
Формат
Игра проводится в группах по 4-5 человек. Участники моделируют космическую миссию: робот-исследователь должен собрать образцы грунта на "поверхности Марса" (полигон) и передать данные о температуре и ориентации через Bluetooth/Wi-Fi на "контрольный пункт" (ноутбук или смартфон).
Сеттинг
На "поверхности Марса" установлены "зоны интереса" (обозначенные на полигоне) с образцами грунта (цветные объекты) и "температурными аномалиями" (источники тепла). Робот должен:
- Перемещаться по полигону.
- Обнаруживать и "собирать" образцы (например, с помощью сервопривода).
- Передавать данные о температуре (DHT11) и углах наклона (MPU6050) на контрольный пункт.
- Избегать "опасных зон" (препятствия).
Роли
- Инженер по сенсорам — отвечает за подключение и настройку датчиков (DHT11, MPU6050).
- Программист связи — пишет код для беспроводной передачи данных (Bluetooth/Wi-Fi) и обработки команд.
- Механик-робототехник — собирает шасси с манипулятором для захвата образцов.
- Оператор связи — контролирует передачу данных с робота на контрольный пункт, выявляет сбои.
- Астронавт-исследователь — руководит миссией, принимает решения на основе данных с датчиков.
Этапы игры
-
Брифинг (15 минут):
- Участники получают описание миссии, карту полигона и список доступных компонентов (Arduino Uno, DHT11, MPU6050, HC-05/ESP-01, сервопривод, моторы).
- Распределение ролей, обсуждение стратегии.
-
Проектирование и сборка (60 минут):
- Сборка шасси с моторами и драйвером L298N.
- Установка манипулятора (сервопривод SG90) для захвата образцов.
- Подключение датчиков DHT11 (температура/влажность) и MPU6050 (гироскоп).
- Интеграция модуля связи (Bluetooth HC-05 или Wi-Fi ESP-01).
-
Программирование (75 минут):
- Код для:
- Движения по полигону с обходом препятствий (HC-SR04, если используется).
- Захвата образцов (управление сервоприводом).
- Считывания данных с DHT11 и MPU6050.
- Передачи данных через Bluetooth/Wi-Fi (например, в приложение на смартфоне или монитор порта).
- Пример кода для передачи температуры:
#include <SoftwareSerial.h> #include <DHT.h> #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); SoftwareSerial BTSerial(10, 11); // RX, TX void setup() { dht.begin(); BTSerial.begin(9600); } void loop() { float temperature = dht.readTemperature(); BTSerial.print("Температура: "); BTSerial.print(temperature); BTSerial.println(" °C"); delay(2000); }
- Код для:
-
Тестирование (30 минут):
- Проверка связи между роботом и контрольным пунктом.
- Калибровка MPU6050 (например, с использованием библиотеки I2Cdev).
- Имитация сбора образцов и передачи данных.
-
Финальная миссия (25 минут):
- Робот запускается на полигоне. Команда наблюдает за передачей данных с датчиков на контрольный пункт.
- Оценка по критериям:
- Количество собранных образцов.
- Точность передачи данных (например, корректное отображение температуры).
- Время выполнения миссии.
Обучающий эффект
- Технические навыки:
- Работа с беспроводными модулями (Bluetooth/Wi-Fi), гироскопами, датчиками температуры.
- Интеграция нескольких систем (механика, сенсоры, связь).
- Командные навыки:
- Синхронизация задач между программистом связи, механиком и оператором.
- Управление ресурсами (например, выбор между Bluetooth и Wi-Fi в зависимости от доступности).
- Критическое мышление:
- Устранение помех в беспроводной связи (например, потеря пакетов из-за расстояния).
- Адаптация к изменяющимся условиям (например, перезагрузка модуля связи при сбое).
Возможные вызовы
-
Сбой связи:
- Проблема: Bluetooth/Wi-Fi модуль не подключается из-за неправильной настройки.
- Решение: Проверка подключения (TX/RX), перепрошивка модуля, использование альтернативных портов.
-
Некорректные данные с датчиков:
- Проблема: MPU6050 возвращает "дрожащие" значения из-за вибраций от моторов.
- Решение: Фильтрация данных (например, с использованием фильтра Калмана), экранирование проводов.
-
Сложность с манипулятором:
- Проблема: Сервопривод не справляется с захватом объекта из-за недостаточного крутящего момента.
- Решение: Установка более мощного сервопривода или уменьшение веса захвата.
Итог
Игра помогает участникам:
- Освоить интеграцию беспроводных технологий и сложных сенсоров.
- Научиться работать в условиях удаленного контроля и ограниченной обратной связи.
- Применить знания на практике в сценарии, имитирующем реальную инженерную задачу.
Ролевая игра 3
Робот-сортировщик на умной фабрике
Цель
Освоить работу с датчиками цвета, ИК-датчиками следования по линии и сервоприводами. Развить навыки программирования логики на основе нескольких входных сигналов, а также командного взаимодействия при решении задач сортировки и транспортировки.
Формат
Игра проводится в группах по 4-5 человек. Участники моделируют работу "умной фабрики", где робот должен транспортировать и сортировать "детали" (цветные объекты) по соответствующим контейнерам на основе данных с датчиков.
Сеттинг
На "фабрике" установлены:
- Линия транспортера (имитируется полосой на полу).
- Зоны сортировки (контейнеры разных цветов).
- Детали (объекты красного, синего и зеленого цветов, размещенные на транспортере).
Робот должен: - Следовать по черной линии транспортера.
- Распознавать цвет деталей (TCS3200 или RGB-датчик).
- Перемещать детали в соответствующие контейнеры (через сервопривод или манипулятор).
Роли
- Инженер по механике — собирает шасси с манипулятором и креплением для датчиков.
- Программист логики — пишет код для обработки сигналов с датчиков и управления моторами/сервоприводом.
- Специалист по сенсорам — настраивает TCS3200 (калибровка цвета) и ИК-датчики следования по линии.
- Оператор фабрики — следит за общим процессом, фиксирует ошибки сортировки.
- Координатор — распределяет задачи, контролирует таймер и взаимодействует с "заказчиком" (преподавателем).
Этапы игры
-
Брифинг (15 минут):
- Участники получают описание задачи, карту полигона и список компонентов (Arduino Uno, TCS3200, ИК-датчик TCRT5000, сервопривод SG90, моторы).
- Распределение ролей, обсуждение стратегии.
-
Проектирование и сборка (60 минут):
- Сборка шасси с моторами и драйвером L298N.
- Установка ИК-датчиков для следования по линии (2-3 датчика на передней части робота).
- Подключение TCS3200 для распознавания цвета и сервопривода для манипуляции деталями.
-
Программирование (75 минут):
- Код для:
- Следования по линии (алгоритм пропорционального регулирования на основе сигналов ИК-датчиков).
- Распознавания цвета (калибровка TCS3200, сравнение с эталонными значениями).
- Управления сервоприводом для захвата и перемещения деталей.
- Пример кода для распознавания цвета:
#include <Wire.h> #include <TCS3200.h> TCS3200 colorSensor(A0, A1, A2, A3); // S0-S3 подключены к A0-A3 int redThreshold = 100; // Порог для красного цвета int greenThreshold = 150; // Порог для зеленого цвета void setup() { colorSensor.begin(); } void loop() { colorSensor.read(); // Считываем значения RGB if (colorSensor.red > redThreshold && colorSensor.green < greenThreshold) { // Красная деталь → переместить в красный контейнер moveServoToRed(); } else if (colorSensor.green > greenThreshold) { // Зеленая деталь → переместить в зеленый контейнер moveServoToGreen(); } else { // Синяя деталь → переместить в синий контейнер moveServoToBlue(); } }
- Код для:
-
Тестирование (30 минут):
- Калибровка TCS3200 (например, установка пороговых значений для каждого цвета).
- Проверка точности следования по линии и работы манипулятора.
-
Финальная сортировка (25 минут):
- Робот запускается на полигоне. Команда наблюдает за его работой, но не может вмешиваться.
- Оценка по критериям:
- Количество правильно отсортированных деталей.
- Точность следования по линии.
- Время выполнения задачи.
Обучающий эффект
- Технические навыки:
- Работа с датчиками цвета, ИК-сенсорами и сервоприводами.
- Программирование логики на основе множества входных сигналов.
- Командные навыки:
- Согласование механики, программирования и настройки сенсоров.
- Быстрая диагностика и устранение ошибок (например, сбой распознавания цвета из-за освещения).
- Критическое мышление:
- Адаптация к изменяющимся условиям (например, замена деталей с нестандартными цветами).
Возможные вызовы
-
Некорректное распознавание цвета:
- Проблема: TCS3200 не различает цвета из-за яркого внешнего освещения.
- Решение: Калибровка датчика в текущих условиях, добавление защитного кожуха от света.
-
Сбой следования по линии:
- Проблема: Робот выезжает с черной полосы из-за некорректных значений ИК-датчиков.
- Решение: Настройка чувствительности датчиков (потенциометром на TCRT5000), коррекция алгоритма движения.
-
Механические проблемы с манипулятором:
- Проблема: Сервопривод не удерживает деталь из-за недостаточного усилия.
- Решение: Установка более мощного сервопривода или упрощение конструкции захвата.
Итог
Игра помогает участникам:
- Научиться интегрировать несколько типов датчиков в единую систему.
- Применить алгоритмы управления на практике (например, пропорциональное регулирование для следования по линии).
- Улучшить командное взаимодействие в условиях ограниченных ресурсов и времени.
Ролевая игра 4
Робот-пожарный на фабрике
Цель
Освоить работу с датчиком пламени (KY-026), сервоприводами для активных действий и программированием реакции на внешние события. Развить навыки интеграции нескольких систем для выполнения сценарных задач и работы в условиях ограниченного времени.
Формат
Игра проводится в группах по 4-5 человек. Участники моделируют спасательную операцию на "фабрике", где робот должен обнаружить "пожар" (светодиод, имитирующий пламя), потушить его с помощью вентилятора или сервопривода с распылителем воды и эвакуировать "пострадавших" (цветные объекты).
Сеттинг
На "фабрике" установлены:
- Зоны с датчиками пламени (KY-026), имитирующими очаги возгорания (светодиоды).
- Пострадавшие (цветные объекты, размещенные рядом с очагами).
- Препятствия (картонные стены, коробки).
Робот должен: - Перемещаться по полигону, обнаруживая пламя.
- Тушить пожар с помощью вентилятора (или сервопривода с брызговиком).
- Эвакуировать пострадавших в "безопасную зону".
Роли
- Инженер по безопасности — отвечает за подключение и настройку датчика пламени (KY-026).
- Программист реакции — пишет код для обработки сигналов с датчика и управления исполнительными механизмами.
- Механик-спасатель — собирает конструкцию для захвата пострадавших (например, сервопривод с ковшом).
- Оператор связи — фиксирует время срабатывания системы и ошибки.
- Координатор миссии — распределяет задачи, следит за таймером и взаимодействует с "командным центром" (преподавателем).
Этапы игры
-
Брифинг (15 минут):
- Участники получают описание миссии, карту полигона и список компонентов (Arduino Uno, KY-026, сервопривод SG90, моторы, драйвер L298N).
- Распределение ролей, обсуждение стратегии.
-
Проектирование и сборка (60 минут):
- Сборка шасси с моторами и драйвером L298N.
- Установка датчика пламени KY-026 на передней части робота.
- Подключение вентилятора (или сервопривода с распылителем) для тушения.
- Добавление манипулятора для захвата пострадавших.
-
Программирование (75 минут):
- Код для:
- Движения по полигону с обходом препятствий (HC-SR04, если используется).
- Обнаружения пламени (KY-026, считывание сигнала с DO/аналогового выхода).
- Активации вентилятора/распылителя при обнаружении пожара.
- Управления манипулятором для захвата и перемещения объектов.
- Пример кода для реакции на пламя:
#define flameSensor A0 #define fanPin 7 #define servoPin 9 Servo gripper; void setup() { pinMode(flameSensor, INPUT); pinMode(fanPin, OUTPUT); gripper.attach(servoPin); } void loop() { if (digitalRead(flameSensor) == HIGH) { // Пламя обнаружено digitalWrite(fanPin, HIGH); // Включить вентилятор delay(3000); // Тушение 3 секунды digitalWrite(fanPin, LOW); gripper.write(90); // Захватить пострадавшего delay(1000); gripper.write(0); // Переместить в безопасную зону } }
- Код для:
-
Тестирование (30 минут):
- Проверка чувствительности датчика пламени (настройка порога срабатывания).
- Имитация тушения и захвата объектов.
-
Финальная миссия (25 минут):
- Робот запускается на полигоне. Команда наблюдает за выполнением задач.
- Оценка по критериям:
- Количество потушенных пожаров.
- Число эвакуированных пострадавших.
- Время выполнения задачи.
Обучающий эффект
- Технические навыки:
- Работа с датчиком пламени, сервоприводами и исполнительными механизмами.
- Программирование реакции на внешние события.
- Командные навыки:
- Синхронизация действий между механиком, программистом и оператором.
- Быстрая диагностика сбоев (например, ложное срабатывание датчика).
- Критическое мышление:
- Адаптация к изменяющимся условиям (например, перемещение пламени на полигоне).
Возможные вызовы
-
Ложное срабатывание датчика:
- Проблема: KY-026 реагирует на яркий свет или ИК-излучение от других источников.
- Решение: Экранирование датчика, настройка чувствительности (потенциометр на модуле).
-
Недостаточная мощность вентилятора:
- Проблема: Вентилятор не справляется с имитацией тушения (например, не гасит светодиод).
- Решение: Использование более мощного вентилятора или замена на сервопривод с распылителем воды.
-
Сбой манипулятора:
- Проблема: Сервопривод не удерживает объект из-за недостаточного усилия.
- Решение: Установка пружины в захват или использование магнитного захвата.
Итог
Игра помогает участникам:
- Освоить интеграцию датчиков пламени и исполнительных механизмов.
- Научиться программировать реакции на внешние события в реальном времени.
- Применить знания на практике в динамичном сценарии, имитирующем реальную спасательную операцию.
Интеллект-карта 1: Поток обучения
Поток обучения "Робототехник (Начальный)"
│
├── Модуль 1: Введение в робототехнику
│ ├── Основы робототехники: что такое робот, типы роботов.
│ ├── Компоненты робота: шасси, моторы, датчики, микроконтроллеры.
│ ├── Безопасность: работа с электроникой, правила поведения на полигоне.
│ └── Практика: Ролевая игра №1 (Спасательная миссия в затопленном городе) — базовая сборка шасси и управление моторами.
│
├── Модуль 2: Электроника и сенсоры
│ ├── Arduino Uno: подключение, питание, базовые схемы.
│ ├── Датчики: ультразвуковые (HC-SR04), инфракрасные (TCRT5000), цветовые (TCS3200).
│ ├── Исполнительные механизмы: моторы, сервоприводы.
│ └── Практика: Ролевая игра №3 (Робот-сортировщик) — интеграция датчиков и сервоприводов.
│
├── Модуль 3: Программирование
│ ├── Основы Arduino IDE: синтаксис, переменные, условия, циклы.
│ ├── Управление датчиками и моторами через код.
│ ├── Беспроводная связь: Bluetooth/Wi-Fi (HC-05/ESP-01).
│ └── Практика: Ролевая игра №2 (Исследовательская миссия на Марсе) — программирование логики и передачи данных.
│
└── Модуль 4: Интеграция систем
├── Комбинирование механики, электроники и программирования.
├── Диагностика и устранение ошибок: сбои датчиков, синхронизация компонентов.
├── Проектный подход: управление временем, распределение ролей.
└── Практика: Ролевая игра №4 (Робот-пожарный) — комплексное решение с реакцией на внешние события.
Интеллект-карта 2: Связи между модулями
Связи между модулями
│
├── Модуль 1 → Модуль 2
│ └── Знания о компонентах (Модуль 1) → Применение в сборке схем (Модуль 2).
│
├── Модуль 2 → Модуль 3
│ └── Работа с датчиками и моторами (Модуль 2) → Программирование их взаимодействия (Модуль 3).
│
├── Модуль 3 → Модуль 4
│ └── Навыки программирования (Модуль 3) → Интеграция в сложные системы (Модуль 4).
│
└── Все модули → Ролевые игры
└── Теория + практика → Реализация сценариев (игры как финальные проекты модулей).
Интеллект-карта 3: Ключевые компоненты и технологии
Ключевые компоненты и технологии
│
├── Аппаратные средства
│ ├── Микроконтроллеры: Arduino Uno, ESP-01.
│ ├── Датчики: HC-SR04 (расстояние), TCS3200 (цвет), DHT11 (температура), KY-026 (пламя).
│ ├── Исполнительные механизмы: моторы, драйвер L298N, сервоприводы SG90.
│ └── Модули связи: HC-05 (Bluetooth), ESP-01 (Wi-Fi).
│
├── Программные инструменты
│ ├── Arduino IDE: написание и отладка кода.
│ ├── Библиотеки: Servo, SoftwareSerial, DHT, TCS3200.
│ └── Мониторинг данных: Serial Monitor, приложения для Bluetooth.
│
└── Практические навыки
├── Сборка шасси и манипуляторов.
├── Калибровка датчиков (цвет, расстояние).
├── Программирование логики: условия, циклы, обработка сигналов.
└── Диагностика: устранение сбоев в схемах и коде.
Интеллект-карта 4: Ролевые игры как финальные проекты
Ролевые игры как финальные проекты
│
├── Игра №1: Спасательная миссия
│ └── Фокус: Базовая механика и управление моторами (Модуль 1).
│
├── Игра №2: Исследовательская миссия
│ └── Фокус: Беспроводная связь и интеграция датчиков (Модуль 3).
│
├── Игра №3: Робот-сортировщик
│ └── Фокус: Программирование логики и работа с цветовыми датчиками (Модуль 2).
│
└── Игра №4: Робот-пожарный
└── Фокус: Интеграция всех навыков (Модуль 4) — реакция на внешние события, управление манипуляторами.
Интеллект-карта 5: Обучающие эффекты по модулям
Обучающие эффекты по модулям
│
├── Модуль 1
│ ├── Понимание структуры робота.
│ ├── Работа в команде и распределение ролей.
│
├── Модуль 2
│ ├── Навыки подключения и настройки датчиков.
│ ├── Работа с электронными схемами.
│
├── Модуль 3
│ ├── Программирование логики управления.
│ ├── Передача данных через Bluetooth/Wi-Fi.
│
└── Модуль 4
├── Интеграция механики, электроники и кода.
├── Решение комплексных задач в условиях времени.
-
Название: Arduino: Руководство для начинающих
Автор: Джон Г. Нокс
Год издания: 2021
Описание:
Книга охватывает основы работы с Arduino Uno, включая подключение датчиков (HC-SR04, DHT11), управление моторами и сервоприводами, а также базовое программирование на C++. Подходит для модулей 1–3. -
Название: Электроника для любителей: от теории к практике
Автор: Александр Горячев
Год издания: 2019
Описание:
Пособие объясняет принципы работы с датчиками (TCS3200, KY-026), исполнительными механизмами и схемами. Включает примеры сборки шасси и диагностики сбоев (модуль 2 и 4). -
Название: Робототехника для начинающих: 20 практических проектов
Автор: Сергей Валюхов
Год издания: 2020
Описание:
Сборник проектов, включая создание роботов с датчиками пламени, цвета и беспроводной связью. Поддерживает модуль 4 и ролевые игры. -
Название: Programming the Arduino: Getting Started with Sketches
Автор: Simon Monk
Год издания: 2022
Описание:
Англоязычная книга с примерами кода для Arduino IDE, включая работу с Bluetooth/Wi-Fi (HC-05/ESP-01) и датчиками. Полезна для модуля 3. -
Название: Методические рекомендации по робототехнике для образовательных курсов
Автор: Министерство образования РФ
Год издания: 2023
Описание:
Официальное пособие с описанием учебных сценариев, ролевых игр и критериев оценки. Поддерживает все модули и проектный подход.
- Робототехника с нуля: Первые шаги
- Старт в робототехнике: Основы для новичков
- Роботы вокруг нас: Введение в мехатронику
- Электроника и роботы: Базовый курс
- Создаем своего первого робота
- Робототехническая лаборатория: Начальный уровень
- Arduino для начинающих: Управление и сенсоры
- От идеи к роботу: Практический старт
- Механика, электроника, код: Основы робототехники
- Роботы в действии: Сценарии и проекты
- Робототехника для любознательных
- Секреты умных машин: Введение в автоматизацию
- Роботы будущего: Базовые технологии
- Программируем и строим: Основы робототехники
- Робот-мастер: От теории к практике
- Эра роботов: Курс для новичков
- Робототехника без страха: Начинаем вместе
- Создаем интеллектуальные системы с нуля
- Роботы в нашей жизни: Введение в профессию
- Базовая робототехника: Шаг за шагом
- Роботы и технологии: Первые уроки
- Инженерные навыки с Arduino и датчиками
- От простого к сложному: Робототехнические проекты
- Робототехника в фокусе: Начальный курс
- Технологии завтрашнего дня: Базовый уровень
Нет элементов для просмотра