NXP AN13948 LVGL GUI ऍप्लिकेशन स्मार्ट HMI प्लॅटफॉर्म वापरकर्ता मॅन्युअलमध्ये एकत्रित करणे
परिचय
NXP ने SLN-TLHMI-IOT नावाची सोल्युशन डेव्हलपमेंट किट लाँच केली आहे. हे दोन अॅप्स असलेल्या स्मार्ट HMI अॅप्लिकेशन्सवर लक्ष केंद्रित करते - कॉफी मशीन आणि लिफ्ट (स्मार्ट पॅनल अॅप लवकरच येत आहे).
वापरकर्त्याला माहिती देण्यासाठी, काही मूलभूत दस्तऐवज समाविष्ट केले आहेत, उदाहरणार्थample, विकसक मार्गदर्शक.
मार्गदर्शक सर्व सोल्यूशन घटकांचा समावेश असलेल्या अनुप्रयोगांच्या मूलभूत सॉफ्टवेअर डिझाइन आणि आर्किटेक्चरची ओळख करून देतो.
या घटकांमध्ये SLN-TLHMI-IOT वापरून विकासकांना त्यांचे अनुप्रयोग अधिक सहज आणि कार्यक्षमतेने अंमलात आणण्यास मदत करण्यासाठी बूटलोडर, फ्रेमवर्क आणि HAL डिझाइनचा समावेश आहे.
दस्तऐवज आणि समाधानाबद्दल अधिक तपशीलांसाठी, भेट द्या: ML व्हिजन, व्हॉइस आणि ग्राफिकल UI सह i.MX RT117H वर आधारित NXP EdgeReady स्मार्ट HMI सोल्यूशन.
तथापि, प्रस्तावना कल्पना आणि मूलभूत वापरावर केंद्रित आहे. फ्रेमवर्कवर आधारित सॉफ्टवेअरच्या अनुपालनामुळे, विकासकांना त्यांचे अनुप्रयोग कसे अंमलात आणायचे हे जाणून घेणे अद्याप सोपे नाही.
विकासाला गती देण्यासाठी, प्रमुख घटक कसे अंमलात आणायचे ते सादर करण्यासाठी अतिरिक्त मार्गदर्शक आवश्यक आहेत (उदाample, LVGL GUI, दृष्टी आणि आवाज ओळख) चरण-दर-चरण.
उदाampले, ग्राहकांकडे त्यांचे स्वतःचे LVGL GUI ऍप्लिकेशन सोल्युशनमधील सध्याच्या अॅप्सपेक्षा वेगळे असावे.
NXP द्वारे प्रदान केलेल्या GUI मार्गदर्शकासह त्यांचे LVGL GUI कार्यान्वित केल्यानंतर, त्यांनी ते फ्रेमवर्कवर आधारित स्मार्ट HMI सॉफ्टवेअर प्लॅटफॉर्ममध्ये समाकलित केले पाहिजे.
या ऍप्लिकेशन नोटमध्ये वापरकर्त्याने विकसित केलेल्या LVGL GUI ऍप्लिकेशनला फ्रेमवर्कवर आधारित स्मार्ट HMI सॉफ्टवेअर प्लॅटफॉर्ममध्ये कसे समाकलित करायचे याचे वर्णन केले आहे.
या ऍप्लिकेशन नोटसह संदर्भ कोड देखील सादर केले आहेत.
टीप: ही ऍप्लिकेशन नोट GUI मार्गदर्शक सॉफ्टवेअर टूलसह LVGL वर आधारित GUI कशी विकसित करायची हे स्पष्ट करत नाही.
ओव्हरview LVGL आणि GUI मार्गदर्शकाचे वर्णन विभाग 1.1 आणि विभाग 1.2 मध्ये केले आहे.
प्रकाश आणि बहुमुखी ग्राफिक्स लायब्ररी
प्रकाश आणि बहुमुखी ग्राफिक्स लायब्ररी (LVGL) एक विनामूल्य आणि मुक्त-स्रोत ग्राफिक्स लायब्ररी आहे.
हे वापरण्यास-सुलभ ग्राफिकल घटक, सुंदर व्हिज्युअल इफेक्ट आणि कमी मेमरी फूटप्रिंटसह एम्बेडेड GUI तयार करण्यासाठी आवश्यक असलेली प्रत्येक गोष्ट प्रदान करते.
GUI मार्गदर्शक
GUI मार्गदर्शक हे NXP चे वापरकर्ता-अनुकूल ग्राफिकल यूजर इंटरफेस डेव्हलपमेंट टूल आहे जे ओपन-सोर्स LVGL ग्राफिक्स लायब्ररीसह उच्च-गुणवत्तेच्या डिस्प्लेचा जलद विकास करण्यास सक्षम करते.
GUI मार्गदर्शकाचे ड्रॅग-अँड-ड्रॉप संपादक LVGL च्या अनेक वैशिष्ट्यांचा वापर करणे सोपे करते. या वैशिष्ट्यांमध्ये विजेट्स, अॅनिमेशन्स आणि शैलींचा समावेश आहे ज्यामध्ये कमीतकमी किंवा कोणतेही कोडिंग नसलेले GUI तयार केले जाते.
एका बटणावर क्लिक करून, तुम्ही तुमचा ॲप्लिकेशन सिम्युलेटेड वातावरणात चालवू शकता किंवा टार्गेट प्रोजेक्टवर एक्सपोर्ट करू शकता.
GUI मार्गदर्शक कडून व्युत्पन्न केलेला कोड तुमच्या प्रोजेक्टमध्ये सहजपणे जोडला जाऊ शकतो, विकास प्रक्रियेला गती देतो आणि तुम्हाला तुमच्या अनुप्रयोगामध्ये एम्बेड केलेला वापरकर्ता इंटरफेस अखंडपणे जोडण्याची परवानगी देतो.
GUI मार्गदर्शक NXP सामान्य उद्देश आणि क्रॉसओवर MCU सह वापरण्यासाठी विनामूल्य आहे आणि अनेक समर्थित प्लॅटफॉर्मसाठी अंगभूत प्रकल्प टेम्पलेट समाविष्ट करते.
GUI मार्गदर्शकावरील LVGL आणि GUI विकासाबद्दल अधिक जाणून घेण्यासाठी, https://lvgl.io/ आणि GUI मार्गदर्शकाला भेट द्या.
विकासाचे वातावरण
स्मार्ट HMI प्लॅटफॉर्मवर GUI अॅप विकसित आणि एकत्रित करण्यासाठी विकास वातावरण तयार करा आणि सेट करा.
हार्डवेअर वातावरण
विकासानंतर प्रात्यक्षिकासाठी खालील हार्डवेअर आवश्यक आहे:
- NXP i.MX RT117H वर आधारित स्मार्ट HMI डेव्हलपमेंट किट
- 9-पिन कॉर्टेक्स-एम अॅडॉप्टरसह SEGGER J-Link
सॉफ्टवेअर वातावरण
या ऍप्लिकेशन नोटमध्ये वापरलेली सॉफ्टवेअर टूल्स आणि त्यांच्या आवृत्त्या खाली दिल्या आहेत:
- GUI मार्गदर्शक V1.5.0-GA
- MCUXpresso IDE V11.7.0
टीप: 11.7.0 पूर्वीच्या आवृत्त्यांमधील बग योग्य बिल्ड-इन मल्टीकोर प्रकल्पांना अनुमती देत नाही.
म्हणून, आवृत्ती 11.7.0 किंवा अधिक आवश्यक आहे. - RT1170 SDK V2.12.1
- SLN-TLHMI-IOT सॉफ्टवेअर प्लॅटफॉर्म – आमच्या अधिकृत GitHub रेपॉजिटरीमध्ये रिलीझ केलेले स्मार्ट HMI स्त्रोत कोड
हार्डवेअर आणि सॉफ्टवेअर वातावरण कसे सेट आणि स्थापित करावे याबद्दल अधिक जाणून घेण्यासाठी, SLN-TLHMI-IOT सह प्रारंभ करणे पहा (दस्तऐवज MCU-SMHMI-GSG).
LVGL GUI ऍप्लिकेशन स्मार्ट HMI प्लॅटफॉर्ममध्ये समाकलित करा
स्मार्ट एचएमआय सॉफ्टवेअर प्लॅटफॉर्म फ्रेमवर्क आर्किटेक्चरवर तयार केले आहे. विकसकांना त्यांचे LVGL GUI ऍप्लिकेशन स्मार्ट HMI सॉफ्टवेअर प्लॅटफॉर्मवर जोडणे कठीण जाते, जरी त्यांनी विकसक मार्गदर्शक वाचले आणि फ्रेमवर्कबद्दल माहिती असली तरीही.
पुढील भाग चरण-दर-चरण कसे अंमलात आणायचे ते स्पष्ट करतात.
GUI मार्गदर्शक वर LVGL GUI अनुप्रयोग विकसित करा
वर नमूद केल्याप्रमाणे, GUI मार्गदर्शक वर LVGL GUI कसे विकसित करायचे यावर या ऍप्लिकेशन नोटमध्ये भर दिलेला नाही.
पण एक GUI माजीample आवश्यक आहे.
म्हणून, GUI मार्गदर्शक मध्ये प्रदान केलेले स्लाइडर प्रगती नावाचे एक साधे GUI टेम्पलेट GUI माजी म्हणून निवडले आहे.ampद्रुत सेटअपसाठी ले.
स्लायडर प्रोग्रेस GUI टेम्प्लेट वापरला जातो कारण त्यात एक इमेज आहे जी अॅप्लिकेशनमध्ये बिल्डिंग इमेज रिसोर्सेस दाखवण्यासाठी आवश्यक आहे.
GUI माजीample व्युत्पन्न करणे खूप सोपे आहे: अद्यतनित LVGL लायब्ररी V8.3.2 आणि बोर्ड टेम्पलेट MIMXRT1176xxxxx सह प्रकल्प तयार करण्यासाठी, GUI मार्गदर्शक वापरकर्ता मार्गदर्शक (दस्तऐवज) पहा गुइडरग).
आकृती 1 प्रकल्प सेटिंग्ज दर्शविते.
टीप: आकृती 1 मधील लाल बॉक्समध्ये दर्शविल्याप्रमाणे पॅनेलचा प्रकार निवडणे आवश्यक आहे, कारण ते सध्याच्या विकास मंडळावर वापरले जाते.
प्रकल्प तयार केल्यानंतर, संबंधित LVGL GUI कोड व्युत्पन्न करण्यासाठी सिम्युलेटर चालवा आणि तसेच प्रकल्प तयार करा.
तुम्ही GUI ex चा प्रभाव तपासू शकताampसिम्युलेटर वर le.
आकृती 1. GUI मार्गदर्शक वर GUI प्रोजेक्ट सेटअप
स्मार्ट HMI वर तुमचा प्रकल्प तयार करा
टीप: प्रथम, MCUXpresso IDE वर तुमचा प्रकल्प तयार करा.
LVGL GUI नंतर माजीample तयार केले गेले आहे, ते तुमच्या GUI ऍप्लिकेशनची अंमलबजावणी करण्यासाठी MCUXpresso प्रोजेक्टवरील स्मार्ट HMI सॉफ्टवेअर प्लॅटफॉर्ममध्ये समाकलित करण्यासाठी मुख्य लक्ष्यापर्यंत जाऊ शकते.
स्मार्ट एचएमआय प्लॅटफॉर्मवर सादर केलेल्या सध्याच्या अॅप्लिकेशन प्रोजेक्टचे क्लोन करणे ही सोपी आणि द्रुत पद्धत आहे.
क्लोन केलेला स्त्रोत म्हणून लिफ्ट अॅप हा एक चांगला पर्याय आहे कारण त्याची साधी अंमलबजावणी आहे.
तुमचा प्रकल्प तयार करण्यासाठी, खालील चरणांचे अनुसरण करा:
- GitHub वरून क्लोन केलेल्या स्मार्ट HMI सोर्स कोडमध्ये “लिफ्ट” फोल्डर कॉपी आणि पेस्ट करा. ते तुमचे नाव बदला.
यासाठी माजीample, आम्ही GUI माजी नावाचे अनुसरण करून “slider_progress” निवडले आहेampले - "slider_progress" फोल्डरमध्ये, LVGL GUI प्रोजेक्ट असलेले "lvgl_vglite_lib" फोल्डर प्रविष्ट करा.
- प्रकल्प-संबंधित उघडा files .cproject आणि .project आणि सर्व स्ट्रिंग “एलिव्हेटर” ला तुमच्या प्रोजेक्ट नावाच्या “slider_progress” ने बदला.
- दोन्ही प्रकल्पासाठी समान बदली करा files “cm4” आणि “cm7” फोल्डरमध्ये.
लिफ्ट प्रोजेक्ट क्लोन करून तुमचा प्रोजेक्ट सेट करा files.
मध्ये दाखवल्याप्रमाणे आकृती 2 तुमचे प्रकल्प आता MCUXpresso IDE मध्ये लिफ्ट प्रकल्पाप्रमाणेच उघडले जाऊ शकतात.
आकृती 2. MCUXpresso वर प्रोजेक्ट सेटअप
स्मार्ट HMI साठी संसाधने तयार करा
सामान्यतः, प्रतिमा GUI मध्ये वापरल्या जातात (ध्वनी प्रॉम्प्टमध्ये देखील वापरले जातात).
प्रतिमा आणि ध्वनी यांना संसाधने म्हणतात, अनुक्रमे फ्लॅशमध्ये संग्रहित केले जातात. फ्लॅशवर प्रोग्रामिंग करण्यापूर्वी, संसाधने बायनरीमध्ये तयार केली पाहिजेत file.
मुख्य काम म्हणजे संदर्भ अॅप (लिफ्ट) ची नावे तुमच्यासोबत बदलणे.
असे करण्यासाठी, खालील चरणांचे अनुसरण करा:
- slider_progress/resource अंतर्गत क्लोन केलेले "इमेज" फोल्डर हटवा.
- तुमच्या GUI मार्गदर्शक प्रॉजक्टमध्ये \वत्पन्न केलेल्या अंतर्गत "इमेज" फोल्डर कॉपी करा.
- ते slider_progress/resource अंतर्गत पेस्ट करा (म्हणजेच, लिफ्ट अॅपमधील प्रतिमांऐवजी तुमच्या स्वतःच्या प्रतिमा वापरा.).
- *.mk हटवा file "इमेज" फोल्डरमध्ये GUI मार्गदर्शकासाठी वापरले जाते.
- चे नाव बदला files elevator_resource.txt, elevator_resource_build.bat, आणि elevator_resource_build.sh तुमच्या प्रकल्पाच्या नावासाठी "संसाधन" फोल्डरमध्ये slider_progress_resource.txt, slider_progress_resource_build.bat, आणि slider_progress_resource_build.bu.
टिप्पणी:- elevator_resource.txt: अॅपमध्ये वापरल्या जाणार्या सर्व संसाधनांचे मार्ग आणि नावे (इमेज आणि ध्वनी) यांचा समावेश आहे.
- elevator_resource_build.bat/elevator_resource_build.sh: विंडोज आणि लिनक्स मध्ये संसाधने तयार करण्यासाठी वापरला जातो.
- slider_progress_resource.txt उघडल्यानंतर file, सर्व स्ट्रिंग्स “एलिव्हेटर” ला “slider_progress” ने बदला.
- सर्व जुन्या प्रतिमा काढा आणि तुमच्या प्रतिमेसह नवीन जोडा file नावे (येथे “_scan_example_597x460.c”), जसे की इमेज ../../slider_progress/resource/images/_scan_example_597x460.c.
- slider_progress_resource.bat उघडा file विंडोजसाठी आणि सर्व स्ट्रिंग “एलिव्हेटर” ला “स्लायडर_प्रोग्रेस” ने बदला. लाही असेच करा file Linux साठी slider_progress_resource.sh.
- बॅचवर डबल-क्लिक करा file Windows साठी slider_progress_resource_build.bat.
- कमांड विंडो दिसते आणि इमेज रिसोर्स बायनरी व्युत्पन्न करण्यासाठी स्वयंचलितपणे चालते file फ्लॅशमध्ये सर्व प्रतिमा स्थाने आणि प्रतिमांचा एकूण बाइट आकार सेट करण्यासाठी C कोड असलेली प्रतिमा डेटा आणि संसाधन प्रवेश माहिती.
"संसाधन निर्मिती पूर्ण!" संदेश दर्शविल्यानंतर, प्रतिमा संसाधन बायनरी file slider_progress_resource.bin नावाचे आणि संसाधन प्रवेश माहिती file resource_information_table.txt नावाचे फोल्डर “resource” मध्ये व्युत्पन्न केले आहे.
प्रतिमा संसाधन बायनरी file फ्लॅशवर प्रोग्रॅम केले जाते, आणि रिसोर्स ऍक्सेस माहितीचा वापर स्मार्ट HMI वरील संसाधनांमध्ये प्रवेश करण्यासाठी केला जातो (विभाग 3.4.1 पहा).
LVGL GUI ऍप्लिकेशन स्मार्ट HMI मध्ये समाकलित करा
LVGL GUI ऍप्लिकेशन कोड (येथे SliderProgress GUI example) आणि अंगभूत प्रतिमा संसाधने, प्रवेश माहितीसह, स्मार्ट HMI मध्ये जोडली जाऊ शकतात.
याव्यतिरिक्त, स्मार्ट HMI वर तुमचा LVGL GUI अनुप्रयोग कार्यान्वित करण्यासाठी, LVGL GUI शी संबंधित HAL साधने आणि संबंधित कॉन्फिगरेशन जोडणे आवश्यक आहे.
LVGL GUI ऍप्लिकेशन M4 कोरवर चालत आहे, आणि संबंधित अंमलबजावणी जवळजवळ M4 प्रकल्प “sln_smart_tlhmi_slider_progress_cm4” मध्ये आहे.
पुढील उपविभागांमध्ये तपशीलवार चरणांचे वर्णन केले आहे.
LVGL GUI कोड आणि संसाधने जोडा
स्मार्ट HMI साठी वापरलेले LVGL GUI ऍप्लिकेशन कोड GUI मार्गदर्शक प्रोजेक्टमधील "कस्टम" आणि "जनरेट" फोल्डरमध्ये आहेत.
स्मार्ट HMI मध्ये कोड जोडण्यासाठी, खालील चरणांचे अनुसरण करा:
- slider_progress/cm4/custom/ अंतर्गत custom.c आणि custom.h ला GUI मार्गदर्शक प्रोजेक्टमधील “कस्टम” फोल्डरमध्ये बदला.
- slider_progress/cm4/ वरून "जनरेट केलेले" फोल्डर काढा.
नंतर GUI मार्गदर्शक प्रकल्पातील "जनरेट केलेले" फोल्डर कॉपी करा आणि ते slider_progress/cm4/ वर पेस्ट करा. - फोल्डर “इमेज” आणि “mPythonImages” आणि सर्व हटवा files *.mk आणि *.py "व्युत्पन्न" फोल्डरमध्ये.
वर नमूद केल्याप्रमाणे, "इमेज" फोल्डरमधील प्रतिमा संसाधन बायनरीमध्ये तयार केल्या आहेत file, म्हणून "इमेज" फोल्डर आवश्यक नाही.
फोल्डर “mPythonImages” आणि सर्व files *.mk आणि *.py स्मार्ट HMI साठी अवांछित आहेत. - स्मार्ट एचएमआय प्लॅटफॉर्मवर आधारित म्यूटेक्स नियंत्रण जोडण्यासाठी आणि फ्लॅशवर प्रतिमा स्थाने सेट करण्यासाठी, सुधारित करा file MCUXpresso IDE वर custom.c.
हे सर्व RT_PLATFORM द्वारे परिभाषित केले आहेत. - MCUXpresso IDE वर लिफ्ट प्रकल्प उघडा. sln_smart_tlhmi_elevator_cm4 > custom अंतर्गत custom.c मध्ये मॅक्रो डेफिनिशन RT_PLATFORM शोधा आणि #if defined(RT_PLATFORM) पासून #endif मध्ये सर्व कोड ओळी कॉपी करा आणि त्यामध्ये पेस्ट करा. file custom.c अंतर्गत sln_smart_tlhmi_slider_progress_cm4 > कस्टम.
- लिफ्ट GUI साठी वापरल्या जात असल्यामुळे #else असलेल्या #else अंतर्गत कोड ओळी हटवा.
जोडलेल्या कोड ओळी खालील गोष्टी कव्हर करतात:
- यांचा समावेश होतो files खालीलप्रमाणे आहेत:
- व्हेरिएबल घोषणा खालीलप्रमाणे आहे:
- custom_init() फंक्शनमधील सी कोड खालीलप्रमाणे आहेत:
- फंक्शन्ससाठी C कोड _takeLVGLMutex(), _giveLVGLMutex(), आणि setup_imgs() जेथे सर्व प्रतिमांची स्थाने सेट केली आहेत.
- यांचा समावेश होतो files खालीलप्रमाणे आहेत:
- resource_information_table.txt मधील प्रतिमांसाठी स्थान सेटअप कोडसह setup_imgs() फंक्शनमधील कोड बदला. file (विभाग 3.3 पहा).
या ऍप्लिकेशन नोटमध्ये, फक्त एक इमेज रिसोर्स आहे जो _scan_ex म्हणून सेट केला आहेample_597x460.data = (बेस + 0); ते केल्यानंतर, फंक्शन setup_imgs() खालीलप्रमाणे दाखवले आहे:
- custom.c शी संबंधित मॅक्रो व्याख्या आणि फंक्शन डिक्लेरेशन जोडण्यासाठी, custom.h मध्ये बदल करा file sln_smart_tlhmi_slider_progress_cm4 > सानुकूल अंतर्गत, खाली दर्शविल्याप्रमाणे:
- तुमच्या LVGL GUI ऍप्लिकेशनमधील प्रतिमा परिभाषित करण्यासाठी, lvgl_images_internal.h मध्ये बदल करा. file sln_smart_tlhmi_slider_progress_cm4 > सानुकूल अंतर्गत.
- एक प्रतिमा उघडा *.c file (येथे _scan_ex आहेample_597x460.c) GUI मार्गदर्शक प्रकल्पात /generated/ image/ अंतर्गत.
च्या शेवटी प्रतिमा व्याख्या कॉपी करा file. ते lvgl_images_internal.h वर पेस्ट करा file लिफ्ट अॅपसाठी प्रतिमांबद्दलच्या सर्व मूळ व्याख्या हटवल्यानंतर. - .डेटा = _scan_ex हटवाamp.डेटा फंक्शन setup_imgs() मध्ये सेट केल्यामुळे अॅरेमध्ये le_597x460_map.
अॅरे शेवटी lvgl_images_internal.h मध्ये परिभाषित केले आहे file, खाली दर्शविल्याप्रमाणे:
टिप्पणी: सर्व प्रतिमेसाठी वरील क्रियांची पुनरावृत्ती करा fileजर बहु-प्रतिमा असतील तर एक एक करा files.
- एक प्रतिमा उघडा *.c file (येथे _scan_ex आहेample_597x460.c) GUI मार्गदर्शक प्रकल्पात /generated/ image/ अंतर्गत.
- app_config.h मध्ये मॅक्रो डेफिनिशन APP_LVGL_IMGS_SIZE परिभाषित करून इमेज रिसोर्सचा एकूण आकार कॉन्फिगर करा file प्रतिमांच्या नवीन आकारासह sln_smart_tlhmi_slider_progress_cm7 > स्रोत अंतर्गत.
हा नवीन आकार बिल्ट रिसोर्स resource_information_table.txt मध्ये उपलब्ध आहे file.
HAL साधने आणि कॉन्फिगरेशन जोडा
फ्रेमवर्क आर्किटेक्चरवर आधारित, दोन HAL उपकरणे (डिस्प्ले आणि आउटपुट डिव्हाइसेस) LVGL GUI अनुप्रयोगासाठी डिझाइन केली आहेत.
दोन उपकरणांची अंमलबजावणी भिन्न LVGL GUI ऍप्लिकेशन्सच्या आधारावर भिन्न आहे जरी त्यांच्यासाठी सामान्य आर्किटेक्चर डिझाइन्स आहेत.
ते दोन मध्ये स्वतंत्रपणे लागू केले जातात files.
त्यामुळे दोघांचे क्लोन करणे आवश्यक आहे fileसध्याच्या लिफ्ट अॅप्लिकेशनमधून s आणि तुमचा LVGL GUI अॅप्लिकेशन बदला.
त्यानंतर, कॉन्फिगरेशनमध्ये आपले डिव्हाइस सक्षम करा file.
तुमचा LVGL GUI अॅप्लिकेशन फ्रेमवर्कवर आधारित स्मार्ट HMI प्लॅटफॉर्मवर तयार केला आहे.
तपशीलवार बदल MCUXpresso IDE मध्ये केले जाऊ शकतात, खाली दर्शविल्याप्रमाणे:
- प्रदर्शन HAL डिव्हाइस लागू करा
- hal_display_lvgl_elevator.c कॉपी आणि पेस्ट करा file गट sln_smart_tlhmi_slider_progress_cm4 > फ्रेमवर्क > hal > MCUXpresso प्रोजेक्टवर डिस्प्ले. तुमच्या अर्जासाठी त्याचे नाव hal_display_lvgl_sliderprogress.c असे ठेवा.
- उघडा file hal_display_lvgl_sliderprogress.c आणि सर्व स्ट्रिंग “एलिव्हेटर” ला तुमच्या ऍप्लिकेशन स्ट्रिंग “स्लायडरप्रोग्रेस” ने बदला file.
- आउटपुट HAL डिव्हाइस लागू करा
- hal_output_ui_elevator.c कॉपी आणि पेस्ट करा file गट sln_smart_tlhmi_slider_progress_cm4 > फ्रेमवर्क > hal > MCUXpresso प्रोजेक्टवर आउटपुट अंतर्गत. तुमच्या अर्जासाठी त्याचे नाव hal_output_ui_sliderprogress.c असे ठेवा.
- उघडा file hal_output_ui_sliderprogress.c. HAL उपकरणाची खालील मूलभूत सामान्य कार्ये वगळता लिफ्ट अनुप्रयोगाशी संबंधित सर्व कार्ये काढून टाका:
HAL_OutputDev_UiElevator_Init();
HAL_OutputDev_UiElevator_Deinit();
HAL_OutputDev_UiElevator_Start();
HAL_OutputDev_UiElevator_Stop();
HAL_OutputDev_UiElevator_InferComplete();
HAL_OutputDev_UiElevator_InputNotify();
याव्यतिरिक्त, खालील दोन फंक्शन्सच्या घोषणा आरक्षित करा:
APP_OutputDev_UiElevator_InferCompleteDecode();
APP_OutputDev_UiElevator_InputNotifyDecode(); - तुमचा अनुप्रयोग नंतर तयार करण्यासाठी HAL_OutputDev_UiElevator_InferComplete() फंक्शन साफ करा.
फंक्शनमध्ये, लिफ्ट ऍप्लिकेशनसाठी दृष्टी आणि व्हॉइस अल्गोरिदममधून परिणाम हाताळण्यासाठी वापरलेले _InferComplete_Vision() आणि _InferComplete_Voice() दोन्ही फंक्शन कॉल काढून टाका. - HAL_OutputDev_UiElevator_InputNotify() फंक्शन साफ करा आणि पुढील ऍप्लिकेशन डेव्हलपमेंटसाठी मूलभूत आर्किटेक्चर ठेवा.
शेवटी, फंक्शन खालीलप्रमाणे दिसते:
- सामान्य अंमलबजावणीसाठी वापरल्या जाणार्या s_UiSurface आणि s_AsBuffer[] वगळता enum आणि अॅरेसह सर्व व्हेरिएबल्स डिक्लेरेशन काढून टाका.
- तुमच्या ऍप्लिकेशन स्ट्रिंग "स्लायडरप्रोग्रेस" ने सर्व स्ट्रिंग "लिफ्ट" बदला.
- दोन्ही HAL उपकरणे सक्षम आणि कॉन्फिगर करा
- board_define.h उघडा file sln_smart_tlhmi_slider_progress_cm4 > बोर्ड अंतर्गत.
सर्व स्ट्रिंग्स “लिफ्ट” मधील तुमच्या ऍप्लिकेशन स्ट्रिंग “स्लायडरप्रोग्रेस” सह बदला file.
हे ENABLE_DISPLAY_DEV_LVGLSliderProgress आणि ENABLE_OUTPUT_DEV_UiSliderProgress या व्याख्यांनुसार डिस्प्ले आणि आउटपुट HAL डिव्हाइसेस सक्षम आणि कॉन्फिगर करते. - lvgl_support.c उघडा file sln_smart_tlhmi_slider_progress_cm4 > बोर्ड अंतर्गत. सर्व स्ट्रिंग्स “लिफ्ट” मधील तुमच्या ऍप्लिकेशन स्ट्रिंग “स्लायडरप्रोग्रेस” सह बदला file.
हे कॅमेरा प्री सक्षम करतेview डिस्प्ले ड्रायव्हर स्तरावर GUI वर.
- board_define.h उघडा file sln_smart_tlhmi_slider_progress_cm4 > बोर्ड अंतर्गत.
- दोन्ही HAL उपकरणांची नोंदणी करा
M4 मुख्य sln_smart_tlhmi_cm4.cpp उघडा file sln_smart_tlhmi_slider_progress_cm4 > स्त्रोत अंतर्गत.
सर्व स्ट्रिंग्स “लिफ्ट” मधील तुमच्या ऍप्लिकेशन स्ट्रिंग “स्लायडरप्रोग्रेस” सह बदला file.
हे लिफ्ट ऍप्लिकेशन ऐवजी तुमच्या ऍप्लिकेशनसाठी डिस्प्ले आणि आउटपुट HAL डिव्हाइसची नोंदणी करते.
म्हणून, स्मार्ट HMI वर मूलभूत LVGL GUI अनुप्रयोग चालविण्यासाठी एकत्रीकरण पूर्ण झाले आहे.
अनुप्रयोगासाठी अधिक आवश्यकतांवर अवलंबून, एकात्मिक मूलभूत अनुप्रयोगाच्या आधारावर अधिक अंमलबजावणी जोडली जाऊ शकते.
प्रात्यक्षिक
"slider_progress" ऍप्लिकेशन डेमो या ऍप्लिकेशन नोटसह लागू केला आहे.
डेमो सॉफ्टवेअर पॅकेज अनझिप केल्यानंतर, खाली ठेवा files आणि फोल्डर स्मार्ट HMI सॉफ्टवेअरमध्ये:
- द file hal_display_lvgl_sliderprpgress.c अंतर्गत [demo]\framework\hal\display\ मार्ग [smart HMI]\framework\hal\display\
- द file hal_output_ui_slider_progress.c अंतर्गत [demo]\framework\hal\output\ मार्ग [smart HMI]\framework\hal\output\
- [स्मार्ट एचएमआय] च्या रूट मार्गावर "स्लायडर_प्रोग्रेस" फोल्डर
स्मार्ट HMI प्लॅटफॉर्मवर सादर केलेल्या कॉफी मशीन/लिफ्ट अॅपप्रमाणे MCUXpresso IDE वर प्रकल्प उघडले जाऊ शकतात.
बिल्ट *.axf प्रोग्रामिंग केल्यानंतर file पत्त्यावर 0x30100000 आणि संसाधन बायनरी file 0x30700000 पत्त्यावर, LVGL GUI डेमो स्मार्ट HMI डेव्हलपमेंट बोर्डवर यशस्वीरित्या चालू शकतो (स्क्रीन डिस्प्लेसाठी आकृती 3 पहा).
टीप: MCUXpresso IDE चे v1.7.0 वापरत असल्यास, CM4 प्रोजेक्ट तयार करण्यापूर्वी सेटिंग > MCU C++ Linker > Managed Linker Script मधील “मॅनेज लिंक स्क्रिप्ट” सक्षम करा.
आकृती 3. LVGL GUI डेमो डिस्प्ले स्मार्ट HMI डेव्हलपमेंट बोर्डवर
पुनरावृत्ती इतिहास
पुनरावृत्ती इतिहास या दस्तऐवजातील पुनरावृत्तींचा सारांश देतो.
तक्ता 1. पुनरावृत्ती इतिहास
पुनरावृत्ती क्रमांक | तारीख | मूलत: बदल |
1 | ६ जून २०२४ | प्रारंभिक प्रकाशन |
दस्तऐवजातील स्त्रोत कोडबद्दल टीप
Exampया दस्तऐवजात दर्शविलेल्या le कोडमध्ये खालील कॉपीराइट आणि BSD-3-क्लॉज परवाना आहे:
कॉपीराइट 2023 NXP पुनर्वितरण आणि स्त्रोत आणि बायनरी फॉर्ममध्ये वापरास, सुधारणांसह किंवा त्याशिवाय, खालील अटी पूर्ण केल्या गेल्या असतील तर परवानगी आहे:
- स्त्रोत कोडच्या पुनर्वितरणांनी वरील कॉपीराइट सूचना, अटींची ही सूची आणि खालील अस्वीकरण राखून ठेवले पाहिजे.
- बायनरी स्वरूपात पुनर्वितरणांनी वरील कॉपीराइट सूचना, अटींची ही यादी आणि दस्तऐवजीकरण आणि/किंवा इतर सामग्रीमधील खालील अस्वीकरण वितरणासह प्रदान केले जाणे आवश्यक आहे.
- विशिष्ट सॉफ्टवेअरच्या लेखी परवानगीशिवाय या सॉफ्टवेअरमधून काढलेल्या उत्पादनांचे समर्थन करण्यासाठी किंवा त्यास प्रोत्साहित करण्यासाठी कॉपीराइट धारकाचे नाव किंवा त्याच्या सहयोगी नावे वापरली जाऊ शकत नाहीत.
हे सॉफ्टवेअर कॉपीराइट धारक आणि योगदानकर्त्यांद्वारे "जसे आहे तसे" आणि कोणतीही स्पष्ट किंवा निहित हमी प्रदान केली जाते, ज्यात, परंतु यापुरते मर्यादित नाही, निहित वॉरंटीजची निहित हमी.
कोणत्याही परिस्थितीत कॉपीराइट धारक किंवा योगदानकर्ते कोणत्याही प्रत्यक्ष, अप्रत्यक्ष, आकस्मिक, विशेष, अनुकरणीय, किंवा परिणामी नुकसानांसाठी जबाबदार असणार नाहीत (यासह, परंतु मर्यादित, संरक्षित केलेले नाही ES; वापराचे नुकसान, डेटा किंवा नफा; किंवा व्यवसायातील व्यत्यय) तथापि, कोणत्याही कारणास्तव आणि कोणत्याही उत्तरदायित्वाच्या सिद्धांतावर, करारामध्ये असो, कठोर उत्तरदायित्व असो, किंवा छेडछाड (निष्काळजीपणासह किंवा अन्यथा) कोणत्याही मार्गाने, कोणत्याही प्रकारे उद्भवली तरीही अशा संभाव्यतेचा ईडी
नुकसान.
कायदेशीर माहिती
व्याख्या
मसुदा: दस्तऐवजावरील मसुदा स्थिती सूचित करते की सामग्री अद्याप अंतर्गत पुन: अंतर्गत आहेview आणि औपचारिक मान्यतेच्या अधीन, ज्यामुळे बदल किंवा जोडणी होऊ शकतात.
NXP सेमीकंडक्टर दस्तऐवजाच्या मसुद्याच्या आवृत्तीमध्ये समाविष्ट केलेल्या माहितीच्या अचूकतेबद्दल किंवा पूर्णतेबद्दल कोणतेही प्रतिनिधित्व किंवा हमी देत नाहीत आणि अशा माहितीच्या वापराच्या परिणामांसाठी त्यांचे कोणतेही उत्तरदायित्व असणार नाही.
अस्वीकरण
मर्यादित हमी आणि दायित्व: या दस्तऐवजातील माहिती अचूक आणि विश्वासार्ह असल्याचे मानले जाते.
तथापि, NXP सेमीकंडक्टर अशा माहितीच्या अचूकतेबद्दल किंवा पूर्णतेबद्दल व्यक्त किंवा निहित कोणतेही प्रतिनिधित्व किंवा हमी देत नाहीत आणि अशा माहितीच्या वापराच्या परिणामांसाठी त्यांचे कोणतेही उत्तरदायित्व असणार नाही.
NXP Semiconductors या दस्तऐवजातील सामग्रीसाठी NXP सेमीकंडक्टर्सच्या बाहेरील माहिती स्त्रोताद्वारे प्रदान केल्यास कोणतीही जबाबदारी घेत नाही.
कोणत्याही परिस्थितीत NXP सेमीकंडक्टर कोणत्याही अप्रत्यक्ष, आनुषंगिक, दंडात्मक, विशेष किंवा परिणामी नुकसानीसाठी जबाबदार असणार नाहीत (यासह - मर्यादेशिवाय - गमावलेला नफा, गमावलेली बचत, व्यवसायातील व्यत्यय, कोणतीही उत्पादने काढून टाकणे किंवा बदलण्याशी संबंधित खर्च किंवा पुनर्कार्य शुल्क) किंवा असे नुकसान टोर्ट (निष्काळजीपणासह), वॉरंटी, कराराचा भंग किंवा इतर कोणत्याही कायदेशीर सिद्धांतावर आधारित नाही.
ग्राहकाला कोणत्याही कारणास्तव होणारे कोणतेही नुकसान असले तरी, येथे वर्णन केलेल्या उत्पादनांसाठी NXP सेमीकंडक्टर्सचे एकूण आणि एकत्रित दायित्व हे NXP सेमीकंडक्टर्सच्या व्यावसायिक विक्रीच्या अटी आणि शर्तींनुसार मर्यादित असेल.
बदल करण्याचा अधिकार: NXP सेमीकंडक्टर्स या दस्तऐवजात प्रकाशित केलेल्या माहितीमध्ये बदल करण्याचा अधिकार राखून ठेवतात, ज्यामध्ये कोणत्याही वेळी आणि सूचनेशिवाय मर्यादा नसलेले तपशील आणि उत्पादन वर्णन समाविष्ट आहे.
हा दस्तऐवज येथे प्रकाशित होण्यापूर्वी पुरवलेल्या सर्व माहितीची जागा घेतो आणि पुनर्स्थित करतो.
वापरासाठी योग्यता: NXP सेमीकंडक्टर उत्पादने लाइफ सपोर्ट, लाइफ-क्रिटिकल किंवा सेफ्टी-क्रिटिकल सिस्टीम किंवा उपकरणांमध्ये वापरण्यासाठी योग्य असण्याची रचना, अधिकृत किंवा हमी दिलेली नाही, किंवा ज्या ऍप्लिकेशनमध्ये NXP सेमीकंडक्टर उत्पादनाच्या अपयश किंवा खराबीमुळे वैयक्तिकरित्या परिणाम होण्याची अपेक्षा केली जाऊ शकते. इजा, मृत्यू किंवा गंभीर मालमत्ता किंवा पर्यावरणीय नुकसान.
NXP सेमीकंडक्टर्स आणि त्याचे पुरवठादार अशा उपकरणे किंवा अनुप्रयोगांमध्ये NXP सेमीकंडक्टर उत्पादनांचा समावेश आणि/किंवा वापरासाठी कोणतेही दायित्व स्वीकारत नाहीत आणि म्हणून असा समावेश आणि/किंवा वापर ग्राहकाच्या स्वतःच्या जोखमीवर आहे.
अर्ज: यापैकी कोणत्याही उत्पादनांसाठी येथे वर्णन केलेले अनुप्रयोग केवळ स्पष्टीकरणासाठी आहेत.
NXP सेमीकंडक्टर असे कोणतेही प्रतिनिधित्व किंवा हमी देत नाही की असे ऍप्लिकेशन पुढील चाचणी किंवा बदल न करता निर्दिष्ट वापरासाठी योग्य असतील.
NXP Semiconductors उत्पादने वापरून त्यांच्या ऍप्लिकेशन्स आणि उत्पादनांच्या डिझाइन आणि ऑपरेशनसाठी ग्राहक जबाबदार आहेत आणि NXP सेमीकंडक्टर ऍप्लिकेशन्स किंवा ग्राहक उत्पादन डिझाइनसह कोणत्याही सहाय्यासाठी कोणतेही दायित्व स्वीकारत नाहीत.
NXP सेमीकंडक्टर उत्पादन हे ग्राहकाच्या ॲप्लिकेशन्स आणि नियोजित उत्पादनांसाठी तसेच ग्राहकाच्या तृतीय पक्ष ग्राहक(चे) नियोजित ऍप्लिकेशन आणि वापरासाठी योग्य आणि योग्य आहे की नाही हे निर्धारित करणे ही ग्राहकाची एकमात्र जबाबदारी आहे.
ग्राहकांनी त्यांच्या ऍप्लिकेशन्स आणि उत्पादनांशी संबंधित जोखीम कमी करण्यासाठी योग्य डिझाइन आणि ऑपरेटिंग सुरक्षा प्रदान केली पाहिजे.
NXP सेमीकंडक्टर्स ग्राहकाच्या ऍप्लिकेशन्स किंवा उत्पादनांमधील कोणत्याही कमकुवतपणावर किंवा डिफॉल्टवर आधारित असलेल्या कोणत्याही डीफॉल्ट, नुकसान, खर्च किंवा समस्येशी संबंधित कोणतेही दायित्व स्वीकारत नाहीत, किंवा ग्राहकाच्या तृतीय पक्ष ग्राहकांद्वारे अनुप्रयोग किंवा वापर.
ऍप्लिकेशन्स आणि उत्पादनांचे किंवा ऍप्लिकेशनचे किंवा ग्राहकाच्या तृतीय पक्ष ग्राहकांद्वारे वापरणे टाळण्यासाठी NXP सेमीकंडक्टर उत्पादनांचा वापर करून ग्राहकाच्या ऍप्लिकेशन्स आणि उत्पादनांसाठी सर्व आवश्यक चाचणी करण्यासाठी ग्राहक जबाबदार आहे. NXP या संदर्भात कोणतेही दायित्व स्वीकारत नाही
व्यावसायिक विक्रीच्या अटी आणि नियम: NXP सेमीकंडक्टर उत्पादने येथे प्रकाशित केल्याप्रमाणे, व्यावसायिक विक्रीच्या सामान्य अटी व शर्तींच्या अधीन विकल्या जातात http://www.nxp.com/profile/terms, वैध लिखित वैयक्तिक करारामध्ये अन्यथा सहमत नसल्यास.
वैयक्तिक करार पूर्ण झाल्यास संबंधित कराराच्या अटी व शर्ती लागू होतील.
NXP सेमीकंडक्टर्स याद्वारे ग्राहकाद्वारे NXP सेमीकंडक्टर उत्पादनांच्या खरेदीच्या संदर्भात ग्राहकाच्या सामान्य अटी व शर्ती लागू करण्यास स्पष्टपणे आक्षेप घेतात.
निर्यात नियंत्रण: हा दस्तऐवज तसेच येथे वर्णन केलेले आयटम निर्यात नियंत्रण नियमांच्या अधीन असू शकतात.
निर्यातीसाठी सक्षम प्राधिकरणांकडून पूर्व परवानगी आवश्यक असू शकते.
गैर-ऑटोमोटिव्ह पात्र उत्पादनांमध्ये वापरण्यासाठी योग्यता: या डेटा शीटमध्ये हे विशिष्ट NXP सेमीकंडक्टर उत्पादन ऑटोमोटिव्ह पात्र आहे असे स्पष्टपणे नमूद केल्याशिवाय, उत्पादन ऑटोमोटिव्ह वापरासाठी योग्य नाही.
हे ऑटोमोटिव्ह चाचणी किंवा अनुप्रयोग आवश्यकतांनुसार पात्र किंवा चाचणी केलेले नाही. एनएक्सपी सेमीकंडक्टर ऑटोमोटिव्ह उपकरणे किंवा अनुप्रयोगांमध्ये गैर-ऑटोमोटिव्ह पात्र उत्पादनांचा समावेश आणि/किंवा वापरासाठी कोणतेही दायित्व स्वीकारत नाहीत.
ग्राहक ऑटोमोटिव्ह ऍप्लिकेशन्समध्ये ऑटोमोटिव्ह स्पेसिफिकेशन्स आणि स्टँडर्ड्ससाठी डिझाइन-इन आणि वापरण्यासाठी उत्पादन वापरत असल्यास, ग्राहक (अ) अशा ऑटोमोटिव्ह ऍप्लिकेशन्स, वापर आणि वैशिष्ट्यांसाठी उत्पादनाच्या NXP सेमीकंडक्टरच्या वॉरंटीशिवाय उत्पादन वापरेल, आणि ( b) जेव्हा जेव्हा ग्राहक NXP सेमीकंडक्टरच्या वैशिष्ट्यांच्या पलीकडे ऑटोमोटिव्ह ऍप्लिकेशन्ससाठी उत्पादन वापरतो तेव्हा असा वापर पूर्णपणे ग्राहकाच्या स्वतःच्या जोखमीवर असेल आणि (c) ग्राहक NXP सेमीकंडक्टरची पूर्ण भरपाई करतो, ग्राहकांच्या डिझाइन आणि वापरामुळे होणारे कोणतेही दायित्व, नुकसान किंवा अयशस्वी उत्पादन दाव्यांसाठी एनएक्सपी सेमीकंडक्टर्सच्या मानक वॉरंटी आणि एनएक्सपी सेमीकंडक्टरच्या उत्पादन वैशिष्ट्यांच्या पलीकडे ऑटोमोटिव्ह अॅप्लिकेशन्ससाठी उत्पादन.
भाषांतर: दस्तऐवजाची इंग्रजी नसलेली (अनुवादित) आवृत्ती, त्या दस्तऐवजातील कायदेशीर माहितीसह, केवळ संदर्भासाठी आहे.
अनुवादित आणि इंग्रजी आवृत्त्यांमध्ये काही विसंगती आढळल्यास इंग्रजी आवृत्ती प्रचलित असेल.
सुरक्षा: ग्राहक समजतो की सर्व NXP उत्पादने अज्ञात भेद्यतेच्या अधीन असू शकतात किंवा ज्ञात मर्यादांसह स्थापित सुरक्षा मानके किंवा वैशिष्ट्यांचे समर्थन करू शकतात.
ग्राहक त्याच्या ऍप्लिकेशन्स आणि उत्पादनांच्या डिझाइन आणि ऑपरेशनसाठी त्यांच्या संपूर्ण जीवनकाळात ग्राहकाच्या ऍप्लिकेशन्स आणि उत्पादनांवर या भेद्यतेचा प्रभाव कमी करण्यासाठी जबाबदार असतो.
ग्राहकाची जबाबदारी ग्राहकाच्या ऍप्लिकेशन्समध्ये वापरण्यासाठी NXP उत्पादनांद्वारे समर्थित इतर खुल्या आणि/किंवा मालकी तंत्रज्ञानापर्यंत देखील विस्तारित आहे.
NXP कोणत्याही भेद्यतेसाठी कोणतेही दायित्व स्वीकारत नाही.
ग्राहकाने नियमितपणे NXP कडून सुरक्षा अद्यतने तपासावीत आणि योग्य पाठपुरावा करावा.
ग्राहक सुरक्षितता वैशिष्ट्यांसह उत्पादने निवडेल जी इच्छित अनुप्रयोगाचे नियम, नियम आणि मानकांची सर्वोत्तम पूर्तता करतात आणि त्याच्या उत्पादनांबद्दल अंतिम डिझाइन निर्णय घेतात आणि त्याच्या उत्पादनांशी संबंधित सर्व कायदेशीर, नियामक आणि सुरक्षा संबंधित आवश्यकतांचे पालन करण्यासाठी पूर्णपणे जबाबदार असतात. NXP द्वारे प्रदान केलेली कोणतीही माहिती किंवा समर्थन.
NXP कडे प्रोडक्ट सिक्युरिटी इन्सिडेंट रिस्पॉन्स टीम (PSIRT) आहे (PSIRT@nxp.com वर पोहोचू शकते) जी NXP उत्पादनांच्या सुरक्षा भेद्यतेसाठी तपास, रिपोर्टिंग आणि सोल्यूशन रिलीझ व्यवस्थापित करते.
NXP BV: NXP BV ही ऑपरेटिंग कंपनी नाही आणि ती उत्पादने वितरित किंवा विकत नाही.
ट्रेडमार्क
सूचना: सर्व संदर्भित ब्रँड, उत्पादनांची नावे, सेवा नावे आणि ट्रेडमार्क ही त्यांच्या संबंधित मालकांची मालमत्ता आहे.
NXP: वर्डमार्क आणि लोगो हे NXP BV चे ट्रेडमार्क आहेत
i.MX: NXP BV चा ट्रेडमार्क आहे
ग्राहक समर्थन
अधिक माहितीसाठी, कृपया भेट द्या: http://www.nxp.com
कागदपत्रे / संसाधने
![]() |
NXP AN13948 स्मार्ट HMI प्लॅटफॉर्ममध्ये LVGL GUI ऍप्लिकेशन समाकलित करणे [pdf] वापरकर्ता मॅन्युअल AN13948 LVGL GUI ऍप्लिकेशनला स्मार्ट HMI प्लॅटफॉर्ममध्ये समाकलित करणे, AN13948, LVGL GUI ऍप्लिकेशनला स्मार्ट HMI प्लॅटफॉर्ममध्ये समाकलित करणे |