Вопрос, что включать в программу обучения, когда начинаешь проектировать курс, совсем нетривиальный. Тем более, если это курс по Интернету вещей. Сегодня мы хотим поделиться опытом, как мы разрабатывали учебную программу для IoT Академии Samsung, какие цели преследовали и что у нас получилось.
Нашей главной целью было помочь вузам поднять тематику Интернета вещей, причем в тех областях, где вузам это сложно сделать самостоятельно. По сути существущие проблемы в области Интернета вещей, начиная с неустоявшейся терминологии, нехватки общих стандартов и «зоопарка» оборудования, заканчивая отсутствием этой темы в учебных планах российских вузов, и стали основой для формулировки требований:
И вот что у нас получилось.
Мы ориентируемся на студента, который на входе обладает такими навыками:
Как видите, ничего сверхсложного нет, и мы рассчитываем, что к 3-4 курсу студент вполне успешно ими овладел.
И, конечно же, главное – у него должен быть интерес к тематике Интернета вещей.
Материал решили организовать в форме пяти учебных Кейсов. Каждый взят из реальной жизни. Многие кейсы родились благодаря Олегу Артамонову (olartamonov), который подсказал реальные сюжеты, основываясь на своем уникальном профессиональном опыте.
Важная черта наших Кейсов: мы предлагаем формулировки задач, приближенные к тому, как бы их мог поставить реальный заказчик. От задач идёт переход к заданиям, например:
Эти вопросы предлагается проработать при подготовке к занятию. В ходе общей дискуссии в классе, модерируемой преподавателем, студент приходит к пониманию преимуществ и недостатков различных вариантов решения.
Пробежимся кратко по Кейсам:
Для первого Кейса взяли такой сюжет: мониторинг температуры и влажности на фармацевтическом складе. Это вполне жизненная задача: инсулину нельзя замерзнуть, а лекарственным травам — отсыреть.
Мы решили с самого начала дать студентам возможность «пощупать» что-то новое для себя. И это новое, что предлагается в первом Кейсе, – технология беспроводной связи LoRa. Для тех, кто слышал только про BlueTooth и WiFi, это звучит как фантастика:
Но чудес не бывает, и в случае с LoRa мы получаем побочные эффекты, которые студенты чувствуют сразу же, как только начинают работать с оборудованием:
Из компонентов студенты получают микроконтроллерный модуль, приёмопередатчик LoRa и интегрированный датчик влажности, температуры и давления. Имеющаяся прошивка модуля на базе операционной системы реального времени RIOT OS достаточно развита, чтобы полностью абстрагироваться от того, что происходит на уровне микроконтроллера, и дать студенту сразу поработать с данными на высоком уровне – уровне написания прикладной программы.
Компоненты для первого Кейса: микроконтроллер + приёмопередатчик, адаптер, сенсор
В качестве учебной задачи здесь выступает система контроля и управления доступом. Проще говоря, мы делаем замок, который при считывании электронного ключа отправляет данные на сервер.
В рамках Кейса проводится практикум с широко используемым в Интернете вещей протоколом MQTT – через него идут сенсорные данные, управляющие воздействия и вся информация, связывающая между собой узлы системы.
Какие задачи помогает решить MQTT:
К сожалению, MQTT в университете обычно не изучают. А он интересен тем, что построен по модели «Издатель/Подписчик» и знакомит с событийной (event-driven) парадигмой, которую студенты могут увидеть разве что в программировании GUI.
Маленький бонус: на этой задаче можно подтянуть тех студентов, которые «плавают» в теме схемотехники. Ведь здесь от них потребуется включать реле и управлять RGB-лампочкой через транзистор.
Микроконтроллер с двумя модулями: транзисторами для управления RGB-ленточкой и кнопочным блоком
Всем известная задача для экономии электроэнергии: днём, когда солнце высоко, – свет приглушать, а когда вечером темнеет, – делать свет ярче.
Как вы могли догадаться, всё сводится к задаче автоматического регулирования. Вот пример графика: по оси Y – освещённость в люксах, по оси X – моменты времени. На графике виден момент, когда сменилась окружающая освещенность, и устройство начало подстраиваться под новое значение:
Здесь ещё упражнение для тех, кто хочет подтянуть схемотехнику. Студенты узнают, что такое ШИМ (широтно-импульсная модуляция) и как управлять яркостью светодиодной лампочки.
В процессе, кто не умеет – осваивает осциллограф
Каждое устройство в такой сети из лампочек и датчиков мы предлагаем соединять по протоколу 6LoWPAN – это ещё один новый протокол, который, в отличие от LoRa, работает быстро, имеет небольшую дальность связи, но зато умеет создавать ячеистую (mesh) сеть. Этот протокол очень подходит для сетей «Умного дома», где скорость отклика критична, а расстояние непринципиально.
Наконец, в этом Кейсе вводится ещё одно понятие – микрокомпьютер как центральный хаб системы Интернета вещей. Никто не станет ставить десктопный компьютер там, где компактнее и дешевле будет поставить микрокомпьютер с Linux. В нашем случае это компьютер Artik производства Samsung. К нему можно подключить модуль связи обсуждаемых протоколов LoRa или 6LoWPAN и далее использовать как сервер своей системы. Конечно, студентам понадобятся навыки работы в консоли Linux.
Прокачали компьютер Samsung Artik 10 – снабдили его LoRa-модулем (на фото белого цвета)
Сюжет Кейса – умное городское хозяйство. Представим себе систему, которая оптимизирует маршруты мусоровозов, чтобы не гонять их попусту. Здесь мы делаем лишь часть этой системы.
Кейс сводится к отслеживанию следующих параметров:
Карта перемещений симулированного устройства. В реальности вряд ли кто-то может с такой скоростью передвигаться по Подмосковью.
В этом Кейсе мы говорим о платформе Интернета вещей и облачном сервисе как одном из её компонентов. Платформа Интернета вещей ускоряет тестирование и внедрение решений.
Почему важны облачные технологии? Когда число устройств в сети начинает расти экспоненциально, расходы на содержание своих серверов вынуждают компании пользоваться облачными сервисами. Серверные мощности облака позволяют успешно использовать методы интеллектуального анализа данных. Поэтому в наших планах — добавить в Кейсы усложненные задания, связанные с использованием методов машинного обучения.
Мы предлагаем студентам поработать с платформой Samsung Artik Cloud. Об этом уже есть статья, поэтому не будем повторяться.
И, наконец, последний Кейс.
Сюжет, который рассматривается в Кейсе, – это теплица, и здесь достаточно подзадач: автоматический полив, суточные циклы освещения для растений, интерфейс пользователя, логгирование, построение графика.
Скрин графического интерфейса студентов Летней школы 2017
Базовый инструментарий уже освоен, делаем акцент на коллективной разработке. Устраиваем небольшую игру, в которой преподаватель играет роль заказчика, а студенты – роль коллектива небольшой компании-разработчика. «Заказчик» рассказывает свои пожелания к системе, а студенты должны грамотно составить техническое задание, выделить наиболее важные и срочные в реализации элементы функционала, распределить задачи между собой, выбрать внутри группы менеджера проекта.
Нам хотелось продемонстрировать студентам сложности в коммуникации разработчика и заказчика. Погрузить в ситуацию, когда заказчик не может объяснить, что он хочет, а разработчику необходимо вытащить требования к проекту.
Осенью 2017 года мы запустили нашу учебную программу в двух вузах – МФТИ и МИРЭА. Первую половину года студенты выполняли Кейсы, а сейчас приступили к индивидуальной работе над своими проектами.
Все материалы предоставляются в электронной системе обучения. Мы даже разработали бумажные рабочие тетради для подготовки к занятиям.
На учебный курс записались более 100 студентов. Статистика по итогам первого семестра – на рисунке. Мы оцениваем этот результат как хороший: курс был факультативным, но студенты посещали его, несмотря на загруженность по основной учебной программе.
Интересно, что среди тех, кто ушел с курса, ответы были диаметрально противоположные: говорили, что это чересчур сложно или слишком легко!
Похоже, мы угадали средний уровень подготовки студентов. Как правильно понизить уровень вхождения в программу мы пока не придумали, но для сильных ребят решили предложить вот что.
Изначально мы не включили в курс низкоуровневое программирование микроконтроллеров STM32 из учебного набора, посчитав, что студенты его не осилят в отведенное время. Мы ошиблись! Тема вызвала живейший интерес.
В итоге прямо в середине года Институт ИТ МИРЭА организовал допкурс от Олега Артамонова «Программирование современных микроконтроллеров». Олег свой курс выстраивает сверху вниз, то есть предлагает изучать тему через программирование для операционной системы реального времени RIOT OS. На наших ресурсах можно найти конспекты и видеозаписи его лекций.
А в МФТИ преподаватели и студенты своими силами начали вести свой курс на ту же тему. Причем наши молодые преподаватели МФТИ пошли гораздо дальше вниз по уровням абстракции: до работы с регистрами напрямую. Вот их группа Вконтакте и лекции на YouTube.
Обобщив их опыт, мы дополним наш основной курс IoT Академии для следующего учебного года. Ведь нет ничего приятнее, чем решить задачу на высоком уровне, а затем – на низком, и чувствовать свободный полет в мире абстракций.
(Null, Lobur – Essentials of Computer Organization and Architecture)
Как мы будем оценивать результаты программы? Конечно, прежде всего по итоговым индивидуальным проектам выпускников. Вначале пройдет защита проектов на уровне вуза, а затем устроим межвузовский конкурс.
А в сентябре 2018 года будем запускать обновлённый курс в уже 10 университетах по всей России:
Любопытно, что уже сейчас наш курс, отражая специфику конкретного вуза, приобретает отличительные черты. К примеру:
У IoT Академии Samsung впереди — интенсивный, но очень интересный учебный год.
Нашей главной целью было помочь вузам поднять тематику Интернета вещей, причем в тех областях, где вузам это сложно сделать самостоятельно. По сути существущие проблемы в области Интернета вещей, начиная с неустоявшейся терминологии, нехватки общих стандартов и «зоопарка» оборудования, заканчивая отсутствием этой темы в учебных планах российских вузов, и стали основой для формулировки требований:
- Содержание программы должно соответствовать потребностям современного рынка: изучение реальных кейсов IoT индустрии, принятых стандартов, промышленного оборудования, проектная работа и т.п.
- Программа должна иметь порог вхождения, достаточный для широкого круга студентов ИТ специальностей технических вузов, т.е. быть «ликбезом» по Интернету вещей.
- Программа должна привести к созданию в вузах IoT лабораторий, выполняя роль «воронки» для отбора студентов и преподавателей, которые найдут себя в огромном стеке технологий Интернета вещей.
И вот что у нас получилось.
Для кого этот курс?
Мы ориентируемся на студента, который на входе обладает такими навыками:
- Базовые практики программной инженерии: стиль программирования, контроль версий, опыт самостоятельной разработки учебных или личных проектов.
- Владение высокоуровневым языком программирования (Python, C++, Java).
- Знание основ Web-программирования, языка JavaScript.
- Умение работать в консоли Linux.
Как видите, ничего сверхсложного нет, и мы рассчитываем, что к 3-4 курсу студент вполне успешно ими овладел.
И, конечно же, главное – у него должен быть интерес к тематике Интернета вещей.
Кейсы
Материал решили организовать в форме пяти учебных Кейсов. Каждый взят из реальной жизни. Многие кейсы родились благодаря Олегу Артамонову (olartamonov), который подсказал реальные сюжеты, основываясь на своем уникальном профессиональном опыте.
Важная черта наших Кейсов: мы предлагаем формулировки задач, приближенные к тому, как бы их мог поставить реальный заказчик. От задач идёт переход к заданиям, например:
- Изучить номенклатуру существующих датчиков, выбрать из них подходящий по параметру цена-качество. Обратить внимание, чем дешевый отличается от дорогого, новый – от старого, а китайский – от датчика фирмы Bosch.
- Изучить существующие решения, отметить удачные и неудачные моменты. Мы подсказываем, где искать.
- Выбрать подходящую технологию связи: сколько роутеров придется поставить, если выберем WiFi? Сколько модулей надо будет купить, если выберем ZigBee? Какой охват получим с LoRa? И так далее.
- Посчитать экономическую эффективность решения. Оценить, во сколько оно обойдется в разных конфигурациях. Где всё это купить? Каковы сроки поставки?
Эти вопросы предлагается проработать при подготовке к занятию. В ходе общей дискуссии в классе, модерируемой преподавателем, студент приходит к пониманию преимуществ и недостатков различных вариантов решения.
Пробежимся кратко по Кейсам:
Кейс 1: Фармсклад и LoRa
Для первого Кейса взяли такой сюжет: мониторинг температуры и влажности на фармацевтическом складе. Это вполне жизненная задача: инсулину нельзя замерзнуть, а лекарственным травам — отсыреть.
Мы решили с самого начала дать студентам возможность «пощупать» что-то новое для себя. И это новое, что предлагается в первом Кейсе, – технология беспроводной связи LoRa. Для тех, кто слышал только про BlueTooth и WiFi, это звучит как фантастика:
- Расстояние передачи данных – несколько километров.
- Работа от одной батарейки – несколько лет.
- Размеры приёмопередатчика – миниатюрные.
- Никакой абонентской платы оператору: ставишь свою базовую станцию, и можно начинать работать.
Но чудес не бывает, и в случае с LoRa мы получаем побочные эффекты, которые студенты чувствуют сразу же, как только начинают работать с оборудованием:
- Очень низкая скорость передачи данных: вы успеете заскучать, пока доставится пакет.
- Очень маленькие объёмы данных: считанные байты.
Из компонентов студенты получают микроконтроллерный модуль, приёмопередатчик LoRa и интегрированный датчик влажности, температуры и давления. Имеющаяся прошивка модуля на базе операционной системы реального времени RIOT OS достаточно развита, чтобы полностью абстрагироваться от того, что происходит на уровне микроконтроллера, и дать студенту сразу поработать с данными на высоком уровне – уровне написания прикладной программы.
Компоненты для первого Кейса: микроконтроллер + приёмопередатчик, адаптер, сенсор
Кейс 2: Электронный замок и MQTT
В качестве учебной задачи здесь выступает система контроля и управления доступом. Проще говоря, мы делаем замок, который при считывании электронного ключа отправляет данные на сервер.
В рамках Кейса проводится практикум с широко используемым в Интернете вещей протоколом MQTT – через него идут сенсорные данные, управляющие воздействия и вся информация, связывающая между собой узлы системы.
Какие задачи помогает решить MQTT:
- Грамотно отделить данные от приложений: чтобы любой программист мог повторно использовать ваше устройство со своей программой
- Наладить коммуникацию на общем языке между разнородными устройствами различных производителей.
К сожалению, MQTT в университете обычно не изучают. А он интересен тем, что построен по модели «Издатель/Подписчик» и знакомит с событийной (event-driven) парадигмой, которую студенты могут увидеть разве что в программировании GUI.
Маленький бонус: на этой задаче можно подтянуть тех студентов, которые «плавают» в теме схемотехники. Ведь здесь от них потребуется включать реле и управлять RGB-лампочкой через транзистор.
Микроконтроллер с двумя модулями: транзисторами для управления RGB-ленточкой и кнопочным блоком
Кейс 3. Адаптивное освещение и 6LoWPAN
Всем известная задача для экономии электроэнергии: днём, когда солнце высоко, – свет приглушать, а когда вечером темнеет, – делать свет ярче.
Как вы могли догадаться, всё сводится к задаче автоматического регулирования. Вот пример графика: по оси Y – освещённость в люксах, по оси X – моменты времени. На графике виден момент, когда сменилась окружающая освещенность, и устройство начало подстраиваться под новое значение:
Здесь ещё упражнение для тех, кто хочет подтянуть схемотехнику. Студенты узнают, что такое ШИМ (широтно-импульсная модуляция) и как управлять яркостью светодиодной лампочки.
В процессе, кто не умеет – осваивает осциллограф
Каждое устройство в такой сети из лампочек и датчиков мы предлагаем соединять по протоколу 6LoWPAN – это ещё один новый протокол, который, в отличие от LoRa, работает быстро, имеет небольшую дальность связи, но зато умеет создавать ячеистую (mesh) сеть. Этот протокол очень подходит для сетей «Умного дома», где скорость отклика критична, а расстояние непринципиально.
Наконец, в этом Кейсе вводится ещё одно понятие – микрокомпьютер как центральный хаб системы Интернета вещей. Никто не станет ставить десктопный компьютер там, где компактнее и дешевле будет поставить микрокомпьютер с Linux. В нашем случае это компьютер Artik производства Samsung. К нему можно подключить модуль связи обсуждаемых протоколов LoRa или 6LoWPAN и далее использовать как сервер своей системы. Конечно, студентам понадобятся навыки работы в консоли Linux.
Прокачали компьютер Samsung Artik 10 – снабдили его LoRa-модулем (на фото белого цвета)
Кейс 4: Мусорный контейнер и Облако
Сюжет Кейса – умное городское хозяйство. Представим себе систему, которая оптимизирует маршруты мусоровозов, чтобы не гонять их попусту. Здесь мы делаем лишь часть этой системы.
Кейс сводится к отслеживанию следующих параметров:
- Заполненность мусорного контейнера — при помощи ультразвукового дальномера
- Наличие пожара — при помощи датчика температуры
- Местоположение – при помощи GPS-датчика.
Карта перемещений симулированного устройства. В реальности вряд ли кто-то может с такой скоростью передвигаться по Подмосковью.
В этом Кейсе мы говорим о платформе Интернета вещей и облачном сервисе как одном из её компонентов. Платформа Интернета вещей ускоряет тестирование и внедрение решений.
Почему важны облачные технологии? Когда число устройств в сети начинает расти экспоненциально, расходы на содержание своих серверов вынуждают компании пользоваться облачными сервисами. Серверные мощности облака позволяют успешно использовать методы интеллектуального анализа данных. Поэтому в наших планах — добавить в Кейсы усложненные задания, связанные с использованием методов машинного обучения.
Мы предлагаем студентам поработать с платформой Samsung Artik Cloud. Об этом уже есть статья, поэтому не будем повторяться.
Кейс 5: Теплица и коллективная разработка
И, наконец, последний Кейс.
Сюжет, который рассматривается в Кейсе, – это теплица, и здесь достаточно подзадач: автоматический полив, суточные циклы освещения для растений, интерфейс пользователя, логгирование, построение графика.
Скрин графического интерфейса студентов Летней школы 2017
Базовый инструментарий уже освоен, делаем акцент на коллективной разработке. Устраиваем небольшую игру, в которой преподаватель играет роль заказчика, а студенты – роль коллектива небольшой компании-разработчика. «Заказчик» рассказывает свои пожелания к системе, а студенты должны грамотно составить техническое задание, выделить наиболее важные и срочные в реализации элементы функционала, распределить задачи между собой, выбрать внутри группы менеджера проекта.
Нам хотелось продемонстрировать студентам сложности в коммуникации разработчика и заказчика. Погрузить в ситуацию, когда заказчик не может объяснить, что он хочет, а разработчику необходимо вытащить требования к проекту.
Как проходит курс
Осенью 2017 года мы запустили нашу учебную программу в двух вузах – МФТИ и МИРЭА. Первую половину года студенты выполняли Кейсы, а сейчас приступили к индивидуальной работе над своими проектами.
Все материалы предоставляются в электронной системе обучения. Мы даже разработали бумажные рабочие тетради для подготовки к занятиям.
На учебный курс записались более 100 студентов. Статистика по итогам первого семестра – на рисунке. Мы оцениваем этот результат как хороший: курс был факультативным, но студенты посещали его, несмотря на загруженность по основной учебной программе.
Интересно, что среди тех, кто ушел с курса, ответы были диаметрально противоположные: говорили, что это чересчур сложно или слишком легко!
Похоже, мы угадали средний уровень подготовки студентов. Как правильно понизить уровень вхождения в программу мы пока не придумали, но для сильных ребят решили предложить вот что.
Ближе к «железу»
Изначально мы не включили в курс низкоуровневое программирование микроконтроллеров STM32 из учебного набора, посчитав, что студенты его не осилят в отведенное время. Мы ошиблись! Тема вызвала живейший интерес.
В итоге прямо в середине года Институт ИТ МИРЭА организовал допкурс от Олега Артамонова «Программирование современных микроконтроллеров». Олег свой курс выстраивает сверху вниз, то есть предлагает изучать тему через программирование для операционной системы реального времени RIOT OS. На наших ресурсах можно найти конспекты и видеозаписи его лекций.
А в МФТИ преподаватели и студенты своими силами начали вести свой курс на ту же тему. Причем наши молодые преподаватели МФТИ пошли гораздо дальше вниз по уровням абстракции: до работы с регистрами напрямую. Вот их группа Вконтакте и лекции на YouTube.
Обобщив их опыт, мы дополним наш основной курс IoT Академии для следующего учебного года. Ведь нет ничего приятнее, чем решить задачу на высоком уровне, а затем – на низком, и чувствовать свободный полет в мире абстракций.
(Null, Lobur – Essentials of Computer Organization and Architecture)
Что дальше?
Как мы будем оценивать результаты программы? Конечно, прежде всего по итоговым индивидуальным проектам выпускников. Вначале пройдет защита проектов на уровне вуза, а затем устроим межвузовский конкурс.
А в сентябре 2018 года будем запускать обновлённый курс в уже 10 университетах по всей России:
- МФТИ (Москва)
- МИРЭА (Москва)
- ВШЭ (Москва)
- СПбГУ (Санкт-Петербург)
- НГТУ (Новосибирск)
- УрФУ (Екатеринбург)
- КФУ (Казань)
- ЮУрГУ (Челябинск)
- ТУСУР (Томск)
- СВФУ (Якутск)
Любопытно, что уже сейчас наш курс, отражая специфику конкретного вуза, приобретает отличительные черты. К примеру:
- ТУСУР (Томск) в качестве базового направления IoT-лаборатории выбрал информационную безопасность – ждём интересных научных и прикладных работ по этому важнейшему направлению Интернета вещей!
- В ЮурГУ (Челябинск) решили, что курс будет предложен в качестве базового сразу нескольким факультетам — в общей сложности более 500 студентам (!)
- В УРФУ (Екатеринбург) большое значение придают междисциплинарности. В команде преподавателей: математик, инженер-схемотехник, программист, экономист, радиоинженер, специалист по безопасности и специалист по машинному зрению!
У IoT Академии Samsung впереди — интенсивный, но очень интересный учебный год.
Комментарии (9)
Skyroger2
13.04.2018 22:12А под интернетом вещей понимается LoRa и всё, что оттуда растёт, или также NB-IoT и Cat-M?
olartamonov
14.04.2018 10:34В курсе под этим понимаются современные беспроводные системы передачи данных для низкопотребляющих устройств.
Что используется в качестве такой системы — вопрос глубоко вторичный. Хоть Weightless.
rustavelli
14.04.2018 00:46Lora в 5 раз дороже esp, вот что звучит как фантастика для студента. А если еще учесть, что этих датчиков надо десятками напихать…
vvzvlad
14.04.2018 03:04«Нож в три раза дороже вилки».
Толку-то с ESP, если там, где он стоит, сотовой сети-то нет, не то, что WiFi.
Mogwaika
А вот этот LoRa модуль который выдали, он тоже от батарейки работать должен?
olartamonov
Может. А должен или нет — зависит от конкретной задачи.
Mogwaika
В смысле этому тоже учить будете или оно легко получится на тестовых примерах силами ОС?
olartamonov
В ОС на готовой прошивке это просто выбор режима работы одной командой по радио или из консоли — класс А (спящее устройство) или класс С (бодрствующее устройство).
В ОС в своём приложении это в принципе тоже несложно, достаточно разрешить контроллеру засыпать (установив соответствующую глобальную переменную) и далее достаточно понимать, от каких событий он умеет просыпаться.
На курсе по микроконтроллерам одно занятие вопросам энергосбережения посвящено будет, через неделю (завтра у нас работа с аналоговыми сигналами), там рассмотрим уже вопросы про рабочие частоты контроллера, режимы сна, управление периферией и т.п.