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

Հրթիռային հեռաչափություն/դիրքի հետևող ՝ 7 քայլ
Հրթիռային հեռաչափություն/դիրքի հետևող ՝ 7 քայլ

Video: Հրթիռային հեռաչափություն/դիրքի հետևող ՝ 7 քայլ

Video: Հրթիռային հեռաչափություն/դիրքի հետևող ՝ 7 քայլ
Video: Հրթիռային համազարկը․․․ կրակոց ԱՄՆ-ի հասցեին․․․ Քալընը Բլինքենին ի՞նչ է փոխանցել 2024, Հուլիսի
Anonim
Հրթիռային հեռաչափություն/դիրքի հետևող
Հրթիռային հեռաչափություն/դիրքի հետևող

Այս նախագիծը նախատեսված է թռիչքի տվյալները մուտքագրել 9 DOF սենսորային մոդուլից SD քարտ և միաժամանակ փոխանցել իր GPS տեղադրությունը բջջային ցանցերի միջոցով սերվերին: Այս համակարգը թույլ է տալիս գտնել հրթիռը, եթե համակարգի վայրէջքի տարածքը գտնվում է LOS- ից դուրս:

Քայլ 1: Մասերի ցուցակ

Մասերի ցուցակ
Մասերի ցուցակ
Մասերի ցուցակ
Մասերի ցուցակ

Հեռաչափության համակարգ

1x ATmega328 միկրոկառավարիչ (Arduino UNO, Նանո)

1x Micro SD Breakout -

1x Micro SD քարտ - (չափը նշանակություն չունի FAT 16/32 ձևաչափով) - Amazon Link

1x Gy -86 IMU - Amazon Link

Պաշտոնի հետևում

1x ATmega328 միկրոկառավարիչ (Arduino UNO, Nano) (յուրաքանչյուր համակարգին անհրաժեշտ է իր միկրո)

1x Sim800L GSM GPRS մոդուլ - Amazon Link

1x SIM քարտ (պետք է ունենա տվյալների պլան) - https://ting.com/ (վճարում է միայն օգտագործման համար)

1x NEO 6M GPS մոդուլ - Amazon LInk

Ընդհանուր մասեր

1x 3.7 վ լիպո մարտկոց

1x 3.7-5v արագացման փոխարկիչ (եթե դուք չեք կառուցում համակարգիչը)

1x Raspberry pi կամ ցանկացած համակարգիչ, որը կարող է ընդունել php սերվեր

-Մատչելիություն 3D տպիչին

-PCB- ի BOM- ը նշված է աղյուսակում

-Gerbers- ը github repo- ում է -https://github.com/karagenit/maps-gps

Քայլ 2. Ենթահամակարգ 1. Դիրքի հետևում

Փորձարկում

Համակարգի մասերը (NEO-6M GPS, Sim800L) ձեռքի տակ ունենալուց պետք է ինքնուրույն ստուգել համակարգերի ֆունկցիոնալությունը, որպեսզի գլխացավ չունենաք ՝ փորձելով հասկանալ, թե ինչ չի աշխատում համակարգերը ինտեգրվելիս:

GPS թեստավորում

GPS ընդունիչը փորձարկելու համար կարող եք կամ օգտագործել Ublox- ի կողմից տրամադրված ծրագրակազմը (U-Center Software)

կամ թեստային ուրվագիծը, որը կապված է github ռեպոյում (GPS թեստ)

1. U- կենտրոնի ծրագրակազմով փորձարկելու համար պարզապես միացրեք GPS ընդունիչը USB- ի միջոցով և ընտրեք U- կենտրոնի մուտքի պորտը, որից հետո համակարգը պետք է ինքնաբերաբար սկսի հետևել ձեր տեղադրությանը:

2. Միկրոհսկիչի հետ փորձարկելու համար IDE- ի միջոցով վերբեռնեք GPS- փորձարկման էսքիզը arduino- ում: Այնուհետև միացրեք 5V և GND ստացողի պիտակավորված կապումներին arduino- ին, իսկ GPS RX կապը ՝ թվային 3 -ին և TX կապին ՝ թվային 4 -ին arduino- ում: Վերջապես բացեք arduino IDE- ի սերիական մոնիտորը և սահմանեք բաուդ արագությունը 9600 -ի վրա և ստուգեք ստացված կոորդինատների ճիշտ լինելը:

Նկ.

SIM800L թեստավորում

Բջջային մոդուլը փորձարկելու համար ձեզ հարկավոր կլինի ունենալ SIM քարտ `գրանցված ակտիվ տվյալների պլանով: Ես խորհուրդ եմ տալիս Ting- ին, քանի որ դրանք գանձում են միայն ձեր օգտագործածի համար` ամսական տվյալների ծրագրի փոխարեն:

Sim մոդուլի նպատակը HTTP GET հարցում ուղարկելը սերվերին այն հասցեով, որը ստացվել է GPS ստացողի կողմից:

1. Բջջային մոդուլը փորձարկելու համար տեղադրեք SIM քարտը մոդուլի մեջ `ճեղքված ծայրը դեպի դուրս

2. Միացրեք SIM մոդուլը GND- ին և 3.7-4.2v աղբյուրին, մի օգտագործեք 5v !!!! մոդուլը ի վիճակի չէ աշխատելու 5 վ լարման դեպքում: Միացրեք Sim մոդուլը RX- ին անալոգային 2 -ին և TX- ը `անալոգային 3 -ին Arduino- ում

3. Վերբեռնեք սերիական փոխանցման ուրվագիծը github- ից, որպեսզի կարողանաք հրամաններ ուղարկել բջջի մոդուլին:

4. հետևեք այս ձեռնարկին կամ ներբեռնեք AT Command Tester- ի փորձաշրջանը `HTTP GET գործառույթը ստուգելու համար

Իրականացում:

Երբ հաստատեք, որ երկու համակարգերն էլ աշխատում են ինքնուրույն, կարող եք անցնել ամբողջական ուրվագծի վերբեռնումը միկրոկառավարիչի github- ում: կարող եք բացել սերիական մոնիտորը 9600 baud հասցեով ՝ ստուգելու համար, որ համակարգը տվյալներ է ուղարկում վեբ սերվեր:

*մի մոռացեք փոխել սերվերի IP- ն և նավահանգիստը ձեր սեփականին և համոզվեք, որ գտեք ձեր օգտագործած բջջային մատակարարի APN- ը:

Անցեք հաջորդ քայլին, որտեղ մենք կարգավորում ենք սերվերը

Քայլ 3: Սերվերի տեղադրում

Սերվերի կարգավորում
Սերվերի կարգավորում

Հրթիռի գտնվելու վայրը ցուցադրելու համար սերվեր տեղադրելու համար ես որպես տանտեր օգտագործեցի ազնվամորի pi, բայց դուք կարող եք օգտագործել ցանկացած համակարգիչ:

Հետևեք այս ձեռնարկին ՝ lightphp- ը RPI- ի վրա տեղադրելու վերաբերյալ, այնուհետև պատճենեք php ֆայլերը github- ից ձեր RPI/var/www/html թղթապանակում: Պարզապես օգտագործեք հրամանը

sudo ծառայություն lighttpd force-reload

սերվերը վերաբեռնելու համար:

Համոզվեք, որ փոխանցեք սերվերի հետ կապված նավահանգիստները ձեր երթուղղիչին, որպեսզի կարողանաք հեռակա մուտք գործել տվյալներ: Rpi- ի վրա այն պետք է լինի 80 նավահանգիստ, իսկ արտաքին պորտը կարող է լինել կամայական թիվ:

Լավ գաղափար է RPI- ի համար ստեղծել ստատիկ ip, այնպես որ ձեր առաջ քաշած նավահանգիստները միշտ մատնանշում են դեպի RPI հասցեն:

Քայլ 4. ենթահամակարգ 2. Հեռաչափության գրանցում

Հեռաչափության ծրագիրը գործում է դիրքի հետևման համակարգից առանձին միկրոկոնտրոլերի վրա: Այս որոշումը կայացվեց ATmega328- ի հիշողության սահմանափակման պատճառով, որը թույլ չտվեց երկու ծրագրերին աշխատել մեկ համակարգով: Ընդլայնված բնութագրերով միկրոկոնտրոլերի մեկ այլ ընտրություն կարող է լուծել այս հարցը և թույլ տալ օգտագործել մեկ կենտրոնական պրոցեսոր, բայց ես ցանկանում էի օգտագործել այն մասերը, որոնք ձեռքի տակ ունեի ՝ օգտագործման հարմարավետության համար:

Առանձնահատկություններ. Այս ծրագիրը հիմնված է մեկ այլ օրինակի վրա, որը ես գտել եմ այստեղ այստեղ:

  • Programրագիրը բնիկորեն կարդում է հարաբերական բարձրությունը (բարձրության ընթերցում ՝ զրոյական սկզբի ժամանակ), ջերմաստիճանը, ճնշումը, արագացումը X ուղղությամբ (դուք պետք է փոխեք արագացման ընթերցման ուղղությունը ՝ ելնելով սենսորի ֆիզիկական կողմնորոշումից) և ժամանակային նշան (միլիլ):
  • Գործարկման վահանակի վրա նստած և պահեստային տարածք վատնելիս տվյալների մուտքագրումը կանխելու համար համակարգը կսկսի գրել տվյալները միայն այն դեպքում, երբ հայտնաբերում է բարձրության փոփոխություն (կարգավորելի է ծրագրում) և կդադարեցնի տվյալների գրումը, երբ հայտնաբերի, որ հրթիռը վերադարձել է իր սկզբնականին: բարձրության վրա, կամ թռիչքի ժամանակը 5 րոպե անցնելուց հետո:
  • Համակարգը ցույց կտա, որ այն միացված է և գրում է տվյալները մեկ ցուցիչ LED- ի միջոցով:

Փորձարկում

Համակարգը փորձարկելու համար նախ միացրեք SD քարտի բեկումը

Arduino SD քարտ

Փին 4 ---------------- CS

Պին 11 -------------- DI

Պին 13 -------------- SCK

Պին 12 -------------- ԱՆԵԼ

Այժմ միացրեք GY-86- ը համակարգին I^2C- ի միջոցով

Arduino GY-86

Pin A4 -------------- SDA

Pin A5 -------------- SCL

Պին 2 ---------------- INTA

SD քարտի վրա ֆայլ ստեղծեք datalog.txt անունով հիմնական գրացուցակում: Սա այն համակարգն է, որտեղ տվյալները կգրվեն:

Նախքան Data_Logger.ino էսքիզը միկրոկառավարիչին վերբեռնելը փոխեք ALT_THRESHOLD- ի արժեքը 0 -ի, այնպես որ համակարգը փորձարկումների համար անտեսի բարձրությունը: Վերբեռնելուց հետո բացեք սերիական մոնիտորը 9600 baud հասցեով `համակարգի ելքը դիտելու համար: Համոզվեք, որ համակարգը ի վիճակի է միանալ սենսորին, և որ տվյալները գրվում են SD քարտի վրա: Անջատեք համակարգը և տեղադրեք SD քարտը ձեր համակարգչի մեջ `ստուգելու համար, որ տվյալները գրված են քարտի վրա:

Քայլ 5: Համակարգի ինտեգրում

Համակարգի ինտեգրում
Համակարգի ինտեգրում
Համակարգի ինտեգրում
Համակարգի ինտեգրում

Հաստատելուց հետո, որ համակարգի յուրաքանչյուր հատված աշխատում է նույն կոնֆիգուրացիայով, որն օգտագործվում է հիմնական PCB- ում, ժամանակն է այդ ամենը համախմբելու և գործարկման պատրաստվելու համար: Ես ներառել եմ Gerbers և EAGLE ֆայլերը PCB- ի համար և սխեմատիկ github- ում: դուք պետք է գերբերները վերբեռնեք այնպիսի արտադրողի մոտ, ինչպիսին է OSH park- ը կամ JLC- ն `դրանք արտադրելու համար: Այս տախտակները երկու շերտ են և բավական փոքր են, որպեսզի տեղավորվեն արտադրողների մեծ մասում ՝ 10 սմ x 10 սմ էժան տախտակների համար:

Արտադրությունից հետո տախտակները վերադարձնելուց ժամանակն է, որ աղյուսակում պարունակվող բոլոր բաղադրիչները և մասերի ցուցակը սոսնձեք տախտակին:

Programրագրավորում

Ամեն ինչ կպցնելուց հետո ձեզ հարկավոր կլինի ծրագրերը վերբեռնել երկու միկրոկոնտրոլերների վրա: Տախտակի տարածքը խնայելու համար ես ոչ մի USB ֆունկցիոնալություն չներառեցի, բայց թողեցի ICSP- ի և սերիական նավահանգիստների խզումը, որպեսզի դուք դեռ կարողանաք վերբեռնել և վերահսկել ծրագիրը:

  • Uploadրագիրը վերբեռնելու համար հետևեք այս ձեռնարկին ՝ Arduino տախտակը որպես ծրագրավորող օգտագործելու վերաբերյալ: Վերբեռնեք SimGpsTransmitter.ino- ն ICSP_GPS պորտին և Data_Logger.ino- ն ICSP_DL նավահանգստին (PCB- ի ICSP նավահանգիստը նույն դասավորությունն է, ինչ Arduino UNO- ի ստանդարտ տախտակներում):
  • Բոլոր ծրագրերը վերբեռնվելուց հետո կարող եք սարքը սնուցել մարտկոցի մուտքից 3.7-4.2 Վ լարման միջոցով և օգտագործել 4 ցուցիչային լույսերը `համակարգը աշխատելու համար:

    • Առաջին երկու լույսերը ՝ 5V_Ok և VBATT_OK, ցույց են տալիս, որ մարտկոցը և 5 վ ռելսերը սնվում են:
    • Երրորդ լույսը DL_OK կթարթվի յուրաքանչյուր 1 վայրկյանում ՝ նշելու համար, որ հեռաչափության գրանցումն ակտիվ է:
    • Բջջային և GPS մոդուլները միացված լինելուց և տվյալները սերվեր ուղարկվելուն պես SIM_Transmit- ի վերջին լույսը կմիանա:

Քայլ 6: Շրջափակում

Պարիսպ
Պարիսպ

Հրթիռը, որի շուրջ ես նախագծում եմ այս նախագիծը, ունի 29 մմ ներքին տրամագիծ, որպեսզի պաշտպանվի էլեկտրոնիկան և թույլ տա, որ հավաքումը տեղավորվի հրթիռի գլանաձև մարմնի մեջ, ես պատրաստեցի մի պարզ երկու մասի եռաչափ պատյան, որը ամրացված է իրարով և ունի ցուցիչի լույսերի դիտման նավահանգիստներ: Տպագրման և օրիգինալ.ipt ֆայլերը գտնվում են github ռեպոյում: Ես դա չեմ մոդելավորել, քանի որ վստահ չէի այն մարտկոցի մասին, որն այն ժամանակ կօգտագործեի, բայց ձեռքով ստեղծեցի 120 մԱ / ժ մարտկոցի փոս, որը պատուհանի ներքևի հետ համընկնում էր: Այս մարտկոցը համակարգի աշխատանքի համար տևում է 45 րոպե min 200 մԱ էներգիա

Քայլ 7: Եզրակացություն

Այս նախագիծը երկու առանձին համակարգերի բավականին անմիջական իրականացում էր, քանի որ ես պարզապես օգտագործում էի Amazon- ում հայտնաբերված առանձին մոդուլներ: համակարգի ընդհանուր ինտեգրումը մի փոքր անբավարար է, քանի որ նախագծի ընդհանուր չափը բավականին մեծ է այն բանի համար, ինչ անում է: Որոշ արտադրողների առաջարկներին նայելը, SIP- ի օգտագործումը, որը ներառում է ինչպես բջջային, այնպես էլ GPS- ը, զգալիորեն կնվազեցնի փաթեթի ընդհանուր չափը:

Ես վստահ եմ, որ թռիչքի ավելի շատ փորձարկումներից հետո ես ստիպված կլինեմ որոշ փոփոխություններ կատարել ծրագրում և վստահ կլինեմ, որ ցանկացած փոփոխությամբ կթարմացնեմ Github- ի ռեպոն:

Հուսով եմ, որ ձեզ դուր եկավ այս նախագիծը, ազատ զգալ կապվեք ինձ հետ այն հարցերի դեպքում, որոնք կարող են ունենալ:

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