Talaan ng mga Nilalaman:

Pagsubaybay sa GPS Sa OLED Display Project: 5 Hakbang (na may Mga Larawan)
Pagsubaybay sa GPS Sa OLED Display Project: 5 Hakbang (na may Mga Larawan)

Video: Pagsubaybay sa GPS Sa OLED Display Project: 5 Hakbang (na may Mga Larawan)

Video: Pagsubaybay sa GPS Sa OLED Display Project: 5 Hakbang (na may Mga Larawan)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Hulyo
Anonim
Pagsubaybay sa GPS Gamit ang OLED Display Project
Pagsubaybay sa GPS Gamit ang OLED Display Project
Pagsubaybay sa GPS Gamit ang OLED Display Project
Pagsubaybay sa GPS Gamit ang OLED Display Project
Pagsubaybay sa GPS Gamit ang OLED Display Project
Pagsubaybay sa GPS Gamit ang OLED Display Project
Pagsubaybay sa GPS Gamit ang OLED Display Project
Pagsubaybay sa GPS Gamit ang OLED Display Project

Kamusta sa lahat, sa mabilisang artikulong ito ay ibabahagi ko sa iyo ang aking proyekto: ATGM332D GPS module na may display na SAMD21J18 Microcontroller at SSD1306 OLED 128 * 64, nagtayo ako ng isang espesyal na PCB para dito sa Eagle Autodesk, at i-program ito gamit ang Atmel studio 7.0 at ASF4 kaya sa artikulong ito ibabahagi ko sa iyo ang paglalakbay na ito at ang mga file na ginamit ko kung ikaw ay kagiliw-giliw na gawin ito nang mag-isa.

Ngayon kung pinaprograma mo ang iyong MCU / development board gamit ang Arduino, ang proyektong ito ay dapat na madali sa iyo, ngunit dito ko gagamitin ang ASF4 (Advanced na software framework 4) mula sa Atmel / Microchip na batay sa wikang C at bibigyan ka ng isang ideya para sa kung paano basahin ang mensahe ng GPS NMEA gamit ang USART Asynchronous driver (Callback) at bigyan ka ng isang simpleng silid-aklatan na magagamit mo ito sa anumang Micro-controller at magkakaibang platform sa pamamagitan lamang ng pagdaragdag ng naaangkop na Driver na iyong ginagamit upang matanggap ang mensahe mula sa GPS (mensahe ng NMEA).

Hahatiin ko ang artikulong ito sa:

  1. Disenyo ng PCB.
  2. BOM kailangan mong tipunin ang PCB
  3. Mabilis na pagtingin sa software at ang code mismo at isang pagsubok para sa hardware at software.
  4. panghuli ngunit hindi bababa sa ilang mga punto ng pagpapabuti para sa proyektong ito.

Mahahanap mo ang lahat ng materyal na nauugnay sa proyektong ito saGithub (Dito)

Hakbang 1: Disenyo ng PCB Gamit ang Eagle

Disenyo ng PCB Gamit ang Eagle
Disenyo ng PCB Gamit ang Eagle
Disenyo ng PCB Gamit ang Eagle
Disenyo ng PCB Gamit ang Eagle
Disenyo ng PCB Gamit ang Eagle
Disenyo ng PCB Gamit ang Eagle
Disenyo ng PCB Gamit ang Eagle
Disenyo ng PCB Gamit ang Eagle

Pangunahing batay ang proyektong ito sa paligid ng ATGM332D GPS Module, simpleng GPS na gagamitin dahil nangangailangan lamang ito ng isang pares ng mga passive na bahagi upang gumana, at maaari kaming magdagdag ng isang backup na baterya upang makatipid ng oras / petsa kung isasara natin ang pangunahing mapagkukunan ng kuryente mula sa module.

at upang makontrol ang lahat ng mga signal sa circuit nagpunta ako sa ATSAMD21J18B microcontroller, TQFP64 package dahil mayroon itong 128KByte ng pag-iimbak ng memorya ng programa at 32KByte ng memorya ng data (at marami akong mga inilalagay sa paligid ng aking workbench).

ang circuit ay dapat na pinapatakbo ng mapagkukunan ng USB 5V, maaari ding kumilos ang USB bilang virtual COM port (CDC USB) at maaari kang magdagdag ng isang code para dito kung nais mong makipag-usap sa aparato sa pamamagitan ng USB.

para sa display na pinili ko ang SSD1306 0.96 'OLED display na may SPI bus, maliit ito ngunit angkop ito sa laki ng PCB na gusto ko, ang sukat ng board na 100x31 mm.

programa ang Microcontroller ay sa pamamagitan ng SWD programmer (ginagamit ko ang Atmel ICE) at ikonekta ito sa pamamagitan ng 1.27mm 10p pin header.

Ginamit ko rin ang Fusion360 upang makakuha ng isang pagtingin sa 3d para sa board at maaari mo ring makita ang ilang nai-render na imahe para dito.

Hakbang 2: Pag-solder ng PCB

Paghihinang ng PCB
Paghihinang ng PCB
Paghihinang ng PCB
Paghihinang ng PCB
Paghihinang ng PCB
Paghihinang ng PCB

Mayroon kang pagpipilian upang mag-order ng isang stencil sa iyong PCB, mas madaling mag-apply ng solder paste sa board gamit ang stencil, gumamit ako ng hot plate upang maghinang ang mga sangkap nang magkasama, ang paggamit ng mainit na hangin ay OK din ngunit mag-ingat ka habang hinihinang ang LED dahil sobrang sensitibo sila sa init.

ang paghihinang sa ilalim na bahagi ay medyo madali dahil mayroon lamang itong header ng SWD pin at ang backup na baterya, na maaari mong maghinang sa kanila gamit ang soldering iron.

bago mo ikonekta ang circuit sa anumang mapagkukunang USB power, suriin para sa anumang maikling circuit.

ikonekta ang iyong antena ng GPS at tiyaking solder mo ito ng konektor nang maayos, naayos ko ang antena sa ibabang bahagi ng board.

Hakbang 3: Software… Pag-andar… mga resulta

Image
Image
Software… Pag-andar… mga resulta
Software… Pag-andar… mga resulta
Software… Pag-andar… mga resulta
Software… Pag-andar… mga resulta

Ang software ay nahahati sa 4 na bahagi:

  1. USART upang makipag-usap sa ATGM332 module ng GPS.
  2. SPI upang makipag-usap sa OLED.
  3. USB CDC.
  4. Kontrolin ng GPIO ang mga LED

unang ikonekta ang konektor ng USB sa lakas sa Circuit at pagkatapos ay ikonekta ang ribbon cable na may SWD konektor.

I-download ang Code mula sa github (Link dito).

upang makuha ang Geo-Lokasyon mayroon kang 3 magkakaibang mga pagpipilian sa mga mensahe ng NMEA:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Gumamit ako ng pangungusap ng GPRMC upang makuha ang lokasyon, oras at petsa (ang oras ay 0.0 GMT) kaya sa code makikita mo:

GPRMC. Enable = 1; / * 0 kung hindi kailangan para sa mensaheng ito * /

GPGGA. Enable = 0; / * 0 kung hindi kailangan para sa mensaheng ito * /

GPGLL. Enable = 0; / * 0 kung hindi kailangan para sa mensaheng ito * /

maaari mong paganahin silang lahat nang sama-sama at basahin ang mga ito nang sabay-sabay makuha ang data na kailangan mo.

sa sandaling may wastong pangungusap na GPRMC, angGPRMC. Ang paghahanda ay magiging 1 at maaari mong makuha ang lahat ng magagamit na data sa pangungusap na ito, suriin ang link na ito upang makita ang magagamit na data sa pangungusap na ito.

kung ang Fix ay 'A' na nangangahulugang magagamit ang Lokasyon, kung ang Fix ay 'V' na nangangahulugang ang lokasyon ay hindi magagamit.

pansinin na ang ATSAMD21 ay may panloob na RTC, ngunit narito hindi ko ito ginagamit at sa halip ay gumagamit ako ng oras at Petsa nang direkta mula sa GPS, kaya kung hindi mo nais na gamitin ang CR1220 Backup na baterya, sa sandaling maalis mo ang pagkakakonekta ng mapagkukunang USB power ay gagawin mo ito mawala ang Oras / Petsa at para sa susunod na paganahin mo sa circuit ang oras / petsa ng lugar sa display ay walang laman hanggang sa ang GPS ay may wastong halaga ng oras / petsa.

ipapakita sa iyo ng display ang kasalukuyang katayuan ng GPS at ipapakita ang Geo-location sa sandaling ito ay magagamit, subalit mayroong 3 LEDs sa Lupon:

  1. Ang berdeng LED ay konektado sa PA06, at magpapakurap kung may wastong halaga ng Geo-location.
  2. Ang Orange LED ay konektado sa PA07 at magpapikit ng isang beses sa isang segundo kung walang wastong lokasyon ng Geo.
  3. Ang pulang LED na ito ay konektado sa PPS pin ng Module ng GPS at magpapikit lamang kapag mayroong wastong signal na nauugnay sa Lokasyon.

Mga Resulta

Ang circuit ay nagtrabaho nang mahusay sa akin, makuha ang Geo-lokasyon mula sa GPS na tumagal ng 20-30 segundo sa labas na may malinaw na paningin sa langit at sa pagitan ng mga gusali nang walang anumang problema kahit na sa antena sa ilalim na bahagi ng board.

Hakbang 4: 3D Naka-print na Kaso … Pagsunud-sunurin Ng

3D Printed Case … Pagsunud-sunurin Ng
3D Printed Case … Pagsunud-sunurin Ng

Naghanda ako ng isang simpleng kaso (mas tumpak na may-ari) para sa circuit na ito ngunit dahil sa epidemya ng COVID-19 at ang lockdown na narito ako ngayon, hindi ko maabot ang aking 3d printer upang mai-print ito, kaya't ia-update ko ang seksyon na ito sa stl file at isang larawan para sa may-ari kapag magagamit na ito.

Hakbang 5: Mga Bagay na Mapapagbuti…

Mga Bagay na Mapapagbuti…
Mga Bagay na Mapapagbuti…
Mga Bagay na Mapapagbuti…
Mga Bagay na Mapapagbuti…
Mga Bagay na Mapapagbuti…
Mga Bagay na Mapapagbuti…
  1. Ang paglipat ng konektor ng SWD sa tuktok na bahagi dahil mas madaling ikonekta ito sa iyong programmer.
  2. Pagpapatakbo ng circuit mula sa baterya ng Lithium, ginawa ko ito sa pamamagitan ng paghihinang ng isang lumulukso at gumana ito nang maayos, hubad sa isip na ang Linear (LDO) regulator ay may V drop voltage kung ang (Vbat - Vout) na mas mababa sa limitasyon ng Vdrop ay maaaring hindi gumana ang circuit maayos
  3. ginagawang medyo mas malaki ang isang pindutan ng gumagamit upang mas madaling pindutin.
  4. pagdaragdag ng USB CDC code upang maaari kang makipag-usap / magdisenyo ng isang espesyal na programa para sa MAC / PC / linux.
  5. Para sa antena ng GPS, ginamit ko ang Aktibong antena para sa proyektong ito, ang paggamit ng isang passive antena ay posible, sa pamamagitan ng pagdaragdag ng Mababang ingay op-Amp tulad ng AT2659 (suriin din ang eskematiko sa ATGM332 Datasheet P.14).
  6. para sa OLED 0.96 'SSD1306, ang opisyal na aklatan mula sa microchip na orihinal para sa 128 * 32 display, upang mabago ang code upang gumana sa 128 * 64 kailangan mong pumunta sa ssd1306.c at baguhin ang code (suriin ang imahe).

Inirerekumendang: