Spisu treści:

Pomiar pola magnetycznego za pomocą HMC5883 i Raspberry Pi: 4 kroki
Pomiar pola magnetycznego za pomocą HMC5883 i Raspberry Pi: 4 kroki

Wideo: Pomiar pola magnetycznego za pomocą HMC5883 i Raspberry Pi: 4 kroki

Wideo: Pomiar pola magnetycznego za pomocą HMC5883 i Raspberry Pi: 4 kroki
Wideo: BRITE-TV - Odcinek 33 - Co to jest BRITE jeszcze raz.(wersja pełna bez podkładu muzycznego 105 min) 2024, Listopad
Anonim
Image
Image

HMC5883 to cyfrowy kompas przeznaczony do wykrywania pola magnetycznego o niskim polu. To urządzenie ma szeroki zakres pola magnetycznego +/-8 Oe i częstotliwość wyjściową 160 Hz. Czujnik HMC5883 zawiera automatyczne sterowniki paska rozmagnesowania, anulowanie przesunięcia i 12-bitowy przetwornik ADC, który zapewnia dokładność kierunku kompasu od 1° do 2°. Wszystkie moduły I²C Mini są zaprojektowane do pracy przy 5VDC.

W tym samouczku wyjaśnimy szczegółowo działanie HMC5883 z Raspberry pi i jego programowanie przy użyciu języka programowania java.

Krok 1: Wymagany sprzęt:

Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt

Sprzęt wymagany do wykonania zadania to:

1. HMC5883

2. Raspberry Pi

3. Kabel I2C

4. Osłona I2C dla Raspberry Pi

5. Kabel Ethernet

Krok 2: Podłączenie sprzętu:

Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu

Sekcja dotycząca podłączania sprzętu zasadniczo wyjaśnia połączenia okablowania wymagane między czujnikiem a raspberry pi. Zapewnienie prawidłowych połączeń jest podstawową koniecznością podczas pracy na dowolnym systemie o pożądanej mocy. Tak więc wymagane połączenia są następujące:

HMC5883 będzie działał przez I2C. Oto przykładowy schemat okablowania, pokazujący, jak okablować każdy interfejs czujnika.

Po wyjęciu z pudełka, płyta jest skonfigurowana do interfejsu I2C, dlatego zalecamy korzystanie z tego podłączenia, jeśli jesteś agnostykiem. Wszystko czego potrzebujesz to cztery przewody!

Wymagane są tylko cztery połączenia Vcc, Gnd, SCL i SDA, które są połączone za pomocą kabla I2C.

Połączenia te są pokazane na powyższych zdjęciach.

Krok 3: Kod Java do pomiaru natężenia pola magnetycznego:

Kod Java do pomiaru natężenia pola magnetycznego
Kod Java do pomiaru natężenia pola magnetycznego
Kod Java do pomiaru natężenia pola magnetycznego
Kod Java do pomiaru natężenia pola magnetycznego

Zaletą korzystania z raspberry pi jest to, że zapewnia elastyczność języka programowania, w którym chcesz zaprogramować płytkę w celu połączenia z nią czujnika. Wykorzystując tę zaletę tej płyty, demonstrujemy tutaj jej programowanie w Javie. Kod Java dla HMC5883 można pobrać z naszej społeczności github, czyli sklepu Dcube Store.

Oprócz ułatwienia użytkownikom wyjaśniamy również kod tutaj:

Jako pierwszy krok kodowania musisz pobrać bibliotekę pi4j w przypadku java, ponieważ ta biblioteka obsługuje funkcje używane w kodzie. Aby pobrać bibliotekę, możesz odwiedzić poniższy link:

pi4j.com/install.html

Możesz skopiować działający kod java dla tego czujnika również stąd:

importuj com.pi4j.io.i2c. I2CBus;

importuj com.pi4j.io.i2c. I2CDurządzenie;

mport com.pi4j.io.i2c. I2CFabryka;

import java.io. IOException; klasa publiczna HMC5883

{

public static void main(String args) wyrzuca Wyjątek

{

// Utwórz magistralę I2C

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

// Pobierz urządzenie I2C, adres HMC5883 I2C to 0x1E(30)

Urządzenie I2CDevice = Bus.getDevice(0x1E);

// Wybierz rejestr konfiguracji A

// Normalna konfiguracja pomiaru, szybkość transmisji danych o/p = 0,75 Hz

urządzenie.write(0x00, (bajt)0x60);

// Wybierz rejestr trybu

// Tryb pomiaru ciągłego

urządzenie.write(0x02, (bajt)0x00);

Wątek.sen(500);

// Odczytaj 6 bajtów danych z 0x03(3)

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

bajt dane = nowy bajt[6];

urządzenie.odczyt(0x03, dane, 0, 6);

// Konwertuj dane

int xMag = ((dane[0] i 0xFF) * 256 + (dane[1] i 0xFF));

jeśli(xMag > 32767)

{

xMag -= 65536;

}

int zMag = ((dane [2] i 0xFF) * 256 + (dane [3] i 0xFF));

jeśli(zMag > 32767)

{

zMag -= 65536;

}

int yMag = ((dane[4] i 0xFF) * 256 + (dane[5] i 0xFF));

if(yMag > 32767)

{

yMag -= 65536;

}

// Prześlij dane na ekran

System.out.printf("Pole magnetyczne w osi X: %d %n", xMag);

System.out.printf("Pole magnetyczne w osi Y: %d %n", yMag);

System.out.printf("Pole magnetyczne w osi Z: %d %n", zMag);

}

}

Funkcje write() i read() służą odpowiednio do zapisywania poleceń i odczytywania danych wyjściowych czujnika. Kolejna część ilustruje odczyt wartości pola magnetycznego.

// Odczytaj 6 bajtów danych z 0x03(3)

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

bajt dane = nowy bajt[6];

urządzenie.odczyt(0x03, dane, 0, 6);

Wyjście pokazano na powyższym obrazku.

Krok 4: Aplikacje:

Aplikacje
Aplikacje

HMC5883 to wieloukładowy moduł do montażu powierzchniowego przeznaczony do wykrywania pola magnetycznego niskiego pola z interfejsem cyfrowym do zastosowań takich jak niedrogie kompasy i magnetometria. Jego dokładność i precyzja na poziomie od jednego do dwóch stopni umożliwia nawigację pieszych i aplikacje LBS.

Zalecana: