Гироскоп v2: инструкция, схемы и примеры использования
Используйте гироскоп для определения угловой скорости вокруг собственных осей X, Y, Z.
Модуль пригодиться для стабилизации летательного аппарата по самолётным углам: тангаж, крен и рысканье. Гироскоп совместно с акселерометром применяется для отслеживания угла поворота в современном смартфоне.
Если вам необходимо определить положение вашего девайса в пространстве, обратите внимания на IMU-сенсор на 10 степеней свободы.
Видеообзор
Гироскоп в обзоре IMU-модуля.
Пример работы для Arduino и XOD
В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например, Uno.
На аппаратном уровне инерционный модуль общается с управляющей электроникой по шине I²C. Но не переживайте о битах и байтах: используйте библиотеку TroykaIMU и на выходе получите готовы данные.
Схема устройства
Подключите гироскоп к пинам питания и шины I²C — SDA и SCL на платформе Uno. Для коммуникации используйте соединительные провода «мама-папа»
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
С Troyka Slot Shield провода не понадобятся вовсе.
Вывод данных
В качестве примера выведем в Serial-порт угловую скорость вокруг собственных осей X, Y, Z.
- gyro-read-data.ino
// Библиотека для работы с модулями IMU #include <TroykaIMU.h> // Создаём объект для работы с гироскопом Gyroscope gyroscope; void setup() { // Открываем последовательный порт Serial.begin(9600); // Выводим сообщение о начале инициализации Serial.println("Gyroscope begin"); // Инициализируем гироскоп gyroscope.begin(); // Выводим сообщение об удачной инициализации Serial.println("Initialization completed"); } void loop() { // Выводим угловую скорость в градусах в секунду относительно оси X Serial.print(gyroscope.readRotationDegX()); Serial.print("\t\t"); // Выводим угловую скорость в градусах в секунду относительно оси Y Serial.print(gyroscope.readRotationDegY()); Serial.print("\t\t"); // Выводим угловую скорость в градусах в секунду относительно оси Z Serial.print(gyroscope.readRotationDegZ()); Serial.print("\t\t"); Serial.println(); delay(100); }
Пример для Espruino
В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии Espruino, например, Iskra JS.
Схема устройства
Подключите гироскоп к пинам питания и шины I²C — SDA и SCL платформы Iskra JS. Для коммуникации используйте соединительные провода «мама-папа».
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
С Troyka Slot Shield провода не понадобятся вовсе.
Вывод данных
В качестве примера выведем в консоль угловую скорость гироскопа вокруг собственных осей X, Y, Z.
Пример для Raspberry Pi
В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры Raspberry Pi, например, Raspberry Pi 4.
Схема устройства
Подключите гироскоп к пинам SDA и SCL шины I²C компьютера Raspberry Pi.
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Cap, которая надевается сверху на малину методом бутерброда.
Программная настройка
Вывод данных
А написать пример кода для Raspberry Pi оставим вам домашним заданием.
Элементы платы
Гироскоп на I3G4250D
Гироскоп выполнен на чипе I3G4250D и представляет собой миниатюрный датчик перемещений в трёхмерном пространстве, разработанный по технологии MEMS от компании STMicroelectronics. Адрес устройства по умолчанию равен 0x68, но может быть изменен на 0x69. Подробности читайте в разделе смена адреса модуля.
Регулятор напряжения
Линейный понижающий регулятор напряжения NCP698SQ33T1G обеспечивает питание MEMS-чипа и других компонентов сенсора. Диапазон входного напряжения от 3,3 до 5 вольт. Выходное напряжение 3,3 В с максимальным выходным током 150 мА.
Преобразователь логических уровней
Преобразователь логических уровней PCA9306DCT необходим для сопряжения датчика с разными напряжениями логических уровней от 3,3 до 5 вольт. Другими словами сенсор совместим как с 3,3 вольтовыми платами, например, Raspberry Pi, так и с 5 вольтовыми — Arduino Uno.
Troyka-контакты
Датчик подключается к управляющей электронике через две группы Troyka-контактов:
- Питание (V) — соедините с рабочим напряжением микроконтроллера.
- Земля (G) — соедините с землёй микроконтроллера.
- Сигнальный (D) — пин данных шины I²C. Подключите к пину SDA микроконтроллера.
- Сигнальный (C) — пин тактирования шины I²C. Подключите к пину SCL микроконтроллера.
Смена адреса модуля
Иногда в проекте необходимо использовать несколько гироскопов. Для этого на модуле предусмотрены контактная площадка. Для смена адреса капните каплей припоя на отведённую контактную площадку.
Модуль | Адрес без перемычки | Адрес с перемычкой |
---|---|---|
Гироскоп | 0x68 | 0x69 |
Принципиальная и монтажная схемы
Габаритный чертёж
Характеристики
- MEMS-датчик: гироскоп I3G4250D
- Интерфейс: I²C
- I²C-адрес:
- без перемычки: 0x68
- с перемычкой: 0x69
- Максимальная чувствительность: 8,7×10-3 °/с
- Диапазон измерений: ±250 / ±500 / ±2000 °/с²
- Напряжение питания: 3,3–5 В
- Потребляемый ток: до 10 мА
- Размеры: 25,4×25,4×10,1 мм