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

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

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

Видео: HMC5883 ба бөөмийн фотон ашиглан соронзон орны хэмжилт: 4 алхам
Видео: CERN - Бурхны бөөм буюу Хигс бозон гэж юу вэ ? 2024, Долдугаар сарын
Anonim
Image
Image

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

Энэхүү гарын авлагад бид HMC5883 -ийн бөөмийн фотонтой хийсэн нарийвчилсан ажлын талаар тайлбарлах болно. Бөөмийн фотон бол интернетийн зүйлсийн (IoT) хамгийн үндсэн функцийг дэмждэг вэбсайтаас мэдээлэл илгээх, хүлээн авах ажлыг хөнгөвчлөх самбар юм.

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

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

Зорилгодоо хүрэхийн тулд бидэнд шаардлагатай материалууд нь дараахь тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүдийг агуулдаг.

1. HMC5883

2. Бөөмийн фотон

3. I2C кабель

4. Бөөмийн фотоны I2C бамбай

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

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

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

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

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

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

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

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

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

Одоо бөөмийн кодоор эхэлье.

Arduino -той мэдрэгчийн модулийг ашиглахдаа application.h болон spark_wiring_i2c.h номын санг агуулдаг. "application.h" болон spark_wiring_i2c.h номын сан нь мэдрэгч ба бөөмийн хооронд i2c холболтыг хөнгөвчлөх функцуудыг агуулдаг.

Хэрэглэгчийн тав тухыг хангах үүднээс бөөмийн кодыг бүхэлд нь доор харуулав.

#оруулах

#оруулах

// HMC5883 I2C хаяг нь 0x1E (30)

#тодорхойлох Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

хүчингүй тохиргоо ()

{

// Хувьсагчийг тохируулах

Particle.variable ("i2cdevice", "HMC5883");

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// I2C холболтыг MASTER болгон эхлүүлэх

Wire.begin ();

// Цуваа холбоог эхлүүлэх, дамжуулах хурд = 9600

Цуваа эхлэх (9600);

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// А тохируулах регистрийг сонгоно уу

Wire.write (0x00);

// Хэмжлийн ердийн тохиргоог тохируулах, өгөгдлийн гаралтын хурд = 0.75 Гц

Wire.write (0x60);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

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

Wire.write (0x02);

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

Wire.write (0x00);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

саатал (300);

}

хоосон давталт ()

{

гарын үсэг зураагүй int өгөгдөл [6];

// I2C дамжуулалтыг эхлүүлэх

Wire.beginTransmission (Addr);

// Өгөгдлийн бүртгэлийг сонгоно уу

Wire.write (0x03);

// I2C дамжуулалтыг зогсоох

Wire.endTransmission ();

// 6 байтын өгөгдөл хүсэх

Wire.requestFrom (Addr, 6);

// 6 байтын өгөгдлийг уншина уу

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

хэрэв (Утас. боломжтой () == 6)

{

өгөгдөл [0] = Wire.read ();

өгөгдөл [1] = Wire.read ();

өгөгдөл [2] = Wire.read ();

өгөгдөл [3] = Wire.read ();

өгөгдөл [4] = Wire.read ();

өгөгдөл [5] = Wire.read ();

}

саатал (300);

// Өгөгдлийг хөрвүүлэх

xMag = ((өгөгдөл [0] * 256) + өгөгдөл [1]);

хэрэв (xMag> 32767)

{

xMag -= 65536;

}

zMag = ((өгөгдөл [2] * 256) + өгөгдөл [3]);

хэрэв (zMag> 32767)

{

zMag -= 65536;

}

yMag = ((өгөгдөл [4] * 256) + өгөгдөл [5]);

хэрэв (yMag> 32767)

{

yMag -= 65536;

}

// Мэдээллийг хяналтын самбарт гаргах

Particle.publish ("X-Axis дахь соронзон орон:", String (xMag));

саатал (1000);

Particle.publish ("Y тэнхлэг дэх соронзон орон:", String (yMag));

саатал (1000);

Particle.publish ("Z-Axis дахь соронзон орон:", String (zMag));

саатал (1000);

}

Particle.variable () функц нь мэдрэгчийн гаралтыг хадгалах хувьсагчдыг үүсгэдэг ба Particle.publish () функц нь сайтын хяналтын самбарт гаралтыг харуулдаг.

Мэдээллийн хувьд мэдрэгчийн гаралтыг дээрх зурагт үзүүлэв.

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

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

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

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