Daftar Isi:

Pemantauan GPS Dengan Proyek Tampilan OLED: 5 Langkah (dengan Gambar)
Pemantauan GPS Dengan Proyek Tampilan OLED: 5 Langkah (dengan Gambar)

Video: Pemantauan GPS Dengan Proyek Tampilan OLED: 5 Langkah (dengan Gambar)

Video: Pemantauan GPS Dengan Proyek Tampilan OLED: 5 Langkah (dengan Gambar)
Video: ESP32 dengan OLED 128x64: Tutorial Dasar di Wokwi 2024, Juli
Anonim
Pemantauan GPS Dengan Proyek Tampilan OLED
Pemantauan GPS Dengan Proyek Tampilan OLED
Pemantauan GPS Dengan Proyek Tampilan OLED
Pemantauan GPS Dengan Proyek Tampilan OLED
Pemantauan GPS Dengan Proyek Tampilan OLED
Pemantauan GPS Dengan Proyek Tampilan OLED
Pemantauan GPS Dengan Proyek Tampilan OLED
Pemantauan GPS Dengan Proyek Tampilan OLED

Halo semuanya, dalam artikel singkat ini saya akan berbagi dengan Anda proyek saya: modul GPS ATGM332D dengan Mikrokontroler SAMD21J18 dan layar SSD1306 OLED 128*64, saya membuat PCB khusus untuknya di Eagle Autodesk, dan memprogramnya menggunakan Atmel studio 7.0 dan ASF4 jadi dalam artikel ini saya akan berbagi dengan Anda perjalanan ini dan file yang saya gunakan jika Anda tertarik untuk melakukannya sendiri.

Sekarang jika Anda memprogram MCU/papan pengembangan Anda menggunakan Arduino, proyek ini seharusnya relatif mudah bagi Anda, tetapi di sini saya akan menggunakan ASF4 (Framwork perangkat lunak lanjutan 4) dari Atmel/Microchip yang didasarkan pada bahasa C dan akan memberi Anda gambaran untuk cara membaca pesan GPS NMEA menggunakan USART Asynchronous driver (Callback) dan memberi Anda perpustakaan sederhana yang dapat Anda gunakan dengan Micro-controller dan platform yang berbeda hanya dengan menambahkan Driver yang sesuai yang Anda gunakan untuk menerima pesan dari GPS (pesan NMEA).

Artikel ini akan saya bagi menjadi:

  1. Desain PCB.
  2. BOM Anda perlu merakit PCB
  3. Lihat cepat ke perangkat lunak dan kode itu sendiri dan tes untuk perangkat keras dan perangkat lunak.
  4. last but not least beberapa titik perbaikan untuk proyek ini.

Anda akan menemukan semua materi yang terkait dengan proyek ini di Github (Di Sini)

Langkah 1: Desain PCB Menggunakan Eagle

Desain PCB Menggunakan Elang
Desain PCB Menggunakan Elang
Desain PCB Menggunakan Elang
Desain PCB Menggunakan Elang
Desain PCB Menggunakan Elang
Desain PCB Menggunakan Elang
Desain PCB Menggunakan Elang
Desain PCB Menggunakan Elang

Proyek ini terutama didasarkan pada Modul GPS ATGM332D, GPS sederhana untuk digunakan karena hanya membutuhkan beberapa komponen pasif untuk bekerja, dan kita dapat menambahkan baterai cadangan untuk menghemat waktu/tanggal jika kita mematikan sumber daya utama dari modul.

dan untuk mengontrol semua sinyal di sirkuit saya menggunakan mikrokontroler ATSAMD21J18B, paket TQFP64 karena memiliki 128KByte penyimpanan memori program dan 32KByte memori data (dan saya memiliki banyak dari mereka tergeletak di sekitar meja kerja saya).

sirkuit harus ditenagai oleh sumber USB 5V, juga USB dapat bertindak sebagai port COM virtual (CDC USB) dan Anda dapat menambahkan kode untuk itu jika Anda ingin berkomunikasi dengan perangkat melalui USB.

untuk tampilan saya pilih SSD1306 0.96' OLED display dengan SPI bus, kecil tapi cocok untuk ukuran PCB yang saya inginkan, dimensi papan 100x31 mm.

pemrograman Mikrokontroler akan melalui programmer SWD (saya menggunakan Atmel ICE) dan akan menghubungkannya melalui 1,27mm 10p pin header.

saya juga menggunakan Fusion360 untuk mendapatkan tampilan 3d untuk papan dan Anda juga dapat melihat beberapa gambar yang dirender untuk itu.

Langkah 2: Menyolder PCB

Menyolder PCB
Menyolder PCB
Menyolder PCB
Menyolder PCB
Menyolder PCB
Menyolder PCB

Anda memiliki pilihan untuk memesan stensil dengan PCB Anda, lebih mudah untuk menerapkan pasta solder di papan menggunakan stensil, saya menggunakan hot plate untuk menyolder komponen bersama-sama, menggunakan udara panas juga OK tapi hati-hati saat menyolder LED karena mereka sangat sensitif terhadap panas.

menyolder sisi bawah sedikit lebih mudah karena hanya memiliki header pin SWD dan baterai cadangan, yang dapat Anda solder menggunakan besi solder.

sebelum Anda menghubungkan sirkuit dengan sumber daya USB apa pun, periksa apakah ada korsleting.

sambungkan antena GPS Anda dan pastikan Anda menyolder konektornya dengan benar, saya memasang antena di sisi bawah papan.

Langkah 3: Perangkat Lunak … Fungsionalitas … hasil

Image
Image
Perangkat lunak … Fungsionalitas … hasil
Perangkat lunak … Fungsionalitas … hasil
Perangkat lunak … Fungsionalitas … hasil
Perangkat lunak … Fungsionalitas … hasil

Perangkat lunak ini akan dibagi menjadi 4 bagian:

  1. USART untuk berkomunikasi dengan modul GPS ATGM332.
  2. SPI untuk berkomunikasi dengan OLED.
  3. CDC USB.
  4. GPIO untuk mengontrol LED

pertama sambungkan konektor USB untuk menyalakan Sirkuit dan kemudian sambungkan kabel pita dengan konektor SWD.

Unduh Kode dari github (Tautan di sini).

untuk mendapatkan Geo-Location Anda memiliki 3 opsi pesan NMEA yang berbeda:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Saya menggunakan kalimat GPRMC untuk mendapatkan lokasi, waktu dan tanggal (waktu adalah 0.0 GMT) sehingga dalam kode Anda akan menemukan:

GPRMC. Enable=1;/*0 jika tidak perlu pesan ini*/

GPGGA. Enable=0;/*0 jika tidak perlu pesan ini*/

GPGLL. Enable=0;/*0 jika tidak perlu pesan ini*/

Anda dapat mengaktifkan semuanya bersama-sama dan membacanya sekaligus mendapatkan data yang Anda butuhkan.

setelah ada kalimat GPRMC yang valid, GPRMC. Ready akan menjadi 1 dan Anda dapat memperoleh semua data yang tersedia dalam kalimat ini, periksa tautan ini untuk melihat data yang tersedia dalam kalimat ini.

cukup jika Fix adalah 'A' itu berarti Lokasi tersedia, jika Fix adalah 'V' itu berarti lokasi tidak tersedia.

perhatikan bahwa ATSAMD21 memiliki RTC internal, tetapi di sini saya tidak menggunakannya dan sebaliknya saya menggunakan waktu dan Tanggal langsung dari GPS, jadi jika Anda tidak ingin menggunakan baterai Cadangan CR1220, setelah Anda mencabut sumber daya USB, Anda akan kehilangan Waktu/Tanggal dan untuk waktu berikutnya Anda menghidupkan sirkuit, area waktu/tanggal pada tampilan akan kosong hingga GPS memiliki nilai waktu/tanggal yang valid.

layar akan menunjukkan status GPS saat ini dan akan menunjukkan lokasi Geo setelah tersedia, namun ada 3 LED di Papan:

  1. LED hijau terhubung ke PA06, dan akan berkedip jika ada nilai Geo-lokasi yang valid.
  2. LED Oranye terhubung ke PA07 dan akan berkedip satu detik jika tidak ada Geo-lokasi yang valid.
  3. LED merah yang satu ini terhubung ke pin PPS dari Modul GPS dan hanya akan berkedip ketika ada sinyal yang valid terkait dengan Lokasi.

Hasil

Sirkuit bekerja sangat baik dengan saya, mendapatkan Geo-lokasi dari GPS membutuhkan waktu 20-30 detik di luar ruangan dengan pandangan yang jelas ke langit dan di antara gedung-gedung tanpa masalah bahkan dengan antena di sisi bawah papan.

Langkah 4: Kasus Cetak 3D… Semacam

Kasus Cetak 3D… Semacam
Kasus Cetak 3D… Semacam

Saya menyiapkan kasing sederhana (pemegang yang lebih tepat) untuk sirkuit ini tetapi karena epidemi COVID-19 dan penguncian yang saya lakukan sekarang, saya tidak dapat menjangkau printer 3d saya untuk mencetaknya, jadi saya akan memperbarui bagian ini dengan stl file dan foto untuk pemegang setelah tersedia.

Langkah 5: Hal-hal yang Harus Ditingkatkan…

Hal-hal yang Perlu Ditingkatkan…
Hal-hal yang Perlu Ditingkatkan…
Hal-hal yang Perlu Ditingkatkan…
Hal-hal yang Perlu Ditingkatkan…
Hal-hal yang Perlu Ditingkatkan…
Hal-hal yang Perlu Ditingkatkan…
  1. Memindahkan konektor SWD ke sisi atas karena lebih mudah untuk menghubungkannya dengan programmer Anda.
  2. Menghidupkan rangkaian dari baterai Lithium, saya melakukannya dengan menyolder jumper dan berfungsi dengan baik, ingatlah bahwa regulator Linear (LDO) memiliki tegangan jatuh V jika (Vbat - Vout) kurang dari batas Vdrop, rangkaian mungkin tidak berfungsi dengan baik.
  3. membuat tombol pengguna sedikit lebih besar sehingga akan lebih mudah untuk ditekan.
  4. menambahkan kode USB CDC sehingga Anda dapat berkomunikasi/mendesain program khusus untuk MAC/PC/linux.
  5. Untuk antena GPS, saya menggunakan antena Aktif untuk proyek ini, menggunakan antena pasif dimungkinkan, dengan menambahkan Op-Amp noise rendah seperti AT2659 (lihat juga skema pada ATGM332 Datasheet P.14).
  6. untuk OLED 0.96' SSD1306, perpustakaan resmi dari microchip awalnya untuk tampilan 128*32, untuk memodifikasi kode agar berfungsi dengan 128*64 Anda harus pergi ke ssd1306.c dan memodifikasi kode (periksa gambar).

Direkomendasikan: