Mündəricat:

OLED Ekran Layihəsi ilə GPS Monitorinqi: 5 Adım (Şəkillərlə birlikdə)
OLED Ekran Layihəsi ilə GPS Monitorinqi: 5 Adım (Şəkillərlə birlikdə)

Video: OLED Ekran Layihəsi ilə GPS Monitorinqi: 5 Adım (Şəkillərlə birlikdə)

Video: OLED Ekran Layihəsi ilə GPS Monitorinqi: 5 Adım (Şəkillərlə birlikdə)
Video: CS50 2015 – 10-я неделя 2024, Iyul
Anonim
OLED Ekran Layihəsi ilə GPS Monitorinqi
OLED Ekran Layihəsi ilə GPS Monitorinqi
OLED Ekran Layihəsi ilə GPS Monitorinqi
OLED Ekran Layihəsi ilə GPS Monitorinqi
OLED Ekran Layihəsi ilə GPS Monitorinqi
OLED Ekran Layihəsi ilə GPS Monitorinqi
OLED Ekran Layihəsi ilə GPS Monitorinqi
OLED Ekran Layihəsi ilə GPS Monitorinqi

Hamıya salam, bu sürətli məqalədə layihəmi sizinlə bölüşəcəyəm: SAMD21J18 Mikrokontrolörlü və SSD1306 OLED 128*64 displeyli ATGM332D GPS modulu, bunun üçün Eagle Autodesk -də xüsusi bir PCB qurdum və Atmel studio 7.0 və ASF4 istifadə edərək proqramlaşdırdım. bu yazıda bu səyahəti və istifadə etmək istədiyiniz faylları öz əlinizlə paylaşacağam.

İndi MCU/inkişaf lövhənizi Arduino ilə proqramlaşdırırsınızsa, bu layihə sizin üçün nisbətən asan olmalıdır, amma burada C dilinə əsaslanan və sizə bir fikir verəcək olan Atmel/Microchip -dən ASF4 (Ətraflı proqram çərçivəsi 4) istifadə edəcəyəm. USART Asinxron sürücüsündən (Geri Zəng) istifadə edərək GPS NMEA mesajını necə oxumaq və mesajı almaq üçün istifadə etdiyiniz uyğun Sürücünü əlavə etməklə hər hansı bir Mikro nəzarətçi və fərqli platforma ilə istifadə edə biləcəyiniz sadə bir kitabxana təmin etmək üçün. GPS (NMEA mesajı).

Bu yazını bölüşəcəyəm:

  1. PCB Dizaynı.
  2. BOM -a PCB yığmaq lazımdır
  3. Proqramın və kodun özünə sürətli baxmaq və aparat və proqram təminatı üçün bir sınaq.
  4. nəhayət, bu layihə üçün bir təkmilləşdirmə nöqtəsi.

Bu layihə ilə bağlı bütün materialları Github -da tapa bilərsiniz (Burada)

Addım 1: Kartaldan istifadə edərək PCB Dizaynı

Kartaldan istifadə edərək PCB Dizaynı
Kartaldan istifadə edərək PCB Dizaynı
Kartaldan istifadə edərək PCB Dizaynı
Kartaldan istifadə edərək PCB Dizaynı
Kartaldan istifadə edərək PCB Dizaynı
Kartaldan istifadə edərək PCB Dizaynı
Kartaldan istifadə edərək PCB Dizaynı
Kartaldan istifadə edərək PCB Dizaynı

Bu layihə əsasən ATGM332D GPS Moduluna əsaslanır, istifadəsi üçün sadə GPS, çünki işləmək üçün yalnız bir neçə passiv komponentə ehtiyac var və moduldan əsas enerji mənbəyini bağlasaq vaxta/tarixə qənaət etmək üçün ehtiyat batareya əlavə edə bilərik.

və dövrədəki bütün siqnalları idarə etmək üçün ATSAMD21J18B mikrokontrolörü, TQFP64 paketi ilə getdim, çünki 128KBte proqram yaddaş saxlama və 32KBaytlıq yaddaş yaddaşına malikdir (və bir çoxu mənim iş masamın ətrafında uzanır).

dövrə USB 5V mənbəyi ilə təchiz olunmalıdır, eyni zamanda USB virtual COM portu (CDC USB) kimi çıxış edə bilər və cihazla USB vasitəsilə ünsiyyət qurmaq istəyirsinizsə bunun üçün bir kod əlavə edə bilərsiniz.

ekran üçün SPI avtobuslu SSD1306 0.96 'OLED ekranı seçdim, kiçikdir, amma istədiyim PCB ölçüsünə, taxta ölçüsü 100x31 mm -ə uyğundur.

Mikrokontrolörün proqramlaşdırılması SWD proqramçısı vasitəsi ilə olacaq (Atmel ICE istifadə edirəm) və onu 1.27mm 10p pin başlığı ilə birləşdirəcək.

lövhənin 3d görünüşünü əldə etmək üçün Fusion360 -dan istifadə etdim və bunun üçün də bir neçə işlənmiş şəkil görə bilərsiniz.

Addım 2: PCB -nin lehimlənməsi

PCB lehimləmə
PCB lehimləmə
PCB lehimləmə
PCB lehimləmə
PCB lehimləmə
PCB lehimləmə

PCB ilə bir şablon sifariş etmək seçiminiz var, şablondan istifadə edərək lövhəni lövhəyə tətbiq etmək daha asandır, komponentləri birlikdə lehimləmək üçün isti plitə istifadə etdim, isti havadan istifadə etmək də yaxşıdır, amma LED -ni lehim edərkən diqqətli olun. istiyə çox həssasdırlar.

Yalnız SWD pin başlığı və lehimləmə dəmirindən istifadə edərək onları lehimləyə biləcəyiniz ehtiyat batareyası olduğu üçün alt tərəfi lehimləmək bir az daha asandır.

Dövrəni hər hansı bir USB enerji mənbəyinə bağlamadan əvvəl hər hansı bir qısa qapanma olub olmadığını yoxlayın.

GPS anteninizi bağlayın və konnektorunu düzgün bir şəkildə lehimlədiyinizə əmin olun, antenanı lövhənin alt tərəfinə düzəltdim.

Addım 3: Proqram… İşlevsellik… nəticələr

Image
Image
Proqram… İşlevsellik… nəticələr
Proqram… İşlevsellik… nəticələr
Proqram… Fəaliyyət… nəticələr
Proqram… Fəaliyyət… nəticələr

Proqram 4 hissəyə bölünəcək:

  1. USART ATGM332 GPS modulu ilə əlaqə quracaq.
  2. OLED ilə əlaqə qurmaq üçün SPI.
  3. USB CDC.
  4. LEDləri idarə etmək üçün GPIO

əvvəlcə USB konnektorunu dövrəyə qoşun və sonra lent kabelini SWD konnektoru ilə bağlayın.

Kodu github -dan yükləyin (link burada).

Coğrafi Yer əldə etmək üçün 3 fərqli NMEA mesaj seçiminiz var:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Məkanı, vaxtı və tarixi (vaxt 0.0 GMT) əldə etmək üçün GPRMC cümləsini istifadə etdim, buna görə kodda tapa bilərsiniz:

GPRMC. Enable = 1;/*0 bu mesaja ehtiyac yoxdursa*/

GPGGA. Enable = 0;/*0 bu mesaja ehtiyac yoxdursa*/

GPGLL. Enable = 0;/*0 bu mesaja ehtiyac yoxdursa*/

hamısını birlikdə aktivləşdirə və eyni zamanda lazım olan məlumatları əldə edə bilərsiniz.

etibarlı bir GPRMC cümləsi olduqda, theGPRMC. Ready 1 olacaq və bu cümlədə mövcud olan bütün məlumatları əldə edə bilərsiniz, bu cümlədəki məlumatları görmək üçün bu linki yoxlayın.

Sadəcə Fix 'A' olarsa, bu Məkanın mövcud olması deməkdir, Fix 'V' olarsa, bu yerin mövcud olmadığını bildirir.

ATSAMD21 -in daxili RTC olduğuna diqqət yetirin, amma burada mən istifadə etmirəm və bunun əvəzinə vaxt və tarixi GPS -dən birbaşa istifadə edirəm, buna görə də CR1220 Yedək batareyasını istifadə etmək istəmirsinizsə, USB güc mənbəyini ayırdığınız zaman Vaxtı/Tarixi itirirsiniz və növbəti dəfə dövrə açdığınız zaman, GPS -in etibarlı bir vaxt/tarix dəyərinə sahib olmayana qədər ekrandakı vaxt/tarix sahəsi boş qalacaq.

Ekran sizə GPS-in cari vəziyyətini göstərəcək və mövcud olduqda Geo-yeri göstərəcək, lakin lövhədə 3 LED var:

  1. Yaşıl LED PA06-ya bağlıdır və etibarlı bir Geo-yer dəyəri varsa yanıb-sönəcək.
  2. Narıncı LED PA07-yə qoşulur və etibarlı bir Geo-yer olmadıqda saniyədə bir dəfə yanıb-sönəcək.
  3. Qırmızı LED, bu GPS Modulunun PPS pininə bağlıdır və yalnız Məkanla əlaqədar etibarlı bir siqnal olduqda yanıb -sönəcək.

Nəticələr

Dövrə mənimlə çox yaxşı işlədi, GPS-dən Geo-mövqeyi 20-30 saniyə açıq bir mənzərə ilə səmaya və binaların arasında, hətta lövhənin altındakı antenada da problem olmadan əldə et.

Addım 4: 3D Çaplı Çanta… Sırala

3D Çaplı Çanta… Sırala
3D Çaplı Çanta… Sırala

Bu dövrə üçün sadə bir korpus (daha dəqiq tutacaq) hazırladım, amma hazırda COVID-19 epidemiyası və blokada səbəbiylə çap etmək üçün 3d printerimə çata bilmədim, buna görə də bu bölməni stl ilə yeniləyəcəyəm fayl və mövcud olduqdan sonra sahibi üçün fotoşəkillər.

Addım 5: Təkmilləşdiriləcək şeylər…

Təkmilləşdiriləcək şeylər…
Təkmilləşdiriləcək şeylər…
Təkmilləşdiriləcək şeylər…
Təkmilləşdiriləcək şeylər…
Təkmilləşdiriləcək şeylər…
Təkmilləşdiriləcək şeylər…
  1. SWD konnektorunu yuxarıya köçürün, çünki onu proqramçı ilə bağlamaq daha asandır.
  2. Dövrü Lityum batareyadan gücləndirərək, bir tullanan lehimləməklə etdim və xətti (LDO) tənzimləyicisinin Vdrop həddindən aşağı olduğu dövrənin işləməyəcəyi halda V düşmə gərginliyinə sahib olduğunu nəzərə alaraq yaxşı işləyirdi. düzgün
  3. İstifadəçi düyməsini bir qədər böyüdərək basmaq daha asan olacaq.
  4. USB CDC kodu əlavə edərək MAC/PC/linux üçün xüsusi bir proqram qura/dizayn edə bilərsiniz.
  5. GPS antenası üçün, AT2659 kimi Aşağı səs-küylü op-Amp əlavə etməklə, bu layihə üçün Aktiv anten istifadə etdim (ATGM332 Məlumat Cədvəli P.14-də də sxemə baxın).
  6. OLED 0.96 'SSD1306 üçün, ilk olaraq 128*32 ekran üçün mikroçipdən olan rəsmi kitabxana, kodu 128*64 ilə işləmək üçün dəyişdirmək üçün ssd1306.c saytına daxil olmalı və kodu dəyişdirməlisiniz (şəkli yoxlayın).

Tövsiyə: