Мазмұны:

HMC5883 және Raspberry Pi көмегімен магниттік өрісті өлшеу: 4 қадам
HMC5883 және Raspberry Pi көмегімен магниттік өрісті өлшеу: 4 қадам

Бейне: HMC5883 және Raspberry Pi көмегімен магниттік өрісті өлшеу: 4 қадам

Бейне: HMC5883 және Raspberry Pi көмегімен магниттік өрісті өлшеу: 4 қадам
Бейне: Как использовать гироскоп, акселерометр, магнитометр MPU-9250 для Arduino 2024, Қараша
Anonim
Image
Image

HMC5883-бұл төмен өрісті магнитті сезуге арналған цифрлық компас. Бұл құрылғыда магнит өрісінің кең диапазоны +/- 8 Oe және шығыс жылдамдығы 160 Гц. HMC5883 сенсорында композитті бағыттау дәлдігін 1 °-2 ° дәлдікке қосатын автоматты ажырату таспасының драйверлері, офсетті жою және 12 биттік ADC бар. Барлық I²C шағын модульдері 5VDC жұмыс істеуге арналған.

Бұл оқулықта біз HMC5883 -тің Raspberry pi -мен егжей -тегжейлі жұмыс істеуін және оны java программалау тілінің көмегімен бағдарламалауын түсіндіреміз.

1 -қадам: Қажетті жабдық:

Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық

Тапсырманы орындау үшін келесі жабдық қажет:

1. HMC5883

2. Raspberry Pi

3. I2C кабелі

4. Raspberry Pi үшін I2C қалқаны

5. Ethernet кабелі

2 -қадам: Жабдықты қосу:

Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу

Аппаратты қосу бөлімі негізінен сенсор мен таңқурай пи арасындағы қажетті сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:

HMC5883 I2C арқылы жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.

Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз. Сізге тек төрт сым қажет!

Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.

Бұл байланыстар жоғарыдағы суреттерде көрсетілген.

3 -қадам: магнит өрісінің қарқындылығын өлшеу үшін Java коды:

Магниттік өрістің қарқындылығын өлшеу үшін Java коды
Магниттік өрістің қарқындылығын өлшеу үшін Java коды
Магниттік өрістің қарқындылығын өлшеу үшін Java коды
Магниттік өрістің қарқындылығын өлшеу үшін Java коды

Таңқурай пиін қолданудың артықшылығы - бұл сенсорды интерфейске қосу үшін тақтаны бағдарламалайтын тілдің икемділігін қамтамасыз етеді. Бұл тақтаның артықшылығын пайдаланып, біз мұнда Java тілінде бағдарламалауды көрсетеміз. HMC5883 java кодын біздің github қауымдастығынан жүктеуге болады, бұл Dcube Store.

Пайдаланушыларға ыңғайлы болу үшін біз кодты осында түсіндіреміз:

Кодтаудың бірінші қадамы ретінде сіз java жағдайында pi4j кітапханасын жүктеуіңіз керек, себебі бұл кітапхана кодта қолданылатын функцияларды қолдайды. Сонымен, кітапхананы жүктеу үшін келесі сілтемеге кіруге болады:

pi4j.com/install.html

Сіз осы сенсордың жұмыс істейтін java кодын мына жерден көшіре аласыз:

com.pi4j.io.i2c. I2CBus импорттау;

com.pi4j.io.i2c. I2CDevice импорттау;

mport com.pi4j.io.i2c. I2CFactory;

java.io. IOException импорттау; жалпы сынып HMC5883

{

public static void main (String args ) Ерекшеліктерді шығарады

{

// I2C шинасын жасаңыз

I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C құрылғысын алыңыз, HMC5883 I2C мекенжайы - 0x1E (30)

I2CDevice құрылғысы = Bus.getDevice (0x1E);

// Конфигурация регистрін таңдаңыз A

// Қалыпты өлшеу конфигурациясы, мәліметтер жиілігі o/p = 0,75 Гц

device.write (0x00, (байт) 0x60);

// Режим регистрін таңдаңыз

// Үздіксіз өлшеу режимі

device.write (0x02, (байт) 0x00);

Thread.sleep (500);

// 0x03 (3) 6 байт деректерді оқу

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

байт деректер = жаңа байт [6];

device.read (0x03, деректер, 0, 6);

// Деректерді түрлендіру

int xMag = ((деректер [0] & 0xFF) * 256 + (деректер [1] & 0xFF));

егер (xMag> 32767)

{

xMag -= 65536;

}

int zMag = ((деректер [2] & 0xFF) * 256 + (деректер [3] & 0xFF));

егер (zMag> 32767)

{

zMag -= 65536;

}

int yMag = ((деректер [4] & 0xFF) * 256 + (деректер [5] & 0xFF));

егер (yMag> 32767)

{

yMag -= 65536;

}

// Деректерді экранға шығару

System.out.printf («X-осіндегі магнит өрісі: %d %n», xMag);

System.out.printf («Y-осіндегі магнит өрісі: %d %n», yMag);

System.out.printf («Z-осіндегі магнит өрісі: %d %n», zMag);

}

}

Write () және read () функциялары пәрмендерді жазу және сенсордың шығысын оқу үшін қолданылады. Келесі бөлімде магнит өрісінің мәндері көрсетілген.

// 0x03 (3) 6 байт деректерді оқу

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

байт деректер = жаңа байт [6];

device.read (0x03, деректер, 0, 6);

Шығару жоғарыдағы суретте көрсетілген.

4 -қадам: Өтініштер:

Қолданбалар
Қолданбалар

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

Ұсынылған: