Агуулгын хүснэгт:
- Алхам 1: Төслийн функциональ байдлыг төлөвлөх
- Алхам 2: Тохиргоо ба утасны диаграм
- Алхам 3: Бүрэлдэхүүн хэсгүүд болон үндсэн кодыг турших
- Алхам 4: MPU шалгалт тохируулга
- Алхам 5: Эцсийн код
Видео: Дижитал луужин ба гарчиг хайгч: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Зохиогчид:
Куллан Уилан
Эндрю Люфт
Блэйк Жонсон
Талархал:
Калифорнийн далайн академи
Эван Чан Сиу
Танилцуулга:
Энэхүү төслийн үндэс нь чиглэлийг хянах дижитал луужин юм. Энэ нь хэрэглэгчийг дижитал аппарат ашиглан холын зайн чиглэлийг дагах боломжийг олгодог. Гол хэллэг бол хойд зүгээс цагийн зүүний дагуу хэмждэг өнцөг бөгөөд үүнийг луужингаар заасан тэг градус гэж үздэг. Төхөөрөмж нь хоёр үндсэн функцтэй: эхнийх нь төхөөрөмжийн одоогийн гарчгийг дижитал дэлгэцийн лавлагаан дээр харуулах, хоёрдугаарт хэрэглэгчийн хүссэн гарчгийг оруулах чадвар бөгөөд энэ нь LED -ийн дээд хэсэгт байрлах цагираг дээр харагдах болно. луужингийн орон сууц. Дараа нь хэрэглэгч гэрэлтүүлсэн LED -тэй холбоотой төхөөрөмжийн чиглэлийг тохируулах болно. Төхөөрөмжийн чиглэл өөрчлөгдөхөд LED нь төвийн LED рүү шилжих бөгөөд энэ нь зөв гарчиг тогтсон болохыг харуулж байна.
Хангамж:
- DIYmall 6M GPS модуль
- HiLetgo MPU9250/6500 9 тэнхлэг 9 DOF 16 бит
- Adafruit NeoPixel бөгж 16
- MakerFocus 4 ширхэг 3.7V лити цэнэглэдэг батерей
- ELEGOO MEGA 2560 R3 хавтан
- Adafruit Mini Lipo w/Mini -B USB Jack - USB LiIon/LiPoly цэнэглэгч - v1
- 2.8 TFT LCD дэлгэц нь мэдрэгчтэй дэлгэцтэй, MicroSD залгууртай
Алхам 1: Төслийн функциональ байдлыг төлөвлөх
Эхний алхам бол логик болон эцсийн үйл ажиллагааны функцийг ойлгох явдал юм. Энэхүү логик диаграм нь төхөөрөмжийн гурван төлөв, хоёр мэдрэгчийн төлөвийг дүрсэлсэн болно.
Төлөв 1: Ачаалж буй муж
Ачаалах төлөв нь Arduino Mega -ийг асаахад хоёр мэдрэгчийн өгөгдлийг буцааж авах боломжийг олгодог. Төхөөрөмж нь ачааллыг дэлгэц дээр харуулах бөгөөд дэлгэц дээрх бүх тоон утгыг арилгаж, NeoPixel цагираг дээрх LED нь тойрог хэлбэрээр асах болно.
Төлөв 2: Луужингийн горим
Энэ тохиолдолд төхөөрөмж дижитал луужин шиг ажиллах болно. NeoPixel цагираг асаж, төхөөрөмжийн чиглэлийн талаар Хойд чиглэлийг зааж өгнө. Төхөөрөмжийн жинхэнэ гарчиг нь LCD дэлгэц дээр төхөөрөмжийн өргөрөг ба уртрагийн хамт гарч ирнэ. Хэрэглэгч 3 -р мужид харуулах хэрэглэгчийн гарчгийг оруулах боломжтой болно.
Төлөв 3: Толгойг хянах горим
Энэ тохиолдолд төхөөрөмж нь хэрэглэгчийг хүссэн гарчиг дээр нь байрлуулахад туслах болно. Төхөөрөмж нь одоо LCD төхөөрөмж дээр гарч буй төхөөрөмжүүд болон хэрэглэгчдийг өргөрөг, уртрагийн өгөгдлүүдийн хамт харуулах болно. NeoPixel бөгж нь хэрэглэгчдийн төхөөрөмжийн чиглэлийн талаар явж байгааг харуулахын тулд гэрэлтэх болно.
Улсын 2 ба 3 -р мужид хоёуланд нь мэдрэгчийн хоёр төлөв байдаг бөгөөд эдгээр мэдрэгчийн төлөв байдал нь төхөөрөмжийн ашиглалтын нөхцлөөс хамааран хамгийн үнэн зөв өгөгдлийг өгдөг мэдрэгчээс өгөгдлийг авах боломжийг олгодог.
Мэдрэгчийн төлөв 1: MPU
Хэрэв төхөөрөмж хөдлөхгүй байгаа бол гар утасны өгөгдлийг MPU -аас татаж авах бөгөөд энэ нь төхөөрөмж хөдлөхгүй байгаа үед хамгийн үнэн зөв мэдээлэл болно.
Мэдрэгчийн төлөв 2: GPS
Хэрэв төхөөрөмж хөдөлж байгаа бол өгөгдлийг GPS чипээс авах болно, учир нь энэ тохиолдолд хамгийн үнэн зөв мэдээлэл болно.
Төхөөрөмж нь төхөөрөмжийн өөрчлөлтийн нөхцлийг харгалзан үзэхийн тулд хүссэн үедээ эдгээрийн хооронд шилжиж болно. Төхөөрөмжид ашиглагдаж буй хоёр мэдрэгч хоёулаа өгсөн өгөгдлийн нарийвчлалд нөлөөлөх нөхцөлтэй тул энэ нь төхөөрөмжийн ажиллагаанд чухал ач холбогдолтой юм. MPU -ийн хувьд чип нь машин, метал барилгын материалаас үүдэлтэй орон нутгийн соронзон орны нөлөөнд амархан өртдөг. GPS -ийн чипийг ашигладаг бөгөөд энэ нь ижил нөлөө үзүүлэхгүй илүү нарийвчлалтай гарчиг өгөх боломжтой юм. Гэсэн хэдий ч GPS нь өргөргийн болон уртрагийн өгөгдлийн өөрчлөлтийг ашиглан гарцыг тооцоолохдоо хөдөлж байхдаа зөвхөн толгойн өгөгдлийг өгөх боломжтой. Тиймээс чипүүд нь бие биенээ нөхөж, мэдрэгчийн хоёр төлөвийг ашигласнаар төхөөрөмжийн хамгийн зөв бөгөөд найдвартай ажиллагааг хангадаг.
Алхам 2: Тохиргоо ба утасны диаграм
Энэхүү төсөл нь дээрх самбартай төстэй Arduino Mega клон хавтанг ашигладаг. Төслийн бүх бүрэлдэхүүн хэсгүүдийг энэ самбарт холбох болно. Энэ төслийн бүрэлдэхүүн хэсгүүдийг хэрхэн яаж холбох талаар нарийвчилсан диаграммыг дээр харуулав. Товчлуурууд нь нарийвчилсан хэлхээтэй байдаггүй тул тэдгээрийг олон янзаар тохируулж болно. Энэ төсөлд тэд 100K доош татах резистор болон энгийн товчлуурыг ашиглан 3 вольтын дохиог өөрийн тогтоосон зүү рүү илгээдэг.
Алхам 3: Бүрэлдэхүүн хэсгүүд болон үндсэн кодыг турших
Төсөл нь өмнө дурдсанчлан MPU болон GPS чипээс өгөгдлийг авах болно. Бүрэлдэхүүн хэсгүүдийн ажиллагааг шалгахын тулд дэлгэц, MPU, GPS, MPU -аас өгөгдлийг турших боломжийг олгодог гурван кодыг хавсаргав. Код нь чип тус бүрт тусдаа байдаг тул эцсийн кодод урьдчилан тооцоолоогүй алдаа гаргахаас айхгүйгээр аливаа асуудлыг шийдвэрлэх боломжтой тул бүрэлдэхүүн хэсгүүдийг энэ үе шатанд ажиллуулах нь чухал юм.
Шаардлагатай номын сан:
Adafruit_ILI9341_Albert.h
SPI.h
Adafruit_GFX.h
Adafruit_ILI9341.h
TinyGPS ++. H
Adafruit_NeoPixel.h
MPU9250.h
Дээрх гарчгийг хайх замаар эдгээр бүгдийг олох боломжтой. Эдгээр номын сангийн олон эх сурвалжаас авсан олон хуулбар байдаг бөгөөд олон нийтийн стандартыг дагаж мөрдөж байгаа тул би зөвхөн холбоос оруулахгүй, зөвхөн эх хувьтай нь холбож өгөх болно.
Алхам 4: MPU шалгалт тохируулга
Улсын 2, 3 -р муж дахь MPU -ээр дамжуулан гарчигийг дөрвөн квадрат болгон хуваасан. Бидний шалгалт тохируулах арга нь соронзон хэмжигчээс x ба y тэнхлэгийн дагуу хамгийн бага ба хамгийн их хэмжээг олох шаардлагатай байсан тул энэ нь зайлшгүй шаардлагатай байв. Энэ нь төхөөрөмжийг дэлхийн тэнхлэгээс өөр ямар ч чухал цахилгаан соронзон орноос ангид гурван тэнхлэгээ санамсаргүйгээр эргүүлэх замаар хийсэн юм. Дараа нь бид x ба y тэнхлэгийн дагуу хамгийн бага ба хамгийн их утгыг авч сөрөг нэг ба нэгийн хоорондох утгыг хязгаарлахын тулд масштабтай тэгшитгэлд оруулав. Дээрх зурагт BigX ба BigY нь x ба y тэнхлэгийн дагуух соронзон хэмжигдэхүүний өгөгдлийн хамгийн их утга, LittleX ба LittleY нь тус тусад нь x ба y тэнхлэгийн дагуух соронзон хэмжигчийн хамгийн бага утга юм IMU.getMagX_uT () ба IMU.getMagY_uT () нь соронзон хэмжигчээс x ба y тэнхлэгийн дагуу хүссэн үедээ татагдах утгууд бөгөөд Mx ба My нь гарчгийг тооцоолоход хэрэглэгддэг шинэ масштабтай утгууд юм.
Алхам 5: Эцсийн код
Эцсийн алхам бол эцсийн кодыг үүсгэх явдал юм. Би төслийн эцсийн кодын хуулбарыг хавсаргав. Кодыг удирдахад туслах зорилгоор тэмдэглэл оруулсан болно. Энэ хэсгийн хамгийн том бэрхшээл бол квадратуудыг зөв ажиллуулах явдал байв. Квадрантын хэрэгжилт нь бидний бодож байснаас хамаагүй илүү уйтгартай, логикгүй болсон нь батлагдсан. Бид эхлээд үндсэн арктаныг (My/Mx) хэрэгжүүлж, дараа нь радианаас градус болгон хөрвүүлэв, учир нь Arduino анхдагчаар радианаар гаргадаг. Гэсэн хэдий ч энэ цорын ганц квадрат нь 90 градусаас 180 градус хүртэл байсан бөгөөд энэ нь бидэнд сөрөг үр дүнг өгч, эцэст нь Квадрант III болжээ. Зөв шийдэлтэй хэвээр байгаа тул үүнийг шийдэх шийдэл нь үнэмлэхүй утгыг авах явдал байв. Дараа нь энэ утгыг 360 -аас хасаж 2 -р төлөвт зөв NeoPixel LED -ийг асааж, 3 -р төлөвт ижил төстэй математик үйлдлийг ашигласан бөгөөд хэрэв гарчиг нь хэрэглэгчийн оролтын гарчигаас том эсвэл бага байсан бол хоёуланг нь харж болно. дээрх код. Дээрх зургуудад Heading нь NeoPixel гэрэлтэй тохирч байгаа бөгөөд энэ нь 2 -р төлөвт төхөөрөмжийн чиглэл ба хойд зүгээс болон хэрэглэгчийн гарчгийн зөрүүгээс хамаарч асах болно. Энэ тохиолдолд 90 -ээс 180 градус нь III квадраттай тохирч байна. Аль ч тохиолдолд tft.print нь дэлгэцийг төхөөрөмжийг хойд зүгээс уншихад хүргэдэг.
Бусад гурван квадратуудын хувьд arctan (My/Mx) -ыг хэрэгжүүлснээр төхөөрөмжийг эргүүлэх үед өсөлтийн урвуу өөрчлөлтийг авчирсан, өөрөөр хэлбэл тоолох ёстой үед чиглэлийн өнцөг буурах болно. Энэ асуудлын шийдэл бол арктенгентыг арктаны хэлбэрт шилжүүлэх явдал байв (Mx/My). Энэ нь өсөлтийн урвуу байдлыг шийдсэн боловч энэ нь квадрантын үүрэг гүйцэтгэсэн төхөөрөмжийн зөв чиглэлийг өгөөгүй байна. Үүнийг засах энгийн арга бол харгалзах квадратад суурилсан шилжилтийг нэмэх явдал байв. Үүнийг дараах зургуудаас харж болно, эдгээр нь квадрант бүрийн 2, 3 -р мужуудын кодын хэсэг юм.
MPU тэгшитгэлээр тооцоолсон гарчиг нь хэрэглэгчийн гарчигаас их байвал if гэсэн эхний мэдэгдэл хийгддэг. Энэ нөхцөлд хэрэглэгчийн оролтын гарчгийг төхөөрөмжийн гарчигт нэмж, харгалзах утгыг 360 -аас хасна. Хэрэв else мэдэгдэл хийгдсэн бол хэрэглэгчийн оролтын гарчигнаас MPU гарчгийн тэгшитгэлийг хасна. Эдгээр нөхцлүүд нь зөвхөн NeoPixel -ийн нарийвчлалтай утгыг олж авахаас гадна 0-359 градусын хоорондох зөвшөөрөгдөх хязгаараас гадуур утгыг олж авахаас зайлсхийхийн тулд хэрэгжүүлсэн болно.
Зөвлөмж болгож буй:
ESP8266-01: 11 алхам ашиглан IoT түлхүүрийн оосор хайгч (зурагтай)
ESP8266-01 ашиглан IoT түлхүүрийн оосор хайгч: Та түлхүүрээ хаана хадгалж байснаа үргэлж над шиг мартдаг уу? Би түлхүүрээ цаг тухайд нь олж чадахгүй! Миний энэ зуршлаас болоод би коллежоосоо хоцорч ирсэн, хязгаарлагдмал тооны оддын дайны идээний худалдаа (сэтгэл зовсон хэвээр байна), болзоо (тэр хэзээ ч сонгож аваагүй
Дижитал диаметр хэмжигчийг хэрхэн яаж нураах вэ, дижитал диаметр нь хэрхэн ажилладаг вэ: 4 алхам
Дижитал диаметр хэмжигчийг хэрхэн яаж нураах вэ, дижитал диаметр нь хэрхэн ажилладаг вэ: Олон хүмүүс хэмжихэд диаметр хэмжигчийг хэрхэн ашиглахаа мэддэг. Энэхүү заавар нь дижитал диаметр хэмжигчийг хэрхэн яаж нураахыг зааж өгөх бөгөөд дижитал диаметр хэмжигч хэрхэн ажилладаг талаар тайлбарлах болно
Arduino болон HMC5883L соронзон хэмжигчийг ашиглан дижитал луужин: 6 алхам
Arduino болон HMC5883L соронзон хэмжигчийг ашиглан дижитал луужин: Сайн байна уу залуусаа, энэ мэдрэгч нь хойд, өмнөд, зүүн, баруун гэсэн газарзүйн байрлалыг илэрхийлж чадна, хүмүүс бид үүнийг шаардлагатай үед ч ашиглаж болно. Тиймээс. Энэ нийтлэлд Магнитометрийн мэдрэгч хэрхэн ажилладаг, микроконтройтой хэрхэн харьцах талаар ойлгохыг хичээцгээе
GY511 модулийг Arduino -тэй хэрхэн ашиглах [Дижитал луужин хийх]: 11 алхам
GY511 модулийг Arduino -тэй хэрхэн ашиглах талаар Энэхүү гарын авлагад та Arduino-тай LSM303DLHC GY-511 луужингийн модулийг ашиглан дижитал компас хийх талаар сурах болно
USB C дижитал дижитал Bluetooth тэжээлийн хангамж: 8 алхам (зурагтай)
Дижитал USB C -ээр ажилладаг Bluetooth тэжээлийн хангамж: Ойролцоох хананы залгуургүй байсан ч гэсэн та явж байхдаа ашиглах боломжтой цахилгаан хангамжийг хүсч байсан уу? Хэрэв энэ нь маш нарийвчлалтай, дижитал, компьютер болон утсаараа хянагдах боломжтой байсан бол сайхан биш гэж үү? Энэхүү зааварчилгаанд би яг хэрхэн яаж барихыг үзүүлэх болно