Turinys:
- 1 žingsnis: PCB dizainas naudojant „Eagle“
- 2 žingsnis: PCB litavimas
- 3 žingsnis: programinė įranga… Funkcionalumas… rezultatai
- 4 žingsnis: 3D spausdintas dėklas … Rūšiuoti
- 5 žingsnis: ką reikia pagerinti …
Video: GPS stebėjimas naudojant OLED ekrano projektą: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Sveiki visi, šiame trumpame straipsnyje pasidalinsiu su jumis savo projektu: ATGM332D GPS modulis su SAMD21J18 mikrovaldikliu ir SSD1306 OLED 128*64 ekranu, aš jam sukūriau specialų PCB „Eagle Autodesk“ir užprogramavau jį naudodami „Atmel studio 7.0“ir ASF4. šiame straipsnyje pasidalinsiu su jumis šia kelione ir failais, kuriuos naudojau, jei jums įdomu tai padaryti patiems.
Dabar, jei programuojate savo MCU/kūrimo plokštę naudodami „Arduino“, šis projektas jums turėtų būti gana lengvas, tačiau čia aš naudosiu ASF4 (išplėstinė programinė įranga 4) iš „Atmel/Microchip“, kuri pagrįsta C kalba ir suteiks jums idėją kaip perskaityti GPS NMEA pranešimą naudojant USART asinchroninę tvarkyklę (atgalinį skambutį) ir suteikti jums paprastą biblioteką, kurią galite naudoti su bet kokiu mikrovaldikliu ir kita platforma, tiesiog pridėdami atitinkamą tvarkyklę, kurią naudojate, kad gautumėte pranešimą iš GPS (NMEA pranešimas).
Aš padalinsiu šį straipsnį į:
- PCB dizainas.
- BOM jums reikia surinkti PCB
- Greitai peržiūrėkite programinę įrangą ir patį kodą bei patikrinkite aparatinę ir programinę įrangą.
- galiausiai, bet ne mažiau svarbu šiek tiek patobulinti šį projektą.
Visą su šiuo projektu susijusią medžiagą rasite „Github“(čia)
1 žingsnis: PCB dizainas naudojant „Eagle“
Šis projektas daugiausia pagrįstas ATGM332D GPS moduliu, paprastu naudoti GPS, nes jam reikia tik kelių pasyvių komponentų, kad galėtume dirbti, ir mes galėtume pridėti atsarginę bateriją, kad sutaupytume laiko/datos, jei išjungsime pagrindinį maitinimo šaltinį iš modulio.
ir norėdamas valdyti visus grandinės signalus, nuėjau su ATSAMD21J18B mikrovaldikliu, TQFP64 paketu, nes jame yra 128 KB baitų programos atminties ir 32 KB baitų duomenų atminties (ir aš turiu daug jų aplink savo darbo stalą).
grandinė turi būti maitinama iš 5 V USB šaltinio, taip pat USB gali veikti kaip virtualus COM prievadas (CDC USB) ir jūs galite pridėti jo kodą, jei norite bendrauti su įrenginiu per USB.
ekranui pasirinkau SSD1306 0,96 'OLED ekraną su SPI magistralė, jis mažas, bet tinka mano norimam PCB dydžiui, plokštės matmenys 100x31 mm.
mikrokontrolerio programavimas bus atliekamas per SWD programuotoją (aš naudoju „Atmel ICE“) ir prijungs jį per 1,27 mm 10p kaiščio antraštę.
Taip pat aš naudoju „Fusion360“, kad gaučiau lentos 3D vaizdą, ir jūs taip pat galite pamatyti tam tikrą atvaizdą.
2 žingsnis: PCB litavimas
Jūs galite pasirinkti užsisakyti trafaretą su savo PCB, lengviau uždėti lydmetalio pastą ant lentos, naudodami trafaretą, aš naudojau kaitlentę komponentams lituoti, taip pat gerai naudoti karštą orą, tačiau būkite atsargūs, kai lituojate šviesos diodą, nes jie tokie jautrūs karščiui.
lituoti apatinę pusę yra šiek tiek lengviau, nes jame yra tik SWD kaiščio antraštė ir atsarginė baterija, kurią galite lituoti naudodami lituoklį.
prieš prijungdami grandinę prie bet kurio USB maitinimo šaltinio, patikrinkite, ar nėra trumpojo jungimo.
prijunkite savo GPS anteną ir įsitikinkite, kad tinkamai lituosite jungtį, aš pritvirtinau anteną apatinėje plokštės pusėje.
3 žingsnis: programinė įranga… Funkcionalumas… rezultatai
Programinė įranga bus padalinta į 4 dalis:
- USART bendrauti su ATGM332 GPS moduliu.
- SPI bendrauti su OLED.
- USB CDC.
- GPIO šviesos diodams valdyti
pirmiausia prijunkite USB jungtį prie grandinės maitinimo, tada prijunkite juostinį kabelį su SWD jungtimi.
Atsisiųskite kodą iš „github“(nuoroda čia).
Norėdami gauti geografinę vietą, turite 3 skirtingas NMEA pranešimų parinktis:
- GPGGA
- GPRMC
- GPGLL
Aš naudoju GPRMC sakinį, kad gaučiau vietą, laiką ir datą (laikas yra 0 GMT), todėl kode rasite:
GPRMC. Enable = 1;/*0, jei nereikia šio pranešimo*/
GPGGA. Enable = 0;/*0, jei nereikia šio pranešimo*/
GPGLL. Enable = 0;/*0, jei nereikia šio pranešimo*/
galite įjungti juos visus kartu ir skaityti juos tuo pačiu metu, kad gautumėte reikiamus duomenis.
kai bus galiojantis GPRMC sakinys, theGPRMC. Ready taps 1 ir galėsite gauti visus šiame sakinyje esančius duomenis, patikrinkite šią nuorodą, kad pamatytumėte šiame sakinyje esančius duomenis.
jei „Fix“yra „A“, tai reiškia, kad vieta yra prieinama, jei „Fix“yra „V“, tai reiškia, kad vieta nepasiekiama.
pastebėkite, kad ATSAMD21 turi vidinį RTC, bet čia aš jo nenaudoju, o laiką ir datą naudoju tiesiai iš GPS, taigi, jei nenorite naudoti CR1220 atsarginės baterijos, atjungę USB maitinimo šaltinį prarasite laiką/datą ir kitą kartą įjungus grandinę, laiko ir datos sritis ekrane bus tuščia, kol GPS nustatys galiojančią laiko/datos vertę.
ekrane bus rodoma dabartinė GPS būsena ir geografinė vieta, kai tik ji bus pasiekiama, tačiau lentoje yra 3 šviesos diodai:
- Žalia šviesos diodas prijungtas prie PA06 ir mirksės, jei yra galiojanti geografinės vietos reikšmė.
- Oranžinis šviesos diodas prijungtas prie PA07 ir mirksi vieną kartą per sekundę, jei nėra tinkamos geografinės vietos.
- Raudonas šviesos diodas yra prijungtas prie GPS modulio PPS kaiščio ir mirksi tik tada, kai yra galiojantis signalas, susijęs su vietove.
Rezultatai
Grandinė su manimi labai gerai dirbo, gaukite geografinę vietą iš GPS 20-30 sekundžių lauke, gerai matydami dangų ir tarp pastatų be jokių problemų, net jei antena buvo apatinėje plokštės pusėje.
4 žingsnis: 3D spausdintas dėklas … Rūšiuoti
Aš paruošiau paprastą dėklą (tikslesnį laikiklį) šiai grandinei, tačiau dėl COVID-19 epidemijos ir užrakto, kuriame dabar esu, negalėjau pasiekti savo 3D spausdintuvo, kad galėčiau jį atspausdinti, todėl atnaujinsiu šį skyrių failą ir turėtojui skirtas nuotraukas, kai tik jos bus pasiekiamos.
5 žingsnis: ką reikia pagerinti …
- Perkelkite SWD jungtį į viršutinę pusę, nes ją lengviau prijungti prie programuotojo.
- Maitindamas grandinę iš ličio baterijos, aš tai padariau lituodamas trumpiklį ir jis veikė gerai, nepamiršdamas, kad linijinis (LDO) reguliatorius turi V kritimo įtampą, jei (Vbat - Vout) mažesnė nei Vdrop riba grandinė gali neveikti tinkamai.
- naudotojo mygtukas tampa šiek tiek didesnis, todėl jį bus lengviau paspausti.
- pridedant USB CDC kodą, kad galėtumėte bendrauti/sukurti specialią programą, skirtą MAC/PC/Linux.
- GPS antenai šiam projektui panaudojau aktyvią anteną, galima naudoti pasyvią anteną, pridedant mažo triukšmo stiprintuvą, pvz., AT2659 (taip pat patikrinkite schemą ATGM332 duomenų lape P.14).
- OLED 0.96 'SSD1306, oficiali biblioteka iš mikroschemos, iš pradžių skirta 128*32 ekranui, norint pakeisti kodą, kad jis veiktų su 128*64, turite eiti į ssd1306.c ir pakeisti kodą (patikrinkite paveikslėlį).
Rekomenduojamas:
Veikimas be ekrano / ekrano (be galvos) „Raspberry Pi“ar kituose „Linux“/ „Unix“kompiuteriuose: 6 žingsniai
Veikimas be ekrano / ekrano (be galvos) „Raspberry Pi“ar kituose „Linux“/ „Unix“kompiuteriuose: Kai dauguma žmonių perka „Raspberry PI“, jie mano, kad jiems reikia kompiuterio ekrano. Nešvaistykite pinigų nereikalingiems kompiuterių monitoriams ir klaviatūroms. Negaiškite laiko perkeldami klaviatūras ir monitorius iš vieno kompiuterio į kitą. Nesiriškite televizoriaus, kai jo nėra
Pagreitėjimo stebėjimas naudojant „Raspberry Pi“ir AIS328DQTR naudojant „Python“: 6 žingsniai
Pagreitėjimo stebėjimas naudojant „Raspberry Pi“ir „AIS328DQTR“naudojant „Python“: pagreitis yra baigtinis, manau, pagal kai kuriuos fizikos įstatymus.- Terry Riley A gepardas naudoja nuostabų pagreitį ir greitus greičio pokyčius. Greičiausias padaras į krantą kartkartėmis naudoja didžiausią tempą grobiui sugauti
Pagreitėjimo variantų stebėjimas naudojant „Raspberry Pi“ir MMA7455 naudojant „Python“: 6 žingsniai
Pagreitėjimo variantų stebėjimas naudojant „Raspberry Pi“ir „MMA7455“naudojant „Python“: nesuklydau, bandžiau gravitaciją. Jis vis dar veikia… Atskleidžiant greitėjantį erdvėlaivį, paaiškėjo, kad laikrodis aukščiausiame šaudyklės taške pasirenka greičiau nei vienas bazėje dėl gravitacinio laiko išsiplėtimo. Kai kurie
„Raspberry Pi“jutiklinio ekrano ekrano pamoka: 5 žingsniai (su paveikslėliais)
„Raspberry Pi“jutiklinio ekrano ekrano pamoka: atmeskite savo HDMI kabelius, nes dabar galite turėti „Pi“ekraną! Ši instrukcija padės jums nustatyti „Pi“sąranką su jutikliniu ekranu ir kaip ją naudoti, kad atitiktų jūsų poreikius. Bet kokio tipo HAT stiliaus ekranas gali būti
Ekrano temperatūra P10 LED ekrano modulyje naudojant „Arduino“: 3 žingsniai (su paveikslėliais)
Ekrano temperatūra P10 LED ekrano modulyje naudojant „Arduino“: Ankstesnėje pamokoje buvo pasakyta, kaip rodyti tekstą „Dot Matrix LED Display P10“modulyje naudojant „Arduino“ir DMD jungtį, kurią galite patikrinti čia. Šioje pamokoje mes pateiksime paprastą projekto pamoką, naudojant P10 modulį kaip ekrano mediją