![Измерване на магнитното поле с помощта на HMC5883 и Raspberry Pi: 4 стъпки Измерване на магнитното поле с помощта на HMC5883 и Raspberry Pi: 4 стъпки](https://i.howwhatproduce.com/images/004/image-10131-j.webp)
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57
![Image Image](https://i.howwhatproduce.com/images/004/image-10131-2-j.webp)
![](https://i.ytimg.com/vi/4Z-sx8wsryM/hqdefault.jpg)
HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и 12-битов ADC, който позволява точност на насочване на компаса от 1 ° до 2 °. Всички I²C мини модули са проектирани да работят при 5VDC.
В този урок ще обясним подробната работа на HMC5883 с Raspberry pi и неговото програмиране, използвайки езика за програмиране java.
Стъпка 1: Изисква се хардуер:
![Необходим хардуер Необходим хардуер](https://i.howwhatproduce.com/images/004/image-10131-3-j.webp)
![Необходим хардуер Необходим хардуер](https://i.howwhatproduce.com/images/004/image-10131-4-j.webp)
![Необходим хардуер Необходим хардуер](https://i.howwhatproduce.com/images/004/image-10131-5-j.webp)
Хардуерът, който е необходим за изпълнение на задачата, е както следва:
1. HMC5883
2. Малина Пи
3. I2C кабел
4. I2C щит за Raspberry Pi
5. Ethernet кабел
Стъпка 2: Свързване на хардуера:
![Хардуерно свързване Хардуерно свързване](https://i.howwhatproduce.com/images/004/image-10131-6-j.webp)
![Хардуерно свързване Хардуерно свързване](https://i.howwhatproduce.com/images/004/image-10131-7-j.webp)
Разделът за свързване на хардуер основно обяснява необходимите кабелни връзки между сензора и малиновото пи. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:
HMC5883 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.
Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!
Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.
Тези връзки са показани на снимките по -горе.
Стъпка 3: Java код за измерване на интензитета на магнитното поле:
![Java код за измерване на интензитета на магнитното поле Java код за измерване на интензитета на магнитното поле](https://i.howwhatproduce.com/images/004/image-10131-8-j.webp)
![Java код за измерване на интензитета на магнитното поле Java код за измерване на интензитета на магнитното поле](https://i.howwhatproduce.com/images/004/image-10131-9-j.webp)
Предимството на използването на малинов pi е, че ви осигурява гъвкавостта на езика за програмиране, на който искате да програмирате платката, за да свържете интерфейса на сензора с нея. Възползвайки се от това предимство на тази дъска, ние демонстрираме тук нейното програмиране на Java. Java кодът за HMC5883 може да бъде изтеглен от нашата github общност, която е Dcube Store.
Освен за улеснение на потребителите, ние обясняваме кода и тук:
Като първа стъпка на кодиране трябва да изтеглите библиотеката pi4j в случай на java, защото тази библиотека поддържа функциите, използвани в кода. Така че, за да изтеглите библиотеката, можете да посетите следната връзка:
pi4j.com/install.html
Можете да копирате работещия java код за този сензор и от тук:
внос com.pi4j.io.i2c. I2CBus;
внос com.pi4j.io.i2c. I2CDevice;
mport com.pi4j.io.i2c. I2CFactory;
import java.io. IOException; публичен клас HMC5883
{
public static void main (String args ) хвърля Exception
{
// Създаване на I2C шина
I2CBus шина = I2CFactory.getInstance (I2CBus. BUS_1);
// Вземете I2C устройство, HMC5883 I2C адресът е 0x1E (30)
I2CDevice устройство = Bus.getDevice (0x1E);
// Изберете регистър за конфигурация А
// Нормална конфигурация на измерване, скорост на предаване на данни o/p = 0,75 Hz
device.write (0x00, (байт) 0x60);
// Избор на регистър на режим
// Режим на непрекъснато измерване
device.write (0x02, (байт) 0x00);
Thread.sleep (500);
// Прочетете 6 байта данни от 0x03 (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: %d %n", xMag);
System.out.printf ("Магнитно поле в оста Y: %d %n", yMag);
System.out.printf ("Магнитно поле в ос Z: %d %n", zMag);
}
}
Функциите Write () и read () се използват за записване на командите и съответно за четене на изхода на сензора. Следващата част илюстрира отчитането на стойностите на магнитното поле.
// Прочетете 6 байта данни от 0x03 (3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
байт данни = нов байт [6];
device.read (0x03, данни, 0, 6);
Изходът е показан на снимката по -горе.
Стъпка 4: Приложения:
![Приложения Приложения](https://i.howwhatproduce.com/images/004/image-10131-10-j.webp)
HMC5883 е многофункционален модул за повърхностно монтиране, проектиран за магнитно измерване с ниско поле с цифров интерфейс за приложения като компас на ниска цена и магнитометрия. Неговата точност и прецизност от една до две степени позволява пешеходна навигация и LBS приложения.
Препоръчано:
Измерване на времето (часовник за измерване на лента): 5 стъпки (със снимки)
![Измерване на времето (часовник за измерване на лента): 5 стъпки (със снимки) Измерване на времето (часовник за измерване на лента): 5 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-186-j.webp)
Time Measure (Tape Measure Clock): За този проект ние (Alex Fiel & Anna Lynton) взехме ежедневен измервателен инструмент и го превърнахме в часовник! Първоначалният план беше да се моторизира съществуваща рулетка. Като направихме това, решихме, че ще бъде по -лесно да създадем своя собствена черупка, с която да работим
Измерване на температурата с помощта на AD7416ARZ и Raspberry Pi: 4 стъпки
![Измерване на температурата с помощта на AD7416ARZ и Raspberry Pi: 4 стъпки Измерване на температурата с помощта на AD7416ARZ и Raspberry Pi: 4 стъпки](https://i.howwhatproduce.com/images/001/image-1162-27-j.webp)
Измерване на температурата с помощта на AD7416ARZ и Raspberry Pi: AD7416ARZ е 10-битов температурен сензор с четири едноканални аналогово-цифрови преобразуватели и вграден температурен сензор. Температурният сензор на частите може да бъде достъпен чрез канали на мултиплексора. Тази висока точност на температурата
Измерване на магнитно поле с помощта на HMC5883 и Arduino Nano: 4 стъпки
![Измерване на магнитно поле с помощта на HMC5883 и Arduino Nano: 4 стъпки Измерване на магнитно поле с помощта на HMC5883 и Arduino Nano: 4 стъпки](https://i.howwhatproduce.com/images/004/image-10147-j.webp)
Измерване на магнитно поле с помощта на HMC5883 и Arduino Nano: HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и
Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки
![Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки](https://i.howwhatproduce.com/images/004/image-10149-j.webp)
Измерване на магнитно поле с помощта на HMC5883 и частичен фотон: HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и
Как да: Направете поле за съобщения с помощта на VBScript: 5 стъпки
![Как да: Направете поле за съобщения с помощта на VBScript: 5 стъпки Как да: Направете поле за съобщения с помощта на VBScript: 5 стъпки](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11126218-how-to-make-a-message-box-using-vbscript-5-steps.webp)
Как да: Направете поле за съобщения с помощта на VBScript: В този " Инструктивен " Ще ви покажа как да направите кутия за съобщения в Notepad с помощта на VBScript кодиране. Моля, забележете: Това е напълно безвреден проект и ако нещо се обърка, няма да бъда отговорен