Мазмуну:

GY511 модулун Arduino менен кантип колдонуу керек [Санарип компасты жасоо]: 11 кадам
GY511 модулун Arduino менен кантип колдонуу керек [Санарип компасты жасоо]: 11 кадам

Video: GY511 модулун Arduino менен кантип колдонуу керек [Санарип компасты жасоо]: 11 кадам

Video: GY511 модулун Arduino менен кантип колдонуу керек [Санарип компасты жасоо]: 11 кадам
Video: Использование датчика расстояния Sharp IR GP2Y0A51SK0F с Arduino (от 2 см до 15 см) 2024, Ноябрь
Anonim
GY511 модулун Arduino менен кантип колдонуу керек [Санариптик компасты жасоо]
GY511 модулун Arduino менен кантип колдонуу керек [Санариптик компасты жасоо]

Обзор

Кээ бир электроника долбоорлорунда биз каалаган убакта географиялык жайгашууну билишибиз жана ошого жараша белгилүү бир операцияны жасашыбыз керек. Бул окуу куралы, сиз LSM303DLHC GY-511 компас модулун Arduino менен санариптик компасты жасоо үчүн колдонууну үйрөнөсүз. Биринчиден, сиз бул модуль жана анын кантип иштээрин билесиз, андан кийин LSM303DLHC GY-511 модулун Arduino менен кантип интерфейстештирүүнү көрөсүз.

Эмнени үйрөнөсүң

  • Компас модулу деген эмне?
  • Компас модулу жана Arduino интерфейси.
  • GY-511 модулу жана Arduino менен санариптик компас жасаңыз.

1 -кадам: Компас модулу жөнүндө жалпы маалымат

Компас модулу жөнүндө жалпы маалымат
Компас модулу жөнүндө жалпы маалымат

GY-511 модулу 3 огунун акселерометрин жана 3 огунун магнитометрин камтыйт. Бул сенсор ± 2 г / ± 4 г / ± 8 г / ± 16 г жана магнит талаалары ± 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 Servo мотору SG-90 *1

1602 LCD модулу *1

Секирүүчүлөр *1

Программалык камсыздоо

Arduino IDE

3-кадам: Arduino менен GY-511 компас модулунун интерфейси

GU-511 компас модулу Arduino менен интерфейс
GU-511 компас модулу Arduino менен интерфейс
GU-511 компас модулу Arduino менен интерфейс
GU-511 компас модулу Arduino менен интерфейс

GY-511 компастын модулунда 8 төөнөгүч бар, бирок Arduino менен иштөө үчүн алардын 4ү гана керек. Бул модуль Arduino менен I2C протоколу аркылуу байланышат, андыктан модулдун SDA (I2C чыгаруу) жана SCK (I2C саат киргизүү) казыктарын Arduino тактасындагы I2C казыктарына туташтырыңыз.

Эскертүү Көрүнүп тургандай, биз бул долбоордо GY-511 модулун колдондук. Бирок сиз бул көрсөтмөнү башка LMS303 компастын модулдарын орнотуу үчүн колдоно аласыз.

4-кадам: GY-511 Компас модулун калибрлөө

Чабыттоо үчүн, адегенде, модулду калибрлөө керек, бул 0дон 360 градуска чейин өлчөө диапазонун коюуну билдирет. Бул үчүн, модулду төмөндө көрсөтүлгөндөй Arduino менен туташтырып, төмөнкү кодду тактаңызга жүктөңүз. Кодду аткаргандан кийин, сериялык монитор терезесинен X, Y жана Z огунун өлчөө диапазонунун минималдуу жана максималдуу маанилерин көрө аласыз. Бул номерлер кийинки бөлүктө сизге керек болот, андыктан аларды жазыңыз.

5 -кадам: Circuit

Circuit
Circuit

6 -кадам: Код

Бул коддо I2C байланышы үчүн Wire.h китепканасы жана компас модулу үчүн 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 = макс (жүгүрүү_макс.х, компас.mx);

Ченелген диапазондун минималдуу жана максималдуу маанилерин өлчөөчү маанилерди салыштыруу аркылуу аныктоо.

7 -кадам: Санариптик компасты жасоо

Модулду калибрлөөдөн кийин, модулга сервоприводду туташтырып, компас курабыз. Ошентип, серво көрсөткүчү бизге түндүктү көрсөтөт, компастын кызыл жебеси сыяктуу. Бул үчүн, компас модулу алгач географиялык багытты эсептеп, аны Arduinoго жөнөтөт, анан тиешелүү коэффициентти колдонуу менен сиз серво мотору бурула турган бурчту эсептейсиз, анын индикатору магниттик түндүктү көрсөтөт. Акыр -аягы, биз бурчту servo моторго колдонобуз.

8 -кадам: Район

Circuit
Circuit

9 -кадам: Код

Code
Code

Бул бөлүк үчүн сизге Arduino программасына демейки боюнча орнотулган Servo.h китепканасы да керек.

Жаңы функциялардын айрымдарын карап көрөлү:

Servo Servo1;

Модулдун инициализациясы

compass.read ();

Серво мотор объектиси менен тааныштыруу

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

Компастын модулун жана серво моторун баштоо

Servo1.attach () аргументи - бул servo моторго туташкан пиндин саны.

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

Бул сызыктарды колдонуу менен сиз мурунку бөлүктө алынган диапазонду өлчөө үчүн минималдуу жана максималдуу маанилерди аныктайсыз.

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

Heading () функциясы координата огу менен туруктуу огунун ортосундагы бурчту кайтарат. Функциянын аргументиндеги вектор менен белгиленген окту аныктай аласыз. Мисалы, бул жерде, (LSM303:: вектор) {0, 0, 1} аныктоо менен, Z огу туруктуу огу катары каралат.

Servo1.write (heading);

Servo1.write () функциясы серво моторуна компас модулунун окуу маанисин колдонот.

Эскертүү Серво кыймылдаткычынын магнит талаасы болушу мүмкүн, андыктан серво моторун компастын модулунан ылайыктуу аралыкта жайгаштыруу жакшы, бул компастын модулунун четтөөсүнө алып келбейт.

Сунушталууда: