NXP AN14270 GUI жетектөөчүсүнө үн колдоосун кошуу

Техникалык шарттар
Продукт аты: AN14270 – i.MX 93 үчүн GUI жетектөөчүсүнө үн колдоосун кошуу
Текшерүү: 1.0
Дата: 16 май 2024 жыл
Продукт маалыматы
Аннотация: Бул колдонмо эскертүүсү GUI Guider менен кеп таануу технологиясын (VIT) бириктирүү аркылуу үндү интеграциялоону изилдейт.
Өндүрүүчү: NXP жарым өткөргүчтөрү
Бүттүview
GUI жетектөөчүсү: Ар кандай виджет, анимация жана стилдер менен жогорку сапаттагы дисплейлерди түзүү үчүн LVGL графикалык китепканасын колдонгон NXP колдонуучу интерфейсин өнүктүрүү куралы.
Үн интеллектуалдык технологиясы (VIT): NXP тарабынан бекер онлайн куралдар жана үн башкаруу программасы аркылуу ойгонуу сөздөрдү жана буйруктарды аныктоо үчүн курал.
Билдирүү кезеги (MQUEUE): GUI Guider жана VIT ортосундагы процесстер аралык байланыш үчүн POSIX 1003.1b билдирүү кезектерин ишке ашырат.
Аппараттык, программалык камсыздоо жана хост талаптары
| Категория | Description |
|---|---|
| Аппараттык | Продукциянын талаптарына ылайык |
| Программалык камсыздоо | Продукциянын талаптарына ылайык |
| Хост | Продукциянын талаптарына ылайык |
Продукт колдонуу нускамалары
Алдын ала талаптар
Жаркылдаган Linux версиясы
Linux версиясы менен EVK жаркылдоо үчүн:
$ ./uuu.exe -b emmc_all .sd-flash_evk imx-image-full-imx93evk.wic
Yocto долбоору менен инструменталдык чынжыр
- Бин папкасын түзүү:
$ mkdir ~/bin - Репо куралын жүктөп алыңыз:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo - PATH өзгөрмөсүнө бин папкасын кошуу:
$ export PATH=~/bin:$PATH - Клон рецепттери:
$ mkdir imx-yocto-bsp $ cd imx-yocto-bsp $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-mickledore -m imx-6.1.55-2.2.0.xml $ repo sync - Куруу жана конфигурациялоо үчүн:
$ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy
Көп берилүүчү суроолор (FAQ)
Q: VIT деген эмне?
A: VIT Voice Intelligent Technology дегенди билдирет, NXP тарабынан онлайн куралдарды жана үн менен башкаруу программасын колдонуу менен ойгонуу сөздөрүн жана буйруктарын аныктоочу курал.
Q: GUI Guider деген эмне?
A: GUI Guider – бул NXP колдонуучу интерфейсин иштеп чыгуу куралы, ал LVGL графикалык китепканасын ар кандай виджеттер, анимациялар жана стилдер менен жогорку сапаттагы дисплейлерди түзүү үчүн колдонот.
Документ маалыматы
| Маалымат | Мазмун |
| Ачкыч сөздөр | AN14270, VIT, кеп таануу, процесстер аралык байланыш (IPC), билдирүү кезеги, GUI жетектөөчүсү |
| Реферат | Бул колдонмо эскертүүсү VIT сыяктуу кеп таануу технологиясы менен интерфейсти жаратуучу GUI Guider ортосунда көпүрө түзүү аркылуу үндү интеграциялоо мүмкүнчүлүгүн изилдейт. |
Introduction
Колдонуучу интерфейси GUI Guider куралын колдонууну чектеди. Кээ бир колдонуу учурлары үчүн чычкан же сенсордук экран аркылуу гана өз ара аракеттенүү жетиштүү болушу мүмкүн. Бирок, кээде колдонуу иши анын чектөөлөрүнүн чегинен чыгууну талап кылат. Бул документ VIT сыяктуу кеп таануу технологиясы менен интерфейсти жаратуучу GUI Guider ортосунда көпүрө түзүү аркылуу үндү интеграциялоо мүмкүнчүлүгүн изилдейт. Ал бардык үн таануу буйруктарын жана ойготуу сөзүн GUI Guider тарабынан түзүлгөн ар кандай өз ара аракеттенүүгө байланыштыруунун универсалдуу ыкмасын колдонот.
Бүттүview
GUI Guider жана VIT технология командаларынын ортосундагы байланышты орнотуу үчүн 8-бөлүмдү караңыз. Байланыш иштеп чыгуучу катары түзүлгөн коддун жардамы менен түзүлөт, ал өз ара аракеттенүүнү түзүү үчүн GUIдеги окуяларды угат жана окшоштурууга мүмкүндүк берет.
GUI Guider
GUI Guider – LVGL графикалык китепканасын колдонуу менен жогорку сапаттагы дисплейди түзүү үчүн тез мүмкүнчүлүк берген NXP колдонуучу интерфейсин өнүктүрүү куралы. Ал ар кандай триггер конфигурациялары жана коддобогон мүмкүнчүлүгү менен ыңгайлаштырылган ар кандай виджеттерди, анимацияларды жана стилдерди колдонот. GUI Guider жөнүндө көбүрөөк маалымат алуу үчүн, GUI Guider v1.6.1 Колдонуучу колдонмосун караңыз (GUIGUIDERUG документи).
Үн интеллектуалдык технологиясы
Voice Intelligent Technology (VIT) бул NXP тарабынан бекер онлайн куралдарды, китепкананы жана үн менен башкаруу программалык пакетин колдонуу менен ойгонуу сөздөрдү жана буйруктарды аныктоо үчүн түзүлгөн курал. MCUXpresso аны микро контроллерлор үчүн колдоно алат же Linux BSP аны микро процессорлор үчүн колдоно алат.
Билдирүү кезеги
Билдирүү кезеги (MQUEUE) - POSIX 1003.1b форматындагы билдирүү кезектерин ишке ашыруучу менеджер. Ал GUI Guider жана VIT ортосундагы көпүрөнү түзүү үчүн процесстер аралык байланыш (IPC) катары колдонулат. Ал билдирүүлөр түрүндө маалыматтарды алмашып, VIT аркылуу жөнөтөт жана сценарий менен башкарууну ишке ашырат
command_handler.
Аппараттык, программалык камсыздоо жана хост талаптары
1-таблицада VIT жана GUI Guiderди колдонуу үчүн зарыл болгон аппараттык камсыздоо, программалык камсыздоо жана хосттун чоо-жайы берилген.
Таблица 1. Аппараттык камсыздоо, программалык камсыздоо жана колдонулган хост
| Категория | Description |
| Аппараттык | • i.MX 93 EVK
• Кубат менен камсыздоо: USB Type-C 45 Вт кубат берүүчү булагы (5 В/3 А) • USB Type-C эркектен USB Type-A эркек кабелине: жыйын, USB 3.0 ылайыктуу • LVDSL адаптери жана HDMI кабели же DY1212W-4856 LVCD ЖК панели • Ички i.MX 93 микрофону |
| Программалык камсыздоо | • Linux BSP версиясы: L6.1.55_2.2.0
• GUI Guider v1.6.1 версиясы • Toolchain 6.1-Langdale |
| Хост | • X86_64 Linux Ubuntu 20.04.6 LTS |
Алдын ала талаптар
Бул бөлүмдө талап кылынган ар кандай куралдарды орнотуу сүрөттөлөт.
Жаркылдаган Linux версиясы
Төмөнкү кадамдарды аткаруудан мурун, жүктөө конфигурациясын жүктөө режимине өзгөртүп, хост аркылуу USB туташтырыңыз. Көбүрөөк маалымат үчүн, i.MX Linux Колдонуучунун колдонмосун караңыз (IMXLUG документи).
EVK жаркылдоо үчүн, төмөнкү кадамдарды аткарыңыз:
- i.MX 93 (L6.1.55_2.2.0 же эң акыркы) үчүн акыркы NXP Linux BSP сүрөтүн жүктөп алыңыз.
- EVK жаркылдоо үчүн, акыркы UUU жүктөп алыңыз: https://github.com/nxp-imx/mfgtools/releases.
- EVK портун USB1 аркылуу хост менен EVK туташтырыңыз.
- imx-image-full колдонуп, эки программаны бирдей жайгаштырыңыз file жана төмөнкү буйрукту колдонуу менен EVK жаркырат:

Же болбосо, EVK жаркылдоо үчүн сүрөттү гана колдонуңуз:

Эскертүү: Жүктөө төөнөгүчтөрүн текшерүүнү камсыз кылыңыз.
Yocto долбоору менен инструменталдык чынжыр
Yocto долбоору - бул Linux негизиндеги системаларды түзүүгө жардам берген ачык булактуу кызматташуу. Yocto i.MX колдонгон сүрөттү түзөт.
EVK менен бирдей чөйрөгө ээ болуу үчүн хост машинасында тиркемелерди иштеп чыгуу инструменттери (ADT) же инструменттер чынжырчасы бар экенин текшериңиз. Ал максаттуу такта үчүн тиркемелерди түзө алгандыгын текшериңиз. Туура инструменттер тизмегин алуу үчүн i.MX Linux Колдонуучуларынын колдонмосундагы (IMXLUG документи) “4.5.12-бөлүмүнө” жана i.MX Yocto Долбоорунун Колдонуучуларынын колдонмосуна (IMXLXYOCTOUG документи) “4-бөлүмгө” кайрылыңыз.
Yocto чөйрөсүнөн хост машинасында инструменттердин чынжырын алуу үчүн, төмөнкү кадамдарды аткарыңыз:
- Үй каталогунда бин папкасын түзүңүз:

- ~/bin папкасынын PATH өзгөрмөсүндө экенин текшериңиз.

- Репозиторийде колдонуу үчүн рецепттерди клондоңуз:

- Куруу үчүн төмөнкүдөй конфигурациялаңыз:

- Аспаптар чынжырын түзүү үчүн, Yocto долбоору жок өз алдынча чөйрөнү төмөнкүдөй орнотуңуз:

GUI Guider
Бул бөлүмдө GUI Guider жана бул куралдын негизинде долбоорду түзүү үчүн негиздерин кантип колдонуу керектиги түшүндүрүлөт. Ал ошондой эле колдонуу жана алуу үчүн ар кандай мүнөздөмөлөрү жөнүндө түшүндүрөтtagошол мүнөздөмөлөрдүн э.
Gui Guider виджеттери жана окуялар
Колдонуучу GUI Guiderде долбоорду түзгөндө, ар кандай виджеттерди колдонуу автоматтык түрдө түзүлгөн объект катары дайындалат. Бул объект ар кандай касиеттерге ээ; алардын бири окуялар болуп саналат. Виджетке жараша окуялардын ар кандай триггерлери болушу мүмкүн жана эмне болуп жатканы максатка жараша болот. Мисалы үчүнample, 1-сүрөт бир баскыч экранды "Жүктөө экраны" аракетине гана бурса, эмне болорун көрсөтөт.

Бул объектилерди жолдон тапса болот /generated/gui-guider.h. скрипт command_handler алдын ала алатtagтриггерди симуляциялоочу виджеттер колдонгон окуялардын e.
Виджеттер жана окуялар боюнча көбүрөөк маалымат алуу үчүн, GUI Guider v1.6.1 Колдонуучу колдонмосун караңыз (GUIGUIDERUG документи).
Тез баштоо
Ишти баштоо үчүн, GUI Guider орнотуңуз.
Хост орнотууда, төмөнкү кадамдарды аткарыңыз:
- GUI Guiderдин эң акыркы версиясын жүктөп алыңыз (1.7.1 же эң акыркы).
- Жүктөп алуу үчүн кадамдарды аткарыңыз.
Бул жерде колдонуучу расмий экс менен долбоор түзүүнү тандай алатamples же жергиликтүү долбоорлор.
GUI долбоорун түзүү үчүн, төмөнкү кадамдарды аткарыңыз:
- Open GUI Guider 1.7.1.
- Долбоор түзүү.
- LVGL версиясын тандаңыз.

- i.MX 93 үчүн i.MX процессорун тандаңыз.

- Үлгү тандаңыз. Бул документ үчүн "ScreenTransition" үлгүсүн тандаңыз.

- Долбоордун атын тандап, долбоор түзүү үчүн, түзүү чыкылдатыңыз.

- 6-сүрөттө көрсөтүлгөндөй негизги терезе пайда болушу керек.

Виджеттерди, окуяларды жана триггерлерди түзүү
Виджеттерди, окуяларды жана триггерлерди түзүү үчүн, төмөнкү кадамдарды аткарыңыз:
- GUI жетектөөчүсүнүн сол тарабында кызыл менен белгиленген баскычты эки жолу басыңыз.

- Натыйжада, баскыч бардык жеткиликтүү виджеттерди көрсөтүү үчүн кеңейет.

Ар кандай касиеттери бар ар кандай виджеттер болушу мүмкүн. Бул колдонмо эскертүүсү виджет түрүнүн баскычына багытталган. Бирок, алардын чектөөлөрү менен виджеттердин башка түрлөрү да болушу мүмкүн. Көбүрөөк маалымат алуу үчүн, GUI Guider v1.6.1 Колдонуучу колдонмосундагы “Виджеттин чоо-жайын” караңыз (GUIGUIDERUG документи). - Баскыч виджетін виджеттер өтмөгүнөн UIге сүйрөө менен кошуңуз.

- касиеттери үчүн баскычты оң баскыч менен чыкылдатып, окуя кошуу чыкылдатуу.

- Виджет козгой турган бардык окуяларды көрсөткөн терезе ачылат.

- Андан кийин, терезе триггер күйгүзө турган бардык окуяларды көрсөтөт. Бул окуялар экрандарга, башка виджеттерге же ыңгайлаштырылган окуяларды түзүүгө колдонулушу мүмкүн.

- Бул үчүн эксample, жаңы экран жүктөлдү. Жүктөө экранын чыкылдатып, жүктөлө турган экрандарды тандаңыз.

- Колдонмону сыноо үчүн GUI Guider менен интеграцияланган симуляторду колдонуңуз. Ал кийинки баскычты жана колдонула турган симуляциянын түрүн тандоо үчүн колдонулат. Бул учурда, C симуляторун колдонуңуз.

- Жаңы экранды жүктөө үчүн, баскычты басыңыз.

i.MX 93 үчүн имарат
i.MX 93 куруу үчүн, төмөнкү кадамдарды аткарыңыз:
- GUI Guider колдонгон инструменттердин тизмеги туура орнотулганын текшериңиз. Кайчылаш текшерүү үчүн жолду текшериңиз

- Мурункуданample, тиркемени түзүү жана аны i.MX 93де иштетүү үчүн, жогорку тилкеден Долбоор > Build > Yocto тандаңыз.

- Долбоордун, Бинардык өлчөмүнүн жана Журналдын абалын текшерүү үчүн, тиркеменин ылдый жагындагы Маалымат тактасын тандаңыз. Маалымат тактасын кеңейтүү менен журналды текшериңиз.

- Журнал экиликтин жайгашкан жерин камтыган курулуш маалыматын берет file. Бул учурда, бинардык жолдо турат / /build/gui_guider.

- Хост терминалын табыңыз жана аны төмөнкү буйрукту колдонуп EVKге жөнөтүңүз:

Эскертүү: Жогорудагы ыкманы колдонуу үчүн, машиналар, хост жана максат бир тармакта болушу керек жана такта IP белгилүү болушу керек. - бинардыкты аткарыңыз file төмөнкү буйрукту колдонуу менен EVK боюнча:

Мисалы үчүнample, 19-сүрөттө көрсөтүлгөндөй, GUI Guider тарабынан курулган долбоорду көрсөткөн LVDS экранын колдонуу.

VIT
Бул бөлүмдө VIT өз алдынча кантип колдонуу жана аны GUI Guider менен байланыштыруу үчүн моделди түзүү түшүндүрүлөт. Ал керектүү мүнөздөмөлөргө ээ моделди түзүү үчүн хостту кантип колдонууну түшүндүрөт. Көбүрөөк маалымат алуу үчүн VOICE-INTELLIGENT-TECHNOLOGY бөлүмүнө кайрылыңыз.
Моделди түзүү
Моделди түзүү үчүн, төмөнкү кадамдарды аткарыңыз:
- VITке кириңиз webсайт: VIT моделин түзүү куралы
- МОДЕЛДИ ТҮЗҮҮ өтмөгүн басыңыз.

- "Linux BSP" жана "LF6.1.55_2.2.0" катары SW платформасын жана версиясын тандаңыз. Ошондой эле, "i.MX93" жана "English" тили катары Түзмөк үчүн тиешелүү опцияларды тандаңыз.

- VITке үн буйругун качан угууну баштоо керектигин айткан триггердин ролун аткарган ойготкуч сөздөрдү кошуңуз. Жаңы ойготуу сөз же буйрук түзүлгөндө, ал "Сезгичтик" маанисин коюуну суранат. Бул параметр таануу ылдамдыгын жогорулатат, башкача айтканда, эгер ал оң маани болсо, аны аныктоо оңой, бирок көбүрөөк жалган аныктоолорго алып келиши мүмкүн. Ачкыч сөздөрдүн ортосунда чаташтырбоо үчүн колдонулган терс маанинин ордуна, сезгичтиктин маанисин 0 катары сактаңыз. Мисалы,ampле, бул жерде "эй led" деген сөз кошулат.

- Колдонула турган үн буйруктарын кошуп, колдонулбагандарын жок кылыңыз.

- Моделди түзүү баскычын чыкылдатып, моделди жүктөө баскычы кулпусу ачылганга чейин күтө туруңуз.

- Модель МЕНИН МОДЕЛДЕР өтмөккө жөнөтүлөт. Эң акыркы моделди жүктөп алуу үчүн, жүктөө сүрөтчөсүн басыңыз.

- Zip папкасын чыгарып, сактаңыз file VIT_package папкасын камтыган VIT_Model_en.
VIT voice_ui_app өз алдынча катары түзүлүүдө
Voice_ui_app - бул мурункуample imx-voiceui сактагычы үчүн түзүлгөн. Бул колдонмо ойгонуу сөздөрдү жана буйруктарды аныктоо үчүн моделди колдонот. Бул документте колдонулган утилита "билдирүү" аргументи болуп саналат. Бул аргумент ойгонуу сөздү же буйрукту аныктаганда Python ачат file WakeWordNotify же WWCommandNotify идентификаторду (ID) колдонуп система аргументи менен. Бул ID триггерлерди айырмалоого жардам берет.
Хостта voice_ui_app түзүү жана аны мурунку түзүлгөн моделге дайындоого жардам берүү үчүн, төмөнкү кадамдарды аткарыңыз:
- Төмөнкү буйрукту колдонуп, VIT репозиторийинин филиалдык версиясын клондоңуз:
$ git клону https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0 - Түпнусканын камдык көчүрмөсүн түзүңүз file, төмөнкү буйрукту колдонуу:
$ CD /imx-voiceui
$ mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h - Мурда орнотулган куралдар чынжырын орнотуңуз:
$ source /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
Эскертүү: Yocto тарабынан түзүлгөн куралдар чынжырын колдонуңуз. - Төмөнкү буйрукту колдонуу менен долбооруңузду түзүңүз:
$ баарын кыл VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55 - Долбоор курулгандан кийин, ал релиз деп аталган каталогду түзөт. көчүрүү file Voice_ui_app бул каталогдогу EVK:
$ scp релиз/voice_ui_app root@ :/home/root
-notify параметрин колдонуу
"-notify" желекчесин өткөрүп жатканда voice_ui_app чакырган скрипт /usr/bin/ жолунда болушу керек. Тиркелгенди колдонуңуз files үчүн /usr/bin/ жана бул скрипттерди EVKге көчүрүңүз.
$ scp WakeWordNotify root@ :/usr/bin/
$ scp WWCommandNotify root@ :/usr/bin/
The files ичинде, wakeword/буйрук ID колдонуңуз жана аны билдирүү кезеги аркылуу жөнөтүңүз.
Буларды көчүргөндөн кийин files EVK үчүн, "-notify" параметрин колдонуңуз files WakeWordNotify жана WWCommandNotify керектүү уруксаттарга ээ. Аны EVKге кошуу үчүн, төмөнкү буйрукту аткарыңыз:
root@imx93evk:~# chmod a+x /usr/bin/WakeWordNotify root@imx93evk:~# chmod a+x /usr/bin/WWCommandNotify
Аудионун алдыңкы бөлүгү
Аудио алдыңкы бөлүк (AFE) VIT үнүн таануу үчүн канал катары колдонулат. Бул спикердин булагын жана шилтемесин колдонуу менен ызы-чууну жана жаңырыкты тазалоого жардам берет. Демек, натыйжада иштетүү үчүн колдонула турган ачык-айкын бир каналдуу микрофондук аудио болуп саналат. Көбүрөөк маалымат алуу үчүн VOICESEEKERди караңыз.
AFE EVK ичинде /unit_tests/nxp-afe жолунда тапса болот.
Программаны даярдоо жана ишке ашыруу үчүн төмөнкү кадамдарды аткарыңыз file nxp-afe ичинде TODO.md:
- DTB imx93-11×11-evk.dtb экенин текшериңиз.
- AFE колдоо үчүн aloop модулун орнотуу:
root@imx93evk:~# sudo modprobe snd-aloop - asound.conf камдык көчүрмөсүн түзүңүз жана такта үчүн тиешелүү asound.conf колдонуңуз:
root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf - VIT сөз кыймылдаткычын туура колдонуу үчүн WakeWordEngeди өзгөртүңүз. Бул конфигурация ичинде file /unit_tests/nxp-afe/Config.ini.
- WakeWordEngine = VIT үчүн демейки катары VoiceSpot колдонгон WakeWordEngine = VoiceSpot касиетин өзгөртүңүз.
- AFEди сыноо үчүн, voice_ui_app аткарыңыз:
root@imx93evk:~# ./voice_ui_app &
Эскертүү: Бул учурда, "-notify" параметрин кошуу зарыл эмес. - Төмөнкү буйрукту колдонуп, AFE аткарыңыз:
root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight & - AFE фондо иштей турганын аныктоо үчүн & буйругун колдонуңуз. Фондо кандай башка программалар иштеп жатканын билүү үчүн, төмөнкү буйрукту колдонуңуз:
root@imx93evk:~# ps - AFE же voice_ui_app жабуу үчүн төмөнкү буйрукту колдонуңуз:
root@imx93evk:~# pkill afe
root@imx93evk:~# pkill voice_ui_app
Voice_ui_app -notify жок иштеп жатат
- TODO.md ичиндеги кадамдарды аткаргандан кийин file, EVKдагы терминалдан бинардык voice_ui_app иштетиңиз. Бул VIT кантип иштеп жаткандыгы жөнүндө маалыматты көрсөтөт.

- Voice_ui_app колдонмосун берүү үчүн, төмөнкү буйрукту колдонуп AFE аткарыңыз:
root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight & - Ойготкуч сөздү жана үн буйругун айтыңыз жана ал күтүлгөндөй иштеп жатканын текшериңиз. Ал терминалда ойгонуу сөзүн жана үн буйругун төмөнкүдөй көрсөтөт:
– Wakeword 1 HEY NXP StartOffset 16640 аныкталды
– Үн буйругу аныкталды 3 КҮЙГҮЗҮҮ
GUI Guider VIT колдонмосу
Мурда түшүндүрүлгөндөй, тиркеме/скрипт command_handler VIT эскертмеси аркылуу команданын идентификаторун жана ойгонуу сөзүнүн IDсин IPC катары билдирүү кезегине жөнөтөт. Андан кийин ал GUI-Guider тиркемесинде окуяны имитациялоо үчүн бул идентификаторлорду тартат. 26-сүрөт бул байланыштын кантип ишке ашырылганын көрсөтөт.

Эскертүү: Түзүлгөн ыңгайлаштырылган модель менен туура иштөө үчүн иштеткичти конфигурациялоону камсыз кылыңыз. Бул өзгөртүүлөр хостто колдонулушу керек.
Окуяларды имитациялоо үчүн command_handler колдонуңуз
Окуяларды имитациялоо үчүн command_handler колдонуу үчүн, төмөнкү кадамдарды аткарыңыз:
- кошуу files command_handler.h жана command_handler.c каталогундагы GUI Guider долбооруна / /бажы/.
- Учурдагы колдонулган моделге дал келүү үчүн, voice_cmd_t жана voice_ww_t өзгөртүү менен command_handler.h өзгөртүңүз.
Эскертүү: Моделде бирдей тартип колдонулушун камсыз кылыңыз.
- Уйку сөздөрдүн жана буйруктардын санын өзгөртүү file / /custom/command_handler.h:
#аныктоо VIT_WW_NUMBER 2
#аныктоо VIT_CMD_NUMBER 5 - Команда интерфейсин инициализациялаңыз file / /custom/custom.c. GUI Guider муну жаратат file автоматтык түрдө.
#include "command_handler.h" - void custom_init(lv_ui *ui) катары аныкталган функция file /
path>/custom/custom.c. Бул функцияны кодду жана инициализатор буйругун start_command_handler() кошуу үчүн төмөнкүдөй өзгөртүүгө болот:
void custom_init(lv_ui *ui)
{
/* Коддоруңузду бул жерге кошуңуз */
start_command_handler();
}
Кайда:
start_command_handler() иштеткич катары иштеген жипти түзүү, VIT тарабынан жөнөтүлгөн билдирүүлөрдү алуу жана command_handler_link() тарабынан дайындалган буйруктарды аткаруу үчүн колдонулат. - VIT wakewords жана буйругун объект жана окуя менен байланыштыруу үчүн, төмөнкү буйрукту колдонуңуз:
void command_handler_link(voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t окуясы);
Кайда:
• command_handler_link() VIT аткарылышы үчүн симуляциялоо үчүн окуяны сактоо үчүн колдонулат.
• Киргизүүлөр, voice_ww_t жана voice_cmd_t, 2-кадамда түзүлөт, VIT моделине түздөн-түз байланыштуу.
• Үчүнчү аргумент, lv_obj_t**, GUI Guider объектин түзүүгө тиешелүү. Биринчиден, байланыштырыла турган объектти табыңыз. Аты кийинки түзүлүшкө дал келет _ . Аныкталган жерди табуу үчүн, текшериңиз file GUI Guider тарабынан genered/gui_guider.h дарегинде түзүлгөн. Бул жерде сиз шилтеме кылуу үчүн бардык мүмкүн болгон объектилер менен кийинки структураны таба аласыз.

custom_init(lv_ui *ui) функциясы GUI Guider аткарылышынын башталышында инициализациялоо үчүн колдонулат. Бул түзүм аны туура колдонууну билип, аны объект менен байланыштыруу үчүн колдонсо болот. Берилген структуранын көрсөткүчү *ui, ал эми издөө көрсөткүчү lv_obj_t**. Ошондуктан, бул структураны төмөнкү формат менен колдонуу зарыл:
&ui->speed_btn_1
- Төртүнчү аргумент, lv_event_code_t окуясы, ишке ашырыла турган окуяга тиешелүү. Анын адатта төмөнкүдөй түзүлүшү бар: LV_EVENT_ . Бул код аркылуу ишке киргизилген окуя менен эмне кылуу керектигин аныктайт viewэр file events_init.c.
Мисалы үчүнample, экран ылдамдыгында түзүлгөн btn_1 GUI Guider тарабынан түзүлгөн бул окуяларга ээ.

Example
Бул бөлүм экс-демонстрациялайтampБул ишке ашыруунун le GUI жетектөөчүсүнө үн колдоосун кошуу, LED виджетти өчүрүү жана GUI экрандарынын ортосунда өзгөртүү.
- Баскыч менен түзүлгөн GUI үлгүсүн колдонуп, виджеттерди кошуңуз. Мисалы үчүнample, LED виджет кошуңуз.

- Басылган окуяны btn_1 кошуңуз жана фонду өзгөртүү үчүн окуянын конфигурациясын кошуңуз. Бул учурда, LED виджетти "өчүрүү" үчүн фон кара түстө тандалышы керек. Ошондуктан, колдонулган окуя басылган > led_1 > Фон кара (#000000).

- Ошол эле баскычты колдонуп, окуяны "күйгүзүүгө" дайындоо үчүн конфигурациялаңыз. Бул учурда, btn_1 үчүн чыгарылган окуяны кошуп, фонго кызылды кошуңуз. Ошондуктан, колдонулган окуя чыгарылат > led_1 > Фон кызыл (#ff0000).

- GUI түзүлгөндөн кийин, бажы/папкага command_handler.c жана command_handler.h кошуңуз.
- Окуялар менен VIT ортосундагы байланышты түзүү үчүн, төмөнкү саптарды custom_init() ичинде кошуңуз file custom/custom.c. Экрандарды алмаштыруу үчүн, 1 экранга өзгөртүү үчүн btn_2 шилтемеси аркылуу дагы эки окуяны кошуңуз.


Кайда:- HEY_LED ойготуу сөзү жана TURN_OFF буйругунун айкалышы LEDди өчүрүү үчүн дайындалган. Башкача айтканда, фонду карага өзгөртүү.
- HEY_LED ойготуу сөзү жана TURN_ON буйругунун айкалышы LEDди кызылга айландыруу үчүн дайындалган.
- HEY_NXP жана NEXT буйругунун айкалышы бардыгын btn_1ге ыйгарылган окуяны жана 2-экранда btn_before колдонуу менен экрандардын ортосунда өзгөртүү үчүн дайындалган.
- HEY_NXP ойготуу сөзү жана RETURN буйругунун айкалышы 1-экранга кайтуу үчүн дайындалган.
- Долбоор > Build > Yocto тандаңыз жана долбоорду түзүңүз.

- Жаңы бинардык EVKга жөнөтүлдү.
Эскертүү: Маалымат журналы экилик жайгашкан жерди камсыз кылат.
scp root@ :/home/root

Сыноо жана конфигурация
Жүктөө аяктагандан кийин, EVKде төмөнкү кадамдарды аткарыңыз:
- lsmod иштетүү аркылуу snd-aloop модулу мурунтан эле жүктөлгөндүгүн текшериңиз. Эгерде модуль табылбаса, аны төмөнкү буйрукту колдонуп жүктөңүз:
root@imx93evk:~# sudo modprobe snd-aloop - Төмөнкү буйрукту колдонуу менен voice_ui_app иштетиңиз:
root@imx93evk:~# ./voice_ui_app -билдирүү &
Кайда:- -notify WakeWordNtfy жана WWCommandNtfyге эскертме жөнөтүү үчүн колдонулат.
Эскертүү: WakeWordNtfy жана WWCommandNtfyди usr/binге көчүрүүнү унутпаңыз. - & фондо иштетүү үчүн колдонулат.
- -notify WakeWordNtfy жана WWCommandNtfyге эскертме жөнөтүү үчүн колдонулат.
- VIT кыймылдаткычы Config.iniде орнотулганын текшериңиз.
- Фондо libvoiceseekerlight менен AFE иштетиңиз:
root@imx93evk:~# CD /unit_tests/nxp-afe/
root@imx93evk:~# ./afe libvoiceseekerlight & - Төмөнкү буйрукту колдонуп GUI Guider тиркемесин ачыңыз:
root@imx93evk:~# ./gui_guider
Бул кадамга чейин, LVDS экраны же HDMI түзүлгөн GUIди көрсөтөт.
- Мурда дайындалган ойготуу сөзүн жана үн буйругун колдонуп көрүңүз, мисалыampле, "Эй NXP" жана "Өчүрүү" деп айтыңыз. Өчүрүү буйругун айткандан кийин, дайындалган кайра чалууга жараша, GUI Guider иш-аракетти аткарат. Бул үчүн эксample, GUI Guider LED виджетинин фон түсүн өзгөртөт.

2-таблицада бул документти толуктоо үчүн колдонулган кээ бир кошумча ресурстар келтирилген.
Таблица 2. Тиешелүү ресурстар
| Ресурс | Шилтеме/кантип алуу керек |
| i.MX 93 Тиркемелер процессорунун үй-бүлөсү – Arm Cortex-A55, ML ылдамдатуу, кубаттуулукту үнөмдүү MPUNXP i.MX 93 A1 (i. MX93) | https://www.nxp.com/products/processors-and- microcontrollers/arm-processors/i-mx-applications- процессорлор/i-mx-9-процессорлор/i-mx-93-тиркемелер- процессор-үй-бүлө-колу-кортекс-a55-ml-тездетүү-кубат- натыйжалуу-mpu:i.MX93 |
| i.MX Колдонмо процессорлору үчүн камтылган Linux (IMXLINUX) | http://www.nxp.com/IMXLINUX |
| GUI Guider v1.6.1 Колдонуучу колдонмосу (GUIGUIDERUG) | https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf |
| VIT i.MX voiceUI репозиторий | https://github.com/nxp-imx/imx-voiceui |
Документтеги баштапкы код жөнүндө эскертүү
ExampБул документте көрсөтүлгөн код төмөнкү автордук укукка жана BSD-3-Clause лицензиясына ээ:
Автордук укук 2023-2024 NXP Кайра бөлүштүрүү жана баштапкы жана бинардык формаларда колдонууга, өзгөртүү менен же жок, төмөнкү шарттар аткарылган шартта уруксат берилет:
- Баштапкы кодду кайра бөлүштүрүүдө жогорудагы автордук укук эскертүүсү, бул шарттардын тизмеси жана кийинки жоопкерчиликтен баш тартуу керек.
- Бинардык формада кайра бөлүштүрүү жогорудагы автордук укук эскертүүсүн, бул шарттардын тизмесин жана документациядагы жана/же башка материалдардагы төмөнкү баш тартууну кайра чыгарууга тийиш.
- Бул программалык камсыздоодон алынган өнүмдөрдү ырастоо же алдын-ала жазуу жүзүндө атайын уруксатысыз автордук укук ээсинин аты-жөнү же анын авторлорунун аттары колдонулбайт.
БУЛ ПРОГРАММА АВТОМОБИЛЬ УКУК ЭЭЛЕРИ ЖАНА САЛЫМ КОШУУЧУЛАР ТАРАПЫНАН “БОЛГОНДОЙ” ЖАНА АР КАНДАЙ АЙКЫН ЖЕ КЫЙЫМЫЗ КЕПИЛДИКТЕР ТАРАПЫНАН БЕРИЛЕТ, БИРОК БИР ЧЕКТЕЛГЕН ЭМЕС, СОТТУК ЖАНА КАБАРЧЫЛЫГЫНЫН КЫЙЫМ КЕПИЛДИКТЕРИ. БАШКА АЛДЫ. ЭЧ КАЧАН АВТОМОБИЛЬ УКУК ЭЭСИ ЖЕ САЛЫМ КОШУУЧУЛАРЫ ТҮЗ, КЫЙЫР, кокустук, АТАЙЫН, ҮЛГҮЛҮҮ ЖЕ КИЙИНКИ ЗЫЯНДАР ҮЧҮН ЖООПКЕРЧИЛИКТИ АЛБАЙТ. КЫЗМАТТАРЫ КОЛДОНУУНУ, МААЛЫМАТТАРДЫ ЖЕ БИЗНЕСТИН ҮЗГҮЛҮҮЛҮГҮН ЖОГОТУУ; БУЛ ПРОГРАММАНЫ ПАЙДАЛАНУУ ЖӨНҮНДӨ, МЫНДАЙ ЗЫЯН АЛУУ МҮМКҮНЧҮЛҮГҮ ЖӨНҮНДӨ КЕҢЕШ БЕРИЛСЕН ДА.
Ревизия тарыхы
3-таблицада бул документке оңдоолор жалпыланган.
| Документ ID | Чыгарылган күнү | Description |
| AN14270 v.1.0 | 16 май 2024 жыл | Алгачкы коомдук чыгаруу |
Юридикалык маалымат
Аныктамалар
Долбоор — Документтеги долбоордун статусу мазмун дагы эле ички реактивде экенин көрсөтөтview жана формалдуу бекитилүүгө тийиш, бул өзгөртүүлөр же толуктоолор киргизилиши мүмкүн. NXP Semiconductors документтин долбоордук версиясында камтылган маалыматтын тактыгы же толуктугу боюнча эч кандай билдирүүлөрдү же кепилдиктерди бербейт жана мындай маалыматты пайдалануунун кесепеттери үчүн эч кандай жоопкерчилик тартпайт.
Жоопкерчиликтен баш тартуу
Чектелген кепилдик жана жоопкерчилик — Бул документтеги маалымат так жана ишенимдүү деп эсептелет. Бирок, NXP Semiconductors мындай маалыматтын тактыгы же толуктугу боюнча ачык же кыйыр түрдө эч кандай билдирүүлөрдү же кепилдиктерди бербейт жана мындай маалыматты колдонуунун кесепеттери үчүн эч кандай жоопкерчилик тартпайт. NXP Semiconductors бул документтин мазмуну үчүн эч кандай жоопкерчиликти албайт, эгерде NXP Semiconductors тышкары маалымат булагы тарабынан камсыз кылынса.
Эч кандай учурда NXP Semiconductors кыйыр, кокустук, жазалоочу, атайын же натыйжада келтирилген зыяндар үчүн жоопкерчилик тартпайт (анын ичинде - чексиз - жоголгон пайда, жоголгон аманаттар, бизнес үзгүлтүккө учурашы, кандайдыр бир өнүмдөрдү алмаштырууга байланыштуу чыгымдар же кайра иштетүү төлөмдөрү) же андай зыяндар кыйноого (анын ичинде шалаакылыкка), кепилдикке, келишимди бузууга же башка юридикалык теорияга негизделбесе.
Кардар кандайдыр бир себептерден улам келип чыгышы мүмкүн болгон ар кандай зыяндарга карабастан, NXP Semiconductors компаниясынын бул жерде сүрөттөлгөн өнүмдөр үчүн кардардын алдындагы жалпы жана жыйынды жоопкерчилиги NXP жарым өткөргүчтөрүн коммерциялык сатуунун жоболоруна жана шарттарына ылайык чектелет.
Өзгөртүүлөрдү киргизүү укугу — NXP Semiconductors бул документте жарыяланган маалыматка, анын ичинде чектөөсүз спецификацияларды жана продуктунун сүрөттөмөлөрүн каалаган убакта жана эскертүүсүз өзгөртүү укугун өзүнө калтырат. Бул документ бул жарыяланганга чейин берилген бардык маалыматтарды алмаштырат жана алмаштырат.
Колдонууга ылайыктуулугу — NXP Semiconductors өнүмдөрү жашоону камсыздоодо, жашоо үчүн маанилүү же коопсуздук үчүн маанилүү системаларда же жабдууларда, ошондой эле NXP Semiconductors продуктунун иштебей калышы же иштебей калышы негиздүү түрдө күтүлгөн колдонмолордо колдонууга ылайыктуу деп иштелип чыккан, уруксат берилбеген же кепилдик берилген эмес. жеке жаракат алып, өлүмгө же олуттуу мүлккө же айлана-чөйрөгө зыян келтирүүгө алып келет. NXP Semiconductors жана анын жеткирүүчүлөрү NXP Semiconductors өнүмдөрүн мындай жабдууларга же колдонмолорго кошуу жана/же колдонуу үчүн эч кандай жоопкерчиликти албайт, ошондуктан мындай кошуу жана/же колдонуу кардардын өз тобокелчилигинде болот.
Тиркемелер — Бул өнүмдөрдүн бирине карата бул жерде сүрөттөлгөн тиркемелер иллюстрациялык максаттар үчүн гана. NXP Semiconductors мындай тиркемелер кошумча тестирлөөсүз же өзгөртүүсүз көрсөтүлгөн колдонууга ылайыктуу болот деп эч кандай билдирүү же кепилдик бербейт.
Кардарлар NXP Semiconductors өнүмдөрүн колдонуу менен өздөрүнүн тиркемелерин жана өнүмдөрүн долбоорлоо жана иштетүү үчүн жоопкерчилик тартышат жана NXP Semiconductors тиркемелерге же кардар продуктунун дизайнына эч кандай жардам үчүн эч кандай жоопкерчилик тартпайт. NXP Semiconductors продуктусу кардардын колдонмолоруна жана пландаштырылган өнүмдөрүнө, ошондой эле пландаштырылган колдонууга жана кардардын үчүнчү тараптын кардар(лары) үчүн ылайыктуу экендигин аныктоо кардардын жалгыз милдети. Кардарлар алардын колдонмолоруна жана өнүмдөрүнө байланыштуу тобокелдиктерди азайтуу үчүн тиешелүү дизайн жана эксплуатациялоо чараларын камсыз кылышы керек.
NXP Semiconductors кардардын тиркемелериндеги же өнүмдөрүндөгү кандайдыр бир алсыздыкка же демейкиге, же кардардын үчүнчү тараптын кардары(лары) тарабынан колдонууга негизделген демейкиге, зыянга, чыгымдарга же көйгөйгө байланыштуу эч кандай жоопкерчиликти албайт. Кардар NXP Semiconductors өнүмдөрүн колдонуу менен кардардын тиркемелери жана өнүмдөрү үчүн бардык зарыл болгон тестирлөөдөн өтүү үчүн, тиркемелерди жана өнүмдөрдү же тиркемени же кардардын үчүнчү тараптын кардары (кардарлары) колдонуусун алдын алуу үчүн жооптуу болот. NXP бул жагынан эч кандай жоопкерчиликти албайт.
Коммерциялык сатуунун шарттары жана шарттары — NXP Semiconductors өнүмдөрү төмөнкү сайтта жарыяланган коммерциялык сатуунун жалпы шарттарына ылайык сатылат. https://www.nxp.com/profile/terms, эгерде жарактуу жазуу жүзүндөгү жеке келишимде башкача каралбаса. Жеке келишим түзүлгөн учурда тиешелүү келишимдин шарттары гана колдонулат. NXP Semiconductors ушуну менен кардар тарабынан NXP Semiconductors өнүмдөрүн сатып алууга карата кардардын жалпы жоболорун жана шарттарын колдонууга ачык каршы чыгат.
Экспорттук контроль - Бул документ, ошондой эле бул жерде сүрөттөлгөн пункт(лар) экспорттук контролдун жоболоруна дуушар болушу мүмкүн. Экспортко компетенттүү органдардан алдын ала уруксат талап кылынышы мүмкүн.
Автоунаа эмес квалификациялуу өнүмдөрдү колдонууга ылайыктуулугу — Бул документте бул NXP Semiconductors продуктунун автоунаада квалификациялуу экендиги ачык айтылбаса, продукт унаада колдонууга ылайыктуу эмес. Ал квалификациялуу эмес, автоунаа сыноосуна же колдонуу талаптарына ылайык сыналган эмес. NXP Semiconductors автомобилдик эмес квалификациялуу өнүмдөрдү автомобиль жабдууларына же колдонмолоруна кошуу жана/же колдонуу үчүн эч кандай жоопкерчиликти албайт.
Кардар өнүмдү автомобиль спецификацияларына жана стандарттарына ылайык автомобиль колдонмолорунда долбоорлоо жана колдонуу үчүн пайдаланган учурда, кардар (a) продуктуну NXP Semiconductors компаниясынын мындай унаа колдонмолору, колдонуу жана спецификациялары үчүн буюмга кепилдиксиз колдонушу керек жана ( б) эгерде кардар продуктту NXP Semiconductors спецификацияларынан тышкары унаа колдонмолору үчүн колдонсо, мындай колдонуу тобокелдиги кардардын өзүнө гана жүктөлөт жана (c) кардар NXP Semiconductors стандарттык гарантиясынан жана NXP Semiconductors продуктунун спецификацияларынан тышкары, кардар дизайнынан жана продуктуну автомобиль колдонмолору үчүн колдонуудан келип чыккан ар кандай жоопкерчилик, зыян же ишке ашпай калган өнүм дооматтары үчүн NXP Semiconductors компаниясынын ордун толуктайт.
Котормолор — Документтин англисче эмес (которулган) версиясы, анын ичинде ошол документтеги юридикалык маалымат, маалымдама үчүн гана. Которулган жана англисче версияларынын ортосунда кандайдыр бир дал келбестик болгон учурда англис версиясы артыкчылыкка ээ болот.
Коопсуздук — Кардар бардык NXP өнүмдөрү аныкталбаган алсыздыктарга дуушар болушу мүмкүн экенин түшүнөт же белгиленген коопсуздук стандарттарын же белгилүү чектөөлөр менен мүнөздөмөлөрдү колдошу мүмкүн. Кардардын тиркемелерине жана өнүмдөрүнө бул алсыздыктардын таасирин азайтуу үчүн Кардар өзүнүн тиркемелери менен өнүмдөрүнүн бүткүл жашоо циклдеринин дизайнына жана иштешине жооптуу. Кардардын жоопкерчилиги кардардын тиркемелеринде колдонуу үчүн NXP өнүмдөрү тарабынан колдоого алынган башка ачык жана/же менчик технологияларга да жайылтылат. NXP кандайдыр бир аялуу үчүн эч кандай жоопкерчиликти албайт. Кардар NXPден коопсуздук жаңыртууларын дайыма текшерип, тийиштүү түрдө ээрчип турушу керек.
Кардар талаптарга ылайыкталган колдонуунун эрежелерине, эрежелерине жана стандарттарына эң жакшы жооп берген коопсуздук белгилери бар продукцияны тандап алышы керек жана анын продуктуларына карата акыркы дизайн чечимдерин кабыл алат жана анын продукциясына карата бардык мыйзамдык, ченемдик жана коопсуздукка байланыштуу талаптардын сакталышы үчүн жалгыз жоопкерчилик тартат. NXP тарабынан камсыз кылынышы мүмкүн болгон ар кандай маалымат же колдоо.
NXPде Продукт коопсуздугу инциденттерине жооп берүү тобу (PSIRT) бар (бул даректен жетүүгө болот PSIRT@nxp.com) бул NXP өнүмдөрүнүн коопсуздук кемчиликтерин иликтөөнү, отчеттуулукту жана чечим чыгарууну башкарат.
NXP BV — NXP BV операциялык компания эмес жана өнүмдөрдү таркатпайт же сатпайт.
Соода белгилери
Эскертүү: Бардык шилтемеленген бренддер, продукт аттары, кызмат аттары жана соода белгилери алардын тиешелүү ээлеринин менчиги болуп саналат.
NXP — сөз белгиси жана логотип NXP BV соода белгилери болуп саналат
i.MX — NXP BV соода белгиси
Сураныч, бул документке жана бул жерде сүрөттөлгөн продукт(лар)га тиешелүү маанилүү эскертүүлөр "Укуктук маалымат" бөлүмүндө камтылганын эске алыңыз.
© 2024 NXP BV Бардык укуктар корголгон.
Көбүрөөк маалымат алуу үчүн төмөнкү дарекке кириңиз: https://www.nxp.com
Чыккан датасы: 16-май 2024-жыл
Документтин идентификатору: AN14270
Документтер / Ресурстар
![]() |
NXP AN14270 GUI жетектөөчүсүнө үн колдоосун кошуу [pdf] Колдонуучунун колдонмосу AN14270 GUI жетектөөчүсүнө үн колдоосун кошуу, AN14270, GUI жетектөөчүсүнө үн колдоосун кошуу, GUI жетектөөчүсү, GUI гид, гид |




