Профиль «Цифровые сенсорные системы» посвящён получению, обработке и передаче информации, полученной с помощью сенсоров в цифровых системах. Основой профиля являются технология Интернет вещей и технология Цифровой обработки сигналов. Современный мир наполнен умными цифровыми устройствами и понимание их работы как никогда важно для успешной карьеры в области электроники.
Интернет вещей (internet of things, IoT) — концепция сети передачи данных между физическими объектами («вещами») для взаимодействия друг с другом или с внешней средой. Классический пример интернета вещей — умный дом, в котором можно управлять устройствами удаленно, а сами устройства могут взаимодействовать друг с другом. Например, умная колонка по голосовой команде включает свет, датчик передает данные о температуре в систему отопления, розетка отключается, если вы забыли выключить утюг. В любой такой системы необходимо получать, обрабатывать и передавать информацию. И тут на помощь приходят технологии цифровой обработки сигналов.
Цифровая обработка сигналов (ЦОС, DSP — digital signal processing) — способы обработки сигналов на основе численных методов с использованием цифровой вычислительной техники. Сигналы полученные от сенсоров (датчиков) необходимо получить, обработать и передать используя вычислительные средства такие как микроконтроллеры (Arduino, ESP) и микрокомпьютеры (Raspberry Pi).
Участники профиля познакомятся с основными цифровыми сенсорами, научатся получать и обрабатывать информацию, а также создавать собственные цифровые сенсорные системы на примере реальных задач по обработке и передаче звука.
На этом этапе участникам предстоит решать задачи по информатике и физике.
Участникам будут даны задачи по следующим темам:
В рамках прохождения второго этапа участники будут выполнять задания, которые являются подготовительными к финалу или составными частями задания финала.
Книги
А. В. Белов. Программирование микроконтроллеров для начинающих и не только
В.А. Петин. Arduino и Raspberry Pi в проектах Internet of Things
Шварц М. . Интернет вещей с ESP8266
Создание системы стенографирования (беспроводного преобразователя речи в текст). Используется микроконтроллер (ESP-32) с микрофоном для регистрации речи собеседников, которая после обработки будет передана на сервер (запущенный на микрокомпьютере Raspberry Pi) для распознавания голоса в текст. Передача данных между микроконтроллером и сервером происходит посредством транспортного протокола UDP/IP по Wi-Fi-соединению. Критерием оценивания в первую очередь является точность распознанных слов, в случае равенства результатов оценивается скорость работы итоговой системы и энергоэффективность.
В финале участникам придется создать собственное устройство, соединив знания из разных областей. Это уникальный шанс не только поучаствовать в олимпиаде и победить, но и получить новые знания и компетенции в работе над реальной практической задачей.
Цифровые Сенсорные Системы, IoT устройства — все они в большинстве своём используют микроконтроллеры, поскольку они дёшевы, компактны и энергоэффективны. Если говорить об IoT, среди всех микроконтроллеров главным образом выделяются ESP-32/ESP-8266. Большинство умных лампочек, чайников, светодиодных лент и прочих “умных” вещей используют один из этих микроконтроллеров, в основном благодаря наличию у них интерфейсов Wi-Fi/Bluetooth. С помощью данных микроконтроллеров можно реализовать решения большого числа задач, например, сделать беспроводной сенсор веса для кровати, который будет встроен в умный дом.
Любые данные от сенсора зачастую надо куда-то передать, и чаще всего это происходит по сети, будь то локальная или глобальная сеть. Структура передаваемых данных весьма проста, поэтому проще всего их отправить посредством стека TCP/IP. Для потоковых можно использоваться UDP. Для самостоятельного изучения подойдет книга “TCP/IP Sockets in C: Practical Guide for Programmers”. Несмотря на то, что все примеры в этой книге написаны на языке Си, сами темы, которые там затрагиваются, а именно: устройство сети, IP-адреса, сокеты, клиент и сервер, могут использоваться в любом языке и на любой платформе: клиент, написанный на стандартной библиотеке чистого Си, запущенный на микроконтроллере может подключаться к серверу, написанному на языке Rust и запущенному на макбуке.
Информатика:
Информация и информационные процессы
Устройство микроконтроллеров
Язык программирования C/С++, Python
Кодирование информации
Логические основы компьютеров
Компьютерная арифметика
Устройство компьютера
Алгоритмизация и программирование
Математика:
Алгебраические уравнения и системы нелинейных уравнений
Элементы комбинаторики
Математические функции
Основы синтаксиса языков: Python/C/C++
Программирование микроконтроллеров
Сетевые технологии (в финальном задании должен быть реализован обмен данными между устройствами по сети)
Цифровая обработка сигналов
Для участия на втором и заключительном этапах вам понадобится команда из 2−3 человек.
Состав команды:
Роль 1. Лидер — данный участник, после обсуждения с командой выделит ключевые этапы решения задачи, которые будут разделены между участниками и будет контролировать процесс их выполнения.
Роль 2. Исполнитель — роль каждого участника команды, занятого непосредственно написанием кода для отдельных элементов системы.
Роль 3. Интегратор — участник, который отвечает за сведение всех частей, написанных другими участниками в единый работающий механизм. Для удобства работы, интегратор должен сообщить какой функциональный интерфейс должны предоставить остальные участники, чтобы их код можно было соединить между собой.
Роль 4. Алгоритмист — в задании будет необходимо произвести работу с входным сигналом перед дальнейшей её передачей. От участника будет необходимо разработать алгоритм этой работы, который Исполнитель будет реализовывать в виде программного кода.
Некоторые роли могут выполняться несколькими людьми, равно как и один человек может выполнять несколько ролей. Например, в команде может быть несколько Исполнителей, а Лидер может взять на себя роль Интегратора, наблюдая за общей картиной происходящего. Для более качественного распределения ролей лучше выписать сильные стороны каждого участника и выберете что нравится каждому из них и после этого уже распределите зоны ответственности и обязанности.