Агуулгын хүснэгт:

Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам
Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам

Видео: Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам

Видео: Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам
Видео: 50 необычных, но невероятных автомобилей с 2002 по 2022 год 2024, Арванхоёрдугаар сар
Anonim
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт)

Сайн байна уу!

Энэхүү зааварчилгаа нь миний мотоциклийн дуулга дээр суурилуулах зориулалттай HUD (Heads-Up Display) платформыг хэрхэн зохион бүтээсэн тухай түүх юм. Үүнийг "газрын зураг" уралдааны хүрээнд бичсэн болно. Харамсалтай нь, би энэхүү төслийг уралдааны товлосон хугацаанд бүрэн дуусгаж чадаагүй, гэхдээ би өөрийн ахиц дэвшилийг хуваалцахаас гадна хийсэн бүх туршилт, алдааг баримтжуулахыг хүсч байсан.

Энэхүү төслийн санаа анх надад хэдэн жилийн өмнө, мотоциклтой болоход төрсөн бөгөөд унаж явахдаа илүү тааламжтай байхын тулд ямар хэрэгсэл худалдаж авах ёстойгоо судалж эхэлсэн. Тухайн үед унаж байхдаа GPS -ийн анхан шатны хөтөчийг олж авах хамгийн сайн арга бол ухаалаг гар утсаа дугуйныхаа бариулд холбох явдал байсан юм. Ийм мэдээллийг яаралтай авах илүү сайн арга байж магадгүй гэж би хувьдаа боддог.

Энэ бол надад тохиолдсон зүйл юм: анхааруулах дэлгэц нь жолоодлогыг жолоодож, утасныхаа батерейг хоослохгүй байж болох юм.

Цаг хугацаа өнгөрөх тусам энэ санаа миний оюун ухаанд төлөвшсөн бөгөөд миний нүдэн дээр үргэлж HUD байх нь энгийн залуурдахаас илүү олон зүйлийг ашиглах боломжийг олгодог гэж би боддог. Тийм ч учраас миний төлөвлөгөө бол платформыг олон нийтэд нээлттэй, модульчлагдсан болгохын тулд хүссэн хүн бүр өөрт хэрэгтэй мэдээллийг HUD дээр харуулах модулийг бий болгож чадна.

Хэдийгээр энэ даалгаврыг гүйцэтгэдэг худалдаанд байгаа бүтээгдэхүүнүүд байдаг ч миний платформ шиг модульчлагдсан бүтээгдэхүүн байдаггүй бөгөөд тэдгээр нь бас арай үнэтэй байдаг. Ямар ч байсан энэ төсөлд тавтай морилно уу.

Одоогийн байдлаар юу ажиллаж байна

Өмнө дурьдсанчлан, энэ төсөл одоог хүртэл хөгжлийн шатандаа байгаа бөгөөд одоогоор энэ ажил хийгдэж байна.

- Ухаалаг утас ба ESP32 дээр суурилсан самбар хоорондох холбоо (утас сэрүүн)

- Оптик дизайн хийгдсэн (урт хугацаанд бага зэрэг тохируулга хийх шаардлагатай байж магадгүй)

- Mapbox навигацийн SDK ашиглан Android навигацийн програм:

- Газрын зураг дээрх хэрэглэгчийн байр суурь, түүнээс хүрэх газраа хүрэх замыг тооцоолох, харуулах чадвартай

- Bluetooth төхөөрөмжид холбогдох боломжтой (төхөөрөмжийн MAC хаяг одоогоор хатуу кодлогдсон байна)

- Бодит цагийн навигаци хийх чадвартай, үүнд удахгүй болох маневрын мэдээллийг цуваа Bluetooth -ээр дамжуулан илгээх (одоогоор зөвхөн эргэлтийг дэмждэг)

Ажил хэрэгтэй юу

Энэхүү жагсаалт нь HUD -ийн зориулалтаар ашиглахад зайлшгүй шаардлагатай боловч одоогоор хэрэгжүүлэхэд бэлэн болоогүй зүйлсийг агуулсан болно.

- Ерөнхий загвар (Дуулгын бэхэлгээ, тусгалын өнцгийг тохируулах механизм,..)

- Андройд апп:

- Маршрутаас гадуур илрүүлэх, залруулах ажлыг хэрэгжүүлэх

- Хэрэглэгчийн очих хаягаа оруулах чадвар

- Замын цэгүүд?

- Эргономик / гоо зүй

Хангамж:

Үндсэн зүйлүүд

- esp32 дээр суурилсан хөгжлийн самбар

- Сүүлийн үеийн Андройд ухаалаг гар утас (Bluetooth идэвхжсэн)

- SSD1306 эсвэл бусад идэвхжүүлсэн 96 "OLED дэлгэц (минийх 128x64 пиксел байсан," Тархи: Микроконтроллер ба Дэлгэц "хэсгийг үзнэ үү)

- Цацруулагч (ямар ч нийлэг/шил/плексигласс хийх болно)

- Френель линз (миний урт 13 см орчим байв. "Линзний сонголт" хэсгийг үзнэ үү)

Багаж хэрэгсэл

- Гагнуурын төмөр

- Талхны самбар

- Хэд хэдэн холбогч кабель

- 3d принтер / 3d хэвлэх үйлчилгээ

Алхам 1: Энэ бүхэн хэрхэн ажилладаг вэ: Дизайн сонголтыг тайлбарласан болно

Энэ бүхэн хэрхэн ажилладаг вэ: Дизайн сонголтыг тайлбарласан болно
Энэ бүхэн хэрхэн ажилладаг вэ: Дизайн сонголтыг тайлбарласан болно
Энэ бүхэн хэрхэн ажилладаг вэ: Дизайн сонголтыг тайлбарласан болно
Энэ бүхэн хэрхэн ажилладаг вэ: Дизайн сонголтыг тайлбарласан болно
Энэ бүхэн хэрхэн ажилладаг вэ: Дизайн сонголтыг тайлбарласан болно
Энэ бүхэн хэрхэн ажилладаг вэ: Дизайн сонголтыг тайлбарласан болно

Heads Up Display -ийн үндсэн санаа бол хэн нэгний алсын хараанаас өмнө дүрсийг харуулах явдал бөгөөд ингэснээр тэд юу хийж байгаагаасаа холдох шаардлагагүй (онгоц жолоодох, мотоцикл жолоодох, бидний хийх зүйл болно) жишээ тохиолдол).

Оптик

Техникийн хувьд үүнийг хэрэглэгчийн нүдний өмнө шууд дэлгэц тавьснаар хүрч болно. Гэсэн хэдий ч дэлгэц нь тунгалаг биш тул хэрэглэгчийн алсын хараанд саад болно. Дараа нь та дэлгэцийг цацруулагч гадаргуугийн өмнө байрлуулж болох бөгөөд энэ нь дэлгэцийн агуулгыг толин тусгал болгож, хэрэглэгч түүний өмнө байгаа зүйлийг харах боломжтой болно.

Гэсэн хэдий ч энэ хандлага нь маш том дутагдалтай байдаг: бодит дэлгэц нь тухайн хэрэглэгчийн анхаарах ёстой зүйлээс илүүтэйгээр хэрэглэгчийн нүдэнд ойрхон байдаг (жишээлбэл, түүний өмнөх зам). Энэ нь цацруулагч гадаргуу дээр байгаа зүйлийг уншихын тулд хэрэглэгчийн нүд дэлгэцийн зайнаас (20 см гэж бодъё) дасан зохицох шаардлагатай бөгөөд дараа нь зам дээр анхаарлаа төвлөрүүлэхийн тулд дахин дасан зохицох шаардлагатай болно гэсэн үг юм. (~ 2/5 метр). Энэ бүх үйл ажиллагаанд шаардагдах цаг бол зам харахад зарцуулах ёстой үнэ цэнэтэй цаг бөгөөд ойр ойрхон дасан зохицох нь хэдхэн минутын дараа хэрэглэгчдэд эвгүй санагдах болно.

Тиймээс л би дэлгэц болон тусгалын хооронд линз нэмж оруулахаар шийдсэн юм. Энэхүү линзийг анхааралтай сонговол дэлгэцийн виртуал дүрсийг бүтээх боломжийг олгох ёстой (дээрх схемийг үзнэ үү), энэ нь хэрэглэгчийн нүднээс яг хол байгаа мэт харагдах бөгөөд ингэснээр илүү хурдан дасан зохицох шаардлагагүй болно. огт байхгүй, төгс хувилбар дээр). Энэхүү загвар нь хэрэглэгч тусгагчийг хурдан харах, шаардлагатай мэдээллээ авах, тэр даруй зам руу эргэж харах боломжийг олгодог.

Ухаалаг гар утасны үүрэг

Зөвхөн ESP32 дээр бүхэл бүтэн навигацийн програмыг туршиж хэрэгжүүлэх нь бодит бус байсан тул би үүнийг зохицуулах андройд апп хийхээр шийдсэн. Дараа нь програм нь ESP32 -д хэрэглэгч хүрэх ёстой газартаа хүрэхийн тулд юу хийх ёстойг хэлэх ёстой бөгөөд ESP32 нь энэ мэдээллийг HUD -т дамжуулдаг ("Модуль хэрхэн ажилладаг" зургийг үзнэ үү).

Алхам 2: эд анги - тархи: микроконтроллер ба дэлгэц

Эд анги - тархи: микроконтроллер ба дэлгэц
Эд анги - тархи: микроконтроллер ба дэлгэц
Эд анги - тархи: микроконтроллер ба дэлгэц
Эд анги - тархи: микроконтроллер ба дэлгэц

Дээр дурдсанчлан, би өөрийн модулийн навигацийн мэдээллийг харуулахаар төлөвлөж байсан боловч бодит байршил, хянах, бодит цагийн навигацийг тооцоолоогүй байна. Хэрэглэгчийн утас нь модультай холбогдож, мэдээллийг HUD дээр харуулахаар илгээдэг.

Хэрэглэгчийн утас болон модулийн хоорондын холбоог хөнгөвчлөхийн тулд би энэ төслийн ESP32 дээр суурилсан самбар ашиглахаар шийдсэн. Энэхүү сонголт нь Bluetooth-ийн нэгдсэн функцтэй, мөн бусад хэд хэдэн сонирхолтой үзүүлэлтүүдтэй (дэгдэмхий бус хадгалалт, хоёр цөмт процессор, OLED дэлгэцийг I2C-ээр ажиллуулахад хангалттай хэмжээний RAM) тусгайлсан модультай холбоотой юм. Миний анхаарч үзсэн ESP32 -ийн эргэн тойронд ПХБ -ийг зохион бүтээх нь харьцангуй энгийн юм. Би ESP32 -ийн схемийг ашиглах, зохион бүтээх чиглэлээр мэргэжлийн туршлагатай болсон нь миний сонголтод нөлөөлсөн нь дамжиггүй.

Дэлгэцийн сонголт нь үндсэндээ олж авсан зүйлээс шалтгаалж, би ашиглахад хангалттай гэрэл гэгээтэй байхын зэрэгцээ аль болох жижиг хэмжээтэй байх болно. Дэлгэцийн пикселийн тоо надад тийм ч их санаа зовдоггүй байсан, учир нь миний зорилго бол маш энгийн бөгөөд энгийн интерфэйстэй байх явдал юм.

Дэлгэцийн драйверыг дүрс толин тусгал хийх боломжтой номын сан дэмжиж байх ёстой гэдгийг тэмдэглэх нь зүйтэй. Учир нь харуулсан дүрс нь линзээр дамжин гэрэл тусгагч дээр гарч ирэхэд эргүүлэгддэг бөгөөд дэлгэц дээр гарч буй зүйлийг гараар буцаах шаардлагагүй нь барилгачдын хувьд бидний нуруун дээрээс асар их ачаа болдог.

Алхам 3: Эд анги - Оптик: буулт хийх

Эд анги - Оптик: буулт хийх
Эд анги - Оптик: буулт хийх
Эд анги - Оптик: буулт хийх
Эд анги - Оптик: буулт хийх
Эд анги - Оптик: буулт хийх
Эд анги - Оптик: буулт хийх

Энэ төслийг эхлүүлэхдээ юу хайж байгаагаа ч мэдэхгүй байсан тул энэ төслийн оптикийн хувьд ойртоход нэлээд хэцүү байсан. Бага зэрэг судалсны дараа би юу хийхийг хүсч байгаагаа OLED дэлгэцийнхээ "виртуал дүрсийг" бүтээхийг хүссэн бөгөөд энэ нь нүднээсээ хамаагүй хол байгаа юм шиг харагдаж байгааг ойлгосон. Энэхүү виртуал дүрсийг бүтээх хамгийн тохиромжтой зай нь жолоочийн урд 2-5 метр орчим байх бөгөөд энэ нь машин жолоодохдоо анхаарлаа төвлөрүүлж буй объектууд (бусад машинууд, зам дээрх мөргөлдөөн гэх мэт) хүртэлх зай юм шиг санагддаг.).

Зорилгодоо хүрэхийн тулд би Fresnel линз ашиглахаар шийдсэн, учир нь эдгээр нь нэлээд том, хямдхан бөгөөд миний төсөлд хангалттай сайн фокусын зайг санал болгож байгаа юм шиг санагдсан бөгөөд тэдгээрийг энгийн хайчаар хайчилж болно (энэ нь тийм биш юм) илүү боловсронгуй дугуй хэлбэртэй шилэн линз). Френелийн линз нь "халаасны томруулагч" эсвэл "унших карт томруулдаг" гэх мэт нэрийг олж болно, учир нь тэдгээр нь хараа муутай хүмүүст уншихад маш тохиромжтой байдаг.

Үндсэндээ энд байгаа заль мэх нь дараахь зүйлсийн хооронд зөв буулт хийх явдал байв.

- Боломжит виртуал зургийн зайтай байх (өөрөөр хэлбэл HUD нь хэрэглэгчдэд хэр хол байх шиг байна, эсвэл HUD дээр байгаа зүйлийг харахын тулд хэрэглэгч нүдээ хэрхэн тохируулах шаардлагатай болно)

- Дэлгэц дээрх текстийг линзээр хэт томруулж болохгүй (энэ нь томруулдаг)

- OLED дэлгэц ба линз хооронд боломжийн зайтай байх нь маш том модульд хүргэж болзошгүй юм

Би амазон дээр хэдэн өөр линз захиалж, фокусын уртыг 13 см орчим сонгохоосоо өмнө тус тусын фокусын уртыг тодорхойлсон. 9 см-ийн OLED-линзний зайтай энэ F. уртыг надад тусгагч дээрээ сэтгэл хангалуун дүр төрхийг харуулав (дээрх сүүлийн хэдэн зургийг үзнэ үү).

Миний зурган дээрээс харж байгаачлан, дэлгэц дээр гарч буй текст дээр зөв анхаарлаа төвлөрүүлэхийн тулд эдгээр зургуудыг ашигладаг камер нь алс холын объект дээр анхаарлаа төвлөрүүлж байгаа мэт тохируулах ёстой бөгөөд ингэснээр тусгагчтай ижил хавтгай дээр байгаа бүх зүйл бүдэг харагдаж байна.. Энэ бол бидний HUD -д яг хэрэгтэй зүйл юм.

Та линз эзэмшигчийн 3d файлуудыг эндээс олж болно.

Алхам 4: Эд анги - бүгдийг нь хадгалах сав

Эд анги - бүгдийг нь хадгалах сав
Эд анги - бүгдийг нь хадгалах сав
Эд анги - бүгдийг нь хадгалах сав
Эд анги - бүгдийг нь хадгалах сав

Энэхүү зааварчилгааны материалыг бичиж байхдаа толгойн дэлгэцийн хэсэг бүрийг багтаах жинхэнэ контейнер нь тийм ч сайн зохион бүтээгдээгүй байна. Гэсэн хэдий ч би түүний ерөнхий хэлбэр, зарим асуудалд хэрхэн хандах талаар хэдэн ойлголттой байдаг. Энэ бол одоо хүртэл хийгдэж байгаа ажил юм.

Алхам 5: Манай модульд зориулсан протокол үүсгэх

Утаснаас навигацийн зааврыг хөгжүүлэлтийн самбар руу илгээхийн тулд би өөрийн харилцааны протоколыг гаргаж ирэх ёстой байсан бөгөөд энэ нь шаардлагатай өгөгдлийг утаснаас хялбархан илгээх боломжийг олгохын зэрэгцээ хүлээн авсны дараа боловсруулалтыг хөнгөвчлөх болно.

Энэхүү зааварчилгааны материалыг бичих үед модулийг ашиглахын тулд утсаар дамжуулах шаардлагатай мэдээлэл нь:

- Удахгүй болох маневрын төрөл (энгийн эргэлт, тойрог зам, өөр зам руу нийлэх, …)

