I-NXP AN14263 Ukuphumeza i-LVGL GUI yokuNakana koBuso kwi-Framewor
Ulwazi lweMveliso
Iinkcukacha
- Igama lemveliso: I-LVGL GUI yokuNakana ngobuso kwiSikhokelo
- Uhlaziyo loxwebhu: 1 – 19 April 2024
- Amagama angundoqo: Ukuqaphela ubuso, i-LVGL GUI, iNkqubo-sikhokelo
Imiyalelo yokusetyenziswa kwemveliso
- Ngaphezuluview
Le mveliso yenza imodeli ye-algorithm ye-AI&ML yokuqondwa kobuso kwisakhelo sokuphumeza umsebenzi wokuqonda ubuso nge-LVGL GUI ex elula.ample kwibhodi SLN-TLHMI-IOT. - Isakhelo Ngaphezuluview
Isoftware yesisombululo iyilwe malunga noyilo lwesakhelo esibandakanya abaphathi besixhobo abanoxanduva lokulawula izixhobo, izixhobo ze-HAL kwiinkcukacha ezifihlakeleyo, kunye neziganeko zonxibelelwano phakathi kwezixhobo ezahlukeneyo. - Iimbonakalo
Imveliso ivumela ukuphunyezwa komsebenzi wokuqaphela ubuso ngekhamera yangaphambiliview kwiscreen seGUI esinamaqhosha okuqalisa ubhaliso lobuso, ukuqondwa, kunye nokususwa. Idatha yobuso obubhalisiweyo igcinwa kwiFlash nge file inkqubo. - Isiqulatho seNqaku leSicelo
Inqaku lesicelo libonisa isikrini se-LVGL GUI esinekhamera yangaphambiliview namaqhosha eentshukumo ezinxulumene nobuso. Inceda abaphuhlisi baqonde isakhelo kunye nendlela yokuphumeza ukuqondwa kobuso usebenzisa i-ex enikiweyoample.
Ngaphezuluview
I-NXP iqalise ikiti yophuhliso lwesisombululo ebizwa ngokuba yi-SLN-TLHMI-IOT egxile kwizicelo ze-HMI ezihlakaniphile. Ivumela i-HMI ehlakaniphile enombono we-ML, ilizwi, kunye nemizobo ye-UI ephunyezwe kwi-NXP i.MX RT117H MCU enye. Ngokusekelwe kwi-SDK, isofthiwe yesisombululo yakhiwe kwi-design ebizwa ngokuba yi-framework exhasa ukuyila okuguquguqukayo kunye nokwenziwa ngokwezifiso kombono kunye nemisebenzi yezwi. Ukunceda abasebenzisi ukuba basebenzise iqonga lesoftware ngcono, amanye amaxwebhu asisiseko anikezelweyo, umzekeloample, isikhokelo sophuhliso lwesoftware. Isikhokelo sazisa isiseko soyilo lwesoftware kunye noyilo lwezicelo ezigubungela zonke iinxalenye zesisombululo kubandakanywa nesakhelo sokunceda abaphuhlisi ngokulula kwaye baphumeze ngokufanelekileyo izicelo zabo usebenzisa i-SLN-TLHMI-IOT.
Ukufumana iinkcukacha ezithe vetshe malunga nesisombululo kunye namaxwebhu afanelekileyo, tyelela i web iphepha le-NXP EdgeReady Smart HMI Solution Ngokusekelwe kwi-i.MX RT117H kunye nombono weML, Izwi, kunye ne-UI yoMzobo. Nangona kunjalo, akukabi lula kangako kubaphuhlisi ukuba baphumeze izicelo zabo ze-HMI ezihlakaniphile ezibhekiselele kwezi zikhokelo zisisiseko. Uluhlu lwamanqaku esicelo lucetywayo ukunceda ukufunda uphuhliso kwisakhelo isinyathelo ngesinyathelo. Eli nqaku lesicelo lisekelwe kuPhumezo lwe-LVGL GUI Camera Preview kwiNkqubo-sikhokelo (uxwebhu AN14147). Eli nqaku lesicelo lichaza indlela yokwenza imodeli ye-AI&ML yombono we-algorithm yokuqondwa kobuso kwisakhelo ukuphumeza umsebenzi wokuqonda ubuso ngekhamera yangaphambili.view kwikhusi GUI nge LVGL GUI ex elulaample kwibhodi SLN-TLHMI-IOT. Kwinqaku lesicelo, i-example ibonisa isikrini se-LVGL GUI kunye nekhamera yangaphambiliview kunye namaqhosha athile okuqalisa ubhaliso lobuso, ukuqondwa, kunye nokususwa. Idatha yobuso ebhalisiweyo igcinwa kwiFlash ngokusebenzisa kancinci file inkqubo.
Kwinqanaba eliphezulu, inqaku lesicelo liqulethe imixholo engezantsi:
- Yenza uphawu lokuqonda ubuso kwisakhelo.
- Yongeza inkxaso yedatabase yobuso kwisakhelo ngokusebenzisa file inkqubo kwiFlash.
- Sebenzisa i-LVGL GUI app. Ngezintshayelelo ezingentla, olu xwebhu lunceda abaphuhlisi ukuba:
- Qonda isakhelo kunye nesoftware yesisombululo se-HMI nzulu ngakumbi.
- Phuhlisa i-AI&ML yabo yokuqonda ubuso kwisakhelo nge-LVGL GUI app.
Isakhelo phezuview
Isoftware yesisombululo iyilwe ngokuyintloko malunga nokusetyenziswa koyilo lwesakhelo esakhiwe ngamacandelo ahlukeneyo:
- Abaphathi besixhobo - inxalenye ephambili
- Izixhobo ze-Hardware Abstraction Layer (HAL).
- Imiyalezo/Iziganeko
Njengoko kubonisiwe kuMfanekiso 1, ngaphezuluview yendlela yesakhelo yile:
Abaphathi besixhobo banoxanduva lokulawula izixhobo ezisetyenziswa yinkqubo. Uhlobo ngalunye lwesixhobo (igalelo, imveliso, njalo njalo) lunohlobo oluthile lomphathi wesixhobo. Ngomphathi wesixhobo eqala emva kokuba izixhobo zibhaliswe kuyo, ilinda kwaye ihlolisise umyalezo wokudlulisa idatha kwizixhobo kunye nabanye abaphathi emva kokuqalisa kunye nokuqalisa izixhobo ezibhalisiweyo. Izixhobo ze-HAL zibhalwe phezulu kwikhowudi yomqhubi wezinga eliphantsi, kunceda ukwandisa ukuqonda kwekhowudi ngokukhupha ezininzi iinkcukacha eziphantsi.
Imisitho yindlela yokunxibelelana ngolwazi phakathi kwezixhobo ezahlukeneyo kusetyenziswa abaphathi bazo. Xa isiganeko siqaliswa, isixhobo esafumana isiganeko kuqala sinxibelelana nomphathi waso eso siganeko, size ke sazise abanye abaphathi abachongiweyo ukuba bamkele umcimbi.
Uyilo loyilo lwesakhelo lugxile kwiinjongo ezingundoqo ezintathu:
- Ukusetyenziswa ngokulula
- Ukuguquguquka/Ukuphatheka
- Ukusebenza
Isakhelo senziwe ngenjongo yokukhawulezisa ixesha lokuthengisa umbono kunye nezinye izicelo zokufunda ngomatshini. Ukuqinisekisa ixesha elikhawulezayo lokuthengisa, kubalulekile ukuba isoftware ngokwayo ibe lula ukuyiqonda kunye nokuguqula. Ukugcina le njongo engqondweni, i-architecture yesakhelo kulula ukuyiguqula ngaphandle kokuthintela, kwaye ngaphandle kokuza kwiindleko zokusebenza.
Ukufumana iinkcukacha ezithe vetshe malunga nesakhelo, bona iSikhokelo soMsebenzisi soPhuhliso lweSoftwe ye-Smart HMI (uxwebhu lwe-MCU-SMHMI-SDUG).
Ithala leencwadi lemizobo eliKhaphukhaphu neliguquguqukayo (LVGL)
I-LVGL (UkuKhanya kunye neThala leeNcwadi leMizobo eLuhlukeneyo) lithala leencwadi lemizobo elisimahla nelivulelekileyo elibonelela ngayo yonke into oyifunayo ukuze udale i-GUI edibeneyo enezinto zegraphical ekulula ukuzisebenzisa, imbonakalo entle kunye nenkumbulo ephantsi.
GUI Guider
IsiKhokelo se-GUI sisixhobo sophuhliso lojongano lomzobo olusebenziseka lula oluvela kwi-NXP esenza ukuba uphuhliso olukhawulezayo lwemiboniso ekumgangatho ophezulu kunye nethala leencwadi lemizobo leLVGL elivulelekileyo. Umhleli we-GUI wokutsalwa nokuwisa wenza kube lula ukusebenzisa iimpawu ezininzi ze-LVGL ezinje ngewijethi, oopopayi, kunye nezimbo ukwenza i-GUI enekhowudi encinci okanye ingabikho kwaphela.
Ngokucofa iqhosha, ungaqhuba isicelo sakho kwindawo eyenziweyo okanye uyithumele kwiprojekthi ekujoliswe kuyo. Ikhowudi eveliswe kwi-GUI Guider inokongezwa ngokulula kwiprojekthi yakho, ikhawulezisa inkqubo yophuhliso kwaye ikuvumela ukuba wongeze ngaphandle komthungo ujongano lomsebenzisi olufakwe kwisicelo sakho. I-GUI Guider ikhululekile ukusebenzisa ngenjongo ye-NXP ngokubanzi kunye ne-crossover MCUs kwaye iquka iitemplates zeprojekthi eyakhelweyo kwiiplatifti ezininzi ezixhaswayo. Ukuze ufunde kabanzi malunga ne-LVGL kunye nophuhliso lwe-GUI kwi-GUI Guider, khangela iLayibrari yokuKhanya kunye ne-Versatile Graphics Library kunye ne-GUI Guider.
Indawo yophuhliso
Okokuqala, lungiselela kwaye usete i-hardware kunye nemeko yesoftware yokuphumeza i-example kwisakhelo.
Ubume behardware
Ubume behardware bumiselwe ukuqinisekisa i example:
- Ikhithi yophuhliso ye-HMI ehlakaniphile esekwe kwi-NXP i.MX RT117H (ikhithi ye-SLN_TLHMI_IOT)
- I-SEGGER J-Link ene-9-pin Cortex-M i-adapter kunye ne-V7.84a okanye inguqulelo entsha yomqhubi
Indawo yesoftware
Ubume besoftware bumiselwe ukuphuhlisa i-example:
- I-MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – umzample khowudi yenqaku lesicelo sesibini njengesiseko sesoftware yophuhliso. Ukuze ufumane iinkcukacha, bona https://mcuxpresso.nxp.com/appcodehub.
- I-RT1170 SDK V2.13.0 - njengomthombo wekhowudi yophuhliso.
- I-SLN-TLHMI-IOT software V1.1.2 - ikhowudi yomthombo we-HMI ehlakaniphile ekhutshwe kwindawo yokugcina i-NXP ye-GitHub njengomthombo wekhowudi yophuhliso. Ukufumana iinkcukacha, bona: GitHub - NXP/mcu-smhmi kwi-v1.1.2
Ngeenkcukacha malunga nokufunyanwa kunye nolungiselelo lwemekobume yesoftware, bona: Ukuqalisa nge-SLN-TLHMI-IOT.
Umbono woyilo kwisakhelo
Umbono woyilo lwesakhelo uboniswe kuMfanekiso 2. Umbono we-algo HAL (OASIS_HAL) unezi nkqubo zingezantsi:
- Yenza ukubhaliswa kobuso kunye nokuqatshelwa nge-AI & ML yombono we-algorithm imodeli emva kokufumana iziganeko ezinxulumene nemveliso ye-UI HAL. Yazisa iziphumo zentelekelelo ukusuka kwimodeli ye-algorithm ukuya kwimveliso ye-UI HAL.
- Ufikelelo (yongeza, cima...) ugcino lweenkcukacha zobuso olusekwe kokuncinci file inkqubo ngokubiza i-APIs ye-FaceDB HAL emva kokufumana iziganeko ezinxulumene nemveliso ye-UI HAL.
- Cela isakhelo sevidiyo yekhamera kwi-HAL yekhamera xa ubhalisa ubuso kunye nokuqaphela.
Ukuphumeza ukunakwa kobuso kwisakhelo
I-LVGL GUI yokwaziwa ubuso example (example ibonelelwe kamva) kwisakhelo siphunyezwa ngokusekwe kwi-exampiikhowudi zokuPhumeza i-LVGL GUI Camera Preview kwiNkqubo-sikhokelo (uxwebhu AN14147).
Ukubonisa ukunakwa kobuso kwi-exampLe, umsebenzi osisiseko we-GUI app (jonga isikrini esiphambili kuMfanekiso 3) uyilwe njengoko kuchazwe ngezantsi:
- Usetyenziso lwe-GUI lubangela ubhaliso lobuso okanye isiganeko sokuqondwa kwimveliso ye-UI HAL xa ucofa iqhosha loBhaliso okanye ukuQondwa. Kwaye imveliso ye-UI HAL yazisa isiganeko sokongeza umsebenzisi kumbono we-algo HAL emva kokuba ukubhaliswa kobuso kuphumelele.
- Usetyenziso lwe-GUI lubangela isiganeko sokucinywa komsebenzisi kwimveliso ye-UI HAL xa ucofa iqhosha Cima uMsebenzisi emva kokuba ubuso bomsebenzisi buvunyiwe.
- Usetyenziso lwe-GUI lubangela umsitho wokumisa i-oasis algo ibaleka kwimveliso ye-UI HAL xa ucofa isikrini ngaphandle kwamaqhosha kunye nemifanekiso.
Lungisa iphakheji yesoftware yokuphunyezwa kwe-example.
- Cola isiseko sesoftware lvgl_gui_camera_preview_cm7. Guqula igama leprojekthi kunye neyona nto iphambili fileigama ukuya lvgl_gui_face_rec_cm7.
- Isakhelo siyadingeka ukuba sihlaziywe kwisoftware njengoko iikhowudi zomthombo wesiseko sesiseko ziqale ukuba zisesidlangalaleni kwi-GitHub ukusuka kwinguqulo 1.1.2.
- Buyisela ifolda yesakhelo kunye nekopi ye-V1.1.2 evela kwi-GitHub ngaphandle kwe files fwk_log.h kunye ne-fwk_common.h phantsi kwe-inc\ njengoko ziguqulelwe kuthotho lwenqaku lesicelo. Imisebenzi iboniswe kuMfanekiso 4:
- Cima ifolda yesikhokelo_cm7 phantsi kweqela le-libs kwaye ususe i-framework_cm7 yelayibrari kunye nendlela yokukhangela elungiselelwe kwiProjekthi> Iipropati> C / C ++ Yakha> izicwangciso> Izicwangciso zeSixhobo> I-MCU C ++ Linker> Iilayibrari ekubeni ikhowudi yomthombo wesiseko inikwe.
Yenza umsebenzi wokuqonda ubuso kwisakhelo
Uphawu lokuqaphela ubuso lwakhiwe kwimodeli ye-algorithm yombono we-ML enikezelwe njengethala leencwadi elingatshintshiyo - ithala leencwadi le-oasis lite lexesha le-NXP. Ithala leencwadi lincinci, lisebenza kakuhle kakhulu, lilungiselelwe, kwaye lilungiselelwe ithala leencwadi le-AI. Imodeli ibandakanya ukubonwa kobuso, ukubonwa kobuso, ukubonwa kweglasi, kunye nokubonwa kobomi. Inika ikakhulu i-API OASISLT_run_extended () ukusebenzisa umbhobho wokuqonda ubuso ngelixa uhlaziywa iziphumo zomfowuneli ngesiganeko sokufowuna, kwaye udibanise/uhlaziywe/ucime ubuso kugcino lwedatha ngokusebenzisa umnxeba wesiseko sesiseko sobuso emva kokuchaza ulwazi lwesakhelo somthombo, ukufowuna, kunye nenkumbulo. pool esetyenziswa lithala ngokubiza enye API OASISLT_init () ekuqaliseni. Ukubizwa kwee-APIs kunye nemisebenzi yokufowuna iphunyezwa kumbono we-algo HAL yesakhelo.
Yongeza ilayibrari yemodeli ye-algo
- Khuphela i-oasis yesiqulathi seefayili equlethe ilayibrari kunye nesihloko esihambelanayo file ukusuka kwi-smart HMI\coffee_machine\cm7\libs\ kwiincwadi ezineenkcukacha ze exampkunye SW.
- Yongeza indlela yokukhangela yeheda file kwiProjekthi > Iipropati > C/C++ Yakha > useto > Useto lweSixhobo > Umqokeleli we-MCU C > Iquka kunye ne-MCU C++ compiler > Iquka: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- Yongeza i-lib kunye nendlela yokukhangela kwiProjekthi > Iipropati > C/C++ Yakha > useto > MCU C+ + Linker > Amathala eencwadi: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” kunye nengcaciso enkulu ukuya vula inqaku kwiProjekthi> Iipropati> C/C++ Yakha> useto> Useto lweSixhobo> Umqokeleli we-MCU C> Iprosesa yangaphambili kunye ne-MCU C++ compiler> Preprocessor: SMART_TLHMI_2D
Yenza umbono algo algo
Umbono we-algo HAL uqhuba imodeli ye-algo yombono ukuba usebenze kwaye uphendule iziphumo kwi-UI ye-HAL ye-HAL emva kokufumana iziganeko kuyo.
Ukuyenza isebenze, fanisa umqhubi ofanayo we-HAL file apho le misebenzi ingezantsi iphunyeziweyo:
- Ukuphumeza ukufowunelwa kwemisebenzi yedatabase yobuso kunye nokuphatha imisitho.
- Qhuba umbono algo ukusebenza ngokubiza APIs kwithala oasis.
- Fikelela kwisiseko sedatha yobuso bomsebenzisi kunye nesiseko sedatha yeapp (ayifuneki kwi-example).
- Fumana iziganeko kwaye uthumele iziphumo kwimveliso ye-UI HAL.
Imisebenzi emikhulu yokuphumeza i-HAL ye-exampzezi:
- Cofa umqhubi ofanayo we-HAL file kwaye utshintshe amagama anxulumeneyo.
- Susa iikhowudi ezinxulumene nokusebenza kwedatha ye-app.
- Hlaziya iinkcazelo kunye nemisebenzi yokuphatha iziganeko ukusuka kwimveliso ye-UI HAL ngokwe-exampuyilo.
- Yongeza ulungelelwaniso olufunekayo ekuqalisweni kwe-oasis.
Amanyathelo aneenkcukacha anje ngasezantsi:
- Clone hal_vision_algo_oasis_coffeemachine.c. Guqula i fileigama ukuya ku-hal_vision_algo_oasis_guifacerec.c. Kwaye endaweni yonke imitya CoffeeMachine nge GUIFaceRec kwi file.
- Susa iikhowudi eziqulathe umtya coffeedb (hayi imeko ebuthathaka) ezinxulumene kugcino lwedatha app, for example, #bandakanya i-hal_sln_coffeedb.h.
- Guqula umsebenzi HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() yokuphatha iziganeko kwimveliso ye-UI HAL.
- Guqula inkcazo yesiganeko i-kEventFaceRecId_RegisterCoffeeSelection ukuya kwi-kEventFaceRecId_RegisterUserFace kunye nomtya wesakhiwo i-regCoffeeSelection ukuya kwi-regGUIFaceRec yokuphatha isiganeko ukongeza idatha yenqaku lobuso obutsha kuvimba wedatha.
- Ukubonisa inkqubo esemgangathweni yezenzo zokuqaphela ubuso kwi-example, lungisa ukuphathwa kwimeko ye kEventFaceRecID_OasisSetState ngeenkcazelo zamazwe:
- kOASISLiteState
- Ubhaliso lwe-kOASISLLiteState
- Uqwalaselo kOASISLiteState
- Kumisiwe
- Yongeza kwaye ulungise iinkcazo zeziganeko ezikhankanywe kwinyathelo elingasentla.
- Khuphela isihloko file smart_tlhmi_event_descriptor.h ukusuka kwi-smart HMI\coffee_machine \cm7\source\event_handlers\ kumthombo wefolda ye-exampkunye SW. Hlaziya i file njengoko kungezantsi:
- Guqula inkcazo yomsitho we-kEventFaceRecId_RegisterCoffeeSelection ukuya kwi-kEventFaceRecId_RegisterUserFace kuhlobo lwe-enum _event_smart_tlhmi_id kunye nomtya wesakhiwo regCoffeeSelection ukuya kwi-regGUIFaceRec kwisakhiwo _event_smart_tlhmi. Ke, tshintsha i-struct register_coffee_selection_event_t ye-regCoffeeSelection ukuya kwirejista_gui_facerec_event_t.
- Cima eminye imixholo esetyenziselwa usetyenziso lomatshini wekofu, umzekeloample, umgca wekhowudi malunga nelizwi: #bandakanya "hal_event_descriptor_voice.h".
- Yongeza iindidi ze-kOASISLiteState_Stopped kunye ne-kOASISLiteState_Running kuhlobo lwe-enum oasis_lite_state_t kwi-hal_vision_algo.h phantsi kwesakhelo>hal>umbono kwiprojekthi njengezantsi:
typedef enum _oasis_lite_state {- kOASISLiteState
- Ukubaleka, kOASISLiteState
- Kumisiwe, kOASISLiteState
- Ukuqatshelwa,
- kOASISLiteState
- Ubhaliso, kOASISLiteState
- Ukucinywa kobhaliso, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Bala
- Sebenzisa i-struct ehlaziyiweyo ngasentla oasis_lite_state_t ukucokisa ulwakhiwo oasis_state_event_t kwi hal_event_descriptor_face_rec.h phantsi kwesakhelo>hal>umbono kwiprojekthi njengezantsi: typedef struct _oasis_state_event_t {oasis_lite_state_t state; } oasis_state_event_t;
- Guqula yonke i-kEventInfo_Remote ukuya kwi-kEventInfo_Local yokuthumela iziganeko ukusuka kumbono we-algo i-HAL ukuya kwezinye ii-HAL ezisebenza kumbindi omnye njengondoqo omnye endaweni ye-dual-core isetyenziswa kwi-ex.ample.
- Yongeza kwaye ulungise izilungiso ezingezantsi zokuqaliswa kwe-oasis kwi-OASISLT_init():
- Yongeza iinkcazo ezinkulu kunye namacandelo enkumbulo yesakhelo sevidiyo kwibhodi_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__((icandelo(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __attribute__((ilungelelanisiwe(alignbytes)))
- Qwalasela isabelo sememori kwicandelo lememori elingasentla fb_sh_mem kwiProjekthi > Iipropati > C/C++ Yakha > Useto lwe-MCU oluboniswe kuMfanekiso 5:
- Yazisa i-global variable g_DTCOPBuf kwi-lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Qhubeka ukongeza iinkcazelo ezisetyenziswe koluguquko lungentla:
- Chaza eli candelo lingentla kwi board_define.h:
- #chaza AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- uphawu__((icandelo(“.bss.SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- uphawu__((ilungelelanisiwe(alignbytes)))
- Bandakanya okubhalwe ngasentla file hal_vision_algo.h equlathe inkcazo enkulu DTC_OPTIMIZE_BUFFER_SIZE kwi-app_config.h ibandakanywe kwi-lvgl_gui_face_rec_cm7.cpp.
- Yongeza iinkcazo ezinkulu kunye namacandelo enkumbulo yesakhelo sevidiyo kwibhodi_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- Cwangcisa ukuguquguquka kwe-s_debugOption ukuba yinyani ukuze ubonise ubume benkqubela phambili kulwazi lobuso.
- Yongeza indlela yokukhangela yeheda files yombono we-HAL kwiProjekthi> Iipropati>C/C++ Yakha> useto> Useto lweSixhobo> Umqokeleli we-MCU C> Iquka kunye ne-MCU C++ compiler> Iquka: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- Yongeza inkcazo engezantsi ukwenza umbono algo HAL kwi board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Yenza imveliso ye-UI HAL isebenze
Imveliso ye-UI HAL yazisa iziganeko kumbono we-algo HAL kwaye iphendula kwiziphumo ezithelekelelwayo ezivela kumbono we-algo HAL. Nge-GUI app, iziganeko ngokubanzi zibangelwa yi-app kwaye iziphumo ziboniswa kwi-app.
Ukuyenza isebenze, fanisa umqhubi ofanayo we-HAL file apho gabalala le misebenzi ingezantsi iphunyeziweyo:
- Yazisa imisitho yokuqondwa kobuso kunye nokufikelela kuluhlu lwedatha.
- Qalisa ukufowuna kwi-app ye-GUI ukuqalisa iziganeko.
- Phatha iziphumo zentelekelelo ezivela kwimodyuli ye-algo yombono.
- Bonisa inkqubo kunye neziphumo zeziganeko eziphathwayo kwi-UI ngebha yenkqubela phambili elawulwa ngezibali-xesha kunye noxande lwesikhokelo sobuso.
Imisebenzi emikhulu yokuphumeza i-HAL ye-exampezisetyenziswe kolu xwebhu zezi:
- Cofa umqhubi ofanayo we-HAL file kwaye utshintshe amagama anxulumeneyo.
- Susa iikhowudi ezinxulumene ne-app.
- Hlaziya imisebenzi yesaziso seziganeko kunye nempendulo yeziphumo ngokwe exampuyilo.
- Yongeza i-callbacks ye-GUI app ukuqala iminyhadala.
Amanyathelo aneenkcukacha anje ngasezantsi:
- Clone hal_output_ui_coffee_machine.c. Guqula i fileigama ukuya hal_ output_ui_guifacerec.c.
- Faka endaweni yazo zonke iintambo CoffeeMachine nge GUIFaceRec kwi file.
- Susa iikhowudi ezinxulumene ne-app - umatshini wekhofi.
- Susa imisebenzi WakeUp() kunye _StandBy() kunye neekhowudi ezinxulumeneyo (inokukhangela umtya wokuvuka kunye nokulinda kwazo).
- Susa kwangaphambiliview Iziganeko zemowudi zokuphatha iikhowudi ezinxulumeneyo kwi-HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Susa imisebenzi UI_xxx_Callback () kunye neekhowudi eziqulathe umtya gui_ kunye nekhusi elinxulumene ne GUI yomatshini wekofu ngaphandle kwe gui_set_virtual_face () yangaphambiliview uphawu lwemowudi.
- Susa zonke iikhowudi ezibandakanyekayo kunye ne-variables s_IsWaitingAnotherSelection kunye ne-s_IsWaitingRegisterSelection enxulumene ne-app yomatshini wekhofi.
- Susa iikhowudi ezinxulumene nelizwi, isandi kunye nolwimi. Umzekeloample:
- #bandakanya "hal_voice_algo_asr_local.h",
- #bandakanya "hal_event_descriptor_voice.h"
- Kwisaziso semisitho eyahlukeneyo, sebenzisa imisebenzi emitsha _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), kunye ne DeregisterGUIFaceRec() ebhekiselele kwimisebenzi _StopFaceRec(), _RegisterCoffeeSelection(), kunye nokuCima uKhetho lweKofi()e
- I _OutputManagerNotify() sebenzisa isiganeko esisisiseko umsebenzi wemveliso ukuthumela isiganeko kumbono algo HAL. Le misebenzi ingezantsi iyibiza ukuthumela iziganeko zayo.
- I-_SetFaceRec() ithumela isiganeko kEventFaceRecID_OasisSetState ukuqalisa umbono we-algo wobhaliso lobuso, ukuqondwa, kunye nokumisa i-algo.
- I-_RegisterGUIFaceRec() ithumela isiganeko i-kEventFaceRecId_RegisterGUIFaceRec echazwe kwi-smart_tlhmi_event_descriptor.h ukongeza idatha yenkalo yobuso kuvimba wedatha xa ubhalisa KULUNGILE.
- I-DeregisterGUIFaceRec() ithumela isiganeko kEventFaceRecID_DelUser ukucima idatha yefitsha yobuso kugcino lwedatha xa udlulisa ukuqondwa kobuso.
- Hlaziya iikhowudi ukuthatha iintshukumo ezihambelanayo ukuquka ukuhlaziya i GUI ngokubiza APIs kwi LVGL GUI app ukwenzela iziphumo ze inference yobhaliso lobuso kunye nokuqondwa kumsebenzi _InferComplete_Vision () ngokwe ex.ampsiyile. Umzekeloample, xa ukubhaliswa kobuso kuphumelela,
- Yeka ukubonisa inkqubela ngokufowunela _FaceRecProcess_Stop();
- Misa ubhaliso lobuso ngokufowunela _SetFaceRec(kOASISLiteState_Stopped);
- Bonisa iziphumo eziphumeleleyo kwi-GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Bhalisa idatha yobuso kuvimba weenkcukacha: _RegisterUserFace(s_UserId);
- Yongeza UI callback imisebenzi ukusingatha iziganeko: preview, ukubhaliswa kobuso, ukuqondwa, kunye nokucima umsebenzisi okubangelwe kwi-GUI. Umzekeloample, ubhaliso lobuso ukufowunela: akukho UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Kwaye yongeza imisebenzi _FaceRecProcess_Start() kunye _FaceRecProcess_Stop() ukubonisa inkqubela kunye nesimo kwiziganeko ezahlukeneyo kunye neziphumo.
- Hlaziya isibali-xesha ISR callback umsebenzi _SessionTimer_Callback() ukusingatha imeko yexesha lokuphuma ngokufowuna: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Yongeza ezi nkcazelo zingezantsi ukwenza i-UI imveliso ye-HAL kwi-board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Isaziso:
Ukubonisa imbonakalo yobuso ngcono, gcina umsebenzi ukubonisa inkqubo kunye neziphumo zokuqaphela ubuso kwimveliso ye-UI HAL. Umsebenzi uchazwe apha ngezantsi
- I-rectangle yesikhokelo sobuso ibonisa eluhlaza okwesibhakabhaka, kwaye ibha yenkqubela ibonisa inkqubela phambili xa uqala ukubhaliswa kobuso okanye ukuqaphela.
- Uxande lwesikhokelo sobuso sibonisa obomvu xa ukubhaliswa kobuso kuphumelela.
- Uxande lwesikhokelo sobuso sibonisa uhlaza xa ukuqondwa kobuso kuphumelela.
- Isikhokelo sobuso sixande sigcina eluhlaza okwesibhakabhaka, kwaye ibha yenkqubela ibonisa inkqubela epheleleyo xa isenzo singaphumeleli emva kokuphelelwa kwexesha. Ngelo xesha, yeka ukubhaliswa kobuso okanye ukuqatshelwa.
Ibar yenkqubela phambili kunye noxande lwesikhokelo sobuso zinikezelwa njengee-icon ezakhelwe kumbindi wesixhobo file izakucwangciswa kwiFlash. Izalathisi kwidatha ye icons kwi SDRAM zicwangciswe kumsebenzi LoadIcons(APP_ICONS_BASE) ebizwa kwimveliso ye UI HAL yokuqaliswa kwesixhobo kwimveliso ye UI HAL. Kufuneka iphumeze inkxaso ye icons yomsebenzi.
Sebenzisa inkxaso yeempawu
- Yakha uvimba odibanisa ii-icon kunye nemifanekiso esetyenziswa kwi-LVGL GUI app:
- Condeza iheader ezine ze icon files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, kunye virtual_face_red_420x426.h ukusuka HMI smart
\umatshini wekofu\umthombo\icons\ kwii icon ezintsha zefowulda phantsi kwesiqulathi seefayili sovimba we exampkunye SW. - Yongeza indlela yokukhangela ye icon ezine files kwicamera_preview_umthombo.txt file kwisiqulathi seefayili, ngokomzekeloample: icon ../resource/icons/process_bar_240x14.h
- Yenza ikhamera_preview_resource_build.bat ukwakha imifanekiso kunye nezixhobo ze icons ukuvelisa umgqomo file camera_preview_resource.bin kunye nolwazi file resource_information_table.txt (Jonga umfanekiso 6).
- Condeza iheader ezine ze icon files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, kunye virtual_face_red_420x426.h ukusuka HMI smart
- Chaza idilesi yokuqalisa kwi-SDRAM kunye nobukhulu bee-ayikhoni kwi-app_config.h. Idilesi iqala ecaleni kwemifanekiso ye-GUI app. Ubungakanani buveliswa kulwazi file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Hlaziya ubungakanani obabelweyo becandelo lenkumbulo elibizwa res_sh_mem ukuya ku-0x200000 ngokuyichaza kwakhona kwi-app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 kunye noseto oluhambelanayo kwiProjekthi > Iimpahla > C/C++ Yakha > Useto lwe-MCU.
- Yongeza ubungakanani be icon kubungakanani bubonke besixhobo esilayishwe ukusuka kwiFlash ukuya kwiSDRAM kumsebenzi APP_LoadResource () kwindawo engundoqo. file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Qaphela: Ukugqibezela umsebenzi wokuqaphela ubuso, inkxaso ye-LVGL GUI yosetyenziso iyafuneka. Imisebenzi ye-UI callback kwimveliso ye-UI HAL ibizwa ngokuba yi-LVGL GUI app yokuphatha iziganeko kwi-UI screen. Kwelinye icala, imveliso ye-UI HAL ibiza ii-APIs kwi-LVGL GUI app ukuhlaziya i-UI ukubonisa umphumo kunye nesimo. Uphuhliso lwe-LVGL GUI app luzimele kwaye lwaziswa kwiCandelo 4.3.
4.1.5 Qalisa izixhobo ze-HAL kunye nabaphathi ukulungiselela ukuqwalaselwa kobuso
Umbono owenziweyo we-algo we-HAL kunye ne-UI ye-HAL ye-HAL kunye nabaphathi babo baqalwa ngokuyintloko file
lvgl_gui_face_rec_cm7.cpp ilandela uguqulo lophuhliso kwisakhelo njengoko kungezantsi:
- Bandakanya okubhalwe ngasentla file ezinxulumene nabaphathi ababini be-HAL ngokongeza umgca wekhowudi:
- #bandakanya ” fwk_output_manager.h “
- #bandakanya "fwk_vision_algo_manager.h"
- Xela izixhobo ze-HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Bhalisa izixhobo ze-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
Yongeza inkxaso yedatabase yobuso kwisakhelo
Idatha yobuso obubhalisiweyo ifunyenwe kwisiseko sedatha yobuso egcinwe kwiFlash ngokusebenzisa kancinci file inkqubo. Amanyathelo okongeza inkxaso yesiseko sedatha yobuso achazwe ngezantsi.
Yongeza abaqhubi kugcino Flash
Khuphela umqhubi weFlexSPI weFlash interface files fsl_flexspi.c kunye fsl_flexspi.h, kunye nomqhubi we-encryption data files fsl_caam.c kunye fsl_caam.h ukusuka umendo SDK_2_13_0_MIMXRT1170-EVK\izixhobo \MIMRX1176\abaqhubi\ kwifolda yabaqhubi be-exampkunye SW.
Yongeza inkxaso yenqanaba lebhodi
- Yongeza iinkcazelo zeFlexSPI ezisetyenziselwa isixhobo seFlash ebhodini ebhodini.h:
- #chaza iBOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Khuphela abasebenzisi kunye nolungelelwaniso files yesixhobo seFlash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h phantsi kwendlela smart HMI\coffee_machine\cmsh_umthombo webhodi yeflash_cm7ampkunye SW.
- Susa uqwalaselo "Susa uvimba wokwakha" kwiC/C++ Yakha> Useto emva kokucofa ekunene files' igama kunye nokuvula iiPropati ukuze zikwazi ukwakhiwa kwiprojekthi.
- Guqula iheda equkiweyo fileigama sln_flash_config.h ukuya sln_flash_config_w25q256jvs.h kwi sln_flash_config.c kunye flexspi_nor_flash_ops.h.
- Cwangcisa umthombo wewotshi yeFlexSPI1 kwi file clock_config.c ibhekisa kumatshini wosetyenziso lwekofu.
Yongeza iadaptha kunye nenkxaso yenqanaba eliphakathi
- Khuphela i files sln_flash.c, sln_flash.h, sln_encrypt.c, kunye sln_encrypt.h njengabaqhubi beadaptha file inkqubo kunye app ukusuka umendo smart HMI\coffee_machine\cm7\source\ kumthombo oneenkcukacha example. Hlaziya entsha files:
- Susa uqwalaselo "Susa isibonelelo esivela kwisakhiwo" kuzo ukuze kwakhiwe.
- Tshintsha zonke iiheader ezibandakanyiweyo file igama sln_flash_config.h ukuya sln_flash_config_w25q256jvs.h.
- Khuphela isiqulathi seefayili fileinkqubo equlathe APIs encinane fileinkqubo kunye nomqhubi we-HAL ukusuka kwi-HMI ehlakaniphile \coffee_machine\cm7\source\ ukuya kwi-exampkunye SW. Kwaye uhlaziye ifolda entsha:
- Susa uqwalaselo "Susa isibonelelo kwisakhiwo" kuso sokwakha.
- Yongeza indlela yayo kwiisetingi zeprojekthi: “${workspace_loc:/${ProjName}/fileinkqubo}”
- Guqula iheda equkiweyo file igama sln_flash_config.h ukuya sln_flash_config_w25q256jvs.h kunye fica_definition.h ukuya app_config.h kwi file sln_flash_littlefs.h.
- Khuphela iifowulda ezincinci eziqulethe i-ware ephakathi - encinci fileinkqubo esuka kwindlela SDK_2_13_0_ MIMXRT1170-EVK\middleware\ ukuya kwi exampkunye SW. Kwaye uhlaziye ifolda entsha:
- Susa uqwalaselo "Susa isibonelelo kwisakhiwo" kuso sokwakha.
- Yongeza indlela yayo kwiisetingi zeprojekthi: "${workspace_loc:/${ProjName}/littlefs}"
Yongeza abaqhubi be-HAL
- Kukho izixhobo ezibini ze-HAL- file inkqubo kunye nesiseko sedatha yobuso i-HAL exhaswayo yefitsha yofikelelo lwesiseko sedatha kwaye sele iphunyeziwe kwisakhelo ngaphandle kotshintsho. Yenza ukuba zisebenze ngokongeza ezi nkcazelo zingezantsi kwi board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #chaza ENABLE_FACEDB
Kwaye utshintshe igama lesiseko sedatha le-example: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Yongeza inkxaso yenqanaba le-app
- Hlaziya eyona nto iphambili file lvgl_gui_face_rec_cm7.cpp:
- Bandakanya okubhalwe ngasentla file enxulumene neFlash file inkqubo HAL umphathi ngokongeza umgca ikhowudi: #include "fwk_flash.h"
- Xela kwaye ubhalise file inkqubo HAL isixhobo:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Phawula: I file inkqubo Isixhobo se-HAL kufuneka sibhaliswe phambi kokuba bonke abaphathi besixhobo baqaliswe kumsebenzi APP_InitFramework ().
- Fowunela umsebenzi BOARD_ConfigMPU () kwi APP_BoardInit () ukuqwalasela iMPU.
- Seta i file inkqubo isabelo kwiFlash kwi file app_config.h ngokuchaza iinkcazelo ezinkulu ezisetyenziswe kwi file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #chaza iFICA_FILE_SYS_SIZE (0x280000)
Ulungelelwaniso
Ezinye iikhowudi ezinxulumene neFlash ziyenziwa kwindawo ye-SRAM ITC ukwenzela ukusebenza okwaneleyo. Khuphela imibhalo yekhonkco equlathe uqwalaselo lwekhonkco kwimendo smart HMI\coffee_machine\cm7\ ukuya kwi-ex.ampkunye SW.
Sebenzisa i-LVGL GUI app
Ukuphuhliswa kwe-LVGL GUI app esekelwe kwisakhelo sibiza ii-APIs ezivela kwimveliso ye-UI HAL kwaye ibonelela ngee-APIs kwimveliso ye-UI HAL (Jonga iCandelo 4.1.3 lokuphunyezwa kwemveliso ye-UI HAL).
Nangona kunjalo, ukuphunyezwa okuneenkcukacha kwe-LVGL GUI app kuxhomekeke kwiimfuno kunye noyilo lwesicelo. Usetyenziso lwe GUI kule example uyilwe njengoko kuchaziwe ekuqaleni kweCandelo lesi-4.
Ngezantsi ziintshayelelo zokuphunyezwa:
- Iikhowudi ezilungelelanisiweyo ziphunyezwa kwi-custom.c kunye ne-custom.h enikezelwa nguMkhokeli we-GUI njengojongano phakathi kweprojekthi yoMkhokeli we-GUI kunye neprojekthi yenkqubo edibeneyo.
- Yongeza imisebenzi emitsha ebizwa gui_xxx() ngokwesiko.c ukufezekisa le misebenzi ingezantsi:
- Kwimveliso ye-UI HAL kunye ne-GUI app ukuhlaziya i-UI.
- Kwi-app ye-GUI yokuqalisa imicimbi ngokufowunela imisebenzi yokufowuna ye-UI evela kwimveliso ye-UI HAL.
Umzekeloample, umsebenzi omtsha gui_event_face_rec_action () ubiza UI callback imisebenzi ukusingatha omnye weziganeko zobhaliso lobuso, ukuqondwa kobuso kunye nokucima umsebenzisi okubangelwe kusetyenziso lwe-GUI xa iqhosha eliyelelene licofa.
Qaphela: Umsebenzi gui_set_virtual_face () ebizwa kwimveliso UI HAL yangaphambiliview indlela kufuneka iphunyezwe ngokwesiko.c:
- Clone umsebenzi gui_set_virtual_face() ukusuka smart HMI\coffee_machine\cm4\custom.c.
- Guqula igama lewijethi ekhaya_img_cameraPreview kwiscreen_img_camera_preview kumsebenzi.
- Phumeza imisebenzi ye-UI callback ngeprototype efanayo kubo bonke abakwimveliso ye-UI HAL phantsi kolawulo lwenkcazo enkulu #ifndef RT_PLATFORM ngokwesiko.c ngokuhambelana neprojekthi yoMkhokeli weGUI kuba le misebenzi kwimveliso ye-UI HAL ixhomekeke iqonga elizinzisiweyo. Ngokwesiko.c, baxhomekeke kwi-simulator kwi-GUI guider kwaye bazimele kwiqonga elifakwe ngaphakathi. Umzekeloample, ubhaliso lobuso ukufowunelwa luphunyeziwe ngezantsi kwi GUI Guider simulator eqhuba: #ifndef RT_PLATFORM void UI_Registration_Callback () { gui_hide_del_user_btn(yinyaniso); s_InAction = bubuxoki; buya }
Phawula: Jonga iprototype efanayo yomsebenzi owaziswa kwinyathelo lesi-6 leCandelo 4.1.3
Inkcazo enkulu RT_PLATFORM isetiwe kwizicwangciso zeprojekthi yeMCUXpresso njengoko kubonisiwe kuMfanekiso 7: - Xela yonke imisebenzi enegama elithi UI_xxx_Callback() kunye gui_xxx() ngokwesiko.h kwaye udibanise isiko.h esibandakanyiweyo kwi-smart_tlhmi_event_descriptor.h ukwabelana nge-GUI APIs kwimveliso ye-UI HAL.
- Yongeza imisebenzi emitsha ebizwa gui_xxx() ngokwesiko.c ukufezekisa le misebenzi ingezantsi:
- Phuhlisa i-GUI kwi-GUI Guider:
- Cola ikhamera yefolda kwangaphambiliview equlathe isoftware yeprojekthi yoMkhokeli weGUI kwincwadi eneenkcukacha gui_guider kwisiseko sesoftware lvgl_gui_camera_preview_cm7. Guqula igama eliyeleleneyo camera_preview ukujongana_ ne-ex entshaample.
- Khuphela oku kuhlaziyiweyo ngasentla custom.c kunye nesiko. h kwisoftware yeprojekthi ye-GUI entsha.
- Vula iprojekthi entsha ye-face_rec kwi-GUI Guider. Hlaziya ngolu hlobo lungezantsi:
- Yongeza iqhosha elitsha elinombhalo othi Cima uMsebenzisi. Yongeza iflegi Efihliweyo kuyo ukuze iqhosha lifihlwe xa usetyenziso lwe-GUI luqala.
- Yongeza umgca wekhowudi yokubiza i-API gui_event_face_rec_action () kunye ne-ID yesiganeko esahlukileyo iparameter kwi-"Released" ibangela kwiSimiselo seSigigaba sawo onke amaqhosha oBhaliso, ukuQaphela kunye nokucima uMsebenzisi ngokuqalisa iziganeko zokubhaliswa kobuso, ukuqaphela ubuso kunye nokucima umsebenzisi. Umzobo 8 ubonisa ikhowudi yomsitho weqhosha loBhaliso:
- Hlaziya ikhowudi eveliswe kwi-GUI Guider kwiprojekthi ye-MCUXpresso.
- Buyisela imixholo ngaphandle kwemifanekiso eneenkcukacha kwifolda eyenziwe yeprojekthi ye-MCUXpresso ye-SW kunye nezihambelanayo kwifolda eyenziwe yeprojekthi ye-GUI Guider SW.
Phawula: Ukuze ufumane iinkcukacha ezithe vetshe malunga nohlengahlengiso oluqalwe ngasentla, khangela i example software kwi https://mcuxpresso.nxp.com/appcodehub.
Uqinisekiso kunye example projekthi
Ukuze ufumane i-example software package equlathe izixhobo kunye nezixhobo zeli nqaku lesicelo, ndwendwela: https://mcuxpresso.nxp.com/appcodehub. Vula i-example projekthi kwi-MCUXpresso IDE. Yakha kwaye udwelise inkqubo ye-.axf file kwidilesi 0x30000000 kunye neprogram yomgqomo wemithombo file camera_preview_resource.bin kwidilesi 0x30800000.
I-LVGL GUI yokwaziwa ubuso example isebenza ngokwesiqhelo njengalapha ngezantsi:
- Phambiliview: Ngokunyusa amandla, imijelo yevidiyo ethathwe yikhamera ibonisa kwindawo ethile yekhamera yangaphambiliview kwiscreen se GUI. Ileyibhile yesimo ibonisa “Phambiview…”. Ngeenkcukacha, jonga uMzobo 3. Iqhosha elithi Cima uMsebenzisi lifihliwe. Xa ucofa indawo engaphandle kwamaqhosha kunye nemifanekiso, ibonisa i-preview chaza njengoku kungasentla emva kokuba ubhaliso lobuso okanye inyathelo lokwamkelwa liphelile.
- Ubhaliso:
- i-tartup: Xa iqhosha loBhaliso licofa, ubhaliso lobuso luqala. Ileyibhile yesimo iyatshintsha ukubonisa "Ubhaliso ...", uxande lwesikhokelo sobuso sibonisa okwesibhakabhaka, kwaye ibha yenkqubela iqala ukubonisa inkqubela phambili. Qinisekisa ukuba ubuso bomsebenzisi bubonakala kuxande lwesikhokelo sobuso obuluhlaza ukuze ubhalise.
- uccess: Ileyibhile yesimo ibonisa "Ubhaliso ... KULUNGILE" kunye nenombolo ye-ID yomsebenzisi obhalisiweyo, i-face guide rectangle iba bomvu ukuba ukubhaliswa kobuso kuphumelele ngaphambi kokuba inkqubela phambili ibonise ngokupheleleyo kwi-bar.
- Ukungaphumeleli -> Ixesha lokuphuma: Ileyibhile yesimo ibonisa "Ubhaliso ... Ixesha lokuphuma" ukuba ukubhaliswa kobuso lusahluleka xa inkqubela ibonisa ngokupheleleyo kwibar.
- Ukungaphumeleli -> Ukuphindaphinda: Ileyibhile yesimo ibonisa "Ubhaliso ... aluphumelelanga", unxantathu wesikhokelo sobuso uba luhlaza ukuba ubuso obubhalisiweyo buqatshelwe phambi kokuba inkqubela phambili ibonise ngokupheleleyo kwibar.
- ukuqonda:
- Ukuqalisa: Xa iqhosha loKwamkela licofa, ukuqondwa kobuso kuyaqala. Ileyibhile yesimo iyatshintsha ukubonisa "Uqwalaselo ...", uxande lwesikhokelo sobuso sibonisa blu, kwaye ibha yenkqubela iqala ukubonisa inkqubela phambili. Qinisekisa ukuba ubuso bomsebenzisi buboniswe kuxande lwesikhokelo sobuso obuluhlaza ukuze ubhalise.
- uccess: Ileyibhile yesimo ibonisa "Uqwalaselo... KULUNGILE" kunye nenombolo yesazisi esaziwayo somsebenzisi, uxande lwesikhokelo sobuso siba luhlaza ukuba ukuqondwa kobuso kuphumelele phambi kokuba inkqubela ibonise ngokupheleleyo kwibar. Kwinqanaba, iqhosha elithi Cima uMsebenzisi livela. Kuthetha ukuba umsebenzisi uvumelekile ukuba acinywe kuphela xa evunyiwe.
- ukuphumelela: Ileyibhile yesimo ibonisa "Uqwalaselo...Ixesha liphelile" ukuba ukuqondwa kobuso akusaphumelelanga xa inkqubela ibonisa ngokupheleleyo kwibar.
- Cima Umsebenzisi: Xa iqhosha elithi "Cima uMsebenzisi" licofa, emva kokuba ukuqondwa kobuso kuphumelele, ileyibhile yesimo iyatshintsha ukubonisa "Cima uMsebenzisi...Kulungile" kunye nesikhokelo sobuso uxande sibe luhlaza okwesibhakabhaka kunye nenkqubela phambili ebonisa igcwele kwibar. Iqhosha elithi Cima uMsebenzisi lifihliwe kwakhona. Ubuso/umsebenzisi obamkelweyo uyacinywa kuvimba weenkcukacha. Kuthetha ukuba lo buso/umsebenzisi akanakubonwa de abhaliswe kwakhona.
Qaphela malunga nekhowudi yemvelaphi kuxwebhu
ExampIkhowudi eboniswe kolu xwebhu inamalungelo okukhuphela alandelayo kunye nelayisenisi yeBSD-3-Gatya:
Ilungelo lokushicilela lika-2024 NXP Ukwabiwa kwakhona kunye nokusetyenziswa kwimvelaphi kunye neefom zokubini, kunye okanye ngaphandle kokuguqulwa, kuvunyelwe ukuba le miqathango ilandelayo ihlangatyeziwe:
- Ukusasazwa kwakhona kwekhowudi yemvelaphi kufuneka kugcine isaziso selungelo lokushicilela elingentla, olu luhlu lwemiqathango kunye nolu myalelo lulandelayo.
- Ukusasazwa kwakhona kwimo yokubini kufuneka kuvelise kwakhona isaziso selungelo lokushicilela elingentla, olu luhlu lwemiqathango kunye ne-disclaimer elandelayo kuxwebhu kunye/okanye ezinye izinto kufuneka zinikezelwe ngokusasazwa.
- Igama lomnini welungelo lokukhuphela okanye amagama abo banegalelo alinokusetyenziselwa ukuvuma okanye ukukhuthaza iimveliso ezivela kule software ngaphandle kwemvume ebhaliweyo yangaphambili.
LE SOFTWARE INIKEZELWA NGABAMNINI WE-COPYRIGHT NABABANDAKAZI “NJENGOKO ZINJALO” KUNYE NAYE NAYIPHI NA IZIQINISEKISO EZICHAKILEYO OKANYE EZICIKIWEYO, KUHLANGANISA, KODWA AKUMDAWU, IZIQINISEKISO EZIXINWEYO ZOKURHWETHWA NOKULUNGELA NGENJONGO ETHILE. AKUKHO MFANEKISO UMNTU WELUNGELO OKANYE UMNIKEZI UYA KUTHENGA UTHENGA NGALUPHI NA INDLELA ETHILE, ENGACHAPHAZANGA, ESIGANEKO, ESIKHETHEKILEYO, ESIYIMZEKELO, OKANYE OKUPHUMELELEYO (KUBANDAKANYA, KODWA AKUMDAWU, UKUTHENGA ITHUTYANA, INKONZO, INKONZO, INKONZO; IINZUZO OKANYE UKUPHAZAMISEKA KWESHISHINI) NANGONA NANGONA KUBANGELEKILEYO KUNYE NAKUYAYIPHI NA ITHIYORI YOBUXHOXO, NOBA KUKWISIVUMELWANO, UXANDUVA OLUQINISEKILEYO, OKANYE UKUBANDAKANYA OKANYE OKUNYE) EVELA NGAYO NAYIPHI NA IINDLELA EKUSETYENZISWA KWESI NGCEBISO, UMONAKALO.
Imbali yohlaziyo
Ulwazi olusemthethweni
Iingcaciso
Idrafti — Imo yoyilo kuxwebhu ibonisa ukuba umxholo usephantsi kohlaziyo lwangaphakathiview kwaye ngokuxhomekeke ekuvunyweni okusesikweni, okunokubangela uhlengahlengiso okanye ukongezwa. I-NXP Semiconductors ayinikezi naluphi na umelo okanye iziqinisekiso malunga nokuchaneka okanye ukugqibelela kolwazi olubandakanyiweyo kwidrafti yenguqulelo yoxwebhu kwaye ayiyi kuba nabutyala ngemiphumo yokusetyenziswa kolwazi olunjalo.
Ukuzihlangula
- Iwaranti encinci kunye noxanduva — Ulwazi olukolu xwebhu kukholelwa ukuba luchanekile kwaye luthembekile. Nangona kunjalo, i-NXP Semiconductors ayiniki naziphi na iinkcazo okanye iziqinisekiso, ezichazwe okanye ezichazwe, malunga nokuchaneka okanye ukuphelela kolwazi olunjalo kwaye akayi kuba nabutyala ngemiphumo yokusetyenziswa kolwazi olunjalo. I-NXP Semiconductors ayithathi xanduva lomxholo kolu xwebhu ukuba inikezelwe ngumthombo wolwazi ngaphandle kwe-NXP Semiconductors.
Akukho siganeko siya kuba noxanduva lwe-NXP Semiconductors kuwo nawuphi na umonakalo ongathanga ngqo, ongalindelekanga, owohlwayo, okhethekileyo okanye olandelelweyo (kubandakanywa - ngaphandle komda -ingeniso elahlekileyo, ukugcinwa okulahlekileyo, ukuphazamiseka kweshishini, iindleko ezinxulumene nokususwa okanye ukutshintshwa kwazo naziphi na iimveliso okanye iintlawulo zokusebenza kwakhona) nokuba okanye hayi loo monakalo usekwe kubugwenxa (kubandakanywa nokungakhathali), iwaranti, ukwaphulwa kwesivumelwano okanye nayiphi na ithiyori esemthethweni.
Nangona kukho nawuphi na umonakalo onokuthi umthengi awenze nangasiphi na isizathu, i-aggregate ye-NXP Semiconductors kunye netyala elongezelekayo kumthengi kwiimveliso ezichazwe apha ziya kuthintelwa ngokuhambelana neMiqathango kunye neemeko zentengiso ye-NXP Semiconductors. - Ilungelo lokwenza utshintsho - I-NXP Semiconductors inelungelo lokwenza utshintsho kulwazi olupapashwe kolu xwebhu, kubandakanywa ngaphandle kokunciphisa imilinganiselo kunye neenkcazo zemveliso, nangaliphi na ixesha kwaye ngaphandle kwesaziso. Olu xwebhu luthatha indawo kwaye luthatha indawo yalo lonke ulwazi olunikezelweyo phambi kokupapashwa apha.
- Ukufaneleka ukusetyenziswa - Iimveliso ze-NXP ze-Semiconductors aziyilwanga, zigunyazisiweyo okanye zigunyazisiweyo ukuba zilungele ukusetyenziswa kwinkxaso yobomi, ubomi obubalulekileyo okanye iinkqubo ezikhuselekileyo zokhuseleko okanye izixhobo, okanye kwizicelo apho ukungaphumeleli okanye ukungasebenzi kakuhle kwemveliso ye-NXP Semiconductors inokulindeleka ngokufanelekileyo ukuba ibangele ukwenzakala komntu, ukufa okanye ipropathi eqatha okanye umonakalo wokusingqongileyo. I-NXP Semiconductors kunye nabanikezeli bayo abamkeli uxanduva lokubandakanywa kunye / okanye ukusetyenziswa kweemveliso ze-NXP ze-Semiconductors kwezo zixhobo okanye izicelo kwaye ngoko ke ukufakwa kunye / okanye ukusetyenziswa kusengozini yomthengi.
- Usetyenziso — Usetyenziso oluchazwe apha kuyo nayiphi na kwezi mveliso zezemizekeliso kuphela. I-NXP Semiconductors ayenzi mboniso okanye iwaranti yokuba izicelo ezinjalo ziya kulungela ukusetyenziswa okuchaziweyo ngaphandle kovavanyo olongezelelweyo okanye ukuguqulwa.
Abathengi banoxanduva loyilo kunye nokusebenza kwezicelo zabo kunye neemveliso usebenzisa iimveliso ze-NXP Semiconductors, kunye ne-NXP Semiconductors ayamkeli uxanduva lwalo naluphi na uncedo kunye nezicelo okanye ukuyila kwemveliso yabathengi. Luxanduva lomthengi kuphela ukugqiba ukuba imveliso ye-NXP Semiconductors ifanelekile kwaye ifanelekile kwizicelo zomthengi kunye neemveliso ezicwangcisiweyo, kunye nesicelo esicwangcisiweyo kunye nokusetyenziswa komthengi wesithathu womthengi (abaxumi). Abathengi kufuneka babonelele ngoyilo olufanelekileyo kunye nezikhuselo zokusebenza ukunciphisa imingcipheko enxulumene nezicelo zabo kunye neemveliso. I-NXP Semiconductors ayilwamkeli naluphi na uxanduva olunxulumene naluphi na ukusilela, umonakalo, iindleko okanye ingxaki esekelwe kubo nabuphi na ubuthathaka okanye ukusilela kwizicelo zomthengi okanye iimveliso, okanye isicelo okanye ukusetyenziswa ngumthengi wesithathu (s). Umthengi unoxanduva lokwenza zonke iimvavanyo eziyimfuneko kwizicelo zomthengi kunye neemveliso zisebenzisa iimveliso ze-NXP Semiconductors ukuze kuthintelwe ukungagqibeki kwezicelo kunye neemveliso okanye kwesicelo okanye ukusetyenziswa ngabathengi beqela lesithathu lomthengi. I-NXP ayamkeli naluphi na uxanduva malunga noku. - Imigaqo nemiqathango yokuthengiswa kwezorhwebo -Iimveliso ze-NXP Semiconductors zithengiswa ngokuxhomekeke kwimigaqo jikelele kunye neemeko zentengiso yorhwebo, njengoko ipapashwe ku-https://www.nxp.com/profile/imimiselo, ngaphandle kokuba kuvunyelwene ngenye indlela kwisivumelwano esisemthethweni esibhaliweyo somntu ngamnye. Kwimeko apho isivumelwano somntu siqu sigqitywa kuphela imimiselo kunye neemeko zesivumelwano esichaphazelekayo ziya kusebenza. Ii-Semiconductors ze-NXP apha zichasa ngokucacileyo ukusetyenziswa kwemigaqo nemiqathango jikelele yomthengi ngokumalunga nokuthengwa kweemveliso ze-NXP Semiconductors ngumthengi.
- Ulawulo lokuthumela ngaphandle — Olu xwebhu kunye nezinto ezichazwe apha zinokulawulwa yimigaqo yolawulo lokuthumela ngaphandle. Ukuthumela ngaphandle kunokufuna isigunyaziso sangaphambili esivela kwabasemagunyeni abanobuchule.
- Ukufaneleka kokusetyenziswa kwiimveliso ezingezizo ezemoto - Ngaphandle kokuba olu xwebhu luchaza ngokucacileyo ukuba le mveliso ye-NXP ye-Semiconductors ifanelekile kwiimoto, imveliso ayifanelekanga ukusetyenziswa kweemoto. Ayinakufaneleka okanye ivavanyiwe ngokuhambelana novavanyo lweemoto okanye iimfuno zesicelo. I-NXP Semiconductors ayamkeli uxanduva lokubandakanywa kunye / okanye ukusetyenziswa kweemveliso ezingezizo ezemoto kwizixhobo zeemoto okanye izicelo.
Kwimeko apho umthengi asebenzise imveliso ukuyila kunye nokusetyenziswa kwizicelo zeemoto kwiinkcukacha zemoto kunye nemigangatho, umthengi (a) uya kusebenzisa imveliso ngaphandle kwewaranti ye-NXP Semiconductors 'yemveliso yezo zicelo zemoto, ukusetyenziswa kunye neenkcukacha, kunye ( b) nanini na xa umthengi esebenzisa imveliso kwizicelo zemoto ngaphaya kwemigaqo ye-NXP yeSemiconductors olunjalo olo setyenziso luya kuba sengozini yomthengi kuphela, kwaye (c) umthengi ukhusela ngokupheleleyo iiSemiconductors ze-NXP ngalo naliphi na ityala, umonakalo okanye amabango emveliso angaphumeleliyo ngenxa yoyilo kunye nokusetyenziswa komthengi. imveliso yezicelo zeemoto ngaphaya kwewaranti esemgangathweni ye-NXP Semiconductors kunye neenkcazo zemveliso ye-NXP Semiconductors. - Iinguqulelo — Inguqulelo engeyiyo eyesiNgesi (eguquliweyo) yoxwebhu, kubandakanywa neenkcukacha ezisemthethweni ezikolu xwebhu, zenzelwe ireferensi kuphela. Inguqulelo yesiNgesi iya kuphumelela kwimeko apho kukho ukungangqinelani phakathi kwenguqulelo eguqulelweyo neyesiNgesi.
- Ukhuseleko -Umthengi uyaqonda ukuba zonke iimveliso ze-NXP zinokuthi zixhomekeke kubuthathaka obungabonakaliyo okanye unokuxhasa imigangatho yokhuseleko olusekiweyo okanye iinkcukacha ezinemida eyaziwayo. Umthengi unoxanduva loyilo kunye nokusebenza kwezicelo kunye neemveliso kubomi babo bonke ukunciphisa isiphumo sobu buthathaka kwizicelo zabathengi kunye neemveliso. Uxanduva loMthengi lukwanwenwela nakwezinye iitekhnoloji ezivulekileyo kunye/okanye zobunini ezixhaswa ziimveliso ze-NXP ukuze zisetyenziswe kwizicelo zabathengi. I-NXP ayamkeli tyala kulo nakuphi na ukuba sesichengeni. Umthengi kufuneka ajonge rhoqo uhlaziyo lokhuseleko oluvela kwi-NXP kwaye alandele ngokufanelekileyo. UmThengi uya kukhetha iimveliso ezineempawu zokhuseleko ezihlangabezana nemithetho, imimiselo, kunye nemigangatho yesicelo esicetywayo kwaye enze izigqibo zoyilo lokugqibela malunga neemveliso zakhe kwaye unoxanduva kuphela lokuthobela zonke iimfuno ezisemthethweni, ezilawulayo kunye nezokhuseleko ezinxulumene neemveliso zayo, nokuba nalo naluphi na ulwazi okanye inkxaso enokuthi ibonelelwe yi-NXP.
I-NXP ineQela leeMpendulo zeMveliso yoKhuseleko lweMveliso (PSIRT) (ifikeleleke kwi-PSIRT@nxp.com) elawula uphando, ukunika ingxelo, kunye nokukhutshwa kwesisombululo kubuthathaka bokhuseleko lweemveliso ze-NXP.
I-NXP B.V. — I-NXP B.V. ayiyonkampani esebenzayo kwaye ayisasazi okanye ithengise iimveliso.
Iimpawu zokuthengisa
Qaphela: Zonke iimpawu ezikhankanyiweyo, amagama emveliso, amagama eenkonzo, kunye neempawu zorhwebo ziyipropathi yabanini bazo.
NXP -Igama eliphawulweyo kunye nelogo ziimpawu zorhwebo 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 — ziimpawu zorhwebo kunye/okanye iimpawu zorhwebo ezibhalisiweyo zeArm Limited (okanye iinkampani eziphantsi kwayo okanye amahlakani) e-US kunye/okanye kwenye indawo. Ubuchwephesha obunxulumeneyo bunokukhuselwa nangayiphi na okanye ngawo onke amalungelo awodwa omenzi wechiza, amalungelo oshicilelo, uyilo kunye neemfihlo zorhwebo. Onke Amalungelo Agciniwe.
- i.MX - luphawu lwentengiso ye-NXP BV
- J-Ikhonkco - luphawu lwentengiso ye-SEGGER Microcontroller GmbH.
I-Microsoft, i-Azure, kunye ne-ThreadX - ziimpawu zorhwebo zeqela le-Microsoft leenkampani.
Nceda uqaphele ukuba izaziso ezibalulekileyo malunga nolu xwebhu kunye nemveliso (ii)mveliso echazwe apha, zibandakanyiwe kwicandelo 'Iinkcukacha zoMthetho'.
© 2024 NXP BV
Ngolwazi oluthe vetshe, nceda undwendwele: https://www.nxp.com
- Umhla wokukhutshwa: 19 April 2024
- Isichongi soxwebhuInkcazo: AN14263
FAQ
Umbuzo: Yintoni eyona njongo yale mveliso?
A: Eyona njongo iphambili kukwenza umsebenzi wokuqonda ubuso usebenzisa imodeli ye-algorithm ye-AI&ML ene-LVGL GUI ex elula.ample kwibhodi SLN-TLHMI-IOT.
Q: Abaphuhlisi banokuzuza njani kweli nqaku lesicelo?
A: Abaphuhlisi banokufunda indlela yokuphumeza ukuqondwa kobuso kwisakhelo senkqubo ngenyathelo usebenzisa i-ex enikiweyoampkunye nokuqonda abaphathi besixhobo, izixhobo ze-HAL, kunye neendlela zesiganeko ezibandakanyekayo.
Amaxwebhu / Izibonelelo
![]() |
I-NXP AN14263 Ukuphumeza i-LVGL GUI yokuNakana koBuso kwi-Framewor [pdf] Isikhokelo somsebenzisi AN14263 Ukuphumeza i-LVGL GUI yokuNakana koBuso kwi-Framewor, AN14263, Phumeza i-LVGL GUI yokuNakana koBuso kwi-Framewor, i-LVGL GUI yokuNakana koBuso kwi-Framewor, ukuNakwa koBuso kwi-Framewor, i-Framewormewor |