+7-960-0655211 (Билайн)
+7-987-4207734 (МТС)
интернет-магазин
доставка по России и СНГ
работаем с 2010 года

3-осевой акселерометр и компас Pololu на LSM303D

710 руб
Нет в наличии
LSM303D 3D Compass and Accelerometer Carrier with Voltage Regulator /2127/

Этот датчик Pololu, созданный на базе микросхемы ST LSM303D 3-осевой акселерометр и 3-осевой магнитометр. Шесть независимых показаний датчиков, чувствительность которых может быть установлена в диапазоне от ±2 до ±16 g и от ±2 до ±8.1 Гс доступны через I²C или SPI интерфейс. На плате установлен стабилизатор напряжения 3,3 В и преобразователи логического уровня от 2,5 до 5,5 В. Расстояние между выводами 2,54 мм делает плату простой в использовании со стандартными макетными и монтажными платами.

Описание

Эта компактная (10,2 х 22,9 мм) плата Pololu представляет собой устройство на основе микросхемы ST LSM303 сочетающую в одном корпусе 3-осевой акселерометр и 3-осевой магнитометр; поэтому мы настоятельно рекомендуем, перед использованием этого продукта, ознакомиться со спецификацией LSM303D (1MB pdf). LSM303 - это великолепная интегральная схема, но маленький корпус делает её использование затруднительным, особенно для обучения и хобби. Она также работает от напряжения ниже 3,6 В, что затрудняет её подключение к микроконтроллерам работающим от 5 В. Эти проблемы решены в этой плате Pololu, путём добавления дополнительных электронных компонентов, в том числе 3,3 В стабилизатора напряжения и схемы смещения логического уровня, сохраняя при этом компактный размер устройства. На плате полностью установлены SMD компоненты и в том числе LSM303, как это показано на фотографии продукта.

У LSM303 есть много настраиваемых параметров: динамический выбор чувствительности для акселерометра и магнитометра, выбор выходной скорости передачи данных, а также два независимо программируемых внешних инерциальных выводов прерывания. Магнитометр и акселерометр можно включать и выключать для экономии электроэнергии. Шесть независимых показаний (иногда называемых 6 степенями свободы) доступны через I²C (TWI) или SPI интерфейс. Они могут быть использованы для многих приложений, включая создания точного компаса, определяющего направления, независимо от наклона платы (Компания ST предоставляет справочный материал (1MB PDF), в котором раскрываются подробности создания такого устройства).

Плата включает в себя стабилизатор с низким падением напряжения, обеспечивающий 3,3 В необходимые для LSM303, и позволяет подключать датчик к внешнему источнику питания 2,5 - 5,5 В. Выход стабилизатора доступен на VDD ножке, и может служить источником питания внешних устройств с током потребления до 150 мА. Плата также включает в себя схему, смещающую (подтягивающую) шины синхронизации и данных интерфейса I²C к напряжению логического уровня вывода VIN, что делает её простой для взаимодействия с 5 В устройствами, а 2,54 мм расстояние между штырьками упрощает использование ее со стандартными макетными и монтажными платами.

Для приложений требующих несколько интегрированных датчиков, подойдет инерциальный измерительный блок IMU Pololu MinIMU-9 или AltIMU-10, который объединяет на одной печатной плате 3-осевые компас, акселерометр, гироскоп и обеспечивает девять независимых показаний, которые могут быть использованы для расчета абсолютной ориентации. AltIMU-10 также включает барометр, который может быть использован для расчета высоты.

Спецификация
  • Рабочее напряжение: от 2,5 до 5,5 В
  • Потребляемый ток: 5 мА
  • Выходной формат (I²C/SPI):
    • Акселерометр: 16-бит на ось
    • Магнитометр: 16-бит на ось
  • Диапазон чувствительности (конфигурируемый):
    • Акселерометр: ±2, ±4, ±6, ±8 или ±16 g
    • Магнитометр: ±2, ±4, ±8 или ±12 Гс
  • Размеры (без штырьевых разъёмов): 10 х 23 х 3 мм
  • Вес (без штырьевых разъёмов): 0,6 гр

В комплект входят

Вилка штыревая прямая 1x9 шаг 2,54 мм и вилка штыревая угловая 1x9 шаг 2,54 мм. Вы можете припаять разъёмы прямо к плате и использовать со стандартными макетными и монтажными платами с расстоянием между выводами 2,54 мм, либо припаять провода прямо на плату для более компактной конструкции.


Использование

Подключение

Независимо от используемого интерфейса, для подключения платы Pololu необходимо соединить вывод VIN (питание) с источником 2,5 - 5,5 В, и разъём GND (земля) с 0 В. (Кроме того, если вы используете плату с питанием в 3,3 В, вы можете оставить разъём VIN отключенным и обойти встроенный стабилизатор, подключив 3,3 В непосредственно к VDD).

Для использования в I²C режиме (работает по умолчанию), необходимо как минимум два логических соединения: SCL и SDA. Эти выводы подключены к встроенному преобразователю уровней, который делает их безопасными для использования при напряжении более 3,3 В; они должны быть подключены к I²C шине, работающие на том же логическом уровне, что и VIN. Остальные контакты не подключены на плате к преобразователю уровней и не являются 5 В-толерантными, но внешний 4-канальный двунаправленный логический преобразователь уровней Pololu может быть использован с этими выводами для достижения того же эффекта.

Для использования в SPI режиме, требуется четыре соединения: SPC, SDI, SDO, и CS. Они должны быть подключены к SPI шине, работающей на том же логическом уровне, что и VIN. Интерфейс SPI работает по 4-проводному каналу по умолчанию, с разделёнными выводами SDI и SDO. Но вывод SDO можно совместно использовать и для SDI, получив, таким образом, 3-проводной режим передачи данных.


Распиновка
Вывод Пояснение
VDD Выход со стабилизатора 3,3 В. Почти 150 мА доступно для питания внешних компонентов. (Если вы хотите, обойти внутренний стабилизатор, вы можете использовать разъём как вход питания 3,3 В, предварительно отключив VIN.)
VIN Входное напряжение 2,5 - 5,5 В. Уровни SCL/SPC и SDA/SDI "подтягиваются" шиной I²C и SPI до этого уровня. (Напряжение питания соответствует высокому логическому уровню на выводах).
GND Земля (0 В) соединяется с нулевым потенциалом (землёй) вашего источника питания. Земля должна быть общей для источника питания и для интерфейса управления платой I²C или SPI.
SCL/SPC Уровень смещением шины синхронизации I²C/SPI: ВЫСОКИМ является уровень VIN, НИЗКИМ = 0 В.
SDA/SDI Уровень смещением шины данных I²C/SPI (также служит SDO в 3-проводном режиме): ВЫСОКИМ является уровень VIN, НИЗКИМ = 0 В.
SDO/SA0 Вывод данных SPI при 4-проводном режиме: ВЫСОКИЙ уровень соответствует VDD, НИЗКИЙ = 0 В. Этот вывод не "подтягивается" до 5 В. Также используется в качестве входа для определения I²C адреса ведомого устройства (см. ниже).
CS Вход разрешения SPI (выбор элемента памяти). "Подтягивается" до VDD для включения связи по I²C по умолчанию; Связь по SPI управляется низким логическим уровнем.
INT2 Вывод инерциального прерывания 2, с логическим уровнем 3,3 В. Этот вывод не "подтягивается" до 5 В.
INT1 Вывод инерциального прерывания 1, с логическим уровнем 3,3 В. Этот вывод не "подтягивается" до 5 В.

Схема

На схеме продемонстрированы дополнительные компоненты платы, необходимые для упрощения использования LSM303. В их числе стабилизатор напряжения - он позволяет плате работать от питания 2,5 - 5,5 В и схема сдвига уровня, позволяющая I²C связываться на том же логическом уровне напряжения, что и VIN. Эта схема также доступна в виде загружаемого PDF: Схема Pololu LSM303 (162k pdf).

Коммуникация по I²C

При стандартном состоянии вывода CS (уровень VDD), данные об угловой скорости можно получить, настроив микросхему LSM303 на работу по I²C шине. Сдвиг уровня на I²C синхронизации (SCL) и линии передачи данных (SDA) позволяют I²C взаимодействовать с микроконтроллерами, работающими на таком же напряжении, как и VIN (2,5 - 5,5 В). Более полное описание I²C интерфейса для микросхемы LSM303 можно найти в спецификации LSM303D (1MB pdf), а также более подробную информацию о I²C в целом можно найти в спецификации NXP шины I²C (1MB pdf).

LSM303D имеет отдельный адрес ведомого на шине I²C. На плате контакт "адрес ведомого" SA0 этой микросхемы подтянут к VDD через резистор 4,7 кОм. Вы можете подать управляющий низкоуровневый сигнал на контакт SA0, чтобы изменить адрес ведомого. Это позволит подключить два однотипных датчика к одной шине I²C. В следующей таблице приведены адреса ведомых датчиков:

Датчик Адрес ведомого
(по умолчанию)
Адрес ведомого
(SA0 управляющий низкий)
Акселерометр/Магнитометр 0011101b 0011110b

При тестировании платы, была достигнута передача с чипа на тактовых частотах до 400 кГц; датчик способен работать и на более высоких частотах, но соответствующие испытания проведены не были. Сами чипы и платы не отвечают некоторым требованиям для создания I²C - совместимых устройств, работающих в быстром режиме. Они пропускают 50 нс импульс на шинах синхронизации и передачи данных, а также требуют дополнительную подтяжку на эти выводы для достижения совместимых характеристик сигнала синхронизации.

Коммуникация по SPI

Для работы с микросхемой LSM303 в SPI режиме, разъём CS (соединяющийся с VDD через подтягивающий 4,7 кОм резистор) должен управляться низким уровнем перед SPI команды и возвращаться к высокому уровню после конца команды. Схема смещения логического уровня на выводах синхронизации SPI (SPC) и данных (SDI) доступны в SPI режиме с микроконтроллерами, работающими на таком же напряжении, как VIN (2,5 - 5,5 В).

По умолчанию включён 4-проводный режим передачи данных. Гироскоп передаёт данные по ведущему устройству SPI по выделенной выходной линии (SDO). Если SPI интерфейс настроен на использование 3-проводного режима, вывод SDI выступает в роли SDO и управляется микросхемой LSM303 при передаче данных ведущему устройству. Более детальное объяснение SPI интерфейса для микросхемы LSM303 можно найти в спецификации (1MB pdf).

Пример кода

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

Рекомендации

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

  • Питание датчика выключено по умолчанию. Вы должны включить его, написав соответствующее значения в регистрах CTRL1 и CTRL7.
  • Вы можете считывать или записывать несколько регистров в одной I²C команде, утверждая, самый значимый бит адреса регистра для включения автоматической инкрементации адреса.
  • Вы можете включить ту же автоинкрементную функцию и в режиме SPI, утверждая, второй бит (бит 1, называется MS bit в спецификации) из команды SPI.
  • По сравнению с предыдущими датчиками LSM303 серии, интерфейс компаса в LSM303D гораздо более совместим с интерфейсом акселерометра и вместо того чтобы действовать как два отдельных ведомых устройств на одной шине, акселерометр и компас имеют общий адрес I²C .

  • Данный перевод является собственностью интернет-магазина Robototehnika.ru

    Файлы для скачивания:
    Спецификация LSM303D (1MB pdf)
    Техническое описание микросхемы ST LSM303D - 3-осевой акселерометр и 3-осевой магнетометр.

    Использование LSM303DLH для компенсации погрешности компаса (1MB pdf)
    Приложение от ST об использовании LSM303D в качестве компаса с компенсацией погрешности.

    Спецификация и руководство пользователя NXP шины I²C (1MB pdf)
    Официальная спецификация для шины I²C, разработанной NXP.

    Принципиальная схема датчика 3-осевой акселерометр и компас Pololu на LSM303D (162k pdf)
    Печатаемая принципиальная схема датчика 3-осевой акселерометр и компас Pololu на LSM303D.

    Схема размеров датчика 3-осевой акселерометр и компас Pololu на LSM303D (194k pdf)
    Печатаемая схема размеров датчика 3-осевой акселерометр и компас Pololu на LSM303D.

    Схема отверстий датчика 3-осевой акселерометр и компас Pololu на LSM303D (22k dxf)
    Этот чертеж DXF показывает расположение всех отверстий платы.

    3D модель датчика 3-осевой акселерометр и компас Pololu на LSM303D (3MB step)
    3D модель датчика 3-осевой акселерометр и компас Pololu на LSM303D.

    Рекомендуемые ссылки:
    Библиотека LSM303 для Arduino
    Эта библиотека служит для взаимодействия Arduino с платой 3-осевой акселерометр и компас Pololu на LSM303D, а также с акселерометром и компасом платы Pololu MinIMU-9 и AltIMU-10. Эта библиотека позволяет легко настроить устройство и читать исходные данные акселерометра и компаса, кроме того, имеет функцию для вычисления погрешности измерения, для тех, кто хочет использовать LSM303D в качестве компаса с компенсированной девиацией (с устранённой ошибкой измерения).

    Быстрая и грубая калибровка магнетометра в 3-х мерном пространстве.
    Пост в блоге Михаэля Шимниока о калибровке магнитометра в LSM303D и визуализации магнитных искажений. Эта информация как правило может быть применена также и к другим магнитометрам.

    ascii_graph от drewtm
    Этот скетч выводит текстовый график данных акселерометра LSM303 и гироскопа L3G, обеспечивая быстрый способ проверки, являются ли датчики рабочими, как ожидалось.

    Характеристики

    Артикул 04020203


    • С товаром покупают (1)