Как да използвате модула GY-271 с Arduino за създаване на цифров компас

  • GY-271 измерва магнитното поле в три оси и предава своите данни чрез I2C.
  • Изчисляването на ориентацията по отношение на север изисква коригиране на магнитната деклинация.
  • GY-271 се използва в роботиката, дронове и автономни навигационни системи.

GY-271 Arduino модул

По този повод ще говорим за един от сензорите, които се използват най-често в проекти на Arduino, свързани с навигация и ориентация: GY-271. Този модул включва сензора HMC5883L, който е триосен магнитометър, способен да открива магнитни полета и следователно да ни дава ориентация по отношение на магнитния север.

Ако обмисляте да го интегрирате в проект с Arduino, в тази статия ще обясним всички негови подробности: от неговите характеристики, как да го свържете и програмирате, до примери за употреба и съвети за постигане на най-добра прецизност. Така че прочетете и разберете как да създадете цифров компас с Arduino!

Какво представлява сензорът GY-271?

Сензорът GY-271 Това е модул, който интегрира магнитометъра HMC5883L. Този чип може да измерва магнитното поле в трите оси (X, Y и Z) и с тези данни е възможно да се знае ориентацията по отношение на магнитното поле на Земята. Този сензор има висока точност и се използва широко в инженерни проекти. роботна навигация или автономни превозни средства.

Комуникацията между този модул и Arduino се осъществява чрез I2C шина, което значително улеснява получаването на измерените данни. HMC5883L има диапазон на измерване от ±0.88 Gauss до ±8.1 Gauss, в зависимост от конфигурацията, покриващ широк спектър от приложения.

Връзки и сглобяване с Arduino

Свързването на GY-271 към вашия Arduino е наистина лесно, просто ви трябват няколко кабела и следвайте основната диаграма:

  • Свържете щифта GND на модула с щифта GND на Arduino
  • ПИН кодът VCC на GY-271 трябва да бъде свързан към 5V на Arduino
  • Свържете щифта S.D.A. на GY-271 с щифт A4 на Arduino (или SCL в някои модели като Mega)
  • ПИН кодът SCL трябва да отиде до щифт A5 на Arduino (или SDA в някои случаи)

След като свържете всичко, модулът ще бъде готов да започне работа. Ако целта ви е да получите данни за магнитното поле и да създадете цифров компас, вече имате основите. Имайте предвид обаче, че околна среда мястото, където поставите сензора, трябва да е без магнитни смущения, тъй като близките метали или електронни устройства могат да променят измерванията.

Примери за код с Arduino

По-долу ви показваме основен пример за това как да прочетете стойностите X, Y и Z на магнитното поле, като използвате подходящата библиотека. Тази библиотека ще улесни I2C комуникацията и отчитането на сензорите:

#include <Wire.h>
#include <HMC5883L.h>

HMC5883L compass;
int16_t mx, my, mz;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  compass.initialize();
}

void loop() {
  compass.getHeading(&mx, &my, &mz);
  Serial.print("X: ");
  Serial.print(mx);
  Serial.print(" Y: ");
  Serial.print(my);
  Serial.print(" Z: ");
  Serial.println(mz);
  delay(500);
}

Този код е идеален за получаване на компонентите на магнитното поле в трите оси. След като имате тези стойности, можете да изчислите ориентацията на сензора по отношение на магнитния север, като използвате функцията атан2, което ще ни позволи да преобразуваме осите X и Y в ъгъл.

Изчисляване на ъгъла спрямо севера

Сега, след като имате показанията на магнитното поле, следващата стъпка е да изчислите ориентацията по отношение на магнитния север. За да направите това, можете да използвате следната формула:

float angulo = atan2(my, mx) * (180 / PI);

Това изчисление ще ни предостави ъгъл в градуси, който представлява посоката към магнитния север. Трябва обаче да вземете предвид магнитна деклинация, което е разликата между магнитния север и географския север. В зависимост от вашето географско местоположение тази стойност може да варира и е важно да я коригирате, за да получите по-точен компас.

Допълнителни настройки и режими на работа

GY-271 предлага няколко конфигурации, които ще ви позволят да регулирате работата му според вашите нужди. Например, можете да изберете две режими на работа:

  • непрекъснат режим: Магнитометърът непрекъснато извършва измервания и актуализира съответните регистри (X, Y, Z).
  • Режим на единично измерване: Сензорът отчита само когато Arduino го поиска, което може да бъде полезно, ако искате да пестите енергия.

Освен това можете да регулирате чувствителността на сензора, като промените rango de medición. Наличните диапазони варират от ±0.88 Ga до ±8.1 Ga, което ви позволява да адаптирате сензора към различни среди и работни условия.

Не забравяйте, че за да промените обхвата на измерване, трябва да използвате функцията setGain от библиотеката, което ви позволява да зададете усилването на сензора в зависимост от магнитния диапазон, който искате да измерите.

GY-271 Приложения

Сензорът GY-271 има множество приложения в областта на роботиката и навигацията. Като сравнително евтино и лесно за изпълнение устройство, то се използва в проекти като:

  • автономни роувъри: Позволява на роботите да знаят в коя посока са обърнати.
  • Квадрокоптери: Помага за поддържане на ориентацията на дрона по отношение на север по време на полет.
  • навигационни системи: Всяко превозно средство, което трябва да знае своята позиция и ориентация, може да се възползва от този модул.

Една от най-любопитните подробности е, че въпреки че GY-271 има голяма прецизност при контролирани условия, измерването му може да бъде повлияно от смущения, като например наличието на метали или близки електромагнитни полета. Това може да се коригира с помощта на техники калибровка комбинирани с акселерометри или жироскопи (IMU), което е типично за по-модерните навигационни системи.

Комбинацията от този сензор с акселерометри, например, позволява изграждането на по-прецизни устройства, които са устойчиви на магнитен шум, което отваря набор от възможности за използване в проекти с Arduino и други микроконтролери...


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.