Daftar Isi:
- Langkah 1: Bagian yang Diperlukan
- Langkah 2: Kode Sumber Arduino
- Langkah 3: Memproses Kode Sumber IDE
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Halo! Dalam instruksi ini Anda akan melihat bagaimana Anda dapat membuat Kompas Digital menggunakan Arduino dan Processing IDE. Ini cukup sederhana namun menarik dan tampak keren Arduino Project.
Anda dapat menonton contoh demo tutorial ini pada video di atas. Anda selalu dapat menemukan lebih banyak video menarik seperti ini di saluran YouTube saya serta menemukan banyak proyek dan tutorial elektronik di situs web saya, HowToMechatronics.com
Langkah 1: Bagian yang Diperlukan
Untuk proyek ini, Anda hanya memerlukan Papan Arduino dan Magnetometer MEMS, untuk mengukur medan magnet bumi. Saya akan menggunakan papan breakout GY – 80 yang berisi MC5883L 3 – Axis Magnetometer.
Sebelum kita melanjutkan dengan kode sumber untuk proyek ini Jika Anda memerlukan rincian lebih lanjut bagaimana magnetometer MEMS bekerja serta bagaimana menghubungkan dan menggunakan papan breakout GY - 80 melalui Komunikasi I2C Anda dapat memeriksa tutorial khusus saya untuk itu.
Langkah 2: Kode Sumber Arduino
Yang perlu kita lakukan pertama adalah mengunggah sketsa ke Arduino Board yang akan membaca data dari magnetometer dan akan mengirimkannya ke Processing IDE. Berikut Kode Sumber Arduino:
/* Kompas Arduino * * oleh Dejan Nedelkovski, * www. HowToMechatronics.com * */
#termasuk //I2C Arduino Library
#define Magnetometer_mX0 0x03
#mendefinisikan Magnetometer_mX1 0x04 #mendefinisikan Magnetometer_mZ0 0x05 #mendefinisikan Magnetometer_mZ1 0x06 #mendefinisikan Magnetometer_mY0 0x07 #mendefinisikan Magnetometer_mY1 0x08
int mX0, mX1, mX_out;
int mY0, mY1, mY_out; int mZ0, mZ1, mZ_out;
pos mengambang, pos Derajat, pos Difilter, deklinasi;
mengapung Xm, Ym, Zm;
#menentukan Magnetometer 0x1E //I2C 7bit alamat HMC5883
batalkan pengaturan(){
//Inisialisasi komunikasi Serial dan I2C Serial.begin(115200); Kawat.mulai(); penundaan(100); Wire.beginTransmission(Magnetometer); Kawat.tulis (0x02); // Pilih mode register Wire.write(0x00); // Mode pengukuran berkelanjutan Wire.endTransmission(); }
lingkaran kosong(){
//---- X-Axis Wire.beginTransmission(Magnetometer); // kirim ke perangkat Wire.write(Magnetometer_mX1); Kawat.endTransmisi(); Kawat.permintaanDari(Magnetometer, 1); if(Wire.available()<=1) { mX0 = Wire.read(); } Wire.beginTransmission(Magnetometer); // kirim ke perangkat Wire.write(Magnetometer_mX0); Kawat.endTransmisi(); Kawat.permintaanDari(Magnetometer, 1); if(Wire.available()<=1) { mX1 = Wire.read(); }
//---- Sumbu Y
Wire.beginTransmission (Magnetometer); // kirim ke perangkat Wire.write(Magnetometer_mY1); Kawat.endTransmisi(); Kawat.permintaanDari(Magnetometer, 1); if(Wire.available()<=1) { mY0 = Wire.read(); } Wire.beginTransmission(Magnetometer); // kirim ke perangkat Wire.write(Magnetometer_mY0); Kawat.endTransmisi(); Kawat.permintaanDari(Magnetometer, 1); if(Wire.available()<=1) { mY1 = Wire.read(); } //---- Z-Axis Wire.beginTransmission(Magnetometer); // kirim ke perangkat Wire.write(Magnetometer_mZ1); Kawat.endTransmisi(); Kawat.permintaanDari(Magnetometer, 1); if(Wire.available()<=1) { mZ0 = Wire.read(); } Wire.beginTransmission(Magnetometer); // kirim ke perangkat Wire.write(Magnetometer_mZ0); Kawat.endTransmisi(); Kawat.permintaanDari(Magnetometer, 1); if(Wire.available()<=1) { mZ1 = Wire.read(); } //---- Sumbu X mX1=mX1<<8; mX_keluar =mX0+mX1; // Data mentah // Dari lembar data: 0,92 mG/digit Xm = mX_out*0,00092; // Satuan Gauss //* Medan magnet bumi berkisar antara 0,25 hingga 0,65 Gauss, jadi ini adalah nilai yang perlu kita dapatkan kira-kira.
//---- Sumbu Y
mY1=mY1<<8; mY_out = mY0+mY1; Ym = mY_out*0,00092;
//---- Sumbu Z
mZ1=mZ1< 0,073 rad deklinasi = 0,073; pos += deklinasi; // Mengoreksi saat tanda dibalik if(heading <0) heading += 2*PI;
// Koreksi karena penambahan sudut deklinasi
if(heading > 2*PI)heading -= 2*PI;
headingDerajat = heading * 180/PI; // Judul dalam satuan Derajat
// Menghaluskan sudut keluaran / Filter lolos rendah
headingFiltered = headingFiltered*0.85 + headingDegrees*0.15;
//Mengirim nilai heading melalui Serial Port ke Processing IDE
Serial.println(headingFilter);
penundaan (50); }
Langkah 3: Memproses Kode Sumber IDE
Setelah kami mengunggah sketsa Arduino sebelumnya, kami perlu menerima data ke dalam Processing IDE dan menggambar Kompas Digital. Kompas terdiri dari gambar latar belakang, gambar panah tetap, dan gambar badan kompas yang berputar. Jadi nilai medan magnet bumi yang dihitung dengan Arduino digunakan untuk memutar kompas.
Berikut kode sumber dari Processing IDE:
/* Kompas Arduino * * oleh Dejan Nedelkovski, * www. HowToMechatronics.com * */ import processing.serial.*; impor java.awt.event. KeyEvent; impor java.io. IOException;
Port saya serial;
PImage imgKompas; PImage imgCompassArrow; PGambar latar belakang;
String data="";
pos mengambang;
batalkan pengaturan() {
ukuran (1920, 1080, P3D); halus(); imgKompas = loadImage("Kompas.png"); imgCompassArrow = loadImage("CompassArrow.png"); background = loadImage("Latar Belakang.png"); myPort = Serial baru(ini, "COM4", 115200); // memulai komunikasi serial myPort.bufferUntil('\n'); }
batal menggambar() {
gambar(latar belakang, 0, 0); // Memuat gambar Latar belakang pushMatrix(); terjemahkan(lebar/2, tinggi/2, 0); // Menerjemahkan sistem koordinat ke tengah layar, sehingga rotasi terjadi tepat di tengah rotateZ(radian(-heading)); // Memutar Kompas di sekitar Z - Gambar sumbu(imgCompass, -960, -540); // Memuat gambar Kompas dan saat sistem koordinat dipindahkan, kita perlu mengatur gambar pada -960x, -540y (setengah ukuran layar) popMatrix(); // Membawa sistem koordinat kembali ke posisi semula 0, 0, 0 image(imgCompassArrow, 0, 0); // Memuat gambar CompassArrow yang tidak terpengaruh oleh fungsi rotateZ() karena fungsi popMatrix() textSize(30); text("Judul: " + judul, 40, 40); // Mencetak nilai heading di layar
penundaan (40);
}
// mulai membaca data dari Port Serial
void serialEvent (Serial myPort) { data = myPort.readStringUntil('\n');// membaca data dari Serial Port dan memasukkannya ke dalam variabel String "data". judul = float(data); // Mengubah nilai String menjadi nilai Float }
Saya harap Anda akan menyukai proyek ini. Jika demikian, Anda juga dapat mengunjungi situs web saya untuk proyek-proyek keren lainnya.
Direkomendasikan:
Cara Membuat RADAR Menggunakan Arduino untuk Proyek Sains - Proyek Arduino Terbaik: 5 Langkah
Cara Membuat RADAR Menggunakan Arduino untuk Proyek Sains | Proyek Arduino Terbaik: Hai teman-teman, dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana membuat sistem radar luar biasa yang dibangun menggunakan arduino nano, proyek ini sangat ideal untuk proyek sains dan Anda dapat dengan mudah membuatnya dengan investasi dan peluang yang sangat sedikit jika memenangkan hadiah besar untuk
Kompas Digital Menggunakan Magnetometer Arduino dan HMC5883L: 6 Langkah
Kompas Digital Menggunakan Magnetometer Arduino dan HMC5883L: Hai teman-teman, Sensor ini dapat menunjukkan geografis Utara, Selatan, Timur, dan Barat, kita manusia juga dapat menggunakannya pada saat diperlukan. Jadi. Pada artikel ini mari kita coba memahami cara kerja sensor Magnetometer dan cara menghubungkannya dengan mikrokontroler
Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]: 11 Langkah
Cara Menggunakan Modul GY511 Dengan Arduino [Membuat Kompas Digital]: Tinjauan Dalam beberapa proyek elektronik, kita perlu mengetahui lokasi geografis setiap saat dan melakukan operasi tertentu yang sesuai. Dalam tutorial ini, Anda akan mempelajari cara menggunakan modul kompas LSM303DLHC GY-511 dengan Arduino untuk membuat kompas digital
10 Proyek Dasar Arduino untuk Pemula! Buat Setidaknya 15 Proyek Dengan Satu Papan!: 6 Langkah
10 Proyek Arduino Dasar untuk Pemula! Buat Setidaknya 15 Proyek Dengan Satu Papan!: Proyek Arduino & Papan Tutorial; Termasuk 10 proyek Arduino dasar. Semua kode sumber, file Gerber, dan lainnya. Tidak ada SMD! Solder mudah untuk semua orang. Komponen yang mudah dilepas dan diganti. Anda dapat membuat setidaknya 15 proyek dengan satu
Pembakar Bertenaga USB! Proyek Ini Dapat Membakar Melalui Plastik / Kayu / Kertas (Proyek yang menyenangkan Juga Harus Kayu yang Sangat Halus): 3 Langkah
Pembakar Bertenaga USB! Proyek Ini Dapat Membakar Plastik/ Kayu / Kertas (Proyek Menyenangkan Juga Harus Kayu Sangat Halus): JANGAN MEMBUAT INI MENGGUNAKAN USB!!!! saya menemukan bahwa itu dapat merusak komputer Anda dari semua komentar. komputer saya baik-baik saja tho. Gunakan pengisi daya telepon 600ma 5v. saya menggunakan ini dan berfungsi dengan baik dan tidak ada yang rusak jika Anda menggunakan steker pengaman untuk menghentikan daya