Sisällysluettelo:

GPS -valvonta OLED -näyttöprojektilla: 5 vaihetta (kuvien kanssa)
GPS -valvonta OLED -näyttöprojektilla: 5 vaihetta (kuvien kanssa)

Video: GPS -valvonta OLED -näyttöprojektilla: 5 vaihetta (kuvien kanssa)

Video: GPS -valvonta OLED -näyttöprojektilla: 5 vaihetta (kuvien kanssa)
Video: Extract GPS location in Arduino with NEO-6m or NEO-7M module 2024, Heinäkuu
Anonim
GPS -valvonta OLED -näyttöprojektilla
GPS -valvonta OLED -näyttöprojektilla
GPS -valvonta OLED -näyttöprojektilla
GPS -valvonta OLED -näyttöprojektilla
GPS -valvonta OLED -näyttöprojektilla
GPS -valvonta OLED -näyttöprojektilla
GPS -valvonta OLED -näyttöprojektilla
GPS -valvonta OLED -näyttöprojektilla

Hei kaikki, tässä nopeassa artikkelissa jaan kanssanne projektini: ATGM332D GPS -moduuli, jossa on SAMD21J18 -mikrokontrolleri ja SSD1306 OLED 128*64 -näyttö, rakensin sille erityisen piirilevyn Eagle Autodeskilla ja ohjelmoin sen Atmel studio 7.0: n ja ASF4: n avulla. Tässä artikkelissa jaan kanssasi tämän matkan ja käyttämäni tiedostot, jos olet kiinnostunut tekemään sen itse.

Jos nyt ohjelmoit MCU/kehityskorttiasi Arduinolla, tämän projektin pitäisi olla sinulle suhteellisen helppoa, mutta tässä käytän Atmel/Microchipin ASF4: ää (Advanced software framwork 4), joka perustuu C -kieleen ja antaisi sinulle idean GPS NMEA -viestin lukeminen USART-asynkronisen ohjaimen (soittopyyntö) avulla ja yksinkertainen kirjasto, jota voit käyttää minkä tahansa mikro-ohjaimen ja eri alustan kanssa lisäämällä vain oikean ohjaimen, jota käytät viestin vastaanottamiseen GPS (NMEA -viesti).

Jaan tämän artikkelin seuraavasti:

  1. PCB -suunnittelu.
  2. BOM sinun täytyy koota piirilevy
  3. Tarkastele ohjelmistoa ja koodia itse ja testaa laitteisto ja ohjelmisto.
  4. viimeisenä mutta ei vähäisimpänä parannusta tähän hankkeeseen.

Löydät kaiken tähän projektiin liittyvän materiaalin Githubista (täältä)

Vaihe 1: PCB -suunnittelu Eaglen avulla

PCB -suunnittelu Eaglen avulla
PCB -suunnittelu Eaglen avulla
PCB -suunnittelu Eaglen avulla
PCB -suunnittelu Eaglen avulla
PCB -suunnittelu Eaglen avulla
PCB -suunnittelu Eaglen avulla
PCB -suunnittelu Eaglen avulla
PCB -suunnittelu Eaglen avulla

Tämä projekti perustuu lähinnä ATGM332D -GPS -moduuliin, yksinkertaiseen GPS -käyttöön, koska se tarvitsee vain pari passiivista komponenttia toimimaan, ja voisimme lisätä vara -akun ajan/päivämäärän säästämiseksi, jos sammutamme päävirtalähteen moduulista.

ja ohjaamaan kaikkia piirin signaaleja menin ATSAMD21J18B -mikrokontrollerilla, TQFP64 -paketilla, koska siinä on 128 kt tavua ohjelmamuistia ja 32 kt tavua muistia (ja minulla on paljon niitä työpöydän ympärillä).

virtapiiri saa virtansa 5 V USB -lähteestä, myös USB voi toimia virtuaalisena COM -porttina (CDC USB) ja voit lisätä sille koodin, jos haluat kommunikoida laitteen kanssa USB: n kautta.

Näytölle valitsin SSD1306 0,96 tuuman OLED -näytön SPI -väylällä, se on pieni, mutta se sopii halutulle piirilevyn koolle, levyn koko 100x31 mm.

Mikro -ohjaimen ohjelmointi tapahtuu SWD -ohjelmoijan kautta (käytän Atmel ICE: tä) ja yhdistää sen 1,27 mm: n 10p -nastaisen otsikon kautta.

myös käytin Fusion360: ta saadakseni 3D -näkymän levylle ja näet myös renderöidyn kuvan siitä.

Vaihe 2: Piirilevyn juottaminen

Piirilevyn juottaminen
Piirilevyn juottaminen
Piirilevyn juottaminen
Piirilevyn juottaminen
Piirilevyn juottaminen
Piirilevyn juottaminen

Sinulla on mahdollisuus tilata kaavain piirilevyn kanssa, juotospasta on helpompi levittää levylle kaavaimen avulla, juotin komponentit yhteen kuumalla levyllä, myös kuumailma on OK, mutta ole varovainen juottaessasi LEDiä, koska ne ovat niin herkkiä lämmölle.

alaosan juottaminen on hieman helpompaa, koska siinä on vain SWD -nastainen otsikko ja vara -akku, jonka voit juottaa käyttämällä juotosrautaa.

ennen kuin liität piirin mihin tahansa USB -virtalähteeseen, tarkista mahdolliset oikosulut.

liitä GPS -antenni ja varmista, että juotat sen liittimen kunnolla, kiinnitin antennin levyn alapuolelle.

Vaihe 3: Ohjelmisto… Toiminnallisuus… tulokset

Image
Image
Ohjelmisto… Toiminnallisuus… tulokset
Ohjelmisto… Toiminnallisuus… tulokset
Ohjelmisto… Toiminnallisuus… tulokset
Ohjelmisto… Toiminnallisuus… tulokset

Ohjelmisto jaetaan neljään osaan:

  1. USART kommunikoida ATGM332 GPS -moduulin kanssa.
  2. SPI kommunikoida OLEDin kanssa.
  3. USB CDC.
  4. GPIO LEDien ohjaamiseen

kytke ensin USB -liitin virtapiiriin ja kytke sitten nauhakaapeli SWD -liittimeen.

Lataa koodi githubista (linkki tästä).

saadaksesi maantieteellisen sijainnin sinulla on 3 erilaista NMEA-viestivaihtoehtoa:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Käytin GPRMC -lausetta paikan, ajan ja päivämäärän (aika on 0.0 GMT) saamiseksi, joten koodista löydät:

GPRMC. Enable = 1;/*0, jos tätä viestiä ei tarvita*/

GPGGA. Enable = 0;/*0, jos tätä viestiä ei tarvita*/

GPGLL. Enable = 0;/*0, jos tätä viestiä ei tarvita*/

Voit ottaa ne kaikki käyttöön ja lukea niitä samanaikaisesti saadaksesi tarvitsemasi tiedot.

kun GPRMC -lause on olemassa, GPRMC. Ready tulee 1 ja voit saada kaikki tässä lauseessa saatavilla olevat tiedot, tarkista tämä linkki nähdäksesi tämän lauseen käytettävissä olevat tiedot.

Yksinkertaisesti, jos Korjaus on A, se tarkoittaa, että Sijainti on käytettävissä, jos Korjaus on V, se tarkoittaa, että sijainti ei ole käytettävissä.

Huomaa, että ATSAMD21: ssä on sisäinen RTC, mutta tässä en käytä sitä, vaan käytän aikaa ja päivämäärää suoraan GPS: stä, joten jos et halua käyttää CR1220 -vara -akkua, irrotat USB -virtalähteen menettää kellonajan/päivämäärän ja seuraavan kerran kun käynnistät piirin, näytön aika-/päivämääräalue on tyhjä, kunnes GPS: llä on kelvollinen aika/päivämäärä -arvo.

näytössä näkyy GPS: n nykyinen tila ja maantieteellinen sijainti heti, kun se on käytettävissä, mutta taululla on 3 LEDiä:

  1. Vihreä LED on kytketty PA06: een ja vilkkuu, jos maantieteellisen sijainnin arvo on voimassa.
  2. Oranssi LED kytketty PA07: een ja vilkkuu kerran sekunnissa, jos kelvollista paikkatietoa ei ole.
  3. Punainen LED -valo on kytketty GPS -moduulin PPS -nastaan ja vilkkuu vain, kun sijaintiin liittyy kelvollinen signaali.

Tulokset

Piiri toimi erittäin hyvin kanssani, Geo-sijainnin saaminen GPS: ltä kesti 20-30 sekuntia ulkona, selkeästi taivaalle ja rakennusten välillä ilman ongelmia, vaikka antenni oli levyn alapuolella.

Vaihe 4: 3D -tulostettu kotelo… eräänlainen

3D -painettu kotelo… eräänlainen
3D -painettu kotelo… eräänlainen

Valmistin yksinkertaisen kotelon (tarkemman pidikkeen) tälle piirille, mutta COVID-19-epidemian ja lukituksen vuoksi, jota olen tällä hetkellä, en voinut tavoittaa 3D-tulostinta tulostamaan sitä, joten päivitän tämän osan stl: llä tiedosto ja valokuvat haltijalle, kun se on saatavilla.

Vaihe 5: Parannettavia asioita…

Parannettavaa…
Parannettavaa…
Parannettavaa…
Parannettavaa…
Parannettavaa…
Parannettavaa…
  1. Siirrä SWD -liitin yläpuolelle, koska se on helpompi liittää ohjelmoijaan.
  2. Virta virtapiirille litium -akusta, tein sen juottamalla hyppyjohtimen ja se toimi hyvin, muistaen, että lineaarisella (LDO) säätimellä on V -pudotusjännite, jos (Vbat - Vout) alle Vdrop -raja piiri ei ehkä toimi kunnolla.
  3. tehdä käyttäjän painikkeesta hieman isompi, jotta sitä on helpompi painaa.
  4. lisäämällä CDC -USB -koodin, jotta voit kommunikoida/suunnitella erityisohjelman MAC/PC/linux -laitteille.
  5. GPS-antennissa käytin aktiivista antennia tähän projektiin, passiivisen antennin käyttäminen on mahdollista lisäämällä hiljaisen op-vahvistimen, kuten AT2659 (tarkista myös kaavio ATGM332-tietolomakkeesta P.14).
  6. OLED 0.96 'SSD1306, virallinen kirjasto mikrosirusta alun perin 128*32 -näyttöön, koodin muuttamiseksi toimimaan 128*64 kanssa sinun on siirryttävä osoitteeseen ssd1306.c ja muokattava koodi (tarkista kuva).

Suositeltava: