I-NXP AN14263 Sebenzisa I-LVGL GUI Ukubona Ubuso Ku-Framewor
Ulwazi Lomkhiqizo
Imininingwane
- Igama Lomkhiqizo: I-LVGL GUI Ukubona Ubuso Kuhlaka
- Ukubuyekezwa Kwedokhumenti: 1 - 19 Ephreli 2024
- Amagama angukhiye: Ukubonwa kobuso, i-LVGL GUI, Framework
Imiyalo yokusetshenziswa komkhiqizo
- Kuphelileview
Lo mkhiqizo unika amandla imodeli ye-algorithm yombono ye-AI&ML ukuze kuqashelwe ubuso kuhlaka ukuze kusetshenziswe umsebenzi wokuqaphela ubuso nge-ex elula ye-LVGL GUI.ample ebhodini le-SLN-TLHMI-IOT. - I-Framework Overview
Isofthiwe yesixazululo idizayinelwe ukuzungeza ukwakheka kohlaka okubandakanya abaphathi bedivayisi abanomthwalo wemfanelo wokuphatha amadivayisi, amadivayisi we-HAL ukuze aveze imininingwane ewumsuka, kanye nemicimbi yokuxhumana phakathi kwamadivayisi ahlukene. - Izici
Umkhiqizo uvumela ukuqaliswa komsebenzi wokubona ubuso ngekhamera yangaphambiliview esikrinini se-GUI esinezinkinobho zokuqalisa ukubhaliswa kobuso, ukubonwa, nokususwa. Idatha yobuso obubhalisiwe igcinwa ku-Flash nge- file uhlelo. - Okuqukethwe Kwenothi Lohlelo Lokusebenza
Inothi lohlelo lokusebenza lethula isikrini se-LVGL GUI esinekhamera yangaphambiliview nezinkinobho zezenzo ezihlobene nobuso. Isiza onjiniyela baqonde uhlaka nokuthi bangakusebenzisa kanjani ukuqaphela ubuso kusetshenziswa i-ex enikeziweample.
Kuphelileview
I-NXP yethule ikhithi yokuthuthukisa isixazululo ebizwa nge-SLN-TLHMI-IOT egxile ezinhlelweni zokusebenza ze-HMI ezihlakaniphile. Inika amandla i-HMI ehlakaniphile enombono we-ML, izwi, ne-UI yezithombe esetshenziswa ku-NXP i.MX RT117H MCU eyodwa. Ngokusekelwe ku-SDK, isofthiwe yesixazululo yakhiwe ngedizayini ebizwa ngokuthi uhlaka olusekela imiklamo eguquguqukayo nokwenza ngendlela oyifisayo imisebenzi yombono neyezwi. Ukusiza abasebenzisi ukuthi basebenzise inkundla yesofthiwe kangcono, amanye amadokhumenti ayisisekelo anikeziwe, isiboneloample, umhlahlandlela wokuthuthukisa isoftware. Umhlahlandlela wethula ukwakheka kwesoftware okuyisisekelo kanye nezakhiwo zezinhlelo zokusebenza ezihlanganisa zonke izingxenye zesixazululo okuhlanganisa uhlaka lokusiza onjiniyela basebenzise kalula futhi ngempumelelo izinhlelo zabo zokusebenza besebenzisa i-SLN-TLHMI-IOT.
Ukuze uthole imininingwane eyengeziwe mayelana nesixazululo kanye nemibhalo efanele, vakashela ku web ikhasi le-NXP EdgeReady Smart HMI Solution Ngokusekelwe ku-i.MX RT117H nge-ML Vision, Voice, kanye ne-UI Yezithombe. Kodwa-ke, akukabi lula kangako kubathuthukisi ukuthi basebenzise izinhlelo zabo zokusebenza ze-HMI ezihlakaniphile ezibhekisela kulezi ziqondiso eziyisisekelo. Uchungechunge lwamanothi ohlelo luhlelelwe ukusiza ukutadisha ukuthuthukiswa kohlaka isinyathelo ngesinyathelo. Leli nothi lohlelo lokusebenza lisekelwe kokuthi Sebenzisa i-LVGL GUI Camera Preview ku-Framework (idokhumenti AN14147). Leli nothi lohlelo lokusebenza lichaza indlela yokunika amandla imodeli ye-algorithm yombono ye-AI&ML ukuze kuqashelwe ubuso kuhlaka ukuze kusetshenziswe umsebenzi wokubona ubuso ngekhamera yangaphambili.view esikrinini se-GUI nge-LVGL GUI ex elulaample ebhodini le-SLN-TLHMI-IOT. Encwadini yesicelo, i-example yethula isikrini se-LVGL GUI esinekhamera yangaphambiliview nezinkinobho ezithile zokuqalisa ukubhaliswa kobuso, ukubonwa, nokususwa. Idatha yobuso ebhalisiwe igcinwa ku-Flash ngokusebenzisa kancane file uhlelo.
Ezingeni eliphezulu, inothi lesicelo liqukethe okungezansi:
- Nika amandla isici sokubonwa kobuso kuhlaka.
- Engeza ukwesekwa kwesizindalwazi sobuso kuhlaka ngokusebenzisa file uhlelo ku-Flash.
- Sebenzisa uhlelo lokusebenza lwe-LVGL GUI. Ngezethulo ezingenhla, lo mbhalo usiza abathuthukisi ukuthi:
- Qonda uhlaka kanye nesofthiwe yesisombululo se-HMI ehlakaniphile ngokujulile.
- Thuthukisa ukubonwa kobuso kwe-AI&ML kuhlaka ngohlelo lokusebenza lwe-LVGL GUI.
Uhlaka luphelileview
Isoftware yesixazululo iklanyelwe ngokuyinhloko ukusetshenziswa kwesakhiwo sohlaka esakhiwe izingxenye eziningana ezahlukene:
- Abaphathi bedivayisi - ingxenye eyinhloko
- I-Hardware Abstraction Layer (HAL) Amadivayisi
- Imilayezo/Imicimbi
Njengoba kuboniswe kuMfanekiso 1, ngaphezuluview yomshini wohlaka yilokhu:
Abaphathi bedivayisi banesibopho sokuphatha amadivayisi asetshenziswa uhlelo. Uhlobo lwedivayisi ngayinye (okokufaka, okukhiphayo, njalo njalo) lunomphathi wedivayisi ethile yohlobo oluthile. Njengoba umphathi wedivayisi eqala ngemva kokubhaliswa kwamadivayisi kuyo, uyalinda futhi ahlole umlayezo ukuze adlulisele idatha kumadivayisi nakwabanye abaphathi ngemva kokuqalisa nokuqalisa amadivayisi abhalisiwe. Amadivayisi we-HAL abhalwe ngaphezulu kwekhodi yomshayeli yezinga eliphansi, okusiza ukwandisa ukuqonda kwekhodi ngokukhipha imininingwane eminingi engaphansi.
Imicimbi iyindlela yokuxhumana phakathi kwamadivayisi ahlukene ngabaphathi bawo. Uma umcimbi ucushiwe, idivayisi eqale yathola umcimbi idlulisela lowo mcimbi kumphathi wayo, bese yona yazisa abanye abaphathi abaqokiwe ukuthi bamukele umcimbi.
Idizayini yezakhiwo yohlaka yayigxile emigomweni emithathu eyinhloko:
- Ukusebenziseka kalula
- Ukuvumelana nezimo/Ukuphatheka
- Ukusebenza
Uhlaka lwakhiwe ngenhloso yokusheshisa isikhathi sokumaketha umbono kanye nezinye izinhlelo zokusebenza zokufunda ngomshini. Ukuqinisekisa isikhathi esisheshayo sokumaketha, kubalulekile ukuthi isoftware ngokwayo kube lula ukuyiqonda nokuyilungisa. Ukhumbula lo mgomo, ukwakheka kohlaka kulula ukukushintshwa ngaphandle kokuba nemingcele, futhi ngaphandle kokuza ngezindleko zokusebenza.
Ukuze uthole imininingwane eyengeziwe ngohlaka, bheka Umhlahlandlela Womsebenzisi Wokuthuthukiswa Kwesofthiwe ye-Smart HMI (idokhumenti MCU-SMHMI-SDUG).
Ilabhulali Yezithombe Ezikhanyayo Nehlukahlukene (LVGL)
I-LVGL (Ilabhulali Yezithombe Ezikhanyayo Nehlukahlukene) iwumtapo wezincwadi wezithombe wamahhala nomthombo ovulekile ohlinzeka ngakho konke okudingayo ukuze udale i-GUI eshumekiwe enezici zesithombe ezisebenziseka kalula, imiphumela emihle yokubuka kanye nenkumbulo ephansi.
Umhlahlandlela we-GUI
I-GUI Guider iyithuluzi lokuthuthukisa isixhumi esibonakalayo somsebenzisi esisebenziseka kalula esivela ku-NXP esivumela ukuthuthukiswa okusheshayo kwezibonisi zekhwalithi ephezulu ngomtapo wezincwadi wezithombe we-LVGL womthombo ovulekile. Isihleli sokudonsa nokuwisa se-GUI Guider sikwenza kube lula ukusebenzisa izici eziningi ze-LVGL ezifana namawijethi, izithombe ezinyakazayo, nezitayela ukuze udale i-GUI engenakho ukubhala ngekhodi okuncane noma okungenakho nhlobo.
Ngokuchofoza inkinobho, ungasebenzisa uhlelo lwakho lokusebenza endaweni elingisayo noma ulithumele kuphrojekthi eqondiwe. Ikhodi ekhiqiziwe evela ku-GUI Guider ingangezwa kalula kuphrojekthi yakho, isheshise inqubo yokuthuthukisa futhi ikuvumela ukuthi wengeze ngaphandle komthungo ukusebenzelana komsebenzisi okushumekiwe ohlelweni lwakho lokusebenza. I-GUI Guider imahhala ukuthi isetshenziswe ngenjongo evamile ye-NXP kanye nama-MCUs ahlukene futhi ihlanganisa izifanekiso zephrojekthi ezakhelwe ngaphakathi zezinkundla ezimbalwa ezisekelwayo. Ukuze ufunde kabanzi mayelana nokuthuthukiswa kwe-LVGL ne-GUI kusiqondisi se-GUI, hlola Ilabhulali Yezithombe Ezikhanyayo Ezikhanyayo Nezihlukahlukene kanye Nomhlahlandlela we-GUI.
Indawo yokuthuthukisa
Okokuqala, lungiselela futhi usethe i-Hardware ne-software indawo yokusebenzisa i-example kuhlaka.
Hardware imvelo
Imvelo yehadiwe isethelwe ukuqinisekisa i-example:
- Ikhithi yokuthuthukisa ye-HMI ehlakaniphile esekelwe ku-NXP i.MX RT117H (ikhithi ye-SLN_TLHMI_IOT)
- I-SEGGER J-Link ene-adaptha engu-9-pin Cortex-M kanye ne-V7.84a noma inguqulo entsha yomshayeli
Imvelo yesofthiwe
Imvelo yesofthiwe isethelwe ukuthuthukisa i-example:
- I-MCUXpresso IDE V11.7.0
- I-GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – isbample khodi yenothi lesibili lohlelo lokusebenza njengesoftware eyisisekelo yokuthuthukiswa. Ukuze uthole imininingwane, bheka https://mcuxpresso.nxp.com/appcodehub.
- I-RT1170 SDK V2.13.0 – njengesisetshenziswa sekhodi sokuthuthukiswa.
- Isofthiwe ye-SLN-TLHMI-IOT V1.1.2 – ikhodi yomthombo ehlakaniphile ye-HMI ekhishwe endaweni yokugcina ye-NXP GitHub njengesisetshenziswa sekhodi sokuthuthukiswa. Ukuze uthole imininingwane, bheka: GitHub – NXP/mcu-smhmi at v1.1.2
Ukuze uthole imininingwane mayelana nokutholwa nokusethwa kwendawo yesofthiwe, bona: Ukuqalisa nge-SLN-TLHMI-IOT.
Umbono wezakhiwo kuhlaka
Isakhiwo sombono ohlakeni sikhonjiswe kuMfanekiso 2. Umbono we-algo HAL (OASIS_HAL) unezinqubo ezingezansi:
- Yenza ukubhaliswa kobuso nokuqashelwa ngemodeli ye-algorithm yombono ye-AI&ML ngemva kokuthola imicimbi ehlobene evela kokuphumayo kwe-UI HAL. Yazisa imiphumela ye-inference kusuka kumodeli ye-algorithm kuya kokuphumayo kwe-UI HAL.
- Ifinyelela (engeza, susa...) isizindalwazi sesici sobuso ngokusekelwe kokuncane file uhlelo ngokubiza ama-API we-FaceDB HAL ngemva kokuthola imicimbi ehlobene kusukela kokuphumayo kwe-UI HAL.
- Cela ifremu yevidiyo yekhamera ku-HAL yekhamera lapho ubhalisa ubuso nokuqashelwa.
Sebenzisa ukuqashelwa kobuso kuhlaka
I-LVGL GUI ex yokuqaphela ubusoample (example inikezwa kamuva) kuhlaka lusetshenziswa ngokususelwe ku-exampamakhodi Wokusebenzisa Ikhamera ye-LVGL GUI Preview ku-Framework (idokhumenti AN14147).
Okokubonisa ukunakwa kobuso ku-example, umsebenzi oyisisekelo wohlelo lokusebenza lwe-GUI (bona isikrini esikhulu kuMfanekiso 3) uklanywe njengoba kuchazwe ngezansi:
- Uhlelo lokusebenza lwe-GUI lucupha ukubhaliswa kobuso noma umcimbi wokuqashelwa kokuphumayo kwe-UI HAL uma uchofoza inkinobho ethi Ukubhalisa noma Ukuqaphela. Futhi okuphumayo kwe-UI HAL kwazisa umcimbi wokwengeza umsebenzisi kumbono we-algo HAL ngemva kokuphumelela kokubhaliswa kobuso.
- Uhlelo lokusebenza lwe-GUI lucupha umcimbi wokususa umsebenzisi kokuphumayo kwe-UI HAL uma uchofoza inkinobho ethi Susa Umsebenzisi ngemva kokubonwa kobuso bomsebenzisi.
- Uhlelo lokusebenza lwe-GUI lucupha umcimbi wokumisa i-oasis algo ku-UI HAL okukhiphayo uma uchofoza isikrini ngaphandle kwezinkinobho nezithombe.
Lungiselela iphakheji yesofthiwe ukuze kusetshenziswe i-example.
- Khipha isofthiwe eyisisekelo lvgl_gui_camera_preview_cm7. Shintsha igama lephrojekthi kanye nenhloko fileigama ku-lvgl_gui_face_rec_cm7.
- Uhlaka luyadingeka ukuze lubuyekezwe kusofthiwe njengoba amakhodi omthombo wesisekelo sohlaka eseqalile ukuba sesidlangalaleni ku-GitHub kusukela kunguqulo 1.1.2.
- Shintshanisa ifolda yohlaka ngekhophi ye-V1.1.2 evela ku-GitHub ngaphandle kwe- files fwk_log.h kanye ne-fwk_common.h under inc\ njengoba eguqulelwe ochungechungeni lwenothi lohlelo lokusebenza. Imisebenzi iboniswa kuMfanekiso 4:
- Susa ifolda framework_cm7 ngaphansi kweqembu le-libs bese ususa i-framework_cm7 yelabhulali kanye nendlela yayo yokusesha elungiselelwe kokuthi Iphrojekthi > Izakhiwo > C/C++ Yakha > izilungiselelo > Izilungiselelo Zethuluzi > I-MCU C++ Linker > Imitapo yolwazi njengoba ikhodi yomthombo yomgogodla inikeziwe.
Nika amandla isici sokubona ubuso kuhlaka
Isici sokuqaphela ubuso sakhelwe kumodeli ye-algorithm yombono we-ML enikezwe njengomtapo wezincwadi ongashintshi - umtapo wezincwadi we-oasis lite wesikhathi sokusebenza we-NXP. Umtapo wolwazi umtapo wezincwadi we-AI omncane, osebenza kahle kakhulu, owenziwe ngezifiso, futhi olungiselelwe kahle. Imodeli ihlanganisa ukutholwa kobuso, ukubona ubuso, ukutholwa kwengilazi, nokutholwa kokuphila. Ihlinzeka kakhulu nge-API OASISLT_run_extended() ukusebenzisa ipayipi lokubona ubuso ngenkathi ibuyekeza imiphumela kofonayo ngokuphinda ushaye ucingo emcimbini, futhi wengeze/ubuyekeze/ususe ubuso kusizindalwazi ngokusebenzisa izinombolo zocingo zobuso ngemva kokucacisa ulwazi lohlaka lomthombo, ukushaya ucingo, nememori. i-pool esetshenziswa ilabhulali ngokushayela enye i-API OASISLT_init() ekuqaliseni. Ukubizwa kwama-API kanye nemisebenzi yokuphinda ushayele isetshenziswa embonweni we-algo HAL wohlaka.
Engeza ilabhulali yemodeli ye-vision algo
- Kopisha i-oasis yefolda equkethe umtapo wezincwadi kanye nesihloko esihlobene file kusuka ku-smart HMI\coffee_machine\cm7\libs\ kuya kumafolda e-libs ye-example SW.
- Engeza indlela yokusesha yesihloko file kokuthi Iphrojekthi > Izakhiwo > I-C/C++ Yakha > izilungiselelo > Izilungiselelo Zethuluzi > Umhlanganisi we-MCU C > Ihlanganisa kanye ne-MCU C++ compiler > Kuhlanganisa: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- Engeza i-lib nendlela yayo yokusesha kokuthi Iphrojekthi > Izakhiwo > C/C++ Yakha > izilungiselelo > MCU C+ + Linker > Amalabhulali: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” kanye nencazelo enkulu yokuthi nika amandla isici kokuthi Iphrojekthi > Izakhiwo > I-C/C++ Yakha > izilungiselelo > Izilungiselelo zethuluzi > Inhlanganisela ye-MCU C > I-Preprocessor kanye ne-MCU C++ compiler > Preprocessor: SMART_TLHMI_2D
Nika amandla umbono algo HAL
Umbono we-algo HAL ushayela imodeli ye-algo yombono ukuthi isebenze futhi iphendule imiphumela ku-HAL yokuphuma kwe-UI ngemva kokuthola imicimbi kuyo.
Ukuze uyinike amandla, fanisa umshayeli ofanayo we-HAL file lapho kwenziwa khona imisebenzi engezansi:
- Sebenzisa ama-callbacks wokusebenza kwesizindalwazi sobuso nokuphathwa kwemicimbi.
- Shayela umbono ukuze usebenze ngokushayela ama-API welabhulali ye-oasis.
- Finyelela kusizindalwazi sobuso bomsebenzisi kanye nesizindalwazi sohlelo lokusebenza (akudingekile ku-example).
- Thola imicimbi futhi uthumele imiphumela kokuphumayo kwe-UI HAL.
Umsebenzi omkhulu wokusebenzisa i-HAL ye-examplezi:
- Hlanganisa umshayeli ofanayo we-HAL file futhi ushintshe amagama ahlobene.
- Susa amakhodi ahlobene nokusebenza kwedatha yohlelo lokusebenza.
- Buyekeza izincazelo nemisebenzi yokusingatha imicimbi kusukela kokuphumayo kwe-UI HAL ngokwesiboneloampumklamo.
- Engeza ukucupha okudingekayo ekuqalisweni kwe-oasis.
Izinyathelo ezinemininingwane zimi kanje:
- Clone hal_vision_algo_oasis_coffeemachine.c. Shintsha i- fileigama elithi hal_vision_algo_oasis_guifacerec.c. Bese ushintsha zonke izintambo ze-CoffeeMachine nge-GUIFaceRec ku- file.
- Susa amakhodi aqukethe iyunithi yezinhlamvu ze-coffeedb (hhayi icala elizwelayo) ahlobene nesizindalwazi sohlelo lokusebenza, ngokwesiboneloample, #faka i-hal_sln_coffeedb.h.
- Lungisa umsebenzi othi HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() ukuze uphathe imicimbi ngokuphuma kwe-UI HAL.
- Shintsha incazelo yomcimbi i-kEventFaceRecId_RegisterCoffeeSelection ibe yi-kEventFaceRecId_RegisterUserFace kanye neyunithi yezinhlamvu yesakhiwo i-regCoffeeSelection ibe i-regGUIFaceRec yokusingatha umcimbi ukuze kwengeze idatha yesici sobuso obusha kusizindalwazi.
- Ukubonisa inqubo evamile yezenzo zokuqaphela ubuso ku-example, lungisa ukuphatha esimweni se-kEventFaceRecID_OasisSetState ngezincazelo zezifunda:
- kOASISLiteState
- Ukubhalisa kOASISLiteState
- Ukuqashelwa kOASISLiteState
- Imile
- Engeza futhi ulungise izincazelo zezehlakalo ezishiwo esinyathelweni esingenhla.
- Kopisha unhlokweni file i-smart_tlhmi_event_descriptor.h isuka ku-smart HMI\coffee_machine \cm7\source\event_handler\ ingene emthonjeni wefolda ye-example SW. Buyekeza i file njengoba ngezansi:
- Shintsha incazelo yomcimbi i-kEventFaceRecId_RegisterCoffeeSelection ibe yi-kEventFaceRecId_RegisterUserFace kuhlobo lwe-enum _event_smart_tlhmi_id kanye neyunithi yezinhlamvu zesakhiwo regCoffeeSelection ukuze i-regGUIFaceRec kusakhiwo _event_smart_tlhmi. Ngakho-ke, shintsha isakhiwo serejista_coffee_selection_event_t se-regCoffeeSelection siye kurejista_gui_facerec_event_t.
- Susa okunye okuqukethwe okusetshenziselwa uhlelo lokusebenza lomshini wekhofi, isiboneloample, umugqa wekhodi mayelana nezwi: #include “hal_event_descriptor_voice.h”.
- Engeza izinhlobo kOASISLiteState_Stoped kanye ne-kOASISLiteState_Running kuhlobo lwe-enum oasis_lite_state_t ku-hal_vision_algo.h ngaphansi kohlaka>hal>umbono kuphrojekthi njengezansi:
typedef enum _oasis_lite_state {- kOASISLiteState
- Iyasebenza, kOASISLiteState
- Imisiwe, kOASISLiteState
- Ukuqashelwa,
- kOASISLiteState
- Ukubhalisa, kOASISLiteState
- Ukukhipha Ukubhalisa, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Bala
- Sebenzisa isakhiwo esibuyekeziwe se-oasis_lite_state_t ukuze ucwenge isakhiwo se-oasis_state_event_t ku-hal_event_descriptor_face_rec.h ngaphansi kohlaka>hal>umbono kuphrojekthi njengezansi: typedef struct _oasis_state_event_t {oasis_lite_state_t state; } i-oasis_state_event_t;
- Shintsha yonke i-kEventInfo_Remote ibe yi-kEventInfo_Local yokuthumela imicimbi isuka embonweni i-algo i-HAL iye kwamanye ama-HAL asebenza kumongo owodwa njenge-single core esikhundleni sokuthi i-dual-core isetshenziswa ku-ex.ample.
- Engeza futhi ulungise ukucupha okungezansi kokuqaliswa kwe-oasis ku-OASISLT_init():
- Engeza izincazelo ezinkulu nezigaba zenkumbulo zohlaka lwevidiyo ku-board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- #chaza OASIS_RGB_FRAME_HEIGHT 600
- #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #chaza i-OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #chaza AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((isigaba(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __imfanelo__((iqondanisiwe(iqondanisiwe)))
- Lungiselela isabelo sememori esigabeni esingenhla senkumbulo fb_sh_mem kokuthi Iphrojekthi > Izakhiwo > C/C++ Yakha > Izilungiselelo ze-MCU eziboniswe kuMfanekiso 5:
- Memezela okuguquguqukayo komhlaba jikelele kwe-g_DTCOPBuf ku-lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Qhubeka ungeze izincazelo ezisetshenziswe kokuhluka okungenhla:
- Chaza isigaba esingenhla kokuthi board_define.h:
- #chaza AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- isici__((isigaba(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- isibaluli__((kuqondaniswe(kuqondanisiwe)))
- Faka unhlokweni file hal_vision_algo.h equkethe incazelo enkulu DTC_OPTIMIZE_BUFFER_SIZE ku-app_config.h efakwe ku-lvgl_gui_face_rec_cm7.cpp.
- Engeza izincazelo ezinkulu nezigaba zenkumbulo zohlaka lwevidiyo ku-board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Setha okuguquguqukayo okuthi s_debugOption kube iqiniso ukuze ubonise isimo sokuqhubeka ekuqashelweni kobuso.
- Engeza indlela yokusesha yesihloko fileyombono we-HAL kokuthi Iphrojekthi > Izakhiwo > C/C++ Yakha > izilungiselelo > Izilungiselelo Zethuluzi > Umhlanganisi we-MCU C > Ihlanganisa kanye ne-MCU C++ compiler > Kuhlanganisa: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- Engeza incazelo engezansi ukuze unike amandla umbono we-algo HAL ku-board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Nika amandla okukhiphayo kwe-UI HAL
I-UI HAL ephumayo yazisa izehlakalo embonweni we-algo HAL futhi iphendula kumiphumela yokucatshangelwa evela kumbono we-algo HAL. Ngohlelo lokusebenza lwe-GUI, imicimbi ngokuvamile ivuswa uhlelo lokusebenza futhi imiphumela iboniswa kuhlelo lokusebenza.
Ukuze uyinike amandla, fanisa umshayeli ofanayo we-HAL file lapho ngokuvamile imisebenzi engezansi isetshenziswa:
- Yazisa imicimbi ukuze uthole ukubonwa kobuso nokufinyelela kusizindalwazi.
- Sebenzisa ama-callback wohlelo lokusebenza lwe-GUI ukuze uqalise imicimbi.
- Phatha imiphumela yemibono evela kumojula ye-algo yombono.
- Bonisa inqubo nemiphumela yemicimbi ephathwayo ku-UI ngebha yokuqhubeka elawulwa ngezibali sikhathi kanye nonxande wokuqondisa ubuso.
Umsebenzi omkhulu wokusebenzisa i-HAL ye-exampezisetshenziswe kulo mbhalo yilezi:
- Hlanganisa umshayeli ofanayo we-HAL file futhi ushintshe amagama ahlobene.
- Susa amakhodi ahlobene nohlelo lokusebenza.
- Buyekeza imisebenzi yesaziso semicimbi kanye nempendulo yemiphumela ngokwesiboneloampumklamo.
- Engeza ama-callbacks wohlelo lokusebenza lwe-GUI ukuze uqalise imicimbi.
Izinyathelo ezinemininingwane zimi kanje:
- Clone hal_output_ui_coffee_machine.c. Shintsha i- fileigama ku-hal_ output_ui_guifacerec.c.
- Faka esikhundleni zonke izintambo CoffeeMachine nge GUIFaceRec ku file.
- Susa amakhodi ahlobene nohlelo lokusebenza - umshini wekhofi.
- Susa imisebenzi ethi WakeUp() kanye ne-_StandBy() kanye namakhodi ahlobene (ingase iseshe iyunithi yezinhlamvu ethi wake_up kanye nokulinda).
- Susa ngaphambiliniview Imicimbi yemodi ephethe amakhodi ahlobene kokuthi HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Susa imisebenzi ethi UI_xxx_Callback() kanye namakhodi aqukethe iyunithi yezinhlamvu gui_ nesikrini esihlobene ne-GUI yomshini wekhofi ngaphandle kwe-gui_set_virtual_face() yangaphambiliniview isici semodi.
- Susa wonke amakhodi abandakanyeke nokuhluka okuthi s_IsWaitingAnotherSelection kanye nokuthi s_IsWaitingRegisterSelection ehlobene nohlelo lokusebenza lomshini wekhofi.
- Susa amakhodi ahlobene nezwi, umsindo, nolimi. Okwesiboneloample:
- #faka phakathi okuthi “hal_voice_algo_asr_local.h”,
- #faka phakathi i-“hal_event_descriptor_voice.h”
- Ukuze uthole isaziso semicimbi ehlukahlukene, sebenzisa imisebenzi emisha ethi _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), kanye ne-DeregisterGUIFaceRec() ebhekisela emisebenzini _StopFaceRec(), _RegisterCoffeeSelection(), kanye Nokuyisusa Ukubhalisa(Ikhofi).
- I-_OutputManagerNotify() isebenzisa okukhiphayo komcimbi oyisisekelo ukuthumela umcimbi kumbono we-algo HAL. Imisebenzi engezansi ibiza ukuthi ithumele imicimbi yayo.
- I-_SetFaceRec() ithumela umcimbi kEventFaceRecID_OasisSetState ukuze icuphe umbono we-algo wokubhaliswa kobuso, ukubonwa, nokumisa i-algo.
- I-_RegisterGUIFaceRec() ithumela umcimbi i-kEventFaceRecId_RegisterGUIFaceRec echazwe kokuthi smart_tlhmi_event_descriptor.h ukwengeza idatha yesici sobuso kusizindalwazi lapho kubhaliswa KULUNGILE.
- I-DeregisterGUIFaceRec() ithumela umcimbi i-kEventFaceRecID_DelUser ukuze isuse idatha yesici sobuso kusizindalwazi lapho idlulisa ukubonwa kobuso.
- Buyekeza amakhodi ukuze wenze izenzo ezihambisanayo ezihlanganisa ukuvuselela i-GUI ngokushayela ama-API kusukela kuhlelo lokusebenza lwe-LVGL GUI ukuze uthole imiphumela yokusikisela yokubhaliswa kobuso nokuqashelwa kumsebenzi _InferComplete_Vision() ngokwesibonelo ngasinye.ampsiklame. Okwesiboneloample, uma ukubhaliswa kobuso kuphumelela,
- Yeka ukukhombisa ukuqhubeka ngokushayela ku-_FaceRecProcess_Stop();
- Misa ukubhaliswa kobuso ngokushayela ku-_SetFaceRec(kOASISLiteState_Stopped);
- Bonisa umphumela ophumelele ku-GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Bhalisa idatha yobuso kusizindalwazi: _RegisterUserFace(s_UserId);
- Engeza imisebenzi ye-UI callback ukuze uphathe imicimbi: preview, ukubhaliswa kobuso, ukubonwa, kanye nokususa umsebenzisi okuqaliswe ku-GUI. Okwesiboneloample, ukubuyela emuva kokubhaliswa kobuso: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Futhi wengeze imisebenzi _FaceRecProcess_Start() kanye ne-_FaceRecProcess_Stop() ukuze ubonise ukuqhubeka nesimo ezenzakalweni ezahlukene nemiphumela.
- Buyekeza umsebenzi we-ISR callback wesibali sikhathi _SessionTimer_Callback() ukuze uphathe indaba yokuphuma kwesikhathi ngokushayela: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Engeza izincazelo ezingezansi ukuze unike amandla ukuphuma kwe-UI ku-HAL ku-board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Isaziso:
Ukuze wethule kangcono isici sokubonwa kobuso, gcina umsebenzi ukuze ubonise inqubo nemiphumela yokubonwa kobuso kokuphumayo kwe-UI HAL. Umsebenzi uchazwe ngezansi
- Unxande womhlahlandlela wobuso ubonisa okuluhlaza okwesibhakabhaka, futhi ibha yokuqhubeka ibonisa ukuqhubeka lapho uqala ukubhaliswa kobuso noma ukubonwa.
- Unxande womhlahlandlela wobuso ubonisa okubomvu uma ukubhaliswa kobuso kuphumelela.
- Unxande womhlahlandlela wobuso ubonisa okuluhlaza lapho ukubona ubuso kuphumelela.
- Unxande womhlahlandlela wobuso ugcina uluhlaza okwesibhakabhaka, futhi ibha yokuqhubeka ibonisa ukuqhubeka okugcwele lapho isenzo singaphumeleli ngemva kokuphelelwa yisikhathi kwesibali sikhathi. Ngaleso sikhathi, misa ukubhaliswa kobuso noma ukubonwa.
Ibha yenqubekela-phambili kanye nonxande womhlahlandlela wobuso kuvezwa njengezithonjana ezakhelwe phakathi kwensiza kanambambili file izohlelwa ku-Flash. Izikhombisi zedatha yezithombe ku-SDRAM zisethwa kumsebenzi othi LoadIcons(APP_ICONS_BASE) obizwa ekukhishweni kokuqaliswa kwedivayisi ye-UI HAL kokokukhiphayo kwe-UI HAL. Kufanele isebenzise usekelo lwezithonjana lomsebenzi.
Sebenzisa ukusekelwa kwezithonjana
- Yakha insiza ehlanganisa izithonjana nezithombe ezisetshenziswe kuhlelo lokusebenza lwe-LVGL GUI:
- Kopisha unhlokweni wezithonjana ezine files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, ne-virtual_face_red_420x426.h kusuka ku-HMI ehlakaniphile
\umshini wekhofi\insiza\izithonjana\ kuzithonjana zefolda entsha ngaphansi kwefolda yensiza ye-example SW. - Engeza indlela yokusesha yezithonjana ezine files kukhamera_preview_resource.txt file kufolda yensiza, isiboneloample: isithonjana ../resource/icons/process_bar_240x14.h
- Sebenzisa ikhamera_preview_resource_build.bat ukwakha izinsiza zezithombe nezithonjana ukukhiqiza umgqomo file camera_preview_resource.bin kanye nolwazi file resource_information_table.txt (Bheka Umfanekiso 6).
- Kopisha unhlokweni wezithonjana ezine files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, ne-virtual_face_red_420x426.h kusuka ku-HMI ehlakaniphile
- Chaza ikheli lokuqala ku-SDRAM kanye nosayizi wezithonjana ku-app_config.h. Ikheli liqala eduze kwezithombe zohlelo lokusebenza lwe-GUI. Usayizi ukhiqizwa olwazini file. #chaza APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Buyekeza usayizi owabelwe wesigaba sememori oqanjwe kabusha ngokuthi res_sh_mem uye ku-0x200000 ngokuyichaza kabusha kokuthi app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 kanye nesilungiselelo esihambisanayo kokuthi Project > Properties > C/C++ Build > izilungiselelo ze-MCU.
- Engeza usayizi wesithonjana kusayizi wengqikithi yesisetshenziswa esilayishwe ukusuka ku-Flash ukuya ku-SDRAM kumsebenzi APP_LoadResource() phakathi file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Qaphela: Ukuze uqedele isici sokubonwa kobuso, usekelo lohlelo lokusebenza lwe-LVGL GUI luyadingeka. Imisebenzi ye-UI callback ekuphumeni kwe-UI HAL ibizwa uhlelo lokusebenza lwe-LVGL GUI lokusingatha imicimbi kusikrini se-UI. Ngakolunye uhlangothi, i-UI HAL ephumayo ibiza ama-API asuka kuhlelo lokusebenza lwe-LVGL GUI ukuze abuyekeze i-UI ukuze abonise umphumela nesimo. Ukuthuthukiswa kohlelo lokusebenza lwe-LVGL GUI kuzimele futhi kwethulwe kuSigaba 4.3.
4.1.5 Qala amadivayisi we-HAL nabaphathi ukuze baqashelwe ubuso
Umbono onikwe amandla we-algo HAL kanye ne-UI okukhipha i-HAL nabaphathi bawo baqalwa ngokuyinhloko file
lvgl_gui_face_rec_cm7.cpp kulandela ukuguqulwa kwentuthuko ohlakeni olungezansi:
- Faka unhlokweni file ezihlobene nabaphathi ababili be-HAL ngokungeza umugqa wekhodi:
- #faka ” fwk_output_manager.h “
- #faka phakathi okuthi “fwk_vision_algo_manager.h”
- Memezela amadivayisi we-HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Bhalisa amadivayisi we-HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Qalisa abaphathi:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Qala abaphathi:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Chaza ukubaluleka kwemisebenzi yomphathi:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Engeza ukwesekwa kwesizindalwazi sobuso kuhlaka
Idatha yesici sobuso obubhalisiwe ifinyelelwa kusizindalwazi sobuso esigcinwe ku-Flash ngokusebenzisa kancane file uhlelo. Izinyathelo zokwengeza ukwesekwa kwesizindalwazi sobuso zichazwe ngezansi.
Engeza izishayeli zokulondoloza i-Flash
Kopisha umshayeli we-Flash interface FlexSPI files fsl_flexspi.c kanye ne-fsl_flexspi.h, kanye nomshayeli wokubethela idatha files fsl_caam.c kanye ne-fsl_caam.h ukusuka endleleni SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ kuya kufolda yabashayeli be-example SW.
Engeza ukwesekwa kwezinga lebhodi
- Engeza izincazelo ze-FlexSPI esetshenziselwa idivayisi ye-Flash ebhodini.h:
- #chaza BOARD_FLEXSPI FLEXSPI1
- #chaza IBHODI_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Kopisha opharetha nezilungiselelo files wedivayisi ye-Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h ngaphansi kwendlela ehlakaniphile ye-HMI\coffee_machine\cmsh_umthombo we-exflash board\cmsh_ample SW.
- Susa ukumaka okuthi “Khipha isisetshenziswa esakhiweni” kokuthi C/C++ Build > Izilungiselelo ngemva kokuchofoza kwesokudla ku- files' igama kanye nokuvula Izakhiwo ukuze zikwazi ukwakhiwa kuphrojekthi.
- Shintsha unhlokweni ofakiwe fileigama elithi sln_flash_config.h ku-sln_flash_config_w25q256jvs.h ku-sln_flash_config.c kanye ne-flexspi_nor_flash_ops.h.
- Setha umthombo wewashi le-FlexSPI1 ku- file clock_config.c ibhekisa kuhlelo lokusebenza lomshini wekhofi.
Engeza i-adaptha nosekelo lwezinga eliphakathi
- Kopisha i files sln_flash.c, sln_flash.h, sln_encrypt.c, kanye ne-sln_encrypt.h njengezishayeli ze-adaptha file uhlelo nohlelo lokusebenza kusuka endleleni ye-smart HMI\coffee_machine\cm7\source\ ukuya emthonjeni wefolda we-example. Buyekeza okusha files:
- Susa ukumaka okuthi “Khipha isisetshenziswa esakhiweni” kuzo ukuze kwakhiwe.
- Shintsha wonke unhlokweni ofakiwe file igama elithi sln_flash_config.h kuya ku-sln_flash_config_w25q256jvs.h.
- Kopisha ifolda fileuhlelo oluqukethe ama-API amancane fileuhlelo kanye nomshayeli we-HAL kusuka ku-smart HMI \coffee_machine\cm7\source\ kuya ku-example SW. Futhi ubuyekezele ifolda entsha:
- Susa ukumaka okuthi “Khipha isisetshenziswa esakhiweni” kuso ukuze kwakhiwe.
- Engeza indlela yayo yokuhlanganisa kuzilungiselelo zephrojekthi: “${workspace_loc:/${ProjName}/fileuhlelo}”
- Shintsha unhlokweni ofakiwe file igama elithi sln_flash_config.h kuya ku-sln_flash_config_w25q256jvs.h kanye nokuthi fica_definition.h kuya ku-app_config.h ku- file sln_flash_littlefs.h.
- Kopisha ifolda encane equkethe i-ware ephakathi - encane fileisistimu ukusuka endleleni SDK_2_13_0_ MIMXRT1170-EVK\middleware\ kuya ku-example SW. Futhi ubuyekeze ifolda entsha:
- Susa ukumaka okuthi “Khipha isisetshenziswa esakhiweni” kuso ukuze kwakhiwe.
- Engeza indlela yayo yokuhlanganisa kuzilungiselelo zephrojekthi: “${workspace_loc:/${ProjName}/littlefs}”
Engeza abashayeli be-HAL
- Kunamadivayisi amabili we-HAL - file isistimu nesizindalwazi sobuso i-HAL isekelwa isici sokufinyelela kusizindalwazi futhi sezivele zisetshenziswa ohlakeni ngaphandle kwanoma yiluphi ushintsho. Zinike amandla ngokwengeza izincazelo ezingezansi kokuthi board_define.h:
- #chaza ENABLE_FLASH_DEV_Littlefs
- #chaza ENABLE_FACEDB
Futhi shintsha igama lesizindalwazi sobuso se-example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
Engeza ukwesekwa kwezinga lohlelo lokusebenza
- Buyekeza okuyinhloko file lvgl_gui_face_rec_cm7.cpp:
- Faka unhlokweni file okuhlobene ne-Flash file Umphathi we-HAL wesistimu ngokungeza umugqa wekhodi: #include “fwk_flash.h”
- Memezela futhi ubhalise file idivayisi ye-HAL:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Qaphela: I file idivayisi ye-HAL yesistimu kufanele ibhaliswe ngaphambi kokuthi bonke abaphathi bedivayisi baqaliswe kumsebenzi APP_InitFramework().
- Shayela umsebenzi BOARD_ConfigMPU() ku-APP_BoardInit() ukuze ulungiselele i-MPU.
- Setha i- file isabelo sesistimu ku-Flash ku- file app_config.h ngokuchaza izincazelo ezinkulu ezisetshenziswe ku- file sln_flash_littlefs.h:
- #chaza i-FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #chaza i-FICA_FILE_SYS_SIZE (0x280000)
Ukucushwa
Amanye amakhodi ahlobene ne-Flash asetshenziswa endaweni ye-SRAM ITC ukuze asebenze okwanele. Kopisha imibhalo yesixhumanisi yefolda equkethe ukulungiselelwa kwesixhumanisi ukusuka endleleni ehlakaniphile i-HMI\coffee_machine\cm7\ ukuya ku-example SW.
Sebenzisa uhlelo lokusebenza lwe-LVGL GUI
Ukuthuthukiswa kohlelo lokusebenza lwe-LVGL GUI okusekelwe ohlakeni kubiza ama-API kusukela ekuphumeni kwe-UI HAL futhi kunikeza ama-API ukuze akhiphe i-UI HAL (Bheka Isigaba 4.1.3 ukuze kusetshenziswe okukhiphayo kwe-UI HAL).
Kodwa-ke, ukuqaliswa okunemininingwane yohlelo lokusebenza lwe-LVGL GUI kuncike ezidingweni nasekuklanyweni kohlelo lokusebenza. Uhlelo lokusebenza GUI kulesi example yakhelwe njengoba kuchaziwe ekuqaleni kwesigaba 4.
Ngezansi izingeniso zokuqaliswa:
- Amakhodi enziwe ngokwezifiso asetshenziswa ku-custom.c naku-custom.h enikezwe i-GUI Guider njengokuxhumana phakathi kwephrojekthi yoMqondisi we-GUI kanye nephrojekthi yesistimu eshumekiwe.
- Engeza imisebenzi emisha ebizwa ngokuthi gui_xxx() ku-custom.c ukuze ufeze imisebenzi engezansi:
- Okokukhiphayo kwe-UI HAL nohlelo lokusebenza lwe-GUI ukuze kuthuthukiswe i-UI.
- Ukuze uhlelo lokusebenza lwe-GUI lucuphe imicimbi ngokushayela imisebenzi ye-UI yokuphinda ushayele kusukela ekuphumeni kwe-UI HAL.
Okwesiboneloample, umsebenzi omusha gui_event_face_rec_action() ubiza imisebenzi ye-UI yokushayela emuva ukuze isingathe umcimbi owodwa wokubhaliswa kobuso, ukubona ubuso kanye nokususa umsebenzisi okuqaliswe kuhlelo lokusebenza lwe-GUI uma inkinobho ehlobene ichofozwa.
Qaphela: Umsebenzi gui_set_virtual_face() obizwa ekuphumeni kwe-UI HAL kwangaphambi kwalokhoview Imodi idinga ukusetshenziswa ku-custom.c:
- Umsebenzi we-Clone gui_set_virtual_face() usuka ku-smart HMI\coffee_machine\cm4\custom \custom.c.
- Shintsha igama lewijethi ethi home_img_cameraPreview ukuze screen_img_camera_preview emsebenzini.
- Sebenzisa imisebenzi ye-UI callback ngesibonelo esifanayo kuzo zonke eziphuma ku-UI HAL ngaphansi kokulawulwa kwencazelo enkulu ethi #ifndef RT_PLATFORM ngokwezifiso.c ukuze ihambisane nephrojekthi Yomhlahlandlela we-GUI ngoba le misebenzi ekuphumeni kwe-UI HAL incike ku inkundla eshumekiwe. Ngokwezifiso.c, zincike kusifanisi kusiqondisi se-GUI futhi zizimele kungxenyekazi eshumekiwe. Okwesiboneloampfuthi, ukubhaliswa kobuso kokushayela ucingo kusetshenziswa ngezansi kusifanisi soMhlahlandlela we-GUI esisebenzayo: #ifndef RT_PLATFORM void UI_Registration_Callback() {gui_hide_del_user_btn(true); s_InAction = amanga; buyela; }
Qaphela: Bheka i-prototype efanayo yomsebenzi owethulwe esinyathelweni sesi-6 seSigaba 4.1.3
Incazelo enkulu ye-RT_PLATFORM isethwe kuzilungiselelo zephrojekthi ye-MCUXpresso njengoba kukhonjisiwe kuMfanekiso 7: - Memezela yonke imisebenzi ebizwa ngokuthi UI_xxx_Callback() kanye ne-gui_xxx() ku-custom.h futhi wengeze i-custom.h efakwe ku-smart_tlhmi_event_descriptor.h ukuze wabelane ngama-GUI APIs ekuphumeni kwe-UI HAL.
- Engeza imisebenzi emisha ebizwa ngokuthi gui_xxx() ku-custom.c ukuze ufeze imisebenzi engezansi:
- Yakha i-GUI ku-GUI Guider:
- Vala ikhamera yefolda ngaphambiliview equkethe isofthiwe yephrojekthi yoMqondisi we-GUI kufolda ethi gui_guider kuphakheji yesofthiwe eyisisekelo lvgl_gui_camera_preview_cm7. Shintsha igama elihlobene camera_preview ukuze face_rec for the ex entshaample.
- Kopisha okubuyekeziwe ngenhla custom.c kanye ngokwezifiso. h kusofthiwe yephrojekthi entsha ye-GUI Guider.
- Vula iphrojekthi entsha ye-face_rec ku-GUI Guider. Buyekeza njengoba ngezansi:
- Engeza inkinobho entsha enelebuli ethi Susa Umsebenzisi. Engeza ifulegi Elifihliwe kuyo ukuze inkinobho izofihlwa uma uhlelo lokusebenza lwe-GUI luqala.
- Engeza umugqa wekhodi wokushayela i-API gui_event_face_rec_action() enepharamitha ye-ID yomcimbi ohlukile kusiqalisi esithi “Khishiwe” Kusilungiselelo Somcimbi sazo zonke izinkinobho zokuthi Ukubhalisa, Ukuqaphela kanye Nokususa Umsebenzisi ukuze uqalise imicimbi yokubhaliswa kobuso, ukubonwa kobuso nokususa umsebenzisi. Umfanekiso 8 ubonisa ikhodi yomcimbi wenkinobho yokubhalisa:
- Buyekeza ikhodi ekhiqiziwe kusuka ku-GUI Guider kuya kuphrojekthi ye-MCUXpresso.
- Faka esikhundleni okuqukethwe ngaphandle kwezithombe zefolda kufolda ekhiqizwe iphrojekthi ye-MCUXpresso SW kanye nezihambisanayo kufolda ekhiqizwe iphrojekthi ye-GUI Guider SW.
Qaphela: Ukuze uthole imininingwane eyengeziwe mayelana nezinguqulo ezethulwe ngenhla, hlola i-example software ku https://mcuxpresso.nxp.com/appcodehub.
Ukuqinisekisa nge-example phrojekthi
Ukuze uthole i-example software package equkethe izinsiza namathuluzi alolu hlelo lokusebenza, vakashela: https://mcuxpresso.nxp.com/appcodehub. Vula i-example phrojekthi ku-MCUXpresso IDE. Yakha futhi uhlele i-.axf file ekhelini elithi 0x30000000 bese uhlela umgqomo wezisetshenziswa file camera_preview_resource.bin ekhelini elithi 0x30800000.
I-LVGL GUI ex yokuqaphela ubusoample isebenza ngokujwayelekile ngezansi:
- Ngaphambiliview: Ngokunika amandla, ukusakazwa kwevidiyo okushuthwe ikhamera kubonisa endaweni ethile yekhamera yangaphambiliview esikrinini se-GUI. Ilebula lesimo libonisa “Preview…”. Ukuze uthole imininingwane, bheka Umfanekiso 3. Inkinobho ethi Susa Umsebenzisi ifihliwe. Uma uchofoza indawo engaphandle kwezinkinobho nezithombe, kukhombisa okwangaphambiliview sho njengokungenhla ngemva kokuphela kokubhaliswa kobuso noma isenzo sokuqashelwa.
- Ukubhalisa:
- i-tartup: Uma inkinobho yokubhalisa ichofozwa, ukubhaliswa kobuso kuyaqala. Ilebula yesimo iyashintsha ukuze ibonise “Ukubhalisa…”, unxande wesiqondiso sobuso ubonisa okuluhlaza okwesibhakabhaka, futhi ibha yokuqhubeka iqala ukubonisa ukuqhubeka. Qiniseka ukuthi ubuso bomsebenzisi buvela kunxande wesiqondiso sobuso obuluhlaza ukuze abhaliswe.
- uccess: Ilebula yesimo ibonisa ukuthi “Ukubhalisa…KULUNGILE” kanye nenombolo ye-ID yomsebenzisi obhalisiwe, unxande wesiqondiso sobuso uba bomvu uma ukubhaliswa kobuso kuphumelela ngaphambi kokuba inqubo ibonakale igcwele kubha.
- Ukuhluleka -> Isikhathi Siphelile: Ilebula yesimo ibonisa "Ukubhalisa...Isikhathi siphelile" uma ukubhaliswa kobuso kusehlulekile lapho ukuqhubeka kubonisa kugcwele kubha.
- Ukwehluleka -> Ukuphindaphinda: Ilebula lesimo libonisa “Ukubhalisa...Kwehlulekile”, unxande wesiqondiso sobuso uba luhlaza uma ubuso obubhalisiwe bubonwa ngaphambi kokuthi ukuqhubeka kubonakale kugcwele kubha.
- ukuqashelwa:
- Ukuqalisa: Uma inkinobho Yokuqaphela ichofozwa, ukubona ubuso kuyaqala. Ilebula yesimo iyashintsha ukuze ibonise “Ukuqashelwa…”, unxande wesiqondiso sobuso ubonisa okuluhlaza okwesibhakabhaka, futhi ibha yokuqhubeka iqala ukubonisa ukuqhubeka. Qiniseka ukuthi ubuso bomsebenzisi buboniswa kunxande wesiqondiso sobuso obuluhlaza ukuze abhaliswe.
- uccess: Ilebula lesimo libonisa “Ukuqashelwa…KULUNGILE” kanye nenombolo ye-ID yomsebenzisi eyaziwayo, unxande wesiqondiso sobuso uba luhlaza uma ukubonwa kobuso kuphumelela ngaphambi kokuba ukuqhubeka kubonakale kugcwele kubha. Kulelo phuzu, inkinobho ethi Susa Umsebenzisi ivela. Kusho ukuthi umsebenzisi uvunyelwe ukuthi asuswe kuphela uma abonwa.
- ukulalela: Ilebula yesimo ibonisa “Ukuqashelwa…Isikhathi siphelile” uma ukubonwa kobuso kusehlulekile uma ukuqhubeka kubonisa kugcwele kubha.
- Susa Umsebenzisi: Uma inkinobho ethi “Susa Umsebenzisi” ichofozwa, ngemva kokuba ukuqashelwa kobuso kuphumelele, ilebula yesimo iyashintsha ukuze ibonise “Susa Umsebenzisi…KULUNGILE” lapho unxande wesiqondiso sobuso uba luhlaza okwesibhakabhaka nokuqhubeka okubonisa kugcwele kubha. Inkinobho ethi Susa Umsebenzisi ifihliwe futhi. Ubuso/umsebenzisi owaziwayo uyasuswa kusizindalwazi. Kusho ukuthi lo buso/umsebenzisi akanakubonwa aze abhaliswe futhi.
Qaphela mayelana nekhodi yomthombo kudokhumenti
ExampIkhodi eboniswe kulo mbhalo ine-copyright elandelayo kanye nelayisensi ye-BSD-3-Clause:
I-Copyright 2024 Ukusabalalisa Kabusha kwe-NXP nokusetshenziswa emithonjeni kanye namafomu kanambambili, ngokulungiswa noma ngaphandle, kuvunyelwe uma nje le mibandela elandelayo ihlangatshezwana nayo:
- Ukusatshalaliswa kabusha kwekhodi yomthombo kufanele kugcine isaziso se-copyright esingenhla, lolu hlu lwemibandela kanye nomshwana wokuzihlangula olandelayo.
- Ukusabalalisa kabusha ngendlela kanambambili kufanele kukhiqize kabusha isaziso se-copyright esingenhla, lolu hlu lwemibandela kanye nomshwana wokuzikhipha emthwalweni olandelayo kumadokhumenti kanye/noma ezinye izinto kufanele kuhlinzekwe ngokusatshalaliswa.
- Igama lomnikazi welungelo lobunikazi noma amagama ababambiqhaza balo angeke asetshenziselwe ukugunyaza noma ukukhangisa imikhiqizo ethathwe kule softhiwe ngaphandle kwemvume ebhaliwe yangaphambili.
LE SOFTWARE INIKEZELWA ABAMNTU BE-COPYRIGHT KANYE NABANIKELI “NJENGOBA YIYO” KANYE NOMA YIZIPHI IZIQINISEKISO EZICHAZEKILE NOMA EZISEMANDLA, KUHLANGANISA, KODWA AKUPHELELE, IZIQINISEKISO EZISHIWO ZOKUTHENGISWA KANYE NOBULUNGISA NGENJONGO ETHILE. AKUKHO MCIMBI ONGAYOBA UMNIKEZI WE-COPYRIGHT NOMA ABAMNIKEZI ABABE NESIBOPHO NGANOMA YILUPHI OKUQONDILE, OKUQONDILE, KWEZENZAKALO, OKUKHETHEKILE, OKUYISIBONELO, NOMA OKULANDELAYO (KUHLANGANISA, KODWA AKUkhawulelwe, UKUTHENGA INDAWO, UKUSETSHENZISWA, UKULAHLEKISWA; IZINZUZO; NOMA UKUPHAZAMISEKA KWEBHIZINISI) NOMA KUBANGELEKILE KANYE NAKUNOMA YIMUPHI UMBONO WESIBOPHO, KUNGAKHATHALISEKILE, NGESIBOPHO ESIQINILE, NOMA UKUHLUPHEKA (KUHLANGANISA NOBUDEBEPHO NOMA OKUNYE) OKUVELA NGANOMA YIYIPHI INDLELA YOKUSETSHENZISWA KWALESI SOFTWARE, UMONAKALO.
Umlando wokubuyekeza
Ulwazi lwezomthetho
Izincazelo
Okusalungiswa — Isimo esisalungiswa kudokhumenti sibonisa ukuthi okuqukethwe kusengaphansi kokuvuselelwa kwangaphakathiview futhi ngaphansi kokugunyazwa okusemthethweni, okungase kubangele izinguquko noma kwengezwe. I-NXP Semiconductors ayinikezi noma yiziphi izethulo noma iziqinisekiso ngokunemba noma ukuphelela kolwazi olufakwe kunguqulo yokusalungiswa yedokhumenti futhi ngeke ibe nesibopho sezomthetho ngemiphumela yokusebenzisa lolo lwazi.
Umshwana wokuzihlangula
- Iwaranti enomkhawulo nesikweletu - Ulwazi olukulo mbhalo kukholakala ukuthi lunembile futhi luthembekile. Kodwa-ke, i-NXP Semiconductors ayinikezi noma yiziphi izethulo noma iziqinisekiso, eziveziwe noma ezishiwo, mayelana nokunemba noma ukuphelela kolwazi olunjalo futhi ngeke ibe nesibopho sezomthetho ngemiphumela yokusebenzisa lolo lwazi. I-NXP Semiconductors ayinasibopho sokuqukethwe kule dokhumenti uma kunikezwa umthombo wolwazi ongaphandle kwe-NXP Semiconductors.
Akukho mcimbi lapho i-NXP Semiconductors izobophezeleka kunoma yimuphi umonakalo ongaqondile, wengozi, wokujezisa, okhethekile noma olandelanayo (okuhlanganisa - ngaphandle komkhawulo -inzuzo elahlekile, ukugcinwa okulahlekile, ukuphazamiseka kwebhizinisi, izindleko ezihlobene nokususwa noma ukushintshwa kwanoma yimiphi imikhiqizo noma izindleko zokusebenza kabusha) noma ngabe noma cha amademeshe anjalo asekelwe ezenzweni ezimbi (okuhlanganisa ubudedengu), iwaranti, ukwephulwa kwenkontileka nanoma iyiphi enye ithiyori yezomthetho.
Naphezu kwanoma imuphi umonakalo ikhasimende elingase liwenze nganoma yisiphi isizathu, isamba se-NXP Semiconductors kanye nesibopho esinqwabelene esibhekiswe kukhasimende ngemikhiqizo echazwe lapha sizokhawulelwa ngokuvumelana neMigomo nemibandela yokudayiswa kwezentengiso kwama-NXP Semiconductors. - Ilungelo lokwenza izinguquko - I-NXP Semiconductors inelungelo lokwenza izinguquko olwazini olushicilelwe kulo mbhalo, okuhlanganisa ngaphandle kwemikhawulo nezincazelo zomkhiqizo, nganoma yisiphi isikhathi futhi ngaphandle kwesaziso. Lo mbhalo uthatha indawo futhi uthatha indawo yalo lonke ulwazi oluhlinzekwe ngaphambi kokushicilelwa lapha.
- Ukufaneleka ukusetshenziswa - Imikhiqizo ye-NXP Semiconductors ayiklanyelwe, igunyaziwe noma ayiqinisekiswanga ukuthi ifanelekele ukusetshenziswa ekusekeleni impilo, izinhlelo noma izinto zokusebenza ezibucayi empilweni noma ezokuphepha, noma ezinhlelweni lapho ukwehluleka noma ukungasebenzi kahle komkhiqizo we-NXP Semiconductors kungalindeleka ngokunengqondo ukuthi kuholele ekutheni ukulimala komuntu siqu, ukufa noma impahla enzima noma ukulimala kwemvelo. I-NXP Semiconductors nabahlinzeki bayo abamukeli isikweletu sokufakwa kanye/noma ukusetshenziswa kwemikhiqizo ye-NXP Semiconductors kuleyo mishini noma izinhlelo zokusebenza ngakho-ke ukufakwa okunjalo kanye/noma ukusetshenziswa kuyingozi yekhasimende.
- Izinhlelo zokusebenza - Izicelo ezichazwe lapha zanoma yimuphi wale mikhiqizo ngezezinjongo zokubonisa kuphela. I-NXP Semiconductors ayenzi izethulo noma iwaranti yokuthi lezo zicelo zizofaneleka ukusetshenziswa okucacisiwe ngaphandle kokuhlolwa okwengeziwe noma ukuguqulwa.
Amakhasimende anomthwalo wemfanelo wokuklama nokusebenza kwezinhlelo zawo zokusebenza nemikhiqizo esebenzisa imikhiqizo ye-NXP Semiconductors, futhi i-NXP Semiconductors ayamukeli icala lanoma yiluphi usizo ngezinhlelo zokusebenza noma ukwakheka komkhiqizo wekhasimende. Kuwumthwalo wekhasimende kuphela ukunquma ukuthi umkhiqizo we-NXP Semiconductors ufanelekile yini futhi ufanelekile kwizicelo zekhasimende nemikhiqizo ehleliwe, kanye nohlelo lokusebenza oluhleliwe nokusetshenziswa kwamakhasimende enkampani yangaphandle. Amakhasimende kufanele anikeze idizayini efanele kanye nezivikelo zokusebenza ukuze kuncishiswe ubungozi obuhlobene nezinhlelo zabo zokusebenza nemikhiqizo. I-NXP Semiconductors ayamukeli noma isiphi isikweletu esihlobene nanoma yikuphi okumisiwe, umonakalo, izindleko noma inkinga esekelwe kunoma yikuphi ubuthakathaka noma okumisiwe kwezinhlelo zokusebenza zekhasimende noma imikhiqizo, noma isicelo noma ukusetshenziswa kwekhasimende lesithathu. Ikhasimende linesibopho sokwenza konke ukuhlola okudingekayo kwezicelo nemikhiqizo yekhasimende lisebenzisa imikhiqizo ye-NXP Semiconductors ukuze ligweme ukuzenzakalelayo kwezinhlelo zokusebenza nemikhiqizo noma uhlelo lokusebenza noma ukusetshenziswa yi(amakhasimende) ekhasimende lesithathu. I-NXP ayamukeli noma yisiphi isibopho mayelana nalokhu. - Imigomo nemibandela yokuthengisa - Imikhiqizo ye-NXP Semiconductors ithengiswa ngaphansi kwemigomo nemibandela evamile yokuthengisa, njengoba ishicilelwe ku-https://www.nxp.com/profile/imibandela, ngaphandle uma kuvunyelwene ngenye indlela esivumelwaneni esisemthethweni esibhaliwe somuntu ngamunye. Uma kwenzeka isivumelwano somuntu ngamunye siphothulwa imigomo nemibandela yesivumelwano esifanele kuphela ezosebenza. Ama-Semiconductors e-NXP ngalokhu ngokusobala aphikisa ukusebenzisa imigomo nemibandela evamile yekhasimende ngokuphathelene nokuthengwa kwemikhiqizo ye-NXP Semiconductors yikhasimende.
- Ukulawula ukuthumela — Lo mbhalo kanye nezinto ezichazwe lapha zingase zibe ngaphansi kwemithetho yokulawula ukuthekelisa. Ukuthekelisa kungase kudinge ukugunyazwa kwangaphambili okuvela kwabasemagunyeni abanekhono.
- Ifaneleka ukusetshenziswa emikhiqizweni engeyona eyezimoto - Ngaphandle uma lo mbhalo usho ngokucacile ukuthi lo mkhiqizo othize we-NXP Semiconductors ufanelekile ngezimoto, umkhiqizo awufanele ukusetshenziswa kwezimoto. Ayifaneleki noma ihlolwe ngokuhambisana nokuhlolwa kwezimoto noma izidingo zohlelo lokusebenza. I-NXP Semiconductors ayamukeli isikweletu sokufakwa kanye/noma ukusetshenziswa kwemikhiqizo efanelekile engeyona eyezimoto kumishini yezimoto noma izinhlelo zokusebenza.
Esimeni lapho ikhasimende lisebenzisa umkhiqizo ukuklama nokusetshenziswa ezinhlelweni zezimoto ekucacisweni kwezimoto kanye namazinga, ikhasimende (a) lizosebenzisa umkhiqizo ngaphandle kwewaranti ye-NXP Semiconductors yomkhiqizo kulezo zicelo zezimoto, ukusetshenziswa kanye nokucaciswa, futhi ( b) noma nini lapho ikhasimende lisebenzisa umkhiqizo wezinhlelo zokusebenza zezimoto ngaphezu kokucaciswa kwe-NXP Semiconductors lokho kusetshenziswa kuzoba sengozini yekhasimende kuphela, futhi (c) ikhasimende livikela ngokugcwele ama-NXP Semiconductors nganoma yisiphi isikweletu, umonakalo noma izimangalo zomkhiqizo ezihlulekile ngenxa yokuklama nokusetshenziswa kwekhasimende. umkhiqizo wezinhlelo zokusebenza zezimoto ezingaphezu kwewaranti evamile ye-NXP Semiconductors kanye nokucaciswa komkhiqizo we-NXP Semiconductors. - Izinguqulo — Inguqulo engeyona eyesiNgisi (ehunyushiwe) yombhalo, okuhlanganisa nemininingwane yezomthetho kulowo mbhalo, ingeyereferensi kuphela. Inguqulo yesiNgisi iyona engcono kakhulu uma kwenzeka kuba khona umehluko phakathi kwezinguqulo ezihunyushiwe nesiNgisi.
- Ezokuphepha — Ikhasimende liyaqonda ukuthi yonke imikhiqizo ye-NXP ingase ibe ngaphansi kobungozi obungaziwa noma ingase isekele amazinga okuphepha amisiwe noma imininingwane enemikhawulo eyaziwayo. Ikhasimende linesibopho sokuklama nokusebenza kwezinhlelo zalo zokusebenza kanye nemikhiqizo kuyo yonke imijikelezo yabo yokuphila ukunciphisa umthelela walobu bungozi ezinhlelweni zokusebenza nemikhiqizo yekhasimende. Isibopho sekhasimende siphinde sidlulele kobunye ubuchwepheshe obuvulekile kanye/noma bobunikazi obusekelwa imikhiqizo ye-NXP ukuze busetshenziswe ezinhlelweni zamakhasimende. I-NXP ayamukeli icala lanoma yikuphi ukuba sengozini. Ikhasimende kufanele lihlole njalo izibuyekezo zokuphepha ezivela ku-NXP futhi lilandelele ngendlela efanele. Ikhasimende lizokhetha imikhiqizo enezici zokuphepha ezihlangabezana kangcono nemithetho, iziqondiso, kanye namazinga ohlelo oluhlosiwe futhi lenze izinqumo zokugcina zokuklama mayelana nemikhiqizo yalo futhi linesibopho kuphela sokuthobela zonke izimfuneko ezingokomthetho, zokulawula, nezokuphepha ezihlobene nemikhiqizo yalo, kungakhathaliseki lwanoma yiluphi ulwazi noma ukwesekwa okungahlinzekwa yi-NXP.
I-NXP inethimba le-Product Security Incident Response Team (PSIRT) (etholakala kokuthi PSIRT@nxp.com) eliphethe uphenyo, ukubika, kanye nokukhishwa kwesixazululo ekubeni sengozini kwezokuvikela kwemikhiqizo ye-NXP.
I-NXP BV — I-NXP BV akuyona inkampani esebenzayo futhi ayisabalalisi noma ithengisi imikhiqizo.
Izimpawu zokuhweba
Qaphela: Wonke amabhrendi okubaluliwe, amagama emikhiqizo, amagama esevisi, nezimpawu zokuthengisa kuyimpahla yabanikazi abafanele.
I-NXP - uphawu lwegama kanye nelogo yizimpawu zokuthengisa ze-NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — izimpawu zokuthengisa kanye/noma izimpawu zokuthengisa ezibhalisiwe ze-Arm Limited (noma izinkampani ezingaphansi kwayo noma amanxusa) e-US kanye/noma kwenye indawo. Ubuchwepheshe obuhlobene bungavikelwa yinoma yimaphi amalungelo obunikazi, amalungelo okushicilela, imiklamo kanye nezimfihlo zohwebo. Wonke Amalungelo Agodliwe.
- i.MX - wuphawu lokuthengisa lwe-NXP BV
- I-J-Link - wuphawu lokuthengisa lwe-SEGGER Microcontroller GmbH.
I-Microsoft, i-Azure, ne-ThreadX - izimpawu zokuthengisa zeqembu lezinkampani ze-Microsoft.
Sicela uqaphele ukuthi izaziso ezibalulekile mayelana nalo mbhalo kanye nemikhiqizo echazwe lapha, zifakiwe esigabeni 'Ulwazi lwezomthetho'.
© 2024 NXP BV
Ukuze uthole ulwazi olwengeziwe, sicela uvakashele: https://www.nxp.com
- Idethi yokukhishwa: 19 Ephreli 2024
- Inkomba yedokhumentiIdatha ye-AN14263
FAQ
Q: Iyini inhloso enkulu yalo mkhiqizo?
A: Injongo eyinhloko ukunika amandla umsebenzi wokubona ubuso usebenzisa imodeli ye-algorithm yombono ye-AI&ML ene-LVGL GUI ex elula.ample ebhodini le-SLN-TLHMI-IOT.
Q: Onjiniyela bangazuza kanjani kuleli nothi lohlelo lokusebenza?
IMP: Onjiniyela bangafunda ukusebenzisa ukubonwa kobuso kuhlaka isinyathelo ngesinyathelo besebenzisa i-ex enikeziweample futhi baqonde abaphathi bedivayisi, amadivayisi we-HAL, nezindlela zomcimbi ezihilelekile.
Amadokhumenti / Izinsiza
![]() |
I-NXP AN14263 Sebenzisa I-LVGL GUI Ukubona Ubuso Ku-Framewor [pdf] Umhlahlandlela Womsebenzisi I-AN14263 Sebenzisa I-LVGL GUI Ukubona Ubuso Ku-Framewor, AN14263, Sebenzisa I-LVGL GUI Ukubona Ubuso Ku-Framewor, I-LVGL GUI Ukubona Ubuso Ku-Framewor, Ukubonwa Kobuso Ku-Framewor, I-Recognition on Framewor |