Menambahkan modul kompas ke mikrokontroler Arduino Anda membuka banyak kemungkinan untuk proyek. Inilah cara menghubungkan satu dan menggunakannya.

Dalam proyek DIY modern, sangat umum untuk menemukan sensor canggih seperti akselerometer dan magnetometer yang dihubungkan dengan mikrokontroler. Meskipun Anda mungkin telah menggunakan sensor ini di ponsel Anda, sulit membayangkan cara kerja modul ini, tetapi ternyata sangat sederhana.

Sensor magnetometer kompas GY-271 memungkinkan penginderaan orientasi untuk berbagai aplikasi. Di sini kita akan menjelajahi proses menghubungkan sensor GY-271 dengan mikrokontroler Arduino, cara mengkalibrasi dan melihat masalah yang mungkin Anda hadapi saat melakukannya.

Apa itu Modul Kompas GY-271?

Modul kompas GY-271 adalah magnetometer yang sangat sensitif yang dapat mengukur medan magnet dalam tiga dimensi. Ini digunakan untuk mendeteksi medan magnet Bumi dan menentukan arah atau orientasi perangkat dalam aplikasi seperti sistem navigasi, robotika, dan drone. Anggap saja seperti kompas digital yang sangat tepat. Sensor ini dilengkapi dengan desain yang ringkas dan kokoh sehingga mudah dipasang dan digunakan dalam berbagai proyek.

instagram viewer

Bagaimana Cara Kerja Modul Kompas GY-271?

Modul kompas GY-271 HCM5883L berisi sensor magnetometer 3-sumbu, yang didasarkan pada teknologi anisotropic magneto-resistive (AMR). Sensor mengukur kekuatan dan arah medan magnet Bumi dengan mendeteksi perubahan resistansi elemen AMR internalnya.

Saat sensor terkena medan magnet, resistansi elemen AMR berubah, menghasilkan tegangan yang sebanding dengan kekuatan dan arah medan magnet. Prosesor sinyal digital sensor kemudian mengubah tegangan ini menjadi sinyal digital, yang dapat dibaca oleh mikrokontroler. Dengan mengukur voltase di ketiga sumbu, sensor dapat memberikan pembacaan kekuatan dan arah medan magnet yang sangat akurat dalam tiga dimensi.

Menghubungkan GY-271 ke Arduino Uno

Menghubungkan modul ini ke Arduino cukup mudah. Kami juga telah membahas lainnya modul Arduino yang mudah digunakan yang dapat membantu menskalakan proyek Anda di masa mendatang. Modul GY-271 memiliki total lima pin, termasuk VCC, GND, dan tiga pin sinyal (SDA, SCL, Dan DRDY).

Anda membutuhkan komponen-komponen berikut:

  • Modul kompas GY-271 HMC5883L
  • Arduino Uno (atau model lainnya)
  • Kabel jumper (pria-ke-pria dan pria-ke-wanita)
  • Papan tempat memotong roti (opsional)

Pertama, hubungkan VCC Dan GND pin modul GY-271 ke 5V Dan GND pin dari Arduino Uno, masing-masing.

Selanjutnya, hubungkan SDA Dan SCL pin dari modul ke A4 Dan A5 pin analog dari Arduino Uno, masing-masing.

Memasang Perpustakaan yang Diperlukan

Sebelum Anda dapat mulai bekerja dengan modul kompas GY-271 dan Arduino, Anda perlu menginstal pustaka yang diperlukan untuk berkomunikasi dengan sensor.

Perpustakaan pertama yang perlu Anda sertakan dalam sketsa Anda adalah perpustakaan Wire, yang digunakan untuk komunikasi I2C antara Arduino dan sensor. Pustaka Wire sudah diinstal sebelumnya dengan Arduino IDE, jadi Anda tidak perlu mengunduhnya secara terpisah. Untuk menginstal yang kedua, the HMC5883L perpustakaan, Anda harus mengikuti langkah-langkah berikut:

Buka Arduino IDE dan pergi ke Sketsa > Sertakan Perpustakaan > Kelola Perpustakaan.

Di Manajer Perpustakaan, cari HMC5883L di bilah pencarian.

Pilih HMC5883L perpustakaan khusus dari Adafruit. Setelah perpustakaan diinstal, Anda dapat memasukkannya ke dalam sketsa Arduino Anda dengan membuka Sketsa > Sertakan Perpustakaan > HMC5883L.

Memahami Kode

Anda perlu menulis sebuah program yang menginisialisasi sensor, membaca datanya, dan menghitung kekuatan dan arah medan magnet bumi. Kode lengkap dapat diunduh dari resmi kami repositori GitHub.

Di awal kode, Anda harus menyertakan pustaka yang diperlukan yang baru saja Anda unduh.

#termasuk
#termasuk
#termasuk

Jangan lupa untuk menetapkan ID unik ke sensor. Gunakan baris ini untuk melakukannya:

Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);

Dalam kode penyiapan, mulai monitor serial dan periksa apakah sensor merespons. Anda dapat mencetak pesan ke monitor untuk memperbarui status sensor:

ruang kosongmempersiapkan(ruang kosong)
{
Serial.mulai(9600);
Serial.println("Uji Magnetometer HMC5883"); Serial.println("");

/* Menginisialisasi sensor */
jika(!mag.mulai())
{
Serial.println("Ups, tidak ada HMC5883 yang terdeteksi... Periksa kabel Anda!");
ketika(1);
}
}

Di loop, pertama, dapatkan acara sensor baru:

sensor_event_t peristiwa;
mag.getEvent(&acara);

Kemudian tampilkan hasil pembacaan sensor ke serial monitor. Jangan lupa untuk mengatur baud rate 9600​​​​.

Serial.mencetak("X: "); Serial.mencetak(peristiwa.magnetic.x); Serial.mencetak(" ");
Serial.mencetak("Y:"); Serial.mencetak(event.magnetic.y); Serial.mencetak(" ");
Serial.mencetak("Z:"); Serial.mencetak(event.magnetic.z); Serial.mencetak(" ");Serial.println("uT");

Pegang modul sehingga Z menunjuk "ke atas" dan mengukur tajuk dengan X Dan Y. Dengan melakukan ini, Anda kemudian dapat menghitung heading saat magnetometer sejajar. Baris kode ini membantu dengan itu:

mengambang judul = atan2(peristiwa.magnetik.y, peristiwa.magnetik.x);

Setelah Anda memiliki Anda menuju, Anda kemudian harus menambahkan milik Anda deklinasiAngle, yang merupakan kesalahan medan magnet di lokasi Anda.

mengambang sudut deklinasi = 0.663;
 pos += sudut deklinasi;

Anda dapat dengan mudah menemukan sudut deklinasi area lokal Anda di Situs web Deklinasi Magnetik. Jika karena alasan tertentu Anda tidak dapat menemukan sudut deklinasi Anda, komentari dua baris dari kode Anda.

Mengomentari dua baris kode dapat menyebabkan pembacaan sensor yang salah. Cobalah yang terbaik untuk mengkalibrasi sensor sebelum digunakan.

Terakhir, cetak tajuk ke monitor serial dan tambahkan jeda untuk menunggu setengah detik sebelum membaca lagi.

Serial.mencetak("Judul (derajat): ");
Serial.println(headingDegrees);
menunda(500);

Dari sini, Anda dapat menyesuaikan kode agar sesuai dengan kebutuhan proyek Anda dan menambahkan fitur tambahan seperti pencatatan data.

Jika Anda lebih suka menggunakan perpustakaan Adafruit, kami sarankan untuk mengambilnya dari Repositori GitHub Adafruit.

Membaca dan Menafsirkan Data Kompas

Data sensor yang ditampilkan di serial monitor menunjukkan nilai vektor medan magnet yang diukur oleh magnetometer dalam mikroteslas (μT) untuk sumbu X, Y, dan Z. Nilai-nilai ini dapat digunakan untuk menentukan orientasi dan besarnya medan magnet.

Nilai heading yang ditampilkan dalam derajat juga penting dan menunjukkan arah kutub utara magnet relatif terhadap posisi sensor. Pembacaan ini dapat digunakan dalam proyek di mana arah objek bergerak perlu ditentukan, seperti robotika, navigasi, dan sistem geolokasi.

Kalibrasi Sensor

Jika Anda telah menginstal pustaka lain untuk modul HMC5883L, Anda harus mencopot pemasangan atau menghapusnya. Jika tidak, Anda mungkin mendapatkan kesalahan kompilasi atau melihat peringatan di monitor serial Anda selama kalibrasi. Kami merekomendasikan menggunakan perpustakaan Jarzebski tersedia di GitHub karena memiliki sumber daya kalibrasi lengkap yang diperlukan untuk bagian ini.

Pertama, unduh file zip dari repositori dengan mengklik Kode > Unduh ZIP.

Selanjutnya, buka Arduino IDE dan klik Sketsa > Sertakan Perpustakaan > Tambahkan Perpustakaan.

Pilih Arduino-HMC5883 zip yang baru saja Anda unduh, dan Arduino IDE kemudian akan menginstal pustaka secara otomatis untuk Anda.

Jalankan sketsa kalibrasi yang tersedia di repositori sambil menggerakkan sensor di permukaan datar saat mengunggah. Nilai yang diperoleh dari monitor serial adalah nilai offset sensor Anda, yang dapat Anda gunakan untuk mengoreksi pembacaan Anda saat menggunakan kompas selama proyek Anda.

Masalah yang Mungkin Anda Alami

Ada beberapa kesalahan yang mungkin dialami seseorang saat menghubungkan modul kompas dengan Arduino. Berikut beberapa contoh dan solusinya:

Kesalahan kompilasi: Ini dapat terjadi jika pustaka yang diperlukan tidak disertakan atau jika ada kesalahan sintaksis dalam kode. Untuk memperbaikinya, pastikan Anda telah menginstal pustaka yang benar dan periksa kode Anda untuk kesalahan sintaks apa pun. Seperti yang telah kita lihat berkali-kali, Anda mungkin secara tidak sengaja menginstal beberapa pustaka HCM5883L.

Kesalahan kompilasi: 'Adafruit_HMC5883_Unified' melakukan bukan beri nama jenis

Kesalahan komunikasi: Jika Anda tidak dapat berkomunikasi dengan modul kompas, pastikan Anda telah menghubungkannya ke pin yang benar di Arduino Anda dan kabel Anda sudah benar. Anda mungkin juga perlu menyesuaikan alamat I2C modul dalam kode Anda jika berbeda dari default—yaitu 0x1E.

Kesalahan menggunakan hmc5883l/perangkat uji (garis246) Kesalahan komunikasi dengan sensor HMC5883L. Nilai membaca dari ID_A, ID_B Dan ID_C register Mengerjakanbukan sesuai dengan nilai yang diharapkan.

gangguan magnetik: Jika pembacaan kompas tidak stabil atau berfluktuasi, hal ini mungkin disebabkan oleh interferensi magnetik dari objek terdekat. Jauhkan modul dari magnet atau sumber interferensi magnetik lainnya untuk mendapatkan pembacaan yang lebih stabil.

Tingkatkan Proyek Anda Dengan Modul Kompas GY-271

Mampu menggunakan modul kompas GY-271 HCM5883L membuka pintu untuk membangun proyek DIY yang lebih kompleks menggunakan Arduino seperti penjelajah yang dipandu GPS dan drone DIY. Kemungkinannya tidak terbatas, terutama jika Anda menambahkan sensor lain.