NXP AN14263 Hoʻokō LVGL GUI ʻike maka ma Framewor
ʻIke Huahana
Nā kikoʻī
- inoa huahana: LVGL GUI ʻike maka ma Framework
- Hoʻoponopono Palapala: 1 – 19 ʻApelila 2024
- Hua'ōlelo: ʻIke maka, LVGL GUI, Framework
Nā ʻōlelo hoʻohana huahana
- Pauview
Hāʻawi kēia huahana iā AI&ML vision algorithm algorithm no ka ʻike maka ma ke ʻano e hoʻokō i ka hana ʻike maka me kahi LVGL GUI ex maʻalahi.ample ma ka papa SLN-TLHMI-IOT. - Hoʻopau i ke Kaʻiview
Hoʻolālā ʻia ka polokalamu hoʻonā e pili ana i ka hoʻolālā hoʻolālā e pili ana i nā mana o nā hāmeʻa ke kuleana no ka hoʻokele ʻana i nā hāmeʻa, nā polokalamu HAL i nā kikoʻī i lalo, a me nā hanana no ke kamaʻilio ʻana ma waena o nā mea like ʻole. - Nā hiʻohiʻona
Hiki i ka huahana ke hoʻokō i ka hana ʻike maka ma o ka kamera preview ma ka pale GUI me nā pihi e hoʻomaka i ka hoʻopaʻa inoa maka, ʻike ʻia, a me ka wehe ʻana. Mālama ʻia ka ʻikepili maka i kākau ʻia ma Flash ma o a file ʻōnaehana. - Palapala Noi Noi
Hōʻike ka palapala noi i kahi pale LVGL GUI me ka kamera muaview a me nā pihi no nā hana pili maka. Kōkua ia i nā mea hoʻomohala e hoʻomaopopo i ke kāʻei a pehea e hoʻokō ai i ka ʻike maka me ka hoʻohana ʻana i ka ex i hāʻawi ʻiaample.
Pauview
Ua hoʻokumu ʻo NXP i kahi pahu hoʻomohala hoʻonā i kapa ʻia ʻo SLN-TLHMI-IOT e kālele ana i nā noi HMI akamai. Hāʻawi ia i ka HMI akamai me ka ML vision, leo, a me UI kiʻi i hoʻokō ʻia ma hoʻokahi NXP i.MX RT117H MCU. Ma muli o ka SDK, kūkulu ʻia ka polokalamu hoʻonā ma kahi hoʻolālā i kapa ʻia ʻo framework e kākoʻo ana i nā hoʻolālā maʻalahi a me ka hana maʻamau o ka ʻike a me nā hana leo. No ke kōkua ʻana i nā mea hoʻohana e hoʻohana maikaʻi i ka paepae polokalamu, hāʻawi ʻia kekahi mau palapala kumu, no ka example, ke alakaʻi hoʻohana hoʻomohala polokalamu. Hōʻike ke alakaʻi i ka hoʻolālā polokalamu polokalamu kumu a me ka hoʻolālā ʻana o nā noi e uhi ana i nā ʻāpana āpau o ka hoʻonā me ka hoʻolālā e kōkua i nā mea hoʻomohala i maʻalahi a hoʻokō pono i kā lākou mau noi me ka hoʻohana ʻana i ka SLN-TLHMI-IOT.
No nā kikoʻī hou aku e pili ana i ka hopena a me nā palapala pili, e kipa i ka web ʻaoʻao o ka NXP EdgeReady Smart HMI Solution Ma muli o i.MX RT117H me ML Vision, Voice, and Graphical UI. Eia nō naʻe, ʻaʻole maʻalahi i nā mea hoʻomohala e hoʻokō i kā lākou mau noi HMI akamai e pili ana i kēia mau alakaʻi kumu. Hoʻolālā ʻia kahi moʻolelo o nā palapala noi e kōkua i ke aʻo ʻana i ka hoʻomohala ʻana ma ke kahua i kēlā me kēia pae. Hoʻokumu ʻia kēia palapala noi ma ka Implement LVGL GUI Camera Preview ma Framework (palapala AN14147). Hōʻike kēia palapala noi pehea e hiki ai i ka AI&ML vision algorithm model no ka ʻike maka ma ka framework e hoʻokō i ka hana ʻike maka ma o ka kamera preview ma ka pale GUI me kahi maʻalahi LVGL GUI example ma ka papa SLN-TLHMI-IOT. Ma ka palapala noi, ʻo ka exampHāʻawi ʻo ia i kahi pale LVGL GUI me kahi kamera muaview a me kekahi mau pihi e hoʻomaka i ka hoʻopaʻa inoa ʻana, ka ʻike ʻana, a me ka wehe ʻana. Mālama ʻia ka ʻikepili maka i kākau ʻia ma Flash ma o ka liʻiliʻi file ʻōnaehana.
Ma kahi kiʻekiʻe, aia ka palapala noi i nā mea i lalo:
- E hoʻā i ka hiʻona ʻike maka ma ke kāʻei.
- Hoʻohui i ke kākoʻo ʻikepili maka ma ke kahua ma o file ʻōnaehana ma Flash.
- E hoʻokō i ka polokalamu LVGL GUI. Ma o nā hoʻolauna i luna, kōkua kēia palapala i nā mea hoʻomohala e:
- E hoʻomaopopo hohonu i ka hoʻolālā a me ka polokalamu hoʻonā HMI akamai.
- E hoʻomohala i kā lākou ʻike maka AI&ML ma ka hoʻolālā me ka LVGL GUI app.
Ua pau ka papa hanaview
Hoʻolālā nui ʻia ka polokalamu hoʻonā e pili ana i ka hoʻohana ʻana i ka hoʻolālā framework i haku ʻia i nā ʻāpana like ʻole:
- Nā mea hoʻokele - ka ʻāpana koʻikoʻi
- Mea Hana Abstraction Layer (HAL).
- Nā memo/Hana
E like me ka mea i hōʻike ʻia ma ka Figure 1, ʻoi akuview ʻO ke ʻano o ka ʻōnaehana:
ʻO nā mea hoʻokele pūnaewele ke kuleana no ka mālama ʻana i nā polokalamu i hoʻohana ʻia e ka ʻōnaehana. Loaʻa i kēlā me kēia ʻano mea hana (hoʻokomo, hoʻopuka, a pēlā aku) kona mana mana ponoʻī. Me ka hoʻomaka ʻana o ka mea hoʻohana ma hope o ka hoʻopaʻa inoa ʻia ʻana o nā mea hana, kali ʻo ia a nānā i kahi leka e hoʻoili i ka ʻikepili i nā polokalamu a me nā mana ʻē aʻe ma hope o ka hoʻomaka ʻana a hoʻomaka i nā mea i hoʻopaʻa ʻia. Ua kākau ʻia nā mea hana HAL ma luna o ke code kaʻa haʻahaʻa haʻahaʻa, e kōkua ana i ka hoʻonui ʻana i ka hoʻomaopopo ʻana i ke code ma ka unuhi ʻana i nā kikoʻī he nui.
ʻO nā hanana kahi ala e kamaʻilio ʻia ai ka ʻike ma waena o nā mea like ʻole ma o kā lākou mau mana. Ke hoʻomaka ʻia kahi hanana, ʻo ka mea i loaʻa mua i ka hanana e haʻi i kēlā hanana i kāna luna, a laila hoʻolaha ia i nā luna ʻē aʻe i koho ʻia e loaʻa ka hanana.
Ua hoʻokumu ʻia ka hoʻolālā hoʻolālā ʻana o ka anga i ʻekolu mau pahuhopu nui:
- Hoʻohana maʻalahi
- Hiki ke hoʻololi
- hana
Hoʻolālā ʻia ke kāʻei me ka pahuhopu o ka wikiwiki ʻana i ka manawa e mākeke no ka ʻike a me nā noi aʻo mīkini ʻē aʻe. No ka hōʻoia ʻana i kahi manawa wikiwiki e kūʻai aku ai, he mea nui ka maʻalahi o ka polokalamu ponoʻī e hoʻomaopopo a hoʻololi. Ke hoʻomanaʻo nei i kēia pahuhopu, ua maʻalahi ka hoʻololi ʻana o ka hoʻolālā ʻana me ka ʻole o ke kaohi ʻana, a me ka hele ʻole mai i ke kumukūʻai o ka hana.
No nā kikoʻī hou aku e pili ana i ka framework, e ʻike i ke alakaʻi hoʻohana o ka HMI Software Development User Guide (palapala MCU-SMHMI-SDUG).
Hale Waihona Puke Kiʻi Māmā a Nui (LVGL)
ʻO LVGL (Light and Versatile Graphics Library) kahi waihona kiʻi manuahi a wehe ʻia e hāʻawi ana i nā mea āpau e pono ai ʻoe e hana i kahi GUI i hoʻopili ʻia me nā mea kiʻi maʻalahi e hoʻohana, nā hopena hiʻohiʻona nani a me ka wāwae hoʻomanaʻo haʻahaʻa.
Mea alakaʻi GUI
ʻO GUI Guider kahi mea hoʻohana kiʻi hoʻomohala hoʻohana kiʻi hoʻohana mai NXP e hiki ai i ka hoʻomohala wikiwiki ʻana i nā hōʻike kiʻekiʻe me ka waihona kiʻi LVGL open-source. ʻO ka mea hoʻoponopono drag-and-drop a GUI Guider e maʻalahi ka hoʻohana ʻana i nā hiʻohiʻona he nui o LVGL e like me nā widget, animations, a me nā ʻano e hana ai i kahi GUI me ka liʻiliʻi a ʻaʻohe coding.
Me ke kaomi ʻana i kahi pihi, hiki iā ʻoe ke holo i kāu noi ma kahi ʻano hoʻohālikelike a i ʻole e hoʻokuʻu aku iā ia i kahi papahana i manaʻo ʻia. Hiki ke hoʻohui maʻalahi i nā code i hana ʻia mai GUI Guider i kāu papahana, e hoʻonui i ke kaʻina hana hoʻomohala a hiki iā ʻoe ke hoʻohui pono i kahi mea hoʻohana i hoʻopili ʻia i kāu noi. Hoʻohana manuahi ʻo GUI Guider me ke kumu maʻamau o NXP a me nā MCU crossover a loaʻa i nā ʻōkuhi papahana i kūkulu ʻia no kekahi mau paepae i kākoʻo ʻia. No ka ʻike hou aku e pili ana i ka hoʻomohala ʻana o LVGL a me GUI ma GUI Guider, e nānā i ka Light and Versatile Graphics Library a me GUI Guider.
Kaiapuni hoʻomohala
ʻO ka mea mua, hoʻomākaukau a hoʻonohonoho i ka ʻenehana a me ka lako polokalamu no ka hoʻokō ʻana i ka example ma ke kahua.
Kaiapuni lako
Hoʻonohonoho ʻia ka ʻenehana lako no ka hōʻoia ʻana i ka example:
- ʻO ka pahu hoʻomohala HMI akamai e pili ana i ka NXP i.MX RT117H (ka SLN_TLHMI_IOT kit)
- SEGGER J-Link me kahi mea hoʻopili 9-pin Cortex-M a me V7.84a a i ʻole kahi mana hou o ka mea hoʻokele.
ʻNaehana lako polokalamu
Hoʻonohonoho ʻia ka ʻōnaehana polokalamu no ka hoʻomohala ʻana i ka example:
- MCUXpresso IDE V11.7.0
- GUI alakaʻi V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – example code o ka palapala noi ʻelua ma ke ʻano he polokalamu kumu o ka hoʻomohala ʻana. No nā kikoʻī, e ʻike https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 - ma ke ʻano he kumu kumu no ka hoʻomohala ʻana.
- SLN-TLHMI-IOT lako polokalamu V1.1.2 - hoʻokuʻu ʻia ke code kumu HMI akamai ma ka waihona NXP GitHub ma ke ʻano he kumu code no ka hoʻomohala ʻana. No nā kikoʻī, e ʻike: GitHub - NXP/mcu-smhmi ma v1.1.2
No nā kikoʻī e pili ana i ka loaʻa ʻana a me ka hoʻonohonoho ʻana o ka ʻenehana polokalamu, e ʻike: Hoʻomaka me ka SLN-TLHMI-IOT.
ʻO ka hoʻolālā hiʻohiʻona ma ke kāʻei
Hōʻike ʻia ka hoʻolālā hiʻohiʻona ma ke kiʻi ma ke Kiʻi 2. Aia ka vision algo HAL (OASIS_HAL) i nā kaʻina hana ma lalo nei:
- E alo i ka hoʻopaʻa inoa a me ka ʻike ʻia ma o ka AI&ML vision algorithm model ma hope o ka loaʻa ʻana o nā hanana pili mai ka UI HAL. E hoʻomaopopo i nā hualoaʻa inference mai ke kumu hoʻohālike algorithm i ka UI HAL pukana.
- Loaʻa (hoʻohui, holoi ...) i ka waihona hiʻohiʻona helehelena e pili ana i ka liʻiliʻi file ʻōnaehana ma ke kāhea ʻana i nā API o FaceDB HAL ma hope o ka loaʻa ʻana o nā hanana pili mai ka UI HAL.
- E noi i ke kiʻi wikiō pahupaʻikiʻi mai ka pahupaʻikiʻi HAL i ka wā e hana ai i ka hoʻopaʻa inoa a me ka ʻike maka.
E hoʻokō i ka ʻike maka ma ke kahua
ʻO ka LVGL GUI ʻike maka example (ka exampHāʻawi ʻia ka le ma hope) ma ka framework i hoʻokō ʻia ma muli o ka example codes of Hoʻokō LVGL GUI Camera Preview ma Framework (palapala AN14147).
No ka hōʻike ʻana i ka ʻike maka ma ka exampʻO ka hana maʻamau o ka app GUI (e ʻike i ka pale nui ma ke Kiʻi 3) i hoʻolālā ʻia e like me ka wehewehe ʻana ma lalo nei.
- Hoʻomaka ka app GUI i ka hoʻopaʻa inoa ʻana a i ʻole ka hanana ʻike i ka UI HAL pukana i ke kaomi ʻana i ke pihi Hoʻopaʻa inoa a i ʻole ʻike. A hōʻike ka UI HAL i ka hanana o ka hoʻohui ʻana i kahi mea hoʻohana i ka ʻike algo HAL ma hope o ka kūleʻa o ka hoʻopaʻa inoa ʻana.
- Hoʻomaka ka GUI app i ka hanana o ka holoi ʻana i kahi mea hoʻohana i ka UI HAL pukana ke kaomi ʻana i ke pihi Delete Mea hoʻohana ma hope o ka ʻike ʻia ʻana o ka maka o ka mea hoʻohana.
- Hoʻomaka ka GUI app i ka hanana o ka hoʻōki ʻana i ka oasis algo e holo ana i ka puka UI HAL ke kaomi ʻana i ka pale ma waho o nā pihi a me nā kiʻi.
E hoʻomākaukau i ka lako polokalamu no ka hoʻokō ʻana i ka example.
- Hoʻopili i ka polokalamu kumu lvgl_gui_camera_preview_cm7. E hoʻololi i ka inoa papahana a me ka mea nui fileinoa iā lvgl_gui_face_rec_cm7.
- Pono e hoʻonui hou ʻia ke kaʻina hana ma ka polokalamu no ka mea ua hoʻomaka nā kumu kumu no ka framework core i ka lehulehu ma GitHub mai ka mana 1.1.2.
- E hoʻololi i ka waihona framework me ke kope o V1.1.2 mai GitHub koe wale nō ka files fwk_log.h a me fwk_common.h ma lalo o inc\ no ka mea ua hoʻololi ʻia lākou no ka moʻo o ka palapala noi. Hōʻike ʻia nā hana ma ke Kiʻi 4:
- Holoi i ka waihona framework_cm7 ma lalo o ka pūʻulu libs a wehe i ka hale waihona puke framework_cm7 a me kāna ala huli i hoʻonohonoho ʻia ma Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries mai ka wā i hāʻawi ʻia ai ke code kumu o ke kumu.
Hoʻā i ka hiʻona ʻike maka ma ka framework
Kūkulu ʻia ka hiʻohiʻona ʻike maka ma ka ML vision algorithm model i hāʻawi ʻia ma ke ʻano he waihona static - kahi waihona oasis lite runtime na NXP. ʻO ka waihona kahi waihona liʻiliʻi liʻiliʻi, ʻoi aku ka maikaʻi, hoʻoponopono ʻia, a i hoʻopaʻa ʻia ʻo AI. Aia i loko o ke kŘkohu ka ʻike maka, ka ʻike maka, ka ʻike aniani, a me ka ʻike ola. Hāʻawi nui ia i ka API OASISLT_run_extended () e holo i ka pipeline ʻike maka i ka wā e hōʻano hou ana i nā hopena i ka mea kelepona ma o nā hanana hanana, a hoʻohui / hoʻopau / holoi i nā maka i loko o ka waihona ma o nā kelepona ʻikepili maka ma hope o ka wehewehe ʻana i ka ʻike kumu kumu, callbacks, a me ka hoʻomanaʻo. loko i hoʻohana ʻia e ka waihona ma ke kāhea ʻana i kekahi API OASISLT_init() ma ka hoʻomaka ʻana. Hoʻokō ʻia ke kāhea ʻana o nā API a me nā hana callback i ka ʻike algo HAL o ka framework.
E hoʻohui i ka waihona kumu hoʻohālike vision algo
- E kope i ka waihona oasis i loko o ka waihona a me ke poʻomanaʻo pili file mai ke akamai HMI\coffee_machine\cm7\libs\ i loko o ka waihona libs o ka example SW.
- Hoʻohui i ke ala huli o ke poʻo file i loko o ka Papahana > Nā Waiwai > C/C++ Build > nā ho'onohonoho > Nā mea ho'onohonoho pono > MCU C compiler > Ho'okomo a me MCU C++ compiler > Ho'okomo: "${workspace_loc:/${ProjName}/libs/oasis/include}"
- Hoʻohui i ka lib a me kona ala huli ma Project > Properties > C/C++ Build > settings > MCU C++ Linker > Libraries: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” a me ka wehewehe macro i hiki i ka hiʻona ma Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Preprocessor a me MCU C++ compiler > Preprocessor: SMART_TLHMI_2D
E ho'ā i ka ʻike algo HAL
Na ka vision algo HAL e alakaʻi i ka vision algo model e hana a pane i nā hopena i ka UI output HAL ma hope o ka loaʻa ʻana o nā hanana mai ia mea.
I mea e hiki ai, clone i ka mea hoʻokele HAL like file kahi e hoʻokō ʻia ai nā hana i lalo:
- E hoʻokō i nā callbacks o nā hana ʻikepili maka a me ka lawelawe ʻana i nā hanana.
- E alakaʻi i ka ʻike algo e hana ma ke kāhea ʻana i nā API o ka waihona oasis.
- E kiʻi i ka ʻikepili maka mea hoʻohana a me ka waihona app (ʻaʻole pono ia ma example).
- Loaʻa i nā hanana mai a hoʻouna i nā hopena i ka UI HAL.
ʻO nā hana nui e hoʻokō i ka HAL no ka example are:
- Clone i ka mea hoʻokele HAL like file a hoʻololi i nā inoa pili.
- Wehe i nā code e pili ana i nā hana ʻikepili app.
- Hoʻohou i nā wehewehe a me nā hana no ka lawelawe ʻana i nā hanana mai ka UI HAL puka no ka examphoʻolālā.
- Hoʻohui i nā hoʻonohonoho pono i ka hoʻomaka ʻana o ka oasis.
Aia nā ʻanuʻu kikoʻī ma lalo nei:
- Clone hal_vision_algo_oasis_coffeemachine.c. Hoʻololi i ka fileinoa iā hal_vision_algo_oasis_guifacerec.c. A hoʻololi i nā kaula a pau CoffeeMachine me GUIFaceRec ma ka file.
- Wehe i nā code i loaʻa i ke kaula coffeedb (ʻaʻole pili i ka helu helu) pili i ka waihona app, no ka example, #include hal_sln_coffeedb.h.
- Hoʻololi i ka hana HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() no ka lawelawe ʻana i nā hanana mai ka UI HAL.
- E hoʻololi i ka wehewehe hanana hanana kEventFaceRecId_RegisterCoffeeSelection i kEventFaceRecId_RegisterUserFace a me ke string string regCoffeeSelection i regGUIFaceRec no ka lawelawe ʻana i ka hanana e hoʻohui i ka ʻikepili hiʻohiʻona hou i ka waihona.
- E hōʻike i ke kaʻina hana maʻamau o nā hana ʻike maka i ka exampe, hoʻololi i ka lawelawe ʻana i ka hihia o kEventFaceRecID_OasisSetState me nā wehewehe o nā mokuʻāina:
- kOASISLiteState
- Kakau inoa kOASISLiteState
- ʻIke ʻOASISLiteState
- Ua kū
- Hoʻohui a hoʻololi i nā wehewehena o nā hanana i ʻōlelo ʻia ma ka pae i luna.
- E kope i ke poʻo file smart_tlhmi_event_descriptor.h mai smart HMI\coffee_machine \cm7\source\event_handlers\ i loko o ka waihona waihona o ka example SW. Hoʻohou i ka file e like me lalo:
- E hoʻololi i ka wehewehe hanana hanana kEventFaceRecId_RegisterCoffeeSelection i kEventFaceRecId_RegisterUserFace ma ke ʻano enum _event_smart_tlhmi_id a me ke kaula hoʻonohonoho regCoffeeSelection i regGUIFaceRec ma ke kumu _event_smart_tlhmi. No laila, e hoʻololi i ka register_coffee_selection_event_t no regCoffeeSelection e kākau_gui_facerec_event_t.
- Holoi i nā mea ʻē aʻe i hoʻohana ʻia no ka app mīkini kope, no ka example, ka laina code e pili ana i ka leo: #include “hal_event_descriptor_voice.h”.
- E hoʻohui i nā ʻano kOASISLiteState_Stopped a me kOASISLiteState_Running i ke ʻano enum oasis_lite_state_t ma hal_vision_algo.h ma lalo o framework>hal>vision ma ka papahana e like me lalo:
typedef enum _oasis_lite_state {- kOASISLiteState
- Ke holo nei, kOASISLiteState
- Ua oki, kOASISLiteState
- ʻike ʻia,
- kOASISLiteState
- Kakau inoa, kOASISLiteState
- DeRegistration, kOASISLiteState
- Kakau inoa mamao, kOASISLiteState
- Helu
- E hoʻohana i ka oasis_lite_state_t hou i luna e hoʻomaʻemaʻe i ka struct oasis_state_event_t ma hal_event_descriptor_face_rec.h ma lalo o framework>hal>vision ma ka papahana e like me lalo: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- E hoʻololi i nā kEventInfo_Remote a pau i kEventInfo_Local no ka hoʻouna ʻana i nā hanana mai ka hihiʻo algo HAL i nā HAL ʻē aʻe e holo ana ma ke kumu hoʻokahi me ke kumu hoʻokahi ma mua o ka hoʻohana ʻana i ka ʻelua-core i ka ex.ample.
- Hoʻohui a hoʻololi i nā hoʻonohonoho i lalo no ka hoʻomaka ʻana o ka oasis ma OASISLT_init ():
- Hoʻohui i nā wehewehe macro a me nā ʻāpana hoʻomanaʻo no ke kiʻi wikiō ma board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- #define OASIS_RGB_FRAME_HEIGHT 600
- #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #define AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __ʻano__((ʻāpana(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __ʻano__((like(alignbytes)))
- E hoʻopaʻa i ka hana hoʻomanaʻo i ka ʻāpana hoʻomanaʻo ma luna fb_sh_mem ma Project> Properties> C/C++ Build> MCU Settings i hōʻike ʻia ma ke Kiʻi 5:
- E haʻi i ka hoʻololi honua g_DTCOPBuf ma lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- E hoʻomau i ka hoʻohui ʻana i nā wehewehe i hoʻohana ʻia ma ka ʻano hoʻololi i luna:
- E wehewehe i ka ʻāpana i luna ma board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- attribute__((ʻāpana(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- ʻano__((like(alignbytes)))
- E hoʻokomo i ke poʻo file hal_vision_algo.h i loko o ka wehewehena macro DTC_OPTIMIZE_BUFFER_SIZE ma app_config.h i hoʻokomo ʻia ma lvgl_gui_face_rec_cm7.cpp.
- Hoʻohui i nā wehewehe macro a me nā ʻāpana hoʻomanaʻo no ke kiʻi wikiō ma board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- E hoʻonoho i ka s_debugOption hoʻololi i ka ʻoiaʻiʻo no ka hōʻike ʻana i ke kūlana holomua ma ka ʻike maka.
- Hoʻohui i ke ala huli o ke poʻo files o ka hihio HAL ma Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Includes: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- E hoʻohui i ka wehewehe ʻana ma lalo nei e hiki ai i ka ʻike algo HAL ma board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
E ho'ā i ka UI HAL
Hōʻike ka UI HAL i nā hanana i ka ʻike algo HAL a pane i nā hopena inference mai ka vision algo HAL. Me ka polokalamu GUI, hoʻomaka ʻia nā hanana e ka app a hōʻike ʻia nā hopena ma ka app.
I mea e hiki ai, clone i ka mea hoʻokele HAL like file kahi e hoʻokō ʻia ai nā hana ma lalo nei:
- Hoʻomaopopo i nā hanana no ka ʻike maka a me ka loaʻa ʻana o ka waihona.
- E hoʻokō i nā callbacks no ka polokalamu GUI e hoʻomaka i nā hanana.
- E mālama i nā hopena inference mai ka module algo vision.
- Hōʻike i ke kaʻina hana a me nā hopena o nā hanana e lawelawe ʻia ana ma ka UI e ka pae holomua i hoʻomalu ʻia me nā manawa a me ka ʻaoʻao alakaʻi alakaʻi.
ʻO nā hana nui e hoʻokō i ka HAL no ka exampʻO nā mea i hoʻohana ʻia ma kēia palapala:
- Clone i ka mea hoʻokele HAL like file a hoʻololi i nā inoa pili.
- Wehe i nā code e pili ana i ka polokalamu.
- Hoʻohou i nā hana no ka hoʻolaha ʻana i nā hanana a me ka pane o nā hopena ma kēlā me kēia examphoʻolālā.
- Hoʻohui i nā kelepona no ka polokalamu GUI e hoʻomaka i nā hanana.
Aia nā ʻanuʻu kikoʻī ma lalo nei:
- Clone hal_output_ui_coffee_machine.c. Hoʻololi i ka fileinoa i hal_ output_ui_guifacerec.c.
- E hoʻololi i nā kaula a pau CoffeeMachine me GUIFaceRec ma ka file.
- Wehe i nā code e pili ana i ka app - coffee machine.
- Wehe i nā hana WakeUp() a me _StandBy() a me nā code e pili ana (hiki ke ʻimi i ke kaula wake_up a standby no lākou).
- Wehe muaview Nā hanana hana e lawelawe ana i nā code pili i HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Wehe i nā hana UI_xxx_Callback() a me nā code i loaʻa ke kaula gui_ a me ka pale e pili ana i ka GUI o ka mīkini kope koe wale no gui_set_virtual_face() no ka mua.view ʻano hiʻohiʻona.
- Wehe i nā code a pau e pili ana i nā mea hoʻololi s_IsWaitingAnotherSelection a me s_IsWaitingRegisterSelection e pili ana i ka polokalamu mīkini kope.
- Wehe i nā code pili i ka leo, leo, a me ka ʻōlelo. No example:
- #include “hal_voice_algo_asr_local.h”,
- #include “hal_event_descriptor_voice.h”
- No ka hoʻolaha ʻana i nā hanana like ʻole, e hoʻokō i nā hana hou _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), a me DeregisterGUIFaceRec() e pili ana i nā hana _StopFaceRec(), _RegisterCoffeeSelection(), a me ka Deregister (CoffeeSelection).
- Hoʻokomo ka _OutputManagerNotify() i ka hana puka hanana kumu e hoʻouna i kahi hanana i ka HAL algo vision. Ua kapa ʻia nā hana ma lalo nei e hoʻouna i kā lākou mau hanana ponoʻī.
- Hoʻouna ka _SetFaceRec() i ka hanana kEventFaceRecID_OasisSetState e hoʻomaka i ka algo ʻike no ka hoʻopaʻa inoa maka, ʻike ʻia, a hoʻopau i ka algo.
- Hoʻouna ka _RegisterGUIFaceRec() i ka hanana kEventFaceRecId_RegisterGUIFaceRec i wehewehe ʻia ma smart_tlhmi_event_descriptor.h e hoʻohui i ka ʻikepili hiʻohiʻona maka i ka waihona i ka wā e kākau inoa ai.
- Hoʻouna ka DeregisterGUIFaceRec() i ka hanana kEventFaceRecID_DelUser e holoi i ka ʻikepili hiʻohiʻona maka mai ka waihona i ka wā e hala ai ka ʻike maka.
- Hoʻohou i nā code e hana i nā hana e like me ka hōʻano hou ʻana i ka GUI ma ke kāhea ʻana i nā API mai ka LVGL GUI app no nā hopena inference o ka hoʻopaʻa inoa ʻana a me ka ʻike ʻana i ka hana _InferComplete_Vision() no kēlā me kēia example's design. No exampi ka wā e holomua ai ka hoʻopaʻa inoa maka,
- E ho'ōki i ka hōʻike ʻana i ka holomua ma ke kāhea ʻana iā _FaceRecProcess_Stop();
- E kāpae i ka hoʻopaʻa inoa maka ma ke kāhea ʻana iā _SetFaceRec(kOASISLiteState_Stopped);
- Hōʻike i ka hopena lanakila ma ka GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- E hoʻopaʻa inoa i ka ʻikepili maka i ka waihona: _RegisterUserFace(s_UserId);
- Hoʻohui i nā hana callback UI e mālama i nā hanana: preview, hoʻopaʻa inoa maka, ʻike a me ka holoi ʻana i ka mea hoʻohana mai ka GUI. No exampʻo ke kelepona hoʻopaʻa inoa maka: ʻaʻohe UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- A hoʻohui i nā hana _FaceRecProcess_Start() a me _FaceRecProcess_Stop() e hōʻike i ka holomua a me ke kūlana i nā hanana like ʻole a me nā hopena.
- Hoʻohou i ka hana ISR callback _SessionTimer_Callback() no ka mālama ʻana i ka hihia o ka wā hoʻomaha ma ke kāhea ʻana: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Hoʻohui i nā wehewehe ma lalo nei e hiki ai i ka UI hoʻopuka HAL ma board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Hoʻolaha:
No ka hōʻike ʻana i ka hiʻona ʻike maka ʻoi aku ka maikaʻi, mālama i ka hana e hōʻike i ke kaʻina hana a me nā hopena o ka ʻike maka ma ka UI HAL. Ua wehewehe ʻia ka hana ma lalo nei
- Hōʻike ka ʻaoʻao alakaʻi maka i ka uliuli, a ʻo ka pae holomua e hōʻike i ka holomua i ka wā e hoʻomaka ai ke kākau inoa a i ʻole ka ʻike.
- Hōʻike ʻulaʻula ka ʻāpana alakaʻi maka i ka wā e kūleʻa ai ke kākau inoa ʻana.
- Hōʻike ʻia ka ʻōmaʻomaʻo alakaʻi alakaʻi maka i ka wā e kūleʻa ai ka ʻike maka.
- Mālama ka ʻaoʻao alakaʻi maka i ka uliuli, a hōʻike ka pae holomua i ka holomua piha ke kūleʻa ʻole ka hana ma hope o ka pau ʻana o ka manawa. I kēlā manawa, hoʻopau i ka hoʻopaʻa inoa ʻana a i ʻole ka ʻike maka.
Hōʻike ʻia ka pae holomua a me ka ʻaoʻao alakaʻi alo e like me nā kiʻi i kūkulu ʻia i loko o ka binary punawai file e hoʻolālā ʻia i Flash. Hoʻonohonoho ʻia nā kuhikuhi i nā ʻikepili ikona ma SDRAM i ka hana LoadIcons(APP_ICONS_BASE) i kāhea ʻia ma ka hoʻomaka ʻana o ka polokalamu UI HAL i ka UI HAL. Pono ia e hoʻokō i ke kākoʻo ikona no ka hana.
E hoʻokō i ke kākoʻo ikona
- E kūkulu i ka kumuwaiwai e hui pū ana i nā kiʻi me nā kiʻi i hoʻohana ʻia ma ka polokalamu LVGL GUI:
- Hoʻopili i ke poʻo poʻomanaʻo ʻehā files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, and virtual_face_red_420x426.h from smart HMI
\coffee machine\resource\icons\ i nā ikona waihona hou ma lalo o ka waihona waihona o ka example SW. - E hoʻohui i ke ala huli no ka ʻehā ikona files i ka kamera_preview_resource.txt file ma ka waihona waihona, no ka example: ikona ../resource/icons/process_bar_240x14.h
- E hoʻokō i ka kamera_preview_resource_build.bat e kūkulu i nā kiʻi a me nā kiʻi kumu waiwai e hana ai i ka bin file kamera_preview_resource.bin a me ka ʻike file resource_information_table.txt (E nānā i ke Kiʻi 6).
- Hoʻopili i ke poʻo poʻomanaʻo ʻehā files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, and virtual_face_red_420x426.h from smart HMI
- E wehewehe i ka helu hoʻomaka ma SDRAM a me ka nui o nā kiʻi ma app_config.h. Hoʻomaka ka helu wahi ma hope o nā kiʻi o ka polokalamu GUI. Hana ʻia ka nui ma ka ʻike file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Hoʻohou i ka nui i hāʻawi ʻia o ka ʻāpana hoʻomanaʻo i kapa ʻia ʻo res_sh_mem i 0x200000 ma ka wehewehe hou ʻana iā ia ma app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 a me ka hoʻonohonoho pili i Project > Properties > C/C++ Build > hoʻonohonoho MCU.
- E hoʻohui i ka nui ikona i ka nui o ka waiwai i hoʻouka ʻia mai Flash a SDRAM ma ka hana APP_LoadResource() ma ke kumu nui. file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglKiʻi, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Hoolaha: No ka hoʻopau ʻana i ka hiʻohiʻona ʻike maka, pono ke kākoʻo app LVGL GUI. Kāhea ʻia nā hana hoʻihoʻi UI i ka UI HAL e ka LVGL GUI app no ka lawelawe ʻana i nā hanana mai ka pale UI. Ma ka lima ʻē aʻe, kāhea ka UI HAL i nā API mai ka LVGL GUI app e hōʻano hou i ka UI e hōʻike i ka hopena a me ke kūlana. He kūʻokoʻa kūʻokoʻa ka hoʻomohala ʻana o ka app LVGL GUI a hoʻokomo ʻia ma ka Pauku 4.3.
4.1.5 Hoʻomaka i nā mea hana HAL a me nā mana no ka ʻike maka
Hoʻomaka ʻia ka vision algo algo HAL a me UI output HAL a me kā lākou mau luna i ka mea nui file
lvgl_gui_face_rec_cm7.cpp ma hope o ka hoʻololi ʻana o ka hoʻomohala ʻana ma ke kahua e like me lalo:
- E hoʻokomo i ke poʻo file pili i nā luna HAL ʻelua ma ka hoʻohui ʻana i ka laina code:
- #include ” fwk_output_manager.h “
- #include “fwk_vision_algo_manager.h”
- E hōʻike i nā mea hana HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- E hoʻopaʻa inoa i nā mea hana HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- E hoʻomaka i nā alakaʻi:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- E hoʻomaka i nā mana:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- E wehewehe i ka mea nui o nā hana a ka luna:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Hoʻohui i ke kākoʻo ʻikepili maka ma ka framework
Loaʻa ka ʻikepili hiʻohiʻona maka i hoʻopaʻa ʻia ma ka waihona maka i mālama ʻia ma Flash ma o ka liʻiliʻi file ʻōnaehana. ʻO nā ʻanuʻu e hoʻohui i ke kākoʻo ʻikepili maka i wehewehe ʻia ma lalo nei.
Hoʻohui i nā mea hoʻokele no ka waihona Flash
E kope i ka mea hoʻokele Flash FlexSPI files fsl_flexspi.c a me fsl_flexspi.h, a me ka mea hoʻokele hoʻopunipuni ʻikepili files fsl_caam.c a me fsl_caam.h mai ke ala SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ i ka waihona hoʻokele o ka example SW.
Hoʻohui i ke kākoʻo pae papa
- Hoʻohui i nā wehewehe ʻana o FlexSPI i hoʻohana ʻia no ka hāmeʻa Flash ma luna o board.h:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- E kope i nā mea hana a me nā hoʻonohonoho files o ka mea Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, a me sln_flash_ops.h ma lalo o ke ala HMI akamai\coffee_machine\cm7\source i ka papa kuhikuhi.ample SW.
- Wehe i ka "Hoʻokaʻawale i nā kumuwaiwai mai ke kūkulu ʻana" ma C/C++ Build> Settings ma hope o ke kaomi ʻana i ka files' inoa a wehe i nā Properties no ka hiki iā lākou ke kūkulu ʻia i loko o ka papahana.
- Hoʻololi i ke poʻo i hoʻokomo ʻia fileinoa sln_flash_config.h i sln_flash_config_w25q256jvs.h ma sln_flash_config.c a me flexspi_nor_flash_ops.h.
- E hoʻonoho i ke kumu wati FlexSPI1 ma ka file clock_config.c e pili ana i ka polokalamu mīkini kope.
Hoʻohui i ka mea hoʻopili a me ke kākoʻo pae waena
- E kope i ka files sln_flash.c, sln_flash.h, sln_encrypt.c, a me sln_encrypt.h ma ke ʻano he mea hoʻokele hoʻololi no ka file ʻōnaehana a me ka polokalamu mai ke ala o ka HMI akamai\coffee_machine\cm7\source\ i ke kumu waihona o ka example. Hoʻohou i ka mea hou files:
- Wehe i ka "Hoʻokaʻawale i nā kumuwaiwai mai ke kūkulu ʻana" ma luna o lākou no ke kūkulu ʻana.
- E hoʻololi i ke poʻo i hoʻokomo ʻia file inoa sln_flash_config.h i sln_flash_config_w25q256jvs.h.
- E kope i ka waihona fileʻōnaehana i loaʻa nā API no ka liʻiliʻi fileʻōnaehana a me ka mea hoʻokele HAL mai HMI akamai \coffee_machine\cm7\source\ i ka example SW. A hōʻano hou no ka waihona hou:
- Wehe i ka "Hoʻokaʻawale i nā kumuwaiwai mai ke kūkulu ʻana" ma laila no ke kūkulu ʻana.
- E hoʻohui i ke ala komo no ia ma nā hoʻonohonoho papahana: “${workspace_loc:/${ProjName}/fileʻōnaehana}”
- Hoʻololi i ke poʻo i hoʻokomo ʻia file inoa sln_flash_config.h i sln_flash_config_w25q256jvs.h a me fica_definition.h i app_config.h ma ka file sln_flash_littlefs.h.
- E kope i ka folder littlefs i loaʻa ka mea waena - liʻiliʻi fileʻōnaehana mai ke ala SDK_2_13_0_ MIMXRT1170-EVK\middleware\ i ka example SW. A hoʻololi i ka waihona hou:
- Wehe i ka "Hoʻokaʻawale i nā kumuwaiwai mai ke kūkulu ʻana" ma laila no ke kūkulu ʻana.
- E hoʻohui i ke ala komo no ia ma nā hoʻonohonoho papahana: “${workspace_loc:/${ProjName}/littlefs}”
Hoʻohui i nā mea hoʻokele HAL
- ʻElua mau mea HAL - file ʻōnaehana a me ke alo waihona HAL i kākoʻo ʻia no ka hiʻohiʻona ʻike ʻikepili a ua hoʻokō ʻia lākou i loko o ka hoʻolālā me ka ʻole o ka loli. Hiki iā lākou ma ka hoʻohui ʻana i nā wehewehe i lalo ma board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
A hoʻololi i ka inoa waihona maka no ka example: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Hoʻohui i ke kākoʻo pae polokalamu
- Hoʻohou i ka mea nui file lvgl_gui_face_rec_cm7.cpp:
- E hoʻokomo i ke poʻo file pili i ka Flash file luna HAL pūnaewele ma ka hoʻohui ʻana i ka laina code: #include “fwk_flash.h”
- E haʻi a hoʻopaʻa inoa file polokalamu HAL pūnaewele:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Nānā: Ka file Pono e hoʻopaʻa inoa ʻia ka ʻōnaehana HAL ma mua o ka hoʻomaka ʻana o nā mana mana āpau ma ka hana APP_InitFramework().
- E kāhea i ka hana BOARD_ConfigMPU () ma APP_BoardInit () e hoʻonohonoho i ka MPU.
- Hoʻonoho i ka file ʻoihana ʻōnaehana ma Flash ma ka file app_config.h ma ka wehewehe ʻana i nā wehewehe macro i hoʻohana ʻia ma ka file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #define FICA_FILE_SYS_SIZE (0x280000)
Nā hoʻonohonoho
Hoʻokō ʻia kekahi mau code pili Flash ma ka wahi SRAM ITC no ka lawa o ka hana. E kope i nā palapala loulou waihona i loaʻa nā hoʻonohonoho loulou mai ke ala akamai HMI\coffee_machine\cm7\ i ka example SW.
E hoʻokō i kahi polokalamu LVGL GUI
ʻO ka hoʻomohala ʻana i kahi polokalamu LVGL GUI e pili ana i ka framework e kāhea aku i nā API mai ka UI HAL puka a hāʻawi i nā API no ka hoʻopuka ʻana i ka UI HAL (E nānā i ka Pauku 4.1.3 no ka hoʻokō ʻana i ka UI HAL pukana).
Eia nō naʻe, ʻo ka hoʻokō kikoʻī o kahi app LVGL GUI e pili ana i nā koi a me ka hoʻolālā ʻana o ka noi. ʻO ka polokalamu GUI i kēia exampUa hoʻolālā ʻia ka le e like me ka wehewehe ʻana ma ka hoʻomaka ʻana o ka pauku 4.
Ma lalo iho nei nā hoʻolauna hoʻokō:
- Hoʻokomo ʻia nā code maʻamau i ka custom.c a me custom.h i hāʻawi ʻia e GUI Guider ma ke ʻano he kikowaena ma waena o ka papahana GUI Guider a me ka papahana ʻōnaehana hoʻokomo.
- Hoʻohui i nā hana hou i kapa ʻia ʻo gui_xxx() i custom.c e hoʻokō i nā hana ma lalo nei:
- No ka hoʻopuka UI HAL a me ka polokalamu GUI e hoʻonui i ka UI.
- No ka polokalamu GUI e hoʻomaka i nā hanana ma ke kāhea ʻana i nā hana callback UI mai ka UI HAL.
No exampʻO ka hana hou gui_event_face_rec_action() kāhea i nā hana callback UI e mālama i kekahi o nā hanana o ka hoʻopaʻa inoa maka, ka ʻike maka a me ka holoi ʻana i ka mea hoʻohana i hoʻoiho ʻia mai ka app GUI ke kaomi ʻana i ke pihi pili.
Nānā: Ua kapa ʻia ka hana gui_set_virtual_face() i ka UI HAL puka no ka preview Pono e hoʻokō ʻia ke ʻano ma custom.c:
- Hana Clone gui_set_virtual_face() mai HMI akamai\coffee_machine\cm4\custom.c.
- E hoʻololi i ka inoa o ka widget home_img_cameraPreview i ka screen_img_camera_preview i ka hana.
- E hoʻokō i nā hana hoʻihoʻi UI me ka prototype like i nā mea a pau i ka UI HAL puka ma lalo o ka mana o ka wehewehe macro #ifndef RT_PLATFORM ma custom.c no ka hoʻohālikelike ʻana me ka papahana GUI Guider no ka mea pili kēia mau hana i ka UI HAL me ka paepae hoʻokomo ʻia. Ma custom.c, hilinaʻi lākou i ka simulator ma ke alakaʻi GUI a kūʻokoʻa i ka paepae i hoʻokomo ʻia. No exampʻAe, ua hoʻokō ʻia ka hoʻihoʻi inoa inoa maka e like me lalo no ka simulator GUI Guider e holo ana: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = wahahee; hoʻi; }
Nānā: E nānā i ka prototype like o ka hana i hoʻokomo ʻia ma ka ʻanuʻu 6 o ka Pauku 4.1.3
Hoʻonohonoho ʻia ka wehewehe macro RT_PLATFORM ma nā hoʻonohonoho papahana o MCUXpresso e like me ka hōʻike ʻana ma ke Kiʻi 7: - E haʻi aku i nā hana a pau i kapa ʻia ʻo UI_xxx_Callback() a me gui_xxx() i custom.h a hoʻohui i custom.h i hoʻokomo ʻia i smart_tlhmi_event_descriptor.h e kaʻana like i nā GUI API i ka UI hoʻopuka HAL.
- Hoʻohui i nā hana hou i kapa ʻia ʻo gui_xxx() i custom.c e hoʻokō i nā hana ma lalo nei:
- E hoʻomohala i ka GUI ma GUI Guider:
- Hoʻopili i ka pahu pahu pahu ma muaview Aia ka lako polokalamu papahana GUI Guider ma ka waihona gui_guider i loko o ka pūʻolo polokalamu kumu lvgl_gui_camera_preview_cm7. E hoʻololi i ka inoa pili camera_preview e alo_rec no ka ex houample.
- E kope i ka custom.c a me ka custom. h i ka polokalamu papahana GUI Guider hou.
- E wehe i ka papahana face_rec hou ma GUI Guider. Hōʻano hou e like me lalo:
- Hoʻohui i ke pihi hou i kapa ʻia Delete User. E hoʻohui i ka hae huna iā ia i hūnā ʻia ke pihi i ka wā e hoʻomaka ai ka app GUI.
- E hoʻohui i ka laina code o ke kāhea ʻana i ka API gui_event_face_rec_action() me nā ʻāpana ID hanana like ʻole ma ka "Hoʻokuʻu ʻia" i ka hanana hanana o nā pihi a pau Ka hoʻopaʻa inoa, ʻike a me ka holoi ʻana i ka mea hoʻohana no ka hoʻomaka ʻana i nā hanana o ka hoʻopaʻa inoa maka, ka ʻike maka a me ka holoi ʻana i ka mea hoʻohana. Hōʻike ka Figure 8 i ke code no ka hanana o ke pihi Registry:
- Hoʻohou i ke code i hana ʻia mai GUI Guider i ka papahana MCUXpresso.
- E hoʻololi i nā ʻike koe wale nō nā kiʻi waihona i loko o ka waihona i hana ʻia e ka papahana MCUXpresso SW me nā mea pili i loko o ka waihona i hana ʻia e GUI Guider project SW.
Nānā: No nā kikoʻī hou aku e pili ana i nā hoʻololi i hoʻopuka ʻia ma luna, e nānā i ka example lako polokalamu ma https://mcuxpresso.nxp.com/appcodehub.
Nā hōʻoia me ka example papahana
E kiʻi i ka exampka pūʻolo lako polokalamu i loaʻa nā kumuwaiwai a me nā mea hana no kēia palapala noi, e kipa: https://mcuxpresso.nxp.com/appcodehub. Wehe i ka exampka papahana ma MCUXpresso IDE. Kūkulu a hoʻolālā i ka .axf file i ka helu wahi 0x30000000 a hoʻolālā i ka waihona punawai file kamera_preview_resource.bin i ka helu wahi 0x30800000.
ʻO ka LVGL GUI ʻike maka exampe hana maʻamau e like me lalo:
- Preview: Me ka mana, e hōʻike ana nā kahawai wikiō i hopu ʻia e ka pahupaʻikiʻi ma kahi kikoʻī o ka pahu kiʻi muaview ma ka pale GUI. Hōʻike ka lepili kūlana "Preview…”. No nā kikoʻī, e ʻike i ke Kiʻi 3. Ua hūnā ʻia ke pihi Delete User. Ke kaomi ʻana i kahi ma waho o nā pihi a me nā kiʻi, hōʻike ia i ka preview e like me ka mea i luna ma hope o ka pau ʻana o ka hoʻopaʻa inoa ʻana a i ʻole ka hana ʻike maka.
- Kakau inoa:
- ʻūhā: Ke kaomi ʻia ke pihi Hoʻopaʻa inoa, hoʻomaka ka hoʻopaʻa inoa maka. Hoʻololi ka lepili kūlana e hōʻike i ka "Registration ...", hōʻike ka polū i ka ʻaoʻao alakaʻi alakaʻi, a hoʻomaka ka pae holomua e hōʻike i ka holomua. E hōʻoia i ka maka o ka mea hoʻohana e hōʻike ana i loko o ka polū alo alakaʻi rectangle no ke kākau inoa.
- holomua: Hōʻike ka lepili kūlana i ka "Registration…OK" a me ka helu ID mea hoʻohana i hoʻopaʻa inoa ʻia, e ʻulaʻula ka ʻaoʻao alakaʻi alakaʻi ʻaoʻao inā kūleʻa ka hoʻopaʻa inoa ʻana ma mua o ka hōʻike ʻana o ka holomua ma ka pā.
- ʻAʻole -> Manawa: Hōʻike ka lepili kūlana i ka "Registration…Time out" inā ʻaʻole i hāʻule ka hoʻopaʻa inoa maka ke hōʻike piha ka holomua ma ka pā.
- ʻAʻole -> Hoʻopili: Hōʻike ka lepili kūlana i ka "Registration…Failed", lilo ka ʻaoʻao alakaʻi i ka ʻōmaʻomaʻo inā ʻike ʻia ka helehelena i hoʻopaʻa ʻia ma mua o ka hōʻike piha ʻana o ka holomua ma ka pā.
- ecognition:
- Hoʻomaka: Ke kaomi ʻia ke pihi ʻike, hoʻomaka ka ʻike maka. Hoʻololi ka lepili kūlana e hōʻike i ka "Hoʻomaopopo ...", hōʻike ka polū i ka ʻaoʻao alakaʻi alakaʻi, a hoʻomaka ka pae holomua e hōʻike i ka holomua. E hōʻoia i ka maka o ka mea hoʻohana i hōʻike 'ia i loko o ka polū alo alakaʻi rectangle no ke kakau ana.
- holomua: Hōʻike ka lepili kūlana i ka "Recognition...OK" a me ka helu ID mea hoʻohana i ʻike ʻia, lilo ka ʻaoʻao alakaʻi i ka ʻōmaʻomaʻo inā kūleʻa ka ʻike maka ma mua o ka hōʻike piha ʻana o ka holomua ma ka pā. I ka manawa, ʻike ʻia ka pihi Delete User. ʻO ia hoʻi, ʻae ʻia ka mea hoʻohana e holoi ʻia ke ʻike ʻia.
- ailure: Hōʻike ka lepili kūlana i ka "Hoʻomaopopo…Ka manawa pau" inā hāʻule mau ka ʻike maka ke hōʻike piha ʻia ka holomua ma ka pā.
- Holoi mea hoʻohana: Ke paʻi ʻia ke pihi "Delete User", ma hope o ka kūleʻa ʻana o ka ʻike maka, hoʻololi ka lepili kūlana e hōʻike i ka "Delete User…OK" me ka ʻaoʻao alakaʻi ʻaoʻao e lilo i polū a ʻike ʻia ka holomua ma ka pā. Huna hou ke pihi Delete User. Holoi ʻia ka helehelena i ʻike ʻia mai ka waihona. 'O ia ho'i, 'a'ole hiki ke 'ike 'ia kēia maka/mea ho'ohana a ho'opa'a inoa hou 'ia.
E noʻonoʻo e pili ana i ke code kumu ma ka palapala
ExampʻO ke code i hōʻike ʻia ma kēia palapala aia ke kuleana kope a me ka laikini BSD-3-Clause:
Kuleana kope 2024 NXP Hāʻawi hou ʻia a hoʻohana ʻia i nā kumu kumu a me nā ʻano binary, me ka hoʻololi ʻole a i ʻole ka hoʻololi ʻana, ʻae ʻia inā e hoʻokō ʻia kēia mau kūlana:
- Pono e hoʻopaʻa ʻia ka hoʻolaha ʻana o nā kumu kumu i ka leka hoʻomaopopo kope i luna, kēia papa inoa o nā kūlana a me kēia ʻōlelo hoʻokae.
- Pono e hoʻopuka hou ʻia ka hoʻolaha ʻana ma ke ʻano binary i ka leka hoʻomaopopo kope i luna, pono e hāʻawi ʻia kēia papa inoa o nā kūlana a me kēia ʻōlelo hoʻokae i loko o ka palapala a/a i ʻole nā mea ʻē aʻe me ka hāʻawi ʻana.
- ʻAʻole hiki ke hoʻohana ʻia ka inoa o ka mea paʻa kope a i ʻole nā inoa o kāna mea hāʻawi e kākoʻo a hoʻolaha i nā huahana i loaʻa mai kēia polokalamu me ka ʻole o ka ʻae ʻana i kākau mua ʻia.
Hāʻawi ʻia kēia polokalamu e ka poʻe paʻa kope a me nā mea hāʻawi "AS IS" a me nā palapala hōʻoia a i ʻole i hoʻohālikelike ʻia, e komo pū ana, akā ʻaʻole i kaupalena ʻia, nā palapala hōʻoia o ka mea kūʻai aku a me ka pono no kahi kumu kūʻai ʻole. ʻAʻole e kuleana ka mea paʻa kope a i ʻole ka poʻe hāʻawi kālā no nā mea kūʻokoʻa, kūwaho, ʻokoʻa, kūikawā, hiʻohiʻona, a i ʻole nā pōʻino i hoʻopau ʻia (e komo, ʻaʻole i kaupalena ʻia, ke kūʻai ʻana i nā waiwai pani, nā lawelawe, nā lawelawe; A I OLE KA HOʻOPIʻI I KA PALAPALA) EIA naʻe i kumu a ma kekahi manaʻo o ke kuleana, inā ma ka ʻaelike, ke kuleana koʻikoʻi, a i ʻole ka hoʻopaʻapaʻa (me ka haʻalele ʻole a i ʻole nā mea ʻē aʻe) e ala mai ana ma ke ʻano o ka hoʻohana ʻana i kēia polokalamu, ʻoiai inā ʻaʻole i ʻōlelo ʻia.
Moʻolelo hoʻoponopono
ʻIke pili kānāwai
Wehewehewehe
Draft — ʻO ke kūlana kiʻi kiʻi ma kahi palapala e hōʻike ana aia ka ʻike ma lalo o ka re internalview a ma muli o ka ʻae ʻia ʻana, hiki ke hoʻololi a hoʻohui ʻia paha. ʻAʻole hāʻawi ʻo NXP Semiconductors i nā hōʻike a i ʻole palapala hōʻoia e pili ana i ka pololei a i ʻole ka piha ʻana o ka ʻike i hoʻokomo ʻia i loko o kahi mana kikoʻī o kahi palapala a ʻaʻohe kuleana no ka hopena o ka hoʻohana ʻana i ia ʻike.
Hoʻolele
- Hoʻopaʻa palena ʻia a me ke kuleana — Manaʻo ʻia he pololei a hilinaʻi ka ʻike ma kēia palapala. Eia naʻe, ʻaʻole hāʻawi ʻo NXP Semiconductors i nā hōʻike a i ʻole nā hōʻoia, i hōʻike ʻia a i ʻole e pili ana i ka pololei a i ʻole ka piha ʻana o ia ʻike a ʻaʻohe kuleana no ka hopena o ka hoʻohana ʻana i ia ʻike. ʻAʻole kuleana ʻo NXP Semiconductors no ka ʻike ma kēia palapala inā hāʻawi ʻia e kahi kumu ʻike ma waho o NXP Semiconductors.
ʻAʻole e hoʻopiʻi ʻia nā NXP Semiconductors no nā pōʻino kūʻokoʻa, kūʻokoʻa, hoʻopaʻi, kūikawā a i ʻole nā poino hopena (me ka - me ka ʻole o ka palena - nalo ka loaʻa kālā, nalowale mālama, hoʻopau ʻoihana, nā koina e pili ana i ka wehe ʻana a i ʻole ke pani ʻana i nā huahana a i ʻole nā uku hana hou) ʻaʻole hoʻokumu ʻia kēlā mau pohō ma luna o ka tort (me ka mālama ʻole ʻana), ka palapala hōʻoia, ka uhaki ʻana i ka ʻaelike a i ʻole kekahi manaʻo kānāwai ʻē aʻe.
ʻOiai nā pōʻino i loaʻa i ka mea kūʻai aku no kekahi kumu, ʻo ka hui a me ke kuleana kumulative o NXP Semiconductors i ka mea kūʻai aku no nā huahana i wehewehe ʻia ma ʻaneʻi e kaupalena ʻia e like me nā Kūlana a me nā kūlana o ke kūʻai kūʻai ʻana o NXP Semiconductors. - Pono e hoʻololi — Loaʻa i ka NXP Semiconductors ke kuleana e hoʻololi i ka ʻike i paʻi ʻia ma kēia palapala, me ka ʻole o nā kikoʻī kikoʻī a me nā wehewehe huahana, i kēlā me kēia manawa a me ka ʻole o ka hoʻolaha. Hoʻopili kēia palapala a pani i nā ʻike āpau i hāʻawi ʻia ma mua o ka hoʻolaha ʻana o kēia.
- Kūpono no ka hoʻohana ʻana — ʻAʻole i hoʻolālā ʻia nā huahana NXP Semiconductors, ʻae ʻia a i ʻole i kūpono no ka hoʻohana ʻana i ke kākoʻo ola, nā ʻōnaehana koʻikoʻi a i ʻole palekana-koʻikoʻi a i ʻole nā mea hana, ʻaʻole i nā noi i hiki ke manaʻo ʻia ka hemahema a i ʻole ka hana ʻole ʻana o kahi huahana NXP Semiconductors. ʻeha pilikino, make a waiwai nui a pōʻino kaiapuni paha. ʻAʻole ʻae ʻo NXP Semiconductors a me kāna mau mea hoʻolako i ke kuleana no ka hoʻokomo ʻana a/a i ʻole ka hoʻohana ʻana i nā huahana NXP Semiconductors i loko o ia mau lako a i ʻole nā noi a no laila ke hoʻokomo ʻia a/a i ʻole ka hoʻohana ʻana i ka pilikia o ka mea kūʻai aku.
- Nā noi - ʻO nā noi i wehewehe ʻia ma ʻaneʻi no kekahi o kēia mau huahana no nā kumu hoʻohālike wale nō. ʻAʻole hana ʻo NXP Semiconductors i kahi hōʻike a i ʻole palapala hōʻoia e kūpono ia mau noi no ka hoʻohana i ʻōlelo ʻia me ka ʻole o ka hoʻāʻo hou ʻana a i ʻole ka hoʻololi ʻana.
Na nā mea kūʻai aku ke kuleana no ka hoʻolālā a me ka hana ʻana o kā lākou noi a me nā huahana me ka hoʻohana ʻana i nā huahana NXP Semiconductors, a ʻaʻole ʻae ʻo NXP Semiconductors i ke kuleana no kekahi kōkua me nā noi a i ʻole ka hoʻolālā huahana mea kūʻai aku. Na ka mea kūʻai wale nō ke kuleana e hoʻoholo inā he kūpono a kūpono ka huahana NXP Semiconductors no nā noi a ka mea kūʻai aku a me nā huahana i hoʻolālā ʻia, a no ka noi hoʻolālā ʻia a me ka hoʻohana ʻana i nā mea kūʻai aku o ka mea kūʻai aku. Pono nā mea kūʻai aku e hāʻawi i ka hoʻolālā kūpono a me nā palekana hana e hōʻemi i nā pilikia e pili ana i kā lākou noi a me nā huahana. ʻAʻole ʻae ʻo NXP Semiconductors i ke kuleana e pili ana i kekahi paʻa, pōʻino, kumukūʻai a i ʻole pilikia e pili ana i kekahi nāwaliwali a paʻa paha i nā noi a i ʻole nā huahana a ka mea kūʻai aku, a i ʻole ka noi a i ʻole ka hoʻohana ʻia e ka mea kūʻai aku ʻekolu ʻaoʻao. Na ka mea kūʻai ke kuleana no ka hana ʻana i nā hoʻāʻo pono a pau no nā noi a me nā huahana a ka mea kūʻai aku me ka hoʻohana ʻana i nā huahana NXP Semiconductors i mea e pale aku ai i kahi paʻamau o nā noi a me nā huahana a i ʻole ka noi a hoʻohana ʻia e nā mea kūʻai aku ʻekolu ʻaoʻao. ʻAʻole ʻae ʻo NXP i kekahi kuleana ma kēia ʻano. - Nā ʻōlelo a me nā kūlana o ke kūʻai aku ʻana — Kūʻai ʻia nā huahana NXP Semiconductors ma lalo o nā ʻōlelo maʻamau a me nā kūlana o ke kūʻai aku ʻana, e like me ka mea i paʻi ʻia ma https://www.nxp.com/profile/'ōlelo, ke 'ole i 'aelike 'ia i loko o ka palapala 'aelike kanaka. Inā hoʻopau ʻia kahi ʻaelike pākahi wale nō e pili nā ʻōlelo a me nā kūlana o ka ʻaelike. ʻO NXP Semiconductors ke kūʻē nei i ka hoʻopili ʻana i nā ʻōlelo a me nā kūlana maʻamau o ka mea kūʻai aku e pili ana i ke kūʻai ʻana i nā huahana NXP Semiconductors e ka mea kūʻai aku.
- Ka mana hoʻokuʻu aku — Hiki i kēia palapala a me nā mea i hōʻike ʻia ma lalo nei i nā lula mana hoʻokuʻu aku. Pono paha ka ʻae mua ʻana mai nā mana kūpono.
- He kūpono no ka hoʻohana ʻana i nā huahana kūpono ʻole o ka automotive — Inā ʻaʻole i hōʻike maopopo ʻia kēia palapala ʻo kēia huahana NXP Semiconductors kikoʻī i kūpono i ka automotive, ʻaʻole kūpono ka huahana no ka hoʻohana kaʻa. ʻAʻole kūpono a hoʻāʻo ʻia e like me ka hoʻāʻo automotive a i ʻole nā koi noi. ʻAʻole ʻae ʻo NXP Semiconductors i ke kuleana no ka hoʻopili ʻana a/a i ʻole ka hoʻohana ʻana i nā huahana kūpono ʻole kaʻa i nā lako kaʻa a i ʻole nā noi.
Inā hoʻohana ka mea kūʻai aku i ka huahana no ka hoʻolālā ʻana a me ka hoʻohana ʻana i nā noi automotive i nā kikoʻī a me nā kūlana kaʻa, e hoʻohana ka mea kūʻai (a) i ka huahana me ka ʻole o ka NXP Semiconductors 'hōʻoia o ka huahana no ia mau noi automotive, hoʻohana a me nā kikoʻī, a ( b) i nā manawa a pau e hoʻohana ai ka mea kūʻai aku i ka huahana no nā noi kaʻa ma waho aʻe o nā kikoʻī o NXP Semiconductors, ʻo ia ka hoʻohana ʻana ma muli wale nō o ka pilikia o ka mea kūʻai aku, a (c) hoʻopaʻi piha ka mea kūʻai aku iā NXP Semiconductors no kekahi kuleana, pohō a i ʻole nā koi huahana i loaʻa ʻole mai ka hoʻolālā ʻana a me ka hoʻohana ʻana o ka mea kūʻai aku. ka huahana no nā noi kaʻa ma mua o ka palapala hōʻoia maʻamau o NXP Semiconductors a me nā kikoʻī huahana NXP Semiconductors. - Nā unuhi — ʻAʻole ka ʻōlelo Pelekania (unuhi ʻia) o kahi palapala, me ka ʻike pili kānāwai i loko o ia palapala, no ke kuhikuhi wale nō. E lanakila ka mana ma ka ʻōlelo Pelekania inā loaʻa kekahi ʻokoʻa ma waena o ka unuhi a me ka ʻōlelo Pelekania.
- Palekana — Hoʻomaopopo ka mea kūʻai aku e pili ana nā huahana NXP āpau i nā nāwaliwali i ʻike ʻole ʻia a i ʻole ke kākoʻo i nā kūlana palekana i hoʻokumu ʻia a i ʻole nā kikoʻī me nā palena ʻike ʻia. Na ka mea kūʻai aku ke kuleana no ka hoʻolālā ʻana a me ka hana ʻana o kāna mau noi a me nā huahana i ko lākou ola holoʻokoʻa e hōʻemi i ka hopena o kēia mau nāwaliwali i nā noi a me nā huahana. Hoʻopili ʻia ke kuleana o ka mea kūʻai aku i nā ʻenehana wehe a/a i ʻole nā mea waiwai i kākoʻo ʻia e nā huahana NXP no ka hoʻohana ʻana i nā noi a ka mea kūʻai aku. ʻAʻole ʻae ʻo NXP i ke kuleana no kekahi nāwaliwali. Pono ka mea kūʻai aku e nānā i nā mea hou o ka palekana mai NXP a hahai pono. E koho ka mea kūʻai aku i nā huahana me nā hiʻohiʻona palekana i kūpono i nā lula, nā lula, a me nā kūlana o ka noi i manaʻo ʻia a hana i nā hoʻoholo hoʻolālā hope loa e pili ana i kāna huahana a nona wale nō ke kuleana no ka hoʻokō ʻana i nā koi pili kānāwai, hoʻoponopono, a me ka palekana e pili ana i kāna huahana, me ka nānā ʻole. o kekahi ʻike a kākoʻo paha i hāʻawi ʻia e NXP.
NXP he Product Security Incident Response Team (PSIRT) (hiki ke kiʻi ʻia ma PSIRT@nxp.com) nāna e hoʻokele i ka hoʻokolokolo, hōʻike, a me ka hoʻokuʻu ʻana i ka hopena i nā nāwaliwali palekana o nā huahana NXP.
NXP BV - ʻAʻole ʻo NXP BV he hui hana a ʻaʻole ia e hāʻawi a kūʻai aku i nā huahana.
Nā hōʻailona
Hoolaha: ʻO nā hōʻailona kuhikuhi a pau, nā inoa huahana, nā inoa lawelawe, a me nā hōʻailona kūʻai i nā waiwai o ko lākou mau mea nona.
NXP - ʻO ka huaʻōlelo a me ka hōʻailona hōʻailona o 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 — he mau hōʻailona kālepa a/a i ʻole nā hōʻailona inoa inoa o Arm Limited (a i ʻole kāna mau lālā a i ʻole nā mea pili) ma US a/a i ʻole ma kahi e. Hiki ke pale ʻia ka ʻenehana pili e kekahi a i ʻole nā patent, kope kope, hoʻolālā a me nā mea huna kālepa. Ua mālama ʻia nā kuleana āpau.
- i.MX — he hōʻailona o NXP BV
- J-Lulu - he hōʻailona o SEGGER Microcontroller GmbH.
ʻO Microsoft, Azure, a me ThreadX - he mau hōʻailona o ka hui Microsoft o nā hui.
E ʻoluʻolu e hoʻomaopopo i nā hoʻolaha koʻikoʻi e pili ana i kēia palapala a me nā huahana i hōʻike ʻia ma ʻaneʻi, ua hoʻokomo ʻia ma ka pauku 'ʻike pili kānāwai'.
© 2024 NXP BV
No ka 'ike hou aku, e kipa mai: https://www.nxp.com
- Lā i hoʻokuʻu ʻia: 19 ʻApelila 2024
- Mea hōʻike palapala: AN14263
FAQ
Q: He aha ke kumu nui o kēia huahana?
A: ʻO ke kumu nui e hiki ai i ka hana ʻike maka me ka hoʻohana ʻana i kahi hiʻohiʻona algorithm vision algorithm AI&ML me kahi LVGL GUI ex maʻalahi.ample ma ka papa SLN-TLHMI-IOT.
Nīnau: Pehea e pōmaikaʻi ai nā mea hoʻomohala mai kēia palapala noi?
A: Hiki i nā mea hoʻomohala ke aʻo pehea e hoʻokō ai i ka ʻike maka ma ka framework i kēlā me kēia pae me ka hoʻohana ʻana i ka ex i hāʻawi ʻiaampe hoʻomaopopo a hoʻomaopopo i nā mana o nā mea hana, nā mea hana HAL, a me nā hana hanana i pili.
Palapala / Punawai
![]() |
NXP AN14263 Hoʻokō LVGL GUI ʻike maka ma Framewor [pdf] Ke alakaʻi hoʻohana AN14263 E hoʻokō i ka LVGL GUI Face Recognition ma Framewor, AN14263, E hoʻokō i ka LVGL GUI Face Recognition ma Framewor, LVGL GUI Face Recognition ma Framewor, Face Recognition ma Framewor, Recognition on Framewor, Framewor |