Создание носимого монитора сердечного ритма

Носимые устройства являются полезными инструментами, добавляющими удобства в нашу повседневную жизнь. Проектирование носимых устройств требует добавления периферии для восприятия, отображения, хранения и извлечения данных. Pegasus Rapid Development Platform облегчила разработку, интегрировав основные периферийные устройства в отладочную плату и в простой в использовании референс-дизайн монитора частоты сердечных сокращений MAXREFDES117#
1359
В избранное

За последние несколько лет носимые устройства, благодаря удобству их использования и изобилию информации, которую они могут предоставить пользователю, привели к буму на ряде рынков. Трекеры физической активности, такие как Gear Fit2 от Samsung, медицинские приборы, подобные манжете для измерения артериального давления Qardio®Arm, и даже кроссовки UA SpeedForm® Gemini 3 Record-Equipped от компании Under Armor, которые способны совместно со специальным приложением собирать такие данные о вашей пробежке, как затраченное на нее время, расстояние, темп, маршрут  и т. д. Эти устройства могут обеспечить пользователей такой информацией, как максимальный объем кислорода на килограмм веса VO2, который вы можете усвоить при максимальной физической нагрузке, уровень активности, качество сна и, среди прочих данных, темп прогулки, бега и т. д.

При проектировании носимых устройств следует учитывать, что для восприятия и отображения различных типов данных, а также для сохранения и извлечения их из облака необходимо наличие периферии. В представленном здесь проекте используется отладочная платформа  Pegasus Rapid Development Platform от  Maxim Integrated™ (Maxim), что облегчает разработку, интегрируя ключевую периферию в отладочную плату вместе с референс-дизайном MAXREFDES117# монитора сердечного ритма от компании Maxim. Завершают набор наших средств и технологий проектирования операционная система Mbed для облачного программирования, облачные сервисы Ubidots и среда разработки Android Studio.

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

Материалы и ресурсы проекта

До старта этого проекта мы рекомендуем собрать следующие материалы и ресурсы:

BOM (Bill of Materials) проекта

Доступ к Спецификации (BOM) на сайте mouser.com, а также доступные комплектующие  на сайте компании Терраэлектроника:

  • Отладочная платформа от компании Maxim MAX32630FTHR#  на основе ARM Cortex-M4F микроконтроллера MAX32630 в сочетании с микросхемой управления зарядом батареи (PMIC) MAX14690.
  • Монитор сердечного ритма MAXREFDES117# с датчиком сердечного ритма/пульсоксиметра, понижающим DC-DC преобразователем и транслятором логического уровня.

Код проекта: 

Аппаратное обеспечение (Hardware):

Паяльник, флюс, макетная плата, штыревые разъемы, провода для коммутаций (джамперы), а также опционально устройства периферийного расширения, осциллограф и цифровой мультиметр.

Аккаунты и программное обеспечение:

  • Аккаунт Ubidots Cloud service
  • Аккаунт Mbed.org
  • Программное обеспечение Android Studio

Обзор Технологии Проекта 

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

Отладочная платформа Maxim MAX32630FTHR Pegasus

В основе проекта новая отладочная платформа MAX32630FTHR Pegasus (Рис. 1) на основе ARM Cortex-M4F микроконтроллера MAX32630 и микросхемы управления зарядом аккумулятора PMIC MAX14690. Платформа поможет инженерам ускорить процесс прототипирования. Многофункциональная плата MAX32630FTHR# имеет ряд таких интегрированных периферийных устройств, как акселерометр/ гироскоп, двухрежимный Bluetooth, а также предоставляет пользователю доступ к интерфейсам SPI, I2C, UART,  GPIO  и ряду других.  
Небольшой форм-фактор MAX32630FTHR совместим с несколькими готовыми платами расширения, а также со стандартными макетными платами и  предоставляет пользователю широкий спектр  возможностей.

Отладочная платформа MAX32630FTHR# Pegasus на основе ARM Cortex-M4F микроконтроллера и микросхемы управления питанием PMICРис. 1. Отладочная платформа MAX32630FTHR# Pegasus на основе ARM Cortex-M4F микроконтроллера и микросхемы управления питанием PMIC

Референс-дизайн модуля сердечного ритма Maxim  MAXREFDES117#

Референс-дизайн популярного модуля сердечного ритма MAXREFDES117# (Рис. 2) от компании Maxim – это крошечная плата, оснащенная датчиком сердечного ритма/ пульсоксиметром MAX30102, понижающим DC-DC преобразователем MAX1921 и транслятором логических уровней MAX14595. Этот универсальный дизайн может использоваться как с Arduino, так и c Mbed платформами. Пример прошивки (firmware) доступен для обеих платформ и обеспечивает пользователя базовым алгоритмом для определения пульса и уровня сатурации крови (насыщения кислородом гемоглобина) SpO2.

Референс-дизайн популярного модуля сердечного ритма MAXREFDES117#Рис. 2. Референс-дизайн популярного модуля сердечного ритма MAXREFDES117# – крошечный, но, вместе с тем, оснащенный датчиком сердечного ритма/ пульсоксиметром MAX30102, понижающим DC-DC преобразователем MAX1921 и транслятором логических уровней MAX14595.

Mbed OS для облачного программирования

Mbed OS - это удобный облачный инструмент для программирования, позволяющий упростить и ускорить создание платформ интернета вещей (IoT). Mbed предоставляет инструменты, которые помогают разработчикам сотрудничать и вносить свой вклад в проект, а также публиковать программное обеспечение, тем самым помогая сохранять детальную историю его изменений. Начать с Mbed так же просто, как создать учетную запись, найти и выбрать оборудование, которое вы хотите использовать. Если у вас уже есть актуальная учетная запись, вы можете для начала перейти в репозиторий Mbed и импортировать исходный код в ваш компилятор.

Ubidots для облачного обслуживания

 

Ubidots предлагает отличную стартовую площадку для всех желающих начать работать с  IoT и облачными проектами. В дополнение к имеющимся учебникам, доступным для нескольких отладочных платформ, Ubidots предлагает учебные материалы по созданию интерфейса между своим сервисом и приложениями для Android, созданными в Android StudioКредитная система предоставляет простой и удобный алгоритм для разработки и поддержки ваших проектов, и, кроме того, предлагает несколько методов для получения большего количества кредитов в случае такой необходимости.

Android Studio для взаимодействия с облаком

Для передачи данных от вашей платы Maxim и сенсора в облако вам понадобится интерфейс.  Реализовать его можно с помощью мобильного устройства, например, планшета или сотового телефона. Для этого проекта мы остались в рамках платформы Android и использовали Android Studio для разработки приложения  визуализации данных, полученных от нашего датчика.

Разработка монитора сердечного ритма

Работая с Mbed

Если у вас уже есть учетная запись Mbed, используйте HRM Mbed repository и импортируйте предоставленный код в компилятор.

Для начинающих пользователей:

  1. Перейдите к Mbed.org
  2. Кликните ссылку Mbed OS, которая приведет вас на сайт разработчика
  3. Кликните “Log in/Sign up” и укажите необходимую информацию

После регистрации вы можете либо начать новый проект, выбрав выделенную ссылку  “Compiler”, либо получить доступ к репозиторию HRM Mbed repository и импортировать код в компилятор. Вы можете выбрать, просмотреть, добавить или изменить платформы внутри экрана компилятора, кликнув на ссылку в правом верхнем углу. Кроме того, здесь вы найдете еще несколько продуктов от Maxim с примерами программного обеспечения с поддержкой через Mbed.

Подключение платы и референс-дизайна

Для подключения MAX32630FTHR и MAXREFDES117 требуется всего несколько соединений, которые для упрощения можно сделать с использованием макетной платы. Выполните следующие шаги:

  1. Соедините SCL и SDA линии от датчика частоты сердечных сокращений с P3_5 и P3_4 MAX32630FTHR и INT устройства частоты сердечных сокращений с P3_0 (Рис. 3).
  2. Напряжение VIN для датчика частоты сердечных сокращений должно находиться в пределах от 2,5 до 5,5 В, но автор статьи рекомендует подать питание от 3.3 В или SYS, связанных с батареей, т. к. он столкнулся с рядом проблем при попытке использовать 5В.
  3. Подключите вывод земли

Карта выводов Maxim MAX32630FTHR#

Рис. 3. Карта выводов Maxim MAX32630FTHR#

Программирование платы

Запрограммировать плату так же просто, как перетащить файл из одной папки в другую. MAX32630FTHR поставляется с отладочным интерфейсом, используемым для загрузки вашего кода в целевое устройство.

Чтобы начать:

  1. Подключите 10-контактный разъем (имеет ключ) интерфейсной платы к MAX32630FTHR. Обратите особое внимание на расположение контакта 1.
  2. Подключите разъем micro USB с надписью HDK (на интерфейсной плате) к порту USB вашего ПК, который должен автоматически начать инсталляцию драйверов. В зависимости от варианта полученного вами DAPLINK, может быть доступно несколько соединений или только одно (Рис. 4 или Рис. 5). После завершения установки драйверов в проводнике появится новый диск с надписью DAPLINK.
  3. Обеспечьте питанием плату MAX32630FTHR либо через micro USB разъем, либо через разъем JST батареи.

DAPLINK с несколькими входами

Рис. 4. DAPLINK с несколькими входами

 Рис. 5. DAPLINK с одним входом

Рис. 5. DAPLINK с одним входом

После того, как вы установили соединения и подключились к плате, вам нужно будет скомпилировать код для создания  bin-файла, необходимого для программирования MAX32630FTHR.

Из панели инструментов экрана компилятора Mbed:

  1. Кликните «Compile» или, используя выпадающее меню, выберите вариант, который хотите применить. Через несколько мгновений программа добавит файл в папку загрузок с меткой bin.
  2. Находим этот bin-файл в папке «Downloads».
  3. Откройте новое окно проводника, в котором теперь будет отображаться новый, доступный диск DAPLINK. Это ваша интерфейсная плата.
  4. Чтобы начать программирование платы, перетащите или скопируйте вновь созданный файл *.bin из его места загрузки в папку DAPLINK. 

    Светодиоды платы DAPLINK должны быстро мигать во время программирования. Как только программирование будет завершено, светодиод либо останется выключенным, либо будет стабильно медленно мигать.
  1. Для старта запрограммированного кода нажмите кнопку сброса на плате MAX32630FTHR

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

Облачный сервис. Работа с Ubidots

После входа в систему вы должны найти свое устройство на странице Dashboard, и отсюда вы можете выбрать несколько таких вариантов, как просмотр созданных устройств, просмотр доступных событий, обзор вашего профиля, а также можно  увидеть количество кредитов, доступных для вашей учетной записи. Несколько моментов, которые необходимо учитывать для любого проекта, - это API токены, устройства и идентификаторы переменных (Variable IDs):

Просмотр Токенов API

Чтобы просмотреть токен API, кликните иконку «Профиль (Profile)» в правом верхнем углу экрана и выберите «Учетные данные API (API Credentials)». В выпадающем вниз поле слева отобразится API токен. API токен уникален для каждого пользователя и генерируется при создании учетной записи. Это то, что останавливает передачу данных с вашего устройства к неверной учетной записи.

Добавление устройств

Идентификаторы создаются для каждого нового устройства при добавлении переменной. Начните с добавления устройства:

  1. Убедитесь, что вы находитесь на экране «Устройства (Devices)» (Рис. 6).
  2. Кликните желтый круг с символом плюс в правом верхнем углу.
  3. Переименуйте устройство из «Мой источник данных (My Data Source)» в любое другое, которое вы выберете.
  4. Для завершения кликните в любое место окна. Появится краткое всплывающее сообщение, указывающее на успешное создание.

Начните с экрана «Устройства»

Рис. 6. Начните с экрана «Устройства»

«Устройство  (Device)» представляет ваш проект в целом, позволяя вам иметь несколько проектов под одной учетной записью. «Переменный Идентификатор» - это то, что помогает каждому созданному устройству идентифицировать конкретные датчики и входы, назначенные или встроенные в ваше устройство, и то, что указывает им на место, где  они корректно будут отображаться. Это помогает вам поддерживать работу с несколькими проектами и датчиками, которые работают для одного отдельного устройства или для нескольких.

Создание Переменных ID

Создание переменных идентификаторов очень похоже на создание устройства.

  1. Кликните по значку «Новое устройство (New Device)», который откроет это устройство и позволит вам создать отдельные переменные.
  2. Кликните желтый круг с символом плюс в правом верхнем углу, чтобы создать новую переменную.
  3. Переименуйте переменную.
  4. Кликните в любом месте окна. Краткое всплывающее сообщение будет означать, что вы успешно создали идентификатор.

При нажатии (клике) на этот новый значок появится экран «Созданная Переменная (Created Variable)» (Рис. 7), который отобразит несколько частей информации вдоль левой стороны. Вы можете редактировать большую часть информации вдоль левого столбца, который включает в себя: ярлык API, разрешенный диапазон, единицу измерения и т. д. (важный элемент, который необходимо отметить, - это идентификатор, который определит, где должны быть размещены данные из вашей программы).

Экран “переменная” Ubidots

Рис. 7. Экран “переменная” Ubidots

Автор настоятельно рекомендует просмотреть учебную документацию, расположенную в раскрывающемся меню, которое появляется при наведении курсора на значок "Профиль (Profile)". Много очень полезной информации доступно по таким темам, как интерфейсы MQTT и HTTP API, а также учебники по другим устройствам IoT.

Android Studio

Как уже было сказано выше, для передачи данных от вашей платы Maxim и сенсора в облако вам понадобится интерфейс. Реализовать его можно с помощью мобильного устройства, например, планшета или сотового телефона. Для этого проекта мы остались в рамках платформы Android и использовали Android Studio для разработки приложения визуализации данных, полученных от  нашего датчика.

Для экономии времени автор начал с примера приложения BluetoothLeGatt, которое позволяет сканировать доступные устройства Bluetooth, подключаться к ним и просматривать доступные ресурсы. Это хороший пример для создания собственных приложений с поддержкой Bluetooth, если вы решите пойти по этому пути. Ubidots также предоставляет учебник по подключению и отправке данных через приложение к их сервису, который рекомендуется просмотреть для получения инструкций о том, где поместить свой API и токены.

Импорт кода

  1. Для импорта в Android Studio необходимо скачать из Mouser’s GitHub файлы, помеченные как BLEHR.7z. Из-за ограничений на размер файла код проекта архивируется дважды и требует его извлечения.
  2. Импортируйте код в Android Studio, кликнув «Открыть существующий Android Studio проект (Open an existing Android Studio project)» из главной (стартовой) страницы или перейдя в меню File/Open. Здесь вы можете просмотреть, как автор изменил и реализовал API для Ubidots (Рис. 8).

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

Android Studio Ubidots API токен кодРис. 8. Android Studio Ubidots API токен код

Сборка приложения

Чтобы протестировать и отладить код, вы можете:

Собрать (Build) приложение для вашего устройства. Используйте эту опцию, если Вы не планируете изменять код, кроме обновления API и переменных токенов.

Используйте опцию «Разработчик (Developer’s)». Она делает возможной USB отладку. Это также позволит вам использовать ваш телефон или планшет в качестве виртуального испытательного стенда, подключив его непосредственно к ПК, на котором вы программируете. Используя интернет-поиск или учебники в Android Studio, вы можете найти инструкции по входу в «режим разработчика (developer mode)».

Если вы решили использовать устройство в качестве отладочного инструмента, вы можете просто нажать " Запуск (Run) " в строке меню и выбрать устройство, чтобы начать сборку и запуск приложения. После загрузки приложение должно появиться на выбранном устройстве. (Примечание: Вы не можете запустить это приложение с виртуального устройства, потому что в этом случае Bluetooth не поддерживается).

Если вы планируете просто загрузку (sideload), вам необходимо сначала сделать сборку кода, выбирая «Build», затем «Build APK(s)». Это создаст новый файл, который затем можно скопировать на выбранное вами устройство для инсталляции.

Несмотря на то, что при загрузке приложения этот вариант работает хорошо, если вы не планируете вносить изменения в программное обеспечение, автор рекомендует использовать устройство по вашему выбору в качестве испытательного стенда. Использование устройства в режиме USB отладки («USB debug mode») позволит вам обновлять, заново собирать (rebuild) и запускать код повторно, что может быть очень полезно при программировании и отладке.

Собираем все вместе

После того, как у вас появилась возможность загрузить приложение и запустить его, вы можете увидеть значок «Сканировать (Scan)» в правом верхнем углу, который позволит вам найти любые устройства Bluetooth в радиусе действия. Если вы соединили и запрограммировали MAX32630FTHR и MAXREFDES117 корректно и на устройство подано питание, вы должны увидеть его с меткой HRM в списке загружаемых устройств.

Готовы увидеть результат?

  1. Убедитесь, что включено разрешение на доступ приложения к местоположению. Если Вы не знаете, где находится этот параметр, обратитесь к интерактивной справке или документации устройства.
  2. Выберите HRM, чтобы открыть новый экран. Вы увидите некоторую информацию: адрес устройства, текущее состояние и выходные данные.
  3. Нажмите кнопку «Соединить (Connect)» в правом верхнем углу, чтобы разрешить подключение к устройству и просмотреть список сервисов через выпадающее меню.
  4. Наконец, выберите «Измерить частоту сердечных сокращений - (Heart Rate Measurement)» и вы увидите данные, начинающие заполнять экран (Рис. 9)

Когда вы выберите «Heart Rate Measurement», увидите данные, которые начинают заполнять экранРис. 9. Когда вы выберите «Heart Rate Measurement», увидите данные, которые начинают заполнять экран

Если вы обновили код, чтобы включить корректный API и переменные токены, тогда вы сможете войти в свой аккаунт Ubidots и просматривать доступные данные с устройства, через вкладку «Device». Теперь вы можете создать панель мониторинга для быстрого просмотра информации в нескольких различных форматах, в зависимости от ваших требований (Рис. 10). Ubidots недавно выпустил бета-версию приложения для Android, которую можно установить, чтобы просматривать вашу панель мониторинга и устройства с помощью телефона или планшета (Рис. 11).

Инструментальная панель Android приложения Ubidots

Рис. 10. Инструментальная панель Android приложения Ubidots

Инструментальная панель на Web-сайте Ubidots.

Рис. 11. Инструментальная панель на Web-сайте Ubidots.

Заключение

Носимые устройства являются полезными инструментами, которые можно использовать в повседневной жизни. Они могут обеспечить пользователя информацией, отражающей взаимосвязь между состоянием человека и различными показателями его жизнедеятельности: качество сна, уровень VO2, уровень активности, ритм ходьбы и бега и т. д. Более того, они могут помочь вам контролировать состояние здоровья, а также передавать медикам соответствующую информацию: например, ежедневную величину артериального давления, уровень глюкозы в крови и т. д.

Следует учесть, что в проектируемые носимые устройства необходимо добавлять периферию для отображения, хранения, извлечения и т. д. данных. Pegasus Rapid Development Platform облегчила разработку, интегрировав основные периферийные устройства в отладочную плату и в простой в использовании референс-дизайн монитора частоты сердечных сокращений MAXREFDES117#. Программное обеспечение Mbed OS, Ubidots и Android Studio объединили технологии программирования в облаке, облачного сервиса и взаимодействия с облаком, соответственно.

Об авторе статьи

Джозеф Даунинг (Joseph Downing) работал для Mouser Electronics на протяжении шести лет с 2011 года в качестве специалиста по технической поддержке, а позже перешел на должность специалиста по техническому контенту. Джозеф работал в электронной индустрии более 20 лет с такими компаниями как Intel, Radisys и Planar. Сегодня он помогает в управлении и обеспечении материалами раздела «Приложения и Технологии» сайта mouser.com.

Журнал: https://ru.mouser.com
Производитель: Maxim Integrated
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
MAX1921EUT18
MAX1921EUT18
Maxim Integrated
Арт.: 182030 PDF AN RD
Доступно: 409 шт. от 72 шт. от 160,62
Выбрать
условия
поставки
MAX1921EUT18 от 72 шт. от 160,62
409 шт.
(под заказ)
Выбрать
условия
поставки
MAX14595ETA+T
MAX14595ETA+T
Maxim Integrated
Арт.: 1893479 PDF AN RD
Доступно: 172 шт. от 4 шт. от 381,93
Выбрать
условия
поставки
LOGIC LEVEL TRANSLATOR, 2-CH, TDFN-8
MAX14595ETA+T от 4 шт. от 381,93
172 шт.
(под заказ)
Выбрать
условия
поставки
MAX30102EFD+
MAX30102EFD+
Maxim Integrated
Арт.: 2119498 ИНФО PDF RD RND DT
Доступно: 57 шт. 764,00
Biomedical Sensors Integrated Optical Sensor.
MAX30102EFD+ 764,00 от 6 шт. 655,00 от 12 шт. 590,00 от 25 шт. 546,00 от 64 шт. 519,00
8 шт.
(на складе)
49 шт.
(под заказ)
MAX30102EFD+T
MAX30102EFD+T
Maxim Integrated
Арт.: 2119500 ИНФО PDF RD RND DT
Доступно: 147 шт. от 5000 шт. от 447,00
Выбрать
условия
поставки
Biomedical Sensors Integrated Optical Sensor
MAX30102EFD+T от 5000 шт. от 447,00
147 шт.
(под заказ)
Выбрать
условия
поставки
MAXREFDES117#
MAXREFDES117#
Maxim Integrated
Арт.: 2195350 ИНФО PDF AN RD
Доступно: 37 шт. от 1 шт. от 1768,35
Выбрать
условия
поставки
REF DES BRD, HEART RATE/PULSE OXIMETER
MAXREFDES117# от 1 шт. от 1768,35
37 шт.
(под заказ)
Выбрать
условия
поставки
MAX32630FTHR#
MAX32630FTHR#
Maxim Integrated
Арт.: 2272639 ИНФО PDF RD DT
Доступно: 20 шт. от 1 шт. от 3241,98
Выбрать
условия
поставки
Отладочная платформа на основе микроконтроллера MAX32630.
MAX32630FTHR# от 1 шт. от 3241,98
20 шт.
(под заказ)
Выбрать
условия
поставки

Сравнение позиций

  • ()