Мазмұны:

Ақылды мотоцикл HUD прототипі (кезекпен навигация және тағы басқалар): 9 қадам
Ақылды мотоцикл HUD прототипі (кезекпен навигация және тағы басқалар): 9 қадам

Бейне: Ақылды мотоцикл HUD прототипі (кезекпен навигация және тағы басқалар): 9 қадам

Бейне: Ақылды мотоцикл HUD прототипі (кезекпен навигация және тағы басқалар): 9 қадам
Бейне: Video in diretta del venerdí pomeriggio! Cresciamo tutti insieme su YouTube! @SanTenChan 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 қолдану үшін өте қажет, бірақ әлі іске асыруға дайын емес элементтер бар.

- Жалпы дизайн (дулыға қондырмасы, рефлектордың бұрышын реттеу механизмі,..)

- Android қосымшасы:

- маршруттан тыс анықтауды және түзетуді жүзеге асыру

- Пайдаланушының тағайындалған мекенжайды енгізу мүмкіндігі

- Жол нүктелері?

- Эргономика / Эстетика

Жабдықтар:

Маңыздылар

- esp32 негізіндегі даму тақтасы

- кез келген жаңа Android смартфоны (Bluetooth қосылған)

- SSD1306 немесе басқа қосылған 96 «OLED экраны (менікі 128x64 пиксель болды,» Ми: микроконтроллер мен экран «бөлімін қараңыз)

- рефлектор (акрил/шыны/плексигласстың кез келген бөлігі жасайды)

- Френель линзасы (ұзындығы шамамен 13 см болатын, «Объективті таңдау» бөлімін қараңыз)

Құралдар

- Пісіру үтігі

- Нан тақтасы

- Бірнеше секіргіш кабельдер

- 3d принтер / 3d басып шығару қызметі

1 -қадам: Барлығы қалай жұмыс істейді: Дизайн таңдаулары түсіндірілген

Мұның бәрі қалай жұмыс істейді: дизайн таңдаулары түсіндірілген
Мұның бәрі қалай жұмыс істейді: дизайн таңдаулары түсіндірілген
Мұның бәрі қалай жұмыс істейді: дизайн таңдаулары түсіндірілген
Мұның бәрі қалай жұмыс істейді: дизайн таңдаулары түсіндірілген
Мұның бәрі қалай жұмыс істейді: дизайн таңдаулары түсіндірілген
Мұның бәрі қалай жұмыс істейді: дизайн таңдаулары түсіндірілген

Heads Up дисплейінің негізгі идеясы - біреудің көз алдында суретті көрсету, сондықтан олар не істеп жатқандарынан (ұшақты басқару немесе мотоциклді басқару) басқа жаққа қарауға тура келмейді. мысал жағдайы).

Оптика

Техникалық тұрғыдан бұған экранды тікелей пайдаланушының көзіне қою арқылы қол жеткізуге болады. Дегенмен, экран мөлдір емес, сондықтан оның пайдаланушының көру қабілетіне кедергі келтіруі мүмкін. Содан кейін сіз экранды шағылыстыратын беттің алдына қоюға болады, ол экранның мазмұнын көрсетеді, сонымен қатар пайдаланушы алдында тұрған нәрсені көре алатындай етіп өтеді.

Алайда, бұл тәсілдің үлкен кемшілігі бар: нақты экран әдетте пайдаланушы назар аударатын нәрсеге қарағанда (мысалы, оның алдындағы жол) пайдаланушының көзіне жақын болады. Бұл рефлексиялық бетте не бар екенін оқу үшін пайдаланушының көзі дисплейдің көзінен 20 см қашықтыққа бейімделуі керек, содан кейін алдағы жолға шоғырлану үшін қайтадан бейімделу қажет болады. (~ 2/5 метр). Бұл барлық операцияға кететін уақыт - бұл жолға қарау үшін қажет уақыт, және бірнеше рет бейімделу пайдаланушыға ыңғайсыз болуы мүмкін.

Сондықтан мен экран мен рефлектордың арасына объектив қосуды жөн көрдім. Егер бұл линза мұқият таңдалса, экранның виртуалды бейнесін жасауға мүмкіндік беруі керек (жоғарыдағы схеманы қараңыз), ол пайдаланушының көзінен бұрынғыдай алыста болып көрінеді, осылайша кенеттен бейімделуді қажет етеді (немесе мүлдем жоқ, тамаша сценарийде). Бұл дизайн пайдаланушыға рефлекторға тез қарауға, қажетті ақпаратты алуға және жолға бірден қарауға мүмкіндік береді.

Смартфонның рөлі

Жалғыз ESP32 -де навигациялық қосымшаны қолдану мүмкін емес болғандықтан, мен бұл мәселені шешетін андроид қосымшасын жасауды шештім. Қолданба тағайындалған жерге жету үшін қолданушыға не істеу керектігін ESP32 -ге айтуы керек еді, ал ESP32 бұл ақпаратты HUD арқылы жеткізеді («Модуль қалай жұмыс істейді» суретін қараңыз).

2 -қадам: Бөлшектер - ми: микроконтроллер және экран

Бөлшектер - ми: микроконтроллер және экран
Бөлшектер - ми: микроконтроллер және экран
Бөлшектер - ми: микроконтроллер және экран
Бөлшектер - ми: микроконтроллер және экран

Жоғарыда айтылғандай, мен модульде нақты орналасуды, бақылауды және нақты уақыттағы навигацияны есептемей-ақ, навигациялық ақпаратты көрсетуді жоспарладым. пайдаланушының телефоны оның орнына модульмен байланысып, ақпаратты HUD -да көрсету үшін жібереді.

Қолданушының телефоны мен модуль арасындағы байланысты жеңілдету үшін мен бұл жобаға ESP32 негізіндегі тақтаны қолдануды таңдадым. Бұл таңдау Bluetooth мүмкіндіктері бар арнайы модульге, сонымен қатар басқа да қызықты сипаттамаларға байланысты болды (тұрақты емес қойма, екі ядролы процессор, OLED дисплейін I2C арқылы басқаруға жеткілікті жедел жады,…). Мен ескерген ESP32 -ге негізделген ПХД құрастыру салыстырмалы түрде қарапайым. Менде ESP32 схемаларын қолдану мен жобалаудың кәсіби тәжірибесі бар, бұл менің таңдауыма әсер етті.

Экранды таңдау негізінен мен қолданатындай жарқын болар еді, бірақ мен мүмкіндігінше кішкентай боламын. Мен экранның пикселдерінің саны туралы қатты алаңдамадым, өйткені менің мақсатым - өте минималистік және қарапайым интерфейс.

Айта кету керек, экран драйверіне суретті көшіруге мүмкіндік беретін кітапхана қолдау көрсетуі керек. Себебі, бейнеленген объектив линзадан өтіп, рефлекторда пайда болған кезде аударылады, ал бейнеленгенді қолмен кері айналдырудың қажеті жоқ, құрылысшылар ретінде біздің мойнымызға үлкен салмақ түседі.

3 -қадам: Бөлшектер - оптика: ымыраға келу

Бөлшектер - оптика: ымыраға келу
Бөлшектер - оптика: ымыраға келу
Бөлшектер - оптика: ымыраға келу
Бөлшектер - оптика: ымыраға келу
Бөлшектер - оптика: ымыраға келу
Бөлшектер - оптика: ымыраға келу

Бұл жобаның оптикасына жақындау өте қиын болды, өйткені мен бұл жобаны алғаш бастаған кезде не іздейтінімді білмедім. Біраз зерттеуден кейін мен өзімнің OLED экранымның «виртуалды кескінін» жасауды қалайтынымды түсіндім, ол көзге қарағанда әлдеқайда алыс болып көрінеді. Бұл виртуалды бейнені құру үшін ең қолайлы қашықтық жүргізушінің алдында шамамен 2-5 метр болуы керек, бұл біздің назар аударатын объектілерге дейінгі қашықтық сияқты (басқа машиналар, жолдағы соққылар және т.).

Бұл мақсатқа жету үшін мен Френель линзасын қолдануды шештім, өйткені олар өте үлкен, арзан, олар менің жобам үшін жеткілікті жақсы фокустық қашықтықты ұсынатын сияқты болды және оларды қарапайым қайшымен кесуге болады (бұл олай емес) неғұрлым тазартылған дөңгелек пішінді шыны линзалар). Френель линзаларын «қалта үлкейткіші» немесе «оқу картасын үлкейткіш» сияқты атаулармен кездестіруге болады, өйткені олар нашар көретін адамдарға оқуға көмектеседі.

Негізінде, мұндағы амалдар дұрыс ымыраға келу болды:

- Виртуалды кескіннің ақылға қонымды қашықтығы болуы (яғни, HUD қолданушыға қаншалықты алыс болып көрінуі мүмкін немесе қолданушы HUD -те не бар екенін көру үшін көзін қаншалықты реттеуге мәжбүр болады)

- Экрандағы мәтін объективпен тым үлкен болмайды (бұл негізінен үлкейткіш)

- OLED экраны мен линзаның арасында жеткілікті қашықтық болуы, бұл өте үлкен модульге әкеледі

Мен амазонкаға бірнеше түрлі линзаларға тапсырыс бердім және F. ұзындығы шамамен 13 см болатын линзаны таңдаудан бұрын олардың фокус арақашықтығын анықтадым. Мен бұл OLED-объективінің қашықтығы 9 см болатын F. ұзындығын таптым, ол маған рефлектордағы қанағаттандыратын бейнені берді (жоғарыдағы соңғы суреттерді қараңыз).

Менің суреттерімде көріп тұрғандай, көрсетілген мәтінге дұрыс назар аудару үшін, бұл суреттерді түсіретін камера алыстағы объектіге бағытталғандай реттелуі керек, бұл рефлектормен бір жазықтықта бәрін бұлыңғыр етеді.. Біздің HUD үшін дәл осылай қажет.

Мұнда линзалар ұстағышқа арналған 3d файлдарды таба аласыз.

4 -қадам: Бөлшектер - барлығын ұстайтын контейнер

Бөлшектер - барлығын ұстауға арналған контейнер
Бөлшектер - барлығын ұстауға арналған контейнер
Бөлшектер - барлығын ұстауға арналған контейнер
Бөлшектер - барлығын ұстауға арналған контейнер

Мен осы нұсқаулықты жазып отырғанымда, дисплейдің әрбір бөлігін ұстайтын нақты контейнер жақсы жобаланбаған. Менде оның жалпы пішіні мен кейбір мәселелерге қалай қарау керектігі туралы бірнеше идеялар бар (мысалы, рефлекторды қалай ұстап тұру керек және оны сағатына 100+ км жылдамдықта ұстауға болады). Бұл әлі де атқарылып жатқан жұмыс.

5 -қадам: Біздің модульге хаттама құру

Телефоннан навигация нұсқауларын әзірлеу тақтасына жіберу үшін мен телефоннан қажетті деректерді оңай жіберуге мүмкіндік беретін, сонымен қатар оны алғаннан кейін оны өңдеуді жеңілдететін байланыс хаттамасын ойлап табуым керек болды.

Нұсқаулықты жазу кезінде модульмен шарлау үшін телефоннан жіберілуі қажет ақпарат:

- Алдағы маневр түрі (қарапайым бұрылыс, айналма жол, басқа жолға қосылу …)

- алдағы маневрдің нақты нұсқаулары (маневр түріне байланысты: бұрылу үшін оңға/солға; айналма жолға шығатын жол, …)

- алдағы маневр алдында қалған қашықтық (әзірше метрмен)

Мен бұл деректерді келесі рамалық құрылымды қолдана отырып ұйымдастыруды шештім:

: түрі.нұсқаулар, қашықтық;

Әдемі шешім болмаса да, бұл бізге хаттаманың әр өрісін оңай ажыратуға және ажыратуға мүмкіндік береді, бұл ESP32 жағында кодтауды жеңілдетеді.

Болашақ мүмкіндіктер үшін бұл ақпаратқа басқа ақпаратты қосу қажет болуы мүмкін екенін есте ұстаған жөн (дәл күн мен уақыт немесе пайдаланушының телефонында ойнатылатын музыка сияқты), бұл сол арқылы оңай орындалады. логиканы қазіргідей құру.

6 -қадам: Код: ESP32 жағы

Код: ESP32 жағы
Код: ESP32 жағы
Код: ESP32 жағы
Код: ESP32 жағы

ESP32 коды қазіргі уақытта өте қарапайым. Ол U8g2lib кітапханасын қолданады, ол OLED экранын оңай басқаруға мүмкіндік береді (көрсетілген суреттің шағылуын қосады).

Негізінде, барлық ESP32 қолданбасы Bluetooth арқылы сериялық деректерді қолданба жібереді, оны талдайды және осы деректерді немесе осы деректерге негізделген суреттерді көрсетеді (яғни, «солға/оңға бұру» сөйлемінің орнына көрсеткіні көрсету). Міне код:

/*Android бағдарламасынан HUD -ты сериялық bluetooth арқылы басқаруға арналған бағдарлама*/#«BluetoothSerial.h» қосады // Serial Bluetooth үшін тақырыптық файл, әдепкі бойынша Arduino -ға қосылады#include #include #ifdef U8X8_HAVE_HW_SPI#include#endif# ifdef U8X8_HAVE_HW_I2C #include #endif // OLED кітапхана конструкторы, сәйкесінше экранға өзгерту қажет // Мемлекеттік машина анықталды_ өріс мәндері + айнымалы#маневр анықтау1 -өріс#анықтама нұсқаулықтар2 -өріс#қашықтықты анықтау 3 -өріс#endOfFrame 4 анықтау анықталды_ өріс = 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; логикалық fullsentence = жалған; void setup () {Serial.begin (9600); // 9600 bauds u8g2.begin () сериялық мониторын іске қосыңыз; // Init OLED control serialBT.begin («ESP32_BT»); // Bluetooth сигналының кешігуінің атауы (20); Serial.println («Bluetooth құрылғысы жұптауға дайын»);} void loop () {if (serialBT.available () &&! Fullsentence) // Bluetooth сериясы арқылы қабылданатын таңбалар {incoming_char = serialBT.read (); Serial.print («Алынған:»); Serial.println (кіріс_шарт); } switch (detect_field) {case manevrField: Serial.println («Анықталған өріс: маневр»); if (incoming_char == '.') // Келесі өріс анықталды {found_field = instructionsField; } else {// маневр түрінің ақпараттық массив маневрін толтырыңыз [nbr_char_maneuver] = кіріс_чар; nbr_char_maneuver ++; } үзіліс; жағдай нұсқауларыField: Serial.println («Анықталған өріс: нұсқаулар»); if (incoming_char == ',') // Келесі өріс анықталды {detect_field = distanceField; } else {// Нұсқаудың ақпарат жиымының нұсқауларын толтырыңыз [nbr_char_instructions] = incoming_char; nbr_char_instructions ++; } үзіліс; case distanceField: Serial.println («Анықталған өріс: қашықтық»); if (incoming_char == ';') // Кадр соңы анықталды {detect_field = endOfFrame; Serial.print («маневр:»); Serial.println (маневр); Serial.print («нұсқаулар:»); Serial.println (нұсқаулар); Serial.print («қашықтық:»); Serial.println (қашықтық); толық ақпарат = ақиқат; update_Display (); // Толық кадр алынды, оны талдаңыз және қайтарылатын деректерді көрсетіңіз} else {// Қашықтық туралы ақпарат жиынын толтырыңыз [nbr_char_distance] = кіріс_чар; nbr_char_distance ++; } үзіліс; case endOfFrame: if (incoming_char == ':') detect_field = maneuverField; // Жаңа кадр анықталды үзіліс; әдепкі: // Ештеңе бұзбаңыз; } delay (20);} void update_Display () {// Мүмкін болатын қақтығыстарды болдырмау үшін әрбір char массивін кэштеңіз memcpy (tempManeuver, маневр, 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 = tempInstructions; // мұнда хаттаманы енгізу. Әзірге тек бұрылыстарды қолдайды. if (maneuverString.substring (0, 4) == «бұрылу») {// Serial.print («TURN DETECTED») маневр түрін тексеріңіз; if (instructionsString.substring (0, 5) == «оңға») {// Нақты нұсқауларды тексеріңіз және сәйкесінше u8g2.drawStr (5, 15, «-») көрсетіңіз; } else if (instructionsString.substring (0, 4) == «солға») {// Нақты нұсқауларды тексеріңіз және сәйкесінше u8g2.drawStr (5, 15, «<---») көрсетіңіз; } else u8g2.drawStr (5, 15, «Қате.»); // Жарамсыз нұсқаулар өрісі}/ * Басқа маневр түрлерін енгізу (айналма жолдар және т.б…) * else if (tempManeuver == «rdbt») { * *] */ u8g2.drawStr (5, 30, tempDistance); // Қалған қашықтықты көрсету u8g2.sendBuffer (); // ішкі жадты дисплейге беру // Келесі оқу жиыны алдында барлық char массивтерін қалпына келтіру (маневр, 0, 10); memset (нұсқаулар, 0, 10); memset (қашықтық, 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 -қадам: Код: Android жағы

Код: Android жағында
Код: Android жағында
Код: Android жағында
Код: Android жағында
Код: Android жағында
Код: Android жағында

Смартфон қосымшасы үшін мен Mapbox -тың навигациялық SDK -ін қолдануды шештім, өйткені ол нөлден навигациялық картаны құруға қатысты көптеген пайдалы мүмкіндіктерді ұсынады. Бұл сонымен қатар көптеген пайдалы тыңдаушыларды қолдануға мүмкіндік береді, олар бұл модульдің жұмыс істеуіне көмектеседі. Мен сондай-ақ harry1453-тің андроид-bluetooth-сериялық кітапханасын андроидке қолдандым, себебі ол Bluetooth сериялық байланысын біріктіруді едәуір жеңілдетті.

Егер сіз бұл қосымшаны үйде жасағыңыз келсе, сізге Mapbox кіру таңбалауышы қажет, ол айына белгілі бір сұраныстар санына дейін тегін. Сіз бұл таңбалауышты кодқа енгізіп, қосымшаны өзіңізге салуыңыз керек. Сондай -ақ, өзіңіздің ESP32 Bluetooth MAC мекен -жайына код енгізу қажет болады.

Қалай болғанда да, бағдарлама сізді ағымдағы орналасқан жеріңізден картадан шертуге болатын кез келген жерге бағыттай алады. Кіріспеде айтылғандай, ол бұрылудан басқа ешқандай маневрді қолдамайды және маршруттардан тыс жерде әлі жұмыс істемейді.

Толық бастапқы кодты менің github -дан таба аласыз.

8 -қадам: Енді не болады?

Енді бұл бағдарлама өз пайдаланушысын белгіленген маршрут бойынша бағыттау үшін жеткілікті функционалды болғандықтан (егер белгіленген маршруттан ауытқулар болмаса), менің басты назарым смартфон қосымшасын жетілдіру және модульге айналдыратын бірнеше мүмкіндіктерді енгізу болады. навигациялық құрылғы. Бұған экран өшірулі кезде де телефоннан Bluetooth байланысын қосуды, сондай -ақ маневрдің басқа түрлерін (айналма жолдар, біріктіру,…) қолдауды қосады. Егер пайдаланушы бастапқы маршруттан ауытқып кетсе, мен маршрутты өзгерту мүмкіндігін енгіземін.

Мұның бәрі аяқталғаннан кейін мен контейнер мен оны бекіту механизмін жетілдіремін, оны 3D басып шығарамын және модульді бірінші рет іске қосуға тырысамын.

Егер бәрі ойдағыдай болса, менің ұзақ мерзімді мақсатым - бұл жобаның ендірілген электроникасына арналған теңшелетін ПХД құрастыру, бұл соңғы өнімде көп орынды үнемдеуге мүмкіндік береді.

Мен болашақта бұл модульге басқа функцияларды қоса аламын, соның ішінде уақыт дисплейі, сондай -ақ телефон хабарламасы дабылы, ол пайдаланушы мәтіндік хабар немесе қоңырау алған кезде белгішені көрсетуі мүмкін. Ақырында мен үлкен модульге Spotify мүмкіндіктерін қосқым келеді. Алайда, дәл осы уақытта бұл тек қана жағымды.

9 -қадам: Қорытынды және ерекше алғыс

Қорытынды және ерекше алғыс!
Қорытынды және ерекше алғыс!

Кіріспеде айтылғандай, бұл жоба аяқталуға жақын болса да, мен оны әлеммен бөліскім келді, бұл басқа біреуді шабыттандырады деп үміттенемін. Мен сондай -ақ осы тақырып бойынша зерттеулерімді құжаттағым келді, өйткені шын мәнінде AR мен HUD -ге қызығушылық жоқ, бұл ұят деп ойлаймын.

Мен Awall99 мен Данель Кинтанаға үлкен алғыс айтқым келеді, олардың сәйкесінше нақтыланған жобасы осы модульді жасауда маған көп шабыт берді.

Назар аударғандарыңыз үшін барлығыңызға рахмет, жақын арада бұл жоба жақсартылған кезде мен жаңартуды міндетті түрде жіберемін. Әзірге, барлығыңызбен кейін кездескенше!

Ұсынылған: