Satura rādītājs:
- 1. solis: PCB dizains, izmantojot Eagle
- 2. solis: PCB lodēšana
- 3. darbība. Programmatūra… Funkcionalitāte… rezultāti
- 4. solis: 3D drukāts korpuss … Kārtība
- Solis: lietas, kas jāuzlabo…
Video: GPS uzraudzība ar OLED displeja projektu: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Sveiki visiem, šajā ātrajā rakstā es dalīšos ar jums savā projektā: GPS modulis ATGM332D ar mikrokontrolleri SAMD21J18 un displeju SSD1306 OLED 128*64, es tam izveidoju īpašu PCB Eagle Autodesk un programmēju to, izmantojot Atmel studio 7.0 un ASF4. šajā rakstā es dalīšos ar jums šajā ceļojumā un failos, kurus izmantoju, ja jums ir interesanti to izdarīt pats.
Tagad, ja jūs programmējat savu MCU/izstrādes plati, izmantojot Arduino, šim projektam jums vajadzētu būt salīdzinoši vienkāršam, taču šeit es izmantošu ASF4 (uzlabotas programmatūras ietvars 4) no Atmel/Microchip, kura pamatā ir C valoda un kas jums sniegtu priekšstatu. kā izlasīt GPS NMEA ziņojumu, izmantojot USART asinhrono draiveri (atzvanīšana), un nodrošināt jums vienkāršu bibliotēku, kuru varat izmantot kopā ar jebkuru mikrokontrolleri un citu platformu, vienkārši pievienojot atbilstošo draiveri, ko izmantojat, lai saņemtu ziņojumu no GPS (NMEA ziņojums).
Es sadalīšu šo rakstu:
- PCB dizains.
- BOM jums jāsamontē PCB
- Ātri apskatiet programmatūru un pašu kodu, kā arī pārbaudiet aparatūru un programmatūru.
- visbeidzot, bet ne mazāk svarīgi daži uzlabojumi šajā projektā.
Visu ar šo projektu saistīto materiālu atradīsit vietnē Github (šeit)
1. solis: PCB dizains, izmantojot Eagle
Šis projekts galvenokārt balstījās uz ATGM332D GPS moduli, vienkāršu GPS izmantošanu, jo tā darbībai nepieciešami tikai pāris pasīvi komponenti, un mēs varētu pievienot rezerves akumulatoru, lai ietaupītu laiku/datumu, ja mēs izslēdzam galveno barošanas avotu no moduļa.
un, lai kontrolētu visus ķēdes signālus, es devos ar ATSAMD21J18B mikrokontrolleru, TQFP64 paketi, jo tajā ir 128 KB baitu programmas atmiņa un 32 KB baitu datu atmiņa (un man ir daudz to, kas atrodas ap manu darbagaldu).
ķēdi darbina no USB 5V avota, kā arī USB var darboties kā virtuāls COM ports (CDC USB), un jūs varat pievienot tam kodu, ja vēlaties sazināties ar ierīci, izmantojot USB.
displejam es izvēlējos SSD1306 0,96 'OLED displeju ar SPI kopni, tas ir mazs, bet tas ir piemērots manam PCB izmēram, kuru es gribēju, tāfeles izmērs 100x31 mm.
Mikrokontrollera programmēšana tiks veikta, izmantojot SWD programmētāju (es izmantoju Atmel ICE), un to savienos, izmantojot 1.27 mm 10p pin header.
arī es izmantoju Fusion360, lai iegūtu tāfeles 3D skatu, un arī tam var redzēt atveidotu attēlu.
2. solis: PCB lodēšana
Jums ir iespēja pasūtīt trafaretu ar savu PCB, ir vieglāk uzklāt lodēšanas pastas uz tāfeles, izmantojot trafaretu, es izmantoju sildvirsmu, lai kopā lodētu komponentus, arī karstā gaisa izmantošana ir OK, bet esiet uzmanīgi, lodējot gaismas diodi, jo tie ir tik jutīgi pret karstumu.
apakšējās puses lodēšana ir nedaudz vieglāka, jo tai ir tikai SWD tapas galvene un rezerves akumulators, ko varat lodēt, izmantojot lodāmuru.
pirms ķēdes pievienošanas jebkuram USB barošanas avotam, pārbaudiet, vai nav īssavienojuma.
pievienojiet savu GPS antenu un pārliecinieties, ka esat pareizi pielodējis savienotāju, es fiksēju antenu tāfeles apakšējā pusē.
3. darbība. Programmatūra… Funkcionalitāte… rezultāti
Programmatūra tiks sadalīta 4 daļās:
- USART, lai sazinātos ar ATGM332 GPS moduli.
- SPI, lai sazinātos ar OLED.
- USB CDC.
- GPIO, lai kontrolētu gaismas diodes
vispirms pievienojiet USB savienotāju strāvas padevei un pēc tam pievienojiet lentes kabeli ar SWD savienotāju.
Lejupielādējiet kodu no github (saite šeit).
lai iegūtu ģeogrāfisko atrašanās vietu, jums ir 3 dažādas NMEA ziņojumu iespējas:
- GPGGA
- GPRMC
- GPGLL
Es izmantoju GPRMC teikumu, lai iegūtu atrašanās vietu, laiku un datumu (laiks ir 0,0 GMT), tāpēc kodā jūs atradīsit:
GPRMC. Enable = 1;/*0, ja šis ziņojums nav nepieciešams*/
GPGGA. Enable = 0;/*0, ja šis ziņojums nav nepieciešams*/
GPGLL. Enable = 0;/*0, ja šis ziņojums nav nepieciešams*/
jūs varat tos visus iespējot un vienlaikus lasīt, lai iegūtu nepieciešamos datus.
kad būs derīgs GPRMC teikums, theGPRMC. Ready kļūs par 1 un jūs varat iegūt visus šajā teikumā pieejamos datus, pārbaudiet šo saiti, lai redzētu šajā teikumā pieejamos datus.
vienkārši, ja Fix ir “A”, tas nozīmē, ka atrašanās vieta ir pieejama, ja Fix ir “V”, tas nozīmē, ka atrašanās vieta nav pieejama.
ievērojiet, ka ATSAMD21 ir iekšējais RTC, bet šeit es to neizmantoju, un es izmantoju laiku un datumu tieši no GPS, tādēļ, ja nevēlaties izmantot rezerves akumulatoru CR1220, pēc USB strāvas avota atvienošanas zaudēt laiku/datumu un nākamreiz ieslēdzot ķēdi, laika/datuma apgabals displejā būs tukšs, līdz GPS būs derīga laika/datuma vērtība.
displejs parādīs GPS pašreizējo statusu un parādīs ģeogrāfisko atrašanās vietu, tiklīdz tā būs pieejama, tomēr uz tāfeles ir 3 gaismas diodes:
- Zaļā gaismas diode ir savienota ar PA06 un mirgos, ja ir derīga ģeogrāfiskās atrašanās vietas vērtība.
- Oranžā gaismas diode ir savienota ar PA07 un mirgos vienu reizi sekundē, ja nav derīgas ģeogrāfiskās atrašanās vietas.
- Sarkana gaismas diode ir savienota ar GPS moduļa PPS tapu un mirgos tikai tad, ja ar atrašanās vietu būs derīgs signāls.
Rezultāti
Ķēde ar mani strādāja ļoti labi, ģeogrāfiskās atrašanās vietas noteikšana no GPS aizņēma 20-30 sekundes brīvā dabā ar skaidru redzi uz debesīm un starp ēkām bez problēmām pat ar antenu dēļa apakšējā pusē.
4. solis: 3D drukāts korpuss … Kārtība
Šai shēmai es sagatavoju vienkāršu korpusu (precīzāku turētāju), bet COVID-19 epidēmijas un pašreizējās bloķēšanas dēļ es nevarēju sasniegt savu 3D printeri, lai to izdrukātu, tāpēc es atjaunināšu šo sadaļu ar stl failu un fotoattēlus turētājam, kad tas būs pieejams.
Solis: lietas, kas jāuzlabo…
- SWD savienotāja pārvietošana uz augšējo pusi, jo to ir vieglāk savienot ar programmētāju.
- Barojot ķēdi no litija akumulatora, es to darīju, lodējot džemperi, un tas strādāja labi, paturot prātā, ka lineārajam (LDO) regulatoram ir V kritiena spriegums, ja (Vbat - Vout), kas mazāks par Vdrop robežu, ķēde var nedarboties pareizi.
- padarot lietotāja pogu nedaudz lielāku, lai to būtu vieglāk nospiest.
- pievienojot USB CDC kodu, lai jūs varētu sazināties/izveidot īpašu programmu MAC/PC/Linux.
- Attiecībā uz GPS antenu šim projektam izmantoju aktīvo antenu, iespējams izmantot pasīvo antenu, pievienojot zema trokšņa līmeņa pastiprinātāju, piemēram, AT2659 (pārbaudiet arī shēmu ATGM332 datu lapā 14. lpp.).
- OLED 0.96 'SSD1306, oficiālā bibliotēka no mikroshēmas sākotnēji 128*32 displejam, lai modificētu kodu, lai tas darbotos ar 128*64, jums jādodas uz ssd1306.c un jāmaina kods (pārbaudiet attēlu).
Ieteicams:
Arduino displeja temperatūra TM1637 LED displejā: 7 soļi
Arduino displeja temperatūra TM1637 LED displejā: šajā apmācībā mēs iemācīsimies parādīt temperatūru, izmantojot LED displeju TM1637 un DHT11 sensoru un Visuino. Noskatieties video
Arduino displeja laiks TM1637 LED displejā, izmantojot RTC DS1307: 8 soļi
Arduino displeja laiks TM1637 LED displejā, izmantojot RTC DS1307: Šajā apmācībā mēs iemācīsimies parādīt laiku, izmantojot RTC DS1307 moduli un LED displeju TM1637 un Visuino. Noskatieties video
Digitālie Ludo kauliņi ar Arduino 7 segmentu displeja projektu: 3 soļi
Digitālie Ludo kauliņi ar Arduino 7 segmentu displeja projektu: Šajā projektā 7 segmentu displejs tiek izmantots, lai nejauši parādītu skaitli no 1 līdz 6, kad mēs nospiežam spiedpogu. Šis ir viens no stilīgākajiem projektiem, ko ikvienam patīk darīt. Lai uzzinātu, kā strādāt ar 7 segmentu displeju, noklikšķiniet šeit: -7 segme
NEO -6M GPS savienots ar NodeMCU - OLED displeja pozīcija - Visuino: 7 soļi
NEO -6M GPS savienots ar NodeMCU - OLED displeja pozīcija - Visuino: šajā apmācībā mēs izmantosim NodeMCU Mini, OLED LCD, NEO -6M GPS un Visuino, lai parādītu tiešu GPS atrašanās vietu LCD. Noskatieties demonstrācijas video
Displeja temperatūra P10 LED displeja modulī, izmantojot Arduino: 3 soļi (ar attēliem)
Displeja temperatūra P10 LED displeja modulī, izmantojot Arduino: Iepriekšējā apmācībā ir teikts, kā parādīt tekstu Dot Matrix LED displeja P10 modulī, izmantojot Arduino un DMD savienotāju, ko varat pārbaudīt šeit. Šajā apmācībā mēs sniegsim vienkāršu projekta apmācību, izmantojot displeja līdzekli P10 moduli