|
Loyiha №44: Oddiy GPS qabul qilgichni yaratish
|
bet | 3/6 | Sana | 17.05.2024 | Hajmi | 18,25 Kb. | | #239205 |
Bog'liq 13 arduinoda gps bilan ishlash ushbu bobda, siz gps ekranini qa-www.hozir.orgLoyiha №44: Oddiy GPS qabul qilgichni yaratish
Keling, oddiy GPS qabul qilgichni yarataylik. Biroq, birinchi navbatda, biz odatda GPS-dan tashqarida foydalanamiz va ishlarni biroz osonlashtirish uchun biz 13-6-rasmdagiga o'xshash ma'lumotlarni ko'rsatish uchun LCD modulni qo'shamiz.
13-6-rasm: Freetronics LCD va klaviatura ekrani
Eslatma
Bizning misollarimiz Freetronics LCD va klaviatura ekranidan foydalanishga asoslangan. Ushbu qalqon haqida ko'proq ma'lumot olish uchun, havola: http://www.freetronics.com/collections/ display/products/lcd-keypad-shield/. Agar siz boshqa displey modulidan foydalanishni tanlasangiz, eskizlaringizdagi LiquidCrystal funksiyasiga to'g'ri qiymatlarni almashtirganingizga ishonch hosil qiling.
LCD displeyda GPS tomonidan qabul qilingan joriy joylashuv koordinatalarini ko'rsatish uchun biz 9 V batareya va ulagich bilan quvvatlanishi mumkin bo'lgan juda oddiy portativ GPSni yaratamiz.
Texnik qism
Kerakli uskuna minimal:
Arduino va USB kabeli
LCD moduli yoki Freetronics LCD ekrani (ilgari aytib o'tilgan)
Bitta 9 V akkumulyatordan doimiy tok rozetkasiga kabel
Bitta SparkFun GPS ekrani to'plami
Eskiz
Quyidagi eskizni kiriting va yuklang:
// 44-loyiha - Oddiy GPS qabul qiluvchini yaratish
#include
#include
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );
// TinyGPS ning TinyGPS gps ob'ekti nusxasini yarating;
void getgps(TinyGPS &gps);
void setup()
{
Serial.begin(4800);
lcd.begin(16, 2);
}
void getgps(TinyGPS &gps)
// Getgps funksiyasi LCD displeyda kerakli ma'lumotlarni ko'rsatadi
{
float latitude, longitude;
// dekodlash va joylashuv ma'lumotlarini ko'rsatish
gps.f_get_position(&latitude, &longitude);
lcd.setCursor(0,0);
lcd.print("Lat:");
lcd.print(latitude,5);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("Long:");
lcd.print(longitude,5);
lcd.print(" ");
delay(3000); // 3 soniya kuting
lcd.clear();
}
void loop()
{
byte a;
if ( Serial.available() > 0 )
// agar ketma-ket qatorga ma'lumotlar kirsa
{
a = Serial.read(); // ma'lumotlar baytini oling
if(gps.encode(a))
// agar haqiqiy GPS ma'lumotlari mavjud bo'lsa ...
{
getgps(gps);
// ma'lumotlarni oling va uni LCD displeyda ko'rsating
}
}
}
dan gacha eskiz LCD va GPS uchun kerakli kutubxonalarni taqdim etadi. Bo'sh sikl da biz GPS qabul qilgichdan olingan belgilarni dagi getgps() funksiyasiga jo'natamiz, bu funksiya gps.f_get_position() dan joylashuv qiymatlarini &latitude (kenglik) va &longitude (uzunlik) o'zgaruvchilariga (biz LCD displeyda ko'rsatamiz) kiritish uchun ishlatadi. ).
LCD displeyda joylashuvni ko'rsatish
Eskiz yuklangandan va GPS ma'lumotlarni qabul qila boshlagandan so'ng, 13-7-rasmda ko'rsatilganidek, o'nlik kenglik va uzunlikdagi joriy joylashuvingiz LCD displeyda ko'rsatilishi kerak.
13-7-rasm: 44-loyihadan kenglik va uzunlikni ko'rsatish
Ammo bu Yerning qayerida? Biz Google Xaritalar (http://maps.google.com/) yordamida uning qayerda ekanligini aniqlay olamiz. Veb-saytda qidiruv maydoniga vergul va bo'sh joy bilan ajratilgan kenglik va uzunlikni kiriting va Google Xaritalar manzilni qaytaradi. Masalan, 13-7-rasmda qaytarilgan koordinatalardan foydalanib, 13-8-rasmdagi kabi xarita hosil bo'ladi.
13-8-rasm: 13-7-rasmda ko'rsatilgan pozitsiyaning joylashuvi
|
| |