Orodha ya maudhui:

Dira ya Dijiti na Kitafuta Kichwa: Hatua 6
Dira ya Dijiti na Kitafuta Kichwa: Hatua 6

Video: Dira ya Dijiti na Kitafuta Kichwa: Hatua 6

Video: Dira ya Dijiti na Kitafuta Kichwa: Hatua 6
Video: НЕ УБОЮСЬ Я ЗЛА / I Will Fear no Evil 2024, Novemba
Anonim
Dira ya Dijiti na Kitafuta Kichwa
Dira ya Dijiti na Kitafuta Kichwa

Waandishi:

Cullan Whelan

Andrew Luft

Blake Johnson

Shukrani:

Chuo cha California Maritime

Evan Chang-Siu

Utangulizi:

Msingi wa mradi huu ni dira ya dijiti na ufuatiliaji wa kichwa. Hii inamwezesha mtumiaji kufuata kichwa kwa umbali mrefu kwa kutumia vifaa vya dijiti. Kwa kawaida kichwa ni pembe inayopimwa kulingana na saa kutoka kaskazini, ambayo inachukuliwa kama digrii sifuri, kama inavyoonyeshwa na dira. Kifaa kina kazi mbili kuu: ya kwanza inaonyesha kichwa cha sasa cha kifaa kwenye rejeleo la onyesho la dijiti, na ya pili ni uwezo wa kuingiza kichwa kilichoombwa na mtumiaji, ambacho kitaonyeshwa kwenye pete ya LED juu ya nyumba ya dira. Mtumiaji angerekebisha mwelekeo wa kifaa unaohusiana na mwangaza wa LED. Wakati mwelekeo wa kifaa unabadilishwa, LED itasafiri kwenda katikati ya LED, na hivyo kuonyesha kuwa kichwa sahihi kimeanzishwa.

Ugavi:

- Moduli ya GPS ya DIYmall 6M

- HiLetgo MPU9250 / 6500 9-Axis 9 DOF 16 Bit

- Adafruit NeoPixel Gonga 16

- MakerFocus 4pcs 3.7V Lithiamu inayoweza kubadilishwa Betri

- Bodi ya ELEGOO MEGA 2560 R3

- Adafruit Mini Lipo w / Mini-B USB Jack - USB LiIon / chaja ya LiPoly - v1

- 2.8 LCD ya TFT na Bodi ya Kuzuka kwa skrini ya kugusa w / Tundu la MicroSD

Hatua ya 1: Kubuni Utendakazi wa Mradi

Kubuni Utendakazi wa Mradi
Kubuni Utendakazi wa Mradi

Hatua ya kwanza ni kuelewa mantiki na utendaji wa mwisho wa utendaji. Mchoro huu wa mantiki unaonyesha majimbo matatu ya vifaa na hali mbili za sensa.

Hali 1: Inapakia Jimbo

Hali ya kupakia hutumiwa kuruhusu Arduino Mega kupata data kutoka kwa sensorer mbili wakati wa kuanza. Kifaa kitaonyesha upakiaji kwenye skrini, futa nambari zote kwenye skrini, na taa za LED kwenye pete ya NeoPixel zitawaka kwenye duara.

Hali 2: Njia ya Dira

Katika hali hii kifaa kitatenda kama dira ya dijiti. Pete ya NeoPixel itawaka ili kuonyesha mwelekeo wa Kaskazini kwa heshima na mwelekeo wa kifaa. Kichwa cha kweli cha kifaa pia kitaonyeshwa kwenye skrini ya LCD pamoja na Latitudo na Longitude ya kifaa. Pia itakuwa ndani ya jimbo hili kwamba mtumiaji ataweza kuingia kichwa cha mtumiaji kuonyeshwa katika Jimbo la 3.

Hali 3: Njia ya Kufuatilia Kichwa

Katika hali hii kifaa sasa kitasaidia mtumiaji kuanzishwa kwenye kichwa anachotaka. Kifaa sasa kitaonyesha vifaa vinavyoongoza na watumiaji wanaelekea kwenye skrini ya LCD pamoja na data ya latitudo na longitudo. Pete ya NeoPixel sasa itawaka ili kuonyesha watumiaji wanaoongoza kwa kuzingatia mwelekeo wa vifaa.

Ndani ya Jimbo 2 na Jimbo la 3 kuna hali mbili za sensorer majimbo haya ya sensa huruhusu kifaa kuvuta data kutoka kwa sensorer ambayo hutoa data sahihi zaidi kulingana na hali ya utendaji wa kifaa.

Hali ya sensorer 1: MPU

Ikiwa kifaa hakisogei data inayoongoza itatolewa kutoka kwa MPU kwani ndio data sahihi zaidi wakati kifaa hakijisogei.

Hali ya sensorer 2: GPS

Ikiwa kifaa kinasonga data inayoongoza itavutwa kutoka kwa Chip ya GPS kwani ndio data sahihi zaidi katika hali hii.

Kifaa kinaweza kubadilisha kati ya hizi kuwa hali za sensorer wakati wowote ili kuzingatia hali ya utumiaji wa kitengo kinachobadilika. Hii ni muhimu kwa utendaji wa kifaa kwani sensorer zote mbili zinazotumiwa kwenye kifaa zina hali ambazo zinaathiri usahihi wa data wanazotoa. Katika kesi ya MPU chip inaweza kuathiriwa kwa urahisi na uwanja wa kienyeji unaosababishwa na magari na vifaa vya ujenzi wa chuma kwenye majengo. Kwa hivyo chip ya GPS inatumiwa ambayo inaweza kutoa kichwa sahihi zaidi ambacho hakijafanywa na ushawishi sawa. Walakini, GPS inaweza tu kutoa data ya kichwa wakati inahamia kama inavyohesabu kuongoza kutumia mabadiliko katika data ya latitudo na longitudo. Kwa hivyo chips zinakamilishana na kwa kutumia hali mbili za sensorer hutoa utendaji sahihi zaidi na wa kuaminika wa kifaa.

Hatua ya 2: Sanidi na Mchoro wa Waya

Sanidi na Mchoro wa Waya
Sanidi na Mchoro wa Waya
Sanidi na Mchoro wa Waya
Sanidi na Mchoro wa Waya
Sanidi na Mchoro wa Waya
Sanidi na Mchoro wa Waya

Mradi hutumia na bodi ya Clone ya Arduino Mega sawa na bodi hapo juu. Vipengele vyote katika mradi vitaunganishwa na bodi hii. Hapo juu kuna michoro ya kina ya jinsi ya kuweka waya kwenye vifaa vya mradi huu. Vifungo havina mzunguko wa kina kwani hizi zinaweza kusanidiwa kwa njia nyingi. Katika mradi huu hutumia kontena la kubomoa 100K na kitufe rahisi kutuma ishara ya volt 3 kwa pini yake iliyowekwa.

Hatua ya 3: Vipengele vya Upimaji na Msimbo wa Msingi

Mradi utavuta data kutoka kwa chip ya MPU na GPS kama ilivyoelezewa hapo awali. Imeambatishwa ni nambari tatu zinazowezesha upimaji wa data kutoka kwa MPU, GPS, na MPU na skrini kudhibitisha utendaji wa sehemu hizo. Ni muhimu kupata vifaa katika hatua hii kwani nambari iko tofauti kwa kila chip na maswala yoyote yanaweza kushughulikiwa bila hofu ya kusababisha makosa yasiyotarajiwa katika nambari ya mwisho.

Maktaba zinazohitajika:

Adafruit_ILI9341_Albert.h

SPI.h

Matunda_GFX.h

Adafruit_ILI9341

Vidogo ++ h. H

Adafruit_NeoPixel.h

MPU9250.h

Zote hizi zinaweza kupatikana kwa kutafuta majina hapo juu. Sitatuma viungo kwani kuna nakala nyingi za maktaba hizi kutoka kwa vyanzo vingi na zinazingatia kiwango cha jamii cha kuunganisha tu kwa asili nitakuruhusu utafute hizi mwenyewe.

Hatua ya 4: Upimaji wa MPU

Upimaji wa MPU
Upimaji wa MPU

Kichwa kilichopatikana kupitia MPU katika Jimbo la 2 na Jimbo la 3 kiligawanywa katika mirobo minne. Hii ilikuwa muhimu kwa sababu njia yetu ya upimaji ilihitaji kupata kiwango cha chini na cha juu kutoka kwa sumaku kando ya shoka zake za x na y. Hii ilifanywa kwa kupokezana kifaa bila mpangilio juu ya shoka zake tatu, huru kutoka kwa uwanja wowote muhimu wa umeme isipokuwa ile ya Dunia. Kisha tukachukua maadili ya kiwango cha chini na cha juu kando ya mhimili wa x na y na tukaunganisha kwenye hesabu ya kuongeza ili kuzuia ukubwa kati ya maadili ya hasi moja na moja. Katika takwimu hapo juu, BigX na BigY ni maadili ya juu ya data ya magnetometer kando ya x na y-axis mtawaliwa, LittleX na LittleY ndio maadili ya chini ya data ya magnetometer kando ya x na y-axis mtawaliwa, IMU.getMagX_uT () na IMU..getMagY_uT () ni maadili yanayotolewa kutoka kwa sumaku ya sumaku wakati wowote kando ya x na y-axis mtawaliwa, na Mx na Yangu ndio maadili mapya yaliyopimwa kutumika kukokotoa kichwa.

Hatua ya 5: Msimbo wa Mwisho

Nambari ya Mwisho
Nambari ya Mwisho
Nambari ya Mwisho
Nambari ya Mwisho
Nambari ya Mwisho
Nambari ya Mwisho
Nambari ya Mwisho
Nambari ya Mwisho

Hatua ya mwisho ni kuunda nambari ya mwisho. Nimeambatanisha nakala ya nambari ya mwisho ya miradi. Ndani ya maelezo yamefanywa kusaidia kusafiri kwa nambari. Changamoto kubwa ya sehemu hii ilikuwa kupata quadrants kufanya kazi kwa usahihi. Utekelezaji wa quadrants umeonekana kuwa wa kuchosha zaidi na wenye mantiki kuliko tunavyoweza kutarajia. Hapo awali tulitekeleza arctan ya msingi (My / Mx) na kisha tukabadilishwa kutoka radian hadi digrii, kwani matokeo ya Arduino katika radians kwa chaguo-msingi. Walakini, quadrant pekee ambayo hii ilifanya kazi ilikuwa kutoka digrii 90 hadi digrii 180, ambayo ilitupa pato hasi na kuishia kuwa Quadrant III. Suluhisho la hii lilikuwa kuchukua thamani kamili, kwani bado iliongezeka kwa usahihi. Thamani hii iliondolewa kutoka 360 ili kuwasha NeoPixel LED sahihi katika jimbo la 2 na operesheni sawa ya hesabu ilitumika katika jimbo la 3 kulingana na ikiwa kichwa kilikuwa kikubwa au kidogo kuliko kichwa cha pembejeo cha mtumiaji, ambazo zote zinaweza kuonekana kwenye nambari hapo juu. Katika takwimu zilizo hapo juu, Kichwa kinalingana na taa ya NeoPixel ambayo itawashwa kulingana na tofauti kati ya kichwa cha kifaa na kupotoka kutoka kaskazini katika kesi ya jimbo la 2, na kutoka kwa kichwa cha mtumiaji. Katika kesi hii, digrii 90 hadi 180 inalingana na Quadrant III. Katika visa vyote viwili, tft.print husababisha skrini kusoma kifaa kinachoelekea kaskazini.

Kwa quadrants zingine tatu, utekelezaji wa arctan (My / Mx) ulisababisha ubadilishaji wa nyongeza wakati kifaa kilizungushwa, kwa mfano, pembe ya kichwa ingehesabu wakati ilipaswa kuhesabiwa na kinyume chake. Suluhisho la shida hii ilikuwa kupindua arctangent kwa aina ya arctan (Mx / My). Wakati hii ilitatua ubadilishaji wa nyongeza, haikutoa kichwa sahihi cha kifaa, ambayo ndio mahali ambapo quadrants ilianza. Kurekebisha rahisi kwa hii ilikuwa kuongeza mabadiliko kulingana na quadrant inayofanana. Hii inaweza kuonekana katika takwimu zifuatazo, ambazo ni vipande vya nambari kutoka Amerika 2 na 3 ya kila quadrant.

Taarifa ya kwanza ikiwa inafanywa ikiwa kichwa kilichohesabiwa na equation ya MPU ni kubwa kuliko kichwa cha mtumiaji. Chini ya hali hii kichwa cha pembejeo cha mtumiaji kinaongezwa kwenye kichwa cha kifaa na thamani inayolingana hutolewa kutoka 360. Ikiwa taarifa nyingine inafanywa, equation ya kichwa cha MPU hutolewa kutoka kwa kichwa cha pembejeo cha mtumiaji. Masharti haya yalitekelezwa ili sio tu kupata thamani sahihi ya NeoPixel, lakini ili kuepuka kupata thamani nje ya anuwai inayokubalika, ambayo ni kutoka digrii 0 hadi 359.

Ilipendekeza: