Isi kandungan:

Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]: 11 Langkah
Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]: 11 Langkah

Video: Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]: 11 Langkah

Video: Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]: 11 Langkah
Video: How To Track Orientation with Arduino | ADXL345 Accelerometer Tutorial 2024, November
Anonim
Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]
Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]

Gambaran keseluruhan

Dalam beberapa projek elektronik, kita perlu mengetahui lokasi geografi setiap saat dan melakukan operasi tertentu dengan sewajarnya. Dalam tutorial ini, anda akan belajar bagaimana menggunakan modul kompas LSM303DLHC GY-511 dengan Arduino untuk membuat kompas digital. Mula-mula, anda akan belajar mengenai modul ini dan cara ia berfungsi, dan kemudian anda akan melihat bagaimana untuk menghubungkan modul LSM303DLHC GY-511 dengan Arduino.

Apa yang Anda Akan Pelajari

  • Apakah modul kompas?
  • Modul kompas dan antara muka Arduino.
  • Buat kompas digital dengan modul GY-511 dan Arduino.

Langkah 1: Maklumat Umum Mengenai Modul Kompas

Maklumat Umum Mengenai Modul Kompas
Maklumat Umum Mengenai Modul Kompas

Modul GY-511 merangkumi pecutan 3 paksi dan magnetometer 3 paksi. Sensor ini dapat mengukur pecutan linear pada skala penuh ± 2 g / ± 4 g / ± 8 g / ± 16 g dan medan magnet pada skala penuh ± 1.3 / ± 1.9 / ± 2.5 / ± 4.0 / ± 4.7 / ± 5.6 / ± 8.1 Gauss.

Apabila modul ini diletakkan di medan magnet, menurut undang-undang Lorentz arus pengujaan menyebabkan gegelung mikroskopiknya. Modul kompas menukar arus ini ke voltan pembezaan bagi setiap arah koordinat. Dengan menggunakan voltan ini, anda boleh mengira medan magnet di setiap arah dan mendapatkan kedudukan geografi.

Petua

QMC5883L adalah modul kompas lain yang biasa digunakan. Modul ini, yang mempunyai struktur dan aplikasi yang serupa dengan modul LMS303, sedikit berbeza dari segi prestasi. Oleh itu, jika anda menjalankan projek, berhati-hati dengan jenis modul anda. Sekiranya modul anda QMC5882L, gunakan pustaka dan kod yang sesuai yang juga disertakan dalam tutorial.

Langkah 2: Komponen yang Diperlukan

Komponen yang Diperlukan
Komponen yang Diperlukan

Komponen Perkakasan

Arduino UNO R3 * 1

GY-511 3-Axis Accelerometer + Magnetometer * 1

TowerPro Servo Motor SG-90 * 1

1602 Modul LCD * 1

Pelompat * 1

Aplikasi Perisian

Arduino IDE

Langkah 3: Memasukkan Modul Kompas GY-511 Dengan Arduino

Modul Kompas GY-511 Interfacing Dengan Arduino
Modul Kompas GY-511 Interfacing Dengan Arduino
Modul Kompas GY-511 Interfacing Dengan Arduino
Modul Kompas GY-511 Interfacing Dengan Arduino

Modul kompas GY-511 mempunyai 8 pin, tetapi anda hanya memerlukan 4 daripadanya untuk berinteraksi dengan Arduino. Modul ini berkomunikasi dengan Arduino menggunakan protokol I2C, jadi sambungkan pin SDA (output I2C) dan SCK (input jam I2C) modul ke pin I2C pada papan Arduino.

CatatanSeperti yang anda lihat, kami telah menggunakan modul GY-511 dalam projek ini. Tetapi anda boleh menggunakan arahan ini untuk menyiapkan modul kompas LMS303 yang lain.

Langkah 4: Penentukuran Modul Kompas GY-511

Untuk menavigasi, pertama-tama anda perlu mengkalibrasi modul, yang bermaksud menetapkan julat pengukuran dari 0 hingga 360 darjah. Untuk melakukan ini, sambungkan modul ke Arduino seperti yang ditunjukkan di bawah dan muat naik kod berikut di papan anda. Setelah melaksanakan kod, anda dapat melihat nilai minimum dan maksimum julat pengukuran bagi paksi X, Y dan Z di tetingkap monitor bersiri. Anda memerlukan nombor ini di bahagian seterusnya, jadi tuliskan.

Langkah 5: Litar

Litar
Litar

Langkah 6: Kod

Dalam kod ini, anda memerlukan perpustakaan Wire.h untuk komunikasi I2C, dan perpustakaan LMS303.h untuk modul kompas. Anda boleh memuat turun perpustakaan ini dari pautan berikut.

Perpustakaan LMS303.h

Perpustakaan Wire.h

CatatanJika anda menggunakan QMC5883, anda memerlukan pustaka berikut:

MechaQMC5883L.h

Di sini, kami menerangkan kod untuk LMS303, tetapi anda juga boleh memuat turun kod untuk modul QMC.

Mari lihat beberapa fungsi baru:

kompas.enableDefault ();

Permulaan modul

kompas.baca ();

Membaca nilai output modul kompas

running_min.z = min (running_min.z, kompas.m.z); running_max.x = max (running_max.x, kompas.m.x);

Menentukan nilai minimum dan maksimum julat pengukuran dengan membandingkan nilai yang diukur.

Langkah 7: Membuat Kompas Digital

Setelah menentukur modul, kita akan membina kompas dengan menghubungkan motor servo ke modul. Sehingga penunjuk servo, selalu menunjukkan kepada kita arah utara, seperti anak panah merah pada kompas. Untuk melakukan ini, pertama modul kompas mengira arah geografi terlebih dahulu dan hantarkan ke Arduino dan Kemudian, dengan menggunakan pekali yang sesuai, anda akan mengira sudut yang harus diputar oleh motor servo sehingga penunjuknya menunjuk ke arah utara magnet. Akhirnya, kami menerapkan sudut tersebut pada motor servo.

Langkah 8: Litar

Litar
Litar

Langkah 9: Kod

Kod
Kod

Untuk bahagian ini, anda juga memerlukan pustaka Servo.h, yang dipasang pada perisian Arduino anda secara lalai.

Mari lihat beberapa fungsi baru:

Servo Servo1;

Permulaan modul

kompas.baca ();

Memperkenalkan objek motor servo

Servo1.attach (servoPin); kompas.init (); kompas.enableDefault ();

Permulaan modul kompas dan motor servo

Argumen Servo1.attach () adalah bilangan pin yang disambungkan ke motor servo.

kompas.m_min = (LSM303:: vektor) {- 32767, -32767, -32767}; kompas.m_max = (LSM303:: vektor) {+ 32767, +32767, +32767};

Dengan menggunakan garis ini anda menentukan nilai minimum dan maksimum untuk mengukur julat yang diperoleh di bahagian sebelumnya.

float heading = kompas.heading ((LSM303:: vektor) {0, 0, 1});

Fungsi tajuk () mengembalikan sudut antara paksi koordinat dan paksi tetap. Anda boleh menentukan paksi tetap dengan vektor dalam argumen fungsi. Sebagai contoh, di sini, dengan menentukan (LSM303:: vektor) {0, 0, 1}, paksi Z dianggap sebagai paksi malar.

Servo1.write (tajuk);

Fungsi Servo1.write () menerapkan nilai baca oleh modul kompas ke motor servo.

Perhatikan bahawa motor servo mungkin mempunyai medan magnet, jadi lebih baik meletakkan motor servo pada jarak yang sesuai dari modul kompas, sehingga tidak menyebabkan modul kompas menyimpang.

Disyorkan: