Satura rādītājs:

Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk): 9 soļi
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk): 9 soļi

Video: Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk): 9 soļi

Video: Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk): 9 soļi
Video: Section 1: More Comfortable 2024, Jūlijs
Anonim
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)
Viedā motocikla HUD prototips (detalizēta navigācija un vēl daudz vairāk)

Sveiki !

Šī pamācība ir stāsts par to, kā es projektēju un uzbūvēju HUD (Heads-Up Display) platformu, kas paredzēta uzstādīšanai uz motociklu ķiverēm. Tas tika uzrakstīts konkursa "kartes" kontekstā. Diemžēl es nevarēju pilnībā pabeigt šo projektu savlaicīgi līdz konkursa termiņam, taču es tomēr vēlējos pastāstīt par savu progresu, kā arī dokumentēt visus izmēģinājumus un kļūdas, kas man radušās, to īstenojot.

Ideja par šo projektu man pirmo reizi radās pirms dažiem gadiem, kad es iekāpu motociklos, un es sāku meklēt, kādu pārnesumu man vajadzētu iegādāties, lai padarītu braucienus patīkamākus. Toreiz mani mulsināja, ka labākais veids, kā braukšanas laikā iegūt pamata GPS navigāciju, būtībā bija viedtālruņa piestiprināšana pie velosipēda stūres. Es gan domāju, ka, protams, varētu būt labāks veids, kā iegūt šāda veida informāciju lidojumā.

Tieši tad es nonācu pie manis: heads-up displejs varētu būt veids, kā iegūt navigāciju braukšanas laikā, neiztukšojot tālruņa akumulatoru un nepakļaujot to elementiem.

Laika gaitā šī ideja nobrieda manā prātā, un es tomēr domāju, ka, ja man vienmēr būtu priekšā HUD, tas ļautu izmantot daudz vairāk nekā vienkārša navigācija. Tāpēc mans plāns ir padarīt platformu publisku un modulāru, lai ikviens varētu izveidot moduli, kas parāda nepieciešamo informāciju savā HUD

Lai gan ir komerciāli pieejami produkti, kas izpilda šo uzdevumu, nav tādu, kas būtu tik modulāri kā mana platforma, un tie mēdz būt arī nedaudz dārgāki. Jebkurā gadījumā, laipni lūdzam šajā projektā.

Kas darbojas līdz šim

Kā minēts, šis projekts joprojām ir ļoti attīstības stadijā, un tas pašlaik darbojas.

- Saziņa starp viedtālruni un uz ESP32 balstītu plati (tālrunis nomodā)

- Izgatavots optikas dizains (ilgtermiņā var būt nepieciešami nelieli pielāgojumi)

- Android navigācijas lietotne, izmantojot Mapbox navigācijas SDK:

- Spēj aprēķināt un parādīt lietotāja atrašanās vietu kartē, kā arī maršrutu no tā līdz galamērķim

- Spēj izveidot savienojumu ar Bluetooth ierīci (ierīces MAC adrese pašlaik ir cietā kodā)

- Iespēja reāllaika navigācijai, ieskaitot gaidāmā manevra informācijas iegūšanu un nosūtīšanu, izmantojot seriālo Bluetooth (pagaidām atbalsta tikai pagriezienus)

Kam vajadzīgs darbs

Šajā sarakstā ir priekšmeti, kas ir absolūti nepieciešami HUD paredzētajam lietojumam, bet vēl nav gatavi ieviešanai.

- Kopējais dizains (ķiveres stiprinājums, atstarotāja leņķa regulēšanas mehānisms,..)

- Android lietotne:

- Īstenot noteikšanu un labošanu ārpus maršruta

- Spēja lietotājam ievadīt galamērķa adresi

- Ceļa punkti?

- Ergonomika / estētika

Piegādes:

Būtiskais

- Esp32 balstīta izstrādes dēlis

- Jebkurš nedaudz jaunāks Android viedtālrunis (iespējots Bluetooth)

- SSD1306 vai cits iespējots 96 collu OLED ekrāns (mans izmērs bija 128x64 pikseļi, skatiet sadaļu "Smadzenes: mikrokontrolleris un ekrāns")

- atstarotājs (derēs jebkurš akrila/stikla/organiskā stikla gabals)

- Fresneļa objektīvs (manējā F. garums bija aptuveni 13 cm, skatiet sadaļu "Objektīva izvēle")

Rīki

- Lodāmurs

- Maizes dēlis

- Daži pārejas kabeļi

- 3D printera / 3D drukas pakalpojums

1. darbība: kā tas viss darbojas: izskaidrota dizaina izvēle

Kā tas viss darbojas: izskaidrota dizaina izvēle
Kā tas viss darbojas: izskaidrota dizaina izvēle
Kā tas viss darbojas: izskaidrota dizaina izvēle
Kā tas viss darbojas: izskaidrota dizaina izvēle
Kā tas viss darbojas: izskaidrota dizaina izvēle
Kā tas viss darbojas: izskaidrota dizaina izvēle

Heads Up displeja pamatideja ir parādīt attēlu kāda redzesloka priekšā, lai viņam nebūtu jāskatās prom no tā, ko viņš dara (vai tas būtu lidmašīnas vadīšana, vai motocikla vadīšana, kas būs mūsu piemēra gadījums).

Optika

Tehniski to var panākt, noliekot ekrānu lietotāja acu priekšā. Tomēr ekrāns nav caurspīdīgs, un tāpēc tas traucē lietotājam redzēt. Pēc tam ekrānu varētu novietot atstarojošas virsmas priekšā, kas atspoguļotu ekrāna saturu un vienlaikus būtu pietiekami caurspīdīga, lai lietotājs varētu redzēt, kas atrodas viņa priekšā.

Tomēr šai pieejai ir milzīgs trūkums: faktiskais ekrāns parasti ir tuvāk lietotāja acīm nekā tas, uz ko lietotājam faktiski jākoncentrējas (piemēram, ceļš, kas viņam priekšā). Tas nozīmē, ka, lai izlasītu, kas atrodas uz atstarojošās virsmas, lietotāja acīm būtu jāpielāgojas displeja attālumam no acīm (teiksim, 20 cm), un pēc tam atkal būtu jāpielāgojas, lai koncentrētos uz turpmāko ceļu (~ 2/5 metri). Visas šīs darbības laiks ir dārgs laiks, kas jāpavada, skatoties uz ceļu, un bieža pielāgošanās lietotājam pēc dažām minūtēm var būt neērta.

Tāpēc es nolēmu starp ekrānu un atstarotāju pievienot objektīvu. Ja objektīvs ir rūpīgi izvēlēts, tam vajadzētu ļaut izveidot ekrāna virtuālu attēlu (skatiet iepriekš minēto shēmu), kas, šķiet, atrodas tālāk no lietotāja acīm, kā tas ir patiesībā, tādējādi prasot mazāk pēkšņus pielāgojumus (vai vispār nav, perfektā scenārijā). Šis dizains ļauj lietotājam ātri paskatīties uz atstarotāju, iegūt viņam nepieciešamo informāciju un uzreiz atskatīties uz ceļu.

Viedtālruņa loma

Tā kā bija nereāli izmēģināt un ieviest visu navigācijas lietojumprogrammu tikai ESP32, es nolēmu izveidot Android lietotni, kas par to parūpēsies. Pēc tam lietotnei vienkārši jāpasaka ESP32, kas lietotājam jādara, lai nokļūtu galamērķī, un ESP32 pārsūta šo informāciju, izmantojot HUD (skat. Attēlu "Kā darbojas modulis").

2. darbība. Daļas - smadzenes: mikrokontrolleris un ekrāns

Daļas - smadzenes: mikrokontrolleris un ekrāns
Daļas - smadzenes: mikrokontrolleris un ekrāns
Daļas - smadzenes: mikrokontrolleris un ekrāns
Daļas - smadzenes: mikrokontrolleris un ekrāns

Kā minēts iepriekš, es plānoju, lai mans modulis parādītu navigācijas informāciju, bet faktiski neļaujot tam aprēķināt faktisko pozicionēšanu, izsekošanu un navigāciju reāllaikā. tā vietā lietotāja tālrunis sazināsies ar moduli un nosūtīs tam informāciju, kas tiks parādīta HUD.

Lai atvieglotu saziņu starp lietotāja tālruni un moduli, es izvēlējos šim projektam izmantot uz ESP32 balstītu plati. Šī izvēle bija saistīta ar šo īpašo moduli ar integrētām Bluetooth iespējām, kā arī dažas citas interesantas specifikācijas (viegli lietojama nepastāvīga atmiņa, divkodolu CPU, pietiekami daudz RAM, lai faktiski vadītu OLED displeju, izmantojot I2C, …). Ir salīdzinoši vienkārši izstrādāt PCB, pamatojoties uz ESP32, ko es ņēmu vērā. Man ir arī profesionāla pieredze shēmu izmantošanā un projektēšanā ar ESP32, kas noteikti ietekmēja manu izvēli.

Ekrāna izvēle būtībā bija atkarīga no tā, ko es varētu atrast, ka es tomēr būtu pietiekami spilgts, lai to varētu izmantot, vienlaikus esot arī pēc iespējas mazāks. Es neuztraucos par ekrāna pikseļu skaitu, jo mans mērķis bija ļoti minimālistisks un vienkāršs lietotāja interfeiss.

Jāatzīmē, ka ekrāna draiverim jāatbalsta bibliotēka, kas ļauj attēlot spoguļattēlu. Tas ir tāpēc, ka parādītais attēls tiek pagriezts, kad tas iziet cauri objektīvam un parādās uz atstarotāja, un tas, ka nav manuāli jāmaina parādītais, ir milzīgs svars no mūsu pleciem kā celtniekiem.

3. solis: detaļas - optika: kompromisa atrašana

Daļas - optika: kompromisa atrašana
Daļas - optika: kompromisa atrašana
Daļas - optika: kompromisa atrašana
Daļas - optika: kompromisa atrašana
Daļas - optika: kompromisa atrašana
Daļas - optika: kompromisa atrašana

Šī projekta optikai bija diezgan grūti piekļūt, jo, uzsākot šo projektu, man nebija ne jausmas, ko es pat meklēju. Pēc dažiem pētījumiem es sapratu, ka es vēlos izveidot sava OLED ekrāna "virtuālo attēlu", kas, šķiet, atrodas tālāk no acs, nekā tas patiesībā ir. Ideāls attālums šī virtuālā attēla veidošanai būtu aptuveni 2–5 metru attālumā no vadītāja, un tas, šķiet, ir attālums līdz objektiem, uz kuriem mēs koncentrējamies braucot (citas automašīnas, nelīdzenumi uz ceļa utt.)).

Lai sasniegtu šo mērķi, es izvēlējos izmantot Fresneļa objektīvu, jo tie ir diezgan lieli, lēti, šķiet, ka tie piedāvā pietiekami labu fokusa attālumu manam projektam, un tos var sagriezt ar vienkāršām šķērēm (kas tā nav) izsmalcinātākas apaļas formas stikla lēcas). Fresneļa objektīviem var atrast tādus nosaukumus kā "kabatas lupas" vai "lasāmkaršu lupas", jo tie ir ļoti piemēroti, lai palīdzētu cilvēkiem ar sliktu redzi lasīt.

Būtībā triks šeit bija saistīts ar pareizā kompromisa atrašanu starp:

- ar saprātīgu virtuālā attēla attālumu (tas ir, cik tālu lietotājam šķiet HUD vai cik tālu lietotājam būs jāpielāgo acis, lai redzētu, kas atrodas HUD)

- Ja objektīvs (kas būtībā ir palielināmais lielums), ekrāns netiek pārāk palielināts

- ar saprātīgu attālumu starp OLED ekrānu un objektīvu, kas pretējā gadījumā radītu ļoti apjomīgu moduli

Es personīgi Amazon pasūtīju dažus dažādus objektīvus un noteicu to attiecīgos fokusa attālumus, pirms izvēlējos tādu, kura F. garums ir aptuveni 13 cm. Es atklāju, ka šis F.garums ar OLED objektīva attālumu 9 cm deva man apmierinošu attēlu uz mana atstarotāja (skatiet dažus pēdējos attēlus iepriekš).

Kā redzēsit manās ilustrācijās, lai pareizi koncentrētos uz parādīto tekstu, šo attēlu uzņemšanai izmantotajai kamerai ir jāpielāgojas tā, it kā tā fokusētos uz tālu objektu, un tas viss vienā plaknē ar atstarotāju šķiet neskaidrs. Tas ir tieši tas, ko mēs vēlamies mūsu HUD.

3D failus objektīva turētājam varat atrast šeit.

4. solis: detaļas - konteiners visu turēšanai

Daļas - konteiners visu turēšanai
Daļas - konteiners visu turēšanai
Daļas - konteiners visu turēšanai
Daļas - konteiners visu turēšanai

Rakstot šo pamācību, faktiskais konteiners, kurā atradīsies katrs heads-up displeja gabals, nav gluži izstrādāts. Tomēr man ir dažas idejas par tā vispārējo formu un par to, kā risināt noteiktas problēmas (piemēram, kā turēt nekustīgu atstarotāju un panākt, lai tas izturētu 100+ km/h vēju). Tas joprojām ir ļoti liels darbs.

5. solis: protokola izveide mūsu modulim

Lai nosūtītu navigācijas norādījumus no tālruņa uz izstrādes paneli, man bija jāizstrādā savs saziņas protokols, kas ļautu viegli nosūtīt nepieciešamos datus no tālruņa, vienlaikus atvieglojot to apstrādi pēc saņemšanas.

Šīs instrukcijas rakstīšanas laikā informācija, kas jāpārraida no tālruņa, lai pārvietotos ar moduli, bija šāda:

- gaidāmā manevra veids (vienkāršs pagrieziens, apļveida krustojums, saplūšana citā ceļā, …)

- gaidāmā manevra precīzie norādījumi (atkarībā no manevra veida: pagrieziens pa labi/pa kreisi; kura izeja jāizvēlas apļveida krustojumam,…)

- Atlikušais attālums pirms gaidāmā manevra (pagaidām metros)

Es nolēmu sakārtot šos datus, izmantojot šādu rāmja struktūru:

: tips.instrukcijas, attālums;

Lai gan tas nav skaists risinājums, tas ļauj mums viegli nošķirt un atšķirt katru mūsu protokola lauku, kas atviegloja kodēšanu ESP32 pusē.

Ir svarīgi paturēt prātā, ka, lai izmantotu turpmākās funkcijas, šim protokolam, iespējams, būs jāpievieno cita informācija (piemēram, precīza diena un laiks vai lietotāja tālrunī atskaņotā mūzika), kas būtu viegli īstenojama, izmantojot to pašu veidot loģiku kā tagad.

6. darbība: kods: ESP32 Side

Kods: ESP32 Side
Kods: ESP32 Side
Kods: ESP32 Side
Kods: ESP32 Side

ESP32 kods pašlaik ir diezgan vienkāršs. Tā izmanto bibliotēku U8g2lib, kas ļauj ērti kontrolēt OLED ekrānu (vienlaikus iespējojot parādītā attēla atspoguļošanu).

Būtībā viss, ko ESP32 dara, ir sērijveida datu saņemšana, izmantojot Bluetooth, kad lietotne tos nosūta, parsē un parāda šos datus vai attēlus, pamatojoties uz šiem datiem (ti, parādot bultiņu teikuma "pagrieziens pa kreisi/pa labi" vietā). Šeit ir kods:

/*Programma HUD vadīšanai no android lietotnes, izmantojot seriālo bluetooth ifdef U8X8_HAVE_HW_I2C #include #endif // OLED bibliotēkas konstruktors, jāmaina atbilstoši jūsu ekrānamU8G2_SSD1306_128X64_ALT0_F_HW_I2C u8g2 (U8G2_MIRROR,/* reset =*/U8X8_PIN_NONE); // Stāvokļa mašīna konstatēja_lauka vērtības + mainīgais#definēt manevruLauks 1#definēt norādījumusLauks 2#definēt attālumuLauks 3#definēt endOfFrame 4int atklāts_lauks = endOfFrame; BluetoothSerial serialBT; // Objekts Bluetoothchar ienākošajai_char; char manevrs [10]; char instrukcijas [10]; char distance [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; Būla pilnais teikums = nepatiess; void setup () {Serial.begin (9600); // Sāciet sērijas monitoru ar 9600 bodu u8g2.begin (); // Init OLED kontroles serialBT.begin ("ESP32_BT"); // Bluetooth signāla aizkaves nosaukums (20); Serial.println ("Bluetooth ierīce ir gatava savienošanai pārī");} void loop () {if (serialBT.available () &&! Fullsentence) // Rakstzīmes tiek saņemtas, izmantojot Bluetooth sērijas {inputing_char = serialBT.read (); Serial.print ("Saņemts:"); Sērijas.println (ienākošā_gulta); } slēdzis (atklāts_lauks) {case manevrsField: Serial.println ("Atklātais lauks: manevrs"); ja (ienākošā_grupa == '.') // Tika atklāts nākamais lauks {atklāts_lauks = norādījumiLauks; } cits {// Aizpildiet manevra tipa informācijas masīva manevru [nbr_char_maneuver] = ienākošais_akmens; nbr_char_maneuver ++; } pārtraukums; gadījuma norādījumiLauks: Serial.println ("Noteiktais lauks: instrukcijas"); ja (ienākošā_grupa == ',') // Tika atklāts nākamais lauks {atklāts_lauks = distanceField; } cits {// Aizpildiet instrukciju informācijas masīva norādījumus [nbr_char_instructions] = ienākošā_lāde; nbr_char_instructions ++; } pārtraukums; lietas distanceField: Serial.println ("Noteiktais lauks: attālums"); if (input_char == ';') // Kadra beigas konstatētas {atklāts_lauks = endOfFrame; Serial.print ("manevrs:"); Serial.println (manevrs); Serial.print ("instrukcijas:"); Serial.println (instrukcijas); Sērijas nospiedums ("distance:"); Sērijas.println (attālums); pilnīgs teikums = taisnība; update_Display (); // Saņemts pilnrāmis kadrs, parsējiet to un parādiet uztvērēja datus} cits {// Aizpildiet attāluma informācijas masīva attālumu [nbr_char_distance] = ienākošā_akmens; nbr_char_distance ++; } pārtraukums; gadījums endOfFrame: ja (ienākošā_daba == ':') atklāts_lauks = manevralauks; // Jauns kadrs konstatēja pārtraukumu; noklusējuma: // Do not break; } delay (20);} void update_Display () {// Kešatmiņā saglabājiet katru rakstzīmju masīvu, lai izvairītos no iespējamiem konfliktiem memcpy (tempManeuver, manevrs, nbr_char_maneuver); memcpy (tempInstrukcijas, instrukcijas, nbr_char_instructions); memcpy (tempDistance, distance, nbr_char_distance); parseCache (); // Parsēt un apstrādāt char masīvus fullsentence = false; // Teikums apstrādāts, gatavs nākamajam} void parseCache () {u8g2.clearBuffer (); // notīrīt iekšējo atmiņu u8g2.setFont (u8g2_font_ncenB10_tr); // izvēlieties piemērotu fontu // char masīvi -> virkne obligāta, lai izmantotu apakšvirknes () funkciju String manevrsString = tempManeuver; String instrukcijasString = tempInstructions; // Īstenošanas protokols šeit. Pagaidām atbalsta tikai pagriezienus. if (maneuverString.substring (0, 4) == "pagrieziens") {// Pārbaudiet manevra veidu Serial.print ("TURN DETECTED"); if (instrukcijasString.substring (0, 5) == "labi") {// Pārbaudiet īpašus norādījumus un attiecīgi parādiet u8g2.drawStr (5, 15, "-"); } cits if (instrukcijasString.substring (0, 4) == "pa kreisi") {// Pārbaudiet konkrētus norādījumus un attiecīgi parādiet u8g2.drawStr (5, 15, "<---"); } cits u8g2.drawStr (5, 15, "Kļūda"); // Nederīgs instrukciju lauks}/ * Īstenot citus manevru veidus (apvedceļi utt.) * Else if (tempManeuver == "rdbt") { * *] */ u8g2.drawStr (5, 30, tempDistance); // Parādīt atlikušo attālumu u8g2.sendBuffer (); // pārsūtīt iekšējo atmiņu uz displeju // Atiestatīt visus char masīvus pirms nākamās lasīšanas memset (manevrs, 0, 10); memset (instrukcijas, 0, 10); memset (attālums, 0, 10); memset (tempManeuver, 0, 10); memset (tempInstructions, 0, 10); memset (tempDistance, 0, 10); // Atiestatīt elementu skaitu masīvos nbr_char_distance = 0; nbr_char_instructions = 0; nbr_char_maneuver = 0;}

7. darbība: kods: Android puse

Kods: Android puse
Kods: Android puse
Kods: Android puse
Kods: Android puse
Kods: Android puse
Kods: Android puse

Viedtālruņa lietotnei es nolēmu izmantot Mapbox navigācijas SDK, jo tā piedāvā daudz noderīgu funkciju, veidojot navigācijas karti no nulles. Tas arī ļauj izmantot daudzus noderīgus klausītājus, kas noteikti palīdz šī moduļa darbībā. Es arī izmantoju harry1453 android-bluetooth-sērijas bibliotēku operētājsistēmai Android, jo tas ievērojami atviegloja Bluetooth sērijas sakaru salikšanu.

Ja vēlaties izveidot šo lietotni mājās, jums ir jāiegūst Mapbox piekļuves pilnvara, kas ir bezmaksas līdz noteiktam pieprasījumu skaitam mēnesī. Jums būs jāievieto šis marķieris kodā un jāizveido lietotne jūsu pusē. Jums būs arī jākodē savā ESP32 Bluetooth MAC adresē.

Pašlaik lietotne var novirzīt jūs no jūsu pašreizējās atrašanās vietas uz jebkuru vietu, uz kuras varat noklikšķināt uz kartes. Tomēr, kā minēts ievadā, tas neatbalsta nekādus citus manevrus, izņemot pagriezienus, un pagaidām neapkalpo ārpusceļa maršrutus.

Visu avota kodu varat atrast manā github.

8. darbība. Kas notiks tālāk?

Tagad, kad lietotne ir pietiekami funkcionāla, lai faktiski vadītu savu lietotāju noteiktā maršrutā (ja nav noviržu no noteiktā maršruta), mans galvenais mērķis būs uzlabot viedtālruņa lietotni un ieviest dažas iespējas, kas padarītu moduli par dzīvotspējīga navigācijas ierīce. Tas ietver Bluetooth sakaru iespējošanu no tālruņa pat tad, ja ekrāns ir izslēgts, kā arī cita veida manevru atbalstu (apļveida krustojumi, apvienošana utt.). Ieviesīšu arī maršruta maiņas funkciju, ja lietotājs novirzīsies no sākotnējā maršruta.

Kad tas viss ir izdarīts, es uzlabošu konteineru un tā stiprinājuma mehānismu, 3D izdrukāšu to un mēģināšu paņemt moduli pirmajam darbam.

Ja viss izdosies, mans ilgtermiņa mērķis ir izstrādāt pielāgotu PCB šī projekta iegultajai elektronikai, kas ietaupītu daudz vietas gala produktam.

Nākotnē es varētu pievienot šim modulim arī dažas citas funkcijas, tostarp laika displeju, kā arī tālruņa paziņojumu trauksmi, kas var likt parādīties ikonai, kad lietotājs saņem īsziņu vai zvanu. Visbeidzot, es vēlētos pievienot šim modulim Spotify iespējas kā milzīgs mūzikas ventilators. Tomēr šajā brīdī tas ir tikai jauki.

9. solis: Secinājums un īpašs paldies

Secinājums un īpašs paldies!
Secinājums un īpašs paldies!

Kā teikts ievadā, lai gan šis projekts vēl nav tālu pabeigts, es patiešām vēlējos dalīties tajā ar visu pasauli, cerot, ka tas varētu iedvesmot kādu citu. Es arī gribēju dokumentēt savus pētījumus par šo tēmu, jo par AR un HUD nav īsti liela interese par hobijiem, kas, manuprāt, ir kauns.

Es vēlos pateikt milzīgu paldies Awall99 un Danel Quintana, kuru attiecīgais paplašinātās realitātes projekts mani ļoti iedvesmoja šī moduļa tapšanā.

Paldies visiem par uzmanību, es noteikti ievietošu atjauninājumu, kad tuvākajā laikā šis projekts tiks uzlabots. Tikmēr tiekamies vēlāk!

Ieteicams: