|
Обратите внимание на близкий |
|
Модуль RI016. GY-273. 3-х осевой магнитный компас HMC5883L |
|
Модуль RI062. Компас 3-х осевой GY-283 (CJMCU-HMC5983) |
|
Модуль RI0131. BMM150. Геомагнитный датчик BMM150. |
Модуль GY-271 на микросхеме HMC5883L - это трехосевой цифровой магниторезистивный компас (магнитометр на три координаты). В качестве сенсоров используется три магниторезистивных датчика. Это дает возможность получать трехмерную картину направленности магнитного поля и его величину. Датчик может использоваться в мобильных телефонах, планшетах, навигационном оборудовании, при конструировании роботов и радиоуправляемых моделей.
Микросхема HMC5883L компания Honeywell имеет малый размер и низкое энергопотребление, работает по шине I2C. Напряжение питания составляет 2.2-3.6В, чувствительность датчика 5 миллигаусс. Имеет автоматическую калибровку.
На плате модуля GY-271 установлен стабилизатор питания, а также размещены необходимые для надежного функционирования подтягивающие резисторы и удобно расположенные контакты с шагом 2.54 мм. Модуль выполнен в виде многослойной платы, готовой к установке. Это позволяет устанавливать модуль внешнего компаса таким образом, чтобы избежать помех от близко расположенных электродвигателей робота.
Модуль имеет 5 контактов:
•VCC – напряжение питания (3.3 – 5 В);
•GND – общий;
•SDA – шина данных по интерфейсу I2C;
•SCL – шина синхронизации I2C;
•DRDY – сигнал о готовности компаса к работе после самокалибровки.
Схема подключения к плате Arduino.
Для работы с датчиком есть готовая Arduino библиотека HMC5883L, которую необходимо скачать и установить в Arduino IDE.
Скетч для расчета направления (угла отклонения на север).
#include "HMC5883L.h"
HMC5883L sensor;
void setup(){
// запуск последовательного порта
Serial.begin(9600);
// запуск I2C
Wire.begin();
// создание экземпляра HMC5883L
sensor = HMC5883L();
// инициализация HMC5883L
setupHMC5883L();
}
void loop(){
// расчет направления и вывод в последовательный порт
float heading = getHeading();
Serial.println(heading);
delay(250);
}
// инициализация HMC5883L, и проверка наличия ошибок
void setupHMC5883L(){
int error;
// чувствительность датчика из диапазона: 0.88, 1.3, 1.9, 2.5, 4.0, 4.7, 5.6, 8.1
error = sensor.SetScale(0.88);
// проверка на ошибку
if(error != 0)
Serial.println(sensor.GetErrorText(error));
// установка режима измерений как Continuous (продолжительный)
error = sensor.SetMeasurementMode(Measurement_Continuous);
// проверка на ошибку
if(error != 0)
Serial.println(sensor.GetErrorText(error));
}
// считывание данных с HMC5883L и рассчет направления
float getHeading(){
// получить масштабированные элементы с датчика
MagnetometerScaled scaled = compass.ReadScaledAxis();
// высчитать направление
float heading = atan2(scaled.YAxis, scaled.XAxis);
// коррекция значения с учетом знаков
if(heading < 0) heading += 2*PI;
if(heading > 2*PI) heading -= 2*PI;
// перевод радианов в градусы
return heading * RAD_TO_DEG;
}
Подключение (Скетч) трехосевого цифрового магниторезистивного компаса GY-271к Arduino
Fritzing подключения трехосевого цифрового магниторезистивного компаса GY-271к Arduino
Модуль RA088. Трехосевой цифровой магниторезистивный компас GY-271. Описание в формате PDF
------------------
КВЛЕ0384:230