Isi kandungan:
- Langkah 1: Merancang Fungsi Projek
- Langkah 2: Diagram Pemasangan dan Kawat
- Langkah 3: Menguji Komponen dan Kod Asas
- Langkah 4: Penentukuran MPU
- Langkah 5: Kod Akhir
Video: Kompas Digital dan Pencari Tajuk: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Pengarang:
Cullan Whelan
Andrew Luft
Blake Johnson
Ucapan terima kasih:
Akademi Maritim California
Evan Chang-Siu
Pengenalan:
Asas projek ini adalah kompas digital dengan penjejakan tajuk. Ini membolehkan pengguna mengikuti jalan jarak jauh dengan menggunakan alat digital. Secara berkala sebuah arah adalah sudut yang diukur mengikut arah jam dari utara, yang dianggap sebagai sifar darjah, seperti yang ditunjukkan oleh kompas. Peranti mempunyai dua fungsi utama: yang pertama adalah menampilkan tajuk perangkat saat ini pada rujukan paparan digital, dan yang kedua adalah kemampuan untuk memasukkan tajuk yang diminta pengguna, yang akan ditampilkan pada cincin LED di bahagian atas perumahan kompas. Pengguna kemudian akan menyesuaikan orientasi peranti yang berkaitan dengan LED yang diterangi. Apabila arah peranti diubah, LED akan bergerak ke LED tengah, sehingga menunjukkan bahawa arah yang betul telah ditetapkan.
Bekalan:
- Modul GPS DIYmall 6M
- HiLetgo MPU9250 / 6500 9-Axis 9 DOF 16 Bit
- Adafruit NeoPixel Ring 16
- Bateri Lithium MakerFocus 4pcs 3.7V Rechargable
- Papan ELEGOO MEGA 2560 R3
- Adafruit Mini Lipo w / Jack USB Mini-B - Pengecas USB LiIon / LiPoly - v1
- LCD TFT 2,8 dengan Touchscreen Breakout Board dengan Soket MicroSD
Langkah 1: Merancang Fungsi Projek
Langkah pertama adalah memahami logik dan fungsi operasi akhir. Gambarajah logik ini menggambarkan tiga keadaan peranti dan dua keadaan sensor.
Nyatakan 1: Memuatkan Negeri
Keadaan pemuatan digunakan untuk membolehkan Arduino Mega mendapatkan kembali data dari dua sensor semasa dimulakan. Peranti akan memaparkan pemuatan di layar, menghapus semua nilai angka di layar, dan LED pada cincin NeoPixel akan menyala dalam lingkaran.
Nyatakan 2: Mod Kompas
Dalam keadaan ini, peranti akan bertindak seperti kompas digital. Cincin NeoPixel akan menyala untuk menunjukkan arah Utara sehubungan dengan orientasi peranti. Tajuk peranti yang sebenarnya juga akan dipaparkan di skrin LCD bersamaan dengan Lintang dan Bujur peranti. Dalam keadaan ini, pengguna akan dapat memasukkan tajuk pengguna yang akan dipaparkan di Negeri 3.
Nyatakan 3: Mod Penjejakan Tajuk
Dalam keadaan ini, peranti kini akan menolong pengguna menjadi mapan pada tajuk yang diinginkan. Peranti kini akan memaparkan arah peranti dan pengguna menuju ke layar LCD bersama dengan data garis lintang dan garis bujur. Cincin NeoPixel kini akan menyala untuk menunjukkan pengguna menuju ke arah orientasi peranti.
Dalam kedua-dua State 2 dan State 3 ada dua keadaan sensor keadaan sensor ini memungkinkan perangkat menarik data dari sensor yang memberikan data yang paling tepat bergantung pada keadaan operasi perangkat.
Sensor State 1: MPU
Sekiranya peranti tidak bergerak, data tajuk akan ditarik dari MPU kerana ia adalah data yang paling tepat ketika peranti tidak bergerak.
Keadaan Sensor 2: GPS
Sekiranya peranti bergerak, data tajuk akan ditarik dari cip GPS kerana ia adalah data yang paling tepat dalam keadaan ini.
Peranti boleh beralih antara keadaan ini ke keadaan sensor setiap saat untuk memperhitungkan keadaan penggunaan unit yang berubah. Ini penting untuk pengoperasian peranti kerana kedua-dua sensor yang digunakan dalam peranti mempunyai keadaan yang mempengaruhi ketepatan data yang mereka berikan. Dalam kes MPU, cip mudah dipengaruhi oleh medan magnet tempatan yang disebabkan oleh kereta dan bahan binaan logam di bangunan. Oleh itu cip GPS digunakan yang dapat memberikan tajuk yang jauh lebih tepat yang tidak dipengaruhi oleh pengaruh yang sama. Walau bagaimanapun, GPS hanya dapat memberikan data tajuk ketika bergerak ketika menghitung tajuk menggunakan perubahan data garis lintang dan garis bujur. Oleh itu cip saling melengkapi dan dengan menggunakan dua keadaan sensor memberikan fungsi peranti yang paling tepat dan boleh dipercayai.
Langkah 2: Diagram Pemasangan dan Kawat
Projek ini menggunakan dan klon Arduino Mega yang serupa dengan papan di atas. Semua komponen dalam projek akan disambungkan ke papan ini. Di atas adalah gambarajah terperinci mengenai bagaimana menyusun komponen untuk projek ini. Butang tidak mempunyai litar terperinci kerana ini dapat diatur dengan banyak cara. Dalam projek ini mereka menggunakan resistor tarik ke bawah 100K dan butang sederhana untuk menghantar isyarat 3 volt ke pin yang ditentukan.
Langkah 3: Menguji Komponen dan Kod Asas
Projek ini akan menarik data dari MPU dan cip GPS seperti yang dijelaskan sebelumnya. Dilampirkan tiga kod yang memungkinkan pengujian data dari MPU, GPS, dan MPU dengan layar untuk mengesahkan fungsi bahagian. Penting untuk membuat komponen beroperasi pada tahap ini kerana kodnya terpisah untuk setiap cip dan sebarang masalah dapat ditangani tanpa rasa takut menyebabkan kesalahan yang tidak dijangka dalam kod akhir.
Perpustakaan yang diperlukan:
Adafruit_ILI9341_Albert.h
SPI.h
Adafruit_GFX.h
Adafruit_ILI9341.h
TinyGPS ++. H
Adafruit_NeoPixel.h
MPU9250.h
Semua ini boleh didapati dengan mencari tajuk di atas. Saya tidak akan menghantar pautan kerana terdapat banyak salinan perpustakaan ini dari pelbagai sumber dan mematuhi standard komuniti hanya dengan memautkan ke sumber asli. Saya akan membiarkan anda mencari ini sendiri.
Langkah 4: Penentukuran MPU
Tajuk yang dijumpai melalui MPU di Negeri 2 dan Negeri 3 dibahagikan kepada empat kuadran. Ini diperlukan kerana kaedah penentukuran kami memerlukan mencari magnitud minimum dan maksimum dari magnetometer di sepanjang paksi x dan ynya. Ini dilakukan dengan memutar peranti secara acak mengenai tiga paksinya, bebas dari medan elektromagnetik yang signifikan selain daripada Bumi. Kami kemudian mengambil nilai minimum dan maksimum di sepanjang paksi x dan y dan memasukkannya ke dalam persamaan penskalaan untuk menyekat besarnya antara nilai negatif satu dan satu. Dalam rajah di atas, BigX dan BigY adalah nilai maksimum data magnetometer di sepanjang paksi x dan y, LittleX dan LittleY adalah nilai minimum data magnetometer di sepanjang paksi x dan y, IMU.getMagX_uT () dan IMU.getMagY_uT () adalah nilai yang ditarik dari magnetometer setiap saat di sepanjang paksi x dan y masing-masing, dan Mx dan My adalah nilai skala baru yang digunakan untuk mengira tajuk.
Langkah 5: Kod Akhir
Langkah terakhir adalah membuat kod akhir. Saya telah melampirkan salinan kod akhir projek. Di dalam nota telah dibuat untuk membantu menavigasi kod. Cabaran terbesar bahagian ini ialah membuat kuadran berfungsi dengan betul. Pelaksanaan kuadran terbukti lebih membosankan dan menentang logik daripada yang dapat kita jangkakan. Pada mulanya kami menerapkan arctan asas (My / Mx) dan kemudian ditukarkan dari radian ke darjah, kerana Arduino menghasilkan radian secara lalai. Namun, satu-satunya kuadran yang digunakan adalah dari 90 darjah hingga 180 darjah, yang memberi kita output negatif dan akhirnya menjadi Kuadran III. Penyelesaian untuk ini adalah mengambil nilai mutlak, kerana masih meningkat dengan betul. Nilai ini kemudian dikurangkan dari 360 untuk menyalakan LED NeoPixel yang betul dalam keadaan 2 dan operasi matematik yang serupa digunakan pada keadaan 3 berdasarkan jika tajuknya lebih besar atau lebih kecil daripada tajuk input pengguna, yang keduanya dapat dilihat di kod di atas. Dalam gambar di atas, Heading sesuai dengan lampu NeoPixel yang akan menyala berdasarkan perbedaan antara kepala perangkat dan penyimpangan dari utara dalam hal keadaan 2, dan dari tajuk pengguna. Dalam kes ini, 90 hingga 180 darjah sepadan dengan Kuadran III. Dalam kedua kes tersebut, tft.print menyebabkan skrin membaca peranti menuju dari utara.
Untuk tiga kuadran lainnya, pelaksanaan arctan (My / Mx) menyebabkan pembalikan kenaikan ketika peranti diputar, iaitu sudut arah akan dihitung ke bawah ketika seharusnya dihitung dan sebaliknya. Penyelesaian untuk masalah ini adalah dengan membalikkan arctangent ke bentuk arctan (Mx / My). Walaupun ini menyelesaikan pembalikan kenaikan, ia tidak memberikan tajuk perangkat yang betul, di mana kuadran dimainkan. Pembaikan mudah untuk ini adalah dengan menambahkan pergeseran berdasarkan kuadran yang sesuai. Ini dapat dilihat pada gambar berikut, yang sekali lagi merupakan kod dari Negeri 2 dan 3 setiap kuadran.
Penyataan if pertama dilakukan jika tajuk yang dikira oleh persamaan MPU lebih besar daripada tajuk pengguna. Dalam keadaan ini tajuk input pengguna ditambahkan ke tajuk peranti dan nilai yang sesuai dikurangkan dari 360. Jika pernyataan lain dilakukan, persamaan tajuk MPU dikurangkan dari tajuk input pengguna. Syarat-syarat ini dilaksanakan agar tidak hanya mendapatkan nilai yang tepat untuk NeoPixel, tetapi juga untuk menghindari memperoleh nilai di luar rentang yang dapat diterima, yaitu dari 0 hingga 359 darjah.
Disyorkan:
Pilih Tajuk dan Kata Kunci untuk Instruksional Anda: 6 Langkah (dengan Gambar)
Pilih Tajuk dan Kata Kunci untuk Anda yang Dapat Diajar: Memilih tajuk dan kata kunci yang tepat boleh menjadi perbezaan antara petunjuk yang dapat diarahkan ke halaman depan hasil carian Google atau merempuh dan membakar tanah tanpa pandangan yang ditakuti di internet. Walaupun kata kunci dan tajuk bukan satu-satunya
ESPcopter dan Visuino - Tukarkan Tajuk Kompas ke Sudut 3D: 6 Langkah
ESPcopter dan Visuino - Tukarkan Tajuk Kompas ke Sudut 3D: ESPcopter kini disokong sepenuhnya oleh versi terbaru Visuino, dan ini menjadikannya mungkin yang paling mudah untuk memprogram drone yang ada! :-) Dengan sokongan Visuino, anda dapat mengawal motor, LED, bekerjasama dengan Accelerometer, Gyr
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
Pencari Stud Digital: 6 Langkah (dengan Gambar)
Digital Stud Finder: Stud Finders adalah konsep yang mudah. Dua sensor kapasitif: satu menghantar gelombang nadi yang kedua menerima dan mengukur penurunan voltan merentasi bahan di antara kedua-dua plat. Dalam usaha untuk memajukan reka bentuk ini, projek ini dirancang untuk
Edit Latar Belakang Skrin Tajuk GBA Pokémon: 9 Langkah
Edit Latar Belakang Skrin Tajuk GBA Pokémon: Ini adalah yang ketiga dari siri Instructables yang akan saya buat pada penggodaman Pok é mon ROM. Anda boleh mendapatkan yang pertama di sini, dan yang kedua di sini. Instructable ini menunjukkan cara menukar latar belakang skrin tajuk. Demi si