Mục lục:
- Bước 1: Yêu cầu phần cứng:
- Bước 2: Kết nối phần cứng:
- Bước 3: Mã Java để đo cường độ từ trường:
- Bước 4: Ứng dụng:
Video: Đo từ trường bằng HMC5883 và Raspberry Pi: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
HMC5883 là một la bàn kỹ thuật số được thiết kế để cảm biến từ trường thấp. Thiết bị này có dải từ trường rộng +/- 8 Oe và tốc độ đầu ra là 160 Hz. Cảm biến HMC5883 bao gồm trình điều khiển dây đeo khử dầu tự động, hủy bù trừ và ADC 12 bit cho phép độ chính xác của hướng la bàn từ 1 ° đến 2 °. Tất cả các Mô-đun Mini I²C được thiết kế để hoạt động ở 5VDC.
Trong hướng dẫn này, chúng tôi sẽ giải thích hoạt động chi tiết của HMC5883 với Raspberry pi và cách lập trình của nó bằng ngôn ngữ lập trình java.
Bước 1: Yêu cầu phần cứng:
Phần cứng cần thiết để hoàn thành nhiệm vụ như sau:
1. HMC5883
2. Raspberry Pi
3. Cáp I2C
4. I2C Shield cho Raspberry Pi
5. Cáp Ethernet
Bước 2: Kết nối phần cứng:
Phần kết nối phần cứng về cơ bản giải thích các kết nối dây cần thiết giữa cảm biến và pi raspberry. Đảm bảo các kết nối chính xác là điều cần thiết cơ bản trong khi làm việc trên bất kỳ hệ thống nào để có kết quả đầu ra mong muốn. Vì vậy, các kết nối cần thiết như sau:
HMC5883 sẽ hoạt động trên I2C. Đây là sơ đồ đấu dây ví dụ, minh họa cách đấu dây cho từng giao diện của cảm biến.
Ngoài ra, bo mạch được định cấu hình cho giao diện I2C, vì vậy, chúng tôi khuyên bạn nên sử dụng kết nối này nếu bạn không có kiến thức khác. Tất cả những gì bạn cần là bốn dây!
Chỉ cần bốn kết nối là chân Vcc, Gnd, SCL và SDA và chúng được kết nối với sự trợ giúp của cáp I2C.
Các kết nối này được thể hiện trong các hình trên.
Bước 3: Mã Java để đo cường độ từ trường:
Lợi thế của việc sử dụng raspberry pi là, cung cấp cho bạn sự linh hoạt của ngôn ngữ lập trình mà bạn muốn lập trình bảng để giao tiếp cảm biến với nó. Khai thác lợi thế này của bảng này, chúng tôi đang chứng minh ở đây nó là lập trình bằng Java. Có thể tải xuống mã java cho HMC5883 từ cộng đồng github của chúng tôi là Dcube Store.
Cũng như để người dùng dễ dàng sử dụng, chúng tôi cũng giải thích mã ở đây:
Là bước đầu tiên của mã hóa, bạn cần tải xuống thư viện pi4j trong trường hợp của java, vì thư viện này hỗ trợ các chức năng được sử dụng trong mã. Vì vậy, để tải thư viện, bạn có thể truy cập liên kết sau:
pi4j.com/install.html
Bạn cũng có thể sao chép mã java đang hoạt động cho cảm biến này từ đây:
nhập com.pi4j.io.i2c. I2CBus;
nhập com.pi4j.io.i2c. I2CDevice;
mport com.pi4j.io.i2c. I2CFactory;
import java.io. IOException; public class HMC5883
{
public static void main (String args ) ném Exception
{
// Tạo bus I2C
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Lấy thiết bị I2C, địa chỉ I2C HMC5883 là 0x1E (30)
Thiết bị I2CDevice = Bus.getDevice (0x1E);
// Chọn thanh ghi cấu hình A
// Cấu hình đo thông thường, tốc độ dữ liệu o / p = 0,75 Hz
device.write (0x00, (byte) 0x60);
// Chọn đăng ký Chế độ
// Chế độ đo liên tục
device.write (0x02, (byte) 0x00);
Thread.sleep (500);
// Đọc 6 byte dữ liệu từ 0x03 (3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
byte data = byte mới [6];
device.read (0x03, dữ liệu, 0, 6);
// Chuyển đổi dữ liệu
int xMag = ((dữ liệu [0] & 0xFF) * 256 + (dữ liệu [1] & 0xFF));
if (xMag> 32767)
{
xMag - = 65536;
}
int zMag = ((dữ liệu [2] & 0xFF) * 256 + (dữ liệu [3] & 0xFF));
nếu (zMag> 32767)
{
zMag - = 65536;
}
int yMag = ((dữ liệu [4] & 0xFF) * 256 + (dữ liệu [5] & 0xFF));
nếu (yMag> 32767)
{
yMag - = 65536;
}
// Xuất dữ liệu ra màn hình
System.out.printf ("Từ trường trong Trục X:% d% n", xMag);
System.out.printf ("Từ trường trong Trục Y:% d% n", yMag);
System.out.printf ("Từ trường trong Trục Z:% d% n", zMag);
}
}
Các hàm Write () và read () được sử dụng để viết các lệnh và đọc đầu ra cảm biến tương ứng. Phần sau minh họa cách đọc các giá trị từ trường.
// Đọc 6 byte dữ liệu từ 0x03 (3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
byte data = byte mới [6];
device.read (0x03, dữ liệu, 0, 6);
Đầu ra được hiển thị trong hình trên.
Bước 4: Ứng dụng:
HMC5883 là một mô-đun đa chip, gắn trên bề mặt được thiết kế để cảm biến từ trường thấp với giao diện kỹ thuật số cho các ứng dụng như la bàn chi phí thấp và từ kế. Độ chính xác và độ chính xác cao từ một đến hai độ của nó cho phép Điều hướng dành cho người đi bộ và Ứng dụng LBS.
Đề xuất:
Màn hình cảm biến CO2 Plug & Play với NodeMCU / ESP8266 cho trường học, trường mẫu giáo hoặc nhà của bạn: 7 bước
Màn hình cảm biến CO2 Plug & Play Với NodeMCU / ESP8266 cho Trường học, Mẫu giáo hoặc Nhà của bạn: Tôi sẽ chỉ cho bạn cách nhanh chóng tạo một phích cắm & chơi cảm biến CO2 nơi tất cả các yếu tố của dự án sẽ được kết nối với dây DuPont. Sẽ chỉ có 5 điểm cần hàn, bởi vì tôi đã không hàn trước dự án này cả
Vũ trường di động V2 - Đèn LED điều khiển bằng âm thanh: 11 bước (có hình ảnh)
Vũ trường di động V2 - Đèn LED điều khiển âm thanh: Tôi đã đi một chặng đường dài với hành trình điện tử của mình kể từ khi tôi tạo ra vũ trường di động đầu tiên của mình. Trong bản dựng ban đầu, tôi đã hack cùng một mạch trên bảng mạch nguyên mẫu và cố gắng tạo ra một vũ trường nhỏ gọn, nhỏ gọn. Lần này, tôi đã thiết kế PCB của riêng mình một
Đo từ trường bằng HMC5883 và Arduino Nano: 4 bước
Đo từ trường sử dụng HMC5883 và Arduino Nano: HMC5883 là la bàn kỹ thuật số được thiết kế để cảm biến từ trường thấp. Thiết bị này có dải từ trường rộng +/- 8 Oe và tốc độ đầu ra là 160 Hz. Cảm biến HMC5883 bao gồm trình điều khiển dây đeo khử dầu tự động, hủy bù trừ và
Đo từ trường bằng HMC5883 và Photon hạt: 4 bước
Đo từ trường sử dụng HMC5883 và Photon hạt: HMC5883 là la bàn kỹ thuật số được thiết kế để cảm biến từ trường thấp. Thiết bị này có dải từ trường rộng +/- 8 Oe và tốc độ đầu ra là 160 Hz. Cảm biến HMC5883 bao gồm trình điều khiển dây đeo khử dầu tự động, hủy bù trừ và
Trường hợp Mp3 về Môi trường thù địch: 9 bước
Hộp đựng Mp3 về Môi trường thù địch: Tôi đã làm một chiếc vỏ bảo vệ để giữ cho chiếc Creative Zen V Plus mới của mình an toàn trước các yếu tố thù địch trong môi trường cửa hàng hàn. Ba yếu tố tôi quan tâm nhất là: tia lửa hàn, mảnh đạn mài và bụi kim loại. Tia lửa hàn có thể nóng