- Удахгүй болох маневр хийх нарийн заавар (маневрын төрлөөс хамаарна: эргэхийн тулд баруун/зүүн; тойрог замаар гарах гарц, …)

- Удахгүй болох маневраас өмнө үлдсэн зай (одоогоор метрээр)

Би энэ өгөгдлийг дараах хүрээ бүтцийг ашиглан зохион байгуулахаар шийдсэн.

: төрөл заавар, зай;

Сайхан шийдэл биш боловч энэ нь протоколын талбар бүрийг хялбархан ялгах, ялгах боломжийг олгодог бөгөөд энэ нь ESP32 талын кодчиллыг хөнгөвчилсөн юм.

Ирээдүйн онцлог шинж чанаруудын хувьд бусад мэдээллийг энэ протоколд оруулах шаардлагатай байж магадгүй гэдгийг санах нь чухал юм (яг өдөр, цаг, хэрэглэгчийн утсан дээр тоглож буй хөгжим гэх мэт), үүнийг ашиглахад хялбар болно. одоо байгаа шиг логик бий болгох.

Алхам 6: Код: ESP32 тал

Код: ESP32 тал
Код: ESP32 тал
Код: ESP32 тал
Код: ESP32 тал

ESP32 код одоогоор маш энгийн. Энэ нь U8g2lib номын санг ашигладаг бөгөөд энэ нь OLED дэлгэцийг хялбар удирдах боломжийг олгодог (харуулсан зургийг толин тусгал хийх боломжийг олгодог).

Үндсэндээ ESP32 -ийн хийдэг бүх зүйл бол програмыг илгээж, задлан шинжилж, өгөгдөл дээр үндэслэн энэ өгөгдөл эсвэл зургийг харуулах үед Bluetooth -ээр дамжуулан цуваа өгөгдлийг хүлээн авах явдал юм (өөрөөр хэлбэл "зүүн/баруун тийш эргэх" гэсэн өгүүлбэрийн оронд сум харуулах). Энд код байна:

/*Цуваа блютүүт ашиглан андроид програмаас HUD -ийг хянах програм*/#"BluetoothSerial.h" оруулах // Цуваа Bluetooth -ийн толгой файлыг Arduino -д анхдагчаар оруулах болно#include #include #ifdef U8X8_HAVE_HW_SPI#include#endif# ifdef U8X8_HAVE_HW_I2C #include #endif // OLED номын сан бүтээгчийг дэлгэцийнхээ дагуу өөрчлөх шаардлагатай // Мужийн машин илрүүлсэн_ талбайн утгууд + хувьсагч#маневрыг тодорхойлох Талбар 1#зааврыг тодорхойлох Талбар 2#зайг тодорхойлох Талбар 3#тодорхойлох endOfFrame 4int илрүүлсэн_ талбар = endOfFrame; BluetoothSerial serialBT; // Bluetoothchar -ийн объект ирж буй_чар; char маневр [10]; char заавар [10]; char зай [10]; char tempManeuver [10]; char tempInstructions [10]; char tempDistance [10]; int nbr_char_maneuver = 0; int nbr_char_instructions = 0; int nbr_char_distance = 0; boolean fullsentence = false; void setup () {Serial.begin (9600); // Цуваа дэлгэцийг 9600 bauds -д эхлүүлэх u8g2.begin (); // OLED хяналтыг эхлүүлэх serialBT.begin ("ESP32_BT"); // Bluetooth дохионы саатлын нэр (20); Serial.println ("Bluetooth төхөөрөмжийг хослуулахад бэлэн байна");} void loop () {if (serialBT.available () &&! Fullsentence) // Bluetooth цувралаар хүлээн авсан тэмдэгтүүд {incoming_char = serialBT.read (); Serial.print ("Хүлээн авсан:"); Serial.println (ирж буй_чар); } шилжүүлэгч (илрүүлсэн_ талбар) {хэргийн маневрField: Serial.println ("Илрүүлсэн талбар: маневр"); if (incoming_char == '.') // Дараагийн талбарыг илрүүлсэн {илрүүлсэн_филд = зааварField; } өөр {// Маневр төрлийн мэдээллийн массивын маневрыг бөглөнө үү [nbr_char_maneuver] = incoming_char; nbr_char_maneuver ++; } завсарлага; хэргийн заавар Талбар: Serial.println ("Илрүүлсэн талбар: заавар"); if (incoming_char == ',') // Дараагийн талбар илэрсэн {илрүүлсэн_ тал = = зайField; } else {// Зааварчилгааны мэдээллийн массивын зааврыг бөглөнө үү [nbr_char_instructions] = incoming_char; nbr_char_instructions ++; } завсарлага; case distanceField: Serial.println ("Илрүүлсэн талбар: зай"); if (incoming_char == ';') // Хүрээний төгсгөл илэрсэн {илрүүлсэн_ талбар = endOfFrame; Serial.print ("маневр:"); Serial.println (маневр); Serial.print ("заавар:"); Serial.println (заавар); Serial.print ("зай:"); Serial.println (зай); fullsentence = үнэн; update_Display (); // Бүтэн хүрээ хүлээн авсан, түүнийг задлан шинжилж буй өгөгдлийг харуулна} өөр {// Зайн мэдээллийн массивын зайг бөглөнө үү [nbr_char_distance] = ирж буй_чар; nbr_char_distance ++; } завсарлага; case endOfFrame: if (incoming_char == ':') detect_field = manevrField; // Шинэ хүрээ илэрсэн завсарлага; анхдагч: // Юу ч битгий таслаарай; } delay (20);} void update_Display () {// Боломжит зөрчилдөөнөөс зайлсхийхийн тулд char массив бүрийг кэшлээрэй memcpy (tempManeuver, manevr, nbr_char_maneuver); memcpy (tempInstructions, заавар, nbr_char_instructions); memcpy (tempDistance, зай, nbr_char_distance); parseCache (); // char массивыг задлан шинжлэх ба боловсруулах fullsentence = false; // Өгүүлбэр боловсруулагдсан, дараагийнх нь бэлэн боллоо} void parseCache () {u8g2.clearBuffer (); // дотоод санах ойг цэвэрлэх u8g2.setFont (u8g2_font_ncenB10_tr); // тохирох фонтыг сонгох // char массивууд -> substring () функцийг ашиглахын тулд заавал мөр String maneuverString = tempManeuver; String заавар String = tempInstructions; // Энд протокол хэрэгжүүлж байна. Одоогоор зөвхөн эргэлтийг дэмжиж байна. if (maneuverString.substring (0, 4) == "эргэх") {// Serial.print ("TURN DETECTED") маневрын төрөл байгаа эсэхийг шалгах; if (зааварString.substring (0, 5) == "баруун") {// Тодорхой зааврыг шалгаж, үүний дагуу харуулах u8g2.drawStr (5, 15, "-"); } else if (зааварString.substring (0, 4) == "зүүн") {// Тодорхой зааврыг шалгаж, зохих ёсоор харуулах u8g2.drawStr (5, 15, "<---"); } өөр u8g2.drawStr (5, 15, "Алдаа."); // Буруу зааврын талбар}/ * Бусад маневрын төрлийг хэрэгжүүлэх (тойрог зам гэх мэт) * else if (tempManeuver == "rdbt") { * *] */ u8g2.drawStr (5, 30, tempDistance); // Үлдсэн зайг харуулах u8g2.sendBuffer (); // дотоод санах ойг дэлгэц рүү шилжүүлэх // Дараагийн уншихаас өмнө бүх char массивуудыг дахин тохируулах (маневр, 0, 10); memset (заавар, 0, 10); санах ой (зай, 0, 10); memset (tempManeuver, 0, 10); memset (tempInstructions, 0, 10); memset (tempDistance, 0, 10); // Массив дахь элементүүдийн тоог дахин тохируулах nbr_char_distance = 0; nbr_char_instructions = 0; nbr_char_maneuver = 0;}

Алхам 7: Код: Андройд тал

Код: Андройд тал
Код: Андройд тал
Код: Андройд тал
Код: Андройд тал
Код: Андройд тал
Код: Андройд тал

Ухаалаг гар утасны аппликейшны хувьд би навигацийн газрын зургийг эхнээс нь бүтээхэд маш их хэрэгтэй боломжуудыг санал болгодог тул Mapbox -ийн навигацийн SDK -ийг ашиглахаар шийдсэн. Энэ нь олон ашигтай сонсогчдыг ашиглах боломжийг олгодог бөгөөд энэ нь энэ модулийг ажиллуулахад тусалдаг. Би бас harry1453-ийн android-bluetooth-серийн номын санг андройдод ашигласан бөгөөд энэ нь Bluetooth цуваа холболтыг нэгтгэхэд илүү хялбар болгосон.

Хэрэв та энэ програмыг гэртээ бүтээхийг хүсч байгаа бол Mapbox хандалтын жетон авах шаардлагатай бөгөөд энэ нь сард тодорхой тооны хүсэлт хүртэл үнэгүй байх болно. Та энэ жетоныг кодонд оруулж, програмыг өөрийн талд бүтээх хэрэгтэй болно. Та мөн өөрийн ESP32 -ийн Bluetooth MAC хаягаар код оруулах шаардлагатай болно.

Одоогийн байдлаар апп нь таныг одоогийн байршлаас газрын зураг дээр дарж хүссэн газар руу чиглүүлэх болно. Танилцуулгад дурдсанчлан энэ нь эргэлт хийхээс өөр маневрыг дэмждэггүй бөгөөд замаас гадуурх замыг хараахан зохицуулаагүй байна.

Та эх кодоо бүхэлд нь миний github дээрээс олж болно.

Алхам 8: Дараа нь юу хийх вэ?

Энэ апп нь хэрэглэгчдээ тогтоосон маршрутад чиглүүлэх хангалттай ажиллагаатай болсон бол (хэрэв тогтоосон маршрутаас гажсан зүйл байхгүй бол) миний гол анхаарал бол ухаалаг гар утасны програмыг сайжруулж, модулийг бий болгох цөөн хэдэн чадварыг хэрэгжүүлэх явдал юм. навигацийн төхөөрөмж. Үүнд дэлгэц унтарсан байсан ч утсаараа Bluetooth холболт хийх, бусад төрлийн маневруудыг дэмжих (тойрог зам, нэгдэх, …) орно. Хэрэв хэрэглэгч анхны маршрутаасаа хазайсан бол би дахин чиглүүлэлтийн функцийг хэрэгжүүлэх болно.

Энэ бүгдийг хийсний дараа би контейнер болон түүний бэхэлгээний механизмыг сайжруулж, 3d хэвлээд модулийг эхний удаа ажиллуулахыг хичээнэ.

Хэрэв бүх зүйл сайн болсон бол миний урт хугацааны зорилго бол энэхүү төслийн суулгагдсан электроникийн захиалгат ПХБ -ийг зохион бүтээх явдал бөгөөд энэ нь эцсийн бүтээгдэхүүн дээр маш их зай хэмнэх болно.

Би ирээдүйд энэ модульд цаг харуулах, утасны мессеж эсвэл дуудлага хүлээн авахад дүрс гарч ирэх утасны мэдэгдлийн дохиолол гэх мэт бусад функцуудыг нэмж болно. Эцэст нь би Spotify -ийн чадварыг энэ модульд нэмж оруулахыг хүсч байна. Гэсэн хэдий ч цаг хугацааны хувьд энэ бол зөвхөн сайхан зүйл юм.

Алхам 9: Дүгнэлт ба онцгой талархал

Дүгнэлт ба онцгой талархал!
Дүгнэлт ба онцгой талархал!

Танилцуулгад дурдсанчлан, энэ төсөл дуусаагүй байгаа ч гэсэн, энэ нь өөр хүнд урам зориг өгөх болов уу гэж найдаж, үүнийгээ дэлхийтэй хуваалцахыг маш их хүсч байна. Би бас энэ сэдвээр хийсэн судалгаагаа баримтжуулж өгөхийг хүсч байсан, учир нь AR болон HUD -ийн сонирхогчид тийм ч их сонирхдоггүй, энэ бол ичмээр зүйл гэж би бодож байна.

Awall99 болон Данел Квинтана нарт маш их баярлалаа гэж хэлмээр байна. Тэдний бодит байдлыг сайжруулсан төсөл нь энэ модулийг бүтээхэд надад маш их урам зориг өгсөн.

Анхаарал тавьсанд баярлалаа, энэ төсөл ойрын ирээдүйд сайжрах үед би шинэчлэлт оруулах болно. Энэ хооронд дараа бүгдээрээ уулзацгаая!

Зөвлөмж болгож буй: