nxp логотипі

NXP AN14263 Framewor жүйесінде LVGL GUI бетті тану мүмкіндігін енгізу

NXP-AN14263-LVGL-GUI-ді енгізу

Өнім туралы ақпарат

Техникалық сипаттамалар

  • Өнім атауы: Framework жүйесінде LVGL GUI бетті тану
  • Құжатты қайта қарау: 1 жылғы 19-2024 сәуір
  • Түйін сөздер: Бетті тану, LVGL GUI, Framework

Өнімді пайдалану нұсқаулары

  1. Біттіview
    Бұл өнім қарапайым LVGL GUI бұрынғы арқылы бетті тану функциясын жүзеге асыру үшін құрылымда бетті тану үшін AI және ML көру алгоритмі үлгісін береді.ampSLN-TLHMI-IOT тақтасында.
  2. Рамка аяқталдыview
    Шешім бағдарламалық құралы құрылғыларды басқаруға жауапты құрылғы менеджерлерін, негізгі мәліметтерді алу үшін HAL құрылғыларын және әртүрлі құрылғылар арасындағы байланысқа арналған оқиғаларды қамтитын құрылымдық архитектура төңірегінде жасалған.
  3. Ерекше өзгешеліктері
    Өнім алдын ала камера арқылы бетті тану функциясын жүзеге асыруға мүмкіндік бередіview GUI экранында бетті тіркеу, тану және жою үшін түймелері бар. Тіркелген бет деректері Flash қолданбасында a арқылы сақталады file жүйесі.
  4. Қолданба жазбасының мазмұны
    Қолданба жазбасы алдын ала камерасы бар LVGL GUI экранын ұсынадыview және бетке қатысты әрекеттерге арналған түймелер. Ол әзірлеушілерге құрылымды түсінуге және ұсынылған экс-ді пайдаланып бетті тануды қалай жүзеге асыруға болатынын түсінуге көмектеседіampле.

Біттіview

NXP смарт HMI қолданбаларына бағытталған SLN-TLHMI-IOT деп аталатын шешімдерді әзірлеу жинағын іске қосты. Ол бір NXP i.MX RT117H MCU құрылғысында іске асырылған ML көру, дауыс және графикалық интерфейсі бар смарт HMI мүмкіндігін береді. SDK негізінде шешім бағдарламалық құралы икемді дизайнды және көру және дауыс функцияларын теңшеуді қолдайтын құрылым деп аталатын дизайнға негізделген. Пайдаланушыларға бағдарламалық платформаны жақсырақ пайдалануға көмектесу үшін кейбір негізгі құжаттар берілген, мысалыample, бағдарламалық құралды әзірлеуге арналған пайдаланушы нұсқаулығы. Нұсқаулық әзірлеушілерге SLN-TLHMI-IOT көмегімен өз қолданбаларын оңайырақ және тиімдірек іске асыруға көмектесу үшін негізді қоса, шешімнің барлық құрамдастарын қамтитын қолданбалардың негізгі бағдарламалық жасақтама дизайны мен архитектурасын таныстырады.
Шешім және тиісті құжаттар туралы қосымша мәліметтер алу үшін мына сайтқа кіріңіз web ML Vision, дауыс және графикалық пайдаланушы интерфейсі бар i.MX RT117H негізіндегі NXP EdgeReady Smart HMI шешімі беті. Дегенмен, әзірлеушілерге осы негізгі нұсқаулықтарға сілтеме жасай отырып, өздерінің смарт HMI қосымшаларын енгізу оңай емес. Қадамдық негізде әзірлеуді зерттеуге көмектесетін қолданбалы ескертулер сериясы жоспарлануда. Бұл қолданба жазбасы Implement LVGL GUI Camera Pre бағдарламасына негізделгенview Framework бойынша (AN14147 құжаты). Бұл қолданба жазбасы камераның алдын ала камерасы арқылы бетті тану функциясын жүзеге асыру үшін құрылымда бетті тану үшін AI&ML көру алгоритмі үлгісін қосу жолын сипаттайды.view GUI экранында қарапайым LVGL GUI бұрынғыampSLN-TLHMI-IOT тақтасында. Өтініш жазбасында бұрынғыample камерасы бар LVGL GUI экранын ұсынадыview және бетті тіркеу, тану және жою үшін кейбір түймелер. Тіркелген бет деректері Flash-те аздап сақталады file жүйесі.

Жоғары деңгейде қолданба жазбасында төмендегі мазмұндар бар:

  • Фреймворкте бетті тану мүмкіндігін қосыңыз.
  • арқылы жақтаудағы бет деректер базасын қолдауды қосыңыз file Flash жүйесіндегі жүйе.
  • LVGL GUI қолданбасын іске қосыңыз. Жоғарыда келтірілген кіріспе арқылы бұл құжат әзірлеушілерге:
  • Құрылымды және смарт HMI шешімінің бағдарламалық құралын тереңірек түсініңіз.
  • LVGL GUI қолданбасы арқылы олардың AI және ML бет тануын дамытыңыз.

Рамка аяқталдыview
Шешім бағдарламалық жасақтамасы негізінен бірнеше түрлі бөліктерден тұратын құрылымдық архитектураны пайдалану негізінде жасалған:

  • Құрылғы менеджерлері – негізгі бөлігі
  • Аппараттық абстракциялық деңгей (HAL) құрылғылары
  • Хабарлар/Оқиғалар

1-суретте көрсетілгендей, аяқталдыview рамканың механизмі:

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

Оқиғалар әртүрлі құрылғылар арасында олардың менеджерлері арқылы ақпарат алмасу құралы болып табылады. Оқиға іске қосылғанда, оқиғаны бірінші қабылдаған құрылғы бұл оқиғаны менеджеріне хабарлайды, содан кейін ол оқиғаны қабылдауға тағайындалған басқа менеджерлерге хабарлайды.

NXP-AN14263-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (1)

Қаңқаның архитектуралық дизайны үш негізгі мақсатқа негізделген:

  1. Пайдаланудың қарапайымдылығы
  2. Икемділік/Тасымалдау
  3. Өнімділік

Фреймворк көруді және басқа машиналық оқыту қосымшаларын нарыққа шығару уақытын жылдамдату мақсатында жасалған. Нарыққа жылдам шығу үшін бағдарламалық құралдың өзі түсінуге және өзгертуге оңай болуы өте маңызды. Осы мақсатты есте сақтай отырып, құрылымның архитектурасын шектеусіз және өнімділік құнынсыз өзгерту оңай.
Жүйе туралы қосымша мәліметтер алу үшін Smart HMI бағдарламалық жасақтамасын әзірлеу жөніндегі пайдаланушы нұсқаулығын қараңыз (MCU-SMHMI-SDUG құжаты).

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

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

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

Даму ортасы

Біріншіден, іске асыру үшін аппараттық және бағдарламалық ортаны дайындап, орнатыңызampжақтауда.

Аппараттық орта
Аппараттық орта бұрынғыны тексеру үшін орнатылғанampле:

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

Бағдарламалық жасақтама ортасы
Бағдарламалық қамтамасыз ету ортасы бұрынғыны әзірлеу үшін орнатылған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 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-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (3)

Жүйеде бетті тану мүмкіндігін енгізіңіз

LVGL GUI бетті тану, мысалыampле (бұрынғыample кейінірек беріледі) рамка бойынша бұрынғы негізінде жүзеге асырыладыampImplement LVGL GUI Camera Pre кодтарыview Framework бойынша (AN14147 құжаты).

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

  • GUI қолданбасы Тіркеу немесе тану түймешігін басқан кезде бетті тіркеу немесе тану оқиғасын UI HAL шығысына іске қосады. Ал UI HAL шығысы бетті тіркеу сәтті аяқталғаннан кейін HAL көру алгоритміне пайдаланушыны қосу оқиғасы туралы хабарлайды.
  • GUI қолданбасы пайдаланушының беті танылғаннан кейін Пайдаланушыны жою түймешігін басқан кезде UI HAL шығысындағы пайдаланушыны жою оқиғасын іске қосады.
  • GUI қолданбасы түймелер мен кескіндердің сыртындағы экранды басқан кезде UI HAL шығысына жұмыс істейтін оазис алгосын тоқтату оқиғасын іске қосады.

NXP-AN14263-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (10)

Бұрынғы іске асыру үшін бағдарламалық пакетті дайындаңызampле.

  • Негізгі бағдарламалық құралды lvgl_gui_camera_pre клондауview_см7. Жобаның атын және негізгісін өзгертіңіз filelvgl_gui_face_rec_cm7 атауы.
  • Фреймворкты бағдарламалық жасақтамада жаңарту қажет, өйткені рамкалық ядроның бастапқы кодтары 1.1.2 нұсқасынан бастап GitHub жүйесінде жалпыға қолжетімді бола бастады.
  • Жақтау қалтасын GitHub сайтынан басқа V1.1.2 көшірмесімен ауыстырыңыз files fwk_log.h және fwk_common.h inc\ астында, өйткені олар қолданба ескертпелерінің сериясы үшін өзгертілген. Операциялар 4-суретте көрсетілген:NXP-AN14263-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (11)
  • libs тобының астындағы framework_cm7 қалтасын жойыңыз және жоба > Сипаттар > C/C++ құрастыру > параметрлер > Құрал параметрлері > MCU C++ сілтемесі > Кітапханаларда конфигурацияланған framework_cm7 кітапханасын және оның іздеу жолын жойыңыз, себебі ядроның бастапқы коды берілген.

Фреймворкте бетті тану мүмкіндігін қосыңыз
Бетті тану мүмкіндігі статикалық кітапхана ретінде берілген ML көру алгоритмі үлгісіне негізделген – NXP ұсынған oasis lite жұмыс уақыты кітапханасы. Кітапхана – шағын, жоғары тиімді, теңшелген және оңтайландырылған AI кітапханасы. Модель бетті анықтауды, бетті тануды, әйнекті анықтауды және жандылықты анықтауды қамтиды. Ол негізінен оқиғаға кері қоңырау шалу арқылы қоңырау шалушыға нәтижелерді жаңарту кезінде бетті тану құбырын іске қосу үшін API OASISLT_run_extended() қамтамасыз етеді және бастапқы кадр ақпаратын, кері шақыруларды және жадты көрсеткеннен кейін бет дерекқорының кері қоңыраулары арқылы дерекқорға беттерді қосу/жаңарту/жою. инициализациялау кезінде басқа API OASISLT_init() шақыру арқылы кітапхана пайдаланатын пул. API интерфейстерін шақыру және кері шақыру функциялары рамканың HAL көру алгоритмінде жүзеге асырылады.

Vision algo үлгілерінің кітапханасын қосыңыз

  1. Кітапхана мен қатысты тақырыпты қамтитын қалта оазисін көшіріңіз file smart HMI\coffee_machine\cm7\libs\ ішінен бұрынғы қалта кітапханаларынаample SW.
  2. Тақырыптың іздеу жолын қосыңыз file Жоба > Сипаттар > C/C++ құрастыру > параметрлер > Құрал параметрлері > 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++ құрастыру > параметрлер > Құрал параметрлері > MCU C компиляторы > Препроцессор және MCU C++ компиляторы > Препроцессор: SMART_TLHMI_2D ішінде қосыңыз

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

Оны қосу үшін бар ұқсас HAL драйверін клондаңыз file онда төмендегі функциялар орындалады:

  • Бет дерекқор операциялары мен оқиғаларды өңдеудің кері шақыруларын іске асырыңыз.
  • Oasis кітапханасының API интерфейстеріне қоңырау шалу арқылы көру алгосын жұмысқа қосыңыз.
  • Пайдаланушы бетінің дерекқорына және қолданба дерекқорына қол жеткізіңіз (бұл бұрынғы нұсқада қажет емесampле).
  • UI HAL шығысынан оқиғаларды алыңыз және нәтижелерді жіберіңіз.

Негізгі жұмыстар бұрынғыға арналған HAL енгізуampолар:

  • Бар ұқсас HAL драйверін клондаңыз file және қатысты атауларды өзгертіңіз.
  • Қолданба деректерінің әрекеттеріне қатысты кодтарды жойыңыз.
  • Әрбір бұрынғы UI HAL шығысындағы оқиғаларды өңдеуге арналған анықтамалар мен функцияларды жаңартыңызample дизайн.
  • Оазис инициализациясында қажетті конфигурацияларды қосыңыз.

Егжей-тегжейлі қадамдар төмендегідей:

  1. hal_vision_algo_oasis_coffeemachine.c клондау. өзгертіңіз filehal_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 HMI\coffee_machine \cm7\source\event_handlers\ қолданбасынан smart_tlhmi_event_descriptor.h бұрынғы қалта көзінеample SW. жаңартыңыз file төмендегідей:
    • kEventFaceRecId_RegisterCoffeeSelection оқиға анықтамасын _event_smart_tlhmi_id сан түріндегі kEventFaceRecId_RegisterUserFace және regCoffeeSelection құрылым жолын _event_smart_tlhmi құрылымындағы regGUIFaceRec етіп өзгертіңіз. Сонымен, regCoffeeSelection үшін register_coffee_selection_event_t құрылымын register_gui_facerec_event_t етіп өзгертіңіз.
    • Кофе машинасы қолданбасы үшін пайдаланылатын else мазмұнын жойыңыз, мысалыample, дауыс туралы код жолы: #include “hal_event_descriptor_voice.h”.
    • kOASISLiteState_Stopped және kOASISLiteState_Running түрлерін hal_vision_algo.h ішіндегі oasis_lite_state_t enum түріне төмендегідей жобадағы framework>hal>vision астында қосыңыз:
      typedef enum _oasis_lite_state {
      • kOASISLiteState
      • Іске қосулы, kOASISLiteState
      • Тоқтатылды, kOASISLiteState
      • тану,
      • kOASISLiteState
      • Тіркеу, kOASISLiteState
      • Тіркеуді жою, kOASISLiteState
      • RemoteRegistration, kOASISLiteState
      • Санау
    • Жобадағы framework>hal>vision астында hal_event_descriptor_face_rec.h ішіндегі oasis_state_event_t құрылымын төмендегідей нақтылау үшін жоғарыда жаңартылған oasis_lite_state_t құрылымын пайдаланыңыз: typedef struct _oasis_state_event_t { oasis_lite_state_t; } oasis_state_event_t;
  5. Барлық kEventInfo_Remote-ді kEventInfo_Local-ға өзгертіңіз, оқиғаларды көру алгоритмінен HAL-дан бір ядрода жұмыс істейтін басқа HAL-ге жіберу үшін, бұрынғы нұсқада қос ядроның орнына бір ядро ​​​​қолданылады.ampле.
  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 анықтау
      • #3 OASIS_RGB_FRAME_BYTE_PER_PIXEL анықтау
      • #AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) анықтау \
      • __атрибут__((бөлім(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __атрибут__((тураланған(тураланғанбайт))))
    • 5-суретте көрсетілген Жоба > Сипаттар > C/C++ құрастыру > MCU параметрлерінде fb_sh_mem жоғарыдағы жад бөліміне жад тағайындауын конфигурациялаңыз:NXP-AN14263-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (12)
    • g_DTCOPBuf жаһандық айнымалы мәнін lvgl_gui_face_rec_cm7.cpp ішінде жариялаңыз: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Жоғарыдағы айнымалы мәнде қолданылған анықтамаларды қосуды жалғастырыңыз:
    • board_define.h ішінде жоғарыдағы бөлімді анықтаңыз:
      • #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++ құрастыру > параметрлер > Құрал параметрлері > 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 шығысы оқиғаларды HAL көру алгоритміне хабарлайды және HAL көру алгосынан алынған қорытындыға жауап береді. GUI қолданбасының көмегімен оқиғалар әдетте қолданба арқылы іске қосылады және нәтижелер қолданбада көрсетіледі.

Оны қосу үшін бар ұқсас HAL драйверін клондаңыз file мұнда әдетте төмендегі функциялар орындалады:

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

Негізгі жұмыстар бұрынғыға арналған 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_set_virtual_face() қоспағанда, алып тастаңыз.view режим мүмкіндігі.
    • Кофе машинасы қолданбасына қатысты s_IsWaitingAnotherSelection және s_IsWaitingRegisterSelection айнымалыларына қатысты барлық кодтарды жойыңыз.
    • Дауысқа, дыбысқа және тілге қатысты кодтарды алып тастаңыз. Мысалыampле:
      • #қосуға “hal_voice_algo_asr_local.h”,
      • #"hal_event_descriptor_voice.h" қосу
  4. Әртүрлі оқиғалар туралы хабарландырулар үшін _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec() және DeregisterGUIFaceRec() функцияларын _StopFaceRec(), _RegisterCoffeeSelection() және DeregisterCoffeeSelection() жоюдан бұрын орындаңыз.
    • _OutputManagerNotify() оқиғаны көру алгоритміне HAL жіберу үшін негізгі оқиғаны шығару функциясын жүзеге асырады. Төмендегі функциялар оны өз оқиғаларын жіберуге шақырады.
    • _SetFaceRec() бетті тіркеу, тану және алгоны тоқтату үшін көру алгосын іске қосу үшін kEventFaceRecID_OasisSetState оқиғасын жібереді.
    • _RegisterGUIFaceRec() тіркеу OK кезінде дерекқорға бет мүмкіндігі деректерін қосу үшін smart_tlhmi_event_descriptor.h ішінде анықталған kEventFaceRecId_RegisterGUIFaceRec оқиғасын жібереді.
    • DeregisterGUIFaceRec() тұлғаны тану арқылы өткен кезде дерекқордан бет мүмкіндігі деректерін жою үшін kEventFaceRecID_DelUser оқиғасын жібереді.
  5. Сәйкес әрекеттерді орындау үшін кодтарды жаңартыңыз, соның ішінде _InferComplete_Vision() функциясында бетті тіркеу және тану қорытындылары үшін LVGL GUI қолданбасынан API интерфейстерін шақыру арқылы GUI жаңартуы.ampдизайны. Мысалыample, бетті тіркеу сәтті болған кезде,
    • _FaceRecProcess_Stop();
    • _SetFaceRec(kOASISLiteState_Stopped) нөміріне қоңырау шалу арқылы бетті тіркеуді тоқтатыңыз;
    • Сәтті нәтижені графикалық интерфейсте көрсетіңіз: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
    • Бет деректерін дерекқорға тіркеңіз: _RegisterUserFace(s_UserId);
  6. Оқиғаларды өңдеу үшін UI кері шақыру функцияларын қосыңыз: preview, GUI-ден іске қосылған пайдаланушыны тіркеу, тану және жою. Мысалыample, бетті тіркеу кері шақыру: жарамсыз 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 жүйесінен process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h және virtual_face_red_420x426.h
      \кофе машинасы\ресурс\белгішелері\ бұрынғы ресурс қалтасының астындағы жаңа қалта белгішелерінеample SW.
    • Төрт белгішені іздеу жолын қосыңыз files camera_preview_resource.txt file ресурстық қалтада, мысалыample: белгішесі ../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-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (13)
  2. SDRAM ішіндегі бастапқы мекенжайды және app_config.h ішіндегі белгішелердің өлшемін анықтаңыз. Мекенжай GUI қолданбасының кескіндерінің жанында басталады. Өлшем ақпаратта жасалады file. #APP_ICONS_BASE анықтау (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #APP_ICONS_SIZE 0x107c40 анықтау
  3. res_sh_mem деп аталатын жад бөлімінің тағайындалған өлшемін app_config.h ішінде қайта анықтау арқылы 0x200000 етіп жаңартыңыз: #define RES_SHMEM_TOTAL_SIZE 0x200000 және Project > 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 шығысы нәтиже мен күйді көрсету үшін UI жаңарту үшін LVGL GUI қолданбасынан API интерфейстерін шақырады. LVGL GUI қолданбасын әзірлеу салыстырмалы түрде тәуелсіз және 4.3 бөлімінде енгізілген.

4.1.5 Бет тану үшін HAL құрылғылары мен менеджерлерін іске қосыңыз
Қосылған көру алгоритмі HAL және UI шығысы HAL және олардың менеджерлері негізгі түрде іске қосылады file
lvgl_gui_face_rec_cm7.cpp төмендегідей құрылымдағы әзірлеу түрлендірулерінен кейін:

  1. Тақырыпты қосыңыз file код жолын қосу арқылы екі HAL менеджеріне қатысты:
    • #include ” fwk_output_manager.h “
    • #қосуға “fwk_vision_algo_manager.h”
  2. HAL құрылғыларын жариялаңыз:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
  3. HAL құрылғыларын тіркеңіз:
    • HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, рет);
    • HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, рет);
  4. Менеджерлерді инициализациялаңыз:
    • FWK_MANAGER_INIT(VisionAlgoManager, рет);
    • FWK_MANAGER_INIT(OutputManager, ret);
  5. Менеджерлерді бастаңыз:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, рет);
    • FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, рет);
  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 файлдарын pathee_nor_flash_ops.cm_microsoft_microsoft қалтасына жіберіңіз бұрынғыample SW.
    • тінтуірдің оң жақ түймешігімен басқаннан кейін C/C++ Build > Параметрлерде «Ресурсты құрастырудан шығару» құсбелгісін алып тастаңыз. files' атауын және оларды жобаға енгізуге мүмкіндік беру үшін сипаттарды ашу.
  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\ жолынан бұрынғы қалта көзіне дейінampле. Жаңасын жаңартыңыз 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 қалтасын көшіріңіз – little fileжүйе SDK_2_13_0_ MIMXRT1170-EVK\middleware\ жолынан бұрынғыға дейінample SW. Және жаңа қалтаны жаңартыңыз:
    • Құрылыс үшін ондағы «Ресурсты құрастырудан шығару» құсбелгісін алып тастаңыз.
    • Жоба параметрлерінде оған қосу жолын қосыңыз: “${workspace_loc:/${ProjName}/littlefs}”

HAL драйверлерін қосыңыз 

  • Екі HAL құрылғысы бар - file Жүйе және бет дерекқоры HAL дерекқорына қол жеткізу мүмкіндігі үшін қолдау көрсетеді және олар қазірдің өзінде ешқандай өзгеріссіз шеңберде іске асырылған. board_define.h ішінде төмендегі анықтамаларды қосу арқылы оларды қосыңыз:
    • #ENABLE_FLASH_DEV_Littlefs анықтау
    • #ENABLE_FACEDB параметрін анықтаңыз

Бұрынғы тұлғаның бет дерекқорының атын өзгертіңізample: #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 аймағында орындалады. Сілтеме конфигурациялары бар қалта сілтеме сценарийлерін smart 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_pre үшінview функцияда.
    •  GUI Guider жобасымен үйлесімді болу үшін custom.c ішіндегі #ifndef RT_PLATFORM макроанықтамасының бақылауымен UI HAL шығысындағы барлығына бірдей прототиппен UI кері шақыру функцияларын орындаңыз, себебі UI HAL шығысындағы бұл функциялар UI HAL шығысындағы функцияларға тәуелді. ендірілген платформа. custom.c ішінде олар GUI бағыттағышындағы симуляторға тәуелді және ендірілген платформаға тәуелсіз. Мысалыample, GUI Guider симуляторы іске қосылғанда бетті тіркеуді кері шақыру төмендегідей орындалады: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = жалған; қайтару; }
      Ескерту: 6-бөлімнің 4.1.3-қадамында енгізілген функцияның бірдей прототипін қараңыз.
      RT_PLATFORM макрос анықтамасы 7-суретте көрсетілгендей MCUXpresso жоба параметрлерінде орнатылған:NXP-AN14263-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (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_см7. Қатысты camera_pre атауын өзгертіңізview жаңа бұрынғы үшін face_recampле.
    • Жоғарыда жаңартылған custom.c және custom файлдарын көшіріңіз. h GUI Guider жобасының жаңа бағдарламалық құралына.
    •  GUI Guider қолданбасында жаңа face_rec жобасын ашыңыз. Төмендегідей жаңартыңыз:
      • Пайдаланушыны жою деп белгіленген жаңа түймені қосыңыз. GUI қолданбасы іске қосылғанда түйме жасырылатындай етіп оған Жасырын жалаушасын қосыңыз.
      • Бетті тіркеу, бетті тану және пайдаланушыны жою оқиғаларын іске қосу үшін Тіркеу, тану және Пайдаланушыны жою түймелерінің Оқиғалар параметріндегі «Шығарылған» триггеріне әртүрлі оқиға идентификаторы параметрі бар API gui_event_face_rec_action() қоңырауының код жолын қосыңыз. 8-суретте Тіркеу түймесі оқиғасының коды көрсетілген:NXP-AN14263-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (15)
  3. GUI Guider қолданбасынан MCUXpresso жобасына жасалған кодты жаңартыңыз.
    • MCUXpresso жобасының SW қалтасындағы қалта кескіндерінен басқа мазмұнды GUI Guider жобасының SW жобасында жасалған қалтадағы сәйкесімен ауыстырыңыз.

Ескерту: Жоғарыда енгізілген өзгертулер туралы қосымша мәліметтер алу үшін, бұрынғыampбағдарламалық қамтамасыз ету https://mcuxpresso.nxp.com/appcodehub.

Бұрынғымен растауampжоба

Бұрынғыны алу үшінampОсы қолданба ескертпесіне арналған ресурстар мен құралдарды қамтитын бағдарламалық құрал пакетін қараңыз: https://mcuxpresso.nxp.com/appcodehub. Бұрынғыны ашыңызampMCUXpresso IDE жүйесіндегі жоба. .axf құрастырыңыз және бағдарламалаңыз file 0x30000000 мекенжайына және ресурс қалтасын бағдарламалаңыз file camera_preview_resource.bin 0x30800000 мекенжайына.

LVGL GUI бетті тану, мысалыample төмендегідей қалыпты жұмыс істейді:

  • Алдын алаview: Қуатты қосқан кезде камера түсірген бейне ағындары камераның алдын ала белгілі бір аймағында көрсетіледіview GUI экранында. Күй белгісінде «Алдын алаview…». Толық ақпаратты 3-суретті қараңыз. Пайдаланушыны жою түймесі жасырылған. Түймешіктер мен кескіндердің сыртындағы аумақты басқан кезде, ол алдын ала көрсетедіview бетті тіркеу немесе тану әрекеті аяқталғаннан кейін жоғарыдағыдай көрсетіңіз.
  • Тіркелу:
    • тарту: Тіркеу түймесі басылғанда, бетті тіркеу басталады. Күй белгісі «Тіркеу...» көрсетуге өзгереді, бет нұсқаулығының тіктөртбұрышы көк түсті көрсетеді, ал орындалу барысы жолағы орындалу барысын көрсете бастайды. Тіркеу үшін пайдаланушының беті көк бет нұсқаулығы тіктөртбұрышында көрсетілгеніне көз жеткізіңіз.
    • табыс: Күй белгісінде «Тіркеу…OK» және тіркелген пайдаланушы идентификаторы нөмірі көрсетіледі, бетті тіркеу орындалу барысы жолақта толық көрсетілгенге дейін сәтті болса, бет нұсқаулығының тіктөртбұрышы қызыл болады.
    • Сәтсіздік -> Уақыт бітті: күй белгісінде "Тіркеу... Уақыт бітті" көрсетіледі, егер барысы жолақта толық көрсетілген кезде бетті тіркеу әлі де орындалмаса.
    • Сәтсіздік -> Көшіру: күй белгісінде «Тіркеу...Сәтсіз» көрсетіледі, егер тіркелген бет орындалу барысы жолақта толық көрсетілмей тұрып танылса, бет бағыттаушы тіктөртбұрыш жасыл түске боялады.
  • таным:
    • Іске қосу: «Тану» түймесі басылғанда, бетті тану басталады. Күй белгісі “Тану…” көрсетуге өзгереді, бет нұсқаулығы тіктөртбұрыш көк түспен көрсетіледі, ал орындалу барысы жолағы орындалу барысын көрсете бастайды. Тіркеу үшін пайдаланушының беті көк бет нұсқаулығы тіктөртбұрышында көрсетілгеніне көз жеткізіңіз.
    • табыс: Күй белгісінде “Таныу…OK” және танылған пайдаланушы идентификаторы нөмірі көрсетіледі, бетті тану барысы жолақта толық көрсетілмей тұрып сәтті болса, бет нұсқаулығының тіктөртбұрышы жасыл болады. Осы жерде пайдаланушыны жою түймесі пайда болады. Бұл пайдаланушы танылған кезде ғана оны жоюға рұқсат етілгенін білдіреді.
    • жағдайы: Жолақтағы орындалу барысын көрсету кезінде бетті тану әлі де орындалмаса, күй белгісінде «Тану... Уақыт бітті» көрсетіледі.
  • Пайдаланушыны жою: «Пайдаланушыны жою» түймесі басылғанда, бетті тану сәтті аяқталғаннан кейін, күй белгісі бет нұсқаулығының тіктөртбұрышы көк түске боялып, жолақта толық көрсетілуімен «Пайдаланушыны жою…OK» көрсетуге өзгереді. Пайдаланушыны жою түймесі қайтадан жасырылады. Танылған бет/пайдаланушы дерекқордан жойылды. Бұл бет/пайдаланушы қайта тіркелмейінше тану мүмкін емес дегенді білдіреді.

Құжаттағы бастапқы код туралы ескертпе
ExampОсы құжатта көрсетілген кодтың келесі авторлық құқығы және BSD-3-бап лицензиясы бар:

Авторлық құқық 2024 NXP Қайта бөлуге және бастапқы және екілік пішіндерде өзгертулермен немесе өзгертусіз пайдалануға келесі шарттар орындалған жағдайда рұқсат етіледі:

  1. Бастапқы кодты қайта таратуда жоғарыдағы авторлық құқық ескертуі, осы шарттар тізімі және келесі бас тарту туралы мәлімдеме сақталуы керек.
  2. Екілік пішіндегі қайта таратулар жоғарыдағы авторлық құқық туралы ескертуді қайта шығаруы керек, осы шарттар тізімі және құжаттамадағы және/немесе басқа материалдардағы келесі бас тарту мәлімдемесі таратумен бірге қамтамасыз етілуі керек.
  3. Авторлық құқық иеленушінің аты да, оның үлес қосушыларының аттары да арнайы алдын ала жазбаша рұқсатсыз осы бағдарламалық құралдан алынған өнімдерді мақұлдау немесе жылжыту үшін пайдаланылмайды.

БҰЛ БАҒДАРЛАМАЛЫҚ ҚҰҚЫҚТЫ АВТОРЛЫҚ ҚҰҚЫҚ ИЕЛЕУШІЛЕРІ МЕН САЛЫМ БЕРУШІЛЕР «САЛҒЫНДАРЫНА» ЖӘНЕ КЕЗ КЕЛГЕН АЙҚЫН НЕМЕСЕ ЖАСАУ КЕПІЛДІКТЕРДІ, ҚОСЫМША, БІРАҚ ШЕКТЕУЛІГЕН САУДА КӘСІПТІГІНІҢ ЖАСАУ КЕПІЛДЕРІН БЕРЕДІ. БАС ТАРТУ. Ешбір жағдайда АВТОРЛЫҚ ҚҰҚЫҚ ИЕСІ НЕМЕСЕ САЛЫМДАР КЕЗ КЕЛГЕН ТІКЕЛЕЙ, ЖАНА, ЖАҚСЫ, АРНАЙЫ, ҮЛГІЛІ НЕМЕСЕ ДӘЛДЕ ТҰРҒАН ЗАЛДАР ҮШІН ЖАУАПКЕРШІЛІК БОЛМАЙДЫ. ҚЫЗМЕТТЕР ПАЙДАЛАНУДЫ, ДЕРЕКТЕРДІ ЖОҒАЛТУ НЕМЕСЕ КӘСІПКЕРЛІК ҮЗІЛУ) СЕБЕПТЕН ЖӘНЕ КЕЗ КЕЛГЕН ЖАУАПКЕРШІЛІК ТЕОРИЯСЫ, ҚАТАЛ ЖАУАПКЕРШІЛІК НЕМЕСЕ БАСҚА АЙТЫЛМАУДЫ ҚОСУ; БҰЛ БАҒДАРЛАМАЛЫҚ ҚҰРАЛДЫ ПАЙДАЛАНУ ТУРАЛЫ, ОСЫНДАЙ ЗАҚЫМ ТУРАЛЫ ЕСКЕРТПЕН.

Қайта қарау тарихы

NXP-AN14263-LVGL-GUI-ді іске асыру - жақтауда бетті тану-сурет- (16)

Құқықтық ақпарат

Анықтамалар
Draft — Құжаттағы жоба күйі мазмұнның әлі де ішкі қайта өңдеу астында екенін көрсетедіview және өзгертулер немесе толықтырулар енгізуі мүмкін ресми мақұлдауға жатады. NXP Semiconductors құжаттың жобалық нұсқасына енгізілген ақпараттың дәлдігі немесе толықтығы туралы ешқандай мәлімдеме немесе кепілдік бермейді және мұндай ақпаратты пайдаланудың салдары үшін жауапкершілік көтермейді.

Жауапкершіліктен бас тарту

  • Шектеулі кепілдік және жауапкершілік — Бұл құжаттағы ақпарат дәл және сенімді деп саналады. Дегенмен, NXP Semiconductors мұндай ақпараттың дәлдігі немесе толықтығы туралы нақты немесе жанама түрде ешқандай мәлімдеме немесе кепілдік бермейді және мұндай ақпаратты пайдаланудың салдары үшін жауапкершілік көтермейді. NXP Semiconductors компаниясы NXP Semiconductors жүйесінен тыс ақпарат көзімен қамтамасыз етілсе, осы құжаттағы мазмұн үшін жауапкершілік көтермейді.
    Ешбір жағдайда NXP Semiconductors кез келген жанама, кездейсоқ, жазалау, арнайы немесе салдарлық залалдар үшін (соның ішінде – шектеусіз – жоғалған пайда, жоғалған жинақ, бизнестің үзілуі, кез келген өнімді алып тастауға немесе ауыстыруға байланысты шығындар немесе қайта өңдеу шығындары) жауапты болмайды. немесе мұндай залал деликтке (соның ішінде абайсыздыққа), кепілдікке, келісімшартты бұзуға немесе кез келген басқа құқықтық теорияға негізделмеген.
    Тұтынушы кез келген себеппен келуі мүмкін кез келген залалға қарамастан, NXP Semiconductors компаниясының осы құжатта сипатталған өнімдер үшін тұтынушы алдындағы жиынтық және жиынтық жауапкершілігі NXP Semiconductors коммерциялық сату ережелері мен шарттарына сәйкес шектеледі.
  • Өзгерістер енгізу құқығы — 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 компаниясының мұндай автомобиль қолданбаларына, пайдалануына және техникалық сипаттамаларына кепілдік бермей пайдалануы керек және ( b) тұтынушы өнімді NXP Semiconductors спецификацияларынан тыс автомобиль қолданбалары үшін пайдаланған кезде, мұндай пайдалану тек тұтынушыға байланысты болады және (c) тұтынушы NXP Semiconductors компаниясының кез келген жауапкершілігін, зақымдануын немесе тапсырыс берушінің дизайны мен пайдалануынан туындаған сәтсіз өнім талаптарын толығымен өтейді. NXP Semiconductors стандартты кепілдігінен және NXP Semiconductors өнімінің техникалық сипаттамаларынан тыс автомобиль қолданбаларына арналған өнім.
  • Аудармалар — Құжаттың ағылшын тіліндегі емес (аударылған) нұсқасы, оның ішінде сол құжаттағы құқықтық ақпарат тек анықтама үшін. Аударылған және ағылшын тіліндегі нұсқалар арасында қайшылықтар болған жағдайда ағылшын тіліндегі нұсқасы басым болады.
  • Қауіпсіздік — Тұтынушы барлық 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, Mali, Mbed, Mbed қосылған, NEON, POP, RealView, 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

Жиі қойылатын сұрақтар

С: Бұл өнімнің негізгі мақсаты қандай?
A: Негізгі мақсат - қарапайым LVGL GUI бұрынғы AI және ML көру алгоритмі үлгісін пайдаланып бетті тану функциясын қосу.ampSLN-TLHMI-IOT тақтасында.

С: Әзірлеушілер бұл қолданба жазбасынан қалай пайда көре алады?
A: Әзірлеушілер ұсынылған бұрынғы нұсқаны пайдалана отырып, құрылымда бетті тануды кезең-кезеңімен жүзеге асыру жолын біле алады.ampқұрылғы менеджерлерін, HAL құрылғыларын және оқиға механизмдерін түсініңіз.

Құжаттар / Ресурстар

NXP AN14263 Framewor жүйесінде LVGL GUI бетті тану мүмкіндігін енгізу [pdf] Пайдаланушы нұсқаулығы
AN14263 Framewor жүйесінде LVGL GUI бетті тану мүмкіндігін енгізу, AN14263, Framewor жүйесінде LVGL GUI бетті тану, Framewor жүйесінде LVGL GUI бетті тану, фреймворда бетті тану, жақтауда, кадрда тану

Анықтамалар

Пікір қалдырыңыз

Электрондық пошта мекенжайыңыз жарияланбайды. Міндетті өрістер белгіленген *