Բովանդակություն:

GPS մոնիտորինգ OLED ցուցադրման նախագծով. 5 քայլ (նկարներով)
GPS մոնիտորինգ OLED ցուցադրման նախագծով. 5 քայլ (նկարներով)

Video: GPS մոնիտորինգ OLED ցուցադրման նախագծով. 5 քայլ (նկարներով)

Video: GPS մոնիտորինգ OLED ցուցադրման նախագծով. 5 քայլ (նկարներով)
Video: Wie bereite ich eine Tour vor | Was ist mein Reiseziel | Packlisten etc. | SWTSPORTS Frage & Antwort 2024, Հուլիսի
Anonim
GPS մոնիտորինգ OLED ցուցադրման նախագծով
GPS մոնիտորինգ OLED ցուցադրման նախագծով
GPS մոնիտորինգ OLED ցուցադրման նախագծով
GPS մոնիտորինգ OLED ցուցադրման նախագծով
GPS մոնիտորինգ OLED ցուցադրման նախագծով
GPS մոնիտորինգ OLED ցուցադրման նախագծով
GPS մոնիտորինգ OLED ցուցադրման նախագծով
GPS մոնիտորինգ OLED ցուցադրման նախագծով

Ողջույն բոլորին, այս արագ հոդվածում ես ձեզ հետ կկիսեմ իմ նախագիծը ՝ ATGM332D GPS մոդուլ ՝ SAMD21J18 միկրոկոնտրոլերով և SSD1306 OLED 128*64 էկրանով, դրա համար հատուկ PCB կառուցեցի և ծրագրավորեցի այն Atmel studio 7.0 և ASF4 ստուդիայի միջոցով: Այս հոդվածում ես ձեզ հետ կկիսեմ այս ճանապարհորդության և այն ֆայլերի մասին, որոնք ես օգտագործել եմ, եթե ձեզ հետաքրքիր է դա անել ինքնուրույն:

Այժմ, եթե դուք ծրագրավորում եք ձեր MCU/զարգացման խորհուրդը Arduino- ի միջոցով, այս նախագիծը ձեզ համար պետք է լինի համեմատաբար հեշտ, բայց այստեղ ես կօգտագործեմ ASF4 (առաջադեմ ծրագրային շրջանակ 4) Atmel/Microchip- ից, որը հիմնված է C լեզվի վրա և գաղափար կտա ձեզ: այն մասին, թե ինչպես կարդալ GPS NMEA հաղորդագրությունը ՝ օգտագործելով USART Asynchronous վարորդը (Հետադարձ) և տրամադրել ձեզ պարզ գրադարան, որը կարող եք օգտագործել այն ցանկացած միկրոհսկիչով և տարբեր հարթակներով ՝ պարզապես ավելացնելով համապատասխան Վարորդը, որն օգտագործում եք հաղորդագրությունը ստանալու համար: GPS (NMEA հաղորդագրություն):

Այս հոդվածը բաժանեմ հետևյալի.

  1. PCB դիզայն.
  2. BOM- ին անհրաժեշտ է հավաքել PCB- ն
  3. Արագ հայացք դեպի ծրագրակազմ և ինքնին ծածկագիր և փորձարկում ապարատային և ծրագրային ապահովման համար:
  4. վերջին, բայց ոչ պակաս, որևէ բարելավում այս ծրագրի համար:

Այս նախագծի հետ կապված ամբողջ նյութը կգտնեք Github- ում (Այստեղ)

Քայլ 1. PCB- ի ձևավորում Eagle- ի միջոցով

PCB դիզայն ՝ օգտագործելով Eagle
PCB դիզայն ՝ օգտագործելով Eagle
PCB դիզայն ՝ օգտագործելով Eagle
PCB դիզայն ՝ օգտագործելով Eagle
PCB դիզայն ՝ օգտագործելով Eagle
PCB դիզայն ՝ օգտագործելով Eagle
PCB դիզայն ՝ օգտագործելով Eagle
PCB դիզայն ՝ օգտագործելով Eagle

Այս նախագիծը հիմնականում հիմնված է ATGM332D GPS մոդուլի շուրջ, օգտագործման համար պարզ GPS, քանի որ աշխատելու համար անհրաժեշտ է ընդամենը մի քանի պասիվ բաղադրիչ, և մենք կարող ենք ավելացնել պահեստային մարտկոց ՝ ժամանակը/ամսաթիվը խնայելու համար, եթե անջատենք էներգիայի հիմնական աղբյուրը մոդուլից:

և միացման բոլոր ազդանշանները վերահսկելու համար ես գնացի ATSAMD21J18B միկրոկառավարիչով ՝ TQFP64 փաթեթով, քանի որ այն ունի 128KByte ծրագրային հիշողության պահեստավորում և 32KByte տվյալների հիշողություն (և դրանցից շատերը տեղադրված են իմ աշխատասեղանի շուրջը):

միացումը պետք է սնուցվի USB 5V աղբյուրից, ինչպես նաև USB- ը կարող է հանդես գալ որպես վիրտուալ COM պորտ (CDC USB), և դուք կարող եք ավելացնել դրա կոդը, եթե ցանկանում եք սարքի հետ շփվել USB- ի միջոցով:

Էկրանի համար ես ընտրեցի SSD1306 0.96 'OLED էկրան ՝ SPI ավտոբուսով, այն փոքր է, բայց այն հարմար է իմ ուզած PCB չափի համար, տախտակի չափը ՝ 100x31 մմ:

Microcontroller- ի ծրագրավորումը կիրականացվի SWD ծրագրավորողի միջոցով (ես օգտագործում եմ Atmel ICE) և այն կկապի 1.27 մմ 10p քորոց վերնագրի միջոցով:

նաև ես Fusion360- ով օգտվեցի տախտակի համար 3D տեսք ստանալու համար, և դրա համար նույնպես կարող եք տեսնել որոշ մատուցված պատկերներ:

Քայլ 2: PCB- ի զոդում

PCB- ի զոդում
PCB- ի զոդում
PCB- ի զոդում
PCB- ի զոդում
PCB- ի զոդում
PCB- ի զոդում

Դուք ունեք ընտրություն ՝ ձեր PCB- ով տրաֆարետ պատվիրելու համար, ավելի հեշտ է տրաֆարետը կիրառել տախտակի վրա, ես տաք ափսե էի օգտագործել բաղադրիչները միասին միացնելու համար, տաք օդի օգտագործումը նույնպես լավ է, բայց LED- ն միացնելիս զգույշ եղեք: նրանք այնքան զգայուն են ջերմության նկատմամբ:

ներքևի կողմը միացնելը մի փոքր ավելի հեշտ է, քանի որ այն ունի միայն SWD կապի վերնագիր և պահեստային մարտկոց, որը կարող եք դրանք զոդել ՝ օգտագործելով զոդման երկաթ:

միացումն USB հոսանքի աղբյուրի հետ միացնելուց առաջ ստուգեք որևէ կարճ միացում:

միացրեք ձեր GPS ալեհավաքը և համոզվեք, որ դրա միակցիչը պատշաճ կերպով կպցրել եք, ես ամրացրել եմ ալեհավաքը տախտակի ներքևի մասում:

Քայլ 3. Softwareրագրակազմ… Ֆունկցիոնալություն… արդյունքներ

Image
Image
Softwareրագրային ապահովում… Ֆունկցիոնալություն… արդյունքներ
Softwareրագրային ապահովում… Ֆունկցիոնալություն… արդյունքներ
Softwareրագրային ապահովում… Ֆունկցիոնալություն… արդյունքներ
Softwareրագրային ապահովում… Ֆունկցիոնալություն… արդյունքներ

Theրագիրը կբաժանվի 4 մասի.

  1. USART ՝ ATGM332 GPS մոդուլի հետ հաղորդակցվելու համար:
  2. SPI ՝ OLED- ի հետ հաղորդակցվելու համար:
  3. USB CDC:
  4. GPIO ՝ LED- ները վերահսկելու համար

սկզբում միացրեք USB միակցիչը միացումին, ապա միացրեք ժապավենի մալուխը SWD միակցիչով:

Ներբեռնեք ծածկագիրը github- ից (հղումը այստեղ):

Geo-Location- ը ստանալու համար դուք ունեք 3 տարբեր NMEA հաղորդագրությունների ընտրանքներ.

  1. GPGGA
  2. GPRMC
  3. GPGLL

Ես օգտագործել եմ GPRMC նախադասությունը ՝ գտնվելու վայրը, ժամանակը և ամսաթիվը ստանալու համար (ժամանակը ՝ GMT 0.0), այնպես որ ծածկագրում կգտնեք.

GPRMC. Միացնել = 1;/*0, եթե այս հաղորդագրության կարիքը չկա*/

GPGGA. Միացնել = 0;/*0, եթե այս հաղորդագրության կարիքը չկա*/

GPGLL. Anable = 0;/*0, եթե այս հաղորդագրության կարիքը չկա*/

կարող եք դրանք բոլորը միացնել և կարդալ դրանք միաժամանակ ստանալ անհրաժեշտ տվյալները:

երբ լինի վավեր GPRMC նախադասություն, theGPRMC. Ready- ը կդառնա 1, և դուք կարող եք ձեռք բերել այս նախադասության մեջ առկա բոլոր տվյալները, ստուգեք այս հղումը ՝ այս նախադասության մեջ առկա տվյալները տեսնելու համար:

պարզապես, եթե Fix- ը «A» է, նշանակում է, որ Տեղանքը հասանելի է, եթե Fix- ը «V» է, նշանակում է, որ գտնվելու վայրը հասանելի չէ:

նկատեք, որ ATSAMD21- ն ունի ներքին RTC, բայց այստեղ ես չեմ օգտագործում այն, փոխարենը ես օգտագործում եմ ժամանակը և ամսաթիվը անմիջապես GPS- ից, այնպես որ, եթե չեք ցանկանում օգտագործել CR1220 պահեստային մարտկոցը, USB հոսանքի աղբյուրն անջատելուց հետո դուք կորցնել /ամը/Ամսաթիվը և հաջորդ անգամ միացնելով միացումը, էկրանին ժամի/ամսաթվի տարածքը դատարկ կլինի մինչև GPS- ի վավերական ժամի/ամսաթվի արժեքը:

էկրանը ցույց կտա GPS- ի ներկայիս վիճակը և կցուցադրի աշխարհագրական դիրքը, երբ այն հասանելի լինի, սակայն տախտակի վրա կա 3 LED:

  1. Կանաչ LED- ը միացված է PA06- ին և կթարթվի, եթե առկա է վավերական աշխարհագրական դիրքի արժեք:
  2. Նարնջագույն LED- ն միացված է PA07- ին և վայրկյանում մեկ անգամ թարթում է, եթե չկա վավերական աշխարհատեղորոշում:
  3. Կարմիր LED- ը, որը միացված է GPS մոդուլի PPS կապին և կթարթվի միայն այն դեպքում, երբ Տեղադրության հետ կապված վավեր ազդանշան լինի:

Արդյունքները

Շղթան ինձ հետ շատ լավ աշխատեց, GPS- ից Գեո-տեղադրությունը 20-30 վայրկյան տևեց բացօթյա բաց երկնքով և շենքերի միջև, առանց որևէ խնդրի, նույնիսկ տախտակի ներքևի մասում գտնվող ալեհավաքով:

Քայլ 4: 3D տպագրված պատյան… Տեսակավորում

3D տպագրված պատյան… տեսակ
3D տպագրված պատյան… տեսակ

Այս շղթայի համար ես պատրաստեցի մի պարզ պատյան (ավելի ճշգրիտ պահիչ), բայց COVID-19 համաճարակի և այս պահին փակվածության պատճառով չկարողացա հասնել 3d տպիչին այն տպելու համար, ուստի այս հատվածը կթարմացնեմ stl- ով: ֆայլը և լուսանկարը տիրոջ համար, երբ այն հասանելի լինի:

Քայլ 5: Բարելավելու բաներ…

Բարելավելու բաներ…
Բարելավելու բաներ…
Բարելավելու բաներ…
Բարելավելու բաներ…
Բարելավելու բաներ…
Բարելավելու բաներ…
  1. SWD միակցիչը տեղափոխեք վերև, քանի որ այն ավելի հեշտ է միացնել այն ձեր ծրագրավորողի հետ:
  2. Լիթիումի մարտկոցից միացում տալով, ես դա արեցի մի ցատկիչ կպցնելով և այն լավ աշխատեց ՝ հաշվի առնելով, որ Գծային (LDO) կարգավորիչն ունի V անկման լարումը, եթե (Vbat - Vout) - ից պակաս Vdrop սահմանը, միացումը չի կարող աշխատել: պատշաճ կերպով:
  3. օգտվողի կոճակը մի փոքր ավելի մեծ դարձնելով, այնպես որ այն ավելի հեշտ կլինի սեղմել:
  4. ավելացնելով USB CDC ծածկագիր, որպեսզի կարողանաք հաղորդակցվել/նախագծել հատուկ ծրագիր MAC/PC/linux- ի համար:
  5. GPS- ի ալեհավաքի համար ես այս նախագծի համար օգտագործեցի ակտիվ ալեհավաք, հնարավոր է օգտագործել պասիվ ալեհավաք ՝ AT2659- ի նման ցածր աղմուկի ուժեղացուցիչ ավելացնելով (ստուգեք նաև ATGM332 Datasheet P.14 սխեմատիկ պատկերը):
  6. OLED 0.96 'SSD1306- ի համար, սկզբնական միկրոչիպի գրադարանը 128*32 ցուցադրման համար, 128*64 -ով աշխատելու համար կոդը փոխելու համար պետք է գնալ ssd1306.c և փոփոխել ծածկագիրը (ստուգել պատկերը):

Խորհուրդ ենք տալիս: