ЧАСТЬ 1 из 4 частей статей об использовании Nordic Thingy91 с Edge Impulse

Часть 2. Начало работы с Edge Impulse и Thingy91

Часть 3. Создание собственной прошивки Edge Impulse Thingy91 и подключение к MQTT

Часть 4. Создание интерактивных автономных моделей Edge Impulse с возможностью подключения MQTT на Nordic Thingy91

Thingy91 — это комплект платформы для прототипирования сотовой связи IoT от Nordic Semiconductor, который не только демонстрирует возможности SiP nRF9160, но также имеет интересное сочетание датчиков, что делает его идеальным не только для тестирования, но и для развертывания приложений IoT на основе tinyML.

В отличие от многих других наборов для разработки датчиков, которые подключаются к телефону через Bluetooth, Thiny91 выделяется тем, что может работать самостоятельно благодаря модему LTE, который позволяет подключаться напрямую к Интернету.

Это стало возможным благодаря тому, что nRF9160 имеет очень мощный процессор приложений ARM Cortex M33, идеально подходящий для запуска вашей модели tinyML, дополненный встроенным модемом LTE со слотом eSim, поддерживающим NB-IoT и LTE-M вместе с модулем GPS и множество полезных периферийных устройств.

Вместе с основным входом кнопки есть множество датчиков, в частности, окружающей среды (температура, давление, влажность и газ), света (восприятие цвета в люксах и RGB) и обнаружения движения. Есть даже несколько полезных выходов в виде двойных светодиодов RGB, транзисторов и даже зуммера, которые позволяют Thingy91 не только ощущать, но и взаимодействовать с окружающей средой.

Устройство поставляется в пластиковом корпусе с защитной резиновой крышкой и включает перезаряжаемую батарею LiPo для легкого развертывания вашего прототипа. Он также может питаться через USB, и нет необходимости в отладчике или другом инструменте, поскольку вы также можете прошить его через USB. Nordic даже добавила сим-карту от IBasis с загрузкой 10 Мб, чтобы вы могли работать как можно быстрее.

Эта серия постов будет охватывать следующие

1. Обзор Nordic Thingy91

2. Начало работы с Edge Impulse на Thingy91

3. Пользовательская прошивка Thingy91 для экспериментов с Edge Impulse

К концу этой серии статей вы должны лучше понять, что такое Thingy91 и как вы можете использовать его для создания приложений tinyML с помощью Edge Impulse, и, надеюсь, повеселиться, создавая на нем приложения. Итак, давайте начнем с общего обзора оборудования Thing91.

Обзор оборудования Thingy91

Этот раздел содержит более подробное описание и обзор оборудования и его функций. Однако вы можете перейти к разделу о начале работы (Начало работы с Edge Impulse на Thingy91), если вы торопитесь использовать его с Edge. Импульс. Желательно иметь представление об аппаратных функциях и возможностях, так как это поможет вам понять возможности Thingy 91 и даже может дать вам новые идеи и варианты его использования.

Thingy91 — это платформа для прототипирования, которая была разработана как универсальная и компактная для широкого спектра вариантов использования сотового Интернета вещей.

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

Thingy91 разработан как автономное устройство «все в одном», которое дает вам все необходимое для восприятия и взаимодействия с окружающей средой, определения местоположения и подключения к Интернету. Вам не нужны какие-либо внешние компоненты, кроме USB-кабеля, чтобы начать работу с Thingy91. Вам понадобится сим-карта, если вы хотите использовать маломощную сотовую связь с Интернетом, но она так же эффективна и при использовании в автономном режиме.

У Nordic есть комплект для разработки nRF9160 DK, созданный специально для nRF9160, который вы также можете использовать в качестве платформы для разработки и развертывания. можно поставить в поле.

Упрощенная блок-схема дает упрощенный обзор архитектуры платформы Thingy91:

По своей сути Thingy91 сосредоточен вокруг nRF9160, флагманского сотового устройства Nordic, которое построено как система в пакете (SiP) и содержит как процессор приложений, так и модем со встроенным приемником GNSS. Включены управление питанием и зарядом батареи, а также радиочастотные интерфейсы для модема и GPS. Существует держатель eSim, в который можно установить сим-карту Nano (4FF), чтобы вы могли подключиться к местному оператору сотовой связи. На приведенной выше диаграмме показаны ключевые компоненты архитектуры системы, с которыми вы будете взаимодействовать при работе с Thingy91.

Процессор приложения представляет собой ARM Cortex M33 с тактовой частотой 64 МГц, 1 МБ флэш-памяти и 256 КБ ОЗУ вместе со стандартными периферийными устройствами, которые есть на всех микроконтроллерах. M33 был разработан специально для приложений IoT и сочетает в себе энергоэффективность, производительность и функции безопасности для подключения к серверу, а также функции DSP для обработки сигналов. M33 также идеально подходит для запуска ваших моделей tinyML, как вы увидите позже, и его очень легко использовать с Edge Impulse.

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

В Thingy91 есть нечто большее, чем просто nRF9160, потому что они умело включили nRF52840 в качестве моста подключения USB. Это означает, что вместо использования одной из популярных микросхем интерфейса USB-Serial, используемых во многих других наборах для разработки, Nordic вместо этого решила использовать для этой цели собственную Bluetooth Low Energy (BLE) SoC. nRF52840 добавляет функции Bluetooth и NFC, а также дополнительные резервные входы/выходы, доступные через заголовок. Использование функциональности nRF52840 потребует некоторой дополнительной разработки и синхронизации между двумя взаимодействующими друг с другом процессорами. Nordic включила антенну Bluetooth и NFC на тот случай, если вы захотите использовать эти функции без каких-либо дополнительных аппаратных изменений. Стоит отметить, что метка NFC является пассивной меткой, что означает, что nRF5480 не может генерировать радиочастотное поле для чтения других меток, а вместо этого действует как динамически программируемая пассивная метка, которую может считывать, например, телефон с поддержкой NFC.

Итак, если вы планируете использовать функцию NFC, подумайте о ней как о своей собственной настраиваемой метке NFC, которую вы можете изменить на основе прогнозов вашей модели tinyML, отправив данные, например, обратно на nRF52840. Основным процессором приложений, который вы будете использовать в этом руководстве, и для большинства приложений будет процессор приложений nRF9160, поскольку все датчики и выходные периферийные устройства подключаются непосредственно к nRF9160.

В то время как загрузчик MCUBoot и мост подключения гарантируют, что вы можете прошивать пользовательскую прошивку, используя только USB-кабель и программное обеспечение nRF Connect, вам может потребоваться выполнить некоторые дополнительные действия по отладке. Вот почему физический порт отладки расположен рядом с портом USB. Порт отладки используется как nRF9160, так и nRF5280, и эти контакты эффективно подключаются к любому средству с помощью ползункового переключателя, поэтому у вас, по сути, есть два комплекта разработки в одном. За кулисами есть некоторая схема мультиплексирования, которая позволяет это сделать. Через этот порт вы можете выполнять отладку и пошаговое выполнение кода для устранения неполадок в режиме реального времени.

На плате также присутствует 16-килобитная EEPROM с зарезервированными 512 байтами, а остальная часть памяти доступна для использования в вашем пользовательском приложении. Это можно использовать для хранения исторических измерений или спутниковых данных GPS, например, или данных для пакетной загрузки, когда нет сигнала или модем выключен для экономии энергии. EEPROM расширяет возможности платформы для приложений IoT.

Последние платы выше V1.4.0 поставляются с аккумулятором Lipo емкостью 1350 мАч, что позволяет устройству работать без привязки. С приложением отслеживания активов по умолчанию, поставляемым Nordic, это длится около 1 полного дня. Если вы используете тщательное управление питанием в своем приложении, это может быть значительно расширено. Его также можно заменить внешней батареей большего размера. Обратите внимание, что батарея заряжается через USB только при включенном основном выключателе питания.

Датчики

Одной из особенностей, которая действительно отличает Thingy91, является его датчик окружающей среды, основанный на BME680 от Bosch Sensortec, который представляет собой компактный высокопроизводительный датчик окружающей среды с низким энергопотреблением. Это устройство содержит 4 разных датчика в одном маленьком корпусе, как показано ниже.

Он не только измеряет относительную влажность и температуру от -40 до 85 градусов Цельсия, но также измеряет давление в диапазоне от 300 до 1100 гПа и, конечно же, газ в МОм. Датчик газа предназначен для измерения летучих органических соединений (ЛОС), которые могут помочь обнаружить различные виды газов. Ниже приведены некоторые примеры типов газов, обнаруженных в дыхании человека, как указано в техническом описании BME680.

Чтобы обеспечить приток воздуха к датчику на печатной плате, корпус Thingy91 имеет порт для доступа к окружающей среде, который позволяет воздуху проходить через решетку на корпусе.

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

Зондирование окружающей среды — это то, где на помощь приходит мощность tinyML и Edge Impulse, потому что обычно вам нужно понимать, что вы ищете, и соответствующим образом кодировать решение. Например, если вы хотите измерить качество воздуха, что является идеальным вариантом использования этого датчика, вам нужно знать, какие газы искать и их выходы вместе с другими параметрами окружающей среды, а затем экспериментировать и соответствующим образом настраивать свое приложение. Скорее всего, вам не удастся легко удовлетворить все варианты использования без больших усилий и эмпирических измерений.

Используя Edge Impulse и встроенное машинное обучение, вы можете значительно сократить время разработки, повысив производительность за счет проведения измерений в реальных или смоделированных условиях, которые представляют различные сценарии качества воздуха, а затем позволить обучающему алгоритму найти решение для вас. Подход машинного обучения также сможет обрабатывать большую степень вариаций от вашей обученной среды, чем жестко запрограммированное решение, что позволит ему работать с невидимыми данными. Это при условии, что вы правильно построили свою модель.

Если вы новичок в tinyML и даже в машинном обучении в целом, Edge Impulse позаботится о том, чтобы вы могли это сделать, помогая вам в процессе создания и настройки вашего набора данных и, наконец, гарантируя, что ваша обученная нейронная сеть удобно втиснута в чип с пространством, чтобы сэкономить для вашего пользовательского приложения.
Далее идут датчики движения. Thingy91 имеет встроенные акселерометры и обеспечивает акселерометр с низким энергопотреблением, который может работать в режимах с низким энергопотреблением, и акселерометр с высоким ускорением, который потребляет больше энергии, но лучше способен обнаруживать удары от ударов. Еще раз, благодаря tinyML, вы можете обучить акселерометр с низким энергопотреблением обнаруживать удары при определенных условиях и поддерживать производительность с более низким энергопотреблением для приложений отслеживания активов, где важны срок службы батареи и долговечность.

Наконец, есть оптический датчик, который работает как датчик RGB / инфракрасного излучения и датчик общего освещения. Восприятие RGB может измерять цвет, тогда как светочувствительные возможности датчика измеряют общую интенсивность света и цветовую температуру. Возможность инфракрасного излучения позволяет измерять интенсивность инфракрасного излучения. Эти функции имеют разные варианты использования, когда датчик цвета используется для измерения определенных цветов и может использоваться для обнаружения продукта, где интенсивность света может использоваться для обнаружения несанкционированного доступа, а также для управления внутренним и наружным освещением, например. Инфракрасный датчик полезен для обнаружения пламени, особенно в сочетании с датчиком окружающей среды.

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

Результаты

Если датчиков было недостаточно, Nordic включил несколько удобных выходов, которые вы можете использовать для взаимодействия с физическим миром. Как упоминалось в предыдущем абзаце, есть светодиоды, в частности, двойные светодиоды RGB, которые хорошо освещают свет в корпусе, который действует как рассеиватель и позволяет вам видеть свет с большинства углов обзора. Будучи RGB, есть возможность отображать разные цвета, настраивая основные цвета.
Для звукового выхода есть встроенный зуммер, управляемый ШИМ. Этот зуммер имеет широкую выходную частоту, однако его резонансная частота составляет 2,7 кГц, что означает, что он дает самый громкий звуковой сигнал (85 дБ на расстоянии 10 см) на частоте 2,7 кГц. Его лучше всего использовать при рабочем цикле 50%, а для большинства приложений уровень его звукового выхода достаточен, чтобы его можно было заметить в соседней комнате.
Кульминацией выходов являются 4 транзисторных выхода NMOS, которые вы можете использовать для активации физических выходов и управления вещами в комнате. реальный мир. Вам нужно немного припаять, так как доступ к этим выходам осуществляется через заголовок, показанный ниже.

Связь

Модем LTE, встроенный в nRF9160, поддерживает только NB-IoT и LTE-M, ориентированные на приложения IoT с низким энергопотреблением, где традиционные сотовые технологии, как правило, более энергоемкие.

Например, в режиме энергосбережения NB-IoT указанный минимальный ток nRF9160 составляет всего 2,7 мкА. Технологии Cellular IoT с низким энергопотреблением идеально подходят для случаев, когда вы сталкиваетесь с ограничениями пропускной способности данных с помощью традиционных технологий LPWAN, но при этом требуется меньше энергии, чем традиционные технологии сотовой связи (2/3/4G).

Вы можете думать о модеме как о внешнем устройстве, подключенном к последовательному порту, и вы отправляете ему AT-команды из своего набора разработчика приложений, как работают многие внешние модемы. Только в этом случае, поскольку это система в пакете, все они находятся в одном корпусе nRF9160, и проводка была сделана за вас. В модем входит приемник GPS, а модемы имеют собственное ОЗУ и флэш-память.

Модем работает независимо от процессора приложений и реализует набор AT-команд, который ваше приложение затем использует для управления модемом и приемником GPS. AT-команды управляют как модемом данных, так и GPS. И GPS, и LTE-радио используют одну и ту же антенну на плате. Это накладывает некоторые ограничения, которые следует учитывать, и обычно вам необходимо выключать модем LTE при доступе к GPS.

В идеале, если вы используете NB-IoT и ваша сеть поддерживает режим энергосбережения (PSM) или расширенный прерывистый прием (eDRX), когда сеть заставляет модем отключать связь и передавать с использованием временных окон энергосбережения, вы можете использовать эти окна для сбора GPS-данные чаще, сохраняя низкий уровень заряда батареи.

Если вы хотите использовать внешнюю антенну GPS, есть разъем U.FL, к которому можно подключить внешнюю антенну. Однако вам нужно будет изменить конфигурацию вашего проекта, чтобы использовать внешнюю антенну, потому что встроенная антенна имеет некоторую схему, помогающую усилить сигнал, в частности малошумящий усилитель, который необходимо отключить или обойти. Этот усилитель необходим для усиления сигнала бортовой антенны, которая не так чувствительна, как большая внешняя антенна. GPS идеально работает на открытом воздухе, и встроенная антенна работает достаточно хорошо, однако вы можете повысить точность с помощью вспомогательного GPS (A-GPS), который поддерживается, но требует подключения к Интернету. Например, если вы встраиваете Thingy91 в транспортное средство в качестве трекера, вам может понадобиться внешняя антенна.

Наконец, есть коаксиальный разъем SWF с маркировкой «LTE», который является контрольной точкой для измерения выходной мощности LTE и внешней антенны LTE. Обратите внимание, что в более старых версиях Thingy91 разъемы GPS и LTE являются разъемами коаксиального типа SWF. Для версий 1.0.0 и выше ваш GPS должен был измениться на U.FL.

Предоставленная сим-карта IBasis не работает во всех регионах на момент написания. Самый простой способ проверить, работает ли сим, — это проследить за процессом активации сима с помощью облака nRF с установленной по умолчанию прошивкой Asset Tracker. Если вы следуете приведенным здесь инструкциям и не видите, что ваше устройство отображается в облачной панели управления nRF, скорее всего, сим-карта не работает. Ваш единственный вариант — получить SIM-карту у местного оператора после подтверждения того, что NB-IoT или LTE-M доступны в вашем регионе. Вам также может потребоваться явно установить APN вашего оператора с помощью LTE Link Manager, который является частью nRF Connect Suite, при тестировании. К счастью, для использования устройства с Edge Impulse подключение не требуется.

Это завершает обзор оборудования Thingy91 и его функций. К настоящему времени вы можете видеть, что он содержит много возможностей в маленьком корпусе!

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

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

Для использования Thingy91 и разработки приложений официальной поддерживаемой средой является nRF Connect SDK от Nordic. Это SDK с драйверами и API-интерфейсами для управления подключением и вводом-выводом, а также периферийными устройствами. Однако некоторые функции, такие как зуммер, потребуют от вас разработки собственного кода, чтобы обеспечить требуемый результат. nRF9160 полностью поддерживается в том смысле, что существуют API высокого уровня для доступа не только к модему, но и к GPS и ко всем периферийным устройствам MCU.

До сих пор не упоминалось о Zephyr, операционной системе реального времени (RTOS), на основе которой Nordic построила SDK nRF Connect. Zephyr — это встроенная RTOS, созданная в духе Linux и поддерживаемая фондом Linux для обслуживания встроенных целей, которые не могут работать под управлением Linux. Это очень мощная ОС, которая обеспечивает очень высокий уровень абстракции над оборудованием, что может показаться излишним, но позволяет переносить код на многие целевые платформы.

Nordic поставляет Thingy91 с приложением Asset Tracker, которое взаимодействует с облачным сервером nRF, и все это построено поверх nRF Connect SDK, который, в свою очередь, построен поверх Zephyr. Доступен исходный код исходного (v1) и текущего (v2) средств отслеживания активов. Приложение Asset Tracker подключается к nRF Cloud от Nordic — это платформа визуализации IoT, которая имеет виджеты для отображения местоположения GPS на карте и отображения информации датчика, событий и тенденций в реальном времени. Хорошей отправной точкой при тестировании Thingy91 является загрузка приложения Asset Tracker, поскольку оно также помогает убедиться, что все работает с оборудованием. Это профессионально разработанное приложение, и nRF Cloud прекрасно дополняет его, поэтому вы можете приступить к этому варианту использования из коробки, если хотите.

Для разработки Nordic предоставляет вам бесплатную лицензию для Segger Embedded для использования с продуктами Nordic, и теперь вы также можете использовать nRF Connect SDK с Visual Studio Code. Существует также возможность просто использовать текстовый редактор и командную строку благодаря мета-инструменту Zephyr West.

Edge Impulse также предоставляет микропрограмму, созданную поверх Zephyr и nRF Connect, чтобы вы могли собирать данные и запускать модели. Кроме того, вы также можете включить свои модели Edge Impulse непосредственно в nRF Connect благодаря поддержке Edge Impulse.

В последней части этой статьи вы познакомитесь с настраиваемой прошивкой, которая позволяет создавать некоторые взаимодействия и расширять функции с помощью официальной версии Edge Impulse без каких-либо изменений кода. Мы будем использовать только командную строку и west, чтобы построить это позже.

Перед этим давайте сначала начнем с Edge Impulse на Thingy91. Если у вас есть Thingy91, сейчас самое время его достать, а если нет, то вы можете заказать его из любой точки мира здесь.

Обязательно ознакомьтесь с конкурсом ниже на момент написания (январь 2022 г.) заявки на проектные идеи открыты до 9 февраля 2022 г., чтобы иметь право на бесплатный Thingy91.

Есть несколько действительно крутых денежных призов, а также специальный бонусный приз за лучший проект, в котором используется машинное обучение с Edge Impulse. Обязательно проверьте это.

В следующей части вы узнаете, как использовать Edge Impulse с Nordic Thingy91. То, что вы узнаете с помощью Edge Impulse Studio, применимо к любому другому устройству. Если у вас нет Thingy91 и вы планируете принять участие в конкурсе, используйте свой мобильный телефон, чтобы начать прототипирование идей, которые у вас есть.

Теперь, когда вы узнали о Nordic Thing91, вы готовы создать свою первую модель TinyML с помощью Thingy91. Это описано в Часть 2: Начало работы с Edge Impulse и Thingy91.