Mundarija:
- 1 -qadam: Loyihaning funktsional imkoniyatlarini loyihalash
- 2 -qadam: O'rnatish va simlar diagrammasi
- 3 -qadam: komponentlar va asosiy kodni sinovdan o'tkazish
- 4 -qadam: MPU kalibrlash
- 5 -qadam: Yakuniy kod
Video: Raqamli kompas va sarlavha topuvchi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
Mualliflar:
Kullan Vilen
Endryu Luft
Bleyk Jonson
Rahmatlar:
Kaliforniya dengiz akademiyasi
Evan Chang-Siu
Kirish:
Loyihaning asosi - bu yo'nalishni kuzatuvchi raqamli kompas. Bu foydalanuvchiga raqamli apparat yordamida uzoq masofalarga yo'nalishni kuzatib borish imkonini beradi. Sarlavha - bu shimoldan soat yo'nalishi bo'yicha o'lchanadigan burchak, bu kompas ko'rsatganidek nol daraja deb hisoblanadi. Qurilmaning ikkita asosiy vazifasi bor: birinchisi - raqamli displey ma'lumotnomasida qurilmaning joriy sarlavhasini ko'rsatish, ikkinchisi - foydalanuvchining so'ralgan sarlavhasini kiritish qobiliyati, u yuqori qismidagi LEDlar halqasida ko'rsatiladi. kompas uyi. Shundan so'ng, foydalanuvchi yoritilgan LED bilan bog'liq qurilmaning yo'nalishini o'zgartiradi. Qurilmaning yo'nalishi o'zgarganda, LED markaziy LEDga o'tadi, bu to'g'ri sarlavha o'rnatilganligini ko'rsatadi.
Ta'minot:
- DIYmall 6M GPS moduli
- HiLetgo MPU9250/6500 9 o'qli 9 DOF 16 bitli
- Adafruit NeoPixel uzuk 16
- MakerFocus 4 dona 3.7V lityum zaryadlanuvchi batareya
- ELEGOO MEGA 2560 R3 kartasi
- Adafruit Mini Lipo w/Mini -B USB ulagichi - USB LiIon/LiPoly zaryadlovchi - v1
- Sensorli ekranli, MicroSD rozetkali 2,8 dyuymli TFT LCD
1 -qadam: Loyihaning funktsional imkoniyatlarini loyihalash
Birinchi qadam mantiqni va yakuniy operatsion funktsiyani tushunishdir. Ushbu mantiqiy diagrammada uchta qurilma holati va ikkita sensor holati tasvirlangan.
1 -holat: yuklanayotgan davlat
Yuklash holati Arduino Mega ishga tushganda ikkita sensordan ma'lumotlarni qaytarib olishiga imkon berish uchun ishlatiladi. Qurilma ekranda yuklanishni ko'rsatadi, ekrandagi barcha raqamli qiymatlarni o'chiradi va NeoPixel halqasidagi LEDlar aylana yonadi.
2 -holat: Kompas rejimi
Bunday holatda, qurilma raqamli kompas kabi ishlaydi. NeoPixel halqasi yonib, qurilmaning yo'nalishi bo'yicha Shimoliy yo'nalishini ko'rsatadi. Haqiqiy qurilma sarlavhasi, shuningdek, LCD displeyda qurilmaning kengligi va uzunligi bilan birga ko'rsatiladi. Shuningdek, foydalanuvchi 3 -holatda ko'rsatiladigan foydalanuvchi sarlavhasini kiritishi mumkin.
3 -holat: Sarlavhani kuzatish rejimi
Bunday holatda, qurilma endi foydalanuvchiga kerakli sarlavhani belgilashga yordam beradi. Endi qurilmada LCD displeyda kenglik va uzunlik ma'lumotlari bilan birga qurilmalar va foydalanuvchilarning ko'rsatadigan qurilmalari ko'rsatiladi. Endi NeoPixel halqasi yonib, foydalanuvchilarning qurilmalarga yo'nalishini ko'rsatadi.
2 -chi va 3 -chi holatlarda ikkita sensorli holat mavjud, bu sensorlar holati qurilmaning ish holatiga qarab eng aniq ma'lumotlarni ta'minlaydigan sensordan ma'lumotlarni olish imkonini beradi.
Sensor holati 1: MPU
Agar qurilma harakat qilmasa, sarlavha ma'lumotlari MPU -dan olinadi, chunki bu qurilma harakatlanmagan paytdagi eng aniq ma'lumotlar.
Sensor holati 2: GPS
Agar qurilma harakatlanayotgan bo'lsa, GPS chipidan sarlavha ma'lumotlari olinadi, chunki bu holatdagi eng aniq ma'lumotlar.
Qurilmaning o'zgarishi sharoitlarini hisobga olish uchun qurilma istalgan vaqtda sensor holatiga o'tishi mumkin. Bu qurilmaning ishlashi uchun juda muhim, chunki qurilmada ishlatiladigan ikkita datchikning ikkalasida ham ular bergan ma'lumotlarning to'g'riligiga ta'sir ko'rsatadigan shartlar mavjud. MPU bo'lsa, chipga mashinalar va metall konstruktsiya materiallari ta'sirida mahalliy magnit maydonlar ta'sir qilishi mumkin. Shunday qilib, xuddi shu ta'sirlar ta'sir qilmaydigan aniqroq sarlavhani ta'minlaydigan GPS -chip ishlatiladi. Biroq, GPS harakatlanayotganda faqat yo'nalish ma'lumotlarini berishi mumkin, chunki u kenglik va uzunlik ma'lumotlarining o'zgarishi yordamida yo'nalishni hisoblab chiqadi. Shunday qilib, chiplar bir -birini to'ldiradi va ikkita sensorli holat yordamida qurilmaning eng aniq va ishonchli ishlashini ta'minlaydi.
2 -qadam: O'rnatish va simlar diagrammasi
Loyiha yuqoridagi taxtaga o'xshash Arduino Mega klon taxtasidan foydalanadi. Loyihadagi barcha komponentlar shu taxtaga ulanadi. Yuqorida ushbu loyihaning tarkibiy qismlarini qanday ulash haqida batafsil diagrammalar berilgan. Tugmalar batafsil sxemaga ega emas, chunki ularni ko'p yo'llar bilan sozlash mumkin. Ushbu loyihada ular 100K pastga tushirish qarshiligi va 3 voltli signalni o'z piniga yuborish uchun oddiy tugmani ishlatadilar.
3 -qadam: komponentlar va asosiy kodni sinovdan o'tkazish
Loyiha yuqorida aytib o'tilganidek, MPU va GPS chipidan ma'lumotlarni oladi. Qismlarning funksionalligini tekshirish uchun ekranli MPU, GPS va MPU ma'lumotlarini sinab ko'rishga imkon beruvchi uchta kod biriktirilgan. Ushbu bosqichda komponentlarni ishga tushirish juda muhim, chunki kod har bir chip uchun alohida va har qanday muammolarni yakuniy kodda kutilmagan xatolarga yo'l qo'yishdan qo'rqmasdan hal qilish mumkin.
Majburiy kutubxonalar:
Adafruit_ILI9341_Albert.h
SPI.h
Adafruit_GFX.h
Adafruit_ILI9341.h
TinyGPS ++. H
Adafruit_NeoPixel.h
MPU9250.h
Bularning barchasini yuqoridagi sarlavhalarni qidirish orqali topish mumkin. Men havolalarni joylashtirmayman, chunki bu kutubxonalarning bir nechta manbalardan nusxalari ko'p va jamoatchilik standartlariga rioya qilgan holda, faqat asl nusxalarga havola qilish, men buni o'zingiz topishingizga ruxsat beraman.
4 -qadam: MPU kalibrlash
MPU orqali topilgan sarlavha 2 va 3 -shtatda to'rtta kvadrantga bo'lingan. Bu zarur edi, chunki bizning kalibrlash usuli magnitometrdan uning x va y o'qlari bo'ylab minimal va maksimal kattaliklarni topishni talab qilgan. Bu qurilmani Yerdan boshqa hech qanday muhim elektromagnit maydonlardan xoli uch o'qi atrofida tasodifiy aylantirish orqali amalga oshirildi. Keyin biz x va y o'qlari bo'yicha minimal va maksimal qiymatlarni oldik va manfiy va bitta qiymatlar orasidagi kattaliklarni cheklash uchun ularni o'lchov tenglamasiga qo'shdik. Yuqoridagi rasmda BigX va BigY mos ravishda x va y o'qlari bo'ylab magnitometr ma'lumotlarining maksimal qiymatlari, LittleX va LittleY-mos ravishda x va y o'qi bo'yicha magnitometr ma'lumotlarining minimal qiymatlari, IMU.getMagX_uT () va IMU.getMagY_uT ()-har qanday vaqtda magnitometrdan mos ravishda x va y o'qi bo'ylab olinadigan qiymatlar, va Mx va My-sarlavhani hisoblash uchun ishlatiladigan yangi o'lchovli qiymatlar.
5 -qadam: Yakuniy kod
Oxirgi qadam oxirgi kodni yaratishdir. Men loyihalarning yakuniy kodining nusxasini biriktirdim. Kodni boshqarishda yordam beradigan eslatmalar tuzilgan. Ushbu bo'limning eng katta muammosi kvadrantlarning to'g'ri ishlashiga erishish edi. Kvadrantlarni amalga oshirish biz o'ylagandan ko'ra zerikarli va mantiqiy emas edi. Biz dastlab asosiy arktanni (My/Mx) joriy qildik, so'ngra radianlardan graduslarga o'tkazdik, chunki Arduino sukut bo'yicha radianlarda chiqadi. Biroq, bu ishlaydigan yagona kvadrant 90 gradusdan 180 gradusgacha bo'lgan, bu bizga salbiy natija berdi va III chorakka aylandi. Buning echimi mutlaq qiymatni olish edi, chunki u hali ham to'g'ri o'sdi. Bu qiymat 360 -dan 2 -holatdagi to'g'ri NeoPixel LED -ni yoqish uchun olib tashlandi va shunga o'xshash matematik operatsiya 3 -holatda ishlatilgan, agar sarlavha foydalanuvchining kirish sarlavhasidan kattaroq yoki kichikroq bo'lsa, ikkalasini ham ko'rish mumkin. yuqoridagi kod. Yuqoridagi rasmlarda, sarlavha NeoPixel nuriga mos keladi, u 2 -holat holatida qurilma sarlavhasi va shimolga burilish o'rtasidagi farqga qarab yonadi va foydalanuvchi sarlavhasi. Bu holda 90 dan 180 daraja III kvadrantga to'g'ri keladi. Ikkala holatda ham tft.print ekranni qurilmani shimol tomon yo'nalishini o'qishiga olib keladi.
Boshqa uchta kvadrantlar uchun, arktan (My/Mx) ning qo'llanilishi, qurilma aylanayotganda, aksincha, aylanishni teskari yo'nalishiga olib keldi, ya'ni hisoblash kerak bo'lganda yo'nalish burchagi teskari tomonga siljiydi. Bu muammoning echimi arktangensni arktan (Mx/My) shakliga o'tkazish edi. Bu ortib boruvchi inversiyani hal qilgan bo'lsa -da, u qurilmaning to'g'ri sarlavhasini bermadi, bu erda kvadrantlar o'ynadi. Bunga oddiy tuzatish mos keladigan kvadrantga asoslangan siljishni qo'shish edi. Buni har bir kvadrantning 2 va 3 -shtatlarining kod qismlari bo'lgan quyidagi rasmlarda ko'rish mumkin.
Birinchi if ifoda, agar MPU tenglamasi bilan hisoblangan sarlavha foydalanuvchi sarlavhasidan katta bo'lsa bajariladi. Bunday holda, foydalanuvchining kirish sarlavhasi qurilma sarlavhasiga qo'shiladi va 360 dan mos keladigan qiymat chiqariladi. Agar else iborasi bajarilsa, MPU sarlavhasi tenglamasi foydalanuvchining kirish sarlavhasidan chiqariladi. Bu shartlar faqat NeoPixel uchun aniq qiymatni olish uchun emas, balki 0 dan 359 gradusgacha bo'lgan chegaradan tashqaridagi qiymatni olishdan saqlanish maqsadida amalga oshirildi.
Tavsiya:
Ko'rsatmalaringiz uchun sarlavha va kalit so'zlarni tanlang: 6 qadam (rasmlar bilan)
O'qituvchingiz uchun sarlavha va kalit so'zlarni tanlang: To'g'ri sarlavha va kalit so'zlarni tanlash Google qidiruv natijalarining birinchi sahifasiga o'tish yoki Internet tarmog'ining qo'rqinchli joyiga tushib ketishidan farq qilishi mumkin. Kalit so'zlar va sarlavha yagona emas
Sonar diapazonini topuvchi: 4 qadam
Sonar diapazonini topuvchi: Ushbu yo'riqnomada sonar diapazonini topuvchi noutbukning ochiq yoki ochilmaganligini aniqlay oladimi yoki yo'qligini aniqlash uchun test rejasi tuzilgan. Quyida sonar diapazonini topishni yaratish, Arduino -ni qanday dasturlash va uni kalibrlash bo'yicha ko'rsatmalar berilgan
Arduino yordamida DIY diapazonini topuvchi: 6 qadam
Arduino yordamida DIY diapazonini topuvchi: Ushbu maqolada men sizga arduino yordamida diapazon topuvchini qanday yasashni ko'rsataman
Arduino diapazonini topuvchi: 6 qadam
Arduino Range Finder: Bu diapazonni topuvchi eshik ochiq yoki yo'qligini kuzatish uchun yaratilgan. Eshikning masofasini o'lchash bizga eshikning ochiq yoki yopiq ekanligini aniqlash imkonini beradi
Ko'rsatmalarga sarlavha yarating: 8 qadam (rasmlar bilan)
"Instructables" sarlavhasini yarating: Instructables sarlavhasi har doim juda sodda bo'lgan, lekin biz narsalarni yasash bilan bog'liq bo'lgan ba'zi rasmlarni tepada o'ynash qiziqarli bo'lardi deb o'yladik. Buni biroz qiziqarli qilish uchun biz ph -ga hech qanday element qo'shishni xohlamadik