Содержание
Датчики SCANIA — как выглядят и где установлены
Содержание статьи:
- Датчик температуры Scania
- Датчик температуры салона Scania
- Датчик окружающей температуры
- Датчик abs Scania
- Датчик воздуха или датчик давления воздуха Scania
- Датчик коленвала Scania
- Датчик воздуха или датчик давления воздуха Scania
- Датчик скорости Scania
- Датчик охлаждающей жидкости Scania
- Датчик уровня топлива Scania
- Датчик тормоза Scania
- Датчик уровня пола SCANIA
- Датчик давления топлива
Автомобиль Scania 5 серии – это практически «компьютер на колёсах», который состоит из электроники, механизмов, электрических цепей и не только. Работоспособность и состояние отдельных элементов и систем отслеживают десятки датчиков. Одни датчики Scania – это электромагниты, другие – клапаны и так далее. В общем, это небольшие и малозаметные детали, которые периодически нужно проверять и заменять.
Расположение датчиков Scania расписано в технической документации. Все места установки датчиков помнят только механики со стажем – этих приборов в Scania немало. Например, датчики двигателя и КПП – это комплекс измерительных приборов, каждый из которых отслеживает отдельный аспект работы систем. Разберёмся, где стоят датчики на Scania 5 серии.
Датчик температуры Scania
Датчик T37 измеряет температуру воздуха, который поступает в кабину. Он расположен после теплообменника.
Датчик температуры салона scania
Датчик температуры салона находится на панели приборов.
Датчик окружающей температуры
Датчик окружающей температуры Scania, как понятно из названия, измеряет температуру снаружи кабины. Номер детали – T27.
Датчик abs scania
Датчик АБС Scania – это датчик скорости колеса. Установлен на каждом колесе. Задние и передние датчики АБС расположены аналогично друг другу. На схеме датчики обозначены – 1.
Датчик воздуха или датчик давления воздуха scania
Датчик воздуха или датчик давления воздуха находится в пневматической подвеске. Этот датчик определяет давление на заднюю ось по давлению воздуха в пневмоподвеске.
Датчик воздуха или датчик давления воздуха scania
Датчик давления масла Scania 5 серии расположен на жгуте мотора под масляным фильтром. Код элемента – T5.
Датчик коленвала Scania
Датчик коленвала Scania – это датчик частоты вращения коленчатого вала. На жгуте электропроводки двигателя установлено 2 датчика: коды элементов – T74 и T75. На схеме система впрыска PDE для двигателей D11 и D12, но размещение аналогично для всех типов двигателей и топливных систем.
*****
Датчик наддува Scania
это датчик давления наддува, код элемента – T47. На схеме система впрыска PDE на двигателях D11 и D12, но расположение и конструкция датчика аналогична для остальных топливных систем и моторов.
Датчик охлаждающей жидкости Scania
Датчик охлаждающей жидкости на Scania расположен под термостатом, код элемента – T33.
Датчик скорости Scania
Датчик скорости Scania расположен на выходе из КПП, с него берёт информацию тахограф. Код элемента – T20.
Датчик топлива Scania
Датчик топлива Scania интегрирован в топливозаборник T16 – представляет собой поплавок, связанный с электромагнитом.
Датчик тормоза Scania
Датчик тормоза Scania – это датчик положения педали тормоза. Располагается в монтажном блоке педали тормоза. На схеме выделен, код элемента – D61
Датчик уровня пола Scania
Датчик уровня пола Scania – это клапан регулировки уровня. Он регулирует давление воздуха в подвеске, что сохраняет удобное для водителя положение кабины. Находится на левом лонжероне кабины. На схеме – кабина P с шириной переднего конца рамы 1020 мм, клапан под номером 1.
Датчик давления топлива Scania
Датчик давления топлива встречается в топливных системах HPI и XPI. В PDE этого датчика нет.
Датчик давления топлива в HPI расположен между актуаторами, код элемента – T91.
Расположение датчика давления топлива в XPI зависит от типа двигателя. Код элемента – T111.
Датчик давления топлива в HPI
Датчик давления топлива XPI, 9- и 13-литровые двигатели
Датчик давления топлива XPI, 16-литровые двигатели
Расположение датчиков температуры и влажности в серверной комнате по ГОСТ
FAQ
25 июня 2017
Расположение датчиков влажности и температуры не регламентируется текущими ГОСТ.
Единственная рекомендация касательно датчиков встречается в СН512-78. Она звучит следующим образом: «Рекомендуется предусмотреть как минимум два датчика температуры, которые позволят обеспечить дополнительный контроль за соблюдением температурного режима в серверной. Один датчик выводится на пульт диспетчера инженерных систем здания, а второй датчик должен быть установлен на пульте администраторов ИВС».
Между тем, правильное расположение температурных датчиков крайне важно для правильной работы систем кондиционирования.
К примеру, на приложенном слайде мы видим, что из-за некорректно расположенного датчика кондиционер не охлаждает воздух и выдает 26,5 градусов.
Так регламентирует расположение датчиков международный стандарт построения серверных помещений EIA/TIA569: «Средние значения температуры и влажности должны измеряться во время работы всего активного оборудования на высоте 1,5 метра над уровнем пола в любой центральной точке прохода между рядами активного оборудования».
Вот что говорит по этому поводу ASHRAE TC9. 9 Mission Critical Facilities от 2004 года: «на каждый холодный коридор должен быть отдельный датчик влажности, расположенный спереди в середине ряда серверных шкафов. Датчики температуры должны быть установлены на каждый третий шкаф внизу, середине и в верху шкафа. В случае турбулентных воздушных потоков рекомендация меняется — один датчик на 1000 квадратных футов».
Uptime Institute предлагает измерять температуру на средней высоте (1,5 метра?) в конце каждого ряда стеллажей и в верхней части стойки в центре каждого ряда.
Еще одна точка зрения изложена специалистами OPENXTRA Ltd., занимающимися кондиционированием: «Вы должны размещать датчики на расстоянии от 10 до 25 метров между ними для исключения влияния турбулентных потоков. Размещайте датчики на высоте 0,6 метра и 1,5 метра от уровня пола для измерения разности температур».
Немного другой подход демонстрирует компания Cisco: «Измеряйте температуру вверху шкафа, сзади шкафа, внизу у фальш-пола и на входе в охлаждающие модули».
Как вы видите, единых рекомендаций никто не дает. Схема с установкой трех температурных датчиков на каждый (или каждый третий) серверный шкаф кажется мне избыточной.
Я бы рекомендовал воспользоваться рекомендациями от Uptime Institute и OpenXtra, наложенными на рекомендации TIA569:
- разместить в серверном шкафу два температурных датчика на высоте 0,6 метра и 1,5 метра;
- выбрать шкафы в конце каждого ряда стеллажей и в центре каждого ряда, но не ближе 10 метров между шкафами;
- совместить температурный датчик и датчик влажности при его установке в верхней позиции в центре ряда.
Использованные материалы:
1) СН512-78. Технические требования к зданиям и помещениям для установки средств вычислительной техники (отсюда).
2) EIA/TIA569 (отсюда).
3) ASHRAE TC9.9 Mission Critical Facilities, Thermal Guidelines for Data Processing Environments, 2004 (отсюда).
4) Статья с сайта компании OPENXTRA Ltd (отсюда).
5) Uptime Institute. Implementing data center cooling best practices (отсюда).
6) Cisco Unified Computing System Site Planning Guide: Data Center Power and Cooling Guide (отсюда).
К списку новостей
Поделиться
Исследование с помощью датчика местоположения
Компонент LocationSensor представляет собой простой элемент управления, который сложно использовать без знания некоторых основных концепций геолокации. LocationSensor используется для связи со спутниковым приемником глобального позиционирования (GPS) в вашем телефоне/планшете. Когда LocationSensor обменивается данными со встроенным приемником GPS, GPS определяет местоположение вашего устройства. Датчик также может работать с сервисами определения местоположения сети/Wi-Fi. Для определения местоположения через сеть используются совсем другие методы, чем с помощью GPS. Местоположение означает текущую широту и долготу устройства или может означать ваш почтовый адрес. Единицы измерения, используемые в LocationSensor для расстояния в метрах. Время измеряется в миллисекундах (мс). Имейте в виду, что одна секунда = 1000 мс. а 60000 мс — это одна минута.
Когда датчик сообщает информацию о расстоянии или вы устанавливаете расстояние в компоненте, единицами измерения являются метры. Если ваше приложение должно иметь дело с английскими единицами измерения, используйте математические блоки для преобразования единиц во время их отображения. Рассчитайте все в метрах, а затем преобразуйте результат в футы или мили на дисплее. Думайте метры!
Морская миля — это расстояние, на которое приходится угловая минута (1/60 градуса) земного радиуса. Это означает, что расстояние между градусом широты и следующим целым градусом составляет шестьдесят морских миль. Градус долготы равен шестидесяти морским милям на экваторе, но расстояние между соседними целыми градусами долготы уменьшается по мере того, как вы меняете широту по направлению к полюсам. Промежутки между градусами широты постоянны; расстояние между градусами долготы является переменным.
Нынешние разработчики приложений мыслят метрами, но давным-давно мореплаватели описывали положение своего корабля относительно английских единиц градусов, минут и секунд. Широта и долгота по-прежнему описываются в градусах, минутах и секундах. Это неудобные единицы для использования на компьютере, поэтому разработчики и другие лица обычно используют десятичные описания широты и долготы, чтобы упростить математические вычисления. Глядя на 0,00001 градуса широты, он преобразуется в 0,9144 метра. Поэтому информация о местоположении спутника имеет точность до 0,9 метра. Наилучшая возможная точность со специализированными приемниками GPS составляет примерно три метра. Существуют методы улучшения разрешения. При разработке приложений с помощью этого инструмента помните, что GPS на вашем устройстве может многое сделать, но во многих ситуациях его точность ограничена.
Вы сделаете все возможное, разрабатывая приложения, используя LocationSensor , если вы понимаете, как работает система GPS. Принципы геолокации описаны в конце руководства.
GPS Accuracy Logger Простое GPS-приложение
GPS Accuracy Logger — это приложение, демонстрирующее использование GPS-приемника устройства. Приложение также демонстрирует, как точность GPS устройства зависит от того, где находится устройство. Компонент LocationSensor дает указание GPS-приемнику в мобильном устройстве получить фиксацию спутника (найти спутник, определить, что информация со спутника действительна, найти как минимум еще два спутника для подтверждения информации, и только затем сообщить информацию обратно на ваше устройство). Некоторые GPS-навигаторы могут использовать от 12 до 20 спутников для получения очень точных данных, при условии, что GPS-приемник способен принимать данные по 12 или 20 каналам. Многие простые устройства будут использовать только несколько спутников.
Приложение регистратора собирает данные о широте/долготе положения и предоставляет числовую оценку надежности спутниковой фиксации GPS ( Точность ). Небольшие значения точности указывают на лучшую точность. Приложение сообщает, что GPS разрешает как широту и долготу, и демонстрирует, как точность устройства может меняться по мере того, как GPS обновляет свои спутниковые координаты, или когда устройство перемещается снаружи внутрь здания или теряет фиксацию на спутниках, которые он использует для определения расположение.
Обратите внимание на изображение ниже изменения показаний точности за короткий период времени (восемь минут). Это устройство было неподвижно на столе внутри здания, когда оно фиксировало показания, и существуют значительные различия в способности устройства предоставлять точную информацию о местоположении. Спутники постоянно движутся вокруг Земли. GPS в устройстве теряет точность по мере уменьшения количества спутников, которые он может принимать. Точность обычно увеличивается по мере того, как GPS принимает больше спутников. MIT App Inventor может сообщать о точности любого исправления при условии, что GPS-приемник на устройстве имеет возможность сообщать о точности (одно из многих свойств LocationSensor, описанных ниже). GPS предназначен для использования как можно большего количества информации и с максимально возможного количества спутников, чтобы обеспечить максимально возможную точность в любой момент времени. Ниже обсуждается, почему важна точность, что вызывает ее колебания и что может сделать разработчик, чтобы свести к минимуму влияние на пользователей приложения, избегая сообщения о «подозрительных» данных о местоположении.
Примечание: Чтобы протестировать это приложение, вы должны использовать устройство с возможностями GPS. Тестирование с помощью эмулятора не даст вам истинной информации о местоположении. Ниже приводится краткое обсуждение того, что можно сделать для предоставления информации о местоположении путем подключения к сети или через WIFI. Телефоны/планшеты без приемника GPS могут предоставлять данные о местоположении (хотя они менее точны).
Спутники передают информацию в формате NMEA 0183, стандарте для связи с морскими электронными устройствами, который также используется для GPS. Поток данных NMEA представляет собой компиляцию большого количества данных, передаваемых со спутника в текстовом формате. MIT App Inventor не может интерпретировать всю информацию, доступную в потоке данных, передаваемом со спутников. Несмотря на ограничения Компонент LocationSensor , AI2 обеспечивает основные функции, необходимые для получения информации о местоположении с вашего устройства.
Для приложения GPS Accuracy Logger требуется всего несколько компонентов и блоков. В конструкторе добавьте следующие компоненты и задайте свойства, как указано в списке.
Компонент | Компонент Ящик | Название компонента | Назначение | Свойства |
---|---|---|---|---|
Этикетка | Интерфейс пользователя | Метка широты | Отображает текущее значение широты с LocationSensor | Текст: Широта |
Этикетка | Интерфейс пользователя | Метка долготы | Отображает текущее значение долготы, полученное датчиком местоположения.![]() | Текст: Долгота |
Горизонтальное расположение | Макет | Горизонтальное расположение1 | Содержит следующие 3 ярлыка, чтобы они отображались рядом друг с другом | Ширина: Заполнить родительский элемент |
Этикетка | Интерфейс пользователя | AccuracyNowLabel | Отображает метку для представления текущей точности | Текст: Точность Сейчас: |
Этикетка | Интерфейс пользователя | Метка точности | Отображает текущее значение точности от LocationSensor | Текст: точность |
Этикетка | Интерфейс пользователя | Метры Этикетка | Отображает метку для метки погрешности +/- метров | Текст: +/- метры |
Этикетка | Интерфейс пользователя | Метка предупреждения | Уведомляет пользователя о точности GPS на устройствах | Ширина: 98% Цвет фона: Светло-серый Текст: *** Убедитесь, что GPS включен на вашем устройстве. ![]() |
Этикетка | Интерфейс пользователя | Метка заголовка данных | Заголовок дисплея для данных точности | Текст: «Время +/-M Широта Долгота» TextColor: Синий |
Этикетка | Интерфейс пользователя | Метка данных | Отображение данных, полученных от LocationSensor | Текст: «» (пусто) |
Датчик положения | Датчики | Датчик местоположения1 | Предоставляет информацию о местоположении от GPS в устройстве | DistanceInterval: 0 TimeInterval: 60000 |
Часы | Датчики | Часы1 | Будет использоваться для периодического опроса LocationSensor для получения информации о точности. | Интервал таймера 1000 |
Ваш Designer Viewer и список компонентов должны выглядеть примерно так:
Переключиться в редактор блоков. Инициализируйте переменную LS_Accuracy равным 1. Это будет содержать значение точности, которое мы получаем от LocationSensor .
Блок событий LocationSensor1.LocationChanged срабатывает, когда GPS подтверждает изменение местоположения на устройстве. Сообщаемые широта и долгота указаны в десятичных градусах. Установите сообщаемую широту и долготу в соответствующих метках в приложении.
Clock1.Timer будет запускаться каждую секунду и проверять точность Датчик местоположения . Блок if-else проверяет, является ли точность меньше или равной 10 метрам, и меняет цвет текста для AccuracyLabel на черный (10 метров).
Второй блок if-then сравнивает текущее значение точности с точностью, определенной во время предыдущей проверки и сохраненной в переменной LS_Accuracy. Если точность изменилась, приложение сообщает о новой строке в списке данных. Список перечисляет последнюю точность, широту и долготу. Этот «список» отображается внизу экрана приложения. Символ \n используется для принудительного размещения каждого набора данных (состоящего из времени, точности, широты и долготы) в отдельных строках.
И, наконец, точность сохраняется в переменной LS_Accuracy для сравнения на следующей итерации.
Для чего нужна \n в текстовых блоках? Этот символ (состоящий из обратной косой черты и символа n) приводит к изменению строки в метке. Размещение символа в текстовом блоке помогает сделать форматирование читаемым при обновлении метки данных на экране.
Когда датчик местоположения «узнает», когда нужно проверить наличие спутника? Есть два свойства, которые могут вызвать это. Первый это Свойство TimeInterval . В этом приложении мы установили TimeInterval на 60000 или 1 минуту. Затем LocationSensor будет каждую минуту проверять новую информацию о местоположении. Свойство DistanceInterval — это еще один способ запуска новых данных. В этом приложении свойство имеет значение 0, поэтому любое обнаруженное изменение местоположения (через 1 минуту) вызовет событие LocationSensor1. LocationChanged.
Попробуйте приложение с MIT AI2 Companion. Вы должны начать получать данные, и значение точности должно измениться. Если вы этого не сделаете, убедитесь, что в настройках вашего приложения MIT AI Companion включены разрешения на определение местоположения. Вам должно быть предложено, но вы также можете проверить настройки приложения.
Если вы создадите файл apk и установите это приложение на свое устройство, во время установки вам также будет предложено включить разрешения на определение местоположения для приложения. Если нет, обязательно зайдите в настройки приложения и включите разрешения на определение местоположения, прежде чем использовать приложение.
Тестовое приложение датчика местоположения AI2
Это приложение намного сложнее и демонстрирует большинство возможностей компонента AI2 LocationSensor . Вот ссылка на aia, чтобы вы могли изучить код. На двух изображениях ниже показано работающее приложение проверки датчика местоположения. На изображении слева показано приложение для проверки датчиков в действии, но до нажатия кнопки «Возможности». Коснитесь кнопки, и экран должен выглядеть так, как показано на рисунке справа. Приложение подтверждает, что GPS планшета имеет все необходимые возможности.
Особенности приложения:
- После того, как «Получить местоположение?» кнопка нажата, предоставляет информацию о точности, широте и долготе.
- Нажмите кнопку «Возможности», чтобы узнать, существуют ли возможности широты/долготы, высоты над уровнем моря и точности на тестируемом устройстве. Не все устройства имеют все эти возможности.
- Сообщает точность определения местоположения каждого спутника GPS в +/- метрах. Значение Точности — это радиус в метрах вокруг обнаруженного местоположения датчика. Устройство с вероятностью 68% находится в этом радиусе.
- Отображает доступных поставщиков услуг. На планшете WIFI вы, возможно, получите только «gps»; на телефоне будет больше возможностей, если в телефоне есть настоящий GPS.
- Отображает текущего выбранного поставщика услуг. Вы можете переключаться между GPS и сетью, нажав кнопку «Переключить поставщика». Он переключается между GPS и сетью только в приложении.
- Сообщает о высоте, но только если GPS устройства имеет такую возможность. Не ожидайте, что высота изменится, когда вы перейдете с уровня улицы на третий этаж здания. Измерение не такое точное.
- Сообщает текущий адрес, только если адрес местоположения доступен.
- Отображается, если устройство переместилось больше, чем выбрано DistanceInterval. Прочтите предостережения в разделе ниже.
- Позволяет установить интервалы расстояния и времени. Расстояние установлено на 0 по умолчанию; Время до 60000 мс (одна минута). Оба значения отображаются в приложении.
- Предоставляет журнал данных о точности, широте и долготе за определенный период времени. Установите флажок «Данные журнала», чтобы включить эту функцию.
- Сообщает, имеет ли GPS фиксацию спутника или нет, и является ли информация о местоположении сетевой.
Читайте об исправлении ниже.
- Позволяет сбросить настройки времени и расстояния LocationSensor до значений по умолчанию с помощью кнопки «Закрыть приложение и сбросить местоположение, расстояние и время».
Как телефон/планшет «узнает» свое местоположение
Понимание того, как работают GPS и беспроводные сети, необходимо для понимания компонента LocationSensor. И GPS, и беспроводные сети предоставляют информацию о местоположении по-разному. Компонент LocationSensor может получать информацию, используя любую систему.
Все, что вы хотите знать о GPS и о том, как работают приемники GPS, собрано здесь: http://en.wikipedia.org/wiki/Global_Positioning_System. Википедия не всегда является самым точным источником, но в этом случае Википедия представляет собой довольно хорошее введение в концепции геолокации.
Спутники GPS передают два типа данных, называемых альманахом и эфемеридами. Данные альманаха включают параметры орбиты спутника. Это точные данные и действительны в течение нескольких месяцев. Эфемеридные данные включают в себя данные об орбите и поправку часов для каждого спутника, необходимые для точного позиционирования. Когда GPS изначально включен, приемник «ищет» спутники, основываясь на том, где спутник должен находиться, как описано в Альманахе и с поправкой на текущее время. GPS определяет, действительны ли данные альманаха; если Альманах недействителен, возможно, если приемник GPS был отключен на некоторое время, GPS ищет небо или повторно инициализируется внутри, чтобы он мог загрузить новый Альманах со спутника и начать все сначала. Вот почему исправление может занять больше времени при первом включении устройства, а последующие исправления выполняются быстрее.
GPS-приемнику требуется четкий обзор неба для получения данных эфемерид / альманаха со спутников. Он использует эти данные для определения местоположения. Для предоставления информации о местоположении требуются измерения как минимум с трех спутников. GPS-приемники обычно могут использовать от 12 до 20 спутников для предоставления точной информации. Несколько факторов определяют, сколько спутников используется GPS в задании. GPS может видеть ограниченное количество спутников, некоторые спутники могут не работать, или объекты могут блокировать спутник и снижать мощность его широковещательного сигнала. На практике большинство GPS используют менее 9или 10 спутников для определения местоположения.
Беспроводные сети используют триангуляцию для определения местоположения устройства. Информация о местоположении получается быстрее, чем данные, полученные с помощью GPS-привязки. Исправление GPS может занять от нескольких секунд до минуты или около того с одноканальными приемниками GPS. Сетевое исправление очень быстрое. Однако данные, предоставляемые беспроводными сетями, менее надежны, чем большинство исправлений GPS. Мобильные телефоны получают идентификаторы вышек сотовой связи от ближайших трех или четырех вышек сотовой связи поблизости. Технология использует разницу во времени прибытия, чтобы определить ваше «точное» местоположение с точностью до 10-50 метров в течение 10-15 секунд. Этот метод называется MS-Assist для телефонов GSM. Резервный метод называется Cell ID. Идентификатор соты является пассивным предположением с точностью от 1,7 до 8 км (1-5 миль) и, возможно, используется, если MS-Assist не сообщает о достаточной достоверности для определения местоположения менее чем на 100 метров (минимальный порог производительности для MS). -Ассистент).
Мобильное устройство использует GPS для получения точного снимка своего местоположения в движении или на месте. Беспроводные сети можно использовать для стационарных позиций при отсутствии приемника GPS. Информация об этих системах, представленная в этом руководстве, может быть устаревшей по мере совершенствования технологий. Следите за дальнейшими улучшениями в системах позиционирования GPS и беспроводной сети в Интернете.
Что нужно знать разработчикам для использования компонента LocationSensor
Чтобы создать успешное приложение на основе геолокации, разработчик должен знать, как работает спутниковая система GPS, и учитывать ограничения, существующие из-за качества приемников GPS в мобильных устройствах.
- Компонент LocationSensor сообщает широту и долготу, используя десятичный разделитель точки.
- Чувствительность приемников GPS в разных устройствах различается. Некоторые устройства более чувствительны к тому, находится ли телефон/планшет в здании, под деревьями или перемещается в каньонах (например, в горах, между небоскребами или просто высокими зданиями). Здания закрывают линию обзора от GPS до позиционных спутников. Слабые сигналы приводят к снижению точности или потере фиксации.
- Точность GPS-приемника зависит от количества спутников, которые он может зафиксировать (получить и подтвердить) в любой момент. Следовательно, точность определения местоположения, сообщаемая устройством, может легко варьироваться в пределах плюс-минус 50 метров или около того за очень короткий период времени. Точность GPS также зависит от качества GPS-приемника вашего устройства. Настоящие приемники GPS, используемые в коммерческих целях, а не планшеты/телефоны, могут иметь точность менее 2 метров.
Ваш телефон, вероятно, не имеет такой возможности, но может. Большинство GPS имеют 12 параллельных каналов. Каналы помогают принимать спутниковые сигналы. Некоторые ранние приемники GPS имели только один канал, а это означало, что приемник медленнее определял положение и, возможно, не имел точности приемника с несколькими каналами. В более новых телефонах есть приемники с 20 каналами и A-GPS и ГЛОНАСС (ГЛОНАСС — российская версия GPS), которые могут работать вместе. LocationSensor не поддерживает ГЛОНАСС.
- LocationSensor.DistanceInterval может инициировать непредвиденный ответ на изменение местоположения, если установлено большее число. Это может произойти из-за того, что GPS находится в постоянном движении и иногда, в зависимости от того, как могут использоваться спутниковые привязки, может предоставлять очень ошибочную информацию о местоположении. Раннее срабатывание устройства можно предотвратить, предоставив логические блоки для срабатывания только тогда, когда точность GPS находится в пределах запрограммированных вами значений.
- Когда о точности GPS сообщает 9Например, 0031 LocationSensor.Accuracy равно 32 метрам, это означает, что если для LocationSensor.DistanceInterval установлено значение меньше 32 метров, GPS попытается выполнить новое исправление (изменение), как если бы расстояние было установлено на 0 метров. . Блоки GPS в недорогих телефонах особенно не очень точны, а некоторые планшеты вообще не имеют GPS.
- Чтобы понять, как изменяется точность (надежность позиционирования) вашего устройства, используйте описанное выше приложение GPS Accuracy Logger, установите DistanceInterval до нуля и следите за изменениями точности вашего GPS.
В обзоре GPS-приемник в большинстве телефонов не совсем точен. Информация о местоположении, которую он предоставляет, может составлять в среднем только +/- 50 метров, а иногда и +/- 5 метров. Свойство «Точность» говорит вам, насколько надежен любой отдельный спутник. Приемники GPS в телефонах не очень чувствительны. Встроенный GPS теряет сигнал в зданиях и может быть затруднен в городских условиях. Не все планшеты имеют GPS-приемник. Те планшеты, у которых нет приемника GPS, имеют гораздо более низкую точность позиционирования по сравнению с теми, у которых есть GPS. Устройства без приемника GPS могут использовать триангуляцию между вышками сотовой связи и/или местоположение Wi-Fi для приблизительного определения местоположения телефона.
Первоначальная фиксация спутника на большинстве устройств занимает от 30 до 40 секунд. Последующие исправления спутников обычно занимают около 20 секунд на большинстве устройств. Когда разработчик устанавливает для LocationSensor.TimeInterval значение 1000 мс (1 секунда), событие LocationChanged срабатывает, но не обновляет местоположение раз в секунду. Очень разумным значением TimeInterval может быть 20000 мс.
В датчике местоположения есть опция для определения близости к пункту назначения. Эксперименты показывают, что эта функция не очень точна при небольших изменениях расстояния. При регулярном использовании LocationSensor.DistanceInterval свойство. Обычно GPS «срабатывает» в зависимости от времени, но вы также можете разрешить датчику местоположения «срабатывать» в зависимости от пройденного расстояния. Я вижу приложение, смешивающее два метода. Местоположение будет инициировать исправление GPS на основе времени, но оно также попытается инициировать на основе движения с момента последнего исправления. Десятиметровая выборка местности не кажется практичной. потому что телефонный GPS может разрешать только +/- 50 метров. Посмотреть на себя. Используйте блок LocationSensor1.Accuracy и проверяйте показания точности каждую минуту и смотрите, что получится? GPS Accuracy Logger делает это, поэтому код доступен в этом руководстве.
Прочитайте описание датчика местоположения от команды MIT App Inventor здесь http://appinventor.mit.edu/explore/content/sensors.html.
Загрузки
- GPSAccuracyLogger.aia
- LocationSensorTest.
aia
Работа с расположением датчиков — документация MNE 1.3.1
В этом руководстве описывается, как считывать и отображать расположение датчиков, а также как
MNE-Python обрабатывает физическое расположение датчиков.
Как обычно, начнем с импорта необходимых нам модулей:
из пути импорта pathlib импортировать matplotlib.pyplot как plt импортировать numpy как np # для matplotlib < 3.2 требуется следующий импорт: из mpl_toolkits.mplot3d импортировать Axes3D # noqa импортировать меня
О монтажах и макетах
Монтажи
содержат положения датчиков в 3D (x, y, z
в метрах), которые можно присвоить существующим данным ЭЭГ/МЭГ. Указав
расположение датчиков относительно мозга,
Монтажи
играют важную роль в вычислении
прямое решение и обратные оценки.
Напротив, Макеты
являются идеализированными 2D
представление положения датчиков. В основном они используются для организации
отдельные подграфики датчиков на топоплате или для отображения приблизительного
относительное расположение датчиков, если смотреть сверху.
Примечание
Если вы работаете исключительно с данными ЭЭГ, вам следует использовать
Монтажи
, а не макеты. Идеализированные монтажи
(например, предоставленные производителем или поставляемые вместе с
MNE-Python, упомянутый ниже), обычно называют
шаблонные монтажи.
Работа со встроенными монтажами
Трехмерные координаты датчиков МЭГ включены в необработанные записи МЭГ.
системы. Они автоматически сохраняются в атрибуте info
файла
Необработанный объект
при загрузке. Расположение электродов ЭЭГ намного больше.
изменчивы из-за различий в форме головы. Идеализированные монтажи
("шаблонные монтажи") для многих систем ЭЭГ являются
включены в MNE-Python, и вы можете получить их обзор, используя
mne.channels.get_builtin_montages()
:
встроенные_монтажи = mne.channels.get_builtin_montages(descriptions=True) для montage_name, montage_description во встроенных_монтажах: print(f'{montage_name}: {montage_description}')
standard_1005: Электроды названы и расположены в соответствии с международной системой 10-05 (343+3 местоположения) standard_1020: Электроды названы и расположены в соответствии с международной системой 10-20 (94+3 места).standard_alphabetic: названия электродов состоят из комбинаций БУКВ-ЧИСЛОВ (A1, B2, F4, …) (65+3 местоположения) standard_postfixed: Электроды названы по международной системе 10-20 с использованием постфиксов для промежуточных позиций (100+3 местоположения) standard_prefixed: Электроды названы по международной системе 10-20 с использованием префиксов для промежуточных позиций (74+3 местоположения) standard_primed: Электроды названы по международной системе 10-20 с использованием штрихов (' и '') для промежуточных позиций (100+3 позиции) biosemi16: колпачок BioSemi с 16 электродами (16+3 места) biosemi32: колпачок BioSemi с 32 электродами (32+3 места) biosemi64: колпачок BioSemi с 64 электродами (64+3 места) biosemi128: колпачок BioSemi со 128 электродами (128+3 места) biosemi160: колпачок BioSemi со 160 электродами (160+3 места) biosemi256: колпачок BioSemi с 256 электродами (256+3 места) easycap-M1: EasyCap с 10-05 названиями электродов (74 места) easycap-M10: EasyCap с пронумерованными электродами (61 место) EGI_256: Сеть геодезических датчиков (256 точек) GSN-HydroCel-32: Сеть геодезических датчиков HydroCel и Cz (33+3 местоположения) GSN-HydroCel-64_1.
0: Сеть геодезических датчиков HydroCel (64+3 точки) GSN-HydroCel-65_1.0: Сеть геодезических датчиков HydroCel и Cz (65+3 местоположения) GSN-HydroCel-128: Сеть геодезических датчиков HydroCel (128+3 местоположения) ГСН-ГидроЦел-129: Сеть геодезических датчиков HydroCel и Cz (129+3 местоположения) GSN-HydroCel-256: Сеть геодезических датчиков HydroCel (256+3 местоположения) GSN-HydroCel-257: Сеть геодезических датчиков HydroCel и Cz (257+3 местоположения) mgh60: (более старая) 60-канальная крышка, используемая в MGH (60 + 3 местоположения). mgh70: (более новая) 70-канальная крышка BrainVision, используемая в MGH (70+3 местоположения). artinis-octamon: Artinis OctaMon fNIRS (8 источников, 2 детектора) artinis-brite23: Artinis Brite23 fNIRS (11 источников, 7 детекторов) brainproducts-RNP-BA-128: Brain Products с 10-10 названиями электродов (128 каналов)
Эти встроенные монтажи ЭЭГ могут быть загружены с
mne.channels.make_standard_montage
:
easycap_montage = mne.channels.make_standard_montage('easycap-M1') печать (easycap_montage)
<Раскопки | 0 дополнительных элементов (форма головы), 0 HPI, 3 реперных точки, 74 канала>
Монтаж
объектов имеют
график
метод визуализации расположения датчиков
в 2D или 3D:
easycap_montage.plot() # 2D fig = easycap_montage.plot(kind='3d', show=False) # 3D fig = fig.gca().view_init(azim=70, elev=15) # установить угол обзора для туториала
После загрузки монтаж можно применить к данным с
set_montage
метод, например
raw.set_montage()
,
эпох.set_montage()
, или
evked.set_montage()
. Это будет работать только с
данные, названия каналов ЭЭГ которых соответствуют названиям каналов в монтаже.
(Поэтому ниже мы загружаем некоторые данные ЭЭГ, а не обычную «выборку» МНЭ.
набор данных.)
Затем вы можете визуализировать расположение датчиков с помощью
метод plot_sensors()
.
Также можно пропустить этап ручной загрузки монтажа, пропустив
имя монтажа непосредственно в метод set_montage()
.
ssvep_folder = mne.datasets.ssvep.data_path() ssvep_data_raw_path = (ssvep_folder / 'sub-02' / 'ses-01' / 'eeg' / 'sub-02_ses-01_task-ssvep_eeg.vhdr') ssvep_raw = mne.io.read_raw_brainvision (ssvep_data_raw_path, подробный = False) # Используйте предварительно загруженный монтаж ssvep_raw.set_montage(easycap_montage) рис = ssvep_raw.plot_sensors (show_names = True) # Применить монтаж шаблона напрямую, без предварительной загрузки ssvep_raw.set_montage('easycap-M1') рис = ssvep_raw.plot_sensors (show_names = True)
Примечание
Возможно, вы заметили, что фигуры, созданные с помощью
plot_sensors()
содержит меньше датчиков, чем результат
easycap_montage.plot()
. Это потому что
монтаж содержит все каналы, определенные для этой системы ЭЭГ ; но нет
все записи обязательно будут использовать все возможные каналы. Таким образом, когда
применение монтажа к реальному набору данных ЭЭГ, информация о датчиках
которые фактически не присутствуют в данных, удаляются.
Построение 2D-датчиков, таких как EEGLAB
В MNE-Python центр головы по умолчанию рассчитывается с использованием
реперные точки. Это значит, что
окружность головы представляет собой окружность головы на уровне носа и уха
уровень , а не там, где он обычно измеряется в системе 10–20 ЭЭГ
(т. е. над носом в точках T4/T8, T3/T7, Oz и Fpz).
Если вы предпочитаете рисовать круг головы, используя 10–20 условных обозначений (которые также
используется EEGLAB), вы можете пройти сфера = 'eeglab'
:
рис = ssvep_raw.plot_sensors (show_names = True, сфера = 'eeglab')
Приближение положения Fpz путем отражения координат Oz по осям X и Y.
Поскольку данные, которые мы здесь используем, не содержат канал Fpz, их
предполагаемое местоположение было аппроксимировано автоматически.
Ручное управление проекцией 2D-канала
Положения каналов в 2D-пространстве получаются путем проецирования их фактических 3D-изображений.
позиции на сфере, а затем проецировать сферу на плоскость.
По умолчанию сфера с началом в (0, 0, 0)
(координаты x, y, z) и
радиус 0,095
метров (9,5 см). Вы можете использовать другую сферу
радиус, передав одно значение в качестве аргумента сфера
в любой функции
который отображает каналы в 2D (например, график
, который мы используем
здесь, но и например mne.viz.plot_topomap
):
fig1 = easycap_montage.plot() # радиус по умолчанию 0,095 fig2 = easycap_montage.plot (сфера = 0,07)
Чтобы изменить не только радиус, но и начало сферы, передайте
(x, y, z, радиус)
кортеж как сфера
аргумент:
рис = easycap_montage.plot(сфера=(0,03, 0,02, 0,01, 0,075))
Чтение файлов оцифровки датчика
В примере данных позиции датчиков уже доступны в
info
атрибут объекта Raw
(см. документацию
функции чтения и set_montage()
для получения подробной информации о том, как это
работает). Таким образом, мы можем отображать расположение датчиков непосредственно из
Необработанный объект
с использованием plot_sensors()
, который обеспечивает
функциональность аналогична montage.plot()
. В
Кроме того, plot_sensors()
поддерживает выбор канала
тип, цветовое кодирование каналов различными способами (по умолчанию каналы, перечисленные в
raw.info['bads']
будет отображаться красным цветом), а рисование в существующем
Объект Matplotlib Axes
(поэтому позиции канала можно легко добавить как
подсюжет в многопанельной фигуре):
sample_data_folder = mne.datasets.sample.data_path() sample_data_raw_path = (sample_data_folder / 'MEG' / 'sample' / 'sample_audvis_raw.fif') sample_raw = mne.io.read_raw_fif( sample_data_raw_path, предварительная загрузка = False, подробный = False ) рис = plt.figure() ax2d = fig.add_subplot(121) ax3d = fig.add_subplot(122, проекция='3d') sample_raw.plot_sensors (ch_type = 'eeg', оси = ax2d) sample_raw.plot_sensors(ch_type='eeg', оси=ax3d, вид='3d') ax3d.view_init (азимус = 70, высота = 15)
Предыдущая 2D-топограмма показывает неравномерность положения датчиков ЭЭГ в
образец набора данных — это потому, что датчик
позиции в этом наборе данных представляют собой оцифровку фактических положений датчика на
голову, а не идеализированные положения датчиков, основанные на модели сферической головы.
В зависимости от устройства оцифровки (например, дигитайзер Polhemus Fastrak),
вам необходимо использовать различные функции чтения монтажа (см. Поддерживаемые форматы для оцифрованных 3D-локаций).
В результате монтаж
можно добавить к
Необработанные объекты
, передав их в качестве аргумента
метод set_montage()
(так же, как мы делали раньше с именем
предопределенного монтажа 'standard_1020'
). После загрузки локации могут быть
построен с помощью метода plot()
и сохранен с помощью
метод save()
монтаж
объект.
Примечание
При установке монтажа с помощью set_montage()
,
информация об измерении обновляется в двух местах (оба чс
и копать
записи обновлены) – см. Структура данных Info для более подробной информации. Примечание
что dig
может дополнительно содержать HPI, реперные точки или точки формы головы
к местам расположения электродов.
Визуализация датчиков в 3D-рендерингах поверхностей
Также можно визуализировать изображение шлема с датчиком МЭГ с помощью 3D.
рендеринг поверхности вместо matplotlib. Это работает, вызывая
mne.viz.plot_alignment()
:
рис = mne.viz.plot_alignment( sample_raw.info, dig=False, eeg=False, surface=[], meg=['шлем', 'сенсоры'], coord_frame = 'мег' ) mne.viz.set_3d_view(рисунок, азимут=50, высота=90, расстояние=0,5)
Получение шлема для системы 306м Типы каналов:: град: 203, маг: 102
Обратите внимание, что для plot_alignment()
требуется объект Info
, и
также может визуализировать МРТ-поверхности скальпа, черепа и головного мозга (путем прохождения
dict с такими ключами, как 'head'
, 'outer_skull'
или 'brain'
в
поверхностей
параметр). Это делает функцию полезной для
оценка преобразований системы координат.
Для примеров различного использования plot_alignment()
, см.
Построение схемы датчиков систем ЭЭГ, Построение датчиков ЭЭГ на коже головы и Построение расположения датчиков систем МЭГ.
Работа с файлами макета
Подобно монтажу, многие файлы компоновки включены в MNE-Python. Они есть
хранится в папке mne/channels/data/layouts
:
layout_dir = Путь(mne.__file__).parent/'каналы'/'данные'/'макеты' layouts = sorted(path.name для пути в layout_dir.itrdir()) Распечатать( '\n' 'ВСТРОЕННЫЕ МАКЕТЫ\n' '=================' ) печать('\n'.присоединиться(макеты))
ВСТРОЕННЫЕ МАКЕТЫ ================ CTF-275.lout CTF151.lay CTF275.lay ЭЭГ1005.lay EGI256.lout GeodesicHeadWeb-130.lout GeodesicHeadWeb-280.lout КОМПЛЕКТ-125.лут КОМПЛЕКТ-157.лут КИТ-160.укладка KIT-AD.lout КОМПЛЕКТ-AS-2008.lout КОМПЛЕКТ-UMD-3.lout Нейромаг_122.lout Vectorview-all.lout Vectorview-grad.lout Vectorview-grad_norm.lout Vectorview-mag.lout биосеми.лей магнитыWh4600.lout
Чтобы загрузить файл макета, используйте функцию mne.channels.read_layout
.
Затем вы можете визуализировать макет, используя его
участок
метод:
biosemi_layout = mne.channels.read_layout('biosemi')
Аналогично аргументу выбирает аргумент
для выбора каналов из Необработанный
объекты, метод plot()
Объекты Layout
также имеют аргумент выбирает
. Однако,
потому что макеты содержат только информацию о названии и местоположении датчика (не
тип датчика), метод plot()
поддерживает только
выбор каналов по индексу (не по названию и не по типу). В следующем примере
находим искомые индексы с помощью numpy.where ()
; выбор по имени или
тип возможен с помощью mne.pick_channels()
или mne.pick_types()
.
midline = np.where([name.endswith('z') для имени в biosemi_layout.names])[0] biosemi_layout.plot (выборки = средняя линия)
Если у вас есть объект Raw
, который содержит положения датчиков, вы можете
создать объект Layout
либо с
mne.channels.make_eeg_layout()
или mne.channels.find_layout()
.
layout_from_raw = mne.channels.make_eeg_layout(sample_raw.info) # тот же результат, что и у mne.channels.find_layout(raw.info, ch_type='eeg') layout_from_raw.plot()
Примечание
Нет соответствующей функции make_meg_layout()
, так как датчик
местоположения фиксируются в системе МЭГ (в отличие от ЭЭГ, где сенсорные колпачки
деформироваться, чтобы плотно прилегать к определенной голове). Таким образом, макеты MEG
непротиворечивы (постоянны) для данной системы и их можно просто загрузить
с mne.channels.read_layout()
или используйте
mne.channels.find_layout()
с
параметр ch_type
(как показано ранее для ЭЭГ).