Мазмұны:

GY511 модулін Arduino көмегімен қалай қолдану керек [Сандық компас жасаңыз]: 11 қадам
GY511 модулін Arduino көмегімен қалай қолдану керек [Сандық компас жасаңыз]: 11 қадам

Бейне: GY511 модулін Arduino көмегімен қалай қолдану керек [Сандық компас жасаңыз]: 11 қадам

Бейне: GY511 модулін Arduino көмегімен қалай қолдану керек [Сандық компас жасаңыз]: 11 қадам
Бейне: Как управлять приводом с помощью Arduino - Robojax 2024, Қараша
Anonim
GY511 модулін Arduino -мен қалай қолдану керек [Сандық компас жасаңыз]
GY511 модулін Arduino -мен қалай қолдану керек [Сандық компас жасаңыз]

Шолу

Кейбір электроника жобаларында біз географиялық орналасуды кез келген уақытта білуіміз керек және соған сәйкес нақты операция жасауымыз керек. Бұл оқулықта сіз Arduino көмегімен LSM303DLHC GY-511 компас модулін цифрлық компас жасауды үйренесіз. Алдымен сіз бұл модуль мен оның қалай жұмыс істейтінін білесіз, содан кейін 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 СКД модулі *1

Секіргіштер *1

Бағдарламалық қамтамасыз ету

Arduino IDE

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

GY-511 компас модулі Arduino көмегімен
GY-511 компас модулі Arduino көмегімен
GY-511 компас модулі Arduino көмегімен
GY-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 -қадам: Схема

Схема
Схема

6 -қадам: код

Бұл кодта сізге I2C байланысы үшін Wire.h кітапханасы және компас модулі үшін LMS303.h кітапханасы қажет. Сіз бұл кітапханаларды келесі сілтемелерден жүктей аласыз.

LMS303.h кітапханасы

Wire.h кітапханасы

Ескерту Егер сіз QMC5883 қолдансаңыз, сізге келесі кітапхана қажет:

MechaQMC5883L.h

Мұнда біз LMS303 кодын түсіндіреміз, бірақ сіз QMC модулінің кодтарын жүктей аласыз.

Кейбір жаңа функцияларды қарастырайық:

compass.enableDefault ();

Модульді инициализациялау

compass.read ();

Компас модулінің шығыс мәндерін оқу

жүгіру_мин.з = мин (жүгіру_мин.з, компас.мз); жүгіру_мах.х = максимум (жүгіру_мах.х, компас.mx);

Өлшенген мәндерді салыстыру арқылы өлшеу диапазонының минималды және максималды мәндерін анықтау.

7 -қадам: цифрлық компас жасау

Модульді калибрлегеннен кейін біз модульге сервоприводты қосу арқылы циркуль құрастырамыз. Серво индикаторы бізге әрқашан компастың қызыл көрсеткі сияқты солтүстік бағытты көрсетеді. Мұны істеу үшін алдымен компас модулі географиялық бағытты есептейді және оны Arduino -ға жібереді, содан кейін сәйкес коэффициентті қолдана отырып, сіз серво қозғалтқышының индикаторы магниттік солтүстікке бағытталатындай бұрылатын бұрышты есептейсіз. Ақыр соңында, біз бұл бұрышты серво қозғалтқышына қолданамыз.

8 -қадам: Схема

Схема
Схема

9 -қадам: код

Код
Код

Бұл бөлім үшін сізге Arduino бағдарламалық жасақтамасында әдепкі бойынша орнатылған Servo.h кітапханасы қажет.

Кейбір жаңа функцияларды қарастырайық:

Servo Servo1;

Модульді инициализациялау

compass.read ();

Серво қозғалтқыш объектісімен таныстыру

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

Компас модулін және серво қозғалтқышты инициализациялау

Servo1.attach () аргументі - бұл серво қозғалтқышына қосылған түйреуіштің нөмірі.

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 (айдар);

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

Назар аударыңыз, серво қозғалтқышында магнит өрісі болуы мүмкін, сондықтан компас модулінің ауытқуына әкелмейтін серво қозғалтқышты компас модулінен қолайлы қашықтықта орналастырған дұрыс.

Ұсынылған: