SILICON LABS Lab 3B - מאָדיפיצירן די באַניצער גייד פֿאַר סוויטש אויף / אַוועק
דעם האַנטיק געניטונג וועט באַווייַזן ווי צו מאַכן אַ מאַדאַפאַקיישאַן אויף איינער פון די סampדי אַפּלאַקיישאַנז וואָס שיפן ווי אַ טייל פון די Z-Wave SDK.
די געניטונג איז טייל פון דער סעריע "ז-וואַווע 1-טאָג קאָרס".
- אַרייַננעמען ניצן SmartStart
- דעקריפּט ז-וואַווע רף פראַמעס מיט די Zniffer
- 3A: צונויפנעמען באַשטימען אויף / אַוועק און געבן דיבוג
3B: מאָדיפיצירן באַשטימען אויף / אַוועק - פֿאַרשטיין FLiRS דעוויסעס
שליסל פֿעיִקייטן
- טוישן GPIO
- ינסטרומענט PWM
- ניצן RGB LED אויף ברעט
1. הקדמה
די געניטונג איז געבויט אויף שפּיץ פון די פריערדיקע געניטונג "3 אַ: צונויפנעמען סוויטש אויף / אַוועק און געבן דיבאַג", וואָס דעמאַנסטרייטיד ווי צו זאַמלען און נוצן די סוויטש אויף / אויסגעלאשן.ampדי אַפּלאַקיישאַן.
אין דעם געניטונג מיר וועלן מאַכן אַ מאָדיפיקאַטיאָן צו די sampדי אַפּלאַקיישאַן, דורך טוישן די GPIO וואָס קאָנטראָלס די געפירט. אין אַדישאַן, מיר וועלן נוצן אַ RGB געפירט און לערנען ווי צו נוצן PWM צו טוישן פארבן.
1.1 האַרדוואַרע רעקווירעמענץ
- 1 ווסטק הויפּט אַנטוויקלונג באָרד
- 1 Z-Wave ראַדיאָ אנטוויקלונג באָרד: ZGM130S SiP מאָדולע
- 1 UZB קאָנטראָללער
- 1 וסב זניפער
1.2 ווייכווארג רעקווירעמענץ
- סימפּליסיטי סטודיאָ v4
- Z-Wave 7 SDK
- ז-וואַווע פּיסי קאָנטראָללער
- Z-Wave Zniffer
פיגורע 1: הויפּט אַנטוויקלונג באָרד מיט Z-Wave SiP מאָדולע
1.3 פּרירעקוואַזאַץ
פריערדיקע הענט-אויף עקסערסייזיז האָבן קאַווערד ווי צו נוצן די פּיסי קאָנטראָללער און Zniffer אַפּלאַקיישאַן צו בויען אַ Z-Wave נעץ און קאַפּטשערינג די רף קאָמוניקאַציע פֿאַר אַנטוויקלונג ציל. דעם געניטונג אַסומז איר זענט באַקאַנט מיט די מכשירים.
פריערדיקע הענט-אויף עקסערסייזיז האָבן אויך באדעקט ווי צו נוצן די sampדי אַפּלאַקיישאַנז מיט די Z-Wave SDK. דעם געניטונג אַסומז איר זענט באַקאַנט מיט ניצן און קאַמפּיילינג איינער פון די סampדי אַפּלאַקיישאַנז.
די Z-Wave פריימווערק קומט מיט אַ ייַזנוואַרג אַבסטראַקציע שיכטע (HAL) דיפיינד דורך board.h און board.c, פּראַוויידינג די מעגלעכקייט פון ימפּלאַמאַנץ פֿאַר יעדער פון דיין ייַזנוואַרג פּלאַטפאָרמס.
די האַרדוואַרע אַבסטראַקטיאָן שיכטע (HAL) איז פּראָגראַם קאָד צווישן די ייַזנוואַרג פון אַ סיסטעם און זייַן ווייכווארג וואָס גיט אַ קאָנסיסטענט צובינד פֿאַר אַפּלאַקיישאַנז וואָס קענען לויפן אויף עטלעכע פאַרשידענע ייַזנוואַרג פּלאַטפאָרמס. צו נעמען אַדוואַנטtagמיט דעם פיייקייט, אַפּלאַקיישאַנז זאָל אַקסעס ייַזנוואַרג דורך די API צוגעשטעלט דורך די HAL, אלא ווי גלייַך. דערנאָך, ווען איר מאַך צו נייַ ייַזנוואַרג, איר נאָר דאַרפֿן צו דערהייַנטיקן די HAL.
2.1 עפֿן Sampדי פּראָיעקט
פֿאַר דעם געניטונג איר דאַרפֿן צו עפֿענען די סוויטש אויף / אויסגעלאשןampדי אַפּלאַקיישאַן. אויב איר האָט דורכגעקאָכט געניטונג "3A Compile Switch OnOff און געבן דיבאַג", עס זאָל שוין זיין געעפנט אין דיין Simplicity Studio IDE.
אין דעם אָפּטיילונג מיר וועלן קוקן אין די ברעט files און פֿאַרשטיין ווי די לעדס זענען יניטיאַלייזד.
- פון די הויפּט file "SwitchOnOff.c", געפינען "ApplicationInit ()" און באַמערקן די רופן צו Board_Init ().
- שטעלן דיין קאָרסער אויף Board_Init () און דריקן F3 צו עפֿענען די דעקלאַראַציע.
3. אין Board_Init() באַמערקן ווי לעדס קאַנטיינד אין BOARD_LED_COUNT זענען יניטיאַלייזד דורך גערופֿן Board_Con-figLed()
4. שטעלן דיין קאָורסער אויף BOARD_LED_COUNT און דריקן F3 צו עפֿענען די דעקלאַראַציע.
5. די לעדס דיפיינד אין led_id_t זענען ווי גייט:
6. צוריקקומען צו די ברעט file.
7. שטעלן דיין קאָורסער אויף Board_ConfigLed() און דריקן F3 צו עפֿענען די דעקלאַראַציע.
8. נאָטיץ אַלע די לעדס דיפיינד אין led_id_t זענען דעמאָלט קאַנפיגיערד אין Board_ConfigLed () ווי רעזולטאַט.
וואָס דאָס מיטל איז אַז אַלע לעדס אויף די אַנטוויקלונג ברעט זענען שוין דיפיינד ווי אַוטפּוץ און גרייט צו נוצן.
3. מאַכן אַ מאָדיפיקאַטיאָן צו אַ Z-Wave Sampדי אַפּלאַקיישאַן
אין דעם געניטונג מיר מאָדיפיצירן די GPIOs געניצט פֿאַר די געפירט אין די באַשטימען אויף / אויסגעלאשן סampדי אַפּלאַקיישאַן. אין די פריערדיקע אָפּטיילונג מיר געלערנט ווי אַלע לעדס אויף די אַנטוויקלונג ברעט זענען שוין יניטיאַלייזד ווי רעזולטאַט און גרייט צו נוצן.
3.1 ניצן די RGB געפירט
מיר וועלן נוצן די אַנבאָרד RGB געפירט אויף די Z-Wave אַנטוויקלונג מאָדולע, אַנשטאָט פון די געפירט אויף די קנעפּל ברעט.
1. געפֿינען די RefreshMMI פונקציע, ווי געוויזן אין פיגורע 6, אין די SwitchOnOff.c הויפּט אַפּלאַקיישאַן file.
פיגורע 6: RefreshMMI אָן קיין מאָדיפיקאַטיאָנס
2. מיר וועלן נוצן די פֿונקציע "Board_SetLed" אָבער טוישן די GPIO צו
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B
3. רופן "Board_SetLed" 3 מאל אין ביידע די OFF שטאַט און אין די ON שטאַט, ווי געוויזן אין פיגורע 7.
אונדזער נייַע מאָדיפיקאַטיאָן איז איצט ימפּלאַמענאַד, און איר זענט גרייט צו זאַמלען.
די סטעפּס צו פּראָגראַם אַ מיטל זענען באדעקט אין געניטונג "3A Compile Switch OnOff און געבן דיבאַג", און בעקיצער ריפּיטיד דאָ:
- דריקט אויף "בויען"
קנעפּל צו אָנהייבן בנין די פּרויעקט.
- ווען די בויען ענדיקן, יקספּאַנד די "בינאַריעס" טעקע און רעכט גיט אויף די *.העקס file צו סעלעקטירן "פלאַש צו מיטל ...".
- אויסקלייַבן די קאָננעקטעד ייַזנוואַרג אין די קנאַל-אַרויף פֿענצטער. דער "פלאַש פּראָגראַמיסט" איז איצט פּריפילד מיט אַלע נויטיק דאַטן, און איר זענט גרייט צו גיט אויף "פּראָגראַם".
- דריקט "פּראָגראַם".
נאָך אַ קורץ בשעת די פּראָגראַממינג ענדיקן, און דיין סוף מיטל איז איצט פלאַשט מיט דיין מאַדאַפייד ווערסיע פון באַשטימען אויף / אויסגעלאשן.
3.1.1 פּרובירן די פאַנגקשאַנאַליטי
אין פריערדיקע עקסערסייזיז מיר האָבן שוין אַרייַנגערעכנט די מיטל אין אַ זיכער Z-Wave נעץ ניצן SmartStart. אָפּשיקן צו געניטונג "אַרייַננעמען ניצן SmartStart" פֿאַר ינסטראַקשאַנז.
אָנצוהערעניש די ינערלעך file סיסטעם איז נישט ירייסט צווישן ריפּראָגראַממינג. דאָס אַלאַוז אַ נאָדע צו בלייבן אין אַ נעץ און האַלטן די זעלבע נעץ שליסלען ווען איר רעפּראָגראַם עס.
אויב איר דאַרפֿן צו טוישן למשל די אָפטקייַט אין וואָס די מאָדולע אַפּערייץ אָדער די DSK, איר דאַרפֿן צו "מעקן" די שפּאָן איידער די נייַע אָפטקייַט וועט זיין געשריבן צו די ינערלעך נוום.
ווי אַזאַ, דיין מיטל איז שוין אַרייַנגערעכנט אין די נעץ.
פּרובירן די פאַנגקשאַנאַליטי דורך וועראַפייינג איר קענען קער אויף און אַוועק די RGB געפירט.
- פּרובירן די פאַנגקשאַנאַליטי מיט די "באַסיק שטעלן אויף" און "באַסיק שטעלן אַוועק" אין די פּיסי קאָנטראָללער. די RGB געפירט זאָל זיין אויסגעדרייט אויף און אַוועק.
- די RGB געפירט קענען אויך זיין אויסגעדרייט אויף און אַוועק מיט BTN0 אויף די ייַזנוואַרג.
מיר האָבן איצט וועראַפייד אַז די מאָדיפיקאַטיאָן איז ארבעטן ווי דערוואַרט און האָבן הצלחה טשיינדזשד די GPIO געניצט אין אַ Sampדי אַפּלאַקיישאַן
3.2 טוישן די RGB קאָליר קאָמפּאָנענט
אין דעם אָפּטיילונג, מיר וועלן מאָדיפיצירן די RGB געפירט און פּרובירן צו מישן די קאָליר קאַמפּאָונאַנץ.
"א קאָליר אין די RGB קאָליר מאָדעל איז דיסקרייבד דורך ינדאַקייטינג ווי פיל פון יעדער פון די רויט, גרין און בלוי איז אַרייַנגערעכנט. די קאָליר איז אויסגעדריקט ווי אַ RGB טריפּלאַט (ר, ג, ב), יעדער קאָמפּאָנענט פון וואָס קענען בייַטן פון נול צו אַ דיפיינד מאַקסימום ווערט. אויב אַלע קאַמפּאָונאַנץ זענען אין נול דער רעזולטאַט איז שוואַרץ; אויב אַלע זענען מאַקסימום, דער רעזולטאַט איז די העלסטע רעפּריזענאַבאַל ווייַס.
פֿון וויקיפּעדיע אויף RGB קאָליר מאָדעל.
זינט מיר ענייבאַלד אַלע קאָליר קאַמפּאָונאַנץ אין די פריערדיקע אָפּטיילונג, די RGB געפירט איז ווייַס ווען אויף. דורך קערן אויף און אַוועק פון די יחיד קאַמפּאָונאַנץ, מיר קענען טוישן די געפירט. אין אַדישאַן, דורך אַדזשאַסטינג די ינטענסיטי פון יעדער קאָליר קאַמפּאָונאַנץ, מיר קענען מאַכן אַלע די פארבן צווישן. פֿאַר דעם, מיר וועלן נוצן PWM צו קאָנטראָלירן די GPIOs.
- אין אַפּפּליקאַטיאָן טאַסק () ינישאַלייז די PwmTimer און סעטאַפּ די RGB פּינס צו PWM, ווי געוויזן אין פיגורע 9.
- אין RefreshMMI (), מיר וועלן נוצן אַ טראַפ - נומער פֿאַר יעדער קאָליר קאָמפּאָנענט. ניצן ראַנד () צו באַקומען אַ נייַע ווערט יעדער מאָל ווען די געפירט איז אויסגעדרייט אויף.
- ניצן DPRINTF () צו שרייַבן די ניי דזשענערייטאַד ווערט צו די סיריאַל דיבאַג פּאָרט.
- פאַרבייַטן Board_SetLed () מיט Board_RgbLedSetPwm (), צו נוצן די טראַפ ווערט.
- אָפּשיקן צו פיגורע 10 פֿאַר די דערהייַנטיקט RefreshMMI ().
פיגורע 10: RefreshMMI דערהייַנטיקט מיט PWM
אונדזער נייַע מאָדיפיקאַטיאָן איז איצט ימפּלאַמענאַד, און איר זענט גרייט צו זאַמלען.
- דריקט אויף "בויען"
קנעפּל צו אָנהייבן בנין די פּרויעקט.
- ווען די בויען ענדיקן, יקספּאַנד די "בינאַריעס" טעקע און רעכט גיט אויף די *.העקס file צו סעלעקטירן "פלאַש צו מיטל ...".
- אויסקלייַבן די קאָננעקטעד ייַזנוואַרג אין די קנאַל-אַרויף פֿענצטער. דער "פלאַש פּראָגראַמיסט" איז איצט פּריפילד מיט אַלע נויטיק דאַטן, און איר זענט גרייט צו גיט אויף "פּראָגראַם".
- דריקט "פּראָגראַם".
נאָך אַ קורץ בשעת די פּראָגראַממינג ענדיקן, און דיין סוף מיטל איז איצט פלאַשט מיט דיין מאַדאַפייד ווערסיע פון באַשטימען אויף / אויסגעלאשן.
3.2.1 פּרובירן די פאַנגקשאַנאַליטי
פּרובירן די פאַנגקשאַנאַליטי דורך וועראַפייינג איר קענען טוישן די קאָליר פון די RGB געפירט.
- פּרובירן די פאַנגקשאַנאַליטי ניצן די "באַסיק שטעלן אויף" אין די פּיסי קאָנטראָללער.
- דריקט אויף "Basic Set ON" צו זען אַ ענדערונג אין קאָליר.
מיר האָבן איצט וועראַפייד אַז די מאָדיפיקאַטיאָן אַרבעט ווי דערוואַרט און האָבן הצלחה טשיינדזשד די GPIO צו נוצן PWM.
4 דיסקוסיע
אין דעם געניטונג מיר האָבן מאַדאַפייד סוויטש אויף / אויסגעלאשן פון קאַנטראָולינג אַ פּשוט געפירט צו קאַנטראָולינג אַ מולטי-קאָליר געפירט. דעפּענדינג אויף די PWM וואַלועס, מיר קענען איצט טוישן צו קיין קאָליר און ינטענסיטי.
- זאָל אַ "ביינערי סוויטש" זיין געוויינט ווי דיווייס טיפּ פֿאַר דעם אַפּלאַקיישאַן?
- וואָס באַפֿעלן קלאסן זענען בעסער פּאַסיק פֿאַר אַ מולטי-קאָליר געפירט?
צו ענטפֿערן די קשיא, איר זאָל אָפּשיקן צו די Z-Wave באַשרייַבונג:
- Z-Wave Plus v2 דיווייס טיפּ ספּעסיפיקאַטיאָן
- Z-Wave Application Command Class Specification
דאָס פאַרענדיקן די טוטאָריאַל אין ווי צו מאָדיפיצירן און טוישן די GPIOs פון אַ Z-Wave Sampדי אַפּלאַקיישאַן.
לייענען מער וועגן דעם מאַנואַל און אראפקאפיע PDF:
דאָקומענטן / רעסאָורסעס
![]() |
SILICON LABS Lab 3B - מאָדיפיצירן באַשטימען אויף / אַוועק [pdfבאַניצער גייד לאַב 3 ב, מאָדיפיצירן סוויטש, אויף, אויסגעלאשן, Z-Wave, SDK |