Mundarija:

OLED displey loyihasi yordamida GPS monitoringi: 5 qadam (rasmlar bilan)
OLED displey loyihasi yordamida GPS monitoringi: 5 qadam (rasmlar bilan)

Video: OLED displey loyihasi yordamida GPS monitoringi: 5 qadam (rasmlar bilan)

Video: OLED displey loyihasi yordamida GPS monitoringi: 5 qadam (rasmlar bilan)
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Iyul
Anonim
OLED displey loyihasi yordamida GPS monitoringi
OLED displey loyihasi yordamida GPS monitoringi
OLED displey loyihasi yordamida GPS monitoringi
OLED displey loyihasi yordamida GPS monitoringi
OLED displey loyihasi yordamida GPS monitoringi
OLED displey loyihasi yordamida GPS monitoringi
OLED displey loyihasi yordamida GPS monitoringi
OLED displey loyihasi yordamida GPS monitoringi

Hammaga salom, ushbu tezkor maqolada men siz bilan o'z loyihamni baham ko'raman: SAMD21J18 mikrokontrollerli va SSD1306 OLED 128*64 displeyli ATGM332D GPS moduli, men buning uchun Eagle Autodesk -da maxsus PCB qurdim va Atmel studio 7.0 va ASF4 yordamida dasturlashtirdim. Ushbu maqolada men siz bilan bu sayohatni va men ishlatgan fayllar bilan bo'lishaman, agar siz buni o'zingiz qilishingiz qiziq bo'lsa.

Agar siz MCU/ishlab chiqish kartasini Arduino -dan foydalanib dasturlashtirayotgan bo'lsangiz, bu loyiha sizga nisbatan osonroq bo'lishi kerak, lekin bu erda men C tiliga asoslangan Atmel/Microchip -dan ASF4 (Advanced software framwork 4) dan foydalanaman va sizga g'oya beradi. USART asinxron drayveri (Qayta qo'ng'iroq) yordamida GPS NMEA xabarini qanday o'qish va sizga oddiy kutubxonani taqdim etish uchun, uni har qanday Mikro-nazoratchi va boshqa platformada ishlatishingiz mumkin, bu xabarni qabul qilish uchun kerakli drayverni qo'shish orqali. GPS (NMEA xabari).

Men ushbu maqolani quyidagilarga ajrataman.

  1. PCB dizayni.
  2. BOM siz PCBni yig'ishingiz kerak
  3. Dasturiy ta'minot va kodning o'zi va apparat va dasturiy ta'minotni sinab ko'rish.
  4. Nihoyat, lekin bu loyihani takomillashtirishning eng muhim nuqtasi.

Siz ushbu loyihaga tegishli barcha materiallarni Github -da topasiz (Bu erda)

1 -qadam: Eagle yordamida tenglikni dizayni

Eagle yordamida tenglikni dizayni
Eagle yordamida tenglikni dizayni
Eagle yordamida tenglikni dizayni
Eagle yordamida tenglikni dizayni
Eagle yordamida tenglikni dizayni
Eagle yordamida tenglikni dizayni
Eagle yordamida tenglikni dizayni
Eagle yordamida tenglikni dizayni

Ushbu loyiha asosan ATGM332D GPS -moduliga asoslangan, oddiy GPS -dan foydalanadi, chunki uning ishlashi uchun bir nechta passiv komponentlar kerak bo'ladi va agar biz modulning asosiy quvvat manbasini o'chirib qo'ysak, vaqt/sanani tejash uchun zaxira batareyani qo'shishimiz mumkin.

va barcha signallarni nazorat qilish uchun men ATSAMD21J18B mikrokontroleriga, TQFP64 paketiga bordim, chunki u 128Kbaytli dastur xotirasi va 32Kbaytli ma'lumot xotirasiga ega (va menda ularning ko'pchiligi ishchi dastgohim atrofida joylashgan).

O'chirish USB 5V manbasi bilan ta'minlanishi kerak, shuningdek, USB virtual COM porti (CDC USB) vazifasini bajarishi mumkin va agar siz qurilma bilan USB orqali bog'lanmoqchi bo'lsangiz, unga kod qo'shishingiz mumkin.

displey uchun men SPI avtobusli SSD1306 0,96 'OLED -displeyni tanladim, bu kichik, lekin men xohlagan tenglikni o'lchamiga mos keladi, taxta o'lchami 100x31 mm.

Mikrokontrollerni dasturlash SWD dasturchisi orqali amalga oshiriladi (men Atmel ICE dan foydalanaman) va uni 1.27 mm 10p pinli sarlavha orqali ulaydi.

Shuningdek, men taxtaning 3d ko'rinishini olish uchun Fusion360 -dan foydalandim va siz uning tasvirini ham ko'rishingiz mumkin.

2 -qadam: tenglikni lehimlash

PCBni lehimlash
PCBni lehimlash
PCBni lehimlash
PCBni lehimlash
PCBni lehimlash
PCBni lehimlash

Siz o'zingizning tenglikni yordamida stencilga buyurtma berishni tanlashingiz mumkin, shablon yordamida lehim pastasini taxtaga surtish osonroq, men komponentlarni bir -biriga lehimlash uchun issiq taxtadan foydalandim, issiq havodan foydalanish ham yaxshi, lekin LEDni lehimlashda ehtiyot bo'ling. ular issiqlikka juda sezgir.

Pastki tomonni lehimlash biroz osonroq, chunki u faqat SWD pinli sarlavhaga va zaxira batareyaga ega, siz ularni lehimlantiruvchi temir yordamida lehimlashingiz mumkin.

USB -quvvat manbaiga ulanishdan oldin, qisqa tutashuv mavjudligini tekshiring.

GPS antennangizni ulang va ulagichni to'g'ri lehimlaganingizga ishonch hosil qiling, men antennani taxtaning pastki qismiga o'rnatdim.

3 -qadam: dasturiy ta'minot … funksionallik… natijalar

Image
Image
Dasturiy ta'minot … Funktsionallik… natijalar
Dasturiy ta'minot … Funktsionallik… natijalar
Dasturiy ta'minot … Funktsionallik… natijalar
Dasturiy ta'minot … Funktsionallik… natijalar

Dastur 4 qismga bo'linadi:

  1. USART ATGM332 GPS moduli bilan aloqa o'rnatadi.
  2. OLED bilan aloqa qilish uchun SPI.
  3. USB CDC.
  4. LEDlarni boshqarish uchun GPIO

avval USB ulagichini elektr tarmog'iga ulang, so'ngra tasma kabelini SWD ulagichiga ulang.

Kodni github -dan yuklab oling (havola bu erda).

Geo-joylashuvni olish uchun sizda NMEA-ning 3 xil xabar variantlari mavjud:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Joyni, vaqtni va sanani olish uchun GPRMC jumlasini ishlatardim (vaqt 0.0 GMT), shuning uchun siz kodda topasiz:

GPRMC. Enable = 1;/*0, agar bu xabarga ehtiyoj bo'lmasa*/

GPGGA. Enable = 0;/*0, agar bu xabarga ehtiyoj bo'lmasa*/

GPGLL. Enable = 0;/*0, agar bu xabarga ehtiyoj bo'lmasa*/

Siz ularni birgalikda yoqishingiz va ularni o'qishingiz va kerakli ma'lumotlarni olishingiz mumkin.

to'g'ri GPRMC jumlasi mavjud bo'lganda, theGPRMC. Ready 1 bo'ladi va siz ushbu jumlada mavjud bo'lgan barcha ma'lumotlarni olishingiz mumkin, bu jumlada mavjud bo'lgan ma'lumotlarni ko'rish uchun bu havolani tekshiring.

agar Fix "A" bo'lsa, bu joylashuv mavjudligini anglatadi, agar "V" bo'lsa, demak, bu joy mavjud emas.

E'tibor bering, ATSAMD21 ichki RTC -ga ega, lekin men bu erda ishlatmayman va buning o'rniga vaqt va sanani to'g'ridan -to'g'ri GPS -dan ishlataman, shuning uchun agar siz CR1220 zaxira batareyasini ishlatishni xohlamasangiz, USB quvvat manbaini uzib qo'ysangiz. Vaqt/sanani yo'qoting va keyingi safar elektronni yoqsangiz, displeyda vaqt/sana GPS bo'sh vaqt/sana qiymatiga ega bo'lmaguncha bo'sh qoladi.

displey sizga GPS-ning hozirgi holatini ko'rsatadi va u mavjud bo'lganda Geo-joylashuvni ko'rsatadi, lekin bortda 3 ta LED mavjud:

  1. Yashil LED PA06 ga ulangan va agar to'g'ri Geo-joylashuv qiymati bo'lsa miltillaydi.
  2. To'q rangli LED PA07 ga ulangan va agar to'g'ri Geo-joylashuv bo'lmasa, sekundiga bir marta yonadi.
  3. Qizil LED bu GPS modulining PPS piniga ulangan va faqat joylashuvga tegishli signal mavjud bo'lganda yonadi.

Natijalar

Tarmoq men bilan juda yaxshi ishladi, GPS-dan geografik joylashuv 20-30 soniya ochiq havoda va binolar o'rtasida aniq ko'rinishda, hatto taxtaning pastki qismidagi antennada ham aniqlandi.

4 -qadam: 3D bosma quti… Saralash

3D bosma quti… Saralash
3D bosma quti… Saralash

Men bu sxemaga oddiy korpus (aniqroq ushlagich) tayyorladim, lekin hozirda COVID-19 epidemiyasi va blokirovka tufayli men uni chop etish uchun 3d printerimga kira olmadim, shuning uchun men bu bo'limni stl bilan yangilayman. fayl va fotosuratlar mavjud bo'lganda.

5 -qadam: yaxshilanadigan narsalar …

Yaxshilash kerak bo'lgan narsalar …
Yaxshilash kerak bo'lgan narsalar …
Yaxshilash kerak bo'lgan narsalar …
Yaxshilash kerak bo'lgan narsalar …
Yaxshilash kerak bo'lgan narsalar …
Yaxshilash kerak bo'lgan narsalar …
  1. SWD ulagichini yuqori tomonga siljiting, chunki uni dasturchi bilan ulash osonroq.
  2. Lityum batareyadan zanjirni quvvatlantirgan holda, men jumperni lehimlash orqali qildim va u yaxshi ishladi, chunki chiziqli (LDO) regulyatori V tushish kuchlanishiga ega, agar (Vbat - Vout) Vdrop chegarasidan pastroq bo'lsa, kontaktlarning zanglashiga olib kelishi mumkin emas. to'g'ri.
  3. foydalanuvchi tugmachasini biroz kattalashtirib, bosish osonroq bo'ladi.
  4. USB CDC kodini qo'shish orqali siz MAC/PC/linux uchun maxsus dasturni yaratishingiz mumkin.
  5. GPS antennasi uchun men AT2659 kabi past shovqinli op-Amp qo'shib, passiv antennadan foydalanish mumkin, bu loyiha uchun faol antennani ishlatardim (ATGM332 ma'lumotlar jadvalining P.14 sxemasini ham tekshiring).
  6. OLED 0.96 'SSD1306 uchun, dastlab 128*32 displeyli mikrochipdagi rasmiy kutubxona, 128*64 bilan ishlash uchun kodni o'zgartirish uchun ssd1306.c saytiga o'tishingiz va kodni o'zgartirishingiz kerak (rasmni tekshiring).

Tavsiya: