Съдържание:

Как да използвате модул GY511 с Arduino [Направете цифров компас]: 11 стъпки
Как да използвате модул GY511 с Arduino [Направете цифров компас]: 11 стъпки

Видео: Как да използвате модул GY511 с Arduino [Направете цифров компас]: 11 стъпки

Видео: Как да използвате модул GY511 с Arduino [Направете цифров компас]: 11 стъпки
Видео: Предимствата да използвате понижаващо-повишаващ импулсен модул за стабилизиране на напрежението 2024, Ноември
Anonim
Как да използвате модул GY511 с Arduino [Направете цифров компас]
Как да използвате модул GY511 с Arduino [Направете цифров компас]

Общ преглед

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

Какво ще научите

  • Какво представлява компасният модул?
  • Модул компас и интерфейс Arduino.
  • Направете цифров компас с модула GY-511 и Arduino.

Стъпка 1: Обща информация за модула Compass

Обща информация за модула Compass
Обща информация за модула Compass

Модулът GY-511 включва 3-осен акселерометър и 3-осен магнитометър. Този сензор може да измерва линейното ускорение при пълни скали от ± 2 g / ± 4 g / ± 8 g / ± 16 g и магнитни полета при пълни скали от ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Гаус.

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

Бакшиш

QMC5883L е друг често използван компасов модул. Този модул, който има подобна структура и приложение като модула LMS303, е малко по -различен по производителност. Така че, ако правите проектите, бъдете внимателни относно типа на вашия модул. Ако вашият модул е QMC5882L, използвайте съответната библиотека и кодове, които също са включени в урока.

Стъпка 2: Необходими компоненти

Задължителни компоненти
Задължителни компоненти

Хардуерни компоненти

Arduino UNO R3 *1

GY-511 3-осен акселерометър + магнитометър *1

Сервомотор TowerPro SG-90 *1

1602 LCD модул *1

Джъмпери *1

Софтуерни приложения

Arduino IDE

Стъпка 3: Свързване на GY-511 компасов модул с Arduino

Свързващ GY-511 компасов модул с Arduino
Свързващ GY-511 компасов модул с Arduino
Свързващ GY-511 компасов модул с Arduino
Свързващ GY-511 компасов модул с Arduino

Компасният модул GY-511 има 8 пина, но имате нужда само от 4 от тях, за да взаимодействате с Arduino. Този модул комуникира с Arduino, използвайки I2C протокол, така че свържете SDA (I2C изход) и SCK (I2C часовник вход) изводи на модула към I2C щифтовете на платката Arduino.

Забележка Както можете да видите, ние използвахме модула GY-511 в този проект. Но можете да използвате тази инструкция за настройка на други модули на компас LMS303.

Стъпка 4: Калибриране на модул компас GY-511

За да навигирате, първо трябва да калибрирате модула, което означава да зададете обхвата на измерване от 0 до 360 градуса. За да направите това, свържете модула към Arduino, както е показано по -долу, и качете следния код на дъската си. След като изпълните кода, можете да видите минималните и максималните стойности на обхвата на измерване за оста X, Y и Z в прозореца на серийния монитор. Тези числа ще ви трябват в следващата част, затова ги запишете.

Стъпка 5: Схема

Верига
Верига

Стъпка 6: Код

В този код се нуждаете от библиотеката Wire.h за I2C комуникация и библиотека LMS303.h за модула компас. Можете да изтеглите тези библиотеки от следните връзки.

Библиотека LMS303.h

Библиотека Wire.h

Забележка Ако използвате QMC5883, ще ви е необходима следната библиотека:

MechaQMC5883L.h

Тук обясняваме кода за LMS303, но можете да изтеглите и кодовете за QMC модула.

Нека да видим някои от новите функции:

compass.enableDefault ();

Инициализация на модула

compass.read ();

Четене на изходните стойности на модула компас

running_min.z = min (running_min.z, compass.m.z); running_max.x = max (running_max.x, compass.m.x);

Определяне на минималните и максималните стойности на обхвата на измерване чрез сравняване на измерените стойности.

Стъпка 7: Създаване на цифров компас

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

Стъпка 8: Схема

Верига
Верига

Стъпка 9: Код

Код
Код

За тази част също се нуждаете от библиотеката Servo.h, която е инсталирана на вашия софтуер Arduino по подразбиране.

Нека да разгледаме някои от новите функции:

Серво Серво1;

Инициализация на модула

compass.read ();

Представяме обекта на серво мотора

Servo1.attach (servoPin); compass.init (); compass.enableDefault ();

Инициализиране на компас модула и серво мотора

Аргументът Servo1.attach () е номерът на щифта, свързан към серво мотора.

компас.m_min = (LSM303:: вектор) { -32767, -32767, -32767}; компас.m_max = (LSM303:: вектор) { +32767, +32767, +32767};

Използвайки тези редове, вие определяте минималните и максималните стойности за измерване на обхвата, получен в предишната част.

float heading = compass.heading ((LSM303:: vector) {0, 0, 1});

Функцията heading () връща ъгъла между координатната ос и неподвижната ос. Можете да определите фиксираната ос с вектор в аргумента на функцията. Например тук, чрез дефиниране на (LSM303:: вектор) {0, 0, 1}, оста Z се счита за постоянна ос.

Servo1.write (заглавие);

Функцията Servo1.write () прилага стойността на четене от модула на компаса към серво мотора.

Забележка: Имайте предвид, че серво моторът може да има магнитно поле, затова е по -добре да поставите серво мотора на подходящо разстояние от модула на компаса, така че да не отклонява модула на компаса.

Препоръчано: