nxp-logo

NXP AN14263 Ṣiṣe idanimọ oju LVGL GUI lori Framewor

NXP-AN14263-Ṣiṣe-LVGL-GUI Oju-Imọ-lori-ọja-Framewor

ọja Alaye

Awọn pato

  • Orukọ ọja: LVGL GUI Idanimọ Oju lori Ilana
  • Atunyẹwo iwe: Oṣu Kẹrin Ọjọ 1-19, Ọdun 2024
  • Awọn ọrọ-ọrọ: Idanimọ oju, LVGL GUI, Framework

Awọn ilana Lilo ọja

  1. Pariview
    Ọja yii jẹ ki awoṣe algorithm iran AI&ML fun idanimọ oju lori ilana kan lati ṣe iṣẹ idanimọ oju pẹlu LVGL GUI ex ti o rọrun.ample lori SLN-TLHMI-IOT ọkọ.
  2. Framework Loriview
    Sọfitiwia ojutu jẹ apẹrẹ ni ayika faaji ilana ti o pẹlu awọn oludari ẹrọ ti o ni iduro fun iṣakoso awọn ẹrọ, awọn ẹrọ HAL si awọn alaye abẹlẹ, ati awọn iṣẹlẹ fun ibaraẹnisọrọ laarin awọn ẹrọ oriṣiriṣi.
  3. Awọn ẹya ara ẹrọ
    Ọja naa ngbanilaaye fun imuse iṣẹ idanimọ oju nipasẹ iṣaaju kamẹraview loju iboju GUI pẹlu awọn bọtini lati fa iforukọsilẹ oju, idanimọ, ati yiyọ kuro. Iforukọsilẹ data oju ti wa ni ipamọ lori Flash nipasẹ a file eto.
  4. Ohun elo Akọsilẹ akoonu
    Akọsilẹ ohun elo ṣafihan iboju LVGL GUI pẹlu iṣaaju kamẹraview ati awọn bọtini fun oju-jẹmọ awọn sise. O ṣe iranlọwọ fun awọn olupilẹṣẹ loye ilana ati bii o ṣe le ṣe idanimọ oju ni lilo iṣaaju ti a peseample.

Pariview

NXP ti ṣe ifilọlẹ ohun elo idagbasoke ojutu kan ti a npè ni SLN-TLHMI-IOT ti o dojukọ awọn ohun elo HMI ọlọgbọn. O jẹ ki HMI ọlọgbọn pẹlu iran ML, ohun, ati awọn aworan UI ti a ṣe lori NXP i.MX RT117H MCU kan. Da lori SDK, sọfitiwia ojutu jẹ itumọ lori apẹrẹ ti a pe ni ilana ti o ṣe atilẹyin awọn apẹrẹ rọ ati isọdi ti iran ati awọn iṣẹ ohun. Lati ṣe iranlọwọ fun awọn olumulo lati lo pẹpẹ sọfitiwia dara julọ, diẹ ninu awọn iwe ipilẹ ti pese, fun example, awọn software idagbasoke olumulo itọsọna. Itọsọna naa ṣafihan apẹrẹ sọfitiwia ipilẹ ati faaji ti awọn ohun elo ti o bo gbogbo awọn paati ti ojutu pẹlu ilana lati ṣe iranlọwọ fun awọn olupilẹṣẹ ni irọrun ati ni imunadoko awọn ohun elo wọn nipa lilo SLN-TLHMI-IOT.
Fun awọn alaye diẹ sii nipa ojutu ati awọn iwe aṣẹ ti o yẹ, ṣabẹwo si web oju-iwe ti NXP EdgeReady Smart HMI Solution Da lori i.MX RT117H pẹlu ML Vision, Voice, and Graphical UI. Sibẹsibẹ, ko tun rọrun fun awọn olupilẹṣẹ lati ṣe imuse awọn ohun elo HMI ọlọgbọn wọn ti n tọka si awọn itọsọna ipilẹ wọnyi. Orisirisi awọn akọsilẹ ohun elo ni a gbero lati ṣe iranlọwọ ikẹkọ idagbasoke lori ilana ni igbese nipa igbese. Akọsilẹ ohun elo yii da lori Ṣiṣe LVGL GUI Kamẹra Preview lori Framework (iwe AN14147). Akọsilẹ ohun elo yii ṣe apejuwe bi o ṣe le mu awoṣe algorithm iran AI&ML ṣiṣẹ fun idanimọ oju lori ilana lati ṣe iṣẹ idanimọ oju nipasẹ iṣaaju kamẹraview loju iboju GUI pẹlu LVGL GUI ti o rọrunample lori SLN-TLHMI-IOT ọkọ. Ninu akọsilẹ ohun elo, example ṣafihan iboju LVGL GUI pẹlu iṣaaju kamẹra kanview ati diẹ ninu awọn bọtini lati ma nfa iforukọsilẹ oju, idanimọ, ati yiyọ kuro. Awọn data oju ti o forukọsilẹ ti wa ni ipamọ lori Flash nipasẹ diẹ file eto.

Ni ipele giga, akọsilẹ ohun elo ni awọn akoonu inu isalẹ:

  • Mu ẹya idanimọ oju ṣiṣẹ lori ilana.
  • Ṣafikun atilẹyin oju data oju lori ilana nipasẹ file eto lori Flash.
  • Ṣe imuse ohun elo LVGL GUI. Nipasẹ awọn ifihan ti o wa loke, iwe yii ṣe iranlọwọ fun awọn olupilẹṣẹ lati:
  • Loye ilana ati sọfitiwia ojutu HMI ọlọgbọn diẹ sii jinna.
  • Dagbasoke idanimọ oju AI&ML wọn lori ilana pẹlu ohun elo LVGL GUI.

Ilana ti pariview
Sọfitiwia ojutu jẹ apẹrẹ akọkọ ni ayika lilo faaji ilana ti o ni ọpọlọpọ awọn ẹya oriṣiriṣi:

  • Awọn alakoso ẹrọ – apakan mojuto
  • Hardware Abstraction Layer (HAL) Awọn ẹrọ
  • Awọn ifiranṣẹ / Awọn iṣẹlẹ

Bi o han ni Figure 1, awọn loriview Ilana ti ilana naa jẹ:

Awọn alakoso ẹrọ jẹ iduro fun ṣiṣakoso awọn ẹrọ ti eto naa lo. Iru ẹrọ kọọkan (titẹwọle, iṣelọpọ, ati bẹbẹ lọ) ni oluṣakoso ohun elo iru-pato tirẹ. Pẹlu oluṣakoso ẹrọ ti o bẹrẹ lẹhin ti awọn ẹrọ ti forukọsilẹ si rẹ, o duro ati ṣayẹwo ifiranṣẹ kan lati gbe data si awọn ẹrọ ati awọn alakoso miiran lẹhin ipilẹṣẹ ati bẹrẹ awọn ẹrọ ti o forukọsilẹ. Awọn ẹrọ HAL ti wa ni kikọ lori oke koodu awakọ ipele-isalẹ, ṣe iranlọwọ lati mu oye koodu pọ si nipa sisọ ọpọlọpọ awọn alaye abẹlẹ.

Awọn iṣẹlẹ jẹ ọna nipasẹ eyiti alaye ti sọ laarin awọn ẹrọ oriṣiriṣi nipasẹ awọn alakoso wọn. Nigbati iṣẹlẹ kan ba jẹ okunfa, ẹrọ ti o gba iṣẹlẹ ni akọkọ sọ iṣẹlẹ yẹn si oluṣakoso rẹ, lẹhinna o sọ fun awọn alakoso miiran ti a yan lati gba iṣẹlẹ naa.

NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (1)

Apẹrẹ ayaworan ti ilana naa da lori awọn ibi-afẹde akọkọ mẹta:

  1. Irọrun-ti-lilo
  2. Ni irọrun / Gbigbe
  3. Iṣẹ ṣiṣe

Ilana naa jẹ apẹrẹ pẹlu ibi-afẹde ti iyara akoko si ọja fun iran ati awọn ohun elo ikẹkọ ẹrọ miiran. Lati rii daju akoko iyara kan si ọja, o ṣe pataki pe sọfitiwia funrararẹ rọrun lati ni oye ati yipada. Mimu ibi-afẹde yii ni lokan, faaji ti ilana jẹ rọrun lati yipada laisi ihamọ, ati laisi wiwa ni idiyele iṣẹ ṣiṣe.
Fun alaye diẹ sii nipa ilana, wo Smart HMI Itọsọna olumulo Idagbasoke Software (iwe MCU-SMHMI-SDUG).

Imọlẹ ati Ile-ikawe Awọn aworan Apọpọ (LVGL)
LVGL (Imọlẹ ati Ile-ikawe Awọn aworan Wapọ) jẹ ọfẹ ati ile-ikawe awọn aworan orisun ṣiṣi ti n pese ohun gbogbo ti o nilo lati ṣẹda GUI ti a fi sinu pẹlu awọn eroja ayaworan irọrun-lati-lo, awọn ipa wiwo ẹlẹwa ati ifẹsẹtẹ iranti kekere.

GUI Itọsọna
Itọsọna GUI jẹ ohun elo idagbasoke wiwo olumulo ayaworan ore-olumulo lati NXP ti o jẹ ki idagbasoke iyara ti awọn ifihan didara giga pẹlu ile ikawe awọn aworan LVGL-ìmọ. Olootu fa ati ju silẹ Itọsọna GUI jẹ ki o rọrun lati lo ọpọlọpọ awọn ẹya ti LVGL gẹgẹbi awọn ẹrọ ailorukọ, awọn ohun idanilaraya, ati awọn aza lati ṣẹda GUI pẹlu o kere tabi ko si ifaminsi rara.

Pẹlu titẹ bọtini kan, o le ṣiṣe ohun elo rẹ ni agbegbe afarawe tabi gbejade si iṣẹ akanṣe kan. Koodu ti ipilẹṣẹ lati Olutọsọna GUI le ni irọrun ṣafikun si iṣẹ akanṣe rẹ, yiyara ilana idagbasoke ati gbigba ọ laaye lati ṣafikun ni wiwo olumulo ti a fi sinu ohun elo rẹ lainidi. Itọsọna GUI jẹ ọfẹ lati lo pẹlu idi gbogbogbo NXP ati awọn MCU adakoja ati pẹlu awọn awoṣe iṣẹ akanṣe ti a ṣe sinu fun ọpọlọpọ awọn iru ẹrọ atilẹyin. Lati kọ ẹkọ diẹ sii nipa idagbasoke LVGL ati GUI lori Itọsọna GUI, ṣayẹwo Imọlẹ ati Ile-ikawe Awọn aworan Apọpọ ati Itọsọna GUI.

Idagbasoke ayika

Ni akọkọ, mura ati ṣeto agbegbe ohun elo ati sọfitiwia fun imuse iṣaajuample lori ilana.

Hardware ayika
Awọn hardware ayika ti ṣeto soke fun a mọ daju awọn Mofiample:

  • Ohun elo idagbasoke HMI ọlọgbọn ti o da lori NXP i.MX RT117H (ohun elo SLN_TLHMI_IOT)
  • SEGGER J-Link pẹlu ohun ti nmu badọgba Cortex-M 9-pin ati V7.84a tabi ẹya tuntun ti awakọ

Agbegbe sọfitiwia
Ayika sọfitiwia ti ṣeto fun idagbasoke example:

  • MCUXpresso IDE V11.7.0
  • GUI Itọsọna V1.6.1-GA
  • lvgl_gui_camera_preview_cm7 – apẹẹrẹampkoodu le ti akọsilẹ ohun elo keji bi sọfitiwia ipilẹ ti idagbasoke. Fun alaye, wo https://mcuxpresso.nxp.com/appcodehub.
  • RT1170 SDK V2.13.0 - bi awọn oluşewadi koodu fun idagbasoke.
  • Sọfitiwia SLN-TLHMI-IOT V1.1.2 – smart HMI orisun koodu tu lori NXP GitHub ibi ipamọ bi awọn orisun koodu fun idagbasoke. Fun awọn alaye, wo: GitHub – NXP/mcu-smhmi ni v1.1.2

Fun awọn alaye nipa gbigba ati iṣeto ti agbegbe sọfitiwia, wo: Bibẹrẹ pẹlu SLN-TLHMI-IOT.

Iran faaji lori ilana

Awọn faaji iran lori ilana ti han ni Figure 2. Awọn iran algo HAL (OASIS_HAL) ni awọn ilana ni isalẹ:

  • Ṣe iforukọsilẹ oju ati idanimọ nipasẹ awoṣe algorithm iran AI&ML lẹhin gbigba awọn iṣẹlẹ ti o jọmọ lati UI HAL ti o wu jade. Ṣe akiyesi awọn abajade itọkasi lati awoṣe algorithm si UI HAL ti o wu jade.
  • Wiwọle (fikun, paarẹ…) aaye data ẹya oju ti o da lori diẹ file eto nipa pipe awọn API ti FaceDB HAL lẹhin gbigba awọn iṣẹlẹ ti o jọmọ lati UI HAL ti o wu jade.
  • Beere fireemu fidio kamẹra lati HAL kamẹra nigbati o ba n ṣe iforukọsilẹ oju ati idanimọ.

NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (3)

Ṣiṣe idanimọ oju lori ilana

LVGL GUI idanimọ ojuample (example ti pese nigbamii) lori ilana ti wa ni imuse da lori awọn example awọn koodu ti imuse LVGL GUI kamẹra Preview lori Framework (iwe AN14147).

Fun afihan idanimọ oju ni exampLe, iṣẹ ipilẹ ti ohun elo GUI (wo iboju akọkọ ni Nọmba 3) jẹ apẹrẹ bi a ti ṣalaye ni isalẹ:

  • Ohun elo GUI nfa iforukọsilẹ oju tabi iṣẹlẹ idanimọ si UI HAL ti o wu jade nigba titẹ bọtini Iforukọsilẹ tabi Idanimọ. Ati pe UI HAL ti o jade ṣe akiyesi iṣẹlẹ ti fifi olumulo kan kun si iran algo HAL lẹhin iforukọsilẹ oju ti ṣaṣeyọri.
  • Ohun elo GUI nfa iṣẹlẹ ti piparẹ olumulo kan si UI HAL ti o wu jade nigbati o ba tẹ bọtini Parẹ olumulo lẹhin ti idanimọ oju olumulo naa.
  • Ohun elo GUI nfa iṣẹlẹ ti idaduro oasis algo nṣiṣẹ si UI HAL ti o wu jade nigba titẹ iboju ni ita awọn bọtini ati awọn aworan.

NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (10)

Mura software package fun imuse ti example.

  • Oniiye sọfitiwia ipilẹ lvgl_gui_camera_preview_cm7. Yi ise agbese orukọ ati akọkọ fileorukọ to lvgl_gui_face_rec_cm7.
  • Ilana naa nilo lati ni imudojuiwọn ni sọfitiwia bi awọn koodu orisun fun ipilẹ ilana ti bẹrẹ lati jẹ gbangba lori GitHub lati ẹya 1.1.2.
  • Rọpo folda ilana pẹlu ẹda V1.1.2 lati GitHub ayafi fun awọn files fwk_log.h ati fwk_common.h labẹ inc bi wọn ti ṣe atunṣe fun jara ti akọsilẹ ohun elo. Awọn iṣẹ ṣiṣe ti han ni aworan 4:NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (11)
  • Pa ilana folda_cm7 kuro labẹ ẹgbẹ libs ki o yọ ilana ile-ikawe_cm7 kuro ati ọna wiwa rẹ ti a tunto ni Ise agbese> Awọn ohun-ini> C / C ++ Kọ> eto> Eto Ọpa> MCU C ++ Linker> Awọn ile-ikawe niwon koodu orisun ti mojuto ti pese.

Mu ẹya idanimọ oju ṣiṣẹ lori ilana
Ẹya idanimọ oju jẹ itumọ lori awoṣe algorithm iran ML ti a pese bi ile-ikawe aimi - ile-ikawe akoko asiko oasis lite nipasẹ NXP. Ile-ikawe jẹ aami kekere, ti o munadoko pupọ, adani, ati ile-ikawe AI iṣapeye. Awoṣe naa pẹlu wiwa oju, idanimọ oju, wiwa gilasi, ati wiwa igbesi aye. O pese ni akọkọ API OASISLT_run_extended () lati ṣiṣẹ opo gigun ti idanimọ oju lakoko ti o n ṣe imudojuiwọn awọn abajade si olupe nipasẹ awọn ipe iṣẹlẹ, ati ṣafikun/imudojuiwọn/parẹ awọn oju ni ibi ipamọ data nipasẹ awọn ipe data oju data lẹhin sisọ alaye fireemu orisun, awọn ipe pada, ati iranti adagun ti a lo nipasẹ awọn ìkàwé nipa ipe miiran API OASISLT_init () on initialization. Ipe ti awọn API ati awọn iṣẹ ipe ti wa ni imuse ni iran algo HAL ti ilana.

Fi iran algo awoṣe ìkàwé

  1. Daakọ oasis folda ti o ni ile-ikawe ati akọsori ti o jọmọ file lati smart HMI \coffee_machine \ cm7 \ libs \ sinu awọn libs folda ti example SW.
  2. Ṣafikun ọna wiwa ti akọsori file ni Ise agbese> Awọn ohun-ini> C/C++ Kọ> eto> Eto irinṣẹ> Akopọ MCU C> Pẹlu ati akopọ MCU C++> Pẹlu: “${workspace_loc:/${ProjName}/libs/oasis/include}”
  3. Ṣafikun lib ati ọna wiwa rẹ lori Project> Awọn ohun-ini> C/C ++ Kọ> eto> MCU C + + Linker> Awọn ile-ikawe: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” ati itumọ macro si mu ẹya ara ẹrọ ṣiṣẹ lori Ise agbese> Awọn ohun-ini> C / C ++ Kọ> eto> Eto irinṣẹ> MCU C alakojo> Preprocessor ati MCU C ++ alakojo> Preprocessor: SMART_TLHMI_2D

Mu iran algo HAL ṣiṣẹ
Iran algo HAL ṣe awakọ awoṣe algo iran lati ṣiṣẹ ati dahun awọn abajade si UI o wu HAL lẹhin gbigba awọn iṣẹlẹ lati ọdọ rẹ.

Lati muu ṣiṣẹ, kọlu awakọ HAL ti o jọra file nibiti a ti ṣe imuse awọn iṣẹ isalẹ:

  • Ṣe imuse awọn ipe pada ti awọn iṣẹ data oju data ati mimu awọn iṣẹlẹ mu.
  • Wakọ algo iran lati ṣiṣẹ nipa pipe awọn API ti ile-ikawe oasis.
  • Wọle si aaye data oju olumulo ati ibi ipamọ data app (ko nilo ni example).
  • Gba awọn iṣẹlẹ lati ati firanṣẹ awọn abajade si iṣelọpọ UI HAL.

Awọn iṣẹ pataki lati ṣe HAL fun example jẹ:

  • Clone iru awakọ HAL ti o wa tẹlẹ file ki o si yi awọn ibatan orukọ.
  • Yọ awọn koodu ti o ni ibatan si awọn iṣẹ data app.
  • Ṣe imudojuiwọn awọn itumọ ati awọn iṣẹ fun mimu awọn iṣẹlẹ lati inu UI HAL ti o wu jade fun iṣaajuample apẹrẹ.
  • Ṣafikun awọn atunto ti o nilo ni ipilẹṣẹ oasis.

Awọn igbesẹ alaye jẹ bi isalẹ:

  1. Clone hal_vision_algo_oasis_coffeemachine.c. Yipada awọn fileorukọ to hal_vision_algo_oasis_guifacerec.c. Ki o si ropo gbogbo awọn gbolohun ọrọ CoffeeMachine pẹlu GUIFAceRec ninu awọn file.
  2. Yọ awọn koodu ti o ni okun coffeedb (kii ṣe akiyesi ọran) ti o ni ibatan si ibi ipamọ data app, fun example, #pẹlu hal_sln_coffeedb.h.
  3. Ṣe atunṣe iṣẹ HAL_VisionAlgoDev_OasisGUIFAceRec_InputNotify () fun mimu awọn iṣẹlẹ lati UI HAL ti o wu jade.
    • Yi asọye iṣẹlẹ kEventFaceRecId_RegisterCoffeeAyanyan si kEventFaceRecId_RegisterUserFace ati okun be regCoffeeSelection si regGUIFAceRec fun mimu iṣẹlẹ lati ṣafikun data ẹya oju tuntun si ibi ipamọ data.
    • Lati ṣafihan ilana boṣewa ti awọn iṣe idanimọ oju ni example, ṣe atunṣe imudani ni ọran ti kEventFaceRecID_OasisSetState pẹlu awọn itumọ ti awọn ipinlẹ:
      • kOASISliteState
      • Iforukọ kOASISliteState
      • Ti idanimọ kOASISliteState
      • Duro
  4. Ṣafikun ati ṣatunṣe awọn asọye ti awọn iṣẹlẹ ti a mẹnuba ninu igbesẹ ti o wa loke.
    • Da akọsori kọ file smart_tlhmi_event_descriptor.h lati smart HMI \coffee_machine \ cm7 \ orisun \ event_handlers \ sinu folda orisun ti example SW. Ṣe imudojuiwọn awọn file bi isalẹ:
    • Yi itumo iṣẹlẹ kEventFaceRecId_RegisterCoffeeAyanyan si kEventFaceRecId_RegisterUserFace ninu iru enum _event_smart_tlhmi_id ati okun be regCoffeeAyan si regGUIFAceRec ninu igbekalẹ _event_smit.tlhm Nitorinaa, yi ilana iforukọsilẹ_coffee_selection_event_t pada fun regCoffeeSelection lati forukọsilẹ_gui_facerec_event_t.
    • Pa awọn akoonu miiran ti a lo fun ohun elo ẹrọ kọfi, fun example, laini koodu nipa ohun: #pẹlu "hal_event_descriptor_voice.h".
    • Ṣafikun awọn iru kOASISliteState_Stopped ati kOASISliteState_Ṣiṣe si iru enum oasis_lite_state_t ni hal_vision_algo.h labẹ ilana>hal>iran ninu iṣẹ akanṣe bi isalẹ:
      typedef enum _oasis_lite_state {
      • kOASISliteState
      • Nṣiṣẹ, kOASISliteState
      • Duro, kOASISliteState
      • Idanimọ,
      • kOASISliteState
      • Iforukọ, kOASISliteState
      • Iforukọsilẹ, kOASISliteState
      • Iforukọsilẹ latọna jijin, kOASISliteState
      • Ka
    • Lo awọn oke imudojuiwọn struct oasis_lite_state_t lati refaini awọn struct oasis_state_event_t ni hal_event_descriptor_face_rec.h labẹ framework>hal>iran ninu ise agbese bi isalẹ: typedef struct _oasis_state_event_t {oasis_lite_state_t state; } oasis_state_event_t;
  5. Yi gbogbo kEventInfo_Remote pada si kEventInfo_Local fun fifiranṣẹ awọn iṣẹlẹ lati iran algo HAL si awọn HAL miiran ti n ṣiṣẹ lori mojuto kanna gẹgẹbi mojuto ẹyọkan dipo meji-mojuto ni a lo ni iṣaaju.ample.
  6. Ṣafikun ati ṣatunṣe awọn atunto isalẹ fun ipilẹṣẹ oasis ni OASISLT_init():
    • Ṣafikun awọn itumọ Makiro ati awọn apakan iranti fun fireemu fidio ninu board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
      • # setumo OASIS_RGB_FRAME_HEIGHT 600
      • # setumo OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
      • # setumo OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
      • #tumọ AT_FB_SHMEM_SECTION_ALIGN(var, alignbytes) \
      • __ eroja__((apakan (“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
      • __ eroja __((aligned (alignbytes)))
    • Ṣe atunto iṣẹ iranti si apakan iranti loke fb_sh_mem lori Ise agbese> Awọn ohun-ini> Kọ C/C ++> Eto MCU ti o han ni Nọmba 5:NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (12)
    • Kede oniyipada agbaye g_DTCOPBuf ni lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf [DTC_OPTIMIZE_BUFFER_SIZE], 4);
    • Tẹsiwaju lati ṣafikun awọn itumọ ti a lo ninu oniyipada loke:
    • Ṣetumo apakan ti o wa loke ni board_define.h:
      • #sọtumọ AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
      • abuda__ ((apakan (".bss.$SRAM_DTC_cm7, \"aw\",%nobits @"))) var
      • abuda__((atunṣe(alignbytes)))
    • Fi akọsori kun file hal_vision_algo.h ti o ni awọn Makiro definition DTC_OPTIMIZE_BUFFER_SIZE ni app_config.h to wa ninu lvgl_gui_face_rec_cm7.cpp.
  7. Ṣeto oniyipada s_debugOption si otitọ fun fifi ipo ilọsiwaju han lori idanimọ oju.
  8. Ṣafikun ọna wiwa ti akọsori files ti iran HAL lori Ise agbese> Awọn ohun-ini> C/C ++ Kọ> eto> Eto irinṣẹ> MCU C alakojo> Pẹlu ati MCU C ++ alakojo> Pẹlu: “${workspace_loc:/${ProjName}/framework/hal/vision}”
  9. Ṣafikun itumọ isalẹ lati mu iran algo HAL ṣiṣẹ ninu board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFAceRec

Muu iṣẹjade UI HAL ṣiṣẹ
Ijade UI HAL ṣe ifitonileti awọn iṣẹlẹ si iran algo HAL ati idahun si awọn abajade inference lati iran algo HAL. Pẹlu ohun elo GUI, gbogbo awọn iṣẹlẹ jẹ okunfa nipasẹ app ati awọn abajade ti han lori app naa.

Lati muu ṣiṣẹ, kọlu awakọ HAL ti o jọra file Ni gbogbogbo, awọn iṣẹ ti o wa ni isalẹ ti wa ni imuse:

  • Ṣe akiyesi awọn iṣẹlẹ fun idanimọ oju ati iraye si data data.
  • Ṣe imuse awọn ipe pada fun ohun elo GUI lati ṣe okunfa awọn iṣẹlẹ naa.
  • Mu awọn esi inference lati iran algo module.
  • Ṣe afihan ilana ati awọn abajade ti awọn iṣẹlẹ mimu lori UI nipasẹ ọpa ilọsiwaju ti a ṣakoso pẹlu awọn aago ati awọn onigun itọsọna oju.

Awọn iṣẹ pataki lati ṣe HAL fun exampTi a lo ninu iwe yii ni:

  • Clone iru awakọ HAL ti o wa tẹlẹ file ki o si yi awọn ibatan orukọ.
  • Yọ awọn koodu ti o ni ibatan si app naa kuro.
  • Ṣe imudojuiwọn awọn iṣẹ fun ifitonileti awọn iṣẹlẹ ati esi esi fun iṣaajuample apẹrẹ.
  • Ṣafikun awọn ipe-pada fun ohun elo GUI lati ṣe okunfa awọn iṣẹlẹ naa.

Awọn igbesẹ alaye jẹ bi isalẹ:

  1. Clone hal_output_ui_coffee_machine.c. Yipada awọn fileorukọ to hal_ output_ui_guifacerec.c.
  2. Ropo gbogbo awọn gbolohun ọrọ CoffeeMachine pẹlu GUIFAceRec ninu awọn file.
  3. Yọ awọn koodu ti o ni ibatan si ohun elo naa - ẹrọ kọfi.
    • Yọ awọn iṣẹ WakeUp () ati _StandBy () kuro ati awọn koodu ti o jọmọ (le wa awọn wake_up okun ati imurasilẹ fun wọn).
    • Yọ tẹlẹview awọn iṣẹlẹ ipo mimu awọn koodu ti o ni ibatan mu ni HAL_OutputDev_UiGUIFAceRec_Input Notify ().
    • Yọ awọn iṣẹ kuro UI_xxx_Callback () ati awọn koodu ti o ni okun gui_ ati iboju ti o ni ibatan si GUI ti ẹrọ kọfi ayafi fun gui_set_virtual_face () fun iṣaaju.view ẹya mode.
    • Yọ gbogbo awọn koodu ti o kan pẹlu awọn oniyipada s_IsWaitingAnotherSelection ati s_IsWaitingRegisterSelection ti o ni ibatan si ohun elo ẹrọ kofi.
    • Yọ awọn koodu ti o nii ṣe pẹlu ohun, ohun, ati ede kuro. Fun example:
      • #pẹlu "hal_voice_algo_asr_local.h",
      • #pẹlu "ohun_apejuwe_iṣẹlẹ_hal_.h"
  4. Fun awọn ifitonileti awọn iṣẹlẹ lọpọlọpọ, ṣe awọn iṣẹ tuntun _OutputManagerNotify (), _SetFaceRec (), _RegisterGUIFAceRec (), ati DeregisterGUIFAceRec () ti o tọka si awọn iṣẹ _StopFaceRec (), _RegisterCoffeeSelection (), ati DeregisterCoffeeSelection wọn.
    • _OutputManagerNotify () n ṣe iṣẹ iṣelọpọ iṣẹlẹ ipilẹ lati firanṣẹ iṣẹlẹ kan si iran algo HAL. Awọn iṣẹ ti o wa ni isalẹ pe lati firanṣẹ awọn iṣẹlẹ tiwọn.
    • _SetFaceRec() naa nfi iṣẹlẹ naa ranṣẹ kEventFaceRecID_OasisSetState lati ṣe okunfa algo iran fun iforukọsilẹ oju, idanimọ, ati da algo naa duro.
    • _RegisterGUIFAceRec() naa firanṣẹ iṣẹlẹ naa kEventFaceRecId_RegisterGUIFAceRec ti o tumọ ni smart_tlhmi_event_descriptor.h lati ṣafikun data ẹya oju si ibi ipamọ data nigbati iforukọsilẹ O DARA.
    • DeregisterGUIFAceRec() n fi iṣẹlẹ naa ranṣẹ kEventFaceRecID_DelUser lati pa data ẹya oju rẹ kuro ni ibi ipamọ data nigbati o ba kọja idanimọ oju.
  5. Ṣe imudojuiwọn awọn koodu lati ṣe awọn iṣe ti o baamu pẹlu sọtun GUI nipa pipe awọn API lati inu ohun elo LVGL GUI fun awọn abajade itọkasi ti iforukọsilẹ oju ati idanimọ ni iṣẹ _InferComplete_Vision() fun iṣaaju.ample apẹrẹ. Fun example, nigbati iforukọsilẹ oju ba ṣaṣeyọri,
    • Duro fifi ilọsiwaju han nipa pipe _FaceRecProcess_Stop ();
    • Duro iforukọsilẹ oju nipasẹ pipe _SetFaceRec (kOASISliteState_Stopped);
    • Ṣe afihan abajade aṣeyọri lori GUI: gui_show_face_rec_result (kFaceRecResult_OK, s_UserId);
    • Forukọsilẹ data oju si ibi ipamọ data: _RegisterUserFace(s_UserId);
  6. Ṣafikun awọn iṣẹ ipe UI lati mu awọn iṣẹlẹ naa: ṣajuview, Iforukọsilẹ oju, idanimọ, ati piparẹ olumulo ti o fa lati GUI. Fun example, ipe iforukọsilẹ oju: ofo UI_Registration_Callback () {_SetFaceRec(kOASISliteState_Registration); _FaceRecProcess_Start (); }
    • Ati ṣafikun awọn iṣẹ _FaceRecProcess_Start () ati _FaceRecProcess_Stop () lati ṣafihan ilọsiwaju ati ipo ni awọn iṣẹlẹ ati awọn abajade oriṣiriṣi.
    • Ṣe imudojuiwọn iṣẹ ipe ti akoko ISR _SessionTimer_Callback () lati ṣe itọju ọran ti akoko-to nipa pipe: gui_show_face_rec_result (kFaceRecResult_TimeOut, s_UserId);
  7. Ṣafikun awọn asọye ti o wa ni isalẹ lati mu iṣelọpọ UI ṣiṣẹ ni board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFAceRec

Akiyesi:
Lati ṣafihan ẹya idanimọ oju dara julọ, tọju iṣẹ naa lati ṣafihan ilana ati awọn abajade ti idanimọ oju ni UI HAL ti o wu jade. Iṣẹ naa jẹ apejuwe bi isalẹ

  • Awọn onigun itọsọna oju ṣe afihan buluu, ati ọpa ilọsiwaju fihan ilọsiwaju nigbati o bẹrẹ iforukọsilẹ oju tabi idanimọ.
  • Awọn onigun itọsọna oju fihan pupa nigbati iforukọsilẹ oju jẹ aṣeyọri.
  • Itọnisọna oju onigun onigun fihan alawọ ewe nigbati idanimọ oju jẹ aṣeyọri.
  • Itọnisọna oju onigun mẹrin ntọju buluu, ati ọpa ilọsiwaju fihan ilọsiwaju ni kikun nigbati iṣẹ naa ko ni aṣeyọri lẹhin ipari akoko. Ni aaye yẹn, da iforukọsilẹ oju tabi idanimọ duro.

Pẹpẹ ilọsiwaju ati igun itọsọna oju oju ni a gbekalẹ bi awọn aami ti a ṣe sinu alakomeji awọn oluşewadi file lati wa ni siseto sinu Flash. Awọn itọka si data awọn aami lori SDRAM ti ṣeto ni iṣẹ LoadIcons (APP_ICONS_BASE) ti a pe ni ipilẹṣẹ ẹrọ UI HAL ti o wu jade ni UI HAL ti o wu jade. O gbọdọ ṣe atilẹyin awọn aami fun iṣẹ naa.

Ṣe atilẹyin awọn aami

  1. Kọ awọn orisun apapọ awọn aami pẹlu awọn aworan ti a lo ninu ohun elo LVGL GUI:
    • Clone akọsori aami mẹrin files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, ati virtual_face_red_420x426.h lati ọdọ HMI ọlọgbọn.
      \ kofi ẹrọ \ resource \ awọn aami \ si awọn aami folda titun labẹ awọn oluşewadi folda ti example SW.
    • Ṣafikun ọna wiwa fun aami mẹrin files ninu kamera_preview_resource.txt file ninu awọn oluşewadi folda, fun example: aami ../resource/icons/process_bar_240x14.h
    • Ṣiṣẹ camera_preview_resource_build.bat lati kọ awọn aworan ati awọn orisun aami lati ṣe ina bin file kamẹra_preview_resource.bin ati alaye naa file resource_information_table.txt (Wo aworan 6).NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (13)
  2. Setumo awọn ibere adirẹsi on SDRAM ati awọn iwọn ti awọn aami ni app_config.h. Adirẹsi naa bẹrẹ lẹgbẹẹ awọn aworan ti ohun elo GUI. Iwọn naa jẹ ipilẹṣẹ ninu alaye naa file. #sọtumọ APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #ṣetumo APP_ICONS_SIZE 0x107c40
  3. Ṣe imudojuiwọn iwọn ti a yàn ti apakan iranti ti a npè ni res_sh_mem si 0x200000 nipa atunkọ rẹ ni app_config.h: #define RES_SHMEM_TOTAL_SIZE 0x200000 ati eto ti o baamu ni Project> Awọn ohun-ini> C/C++ Kọ> Awọn eto MCU.
  4. Ṣafikun iwọn aami si iwọn lapapọ ti orisun ti a kojọpọ lati Flash si SDRAM ninu iṣẹ APP_LoadResource() ni akọkọ file lvgl_gui_face_rec_cm7.cpp: memcpy ((asan *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);

Akiyesi: Lati pari ẹya idanimọ oju, atilẹyin ohun elo LVGL GUI nilo. Awọn iṣẹ ipe UI UI HAL ti o wu jade ni a pe nipasẹ ohun elo LVGL GUI fun mimu awọn iṣẹlẹ lati iboju UI. Ni apa keji, UI HAL ti o jade pe awọn API lati inu ohun elo LVGL GUI lati ṣe imudojuiwọn UI lati ṣafihan abajade ati ipo naa. Idagbasoke ohun elo LVGL GUI jẹ ominira ti o jo ati ṣafihan ni Abala 4.3.

4.1.5 Bẹrẹ awọn ẹrọ HAL ati awọn alakoso fun idanimọ oju
Iran ti a mu ṣiṣẹ algo HAL ati UI o wu HAL ati awọn alakoso wọn ti bẹrẹ ni akọkọ file
lvgl_gui_face_rec_cm7.cpp ni atẹle awọn iyipada ti idagbasoke lori ilana bi isalẹ:

  1. Fi akọsori kun file ti o ni ibatan si awọn alakoso HAL meji nipa fifi laini koodu sii:
    • #pẹlu ” fwk_output_manager.h “
    • #pẹlu "fwk_vision_algo_manager.h"
  2. Kede awọn ẹrọ HAL:
    • HAL_VALGO_DEV_DECLARE(OasisGUIFAceRec);
    • HAL_OUTPUT_DEV_DECLARE(UiGUIFAceRec);
  3. Forukọsilẹ awọn ẹrọ HAL:
    • HAL_VALGO_DEV_REGISTER (OasisGUIFAceRec, ret);
    • HAL_OUTPUT_DEV_REGISTER (UiGUIFAceRec, ret);
  4. Bẹrẹ awọn alakoso:
    • FWK_MANAGER_INIT (VisionAlgoManager, ret);
    • FWK_MANAGER_INIT (OjadeManager, ret);
  5. Bẹrẹ awọn alakoso:
    • FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
    • FWK_MANAGER_START(Output Manager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
  6. Ṣe alaye pataki ti awọn iṣẹ-ṣiṣe alakoso:
    • # setumo VISION_ALGO_MANAGER_TASK_PRIORITY 3
    • #sọtumọ OUTPUT_MANAGER_TASK_PRIORITY 1

Ṣafikun atilẹyin oju data oju lori ilana
Awọn data ẹya oju ti o forukọsilẹ ti wọle si ibi ipamọ data oju ti o fipamọ sori Flash nipasẹ diẹ file eto. Awọn igbesẹ lati ṣafikun atilẹyin aaye data oju ni a ṣalaye ni isalẹ.

Ṣafikun awọn awakọ fun ibi ipamọ Flash
Da awọn Flash ni wiwo FlexSPI awakọ files fsl_flexspi.c ati fsl_flexspi.h, ati awakọ fifi ẹnọ kọ nkan data files fsl_caam.c ati fsl_caam.h lati ọna SDK_2_13_0_MIMXRT1170-EVK \ awọn ẹrọ \ MIMRX1176 \ awakọ \ si folda awakọ ti example SW.

Ṣafikun atilẹyin ipele igbimọ

  1. Ṣafikun awọn itumọ ti FlexSPI ti a lo fun ẹrọ Flash lori ọkọ ni board.h:
    • # asọye BOARD_FLEXSPI FLEXSPI1
    • # setumo BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
    • # setumo BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
  2. Da awọn oniṣẹ ati awọn atunto files ti awọn Flash ẹrọ flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h labẹ awọn ọna ti smart HMI \ kofi cm 7.ample SW.
    • Ṣiṣayẹwo “Yato awọn orisun lati kọ” ni C/C ++ Kọ> Eto lẹhin titẹ-ọtun lori files 'orukọ ati ṣiṣi Awọn ohun-ini fun ṣiṣe wọn lati kọ sinu iṣẹ naa.
  3. Yi akọsori to wa fileorukọ sln_flash_config.h to sln_flash_config_w25q256jvs.h ni sln_flash_config.c ati flexspi_nor_flash_ops.h.
  4. Ṣeto orisun aago FlexSPI1 ninu file clock_config.c ifilo si kofi ẹrọ app.

Ṣafikun ohun ti nmu badọgba ati atilẹyin ipele aarin

  1. da awọn files sln_flash.c, sln_flash.h, sln_encrypt.c, ati sln_encrypt.h gẹgẹbi awọn awakọ ti nmu badọgba fun file eto ati app lati ọna ti smart HMIcoffee_machine cm7 orisun \ si awọn folda orisun ti example. Ṣe imudojuiwọn tuntun files:
    • Yọọ “Yọ awọn orisun kuro lati kọ” lori wọn fun kikọ.
    • Yi gbogbo akọsori to wa file orukọ sln_flash_config.h to sln_flash_config_w25q256jvs.h.
  2. Da folda naa fileeto ti o ni awọn APIs fun awọn kekere fileeto ati HAL iwakọ lati smart HMI \coffee_machine \ cm7 \ orisun \ si awọn example SW. Ati imudojuiwọn fun folda tuntun:
    • Yọọ “Yọ awọn orisun lati kọ” sori rẹ fun kikọ.
    • Ṣafikun ọna naa pẹlu ninu awọn eto iṣẹ akanṣe: “${workspace_loc:/${ProjName}/fileeto}”
    • Yi akọsori to wa file lorukọ sln_flash_config.h si sln_flash_config_w25q256jvs.h ati fica_definition.h si app_config.h ninu file sln_flash_littlefs.h.
  3. Daakọ awọn folda kekere ti o ni awọn ohun elo aarin - diẹ fileeto lati ọna SDK_2_13_0_ MIMXRT1170-EVK\middware \ si example SW. Ati imudojuiwọn folda tuntun:
    • Yọọ “Yọ awọn orisun lati kọ” sori rẹ fun kikọ.
    • Ṣafikun ọna naa pẹlu ninu awọn eto iṣẹ akanṣe: “${workspace_loc:/${ProjName}/littlefs}”

Fi HAL awakọ 

  • Awọn ẹrọ HAL meji wa - file eto ati oju data data HAL ṣe atilẹyin fun ẹya wiwọle data ati pe wọn ti ṣe imuse tẹlẹ ninu ilana laisi iyipada eyikeyi. Mu wọn ṣiṣẹ nipa fifi awọn asọye ni isalẹ ni board_define.h:
    • # asọye ENABLE_FLASH_DEV_Littlefs
    • # asọye ENABLE_FACEDB

Ki o si yi awọn oju database orukọ fun awọn example: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"

Ṣafikun atilẹyin ipele-app

  1. Ṣe imudojuiwọn akọkọ file lvgl_gui_face_rec_cm7.cpp:
    • Fi akọsori kun file jẹmọ si Flash file Alakoso HAL eto nipa fifi laini koodu sii: #pẹlu “fwk_flash.h”
    • Sọ ati forukọsilẹ file ẹrọ HAL eto:
      • HAL_FLASH_DEV_DECLARE(Awọn ọmọ kekere);
      • HAL_FLASH_DEV_REGISTER (Littlefs, ret);
        Akiyesi: Awon file ẹrọ HAL gbọdọ wa ni iforukọsilẹ ṣaaju ki gbogbo awọn alakoso ẹrọ ti wa ni ipilẹṣẹ ni iṣẹ APP_InitFramework ().
    • Pe iṣẹ BOARD_ConfigMPU () ni APP_BoardInit () lati tunto MPU.
  2. Ṣeto awọn file iṣẹ iyansilẹ eto lori Flash ninu awọn file app_config.h nipa asọye Makiro itumo lo ninu awọn file sln_flash_littlefs.h:
    • # ṣe asọye FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
    • #sọtumọ FICA_FILE_SYS_SIZE (0x280000)

Awọn atunto
Diẹ ninu awọn koodu ti o ni ibatan Flash ni a ṣe ni agbegbe SRAM ITC fun iṣẹ ṣiṣe to. Daakọ awọn ọna asopọ folda ti o ni awọn atunto ọna asopọ lati ọna smart HMIcoffee_machine cm7 si example SW.

Ṣiṣe ohun elo LVGL GUI kan
Idagbasoke ohun elo LVGL GUI ti o da lori ilana awọn ipe API lati inu UI HAL ti o wu jade ati pese awọn API lati ṣejade UI HAL (Wo Abala 4.1.3 fun imuse ti UI HAL ti o wu jade).

Sibẹsibẹ, imuse alaye ti ohun elo LVGL GUI da lori awọn ibeere ati apẹrẹ ohun elo naa. Ohun elo GUI ni example jẹ apẹrẹ bi a ti ṣalaye ni ibẹrẹ apakan Abala 4.

Ni isalẹ ni awọn ifihan imuse:

  1. Awọn koodu ti a ṣe adani ti wa ni imuse ni custom.c ati custom.h ti a fun nipasẹ GUI Guider gẹgẹbi wiwo laarin iṣẹ-ṣiṣe Itọsọna GUI ati eto eto ti a fi sii.
    •  Ṣafikun awọn iṣẹ tuntun ti a npè ni gui_xxx () ni custom.c lati ṣaṣeyọri awọn iṣẹ isalẹ:
      • Fun iṣelọpọ UI HAL ati ohun elo GUI lati ṣe imudojuiwọn UI.
      • Fun ohun elo GUI lati ṣe okunfa awọn iṣẹlẹ nipa pipe awọn iṣẹ ipe UI lati inu UI HAL ti o wu jade.
        Fun example, iṣẹ tuntun gui_event_face_rec_action () pe awọn iṣẹ ipe UI lati mu ọkan ninu awọn iṣẹlẹ ti iforukọsilẹ oju, idanimọ oju ati piparẹ olumulo lati inu ohun elo GUI nigbati bọtini ti o jọmọ ti tẹ.
        Akiyesi: Iṣẹ gui_set_virtual_face () ti a pe ni UI HAL ti o jade fun iṣaajuview mode nilo lati wa ni imuse ni custom.c:
    •  Clone iṣẹ gui_set_virtual_face () lati smart HMI \ kofi_machine \ cm4 \ aṣa \ custom.c.
    •  Yi orukọ ailorukọ pada home_img_cameraPreview si screen_img_camera_preview ninu iṣẹ.
    •  Ṣe imuse awọn iṣẹ ipe UI pẹlu apẹrẹ kanna si gbogbo awọn ti o wa ninu iṣelọpọ UI HAL labẹ iṣakoso ti asọye macro #ifndef RT_PLATFORM ni custom.c fun ibaramu pẹlu iṣẹ akanṣe Itọsọna GUI nitori awọn iṣẹ wọnyi ni iṣelọpọ UI HAL ti o gbẹkẹle pẹlu ifibọ Syeed. Ni custom.c, wọn dale lori simulator lori itọsọna GUI ati pe wọn jẹ ominira si pẹpẹ ti a fi sii. Fun example, ipe iforukọsilẹ oju jẹ imuse bi isalẹ fun simulator Itọsọna GUI nṣiṣẹ: #ifndef RT_PLATFORM ofo UI_Registration_Callback () {gui_hide_del_user_btn (otitọ); s_InAction = èké; pada; }
      Akiyesi: Tọkasi iru apẹrẹ kanna ti iṣẹ ti a ṣe ni igbesẹ 6 ti Abala 4.1.3
      Itumọ macro RT_PLATFORM ti ṣeto lori awọn eto ise agbese ti MCUXpresso bi o ṣe han ni Nọmba 7:NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (14)
    • Ṣe ikede gbogbo awọn iṣẹ ti a npè ni UI_xxx_Callback () ati gui_xxx () ni custom.h ki o ṣafikun custom.h to wa ninu smart_tlhmi_event_descriptor.h lati pin awọn GUI API si UI igbejade HAL.
  2. Dagbasoke GUI lori Itọsọna GUI:
    • Dina kamẹra folda ṣaajuview ti o ni sọfitiwia ise agbese Itọsọna GUI ninu folda gui_guider ninu package sọfitiwia ipilẹ lvgl_gui_camera_preview_cm7. Yi orukọ ti o jọmọ camera_pre padaview to face_rec fun awọn titun Mofiample.
    • Daakọ imudojuiwọn aṣa.c ati aṣa. h si titun GUI Guider ise agbese software.
    •  Ṣii iṣẹ tuntun face_rec lori Itọsọna GUI. Ṣe imudojuiwọn bi isalẹ:
      • Ṣafikun bọtini tuntun ti a samisi Olumulo Parẹ. Ṣafikun asia ti o farapamọ si ki bọtini naa yoo farapamọ nigbati ohun elo GUI ba bẹrẹ.
      • Ṣafikun laini koodu ti pipe API gui_event_face_rec_action () pẹlu paramita ID iṣẹlẹ ti o yatọ lori “Tu silẹ” okunfa ni Eto iṣẹlẹ ti gbogbo awọn bọtini Iforukọsilẹ, Idanimọ ati Olumulo Paarẹ fun ṣiṣe awọn iṣẹlẹ ti iforukọsilẹ oju, idanimọ oju ati piparẹ olumulo. Nọmba 8 fihan koodu fun iṣẹlẹ ti Iforukọsilẹ bọtini:NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (15)
  3. Ṣe imudojuiwọn koodu ti ipilẹṣẹ lati ọdọ Itọsọna GUI si iṣẹ akanṣe MCUXpresso.
    • Rọpo awọn akoonu ayafi fun awọn aworan folda ninu folda ti ipilẹṣẹ ti MCUXpresso ise agbese SW pẹlu awọn ti o baamu ninu folda ti ipilẹṣẹ ti GUI Guider ise agbese SW.

Akiyesi: Fun alaye diẹ sii nipa awọn iyipada ti a ṣe loke, ṣayẹwo example software ni https://mcuxpresso.nxp.com/appcodehub.

Awọn iṣeduro pẹlu example ise agbese

Lati gba examppackage sọfitiwia ti o ni awọn orisun ati awọn irinṣẹ fun akọsilẹ ohun elo yii, ṣabẹwo: https://mcuxpresso.nxp.com/appcodehub. Ṣii example ise agbese on MCUXpresso IDE. Kọ ati ṣe eto .axf file si adirẹsi 0x30000000 ki o si ṣe eto bin oluşewadi file kamẹra_preview_resource.bin si adirẹsi 0x30800000.

LVGL GUI idanimọ ojuampLe ṣiṣẹ deede bi isalẹ:

  • Ṣaajuview: Pẹlu agbara soke, awọn ṣiṣan fidio ti o ya nipasẹ kamẹra fihan lori agbegbe kan pato ti iṣaaju kamẹraview loju iboju GUI. Aami ipo han “Preview…”. Fun awọn alaye, wo Nọmba 3. Bọtini Paarẹ olumulo ti wa ni pamọ. Nigbati o ba tẹ agbegbe ni ita awọn bọtini ati awọn aworan, o fihan ṣaajuview sọ bi eyi ti o wa loke lẹhin iforukọsilẹ oju tabi iṣẹ idanimọ pari.
  • Iforukọsilẹ:
    • tartup: Nigbati bọtini Iforukọsilẹ ba tẹ, iforukọsilẹ oju bẹrẹ. Aami ipo naa yipada lati ṣafihan “Iforukọsilẹ…”, oju eegun itọsọna oju fihan buluu, ati ọpa ilọsiwaju bẹrẹ fifi ilọsiwaju han. Rii daju pe oju olumulo n ṣafihan sinu itọsọna oju buluu onigun fun iforukọsilẹ.
    • wiwọle: Aami ipo fihan “Iforukọsilẹ…O DARA” ati nọmba ID olumulo ti o forukọsilẹ, onigun itọsọna oju yoo di pupa ti iforukọsilẹ oju ba ṣaṣeyọri ṣaaju ilọsiwaju naa fihan ni kikun lori igi.
    • Ikuna -> Akoko to: Aami ipo fihan “Iforukọsilẹ…Aago jade” ti iforukọsilẹ oju ba kuna nigbati ilọsiwaju ba han ni kikun lori igi.
    • Ikuna -> Ipilẹṣẹ: Aami ipo fihan “Iforukọsilẹ… Kuna”, onigun itọsọna oju di alawọ ewe ti oju ti o forukọsilẹ ba jẹ idanimọ ṣaaju ilọsiwaju ilọsiwaju fihan ni kikun lori igi.
  • imọ:
    • Ibẹrẹ: Nigbati bọtini idanimọ ba tẹ, idanimọ oju bẹrẹ. Aami ipo naa yipada lati ṣafihan “Imọ…”, itọsọna oju onigun mẹta fihan buluu, ati ọpa ilọsiwaju bẹrẹ fifi ilọsiwaju han. Rii daju pe oju olumulo ti han sinu itọsọna oju buluu onigun fun iforukọsilẹ.
    • wiwọle: Aami ipo fihan “Imọ…O DARA” ati nọmba ID olumulo ti a mọ, onigun mẹrin itọsọna oju di alawọ ewe ti idanimọ oju ba ṣaṣeyọri ṣaaju ilọsiwaju naa fihan ni kikun lori igi. Ni aaye, bọtini Parẹ olumulo yoo han. O tumọ si pe a gba olumulo laaye lati paarẹ nikan nigbati o ba jẹ idanimọ.
    • ailure: Aami ipo fihan “Imọ…Aago jade” ti idanimọ oju ba kuna nigbati ilọsiwaju ba han ni kikun lori igi.
  • Pa olumulo rẹ: Nigbati bọtini “Paarẹ Olumulo” ba tẹ, lẹhin ti idanimọ oju ti ṣaṣeyọri, aami ipo yipada lati ṣafihan “Paarẹ olumulo…O DARA” pẹlu onigun itọsọna oju di buluu ati ilọsiwaju ti n ṣafihan ni kikun lori igi naa. Bọtini Parẹ Olumulo ti wa ni pamọ lẹẹkansi. Oju/olumulo ti a mọ ti paarẹ lati ibi ipamọ data. O tumọ si oju/olumulo yii ko le ṣe idanimọ titi ti yoo fi forukọsilẹ lẹẹkansii.

Akiyesi nipa koodu orisun ninu iwe-ipamọ naa
Exampkoodu ti o han ninu iwe yii ni ẹtọ aṣẹ-lori atẹle ati iwe-aṣẹ Clause BSD-3:

Aṣẹ-lori-ara 2024 NXP Satunkọ ati lilo ni orisun ati awọn fọọmu alakomeji, pẹlu tabi laisi iyipada, jẹ idasilẹ ti a pese pe awọn ipo wọnyi ti pade:

  1. Awọn atunpinpin ti koodu orisun gbọdọ da akiyesi aṣẹ-lori oke loke, atokọ awọn ipo ati idawọle atẹle.
  2. Awọn atunpinpin ni fọọmu alakomeji gbọdọ tun ṣe akiyesi aṣẹ-lori loke, atokọ awọn ipo ati idawọle atẹle ninu iwe ati/tabi awọn ohun elo miiran gbọdọ wa ni ipese pẹlu pinpin.
  3. Bẹni orukọ ẹniti o ni ẹtọ lori ara tabi awọn orukọ ti awọn oluranlọwọ ni a le lo lati ṣe atilẹyin tabi ṣe igbega awọn ọja ti o jade lati sọfitiwia yii laisi igbanilaaye kikọ tẹlẹ kan pato

SOFTWARE YI NI A NPESE LATI ỌWỌ awọn oludimu ati awọn oluranlọwọ “BẸẸNI” ATI awọn iṣeduro KIAKIA TABI TIN, PẸLU, SUGBON KO NI OPIN SI, Awọn ATILẸYIN ỌJA TI ỌLỌWỌ ATI IWỌRỌ FUN AGBẸRẸ. Ni iṣẹlẹ kankan yoo ni igbẹkẹle tabi awọn aladakọ wa fun eyikeyi taara, aiṣe-taara, apẹẹrẹ, deede ti awọn ohun elo tabi awọn iṣẹ ti aropo LILO, DATA, TABI ERE; NI imọran ti seese ti iru bibajẹ.

Àtúnyẹwò itan

NXP-AN14263-Ṣiṣe-LVGL-GUI Idanimọ Oju-lori-Framewor-fig- (16)

Alaye ofin

Awọn itumọ
Akọpamọ - Ipo yiyan lori iwe kan tọkasi pe akoonu naa tun wa labẹ atunlo inuview ati ki o koko ọrọ si lodo alakosile, eyi ti o le ja si ni awọn iyipada tabi awọn afikun. NXP Semiconductors ko fun eyikeyi awọn aṣoju tabi awọn atilẹyin ọja bi deede tabi pipe alaye ti o wa ninu ẹya iyaworan ti iwe kan ati pe ko ni layabiliti fun awọn abajade ti lilo iru alaye.

AlAIgBA

  • Atilẹyin ọja to lopin ati layabiliti — Alaye ti o wa ninu iwe yii ni a gbagbọ pe o jẹ deede ati igbẹkẹle. Sibẹsibẹ, NXP Semiconductors ko fun eyikeyi awọn aṣoju tabi awọn atilẹyin ọja, ti a fihan tabi mimọ, nipa deede tabi pipe iru alaye ati pe kii yoo ni layabiliti fun awọn abajade ti lilo iru alaye. NXP Semiconductors ko gba ojuse fun akoonu inu iwe yii ti o ba pese nipasẹ orisun alaye ni ita ti NXP Semiconductor.
    Ko si iṣẹlẹ ti NXP Semiconductors yoo ṣe oniduro fun eyikeyi aiṣe-taara, lairotẹlẹ, ijiya, pataki tabi awọn bibajẹ ti o wulo (pẹlu – laisi aropin - awọn ere ti o padanu, awọn ifowopamọ ti o sọnu, idalọwọduro iṣowo, awọn idiyele ti o ni ibatan si yiyọkuro tabi rirọpo awọn ọja eyikeyi tabi awọn idiyele atunṣe) boya tabi iru awọn bibajẹ bẹ ko da lori ijiya (pẹlu aifiyesi), atilẹyin ọja, irufin adehun tabi eyikeyi ilana ofin miiran.
    Laibikita eyikeyi awọn ibajẹ ti alabara le fa fun eyikeyi idi eyikeyi, apapọ NXP Semiconductor ati layabiliti akopọ si alabara fun awọn ọja ti a ṣalaye ninu rẹ yoo ni opin ni ibamu pẹlu Awọn ofin ati ipo ti titaja iṣowo ti NXP Semiconductor.
  • Ọtun lati ṣe awọn ayipada - NXP Semiconductors ni ẹtọ lati ṣe awọn ayipada si alaye ti a tẹjade ninu iwe yii, pẹlu laisi awọn pato aropin ati awọn apejuwe ọja, nigbakugba ati laisi akiyesi. Iwe yi rọpo ati rọpo gbogbo alaye ti a pese ṣaaju ki o to tẹjade nibi.
  • Imudara fun lilo Awọn ọja Semiconductor NXP ko ṣe apẹrẹ, ni aṣẹ tabi atilẹyin ọja lati dara fun lilo ninu atilẹyin igbesi aye, pataki-aye tabi awọn eto aabo-pataki tabi ohun elo, tabi ni awọn ohun elo nibiti ikuna tabi aiṣedeede ti ọja NXP Semiconductor ọja le ni idi yẹ lati ja si ipalara ti ara ẹni, iku tabi ohun-ini nla tabi ibajẹ ayika. NXP Semiconductors ati awọn olupese rẹ ko gba layabiliti fun ifisi ati/tabi lilo awọn ọja Semiconductor NXP ni iru ẹrọ tabi awọn ohun elo ati nitorinaa iru ifisi ati/tabi lilo wa ni eewu alabara.
  • Awọn ohun elo - Awọn ohun elo ti o ṣapejuwe ninu rẹ fun eyikeyi awọn ọja wọnyi wa fun awọn idi alapejuwe nikan. NXP Semiconductors ko ṣe aṣoju tabi atilẹyin ọja pe iru awọn ohun elo yoo dara fun lilo pàtó laisi idanwo siwaju tabi iyipada.
    Awọn alabara ṣe iduro fun apẹrẹ ati iṣẹ ti awọn ohun elo wọn ati awọn ọja nipa lilo awọn ọja Semiconductor NXP, ati NXP Semiconductor ko gba layabiliti fun eyikeyi iranlọwọ pẹlu awọn ohun elo tabi apẹrẹ ọja alabara. O jẹ ojuṣe alabara nikan lati pinnu boya ọja Semiconductor NXP dara ati pe o yẹ fun awọn ohun elo alabara ati awọn ọja ti a gbero, bakanna fun ohun elo ti a gbero ati lilo ti alabara ẹgbẹ kẹta ti alabara. Awọn alabara yẹ ki o pese apẹrẹ ti o yẹ ati awọn aabo iṣiṣẹ lati dinku awọn eewu ti o nii ṣe pẹlu awọn ohun elo ati awọn ọja wọn. NXP Semiconductors ko gba eyikeyi layabiliti ti o ni ibatan si eyikeyi aiyipada, ibajẹ, awọn idiyele tabi iṣoro eyiti o da lori eyikeyi ailera tabi aiyipada ninu awọn ohun elo alabara tabi awọn ọja, tabi ohun elo tabi lilo nipasẹ awọn alabara ẹgbẹ kẹta ti alabara. Onibara jẹ iduro fun ṣiṣe gbogbo awọn idanwo pataki fun awọn ohun elo alabara ati awọn ọja nipa lilo awọn ọja Semiconductor NXP lati yago fun aiyipada awọn ohun elo ati awọn ọja tabi ohun elo tabi lilo nipasẹ alabara ẹgbẹ kẹta ti alabara. NXP ko gba gbese eyikeyi ni ọwọ yii.
  • Ofin ati ipo ti owo tita Awọn ọja Semiconductor NXP ni a ta labẹ awọn ofin gbogbogbo ati awọn ipo ti titaja iṣowo, bi a ti tẹjade ni https://www.nxp.com/profile/ awọn ofin, ayafi ti bibẹkọ ti gba ni kan wulo kọ olukuluku adehun. Ni ọran ti adehun ẹni kọọkan ba pari awọn ofin ati ipo ti adehun oniwun yoo lo. NXP Semikondokito nipa bayi ni awọn nkan taara si lilo awọn ofin gbogbogbo ti alabara pẹlu iyi si rira awọn ọja Semiconductor NXP nipasẹ alabara.
  • Iṣakoso okeere - Iwe-ipamọ yii ati awọn nkan (awọn) ti a ṣalaye ninu rẹ le jẹ koko-ọrọ si awọn ilana iṣakoso okeere. Si ilẹ okeere le nilo aṣẹ ṣaaju lati ọdọ awọn alaṣẹ to peye.
  • Ibamu fun lilo ninu awọn ọja ti ko ni oye ọkọ ayọkẹlẹ - Ayafi ti iwe-ipamọ yii ba sọ ni gbangba pe ọja NXP Semiconductor pato yii jẹ oṣiṣẹ adaṣe, ọja naa ko dara fun lilo adaṣe. Ko jẹ oṣiṣẹ tabi idanwo ni ibamu pẹlu idanwo adaṣe tabi awọn ibeere ohun elo. NXP Semiconductors gba ko si gbese fun ifisi ati/tabi lilo awọn ọja ti kii ṣe adaṣe ni ohun elo adaṣe tabi awọn ohun elo.
    Ni iṣẹlẹ ti alabara nlo ọja naa fun apẹrẹ-inu ati lilo ninu awọn ohun elo adaṣe si awọn pato adaṣe ati awọn iṣedede, alabara (a) yoo lo ọja laisi atilẹyin ọja Semiconductor NXP fun iru awọn ohun elo adaṣe, lilo ati awọn pato, ati ( b) nigbakugba ti alabara ba lo ọja naa fun awọn ohun elo ọkọ ayọkẹlẹ ti o kọja awọn pato NXP Semiconductors iru lilo yoo jẹ nikan ni eewu ti ara alabara, ati (c) alabara ni kikun ṣe idalẹbi awọn Semiconductor NXP fun eyikeyi layabiliti, awọn ibajẹ tabi awọn ẹtọ ọja ti o kuna ti o waye lati apẹrẹ alabara ati lilo ti ọja fun awọn ohun elo adaṣe kọja atilẹyin ọja boṣewa NXP Semiconductor ati awọn pato ọja NXP Semiconductor.
  • Awọn itumọ - Ẹya ti kii ṣe Gẹẹsi (tumọ) ti iwe kan, pẹlu alaye ofin ninu iwe yẹn, jẹ fun itọkasi nikan. Ẹ̀yà Gẹ̀ẹ́sì náà yóò gbilẹ̀ ní irú ìyàtọ̀ èyíkéyìí láàárín àwọn ìtúmọ̀ àti èdè Gẹ̀ẹ́sì.
  • Aabo - Onibara loye pe gbogbo awọn ọja NXP le jẹ koko ọrọ si awọn ailagbara ti a ko mọ tabi o le ṣe atilẹyin awọn iṣedede aabo ti iṣeto tabi awọn pato pẹlu awọn idiwọn ti a mọ. Onibara jẹ iduro fun apẹrẹ ati iṣẹ ti awọn ohun elo ati awọn ọja jakejado awọn igbesi aye wọn lati dinku ipa ti awọn ailagbara wọnyi lori awọn ohun elo alabara ati awọn ọja. Ojuse alabara tun fa si ṣiṣi ati/tabi awọn imọ-ẹrọ ohun-ini ti o ni atilẹyin nipasẹ awọn ọja NXP fun lilo ninu awọn ohun elo alabara. NXP ko gba gbese fun eyikeyi ailagbara. Onibara yẹ ki o ṣayẹwo awọn imudojuiwọn aabo nigbagbogbo lati NXP ati tẹle ni deede. Onibara yoo yan awọn ọja pẹlu awọn ẹya aabo ti o dara julọ pade awọn ofin, awọn ilana, ati awọn iṣedede ti ohun elo ti a pinnu ati ṣe awọn ipinnu apẹrẹ ti o ga julọ nipa awọn ọja rẹ ati pe o jẹ iduro nikan fun ibamu pẹlu gbogbo ofin, ilana, ati awọn ibeere ti o ni ibatan aabo nipa awọn ọja rẹ, laibikita awọn ọja rẹ. eyikeyi alaye tabi atilẹyin ti o le wa nipasẹ NXP.

NXP ni Ẹgbẹ Idahun Iṣẹlẹ Aabo Ọja (PSIRT) (ti o le de ọdọ PSIRT@nxp.com) ti o ṣakoso iwadii, ijabọ, ati itusilẹ ojutu si awọn ailagbara aabo ti awọn ọja NXP.
NXP BV - NXP BV kii ṣe ile-iṣẹ ti n ṣiṣẹ ati pe ko kaakiri tabi ta awọn ọja.

Awọn aami-išowo
Akiyesi: Gbogbo awọn ami iyasọtọ ti a tọka si, awọn orukọ ọja, awọn orukọ iṣẹ, ati aami-iṣowo jẹ ohun-ini awọn oniwun wọn.

NXP - aami-ọrọ ati aami jẹ aami-iṣowo ti 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, Wapọ - jẹ aami-iṣowo ati/tabi aami-išowo ti a forukọsilẹ ti Arm Limited (tabi awọn oniranlọwọ tabi awọn alafaramo) ni AMẸRIKA ati/tabi ibomiiran. Imọ-ẹrọ ti o ni ibatan le ni aabo nipasẹ eyikeyi tabi gbogbo awọn itọsi, awọn aṣẹ lori ara, awọn apẹrẹ ati awọn aṣiri iṣowo. Gbogbo awọn ẹtọ wa ni ipamọ.

  • i.MX — jẹ aami-iṣowo ti NXP BV
  • J-Ọna asopọ - jẹ aami-iṣowo ti SEGGER Microcontroller GmbH.

Microsoft, Azure, ati ThreadX - jẹ aami-iṣowo ti ẹgbẹ Microsoft ti awọn ile-iṣẹ.

Jọwọ ṣe akiyesi pe awọn akiyesi pataki nipa iwe-ipamọ yii ati ọja (awọn) ti a ṣalaye ninu rẹ, ti wa ninu apakan 'Alaye ofin'.

© 2024 NXP BV
Fun alaye diẹ sii, jọwọ ṣabẹwo: https://www.nxp.com

  • Ọjọ idasilẹ: Oṣu Kẹrin Ọjọ 19, Ọdun 2024
  • Idanimọ iwe: AN14263

FAQ

Q: Kini idi akọkọ ti ọja yii?
A: Idi akọkọ ni lati mu iṣẹ idanimọ oju ṣiṣẹ nipa lilo awoṣe algorithm iran AI&ML pẹlu LVGL GUI ex ti o rọrunample lori SLN-TLHMI-IOT ọkọ.

Q: Bawo ni awọn olupilẹṣẹ ṣe le ni anfani lati akọsilẹ ohun elo yii?
A: Awọn Difelopa le kọ ẹkọ bi a ṣe le ṣe idanimọ oju lori ilana ni igbesẹ nipasẹ igbese nipa lilo ex ti a peseample ki o loye awọn alakoso ẹrọ, awọn ẹrọ HAL, ati awọn ilana iṣẹlẹ ti o kan.

Awọn iwe aṣẹ / Awọn orisun

NXP AN14263 Ṣiṣe idanimọ oju LVGL GUI lori Framewor [pdf] Itọsọna olumulo
AN14263 Ṣiṣe idanimọ Oju oju LVGL GUI lori Framewor, AN14263, Ṣiṣe idanimọ oju LVGL GUI lori Framewor, LVGL GUI idanimọ oju lori Framewor, Idanimọ oju lori Framewor, Idanimọ lori Framewor, Framewor

Awọn itọkasi

Fi ọrọìwòye

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti a beere ti wa ni samisi *