nxp-логотип

NXP AN14263 Frameworдо LVGL GUI жүзүн таанууну ишке ашыруу

NXP-AN14263-Implement-LVGL-GUI Жүздү рамка аркылуу таануу

Продукт маалыматы

Техникалык шарттар

  • Продукт аты: Framework боюнча LVGL GUI жүзүн таануу
  • Документти кайра карап чыгуу: 1 – 19 апрель 2024
  • Ачкыч сөздөр: Жүздү таануу, LVGL GUI, Framework

Продукт колдонуу нускамалары

  1. Бүттүview
    Бул продукт жөнөкөй LVGL GUI экс менен жүзүн таануу функциясын ишке ашыруу үчүн алкактагы жүзүн таануу үчүн AI & ML көрүү алгоритминин моделин иштетет.ample SLN-TLHMI-IOT тактасында.
  2. Framework Overview
    Чечимдин программалык камсыздоосу алкактык архитектуранын айланасында иштелип чыккан, ага түзмөктөрдү башкаруу үчүн жооптуу түзмөк менеджерлери, абстракциялоо үчүн HAL түзмөктөрү жана ар кандай түзмөктөр ортосундагы байланыш үчүн окуялар.
  3. Өзгөчөлүктөрү
    Продукт алдын ала камера аркылуу жүзүн таануу функциясын ишке ашырууга мүмкүндүк беретview GUI экранында бетти каттоону, таанууну жана алып салууну баштоо үчүн баскычтары бар. Катталган жүз дайындары Flashде a аркылуу сакталат file системасы.
  4. Колдонмо жазуусунун мазмуну
    Колдонмо жазуусу камерага чейинки LVGL GUI экранын көрсөтөтview жана бетке байланыштуу аракеттер үчүн баскычтар. Бул иштеп чыгуучуларга алкакты түшүнүүгө жана берилген экс колдонуу менен жүздү таанууну кантип ишке ашырууга жардам беретample.

Бүттүview

NXP акылдуу HMI тиркемелерине багытталган SLN-TLHMI-IOT аттуу чечимдерди иштеп чыгуу комплектин ишке киргизди. Ал бир NXP i.MX RT117H MCUде ишке ашырылган ML көрүнүшү, үн жана графикалык интерфейси менен акылдуу HMIди иштетет. SDK негизинде чечим программасы ийкемдүү дизайнды жана көрүү жана үн функцияларын ыңгайлаштырууну колдогон алкак деп аталган дизайнга негизделген. Колдонуучуларга программалык платформаны жакшыраак колдонууга жардам берүү үчүн кээ бир негизги документтер берилген, мисалыample, программалык камсыздоону иштеп чыгуу боюнча колдонмо. Колдонмо SLN-TLHMI-IOT аркылуу иштеп чыгуучуларга өз тиркемелерин жеңилирээк жана натыйжалуу ишке ашырууга жардам берүү үчүн, чечимдин бардык компоненттерин камтыган колдонмолордун негизги программалык дизайнын жана архитектурасын тааныштырат.
Чечим жана тиешелүү документтер жөнүндө көбүрөөк маалымат алуу үчүн, бул жерге кириңиз web ML Vision, Үн жана Графикалык UI менен i.MX RT117H негизинде NXP EdgeReady Smart HMI Solution барагы. Бирок, иштеп чыгуучулар үчүн бул негизги колдонмолорго таянуу менен акылдуу HMI тиркемелерин ишке ашыруу дагы деле оңой эмес. Алкактагы өнүгүүнү этап-этабы менен изилдөөгө жардам берүү үчүн бир катар өтүнмө эскертүүлөрү пландаштырылууда. Бул колдонмо эскертүүсү Implement LVGL GUI Camera Pre программасына негизделгенview Framework боюнча (AN14147 документи). Бул колдонмо эскертүүсү камеранын алдында жүзүн таануу функциясын ишке ашыруу үчүн алкактагы бетти таануу үчүн AI&ML көрүү алгоритминин моделин кантип иштетүү керек экенин сүрөттөйт.view жөнөкөй LVGL GUI экс менен GUI экранындаample SLN-TLHMI-IOT тактасында. Арыз жазуусунда эксample камерасы бар LVGL GUI экранын сунуштайтview жана кээ бир баскычтар жүздү каттоону, таанууну жана алып салууну иштетет. Катталган жүздүн маалыматтары Flashде бир аз аркылуу сакталат file системасы.

Жогорку денгээлде, колдонмонун эскертүүсү төмөнкү мазмунду камтыйт:

  • Алкактагы жүздү таануу функциясын иштетиңиз.
  • аркылуу алкагында жүз маалымат базасын колдоо кошуу file Flash тутумунда.
  • LVGL GUI колдонмосун ишке ашыруу. Жогорудагы киришүүлөр аркылуу бул документ иштеп чыгуучуларга жардам берет:
  • Алкакты жана акылдуу HMI чечим программасын тереңирээк түшүнүңүз.
  • LVGL GUI колдонмосу менен алкактарда алардын AI&ML жүзүн таануусун өнүктүрүңүз.

Рамка бүттүview
Чечимдик программалык камсыздоо, негизинен, бир нече түрдүү бөлүктөрдөн турган алкак архитектурасын колдонуунун айланасында иштелип чыккан:

  • Түзмөк менеджерлери - негизги бөлүгү
  • Аппараттык абстракция катмары (HAL) түзмөктөрү
  • Кабарлар/Окуялар

1-сүрөттө көрсөтүлгөндөй, ашыкчаview алкактын механизми болуп төмөнкүлөр саналат:

Түзмөк менеджерлери система тарабынан колдонулган түзмөктөрдү башкаруу үчүн жооптуу. Ар бир түзүлүштүн түрү (киргизүү, чыгаруу ж. Түзмөк башкаргычы түзмөктөр ага катталгандан кийин иштей баштаганда, ал катталган түзмөктөрдү инициализациялоодон жана ишке киргизгенден кийин түзмөктөргө жана башка башкаруучуларга маалыматтарды өткөрүп берүү үчүн билдирүүнү күтүп, текшерет. HAL түзмөктөрү төмөнкү деңгээлдеги драйвер кодунун үстүнө жазылган, бул көптөгөн негизги деталдарды абстракциялоо менен коддун түшүнүктүүлүгүн жогорулатууга жардам берет.

Окуялар - бул алардын менеджерлери аркылуу ар кандай түзмөктөр ортосунда маалымат алмашуунун каражаты. Окуя башталганда, окуяны алгач кабыл алган түзмөк ал окуяны өзүнүн менеджерине кабарлайт, андан кийин ал окуяны кабыл алууга дайындалган башка менеджерлерге кабарлайт.

NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (1)

Алкактын архитектуралык дизайны үч негизги максатка багытталган:

  1. Колдонуунун жеңилдиги
  2. Ийкемдүүлүк/Көчүрүү
  3. Performance

Алкак көрүү жана башка машина үйрөнүү тиркемелери үчүн рынокко чыгуу убактысын тездетүү максатында иштелип чыккан. Базарга тез чыгуу үчүн программалык камсыздоонун өзү түшүнүүгө жана өзгөртүүгө оңой болушу абдан маанилүү. Бул максатты эске алуу менен, алкактын архитектурасын чектөөсүз жана аткаруунун баасы жок өзгөртүү оңой.
Алкак жөнүндө көбүрөөк маалымат алуу үчүн, Smart HMI Программалык камсыздоону иштеп чыгуу боюнча Колдонуучуну караңыз (документ MCU-SMHMI-SDUG).

Жеңил жана көп тараптуу графикалык китепкана (LVGL)
LVGL (Жеңил жана универсалдуу графикалык китепкана) – бул колдонууга оңой графикалык элементтери, кооз визуалдык эффекттери жана эс тутумдун аз көлөмү менен камтылган GUI түзүү үчүн керектүү нерселердин бардыгын камсыз кылган эркин жана ачык булактуу графикалык китепкана.

GUI Guider
GUI Guider – бул ачык булак LVGL графикалык китепканасы менен жогорку сапаттагы дисплейлерди тез өнүктүрүүгө мүмкүндүк берген NXPден колдонуучуга ыңгайлуу графикалык колдонуучу интерфейсин өнүктүрүү куралы. GUI Guiderдин сүйрөө жана таштоо редактору LVGLдин виджеттер, анимациялар жана стилдер сыяктуу көптөгөн мүмкүнчүлүктөрүн колдонууну жеңилдетет, анда минималдуу же такыр коддолбогон GUI түзүү.

Бир баскычты чыкылдатуу менен сиз колдонмоңузду симуляцияланган чөйрөдө иштете аласыз же аны максаттуу долбоорго экспорттой аласыз. GUI Guiderден түзүлгөн кодду долбооруңузга оңой эле кошууга болот, бул иштеп чыгуу процессин тездетет жана колдонмоңузга камтылган колдонуучу интерфейсин оңой кошууга мүмкүндүк берет. GUI Guider NXP'дин жалпы максаты жана кроссовер MCU'лары менен акысыз колдонууга болот жана бир нече колдоого алынган платформалар үчүн орнотулган долбоордук шаблондорду камтыйт. GUI Guider боюнча LVGL жана GUI иштеп чыгуу жөнүндө көбүрөөк билүү үчүн, Light and Verrsatile Graphics Library жана GUI Guider текшериңиз.

Өнүгүү чөйрөсү

Биринчиден, мурунку ишке ашыруу үчүн аппараттык жана программалык чөйрөнү даярдап, орнотуңузampалкакта.

Аппараттык чөйрө
Аппараттык чөйрө экс текшерүү үчүн орнотулганampле:

  • NXP i.MX RT117H негизинде акылдуу HMI иштеп чыгуу комплекти (SLN_TLHMI_IOT комплект)
  • SEGGER J-Link 9 пин Cortex-M адаптери жана V7.84a же драйвердин жаңыраак версиясы менен

Программалык камсыздоо чөйрөсү
Программалык чөйрө экс иштеп чыгуу үчүн түзүлгөнampле:

  • MCUXpresso IDE V11.7.0
  • GUI Guider V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – мисampиштеп чыгуунун негизги программалык камсыздоосу катары экинчи өтүнмөнүн коду. чоо-жайы үчүн, карагыла https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 – иштеп чыгуу үчүн код ресурсу катары.
  • SLN-TLHMI-IOT программалык камсыздоо V1.1.2 – NXP GitHub репозиторийинде иштеп чыгуу үчүн код ресурсу катары чыгарылган акылдуу HMI булак коду. Чоо-жайы үчүн, караңыз: GitHub – NXP/mcu-smhmi at v1.1.2

Программалык камсыздоо чөйрөсүн алуу жана орнотуу жөнүндө чоо-жайын көрүү үчүн, караңыз: SLN-TLHMI-IOT менен баштоо.

Алкактагы көрүнүш архитектурасы

Алкактагы көрүү архитектурасы 2-сүрөттө көрсөтүлгөн. Көрүү алгоритми HAL (OASIS_HAL) төмөнкү процесстерге ээ:

  • UI HAL чыгышынан тиешелүү окуяларды алгандан кийин AI&ML көрүү алгоритминин модели аркылуу жүздү каттоону жана таанууну жасаңыз. Алгоритмдин моделинен чыккан жыйынтыктарды UI HAL чыгаруусуна кабарлаңыз.
  • Кичинекейге негизделген жүз өзгөчөлүктөрү базасына кире (кошуу, жок кылуу...). file UI HAL чыгышынан тиешелүү окуяларды алгандан кийин FaceDB HAL API'лерин чакыруу менен система.
  • Жүздү каттоо жана таануу учурунда HAL камерасынан камеранын видео кадрын сураңыз.

NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (3)

Жүздү таанууну алкакта ишке ашыруу

LVGL GUI жүзүн таануу эксampле (мурдагыampле кийинчерээк берилет) алкак боюнча экс негизинде ишке ашырылатampImplement LVGL GUI Camera Pre коддоруview Framework боюнча (AN14147 документи).

Экс-де жүзүн таанууну көрсөткөнү үчүнample, GUI колдонмосунун негизги функциясы (3-сүрөттөгү негизги экранды караңыз) төмөндө сүрөттөлгөндөй иштелип чыккан:

  • GUI колдонмосу Каттоо же Таануу баскычын басканда жүздү каттоо же таануу окуясын UI HAL чыгышына иштетет. Ал эми чыгуучу UI HAL жүздү каттоо ийгиликтүү аяктагандан кийин көрүү algo HAL колдонуучуну кошуу окуясы жөнүндө кабарлайт.
  • GUI колдонмосу колдонуучунун жүзү таанылгандан кийин Колдонуучуну жок кылуу баскычын басканда UI HAL чыгуучу колдонуучуну жок кылуу окуясын козгойт.
  • GUI колдонмосу баскычтардын жана сүрөттөрдүн сыртындагы экранды басканда UI HAL чыгуучу оазис алгосун токтотуу окуясын козгойт.

NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (10)

экс ишке ашыруу үчүн программалык пакетин даярдооample.

  • Негизги программалык камсыздоону lvgl_gui_camera_pre клондооview_cm7. Долбоордун атын жана негизгисин өзгөртүңүз fileаты lvgl_gui_face_rec_cm7.
  • Алкак программалык камсыздоодо жаңыланышы керек, анткени алкактык ядронун баштапкы коддору GitHub'да 1.1.2 версиясынан жалпыга ачык боло баштады.
  • Алкактык папканы GitHubдан V1.1.2 көчүрмөсү менен алмаштырыңыз files fwk_log.h жана fwk_common.h inc астында, анткени алар колдонмонун эскертмесинин сериясы үчүн өзгөртүлгөн. Операциялар 4-сүрөттө көрсөтүлгөн:NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (11)
  • Либдер тобунун астындагы framework_cm7 папкасын жок кылыңыз жана өзөктүн булак коду берилгендиктен, framework_cm7 китепканасын жана анын Долбоор > Каспеттер > C/C++ Build > орнотуулар > Курал Орнотуулары > MCU C++ Linker > Китепканаларда конфигурацияланган издөө жолун алып салыңыз.

Фреймворкто жүздү таануу функциясын иштетүү
Жүздү таануу өзгөчөлүгү статикалык китепкана катары берилген ML көрүү алгоритминин моделине курулган - NXP тарабынан Oasis Lite Runtime китепканасы. Китепкана кичинекей, жогорку эффективдүү, ыңгайлаштырылган жана оптималдаштырылган AI китепканасы. Модель бетти аныктоону, жүздү таанууну, айнекти аныктоону жана жандуулукту аныктоону камтыйт. Ал, негизинен, API OASISLT_run_extended() менен камсыз кылат, ошол эле учурда чалуучуга окуянын кайра чалуулары аркылуу натыйжаларды жаңыртып жатканда жүзүн таануу түтүгүн иштетүү жана булак кадр маалыматын, кайра чалууларды жана эстутумду көрсөткөндөн кийин жүздөрдүн маалымат базасына кайра чалуулар аркылуу маалымат базасына жүздөрдү кошуу/жаңыртуу/жок кылуу инициализациялоодо башка API OASISLT_init() чалуу менен китепкана колдонгон бассейн. API'лерди чакыруу жана кайра чалуу функциялары алкактын HAL көрүнүшүндө ишке ашырылат.

Vision algo моделинин китепканасын кошуңуз

  1. Китепкананы жана ага тиешелүү аталышты камтыган папканы көчүрүү file акылдуу HMI\coffee_machine\cm7\libs\'ден мурунку папка libsample SW.
  2. Баштын издөө жолун кошуңуз file Долбоор > Касиеттер > C/C++ Build > орнотуулар > Курал орнотуулары > MCU C компилятору > Камтыйт жана MCU C++ компилятору > Камтыйт: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Долбоор > Касиеттер > C/C++ Build > Орнотуулар > MCU C+ + Linker > Китепканалар: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” жана макро аныктамасына lib жана анын издөө жолун кошуңуз Долбоор > Касиеттер > C/C++ Build > Орнотуулар > Курал Орнотуулары > MCU C компилятору > Препроцессор жана MCU C++ компилятору > Препроцессор: SMART_TLHMI_2D боюнча функцияны иштетиңиз

Vision algo HAL иштетүү
Vision algo HAL vision algo моделин иштөөгө түртөт жана андан окуяларды алгандан кийин UI чыгаруу HAL натыйжаларына жооп берет.

Аны иштетүү үчүн, окшош HAL драйверин клондоңуз file анда төмөндөгү функциялар ишке ашырылат:

  • Жүздүн маалымат базасы операцияларынын жана окуяларды башкаруунун кайра чалууларын ишке ашыруу.
  • Oasis китепканасынын API'лерин чакырып, визуалдык алгоритмди иштетиңиз.
  • Колдонуучунун бетинин маалымат базасына жана колдонмолордун маалымат базасына кирүү (бул мурункуampле).
  • Окуяларды кабыл алып, натыйжаларды UI HAL чыгарууга жөнөтүңүз.

Негизги иштер мурдагы үчүн HAL ишке ашыруу боюнчаampалар:

  • Бар болгон окшош HAL драйверин клондоңуз file жана тиешелүү аталыштарды өзгөртүү.
  • Колдонмонун маалымат операцияларына байланыштуу коддорду алып салыңыз.
  • Окуяларды башкаруу үчүн аныктамаларды жана функцияларды мурунку UI HAL чыгышынан жаңыртыңызample дизайн.
  • Оазис инициализациясында талап кылынган конфигурацияларды кошуңуз.

Детальдуу кадамдар төмөндөгүдөй:

  1. hal_vision_algo_oasis_coffeemachine.c клону. өзгөртүү fileатын hal_vision_algo_oasis_guifacerec.c. Жана бардык CoffeeMachine саптарын GUIFaceRec менен алмаштырыңыз file.
  2. Колдонмонун маалымат базасына тиешелүү coffeedb сапты камтыган коддорду алып салыңыз (мисалыample, #include hal_sln_coffeedb.h.
  3. UI HAL чыгышындагы окуяларды башкаруу үчүн HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() функциясын өзгөртүңүз.
    • Окуянын аныктамасын kEventFaceRecId_RegisterCoffeeSelection үчүн kEventFaceRecId_RegisterUserFace жана regCoffeeSelection структуралык сабын regGUIFaceRec үчүн окуяны иштетүү үчүн маалымат базасына жаңы бет өзгөчөлүгү дайындарын кошуу үчүн өзгөртүңүз.
    • Экс-де жүзүн таануу аракеттеринин стандарттуу процессин көрсөтүүample, абалдардын аныктамалары менен kEventFaceRecID_OasisSetState учурда иштетүүнү өзгөртүңүз:
      • kOASISLiteState
      • Каттоо kOASISLiteState
      • kOASISLiteState таануу
      • Токтотту
  4. Жогорудагы кадамда айтылган окуялардын аныктамаларын кошуу жана өзгөртүү.
    • Башты көчүрүү file smart_tlhmi_event_descriptor.h смарт HMI\coffee_machine \cm7\source\event_handlers\ папкасынын булагынаample SW. жаңыртуу file төмөндөгүдөй:
    • Окуянын аныктамасын kEventFaceRecId_RegisterCoffeeSelection деп enum түрүндөгү kEventFaceRecId_RegisterUserFace кылып _event_smart_tlhmi_id жана структуралык сап regCoffeeSelection _event_smart_tlhmi түзүмүндөгү regGUIFaceRec кылып өзгөртүңүз Ошентип, regCoffeeSelection үчүн register_coffee_selection_event_t түзүмүн register_gui_facerec_event_t кылып өзгөртүңүз.
    • Кофе машинасы үчүн колдонулган башка мазмунду жок кылыңыз, мисалыampле, үн жөнүндө код сап: #include “hal_event_descriptor_voice.h”.
    • Hal_vision_algo.h ичиндеги oasis_lite_state_t enum түрүнө kOASISLiteState_Stopped жана kOASISLiteState_Running түрлөрүн төмөндөгүдөй долбоордо framework>hal>vision астында кошуңуз:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Running, kOASISLiteState
      • Токтотулду, kOASISLiteState
      • таануу,
      • kOASISLiteState
      • Каттоо, kOASISLiteState
      • Каттоодон чыгаруу, kOASISLiteState
      • RemoteRegistration, kOASISLiteState
      • Сан
    • Жогорудагы жаңыланган oasis_lite_state_t структурасын төмөнкүдөй долбоордогу framework>hal>vision алкагында hal_event_descriptor_face_rec.h ичиндеги oasis_state_event_t түзүмүн тактоо үчүн колдонуңуз: typedef struct _oasis_state_event_t { oasis_lite_state_t; } oasis_state_event_t;
  5. Бардык kEventInfo_Remoteди kEventInfo_Local деп өзгөртүңүз, окуяларды көрүү algo HALдан бир өзөктө иштеген башка HALларга жөнөтүү үчүн, мурунку эки өзөктүн ордуна бир өзөктө иштейт.ample.
  6. OASISLT_init():
    • board_define.h ичинде видео кадр үчүн макро аныктамаларды жана эстутум бөлүмдөрүн кошуңуз: #define OASIS_RGB_FRAME_WIDTH 800
      • #OASIS_RGB_FRAME_HEIGHT 600 аныктаңыз
      • #аныктоо OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
      • #аныктоо OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
      • #аныктоо AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
      • __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __атрибут__((тегизделген(тегизделип))))
    • Эстутум дайындоосун жогорудагы эс тутум бөлүмүнө fb_sh_mem Долбоор > Касиеттер > C/C++ Build > 5-сүрөттө көрсөтүлгөн MCU Орнотууларында конфигурациялаңыз:NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (12)
    • lvgl_gui_face_rec_cm7.cpp ичинде g_DTCOPBuf глобалдык өзгөрмөсүн жарыялоо: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Жогорудагы өзгөрмөдө колдонулган аныктамаларды кошууну улантыңыз:
    • board_define.h ичинде жогорудагы бөлүмдү аныктаңыз:
      • #DEfine AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
      • атрибут__((бөлүм(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
      • атрибут__((тегизделген(тегизделип))))
    • Башты кошуңуз file hal_vision_algo.h lvgl_gui_face_rec_cm7.cpp камтылган app_config.h ичинде DTC_OPTIMIZE_BUFFER_SIZE макро аныктамасын камтыган.
  7. Жүздү таанууда прогресстин абалын көрсөтүү үчүн s_debugOption өзгөрмөсүн чындыкка коюңуз.
  8. Баштын издөө жолун кошуңуз fileДолбоордогу HAL көрүнүшү > касиеттери >C/C++ Build > орнотуулар > Курал Орнотуулары > MCU C компилятору > Камтыйт жана MCU C++ компилятору > Камтыйт: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. board_define.h ичинде vision algo HAL иштетүү үчүн төмөнкү аныктаманы кошуңуз: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec

UI HAL чыгарууну иштетүү
Чыгуу UI HAL көрүнүшү algo HAL окуяларды кабарлайт жана көрүү algo HAL жыйынтыгына жооп берет. GUI колдонмосу менен окуялар жалпысынан колдонмо тарабынан ишке ашырылат жана натыйжалар колдонмодо көрсөтүлөт.

Аны иштетүү үчүн, окшош HAL драйверин клондоңуз file анда жалпысынан төмөнкү функциялар ишке ашырылат:

  • Жүздү таануу жана маалымат базасына кирүү үчүн окуяларга кабарлаңыз.
  • Окуяларды баштоо үчүн GUI колдонмосу үчүн кайра чалууларды ишке ашырыңыз.
  • Көрүнүш алго модулунун жыйынтыгын чыгарыңыз.
  • Таймерлер жана бет жетектөөчү тик бурчтук менен башкарылган прогресс тилкеси аркылуу UIде окуяларды иштетүү процессин жана натыйжаларын көрсөтүңүз.

Негизги иштер мурдагы үчүн HAL ишке ашыруу боюнчаampБул документте төмөнкүлөр колдонулат:

  • Бар болгон окшош HAL драйверин клондоңуз file жана тиешелүү аталыштарды өзгөртүү.
  • Колдонмого байланыштуу коддорду алып салыңыз.
  • Окуялар жөнүндө билдирүү жана натыйжаларга жооп берүү функцияларын жаңыртыңызample дизайн.
  • Окуяларды баштоо үчүн GUI колдонмосуна кайра чалууларды кошуңуз.

Детальдуу кадамдар төмөндөгүдөй:

  1. hal_output_ui_coffee_machine.c клондоо. өзгөртүү fileатын hal_ output_ui_guifacerec.c.
  2. CoffeeMachine бардык саптарын GUIFaceRec менен алмаштырыңыз file.
  3. Колдонмого тиешелүү коддорду алып салыңыз - кофе машина.
    • WakeUp() жана _StandBy() функцияларын жана ага тиешелүү коддорду алып салыңыз (алар үчүн wake_up жана күтүү саптарын издеши мүмкүн).
    • Алдын ала алып салууview HAL_OutputDev_UiGUIFaceRec_Input Notify() ичиндеги тиешелүү коддорду иштетүүчү режим окуялары.
    • UI_xxx_Callback() функцияларын жана gui_ сабын жана кофе машинасынын GUIге тиешелүү экранын камтыган коддорду алып салыңыз, gui_set_virtual_face() мурунтан элеview режим өзгөчөлүгү.
    • Кофе машинасынын колдонмосуна тиешелүү s_IsWaitingAnotherSelection жана s_IsWaitingRegisterSelection өзгөрмөлөрү менен байланышкан бардык коддорду алып салыңыз.
    • Үнгө, аудиого жана тилге тиешелүү коддорду алып салыңыз. Мисалы үчүнampле:
      • #include "hal_voice_algo_asr_local.h",
      • #include "hal_event_descriptor_voice.h"
  4. Ар кандай окуялар жөнүндө кабарлоо үчүн, _StopFaceRec(), _RegisterCoffeeSelection() жана DeregisterCoffeeSelection() функциясына шилтеме жасап, _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() жана DeregisterGUIFaceRec() жаңы функцияларын ишке ашырыңыз.
    • _OutputManagerNotify() окуяны көрүү алгоритмине HAL жөнөтүү үчүн негизги окуяны чыгаруу функциясын ишке ашырат. Төмөнкү функциялар аны өз окуяларын жөнөтүү үчүн чакырат.
    • _SetFaceRec() бетти каттоо, таануу жана алгону токтотуу үчүн көрүү алгосун ишке киргизүү үчүн kEventFaceRecID_OasisSetState окуясын жөнөтөт.
    • _RegisterGUIFaceRec() каттоо ОК болгондо маалымат базасына жүз өзгөчөлүгү дайындарын кошуу үчүн smart_tlhmi_event_descriptor.h дарегинде аныкталган kEventFaceRecId_RegisterGUIFaceRec окуясын жөнөтөт.
    • DeregisterGUIFaceRec() жүздү таануудан өткөндө маалымат базасынан жүз өзгөчөлүгү дайындарын жок кылуу үчүн kEventFaceRecID_DelUser окуясын жөнөтөт.
  5. Тийиштүү аракеттерди көрүү үчүн коддорду жаңыртыңыз, анын ичинде мурунку _InferComplete_Vision() функциясында жүздү каттоонун жана таануунун натыйжалары үчүн LVGL GUI колдонмосунан API'лерди чакырып GUIди жаңыртыңызample дизайны. Мисалы үчүнample, жүздү каттоо ийгиликтүү болгондо,
    • _FaceRecProcess_Stop() чакырып прогрессти көрсөтүүнү токтотуңуз;
    • _SetFaceRec(kOASISLiteState_Stopped);
    • GUIде ийгиликтүү натыйжаны көрсөтүү: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Жүз маалыматтарын маалымат базасына каттаңыз: _RegisterUserFace(s_UserId);
  6. Окуяларды башкаруу үчүн UI кайра чалуу функцияларын кошуңуз: preview, жүздү каттоо, таануу жана GUIден колдонуучу жок кылуу. Мисалы үчүнample, жүздү каттоону кайра чалуу: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
    • Жана ар кандай окуяларда жана натыйжаларда прогрессти жана статусту көрсөтүү үчүн _FaceRecProcess_Start() жана _FaceRecProcess_Stop() функцияларын кошуңуз.
    • Таймердин ISR кайра чалуу функциясын _SessionTimer_Callback() жаңыртыңыз: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
  7. board_define.h ичинде UI чыгышы HAL иштетүү үчүн төмөнкү аныктамаларды кошуңуз: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec

Эскертүү:
Жүздү таануу функциясын жакшыраак көрсөтүү үчүн UI HAL чыгуусунда жүздү таануу процессин жана натыйжаларын көрсөтүү функциясын сактап коюңуз. Функция төмөндөгүдөй сүрөттөлөт

  • Жүздүн жетектөөчү тик бурчтугу көк түстү, ал эми прогресс тилкеси жүздү каттоону же таанууну баштоонун жүрүшүн көрсөтөт.
  • Жүздү каттоо ийгиликтүү болгондо жүз жетектөөчү тик бурчтук кызыл түстү көрсөтөт.
  • Жүздү таануу ийгиликтүү болгондо жүз жетектөөчү тик бурчтук жашыл түстү көрсөтөт.
  • Таймердин мөөнөтү аяктагандан кийин аракет ийгиликсиз болгондо, жүз жетектөөчү тик бурчтук көк бойдон калат, ал эми прогресс тилкеси толук прогрессти көрсөтөт. Ошол учурда, жүздү каттоону же таанууну токтотуңуз.

Прогресс тилкеси жана бетти жетектөөчү тик бурчтук экилик ресурска орнотулган иконалар катары берилген file Flashке программаланышы керек. SDRAMдагы иконалар маалыматтарына көрсөткүчтөр UI HAL чыгышындагы UI HAL түзмөгүн инициализациялоодо чакырылган LoadIcons(APP_ICONS_BASE) функциясында орнотулган. Ал функция үчүн иконаларды колдоону ишке ашырышы керек.

Колдоо иконкаларын ишке ашырыңыз

  1. LVGL GUI колдонмосунда колдонулган сүрөттөр менен иконаларды бириктирген ресурсту түзүңүз:
    • Төрт сөлөкөтүн башын клондоңуз fileакылдуу HMIден s process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h жана virtual_face_red_420x426.h
      \ кофе машинасы \ ресурс \ иконкалар \ мурунку ресурс папкасынын астындагы жаңы папканын сүрөтчөлөрүнөample SW.
    • Төрт сөлөкөтүн издөө жолун кошуңуз files камерада_preview_resource.txt file ресурс папкасында, мисалыample: icon ../resource/icons/process_bar_240x14.h
    • camera_pre иштетүүview_resource_build.bat урнаны түзүү үчүн сүрөттөрдү жана иконаларды түзүү үчүн file camera_preview_resource.bin жана маалымат file resource_information_table.txt (6-сүрөттү караңыз).NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (13)
  2. SDRAMдагы баштапкы даректи жана app_config.h ичиндеги сүрөтчөлөрдүн өлчөмүн аныктаңыз. Дарек GUI колдонмосунун сүрөттөрүнүн жанында башталат. Өлчөмү маалыматта түзүлөт file. #DEfine APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #DEfine APP_ICONS_SIZE 0x107c40
  3. res_sh_mem деп аталган эстутум бөлүмүнүн дайындалган өлчөмүн app_config.h ичинде кайра аныктоо менен 0x200000 кылып жаңыртыңыз: #define RES_SHMEM_TOTAL_SIZE 0x200000 жана Долбоор > Properties > C/C++ Build > MCU жөндөөлөрүндө тиешелүү жөндөө.
  4. Негизги APP_LoadResource() функциясында Flashтен SDRAMга жүктөлгөн ресурстун жалпы өлчөмүнө белгинин өлчөмүн кошуңуз file lvgl_gui_face_rec_cm7.cpp: memcpy((жараксыз *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Эскертүү: Жүздү таануу функциясын аягына чыгаруу үчүн, LVGL GUI колдонмосунун колдоосу керек. UI HAL чыгышындагы UI кайра чалуу функциялары UI экранынан окуяларды башкаруу үчүн LVGL GUI колдонмосу тарабынан чакырылат. Башка жагынан алганда, UI HAL чыгаруу LVGL GUI колдонмосунан API'лерди чакырып, натыйжаны жана абалды көрсөтүү үчүн UIди жаңыртат. LVGL GUI колдонмосун иштеп чыгуу салыштырмалуу көз карандысыз жана 4.3 бөлүмүндө киргизилген.

4.1.5 Жүздү таануу үчүн HAL түзмөктөрүн жана менеджерлерин иштетиңиз
Иштетилген көрүү algo HAL жана UI чыгышы HAL жана алардын менеджерлери негизги ишке киргизилет file
lvgl_gui_face_rec_cm7.cpp төмөнкүдөй алкактагы иштеп чыгуунун конверсияларынан кийин:

  1. Башты кошуңуз file код сабын кошуу менен эки HAL менеджери менен байланышкан:
    • #include ” fwk_output_manager.h “
    • #include "fwk_vision_algo_manager.h"
  2. HAL түзмөктөрүн жарыялоо:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. HAL түзмөктөрүн каттоо:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
  4. Менеджерлерди инициализациялоо:
    • FWK_MANAGER_INIT(VisionAlgoManager, ret);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Менеджерлерди баштаңыз:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Менеджердин милдеттеринин артыкчылыктуулугун аныктаңыз:
    • #VISION_ALGO_MANAGER_TASK_PRIORITY 3-ти аныктоо
    • #ЧЫКТЫ_БАШКАРУУЧУ_ТАПСЫРМА_АРТЫКЧЫЛЫГЫН аныктоо 1

Фреймворкке жүз маалымат базасын колдоону кошуңуз
Катталган жүз өзгөчөлүгү маалыматтарына Flashте сакталган беттер базасына бир аз аркылуу кирүүгө болот file системасы. Жүздүн маалымат базасын колдоону кошуу кадамдары төмөндө сүрөттөлөт.

Flash сактагыч үчүн драйверлерди кошуңуз
Flash интерфейсинин FlexSPI драйверин көчүрүңүз files fsl_flexspi.c жана fsl_flexspi.h жана маалыматтарды шифрлөө драйвери files fsl_caam.c жана fsl_caam.h жолдон SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ мурунку драйверлер папкасынаample SW.

Башкармалык деңгээлдеги колдоону кошуңуз

  1. board.h сайтында Flash түзмөгү үчүн колдонулган FlexSPI аныктамаларын кошуңуз:
    • #BOARD_FLEXSPI FLEXSPI1 аныктаңыз
    • #BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1 аныктаңыз
    • #аныктоо BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Операторлорду жана конфигурацияларды көчүрүңүз fileflexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h жана sln_flash_ops.h папкасынын смарт-смартфонунун смарт-смарт-смарт.confi.conf.cm\cmf мурункуample SW.
    • C/C++ Build > Орнотуулардагы "Ресурсту куруудан чыгаруу" белгисин алып салыңыз. fileаты жана аларды долбоорго киргизүүгө мүмкүндүк берүү үчүн касиеттерди ачуу.
  3. Камтылган башты өзгөртүү filesln_flash_config.c жана flexspi_nor_flash_ops.h ичиндеги sln_flash_config_w25q256jvs.h деп sln_flash_config.h деп атаңыз.
  4. FlexSPI1 саат булагын коюңуз file clock_config.c кофе машинасынын колдонмосуна шилтеме жасоо.

Адаптерди жана орто деңгээлдеги колдоону кошуңуз

  1. көчүрүү filesln_flash.c, sln_flash.h, sln_encrypt.c жана sln_encrypt.h адаптер драйверлери катары file акылдуу HMI\coffee_machine\cm7\source\ жолунан мурунку папка булагына чейин тутум жана колдонмоample. Жаңысын жаңыртыңыз files:
    • Курулуш үчүн алардагы "Ресурсту куруудан чыгаруу" белгисин алып салыңыз.
    • Бардык камтылган башты өзгөртүү file sln_flash_config.h деп sln_flash_config_w25q256jvs.h деп атаңыз.
  2. Папканы көчүрүү fileкичинекей үчүн APIлерди камтыган система fileсистемасы жана HAL драйвери акылдуу HMI \coffee_machine\cm7\source\ тартып мурункуample SW. Жана жаңы папканы жаңыртыңыз:
    • Курулуш үчүн андагы "Ресурсту куруудан чыгаруу" белгисин алып салыңыз.
    • Долбоордун жөндөөлөрүнө анын кошуу жолун кошуңуз: “${workspace_loc:/${ProjName}/fileсистемасы}”
    • Камтылган башты өзгөртүү file sln_flash_config.h дегенди sln_flash_config_w25q256jvs.h жана fica_definition.h дегенди app_config.h деп атаңыз file sln_flash_littlefs.h.
  3. Ортоңку буюмду камтыган littlefs папкасын көчүрүңүз – аз fileсистема SDK_2_13_0_ MIMXRT1170-EVK \middleware\ жолунан мурункуга чейинample SW. Жана жаңы папканы жаңыртыңыз:
    • Курулуш үчүн андагы "Ресурсту куруудан чыгаруу" белгисин алып салыңыз.
    • Долбоордун жөндөөлөрүнө анын кошуу жолун кошуңуз: “${workspace_loc:/${ProjName}/littlefs}”

HAL драйверлерин кошуңуз 

  • эки HAL түзмөк бар - file тутум жана бет маалымат базасы HAL маалымат базасына кирүү мүмкүнчүлүгү үчүн колдоого алынат жана алар эч кандай өзгөрүүсүз алкактарда ишке ашырылган. board_define.h дарегине төмөнкү аныктамаларды кошуу менен аларды иштетиңиз:
    • #DEfine ENABLE_FLASH_DEV_Littlefs
    • #DEfine ENABLE_FACEDB

Ал эми мурунку үчүн жүз базасынын атын өзгөртүүample: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”

Колдонмо деңгээлиндеги колдоону кошуңуз

  1. Негизгисин жаңыртыңыз file lvgl_gui_face_rec_cm7.cpp:
    • Башты кошуңуз file Flash менен байланыштуу file код сабын кошуу менен системанын HAL менеджери: #include “fwk_flash.h”
    • Декларация жана катталуу file системасы HAL аппараты:
      • HAL_FLASH_DEV_DECLARE(Littlefs);
      • HAL_FLASH_DEV_REGISTER(Littlefs, ret);
        Эскертүү: The file тутумдук HAL түзмөгү APP_InitFramework() функциясында бардык түзмөк башкаруучулары инициализацияланганга чейин катталышы керек.
    • MPU конфигурациялоо үчүн APP_BoardInit() ичинде BOARD_ConfigMPU() функциясын чакырыңыз.
  2. коюңуз file ичинде Flash боюнча система дайындоо file app_config.h файлында колдонулган макро аныктамаларды аныктоо менен file sln_flash_littlefs.h:
    • #FICA_IMG_ аныктооFILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #FICA_ аныктооFILE_SYS_SIZE (0x280000)

Конфигурациялар
Кээ бир Flash-байланыштуу коддору жетиштүү аткаруу үчүн SRAM ITC аймагында аткарылат. Акылдуу HMI\coffee_machine\cm7\ жолунда шилтемелөөчүнүн конфигурацияларын камтыган папканын шилтеме скрипттерин көчүрүңүз.ample SW.

LVGL GUI колдонмосун ишке ашыруу
Алкактын негизинде LVGL GUI колдонмосун иштеп чыгуу UI HAL чыгуусунан API'лерди чакырат жана UI HAL чыгаруу үчүн API'лерди камсыз кылат (UI HAL чыгарууну ишке ашыруу үчүн 4.1.3 бөлүмүн караңыз).

Бирок, LVGL GUI колдонмосун деталдуу ишке ашыруу өтүнмөнүн талаптарына жана дизайнына жараша болот. Бул мурунку GUI колдонмосуample бөлүмдүн 4-бөлүмүнүн башында сүрөттөлгөндөй иштелип чыккан.

Төмөндө ишке киргизүү боюнча:

  1. Ыңгайлаштырылган коддор GUI Guider долбоору менен камтылган система долбоорунун ортосундагы интерфейс катары GUI Guider тарабынан берилген custom.c жана custom.h ичинде ишке ашырылат.
    •  Төмөнкү функцияларга жетишүү үчүн custom.c ичинде gui_xxx() деп аталган жаңы функцияларды кошуңуз:
      • UI HAL чыгаруу жана UI жаңыртуу үчүн GUI колдонмосу үчүн.
      • GUI колдонмосу үчүн UI HAL чыгышынан UI кайра чалуу функцияларын чакырып, окуяларды козгойт.
        Мисалы үчүнample, жаңы функция gui_event_face_rec_action() тиешелүү баскыч басылганда GUI колдонмосунан иштетилген жүздү каттоо, жүзүн таануу жана колдонуучуну жок кылуу окуяларынын бирин иштетүү үчүн UI кайра чалуу функцияларын чакырат.
        Эскертүү: gui_set_virtual_face() функциясы алдын ала UI HAL чыгарууда чакырылганview режим custom.c ичинде ишке ашырылышы керек:
    •  Smart HMI\coffee_machine\cm4\custom \custom.c'ден gui_set_virtual_face() клондоо функциясы.
    •  Виджеттин атын home_img_cameraPre өзгөртүңүзview screen_img_camera_preview функцияда.
    •  GUI Guider долбоору менен шайкеш болуу үчүн custom.c ичиндеги #ifndef RT_PLATFORM макро аныктамасынын көзөмөлүндө UI HAL чыгышындагылардын баарына бирдей прототип менен UI кайра чалуу функцияларын ишке ашырыңыз, анткени UI HAL чыгышындагы бул функциялар камтылган платформа. custom.c ичинде алар GUI жетектөөчүсүндөгү симуляторго көз каранды жана камтылган платформадан көз карандысыз. Мисалы үчүнample, жүздү каттоону кайра чалуу GUI Guider симулятору үчүн төмөнкүдөй ишке ашырылат: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = false; кайтаруу; }
      Эскертүү: 6 Бөлүмдүн 4.1.3-кадамында киргизилген функциянын ошол эле прототибин караңыз
      RT_PLATFORM макро аныктамасы 7-сүрөттө көрсөтүлгөндөй MCUXpresso долбоорунун орнотууларында орнотулган:NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (14)
    • custom.h ичинде UI_xxx_Callback() жана gui_xxx() деп аталган бардык функцияларды жарыялаңыз жана GUI API'лерин UI чыгышына HAL бөлүшүү үчүн smart_tlhmi_event_descriptor.h ичинде камтылган custom.h кошуңуз.
  2. GUI гидинде GUIди иштеп чыгуу:
    • Папканын камерасын алдын ала клондоңузview lvgl_gui_camera_pre базалык программа пакетиндеги gui_guider папкасында GUI Guider долбоорунун программасын камтыганview_cm7. Тиешелүү аталышты өзгөртүңүз camera_preview жаңы экс үчүн face_recample.
    • Жогорудагы жаңыртылган custom.c жана custom файлдарын көчүрүңүз. h жаңы GUI Guider долбоорунун программасына.
    •  GUI Guider'де жаңы face_rec долбоорун ачыңыз. Төмөнкүдөй жаңыртуу:
      • Колдонуучуну жок кылуу деп аталган жаңы баскычты кошуңуз. GUI колдонмосу башталганда баскыч жашырылгандай кылып, ага Жашырылган желекти кошуңуз.
      • Жүздү каттоо, жүзүн таануу жана колдонуучуну жок кылуу окуяларын баштоо үчүн Каттоо, таануу жана Колдонуучуну жок кылуу баскычтарынын Окуялар жөндөөлөрүндөгү "Чыгарылган" триггерине ар кандай окуя ID параметри менен API gui_event_face_rec_action() чалуу код сабын кошуңуз. 8-сүрөттө Каттоо баскычынын окуясынын коду көрсөтүлгөн:NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (15)
  3. GUI Guiderден түзүлгөн кодду MCUXpresso долбооруна жаңыртыңыз.
    • MCUXpresso долбоору SW тарабынан түзүлгөн папкадагы сүрөттөрдөн башка мазмунду GUI Guider долбоору SW тарабынан түзүлгөн папкадагы тиешелүү сүрөттөр менен алмаштырыңыз.

Эскертүү: Жогоруда киргизилген өзгөртүүлөр жөнүндө көбүрөөк маалымат алуу үчүн, мурункуну текшериңизample программалык камсыздоо at https://mcuxpresso.nxp.com/appcodehub.

Экс менен текшерүүлөрample долбоору

Мурункусун алуу үчүнampБул колдонмонун ресурстарын жана куралдарын камтыган программалык пакетке кириңиз: https://mcuxpresso.nxp.com/appcodehub. Эксти ачыңызampMCUXpresso IDE боюнча долбоор. .axf түзүңүз жана программалаңыз file 0x30000000 дарегине жана ресурс кутусун программалаңыз file camera_preview_resource.bin 0x30800000 дарегине.

LVGL GUI жүзүн таануу эксample төмөнкүдөй адатта иштейт:

  • Preview: Күйгүзүлгөндө, камера тарабынан тартылган видео агымдар камеранын алдын ала белгилүү бир аймагында көрсөтүлөтview GUI экранында. Статус энбелгиси "Алдын алаview…”. Чоо-жайы үчүн 3-сүрөттү караңыз. Колдонуучуну жок кылуу баскычы жашырылган. баскычтардын жана сүрөттөрдүн сыртындагы аймакты басканда, ал алдын ала көрсөтөтview жүздү каттоо же таануу аракети аяктагандан кийин жогорудагыдай айтыңыз.
  • Каттоо:
    • тартуу: Каттоо баскычы басылганда жүздү каттоо башталат. Статус энбелгиси “Каттоо…” көрсөтүүгө өзгөрөт, бет жетектөөчү тик бурчтук көк түстү көрсөтүп, прогресс тилкеси прогрессти көрсөтө баштайт. Каттоо үчүн колдонуучунун жүзү көк жүз жетектөөчү тик бурчтукка көрүнүп турганын текшериңиз.
    • ийгилик: Статус энбелгиси “Каттоо…ОК” жана катталган колдонуучунун ID номерин көрсөтөт, эгер жүздү каттоо ийгиликтүү болсо, тилкеде прогресс толук көрсөтүлө электе, беттин жетектөөчү тик бурчтугу кызыл болуп калат.
    • Ката -> Убакыт аяктады: Статус энбелгиси "Каттоо...Убакыт бүттү" деп көрсөтөт, эгер прогресс тилкеде толук көрсөтүлгөндө жүздү каттоо дагы эле ишке ашпай жатса.
    • Катачылык -> Кайталоо: Статус энбелгиси “Каттоо…Ийгиликсиз” көрсөтөт, эгер катталган бет прогресс тилкеде толук көрсөтүлө электе таанылса, бет жетектөөчү тик бурчтук жашыл болуп калат.
  • таануу:
    • Ишке киргизүү: Таануу баскычы басылганда, жүздү таануу башталат. Статус энбелгиси “Таануу…” көрсөтүүгө өзгөрөт, бет жетектөөчү тик бурчтук көк түстү көрсөтүп, прогресс тилкеси прогрессти көрсөтө баштайт. Каттоо үчүн колдонуучунун жүзү көк жүз жетектөөчү тик бурчтукта көрсөтүлгөнүн текшериңиз.
    • ийгилик: Статус энбелгиси “Таануу…ОК” жана таанылган колдонуучунун ID номерин көрсөтөт, эгер жүздү таануу ийгиликтүү болсо, тилкеде прогресс толук көрсөтүлө электе, беттин жетектөөчү тик бурчтугу жашыл болуп калат. Бул учурда, Колдонуучуну жок кылуу баскычы пайда болот. Бул колдонуучу таанылганда гана өчүрүүгө уруксат берилгенин билдирет.
    • оору: Прогресс тилкеде толук көрүнгөндө жүзүн таануу дагы эле ишке ашпай жатса, абал энбелгиси “Таануу...Убакыт аяктады” көрсөтөт.
  • Колдонуучуну жок кылуу: “Колдонуучуну жок кылуу” баскычы басылганда, жүзүн таануу ийгиликтүү болгондон кийин, статус энбелгиси “Колдонуучуну жок кылуу… OK” дегенди көрсөтүүгө өзгөрөт, бет жетектөөчү тик бурчтук көк түскө айланат жана тилкеде прогресс толук көрсөтүлөт. Колдонуучуну жок кылуу баскычы кайрадан жашырылган. Таанылган жүз/колдонуучу маалымат базасынан жок кылынат. Бул жүз/колдонуучу кайра катталмайынча таанылбайт дегенди билдирет.

Документтеги баштапкы код жөнүндө эскертүү
ExampБул документте көрсөтүлгөн код төмөнкү автордук укукка жана BSD-3-Clause лицензиясына ээ:

Copyright 2024 NXP Булак жана бинардык формаларда кайра бөлүштүрүү жана колдонуу, өзгөртүү менен же жок, төмөнкү шарттар аткарылган шартта уруксат берилет:

  1. Баштапкы кодду кайра бөлүштүрүүдө жогорудагы автордук укук эскертүүсү, бул шарттардын тизмеси жана кийинки жоопкерчиликтен баш тартуу керек.
  2. Бинардык формада кайра бөлүштүрүү жогорудагы автордук укук эскертүүсүн, бул шарттардын тизмесин жана документациядагы жана/же башка материалдардагы төмөнкү баш тартууну кайра чыгарууга тийиш.
  3. Автордук укук ээсинин аты да, анын салымчыларынын аттары да атайын жазуу жүзүндөгү уруксатысыз бул программалык камсыздоодон алынган өнүмдөрдү колдоо же илгерилетүү үчүн колдонулушу мүмкүн эмес.

БУЛ ПРОГРАММА АВТОМОБИЛЬ УКУК ЭЭЛЕРИ ЖАНА САЛЫМ КОШУУЧУЛАР ТАРАПЫНАН “БОЛГОНДОЙ” ЖАНА АР КАНДАЙ АЙКЫН ЖЕ КЫЙЫМЫЗ КЕПИЛДИКТЕР ТАРАПЫНАН БЕРИЛЕТ, БИРОК БИР ЧЕКТЕЛГЕН ЭМЕС, СОТТУК ЖАНА КАБАРЧЫЛЫГЫНЫН КЫЙЫМ КЕПИЛДИКТЕРИ. БАШКА АЛДЫ. ЭЧ КАЧАН АВТРИЯЛЫК УКУК ЭЭСИ ЖЕ САЛЫМ КОШУУЧУЛАРДЫН ТҮЗ, КЫЙЫР, КОКУСТУК, АТАЙЫН, ҮЛГҮЛҮҮ ЖЕ КИЙИНКИ ЗЫЯНДАР ҮЧҮН ЖООПКЕРЧИЛИК ЭМЕС КЫЗМАТТАРЫ КОЛДОНУУНУ, МААЛЫМАТТАРДЫ ЖЕ БИЗНЕСТИН ҮЗГҮЛҮҮЛҮГҮН ЖОГОТУУ; БУЛ ПРОГРАММАНЫ КОЛДОНУУ ЖӨНҮНДӨ, МЫНДАЙ ЗЫЯН КЕРҮҮ МҮМКҮНЧҮЛҮГҮ ЖӨНҮНДӨ КЕҢЕШ БЕРИЛСЕН ДА.

Ревизия тарыхы

NXP-AN14263-Implement-LVGL-GUI Жүздү-Кадрда-таануу-fig- (16)

Юридикалык маалымат

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

Жоопкерчиликтен баш тартуу

  • Чектелген кепилдик жана жоопкерчилик — Бул документтеги маалыматтар так жана ишенимдүү деп эсептелинет. Бирок, NXP Semiconductors мындай маалыматтын тактыгы же толуктугу боюнча ачык же кыйыр түрдө эч кандай билдирүүлөрдү же кепилдиктерди бербейт жана мындай маалыматты пайдалануунун кесепеттери үчүн эч кандай жоопкерчилик тартпайт. NXP Semiconductors бул документтин мазмуну үчүн эч кандай жоопкерчиликти албайт, эгерде NXP Semiconductors тышкары маалымат булагы тарабынан камсыз кылынса.
    Эч кандай учурда NXP Semiconductors кыйыр, кокустук, жазалоочу, атайын же натыйжада келтирилген зыяндар үчүн (анын ичинде - чексиз - жоголгон пайда, жоголгон аманаттар, бизнес үзгүлтүккө учурашы, кандайдыр бир өнүмдөрдү алып салуу же алмаштыруу менен байланышкан чыгымдар же кайра иштетүү төлөмдөрү) үчүн жоопкерчилик тартпайт. же андай зыяндар кыйноого (анын ичинде шалаакылыкка), кепилдикке, келишимди бузууга же башка юридикалык теорияга негизделбесе.
    Кардар кандайдыр бир себептерден улам келип чыгышы мүмкүн болгон ар кандай зыяндарга карабастан, NXP Semiconductors компаниясынын бул жерде сүрөттөлгөн өнүмдөр үчүн кардардын алдындагы жалпы жана жыйынды жоопкерчилиги NXP жарым өткөргүчтөрүн коммерциялык сатуунун жоболоруна жана шарттарына ылайык чектелет.
  • Өзгөртүүлөрдү киргизүү укугу — NXP Semiconductors каалаган убакта жана эскертүүсүз бул документте жарыяланган маалыматка, анын ичинде спецификацияларды жана продукт сүрөттөмөлөрүн чектөөсүз өзгөртүү укугун өзүнө калтырат. Бул документ бул жарыяланганга чейин берилген бардык маалыматтарды алмаштырат жана алмаштырат.
  • Колдонууга жарактуулугу — NXP Semiconductors өнүмдөрү жашоону камсыз кылууда, жашоо үчүн маанилүү же коопсуздук жагынан критикалык системаларда же жабдууларда, ошондой эле NXP Semiconductors продуктунун бузулушу же туура эмес иштеши негиздүү түрдө төмөнкүдөй натыйжаларга алып келиши мүмкүн деп күтүлгөн колдонмолордо колдонууга ылайыктуу деп иштелип чыккан, уруксат берилбеген же кепилденген эмес. жеке жаракат, өлүм же олуттуу мүлк же айлана-чөйрөгө зыян. NXP Semiconductors жана анын жеткирүүчүлөрү NXP Semiconductors өнүмдөрүн мындай жабдууларга же колдонмолорго кошуу жана/же колдонуу үчүн эч кандай жоопкерчиликти албайт, ошондуктан мындай кошуу жана/же колдонуу кардардын өз тобокелчилигинде болот.
  • Тиркемелер — Бул өнүмдөрдүн бирине карата бул жерде сүрөттөлгөн тиркемелер иллюстрациялык максаттар үчүн гана. NXP Semiconductors мындай тиркемелер кошумча тестирлөөсүз же өзгөртүүсүз көрсөтүлгөн колдонууга ылайыктуу болот деп эч кандай билдирүү же кепилдик бербейт.
    Кардарлар NXP Semiconductors өнүмдөрүн колдонуу менен өздөрүнүн тиркемелерин жана өнүмдөрүн долбоорлоо жана иштетүү үчүн жоопкерчилик тартышат жана NXP Semiconductors тиркемелерге же кардар продуктунун дизайнына эч кандай жардам үчүн эч кандай жоопкерчилик тартпайт. NXP Semiconductors продуктусу кардардын колдонмолоруна жана пландаштырылган өнүмдөрүнө, ошондой эле пландаштырылган колдонууга жана кардардын үчүнчү тараптын кардар(лары) үчүн ылайыктуу экендигин аныктоо кардардын жалгыз милдети. Кардарлар өздөрүнүн колдонмолоруна жана өнүмдөрүнө байланышкан тобокелдиктерди азайтуу үчүн тиешелүү дизайн жана операциялык коопсуздук чараларын камсыз кылышы керек. NXP Semiconductors кардардын тиркемелериндеги же өнүмдөрүндөгү кандайдыр бир алсыздыкка же демейкиге, же кардардын үчүнчү тараптын кардары(лары) тарабынан колдонууга негизделген демейкиге, зыянга, чыгымдарга же көйгөйгө байланыштуу эч кандай жоопкерчиликти албайт. Кардар NXP Semiconductors өнүмдөрүн колдонуу менен кардардын тиркемелери жана өнүмдөрү үчүн бардык керектүү тестирлөөдөн өтүү үчүн, тиркемелерди жана өнүмдөрдү же тиркемени же кардардын үчүнчү тараптын кардары(лары) тарабынан колдонулушун алдын алуу үчүн жооптуу болот. NXP бул жагынан эч кандай жоопкерчиликти албайт.
  • Коммерциялык сатуунун шарттары — NXP Semiconductors өнүмдөрү https://www.nxp.com/pro дарегинде жарыяланган коммерциялык сатуунун жалпы шарттарына ылайык сатылат.file/шарттар, эгерде жарактуу жазуу жүзүндөгү жеке келишимде башкача каралбаса. Жеке келишим түзүлгөн учурда тиешелүү келишимдин шарттары гана колдонулат. NXP Semiconductors ушуну менен кардар тарабынан NXP Semiconductors өнүмдөрүн сатып алууга карата кардардын жалпы жоболорун жана шарттарын колдонууга ачык каршы чыгат.
  • Экспорттук көзөмөл — Бул документ, ошондой эле бул жерде сүрөттөлгөн пункт(лар) экспорттук контролдун жоболоруна дуушар болушу мүмкүн. Экспорт компетенттүү органдардын алдын ала уруксатын талап кылышы мүмкүн.
  • Автоунаа эмес квалификациялуу продуктыларда колдонууга ылайыктуу — Бул документте бул өзгөчө NXP Semiconductors продуктусу автомобиль квалификациясына ээ экендиги ачык айтылбаса, продукт унаада колдонууга ылайыктуу эмес. Ал квалификациялуу эмес, автоунаа сыноосуна же колдонуу талаптарына ылайык сыналган эмес. NXP Semiconductors автомобилдик эмес квалификациялуу өнүмдөрдү автомобиль жабдууларына же колдонмолоруна кошуу жана/же колдонуу үчүн эч кандай жоопкерчиликти албайт.
    Кардар өнүмдү автомобиль спецификацияларына жана стандарттарына ылайык долбоорлоо жана автомобиль колдонмолорунда колдонуу үчүн колдонгон учурда, кардар (a) продуктуну NXP Semiconductors компаниясынын мындай унаа колдонмолору, колдонуусу жана спецификациялары үчүн кепилдиксиз колдонушу керек жана ( б) кардар NXP Semiconductors спецификацияларынан тышкары унаа колдонмолору үчүн өнүмдү колдонгон сайын, мындай колдонуу кардардын өз тобокелчилигинде болот жана (c) кардар NXP Semiconductors компаниясынын кардарлардын дизайнынан жана колдонуусунан келип чыккан ар кандай жоопкерчилик, зыяндар же ишке ашпай калган өнүм дооматтары үчүн толугу менен ордун толтурат. NXP Semiconductors стандарттык гарантиясынан жана NXP Semiconductors продуктунун спецификацияларынан тышкары унаа колдонмолору үчүн продукт.
  • Translations — Документтин англисче эмес (которулган) версиясы, анын ичинде ошол документтеги укуктук маалымат, маалымат үчүн гана. Которулган жана англисче версияларынын ортосунда кандайдыр бир дал келбестик болгон учурда англисче версия артыкчылыкка ээ болот.
  • Коопсуздук — Кардар бардык NXP өнүмдөрү аныкталбаган алсыздыктарга дуушар болушу мүмкүн экенин же белгиленген коопсуздук стандарттарын же белгилүү чектөөлөр менен спецификацияларды колдошу мүмкүн экенин түшүнөт. Кардардын тиркемелерине жана өнүмдөрүнө бул алсыздыктардын таасирин азайтуу үчүн Кардар өзүнүн тиркемелери менен өнүмдөрүнүн бүткүл жашоо циклдеринин дизайнына жана иштешине жооптуу. Кардардын жоопкерчилиги кардардын тиркемелеринде колдонуу үчүн NXP өнүмдөрү тарабынан колдоого алынган башка ачык жана/же менчик технологияларга да жайылтылат. NXP кандайдыр бир аялуу үчүн эч кандай жоопкерчиликти албайт. Кардар дайыма NXPден коопсуздук жаңыртууларын текшерип, тийиштүү түрдө ээрчип турушу керек. Кардар талаптарга ылайыкталган колдонуунун эрежелерине, эрежелерине жана стандарттарына эң жакшы жооп берген коопсуздук белгилери бар продукцияны тандап алышы керек жана анын продуктуларына карата акыркы дизайн чечимдерин кабыл алат жана анын продукциясына карата бардык мыйзамдык, ченемдик жана коопсуздукка байланыштуу талаптардын сакталышы үчүн жалгыз жоопкерчилик тартат. NXP тарабынан камсыз кылынышы мүмкүн болгон ар кандай маалымат же колдоо.

NXPде NXP өнүмдөрүнүн коопсуздук кемчилдиктерин иликтөөнү, отчеттуулукту жана чечим чыгарууну башкарган Продукт коопсуздугу инциденттерине жооп кайтаруу тобу (PSIRT) бар (PSIRT@nxp.com дареги боюнча жеткиликтүү).
NXP BV — NXP BV операциялык компания эмес жана өнүмдөрдү таркатпайт же сатпайт.

Соода белгилери
Эскертүү: Бардык шилтемеленген бренддер, продукт аттары, кызмат аттары жана соода белгилери алардын тиешелүү ээлеринин менчиги болуп саналат.

NXP — сөз белгиси жана логотип NXP BV соода белгилери болуп саналат

AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Мали, Mbed, Mbed иштетилген, NEON, POP, реалдууView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — АКШдагы жана/же Arm Limited (же анын туунду же филиалдары) соода белгилери жана/же катталган соода белгилери башка жерде. Тиешелүү технология кандайдыр бир же бардык патенттер, автордук укуктар, дизайн жана коммерциялык сырлар менен корголушу мүмкүн. Бардык укуктар корголгон.

  • i.MX — NXP BV соода белгиси болуп саналат
  • J-Link — SEGGER Microcontroller GmbH компаниясынын соода белгиси.

Microsoft, Azure жана ThreadX — Microsoft компаниялар тобунун соода белгилери.

Сураныч, бул документке жана бул жерде сүрөттөлгөн продукт(лар)га тиешелүү маанилүү эскертүүлөр "Укуктук маалымат" бөлүмүндө камтылганын эске алыңыз.

© 2024 NXP BV
Көбүрөөк маалымат алуу үчүн төмөнкү дарекке кириңиз: https://www.nxp.com

  • Чыгарылган датасы: 19-апрель 2024-жыл
  • Документтин идентификатору: AN14263

Көп берилүүчү суроолор

С: Бул буюмдун негизги максаты эмнеде?
Ж: Негизги максат жөнөкөй LVGL GUI экс менен AI&ML көрүү алгоритминин моделин колдонуу менен жүздү таануу функциясын иштетүү.ample SLN-TLHMI-IOT тактасында.

С: Иштеп чыгуучулар бул колдонмонун эскертүүсүнөн кандай пайда ала алышат?
Ж: Иштеп чыгуучулар алкактагы жүздү таанууну этап-этабы менен ишке ашырууну үйрөнө алышат.ampТүзмөк башкаруучуларын, HAL түзмөктөрүн жана тартылган окуя механизмдерин түшүнүңүз.

Документтер / Ресурстар

NXP AN14263 Frameworдо LVGL GUI жүзүн таанууну ишке ашыруу [pdf] Колдонуучунун колдонмосу
AN14263 Frameworдо LVGL GUI жүзүн таанууну ишке ашыруу, AN14263, Frameworдо LVGL GUI жүзүн таануу, Frameworдо LVGL GUI жүзүн таануу, Frameworдо бетти таануу, Frameworдо, Frameworдо таануу

Шилтемелер

Комментарий калтырыңыз

Сиздин электрондук почта дарегиңиз жарыяланбайт. Талап кылынган талаалар белгиленген *