İçindekiler:

OLED Ekranlı GPS İzleme Projesi: 5 Adım (Resimlerle)
OLED Ekranlı GPS İzleme Projesi: 5 Adım (Resimlerle)

Video: OLED Ekranlı GPS İzleme Projesi: 5 Adım (Resimlerle)

Video: OLED Ekranlı GPS İzleme Projesi: 5 Adım (Resimlerle)
Video: Arduino ile Oled Ekrana Resim Yansıtma Nasıl Yapılır? 2024, Temmuz
Anonim
OLED Ekran Projesi ile GPS İzleme Projesi
OLED Ekran Projesi ile GPS İzleme Projesi
OLED Ekran Projesi ile GPS İzleme
OLED Ekran Projesi ile GPS İzleme
OLED Ekran Projesi ile GPS İzleme Projesi
OLED Ekran Projesi ile GPS İzleme Projesi
OLED Ekran Projesi ile GPS İzleme Projesi
OLED Ekran Projesi ile GPS İzleme Projesi

Herkese merhaba, bu kısa yazıda sizlerle projemi paylaşacağım: SAMD21J18 Mikrodenetleyici ve SSD1306 OLED 128*64 ekranlı ATGM332D GPS modülü, Eagle Autodesk üzerinde bunun için özel bir PCB kurdum ve Atmel studio 7.0 ve ASF4 kullanarak programladım. Bu yazıda sizinle bu yolculuğu ve kendi başınıza yapmak ilginizi çekiyorsa kullandığım dosyaları paylaşacağım.

Şimdi MCU/geliştirme kartınızı Arduino kullanarak programlıyorsanız, bu proje sizin için nispeten kolay olmalı, ancak burada Atmel/Microchip'ten C diline dayalı ve size bir fikir verecek ASF4 (Gelişmiş yazılım çerçevesi 4) kullanacağım. USART Asenkron sürücü (Geri Arama) kullanarak GPS NMEA mesajının nasıl okunacağı ve mesajı almak için kullandığınız uygun Sürücüyü ekleyerek herhangi bir Mikro denetleyici ve farklı platform ile kullanabileceğiniz basit bir kitaplık sağlamak için. GPS(NMEA mesajı).

Bu makaleyi şu şekilde böleceğim:

  1. PCB Tasarımı.
  2. BOM, PCB'yi monte etmeniz gerekiyor
  3. Yazılıma ve kodun kendisine hızlı bir bakış ve donanım ve yazılım için bir test.
  4. son olarak ama en az değil, bu proje için bir gelişme noktası.

Bu projeyle ilgili tüm materyalleri Github'da (Burada) bulacaksınız.

Adım 1: Eagle Kullanarak PCB Tasarımı

Eagle Kullanarak PCB Tasarımı
Eagle Kullanarak PCB Tasarımı
Eagle Kullanarak PCB Tasarımı
Eagle Kullanarak PCB Tasarımı
Eagle Kullanarak PCB Tasarımı
Eagle Kullanarak PCB Tasarımı
Eagle Kullanarak PCB Tasarımı
Eagle Kullanarak PCB Tasarımı

Bu proje temel olarak ATGM332D GPS Modülüne dayanmaktadır, çalışması için sadece birkaç pasif bileşene ihtiyaç duyduğu için kullanımı basit GPS ve ana güç kaynağını modülden kapatırsak zaman/tarihten tasarruf etmek için bir yedek pil ekleyebiliriz.

ve devredeki tüm sinyalleri kontrol etmek için ATSAMD21J18B mikrodenetleyici, TQFP64 paketi ile gittim çünkü 128KByte program hafızası ve 32KByte veri hafızası var (ve tezgahımda bol miktarda var).

Devreye USB 5V kaynağı ile güç verilecektir, ayrıca USB sanal COM portu (CDC USB) görevi görebilir ve cihazla USB üzerinden iletişim kurmak istiyorsanız bunun için bir kod ekleyebilirsiniz.

ekran için SSD1306 0.96' SPI bus ile OLED ekran seçtim, küçük ama istediğim PCB boyutuna uygun, kart boyutu 100x31 mm.

Mikrodenetleyiciyi programlamak SWD programcısı (Atmel ICE kullanıyorum) aracılığıyla olacak ve onu 1.27mm 10p pin başlığı üzerinden bağlayacak.

Ayrıca Fusion360'ı pano için 3 boyutlu bir görünüm elde etmek için kullandım ve bunun için işlenmiş bir görüntü de görebilirsiniz.

Adım 2: PCB'yi Lehimleme

PCB'yi lehimlemek
PCB'yi lehimlemek
PCB'yi lehimlemek
PCB'yi lehimlemek
PCB'yi lehimlemek
PCB'yi lehimlemek

PCB'nizle bir şablon sipariş etme seçeneğiniz var, şablonu kullanarak lehim pastasını tahtaya uygulamak daha kolay, bileşenleri birlikte lehimlemek için sıcak plaka kullandım, sıcak hava kullanmak da sorun değil ama LED'i lehimlerken dikkatli olun çünkü ısıya çok duyarlıdırlar.

Alt tarafı lehimlemek, sadece SWD pin başlığına ve havya kullanarak lehimleyebileceğiniz yedek pile sahip olduğundan biraz daha kolaydır.

devreyi herhangi bir USB güç kaynağına bağlamadan önce kısa devre olup olmadığını kontrol edin.

GPS anteninizi bağlayın ve konektörünü düzgün lehimlediğinizden emin olun, anteni kartın alt tarafına sabitledim.

3. Adım: Yazılım… İşlevsellik…sonuçlar

Image
Image
Yazılım … İşlevsellik…sonuçlar
Yazılım … İşlevsellik…sonuçlar
Yazılım … İşlevsellik…sonuçlar
Yazılım … İşlevsellik…sonuçlar

Yazılım 4 bölüme ayrılacaktır:

  1. USART, ATGM332 GPS modülü ile iletişim kurmak için.
  2. OLED ile iletişim kurmak için SPI.
  3. USB CDC'si.
  4. LED'leri kontrol etmek için GPIO

Devreye güç sağlamak için önce USB konektörünü bağlayın ve ardından şerit kabloyu SWD konektörüyle bağlayın.

Kodu github'dan indirin (buraya bağlantı verin).

Coğrafi Konumu almak için 3 farklı NMEA mesajı seçeneğiniz vardır:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Konum, saat ve tarihi (saat 0.0 GMT'dir) elde etmek için GPRMC cümlesini kullandım, böylece kodda şunları bulacaksınız:

GPRMC. Enable=1;/*0 bu mesaja gerek yoksa*/

GPGGA. Enable=0;/*0 bu mesaja gerek yoksa*/

GPGLL. Enable=0;/*0 bu mesaja gerek yoksa*/

hepsini bir arada etkinleştirebilir ve aynı anda okuyabilir, ihtiyacınız olan verileri alabilirsiniz.

Geçerli bir GPRMC cümlesi olduğunda, GPRMC. Ready 1 olur ve bu cümlede mevcut olan tüm verileri elde edebilirsiniz, bu cümledeki mevcut verileri görmek için bu bağlantıyı kontrol edin.

sadece Düzeltme 'A' ise, bu, Konumun uygun olduğu anlamına gelir, Düzeltme 'V' ise, konumun uygun olmadığı anlamına gelir.

ATSAMD21'in dahili RTC'ye sahip olduğuna dikkat edin, ancak burada onu kullanmıyorum ve bunun yerine doğrudan GPS'den saat ve Tarih kullanıyorum, bu nedenle CR1220 Yedek pili kullanmak istemiyorsanız, USB güç kaynağının bağlantısını kestiğinizde Saati/Tarihi kaybederseniz ve devreyi bir sonraki açışınızda GPS geçerli bir saat/tarih değerine sahip olana kadar ekrandaki saat/tarih alanı boş olacaktır.

ekran size GPS'in mevcut durumunu gösterecek ve uygun olduğunda Coğrafi konumu gösterecektir, ancak Panoda 3 LED vardır:

  1. PA06'ya bağlı yeşil LED ve geçerli bir Coğrafi Konum değeri varsa yanıp sönecektir.
  2. Turuncu LED PA07'ye bağlı ve geçerli bir Coğrafi Konum yoksa saniyede bir yanıp sönecektir.
  3. Kırmızı LED bu, GPS Modülünün PPS pinine bağlanır ve sadece Konum ile ilgili geçerli bir sinyal olduğunda yanıp söner.

Sonuçlar

Devre bende çok işe yaradı, GPS'den Coğrafi Konum alma 20-30 saniye sürdü, açık havada gökyüzü ve binalar arasında net bir görüşle, kartın alt tarafındaki antenle bile herhangi bir problem yaşamadım.

Adım 4: 3D Basılı Kasa… Sıralama

3D Basılı Kılıf… Sıralama
3D Basılı Kılıf… Sıralama

Bu devre için basit bir kasa (daha kesin tutucu) hazırladım fakat şu an içinde bulunduğum COVID-19 salgını ve karantina nedeniyle 3d yazıcıma ulaşamadığımdan bu devreyi stl ile güncelleyeceğim. dosya ve kullanılabilir olduğunda sahibi için bir fotoğraf.

Adım 5: İyileştirilecek Şeyler…

İyileştirilecek Şeyler…
İyileştirilecek Şeyler…
İyileştirilecek Şeyler…
İyileştirilecek Şeyler…
İyileştirilecek Şeyler…
İyileştirilecek Şeyler…
  1. Programlayıcınıza bağlamak daha kolay olduğu için SWD konektörünü üst tarafa taşımak.
  2. Devreye Lityum pilden güç vererek, bir jumper lehimleyerek yaptım ve iyi çalıştı, eğer (Vbat - Vout) Vdrop sınırından daha düşükse, Lineer (LDO) regülatörün V düşme voltajına sahip olduğunu unutmayın, devre çalışmayabilir uygun şekilde.
  3. bir kullanıcı düğmesini biraz daha büyütmek, böylece basması daha kolay olacaktır.
  4. MAC/PC/linux için özel bir program ile iletişim kurabilmeniz/tasarlayabilmeniz için USB CDC kodu ekleme.
  5. GPS anteni için, bu proje için Aktif anten kullandım, AT2659 gibi Düşük gürültülü op-Amp ekleyerek pasif bir anten kullanmak mümkündür (ATGM332 Veri Sayfası S.14'teki şemayı da kontrol edin).
  6. OLED 0.96' SSD1306 için, orijinal olarak 128*32 ekran için mikroçipten resmi kitaplık, kodu 128*64 ile çalışacak şekilde değiştirmek için ssd1306.c'ye gitmeli ve kodu değiştirmelisiniz (resmi kontrol edin).

Önerilen: