Pull to refresh

Опыт создания курса «Введение в системы сбора данных» в МФТИ

Reading time7 min
Views3.6K

В МФТИ есть как факультеты, которые готовят сильных программистов, так и факультеты, выпускающие крутых специалистов в области физики, биологии и химии. Однако в сфере физических исследований также не обойтись без навыков программирования. В частности, все масштабные физические эксперименты автоматизированы. 

Из-за того, что программы обучения (а, следовательно, и компетенции) физиков и программистов сильно отличаются, при их совместной работе над экспериментами нередко возникают трудности. Мы в лаборатории методов ядерно-физических экспериментов ставим своей целью подготовку специалистов, которые могут и разобраться в физике процессов, и написать необходимое программное обеспечение. Для этого в прошлом году мы запустили магистерскую программу, а в этом еще один проект, направленный на знакомство физиков с программированием. О нем я и расскажу в этой статье.

Меня зовут Татьяна Мухина. Я учусь в магистратуре МФТИ и по совместительству являюсь одним из авторов и преподавателем курса «Введение в системы сбора данных».

На первых курсах в МФТИ даже на физических факультетах, конечно, преподается программирование. В зависимости от направления студенты изучают Python, С или C++. Обычно эти курсы направлены на знакомство с основами языка или численными методами, а вот реализацию систем сбора данных студентам не рассказывают. 

Тем не менее даже на первых курсах студенты могут сталкиваться с задачами, в которых им пригодился бы этот навык. Например, на экзаменах по общей физике учащиеся не только должны ответить на выпавший им билет, но и рассказать заранее подготовленный вопрос по выбору. Это может быть как теоретический материал, выходящий за рамки изучаемого курса, так и результаты исследования, которое они провели с использованием собственной экспериментальной установки – а для этого могут потребоваться автоматизированные системы сбора данных. 

Именно поэтому у нас возникла необходимость создать ознакомительный курс по системам сбора данных, который позволил бы за один семестр познакомить физиков с работой таких систем. В качестве языка программирования для курса мы выбрали среду разработки LabVIEW. Она хорошо показывает себя в управлении системами сбора и обработки данных в учебных целях или в небольших экспериментах, так как ее проще освоить, чем классические языки программирования. Также для большинства устройств и датчиков уже есть готовые драйверы для работы в LabVIEW.

Курс реализуется как факультативный: на него могут записаться все желающие по согласованию с преподавателем, но мы рекомендуем его студентам 2-3 курса физических факультетов. Пробный запуск курса проводился в формате интенсива и был рассчитан на 4 занятия по 4 академических часа. В дальнейшем курс будет расширен до полноценной семестровой дисциплины (15 пар).

Цели и задачи курса

У курса две цели: 

  • Знакомство студентов с особенностями современных систем сбора данных.

  • Получение ими практических навыков создания таких систем на примере программно-аппаратного комплекса LabVIEW на базе инженерного лабораторного комплекса NI Educational Laboratory Virtual Instrumentation Suite (NI ELVIS) III.

Задачи курса:

  • Изучение теории передачи и записи аналоговых и цифровых сигналов, протоколов  различного уровня.

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

  • Изучение системы LabVIEW для сбора данных и управление небольшими экспериментами.

Об ELVIS III

В качестве устройства сбора данных мы использовали инженерный лабораторный комплекс NI Educational Laboratory Virtual Instrumentation Suite (NI ELVIS) III. Он сочетает в себе необходимое контрольно-измерительное оборудование (АЦП, ЦАП, осциллограф и генератор сигнала) и встроенную макетную плату для сборки электрических схем.

NI ELVIS III
NI ELVIS III

К недостаткам можно отнести необходимость скачивания (и покупки) дополнительного программного пакета LabVIEW ELVIS III, а также некоторые проблемы взаимодействия с комплексом, которые опишем дальше.

Контрольно-измерительное оборудование NI ELVIS III
Контрольно-измерительное оборудование NI ELVIS III

Программа курса

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

  1. нужно предусматривать больше задач для самостоятельной работы студентов, при необходимости после разбирать их в группе;

  2. в сложных задачах можно давать последовательный алгоритм работы программы, а не готовую инструкцию по ее написанию;

  3. необходимо включать больше прикладных задач.

Программа курса для пробного запуска выглядела следующим образом: 

  • Введение в графическую среду разработки LabVIEW.

  • Использование визуального языка LabVIEW для работы с инженерным лабораторным комплексом NI Educational Laboratory Virtual Instrumentation Suite (NI ELVIS) III.

  • Сборка и настройка схемы трехразрядного аналого-цифрового преобразователя.

  • Настройка цифрового двухканального осциллографа на базе NI ELVIS III.

Каждый пункт соответствовал одному занятию протяженностью 4 академических часа (2 пары).

Введение в графическую среду разработки LabVIEW

В этом разделе мы предлагали студентам за две пары познакомиться со средой разработки LabVIEW. Занятия начинались с обсуждений основных принципы работы в среде. Для знакомства с базовым синтаксисом языка мы давали студентам простые задачки, а чтобы решать их было интереснее, задачи постарались сделать более прикладными. Например, студентам было предложено поэтапно создать конвертер энергии из одних единиц измерения в другие: 

  1. Написать программу, которая переводит введенное в джоулях значение энергии в электронвольты и в килокалории.

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

  3. Реализовать конвертер введенного в джоулях значения энергии в электронвольты, если кнопка нажата, и в килокалории, если кнопка отпущена.

  4. Используя структуру Case и контроллер Enum, создать конвертер энергетических единиц измерения: в числовой контроллер вводится значение энергии и контроллером типа Enum выбирается единица измерения из предложенных, далее из аналогичного списка выбирается единица измерения, в которую необходимо перевести величину, после нажатия кнопки “Перевести” в индикаторе появляется необходимое значение энергии в требуемой единице измерения.

Конвертер энергии
Конвертер энергии

В еще одном блоке задач нужно было написать программу для вычисления оценки по матанализу исходя из баллов за работу в семестре и оценки за экзамен – в МФТИ это определяется по достаточно сложной системе. Заключительная задача была выбрана так, чтобы объединить в себе уже полученные знания. Студентам предлагалось смоделировать полет снаряда, который бросили под углом к горизонту, при выборе различного характера силы трения (сухое или вязкое).

Моделирование полета снаряда, брошенного под углом к горизонту
Моделирование полета снаряда, брошенного под углом к горизонту

Использование LabVIEW для работы с NI ELVIS III 

На этом занятии студенты должны были узнать возможности комплекса NI ELVIS III, а также научиться взаимодействовать с ним посредством LabVIEW. Взаимодействие с NI ELVIS III происходит по стандартной схеме: открытие канала, при необходимости конфигурация взаимодействия, само взаимодействие и закрытие канала.

Схема взаимодействия с NI ELVIS III (АЦП)
Схема взаимодействия с NI ELVIS III (АЦП)

Сборка и настройка схемы трехразрядного аналого-цифрового преобразователя 

Задачи этого блока курса – за две пары собрать схему трехразрядного АЦП, написать программу, которая анализирует приходящий сигнал и обрабатывает его, выводя двоичный код отклика и полученное значение напряжения. После этого студенты должны сравнить работу готового трехразрядного АЦП и встроенного АЦП NI ELVIS III.

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

  1. программа управляет аналоговым выходом, с которого подается напряжение на вход схемы АЦП;

  2. в цикле программа считывает значения напряжения с цифровых входов, к которым подключены 7 выходов АЦП;

  3. из полученных значений формируется двоичное трехразрядное представление входного напряжения;

  4. программа преобразовывает его в значение напряжения входного сигнала и в реальном времени выводит на график;

  5. для сравнения с работой встроенного в NI ELVIS III АЦП на тот же график программа выводит значение напряжения с аналогового входа NI ELVIS III, на который подается входной сигнал;

  6. программа завершает свою работу по кнопке «Stop».

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

Схема трехразрядного АЦП
Схема трехразрядного АЦП

Настройка цифрового двухканального осциллографа на базе NI ELVIS III

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

Лицевая панель программы для работы осциллографа
Лицевая панель программы для работы осциллографа

Выявленные недостатки и дальнейшие планы по доработке

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

Во-первых, чтобы работать с ELVIS III, необходимо устанавливать дополнительное ПО, доступное только для Windows. Так как студенты работают на собственных ноутбуках (часто на macOS или Linux), это добавляет проблем к установке программного пакета. Поэтому для небольших вводных задач мы решили выбрать другое, более простое устройство для сбора данных. 

Во-вторых, уже на первом занятии мы поняли, что выделили недостаточно часов для освоения LabVIEW. Это привело к тому, что при выполнении более сложных задач студенты все еще сталкивались с проблемами уровня простого синтаксиса. Чтобы исправить эту ситуацию, мы решили на следующих запусках курса в два раза увеличить количество часов, выделяемых на изучение LabVIEW.

Также мы заметили, что студентам было трудно писать алгоритм работы АЦП на первых этапах изучения ELVIS III – до этого они не сталкивались с устройствами сбора данных. Поэтому мы решили добавить занятие с совсем простыми задачами. Например, измерить напряжение с помощью АЦП, затем написать программу и собрать схему для измерения сопротивления элемента цепи, а позже использовать эту схему для определения температуры воздуха в комнате с помощью терморезистора.

И последняя проблема: изначально мы планировали проводить занятия один раз в неделю по 4 академических (или 3 астрономических) часа. Такой формат оказался очень интенсивным: студентам было тяжело усваивать и сразу применять полученную информацию.

В целом пробный запуск показал нам, что развитие курса и его масштабирование на большее число студентов имеет смысл. Сейчас мы находимся на этапе доработки методических материалов и планируем второй запуск уже в весеннем семестре. Будем рады, если наш опыт создания и анализа курса по системам сбора данных будет вам полезен!

Tags:
Hubs:
Total votes 8: ↑7 and ↓1+6
Comments17

Articles

Information

Website
www.jetbrains.com
Registered
Founded
Employees
501–1,000 employees
Location
Россия