Введение / Introduction
Рост интереса к изучению робототехники в образовательных учреждениях, отмечаемый в работах А. В. Параскевова, требует совершенствования методов преподавания основ программирования [1]. Данную тенденцию подтверждает и Т. В. Никитина, указывая на робототехнику как на ключевое направление инженерно-технического творчества школьников [2]. Современные образовательные стандарты смещают фокус на концепцию «вычислительного мышления» (Computational Thinking), фундаментальную важность которой обосновывает Е. К. Хеннер [3]. В свою очередь, С. Лай детально рассматривает перспективы интеграции данного типа мышления через программирование в рамках школьных учебных программ [4]. Базовые основы этого феномена, ставшего фундаментом для многих образовательных инноваций, были изначально сформулированы в классической работе Дж. Винг [5]. Датчики представляют собой устройства различной степени сложности в зависимости от типа обрабатываемых данных и позволяют сделать мобильные или статические робототехнические платформы более интеллектуальными, а алгоритмы работы более сложными. В настоящее время существует множество образовательных решений, формирующих алгоритмическое мышление. Однако разнообразие платформ ведет к тому, что существующие блок-схемы становятся слишком абстрактными и не позволяющими конкретизировать настройку датчиков. Классический блок «Получить данные с датчика» в учебных материалах часто представляет собой «черный ящик», скрывающий процессы инициализации порта, настройки режима работы и обработки типа данных. Это не позволяет учащимся быстро перейти от визуального представления к формированию корректного текстового кода или блочно-модульного представления. Целью настоящего исследования является декомпозиция команд управления датчиками в виде блок-схем для обучения программированию робототехнических платформ. Для достижения поставленной цели необходимо решить следующие задачи:
1. Провести сравнительный анализ синтаксических конструкций и интерфейсов программирования приложений (Application Programming Interface, далее – API) интегрированных сред разработки (Integrated Development Environment, далее – IDE) Arduino (C++), VEXcode V5 (C++) и LEGO Mindstorms EV3 (MicroPython) в контексте работы с периферийными устройствами.
2. Выявить общие паттерны инициализации и опроса сенсоров, независимые от специфики конкретного робототехнического конструктора.
3. Разработать унифицированные графические примитивы (блоки), визуализирующие логическую структуру команд управления с детализацией параметров (порт, режим, тип данных).
4. Обосновать методическую целесообразность применения разработанного подхода как средства снижения когнитивной нагрузки при переходе от визуального программирования к текстовому.
Обзор литературы / Literature review
Анализ современного состояния методики показывает, что ключевой проблемой остается формирование у учащихся глубокого понимания взаимосвязи между программным кодом и физическими процессами. В российской педагогической науке Л. Л. Босова подчеркивает, что планомерное развитие алгоритмического мышления современного школьника в рамках цифровой образовательной среды совершенно невозможно без строгого этапа формализации и графического структурирования задач [6]. В этом контексте В. В. Любимова проводит подробный сравнительный анализ существующих виртуальных симуляторов и сред для изучения робототехники, акцентируя внимание педагогов на их функциональных возможностях, дидактическом потенциале и технических ограничениях при имитации физических процессов [7]. В свою очередь В. В. Тарапата всесторонне рассматривает специфику сложного когнитивного перехода обучающихся от простых визуальных образов к многоуровневому текстовому коду, предлагая использовать адаптированные проектные методики и стандартные блок-схемы в качестве связующего звена [8]. Вопросы успешного формирования базовых алгоритмических навыков у детей в начальной школе с применением интуитивно понятных блочно-ориентированных сред программирования, подобных Scratch, подробно описывает в своих трудах Н. А. Воробьева [9]. Исключительную важность качественного методического сопровождения педагогов и создания комплексной системы повышения квалификации при практической реализации школьных программ образовательной робототехники убедительно доказывает
Н. В. Абрамовских [10]. Органично дополняет эту фундаментальную мысль Е. А. Романова, глубоко исследуя актуальные проблемы профессиональной подготовки педагогических кадров в стремительно меняющихся условиях глобальной информатизации современного образования [11]. Специфику организации дистанционного и гибридного онлайн-обучения школьников основам программирования, а также методы удержания познавательного интереса вне школьной лаборатории рассматривает в своих научных трудах Н. Ю. Куликова [12]. Специфические особенности организации инновационного научно-технического творчества учащихся в гибкой системе дополнительного образования, где робототехника выступает главным мотивирующим фактором, детально анализирует М. Д. Воронина [13]. Для непосредственной практической методической поддержки учителей на уроках информатики сегодня разработаны специализированные учебные пособия, среди которых особой практико-ориентированностью выделяется работа З. В. Яковлевой [14]. Различные технические аспекты применения облачных виртуальных симуляторов, таких как Tinkercad, при первоначальном изучении схемотехники и микроконтроллеров архитектуры Arduino на конкретных учебных примерах детально рассматривает
С. Д. Коткин [15]. Фундаментальные технологические основы преподавания робототехники в основной школе, включающие поэтапное освоение механики, электроники и базовых структур программирования, последовательно закладываются в известных методических работах Д. Г. Копосова [16]. Однако глубокий анализ представленных отечественных источников показывает, что они не предлагают педагогам унифицированную платформонезависимую декомпозицию команд работы со сложными дискретными и аналоговыми датчиками.
Зарубежные исследования также подтверждают чрезвычайную актуальность поиска новых подходов к обучению программированию киберфизических систем. Проведя глубокий анализ существующих публикаций, С. Анвар констатирует существенный недостаток современных школьных курсов по робототехнике, который заключается в полном отсутствии этапа абстрактного проектирования алгоритмов [17]. В последующих эмпирических изысканиях группа исследователей под руководством С. Анвара доказывает, что повышение уровня довузовского инженерного образования требует создания совершенно иных педагогических средств [18]. В свою очередь, изучая программное обеспечение для учебных конструкторов, А. Меркурис обращает внимание на серьезный дидактический барьер, возникающий при переводе обучающихся с графических блоков на классические текстовые языки [19]. В другой своей работе А. Меркурис на основе собранных экспериментальных данных детально исследует прямое позитивное влияние блочного кодирования физических роботов на развитие базовых навыков вычислительного мышления у школьников [19]. Ученый Ф. Бенитти всесторонне изучает раскрытый образовательный потенциал робототехники в общеобразовательных школах, параллельно фиксируя серьезные методические пробелы педагогов именно в процессе безопасного перехода учеников к сложным текстовым алгоритмам [20]. Абсолютная важность регулярного использования стандартизированных блок-схем в качестве ключевого когнитивного этапа для эффективного решения проблем и визуализации сложных логических процессов научно доказана в новейшей работе А. Гритлахаре [21]. Детальное качественное и количественное сравнение педагогических подходов к визуальному и классическому текстовому программированию в классах информатики старшей школы проводит на основе лонгитюдных наблюдений Д. Вайнтроп [22]. Турецкий исследователь М. Гелиболу статистически подтверждает наличие серьезных поведенческих и когнитивных трудностей у учащихся при неизбежном переходе от перетаскивания ярких блоков к строгому синтаксису высокоуровневых языков программирования [23]. Существенное развивающее влияние различных компьютерных визуальных сред и планшетных приложений на раннее формирование математических и логических навыков у детей младшего возраста наглядно демонстрирует в своем исследовании С. Пападакис [24]. В свою очередь, Х. Гюнеш экспериментально исследует и доказывает тот факт, что именно физическое, а не виртуальное программирование реальных мобильных роботов наиболее эффективно развивает вычислительное мышление и компетенции XXI века у учащихся средней школы [25]. Специфическую проблему рассматривает Г. Ванг, напрямую указывая на неизбежные технические и методические сложности, возникающие у преподавателей при переводе студентов с «закрытых» модульных конструкторов LEGO на «открытую» аппаратную платформу Arduino [26]. Огромный скрытый потенциал использования современных виртуальных симуляторов для поддержки преподавания алгоритмики и геометрии убедительно раскрывается коллективом авторов масштабного исследования специализированной образовательной платформы VEXcode VR [27]. Практическую специфику аккуратного внедрения инновационных образовательных подходов к преподаванию основ робототехники в строгой среде традиционной начальной школы подробно рассматривает Д. Скарадоцци [28]. Известный специалист в области раннего развития М. Берс детально описывает гармоничную интеграцию программирования в обучение дошкольников и младших школьников через игровую, практическую и исследовательскую деятельность [29]. Наконец, сложные вопросы критериальной оценки будущих технологических инноваций и эффективности применяемых методов преподавания в сфере образовательной робототехники грамотно систематизирует в своем свежем обзоре Н. Тамрин [30].
Детальный анализ представленной обширной литературы обнаруживает явное научное противоречие: большинство исследователей единогласно заявляют о необходимости промежуточного моделирования алгоритмов, однако подробная методика пошаговой декомпозиции параметров, инвариантная к используемой аппаратной платформе, в доступных источниках полностью отсутствует.
Методологическая база исследования / Methodological base of the research
На первом этапе проводилось теоретическоеисследование на базе анализа технической документации и API трех наиболее распространенных в школьном образовании платформ: Arduino (язык C++), VEX (C++) и LEGO Mindstorms EV3 (MicroPython). Для достижения поставленной цели применялись следующие методы:
- Сравнительный анализ кода: сопоставление синтаксических конструкций, отвечающих за инициализацию и опрос датчиков.
- Метод декомпозиции: разбиение сложных программных объектов (классов и функций) на элементарные составляющие.
- Моделирование: создание графических примитивов (блоков), отображающих логическую структуру команды.
В роли исследуемых объектов выступили три базовые категории сенсорных устройств, отличающиеся друг от друга спецификой генерации и передачи информации:
1. Контактный датчик (Touch Sensor). Рассматривается как классический генератор бинарных сигналов (фиксирует два состояния: замкнут/разомкнут).
2. Дальномер, или ультразвуковой датчик (Distance/Ultrasonic Sensor). Служит иллюстрацией устройства, выдающего числовые показатели в формате с плавающей запятой.
3. Цветовой сенсор (Color Sensor). Является образцом мультимодального оборудования. Для его корректного функционирования необходима первоначальная конфигурация (выбор режима считывания RGB-показателей, распознавания конкретного оттенка или замера интенсивности отраженного луча).
Результаты исследования / Research results
Фундаментальной составляющей любой учебной робототехнической базы выступает механизм мониторинга внешней среды, который реализуется путем регулярного считывания показаний с сенсоров. Потребность в оптимизации процесса обработки поступающей информации диктует необходимость создания понятных и эффективных инструментов. Они должны обеспечивать плавную трансформацию абстрактных алгоритмов в готовый программный код за счет точной спецификации характеристик измерительных устройств.
Для углубления исследования требуется проанализировать специфику выбранных сред разработки. Это достигается путем детального разбора доступного инструментария (функций и методов), предназначенного для управления тремя упомянутыми категориями датчиков. В качестве базы для сравнения были отобраны наиболее востребованные программные платформы: LEGO Mindstorms, VEXcode и Arduino IDE.
- Arduino IDE. Взаимодействие с периферией в этой среде обязывает разработчика четко понимать физическую суть обрабатываемого сигнала (является ли он аналоговым или цифровым). Более того, зачастую возникает необходимость самостоятельного применения математических формул для конвертации «сырых» значений.
Таблица 1
Пример кода для датчиков в среде Arduino IDE
|
// 1. Датчик касания (кнопка) на цифровом пине 2 const int touchPin = 2; // 2. Датчик расстояния (HC-SR04): пины Trig (выход) и Echo (вход) const int trigPin = 9; const int echoPin = 10;
void setup() { Serial.begin(9600); // Запуск порта для вывода данных pinMode(touchPin, INPUT); // Настройка пина кнопки на вход pinMode(trigPin, OUTPUT); // Настройка пина Trig pinMode(echoPin, INPUT); // Настройка пина Echo }
void loop() { // --- Опрос датчика касания --- // Считываем состояние: 1 (HIGH) или 0 (LOW) int touchState = digitalRead(touchPin);
// --- Опрос датчика расстояния --- // Генерируем импульс 10 мкс digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Замеряем длину импульса (время возврата звука) long duration = pulseIn(echoPin, HIGH); // Пересчитываем время в сантиметры (физическая формула) int distanceCm = duration / 58;
// Вывод данных Serial.print("Touch: "); Serial.println(touchState); Serial.print("Dist: "); Serial.println(distanceCm); } |
Примечание:
- pinMode(..., INPUT) – настройка пина на считывание данных.
- digitalRead(touchPin) – установка цифового пина на чтение данных.
- duration / 58 – коэффициент пересчета времени.
- VEXcode V5 (C++). Среда VEXcode использует объектно-ориентированный подход с высоким уровнем абстракции.
Таблица 2
Пример кода для датчиков в среде VEXcode V5
|
#include "vex.h" using namespace vex;
// Объявление объектов датчиков bumper BumperA = bumper(Brain.ThreeWirePort.A); // Датчик касания distance Distance1 = distance(PORT1); // Датчик расстояния optical Optical1 = optical(PORT2); // Датчик цвета
int main() { while(true) { // --- Опрос датчика касания --- // Метод .pressing() возвращает true (истина) или false (ложь) bool isPressed = BumperA.pressing();
// --- Опрос датчика расстояния --- // Метод требует указания единиц измерения (mm или inches) double distVal = Distance1.objectDistance(mm);
// --- Опрос датчика цвета --- // Датчик мультимодальный: можно узнать имя цвета или яркость if (Optical1.color() == red) { // Действие, если увидели красный } // Или считываем яркость (0-100%) double brightness = Optical1.brightness();
task::sleep(20); } } |
Примечание:
‒ BumperA.pressing() – получение состояния нажатия кнопки.
‒ Distance1.objectDistance(mm) – получение значения расстояния с ключевой особенностью: необходимо явно указать единицы измерения (аргумент функции).
‒ Optical1.color() и Optical1.brightness() – получение значений цвета и яркости; один датчик имеет разные методы для разных режимов работы.
- LEGO Mindstorms EV3 (MicroPython). Работа с методами без низкоуровневого обращения к портам.
Таблица 3
Пример кода для датчиков в среде LEGO Mindstorms EV3
|
from pybricks.hubs import EV3Brick from pybricks.ev3devices import TouchSensor, UltrasonicSensor, ColorSensor from pybricks.parameters import Port, Color
# Инициализация объектов (связь софта с портами) ts = TouchSensor(Port.S1) # Датчик касания us = UltrasonicSensor(Port.S2) # Ультразвуковой датчик cs = ColorSensor(Port.S3) # Датчик цвета
while True: # --- Опрос датчика касания --- # Возвращает True/False if ts.pressed(): print("Нажато!")
# --- Опрос датчика расстояния --- # По умолчанию возвращает миллиметры (int) dist_mm = us.distance()
# --- Опрос датчика цвета --- # Режим определения цвета (возвращает объект Color.RED и т.д.) detected_color = cs.color() # Режим отраженного света (яркость 0-100%) reflection = cs.reflection() |
Примечание:
‒ TouchSensor(Port.S1) – создание объекта и инициализация порта.
‒ us.distance() – метод по умолчанию работает в миллиметрах, переключение на дюймы или сантиметры требует математических операций.
‒ cs.color() и cs.reflection() – методы разделяют режимы работы датчика (распознавание цвета или движение по линии).
Результаты сравнения:
- В качестве базового параметра у всех датчиков выступает порт подключения устройства.
- Для датчиков в различных средах нет разницы для входных данных, то есть программирование устройств является типовым и поддается шаблонизации.
Универсальная модель декомпозиции
Проведенный сравнительный анализ позволяет сделать ключевой вывод: несмотря на кардинальные различия в синтаксисе (процедурный С++, объектно-ориентированный С++, скриптовый Python) и уровнях аппаратной абстракции, логика инициализации и настройки параметров датчиков во всех средах концептуально идентична. Процесс программного опроса любого сенсора можно разложить на три обязательных параметра, которые должны быть определены обучающимся до написания кода:
‒ Порт (аппаратный интерфейс): определение точки физического подключения периферийного устройства к микроконтроллеру (например, Pin 2, PORT1, Port.S1).
‒ Режим (функциональное назначение): определение того, какую именно физическую величину или состояние в данный момент фиксирует датчик. Для простых датчиков этот параметр статичен (чтение состояния), для сложных (мультимодальных) – динамичен (определение цвета, измерение интенсивности света, измерение RGB-составляющих).
‒ Тип данных (программный интерфейс): понимание того, в каком формате данные поступят в программу для дальнейшей обработки (бинарное логическое значение, целое число, число с плавающей точкой, специфический объект класса).
На основе выявленных инвариантных параметров нами предложено отказаться от использования абстрактного параллелограмма «Получить данные» из классических стандартов составления блок-схем. Вместо него разработана система декомпозированных графических блоков (см. рисунок).
Разработанный графический примитив имеет составную архитектуру. В его верхней части прописывается категория сенсора, а внутреннее пространство разделено на строго регламентированные секции: «Аппаратный порт», «Функциональный режим» и «Тип переменной». Продемонстрируем практическое использование данной концепции:
‒ Датчик касания: в схеме четко прописывается интерфейс подключения (допустим, D2), в качестве неизменного режима устанавливается «нажатие», а формат данных задается как булевый (1/0 или True/False). Благодаря этому обучающийся интуитивно понимает, что полученное значение логичнее всего встраивать в конструкцию условного перехода (оператор if).
‒ Дальномер (датчик расстояния): визуальный элемент включает информацию о контактах (например, пара Trig/Echo для плат Arduino), настройку «измерение дистанции» и числовой формат переменной (вещественный или целочисленный). Обязательным условием является указание метрической системы (дюймы, миллиметры или сантиметры).
‒ Мультимодальный оптический датчик (цвета): именно здесь методика раскрывается в полной мере. В зависимости от поставленной алгоритмической цели один реальный физический компонент визуализируется в схеме совершенно разными конфигурациями.
Если робот движется по черной линии, в блоке задается режим «Отраженный свет», а тип данных указывается как числовой процент (0–100%). Если робот сортирует кубики, задается режим «Распознавание цвета», а тип данных определяется как специализированный идентификатор (Color.RED, Color.BLUE).
Декомпозиция команд управления датчиками
Обоснование методической эффективности декомпозиции команд управления датчиками
Теоретический анализ функциональных возможностей сред программирования позволяет выдвинуть гипотезу о высокой методической ценности предлагаемого подхода для школьного курса информатики и технологии. Методика позиционируется как промежуточное звено (scaffolding), обеспечивающее переход от наглядно-образного представления алгоритмов к абстрактно-логическому.
Во-первых, предлагаемый метод направлен на решение проблемы «черного ящика». При использовании стандартных графических блоков ученик часто оперирует абстракцией «Получить данные», не анализируя физическую природу сигнала. Декомпозиция команды на элементарные составляющие (порт, режим работы, тип данных) создает условия для формирования у обучающихся инженерного мышления и понимания аппаратно-программных связей.
Во-вторых, визуализация параметров в виде отдельных блоков на этапе проектирования может служить средством профилактики синтаксических ошибок. Предполагается, что, когда школьник переходит к написанию кода на C++ или Python, наличие детализированной схемы снизит когнитивную нагрузку, так как логическая структура команды уже сформирована. В-третьих, унификация подхода обеспечивает метапредметность. Независимо от платформы (Arduino, VEX, LEGO), принцип декомпозиции остается неизменным, что позволяет педагогу фокусироваться на фундаментальных принципах работы сенсорных систем, а не на особенностях конкретного конструктора.
Заключение / Conclusion
В ходе исследования была достигнута поставленная цель: разработан универсальный метод декомпозиции команд управления датчиками (касания, расстояния, цвета), инвариантный к образовательным робототехническим платформам. На основании сравнительного анализа сред разработки (Arduino IDE, VEXcode, LEGO Mindstorms EV3) были решены следующие задачи:
‒ Выявлены общие паттерны инициализации и опроса сенсоров, сводящиеся к определению порта, режима работы и формата возвращаемых данных.
‒ Разработаны унифицированные графические блоки, позволяющие визуализировать логику работы датчиков до этапа написания программного кода.
‒ Теоретически обоснована необходимость внедрения этапа детализированного блок-схемного моделирования для минимизации барьера при переходе от визуальных сред к текстовым языкам высокого уровня. Дальнейшим направлением исследования станет экспериментальная проверка эффективности методики в школьных условиях и автоматизация процесса генерации программного кода на основе разработанных схем.

Ignatiy I. Matsal