Isi kandungan:
Video: Projek Kompas Digital Arduino: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Helo! Dalam arahan ini, anda akan melihat bagaimana anda dapat membuat Kompas Digital menggunakan Arduino dan IDE Pemprosesan. Ini adalah Projek Arduino yang agak mudah tetapi menarik dan menarik.
Anda boleh menonton contoh demo tutorial ini pada video di atas. Anda selalu dapat mencari lebih banyak video menarik seperti ini di saluran YouTube saya serta mencari banyak projek elektronik dan tutorial di laman web saya, HowToMechatronics.com
Langkah 1: Bahagian Diperlukan
Untuk projek ini, anda hanya memerlukan Arduino Board dan MEMS Magnetometer, untuk mengukur medan magnet bumi. Saya akan menggunakan papan pelarian GY - 80 yang mengandungi Magnetometer MC5883L 3 - Axis.
Sebelum kita meneruskan kod sumber untuk projek tersebut. Sekiranya anda memerlukan lebih banyak maklumat bagaimana magnetometer MEMS berfungsi serta cara menyambung dan menggunakan papan pemecah GY - 80 melalui Komunikasi I2C, anda boleh menyemak tutorial khusus saya untuk itu.
Langkah 2: Kod Sumber Arduino
Yang perlu kita lakukan terlebih dahulu adalah memuat naik lakaran ke Arduino Board yang akan membaca data dari magnetometer dan akan menghantarnya ke Processing IDE. Inilah Kod Sumber Arduino:
/ * Arduino Compass * * oleh Dejan Nedelkovski, * www. HowToMechatronics.com * * /
#include // Perpustakaan I2C Arduino
#tentukan Magnetometer_mX0 0x03
#define Magnetometer_mX1 0x04 #define Magnetometer_mZ0 0x05 #define Magnetometer_mZ1 0x06 #define Magnetometer_mY0 0x07 #define Magnetometer_mY1 0x08
int mX0, mX1, mX_out;
int mY0, mY1, mY_out; int mZ0, mZ1, mZ_out;
kepala apungan, tajukDegrees, tajukFilter, deklinasi;
terapung Xm, Ym, Zm;
#define Magnetometer 0x1E // I2C 7bit alamat HMC5883
batal persediaan () {
// Memulakan komunikasi Serial dan I2C Serial.begin (115200); Wire.begin (); kelewatan (100); Wire.beginTransmission (Magnetometer); Wire.write (0x02); // Pilih mod daftar Wire.write (0x00); // Mod pengukuran berterusan Wire.endTransmission (); }
gelung kosong () {
// ---- X-Axis Wire.beginTransmission (Magnetometer); // hantar ke peranti Wire.write (Magnetometer_mX1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); jika (Wire.available () <= 1) {mX0 = Wire.read (); } Wire.beginTransmission (Magnetometer); // hantar ke peranti Wire.write (Magnetometer_mX0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); jika (Wire.available () <= 1) {mX1 = Wire.read (); }
// ---- Y-Paksi
Wire.beginTransmission (Magnetometer); // hantar ke peranti Wire.write (Magnetometer_mY1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); jika (Wire.available () <= 1) {mY0 = Wire.read (); } Wire.beginTransmission (Magnetometer); // hantar ke peranti Wire.write (Magnetometer_mY0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); jika (Wire.available () <= 1) {mY1 = Wire.read (); } // ---- Z-Axis Wire.beginTransmission (Magnetometer); // hantar ke peranti Wire.write (Magnetometer_mZ1); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); jika (Wire.available () <= 1) {mZ0 = Wire.read (); } Wire.beginTransmission (Magnetometer); // hantar ke peranti Wire.write (Magnetometer_mZ0); Wire.endTransmission (); Wire.requestFrom (Magnetometer, 1); jika (Wire.available () <= 1) {mZ1 = Wire.read (); } // ---- X-Axis mX1 = mX1 << 8; mX_out = mX0 + mX1; // Data mentah // Dari lembar data: 0.92 mG / digit Xm = mX_out * 0.00092; // Unit Gauss // * Medan magnet bumi berkisar antara 0,25 hingga 0,65 Gauss, jadi ini adalah nilai yang perlu kita perolehi.
// ---- Y-Paksi
mY1 = mY1 << 8; mY_out = mY0 + mY1; Ym = mY_out * 0.00092;
// ---- Z-Paksi
mZ1 = mZ1 <0.073 penolakan rad = 0.073; tajuk + = deklinasi; // Memperbetulkan apabila tanda dibalikkan jika (tajuk <0) tajuk + = 2 * PI;
// Membetulkan kerana penambahan sudut deklinasi
jika (tajuk> 2 * PI) tajuk - = 2 * PI;
tajukDegrees = tajuk * 180 / PI; // Tajuk dalam unit Darjah
// Melicinkan sudut output / Penapis lulus rendah
tajukFiltered = headingFiltered * 0,85 + tajukDegrees * 0,15;
// Menghantar nilai tajuk melalui Serial Port ke Processing IDE
Serial.println (tajukFiltered);
kelewatan (50); }
Langkah 3: Memproses Kod Sumber IDE
Setelah memuat naik sketsa Arduino sebelumnya, kita perlu menerima data ke dalam Processing IDE dan melukis Digital Compass. Kompas terdiri daripada gambar latar, gambar tetap anak panah, dan gambar berpusing badan kompas. Jadi nilai untuk medan magnet eart yang dikira dengan Arduino digunakan untuk memutar kompas.
Berikut adalah kod sumber IDE Pemprosesan:
/ * Arduino Compass * * oleh Dejan Nedelkovski, * www. HowToMechatronics.com * * / import processing.serial. *; import java.awt.event. KeyEvent; import java.io. IOException;
MyPort bersiri;
PImage imgCompass; PImage imgCompassArrow; Latar belakang gambar;
Data rentetan = "";
tajuk apungan;
batal persediaan () {
saiz (1920, 1080, P3D); halus (); imgCompass = loadImage ("Kompas.png"); imgCompassArrow = loadImage ("CompassArrow.png"); latar belakang = loadImage ("Background.png"); myPort = Serial baru (ini, "COM4", 115200); // memulakan komunikasi bersiri myPort.bufferUntil ('\ n'); }
undian tidak sah () {
gambar (latar belakang, 0, 0); // Memuatkan gambar Latar belakang pushMatrix (); terjemahkan (lebar / 2, tinggi / 2, 0); // Menterjemahkan sistem koordinat ke tengah skrin, sehingga putaran berlaku tepat di tengah rotateZ (radian (-heading)); // Memutar Kompas di sekitar gambar Z - Paksi (imgCompass, -960, -540); // Memuatkan gambar Kompas dan ketika sistem koordinat dipindahkan, kita perlu menetapkan gambar pada -960x, -540y (separuh ukuran skrin) popMatrix (); // Membawa sistem koordinat kembali ke kedudukan asal 0, 0, 0 gambar (imgCompassArrow, 0, 0); // Memuatkan gambar CompassArrow yang tidak dipengaruhi oleh fungsi rotateZ () kerana fungsi fungsi PopMatrix () textSize (30); teks ("Tajuk:" + tajuk, 40, 40); // Mencetak nilai tajuk di skrin
kelewatan (40);
}
// mula membaca data dari Serial Port
batal serialEvent (Serial myPort) {data = myPort.readStringUntil ('\ n'); // membaca data dari Serial Port dan memasukkannya ke dalam String variabel "data". tajuk = apungan (data); // Menukar nilai String menjadi nilai Float}
Saya harap anda akan menyukai projek ini. Sekiranya demikian, anda juga boleh melayari laman web saya untuk projek yang lebih menarik.
Disyorkan:
Cara Membuat RADAR Menggunakan Arduino untuk Projek Sains - Projek Arduino Terbaik: 5 Langkah
Cara Membuat RADAR Menggunakan Arduino untuk Projek Sains | Projek Arduino Terbaik: Hai rakan-rakan, dalam pengajaran ini saya akan menunjukkan kepada anda bagaimana membuat sistem radar yang menakjubkan yang dibina menggunakan arduino nano projek ini sangat sesuai untuk projek sains dan anda boleh membuatnya dengan pelaburan dan peluang yang sangat rendah jika memenangi hadiah adalah bagus untuk
Kompas Digital Menggunakan Arduino dan HMC5883L Magnetometer: 6 Langkah
Kompas Digital Menggunakan Magnetometer Arduino dan HMC5883L: Hai kawan-kawan, Sensor ini dapat menunjukkan geografi Utara, Selatan, Timur, dan Barat, kita manusia juga dapat menggunakannya pada waktu yang diperlukan. Jadi. Dalam artikel ini mari kita cuba memahami bagaimana sensor Magnetometer berfungsi dan bagaimana menghubungkannya dengan mikrokontro
Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]: 11 Langkah
Cara Menggunakan Modul GY511 Dengan Arduino [Buat Kompas Digital]: Tinjauan Dalam beberapa projek elektronik, kita perlu mengetahui lokasi geografi pada bila-bila masa 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
10 Projek Arduino Asas untuk Pemula! Buat sekurang-kurangnya 15 Projek Dengan Papan Tunggal !: 6 Langkah
10 Projek Arduino Asas untuk Pemula! Buat sekurang-kurangnya 15 Projek Dengan Papan Tunggal !: Projek Arduino & Lembaga Tutorial; Termasuk 10 projek asas Arduino. Semua kod sumber, fail Gerber dan banyak lagi. Tiada SMD! Pematerian mudah untuk semua orang. Komponen yang mudah ditanggalkan dan diganti. Anda boleh membuat sekurang-kurangnya 15 projek dengan satu
Pembakar Bertenaga USB! Projek ini Boleh Membakar Melalui Plastik / Kayu / Kertas (Projek yang menyeronokkan Juga Harus Kayu Sangat Baik): 3 Langkah
Pembakar Bertenaga USB! Projek ini Boleh Membakar Melalui Plastik / Kayu / Kertas (Projek yang Menyeronokkan Juga Harus Kayu Sangat Baik): JANGAN JADIKAN MENGGUNAKAN USB INI !!!! saya mendapat tahu bahawa ia boleh merosakkan komputer anda dari semua komen. komputer saya baik-baik saja. Gunakan pengecas telefon 600ma 5v. Saya menggunakan ini dan berfungsi dengan baik dan tidak ada yang boleh rosak jika anda menggunakan palam keselamatan untuk menghentikan kuasa