Агуулгын хүснэгт:

HMC5883 ба Raspberry Pi ашиглан соронзон орны хэмжилт: 4 алхам
HMC5883 ба Raspberry Pi ашиглан соронзон орны хэмжилт: 4 алхам

Видео: HMC5883 ба Raspberry Pi ашиглан соронзон орны хэмжилт: 4 алхам

Видео: HMC5883 ба Raspberry Pi ашиглан соронзон орны хэмжилт: 4 алхам
Видео: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Долдугаар сарын
Anonim
Image
Image

HMC5883 бол бага талбайн соронзон мэдрэх зориулалттай дижитал луужин юм. Энэхүү төхөөрөмж нь өргөн соронзон орны хүрээтэй +/- 8 Oe ба гаралтын хурд нь 160 Гц юм. HMC5883 мэдрэгч нь луужингийн чиглэлийг 1 ° -аас 2 ° хүртэл нарийвчлах боломжийг олгодог автомат унтраах драйвер, офсет цуцлах, 12 битийн ADC зэргийг багтаасан болно. Бүх I²C мини модулиуд нь 5VDC дээр ажиллах зориулалттай.

Энэхүү гарын авлагад бид Raspberry pi -тэй HMC5883 -ийн нарийвчилсан ажил, түүний програмчлалын java програмчлалын хэлийг тайлбарлах болно.

Алхам 1: Шаардлагатай тоног төхөөрөмж:

Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж
Шаардлагатай техник хангамж

Даалгаврыг гүйцэтгэхэд шаардлагатай тоног төхөөрөмж дараах байдалтай байна.

1. HMC5883

2. Raspberry Pi

3. I2C кабель

4. Raspberry Pi -д зориулсан I2C бамбай

5. Ethernet кабель

Алхам 2: Тоног төхөөрөмжийн холболт:

Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт
Тоног төхөөрөмжийн холболт

Тоног төхөөрөмжийн холболтын хэсэг нь үндсэндээ мэдрэгч ба бөөрөлзгөнө pi хооронд шаардлагатай утас холболтыг тайлбарладаг. Аливаа систем дээр ажиллахад шаардлагатай гаралтын хувьд зөв холболтыг хангах нь хамгийн чухал зүйл юм. Тиймээс шаардлагатай холболтууд дараах байдалтай байна.

HMC5883 нь I2C дээр ажиллах болно. Мэдрэгчийн интерфэйс бүрийг хэрхэн яаж холбохыг харуулсан утасны диаграмын жишээ энд байна.

Хайрцагнаас гадуурх самбар нь I2C интерфэйс дээр тохируулагдсан байдаг тул хэрэв та өөр ойлголтгүй бол энэ холболтыг ашиглахыг зөвлөж байна. Танд ердөө дөрвөн утас л хангалттай!

Vcc, Gnd, SCL, SDA зүүг зөвхөн дөрвөн холболт шаарддаг бөгөөд эдгээр нь I2C кабелийн тусламжтайгаар холбогддог.

Эдгээр холболтыг дээрх зурган дээр харуулав.

Алхам 3: Соронзон орны эрчмийг хэмжих Java код:

Соронзон орны эрчмийг хэмжих Java код
Соронзон орны эрчмийг хэмжих Java код
Соронзон орны эрчмийг хэмжих Java код
Соронзон орны эрчмийг хэмжих Java код

Бөөрөлзгөнө pi ашиглах давуу тал нь мэдрэгчийг интерфэйстэй холбохын тулд самбарыг програмчлах хэлний уян хатан байдлыг хангаж өгдөг. Энэхүү самбарын давуу талыг ашиглахын тулд бид Java програмчлалыг энд харуулав. HMC5883 -ийн java кодыг манай github нийгэмлэгээс татаж авах боломжтой Dcube Store.

Хэрэглэгчдэд хялбар байхын тулд бид кодыг энд тайлбарлаж байна.

Кодлох эхний алхам бол java тохиолдолд pi4j номын санг татаж авах хэрэгтэй, учир нь энэ номын сан нь кодонд ашиглагддаг функцийг дэмждэг. Тиймээс номын санг татаж авахын тулд та дараах линкээр орж үзэх боломжтой.

pi4j.com/install.html

Та энэ мэдрэгчийн java кодыг эндээс хуулж болно.

com.pi4j.io.i2c. I2CBus импортлох;

com.pi4j.io.i2c. I2CD төхөөрөмжийг импортлох;

mport com.pi4j.io.i2c. I2CFactory;

java.io. IOException импортлох; нийтийн ангилал HMC5883

{

public static void main (String args ) Exception хаядаг

{

// 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);

// Mode бүртгэлийг сонгоно уу

// Тасралтгүй хэмжих горим

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

Thread.sleep (500);

// 0x03 -аас 6 байт өгөгдлийг унших (3)

// 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-Axis дахь соронзон орон: %d %n", xMag);

System.out.printf ("Y тэнхлэг дэх соронзон орон: %d %n", yMag);

System.out.printf ("Z-Axis дахь соронзон орон: %d %n", zMag);

}

}

Write () ба read () функцууд нь тушаалуудыг бичиж, мэдрэгчийн гаралтыг уншихад ашиглагддаг. Дараах хэсэг нь соронзон орны утгыг хэрхэн уншиж байгааг харуулав.

// 0x03 -аас 6 байт өгөгдлийг унших (3)

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

байт өгөгдөл = шинэ байт [6];

device.read (0x03, өгөгдөл, 0, 6);

Гаралтыг дээрх зурагт үзүүлэв.

Алхам 4: Өргөдөл:

Хэрэглээ
Хэрэглээ

HMC5883 нь бага өртөгтэй луужин, соронзон хэмжилт гэх мэт дижитал интерфэйстэй бага талбайн соронзон мэдрэх зориулалттай гадаргуу дээр суурилуулсан, олон чип модуль юм. Нэгээс хоёр градусын өндөр нарийвчлал, нарийвчлал нь явган хүний навигаци болон LBS програмыг идэвхжүүлдэг.

Зөвлөмж болгож буй: