Mundarija:
- 1 -qadam: Eagle yordamida tenglikni dizayni
- 2 -qadam: tenglikni lehimlash
- 3 -qadam: dasturiy ta'minot … funksionallik… natijalar
- 4 -qadam: 3D bosma quti… Saralash
- 5 -qadam: yaxshilanadigan narsalar …
Video: OLED displey loyihasi yordamida GPS monitoringi: 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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.
- PCB dizayni.
- BOM siz PCBni yig'ishingiz kerak
- Dasturiy ta'minot va kodning o'zi va apparat va dasturiy ta'minotni sinab ko'rish.
- 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
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
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
Dastur 4 qismga bo'linadi:
- USART ATGM332 GPS moduli bilan aloqa o'rnatadi.
- OLED bilan aloqa qilish uchun SPI.
- USB CDC.
- 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:
- GPGGA
- GPRMC
- 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:
- Yashil LED PA06 ga ulangan va agar to'g'ri Geo-joylashuv qiymati bo'lsa miltillaydi.
- To'q rangli LED PA07 ga ulangan va agar to'g'ri Geo-joylashuv bo'lmasa, sekundiga bir marta yonadi.
- 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
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 …
- SWD ulagichini yuqori tomonga siljiting, chunki uni dasturchi bilan ulash osonroq.
- 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.
- foydalanuvchi tugmachasini biroz kattalashtirib, bosish osonroq bo'ladi.
- USB CDC kodini qo'shish orqali siz MAC/PC/linux uchun maxsus dasturni yaratishingiz mumkin.
- 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).
- 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:
7 segmentli displey (Proteus simulyatsiyasi) yordamida Atmega16 asosidagi svetofor loyihasi prototipi: 5 qadam
7 segmentli displey (Proteus simulyatsiyasi) yordamida Atmega16 asosidagi svetofor loyihasining prototipi: Ushbu loyihada biz Atmega16 asosidagi svetofor loyihasini tayyorlamoqchimiz. Bu erda biz svetofor signallarini ko'rsatish uchun bitta 7 segment va 3 LEDni oldik
Raspberry Pi yordamida harorat va namlik monitoringi: 6 qadam (rasmlar bilan)
Raspberry Pi yordamida harorat va namlik monitoringi: Yoz keladi va konditsioner bo'lmaganlar uy ichidagi atmosferani qo'lda boshqarishga tayyor bo'lishlari kerak. Bu postda men inson farovonligining eng muhim parametrlarini o'lchashning zamonaviy usulini tasvirlayman: harorat va namlik. T
Pool Pi Guy - AI bilan ishlaydigan signalizatsiya tizimi va Raspberry Pi yordamida hovuz monitoringi: 12 qadam (rasmlar bilan)
Pool Pi Guy - AI bilan ishlaydigan signalizatsiya tizimi va Raspberry Pi yordamida hovuz monitoringi: Uyda basseynga ega bo'lish juda qiziqarli, lekin katta mas'uliyat yuklaydi. Mening eng katta tashvishim - kimdir hovuz yonida qarovsiz qolsa (ayniqsa, yosh bolalar). Mening eng katta g'azabim - bu hovuz suv quvurining nasos ostidan hech qachon tushmasligiga ishonch hosil qilish
Alexa va Arduino yordamida uyning aqlli monitoringi: 9 qadam (rasmlar bilan)
Alexa va Arduino yordamida uyning aqlli monitoringi: Hozirgi dunyoda odamlar uylarida emas, ish joylarida ko'proq vaqt o'tkazishadi. Shunday qilib, odamlar ish paytida uy sharoitlari bilan tanishishlari mumkin bo'lgan uy monitoringi tizimiga ehtiyoj bor. Agar bundan ham yaxshiroq bo'lardi
Arduino yordamida P10 LED displey modulidagi displey harorati: 3 qadam (rasmlar bilan)
Arduino yordamida P10 LED displey modulidagi displey harorati: Oldingi qo'llanmada Arduino va DMD ulagichi yordamida nuqta matritsali LED displeyli P10 modulida matnni qanday ko'rsatish kerakligi ko'rsatilgan. Ushbu qo'llanmada biz P10 modulini displey vositasi sifatida ishlatib, oddiy loyiha qo'llanmasini beramiz