İçindekiler:
- Adım 1: Eagle Kullanarak PCB Tasarımı
- Adım 2: PCB'yi Lehimleme
- 3. Adım: Yazılım… İşlevsellik…sonuçlar
- Adım 4: 3D Basılı Kasa… Sıralama
- Adım 5: İyileştirilecek Şeyler…
Video: OLED Ekranlı GPS İzleme Projesi: 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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:
- PCB Tasarımı.
- BOM, PCB'yi monte etmeniz gerekiyor
- Yazılıma ve kodun kendisine hızlı bir bakış ve donanım ve yazılım için bir test.
- 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ı
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'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
Yazılım 4 bölüme ayrılacaktır:
- USART, ATGM332 GPS modülü ile iletişim kurmak için.
- OLED ile iletişim kurmak için SPI.
- USB CDC'si.
- 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:
- GPGGA
- GPRMC
- 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:
- PA06'ya bağlı yeşil LED ve geçerli bir Coğrafi Konum değeri varsa yanıp sönecektir.
- Turuncu LED PA07'ye bağlı ve geçerli bir Coğrafi Konum yoksa saniyede bir yanıp sönecektir.
- 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
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…
- Programlayıcınıza bağlamak daha kolay olduğu için SWD konektörünü üst tarafa taşımak.
- 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.
- bir kullanıcı düğmesini biraz daha büyütmek, böylece basması daha kolay olacaktır.
- MAC/PC/linux için özel bir program ile iletişim kurabilmeniz/tasarlayabilmeniz için USB CDC kodu ekleme.
- 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).
- 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:
Arduino 7 Segment Ekranlı Dijital Ludo Zar Projesi: 3 Adım
Arduino ile Dijital Kızma Birader 7 Segment Ekran Projesi: Bu projede, butona her bastığımızda 1'den 6'ya kadar rastgele bir sayıyı göstermek için 7 segmentli ekran kullanılmıştır. Herkesin yapmaktan keyif aldığı en havalı projelerden biri. 7 segment display ile çalışmayı öğrenmek için tıklayın: -7 segment
OLED Ekranlı ESP32 GPS Tracker: 7 Adım
OLED Ekranlı ESP32 GPS İzleyici: Bu, tüm konum verilerini OLED ekranında görüntüleyen bir GPS izcidir. Bir düğme, kullanıcının OLED üzerindeki bir UI ile etkileşime girmesine yardımcı olur. Hey, naber arkadaşlar? Akarsh burada CETech'ten.Kod, yerleşik düğmeyi kullanarak menü odaklı bir program sunar,
DIY Akıllı Robot İzleme Araç Kitleri Araba İzleme Işığa Duyarlı: 7 Adım
DIY Akıllı Robot Takip Araç Kitleri Araba Takip Işığa Duyarlı: Design by SINONING ROBOTTizleme robotu carTheoryLM393 çipinden satın alabilirsiniz, iki fotodirenci karşılaştırın, bir tarafı BEYAZ üzerinde fotodirenç LED'i olduğunda motorun tarafı hemen duracak, motorun diğer tarafı döndür, böylece
Arduino Projesi - Dur İzleme: 3 Adım
Arduino Projesi - Kronometre: Bu kronometre, istediğiniz herhangi bir şeyi, örneğin bir görevi bitirmek için geçen süreyi veya bir işi bitirmek için kullanılan süre üzerinde kendinize baskı yapmak için kullanılabilir. LED'ler, kullanıcının başlatma ve durdurma zamanlamasını net bir şekilde bilmesine yardımcı olur. Bu proje orijini
DMD Kullanan P10 LED Ekranlı Skor Panosu Projesi: 6 Adım (Resimli)
DMD Kullanan P10 LED Ekranlı Puan Tablosu Projesi: Genellikle bir futbol stadyumunda buluşuruz; çetele görevi gören dev bir LED panosu var. Bu nedenle, diğer spor alanlarında da LED'den yapılmış gösterge ekranının skorbordunu sıklıkla biliyoruz. Her ne kadar mümkün olmasa da, hala bizi bekleyen bir alan var