لوگو سیلیکون

SILICON LABS Lab 3B - راهنمای کاربر روشن/خاموش را تغییر دهید

SILICON LABS Lab 3B - تغییر سوئیچ روشن/خاموش

این تمرین عملی نشان می دهد که چگونه می توان در یکی از s ها تغییر ایجاد کردampبرنامه هایی که به عنوان بخشی از Z-Wave SDK ارسال می شوند.

این تمرین بخشی از مجموعه "دوره 1 روزه موج Z" است.

  1. از SmartStart استفاده کنید
  2. با استفاده از Zniffer فریم های Z-Wave RF را رمزگشایی کنید
  3. 3A: کامپایل سوئیچ روشن/خاموش و فعال کردن Debug
    3B: روشن/خاموش کلید را تغییر دهید
  4. دستگاه های FLiRS را درک کنید

 

ویژگی های کلیدی

  • GPIO را تغییر دهید
  • پیاده سازی PWM
  • از LED RGB روی برد استفاده کنید

 

1. مقدمه

این تمرین بر روی تمرین قبلی "3A: Compile Switch On/Off and enable debug" ساخته شده است، که نحوه کامپایل و استفاده از Switch On/Off را نشان می دهد.ampبرنامه کاربردی

در این تمرین ما اصلاحاتی را در s انجام خواهیم دادampبرنامه، با تغییر GPIO که LED را کنترل می کند. علاوه بر این، ما از یک LED RGB استفاده خواهیم کرد و نحوه استفاده از PWM برای تغییر رنگ را یاد خواهیم گرفت.

1.1 الزامات سخت افزاری

  • 1 هیئت توسعه اصلی WSTK
  • 1 برد توسعه رادیویی Z-Wave: ماژول SiP ZGM130S
  • 1 کنترلر UZB
  • 1 USB Zniffer

1.2 نرم افزار مورد نیاز

  • Simplicity Studio نسخه 4
  • Z-Wave 7 SDK
  • کنترلر کامپیوتر Z-Wave
  • Z-Wave Zniffer

شکل 1 برد توسعه اصلی با ماژول Z-Wave SiP

شکل 1: برد اصلی توسعه با ماژول Z-Wave SiP

1.3 پیش نیازها
تمرینات قبلی Hands-On نحوه استفاده از PC Controller و برنامه Zniffer را برای ایجاد شبکه Z-Wave و گرفتن ارتباطات RF برای اهداف توسعه پوشش داده است. این تمرین فرض می کند که شما با این ابزارها آشنا هستید.

تمرینات قبلی Hands-On نحوه استفاده از s را نیز پوشش داده استampبرنامه هایی که با Z-Wave SDK ارسال می شوند. این تمرین فرض می کند که شما با استفاده و تدوین یکی از s آشنا هستیدampبرنامه های کاربردی

 

2. در رابط صفحه حرکت کنید

چارچوب Z-Wave دارای یک لایه انتزاعی سخت افزاری (HAL) است که توسط board.h و board.c تعریف شده است و امکان پیاده سازی برای هر یک از پلتفرم های سخت افزاری شما را فراهم می کند.

لایه انتزاعی سخت افزار (HAL) کد برنامه بین سخت افزار یک سیستم و نرم افزار آن است که یک رابط ثابت برای برنامه هایی که می توانند بر روی چندین پلتفرم سخت افزاری مختلف اجرا شوند، فراهم می کند. برای پیشبردtagاز این قابلیت، برنامه ها باید از طریق API ارائه شده توسط HAL به سخت افزار دسترسی داشته باشند و نه مستقیم. سپس، هنگامی که به سخت افزار جدید منتقل می شوید، فقط باید HAL را به روز کنید.

2.1 S را باز کنیدampپروژه le
برای این تمرین باید کلیدهای روشن/خاموش را باز کنیدampبرنامه کاربردی اگر تمرین «3A Compile Switch OnOff and Enable Debug» را انجام داده اید، باید قبلاً در Simplicity Studio IDE شما باز شده باشد.

در این بخش به بررسی تابلو خواهیم پرداخت fileو نحوه راه اندازی اولیه LED ها را درک کنید.

  1. از اصلی file "SwitchOnOff.c"، "ApplicationInit()" را بیابید و به تماس Board_Init () توجه کنید.
  2. دوره خود را روی Board_Init() قرار دهید و F3 را فشار دهید تا اعلان باز شود.

شکل 2 S را باز کنیدampپروژه le

3. در Board_Init() توجه کنید که چگونه LED های موجود در BOARD_LED_COUNT توسط Board_Con-figLed() مقداردهی اولیه می شوند.

شکل 3 S را باز کنیدampپروژه le

4. دوره آموزشی خود را روی BOARD_LED_COUNT قرار دهید و F3 را فشار دهید تا اعلامیه باز شود.
5. LED های تعریف شده در led_id_t به شرح زیر است:

شکل 4 S را باز کنیدampپروژه le

6. به تخته برگردید.ج file.
7. دوره آموزشی خود را روی Board_ConfigLed() قرار دهید و F3 را فشار دهید تا اعلان باز شود.
8. توجه داشته باشید که تمام LED های تعریف شده در led_id_t سپس در Board_ConfigLed() به عنوان خروجی پیکربندی شده اند.

شکل 5 S را باز کنیدampپروژه le

این بدان معناست که همه LED های روی برد توسعه از قبل به عنوان خروجی تعریف شده و آماده استفاده هستند.

 

3. تغییری در Z-Wave S ایجاد کنیدample برنامه

در این تمرین، GPIO های مورد استفاده برای LED در کلیدهای روشن/خاموش را تغییر خواهیم داد.ampبرنامه کاربردی در بخش قبل یاد گرفتیم که چگونه تمام LED های روی برد توسعه از قبل به عنوان خروجی اولیه و آماده استفاده هستند.

3.1 از LED RGB استفاده کنید

ما از LED RGB داخلی در ماژول توسعه Z-Wave به جای LED روی برد دکمه استفاده خواهیم کرد.

1. تابع RefreshMMI را، همانطور که در شکل 6 مشاهده می کنید، در برنامه اصلی SwitchOnOff.c بیابید. file.

شکل 6 RefreshMMI بدون هیچ گونه تغییری

شکل 6: RefreshMMI بدون هیچ گونه تغییری

2. ما از تابع "Board_SetLed" استفاده می کنیم اما GPIO را به تغییر می دهیم
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. همانطور که در شکل 3 نشان داده شده است، 7 بار در هر دو حالت OFF و در حالت ON، "Board_SetLed" را فراخوانی کنید.

شکل 7 RefreshMMI برای استفاده از LED RGB اصلاح شده است

اصلاحات جدید ما اکنون پیاده سازی شده است و شما آماده کامپایل هستید.
مراحل برنامه ریزی یک دستگاه در تمرین "3A Compile Switch OnOff and enable Debug" پوشش داده شده است و به طور خلاصه در اینجا تکرار شده است:

  1. روی "ساخت" کلیک کنید آیکون 1 دکمه شروع ساخت پروژه
  2. پس از اتمام ساخت، پوشه "Binaries" را گسترش دهید و روی *.hex کلیک راست کنید file برای انتخاب "Flash to Device...".
  3. سخت افزار متصل را در پنجره پاپ آپ انتخاب کنید. "برنامه نویس فلش" اکنون با تمام داده های مورد نیاز از قبل پر شده است و شما آماده هستید تا روی "برنامه" کلیک کنید.
  4. روی "برنامه" کلیک کنید.

پس از مدت کوتاهی برنامه‌نویسی به پایان می‌رسد، و دستگاه پایانی شما اکنون با نسخه تغییر یافته Switch On/Off فلش می‌شود.

3.1.1 عملکرد را آزمایش کنید

در تمرین‌های قبلی، دستگاه را با استفاده از SmartStart در یک شبکه امن Z-Wave قرار داده‌ایم. برای دستورالعمل ها به تمرین "شامل استفاده از SmartStart" مراجعه کنید.

اشاره داخلی file سیستم بین برنامه ریزی مجدد پاک نمی شود. این به یک گره اجازه می دهد تا در یک شبکه بماند و کلیدهای مشابه شبکه را هنگام برنامه ریزی مجدد نگه دارد.

اگر نیاز دارید که مثلاً فرکانس کار ماژول یا DSK را تغییر دهید، قبل از اینکه فرکانس جدید در NVM داخلی نوشته شود، باید تراشه را "Erase" کنید.

به این ترتیب، دستگاه شما قبلاً در شبکه گنجانده شده است.

با تأیید اینکه می‌توانید LED RGB را روشن و خاموش کنید، عملکرد را آزمایش کنید.

  • عملکرد را با استفاده از "Basic Set ON" و "Basic Set OFF" در کنترلر PC آزمایش کنید. LED RGB باید روشن و خاموش شود.
  • LED RGB همچنین می تواند با استفاده از BTN0 روی سخت افزار روشن و خاموش شود.

اکنون تأیید کرده‌ایم که اصلاحات مطابق انتظار کار می‌کند و GPIO مورد استفاده در S را با موفقیت تغییر داده‌ایمample برنامه

3.2 مولفه رنگ RGB را تغییر دهید

در این بخش، LED RGB را اصلاح می کنیم و سعی می کنیم اجزای رنگ را با هم ترکیب کنیم.

یک رنگ در مدل رنگی RGB با نشان دادن مقداری از هر یک از قرمز، سبز و آبی توصیف می‌شود. رنگ به عنوان یک سه گانه RGB (r,g,b) بیان می شود که هر جزء آن می تواند از صفر تا حداکثر مقدار تعریف شده متفاوت باشد. اگر همه اجزا در صفر باشند، نتیجه سیاه است. اگر همه در حداکثر باشند، نتیجه روشن ترین سفید قابل نمایش است.

از ویکی پدیا به بعد مدل رنگ RGB.

شکل 8 اجزای رنگ RGB با هم مخلوط شده اند

از آنجایی که ما تمام اجزای رنگ را در بخش قبل فعال کردیم، LED RGB هنگامی که روشن است سفید است. با روشن و خاموش کردن تک تک اجزا، می توانیم LED را تغییر دهیم. علاوه بر این، با تنظیم شدت هر یک از اجزای رنگ، می‌توانیم تمام رنگ‌ها را در بین آن‌ها بسازیم. برای آن، ما از PWM برای کنترل GPIO ها استفاده خواهیم کرد.

  1. در ApplicationTask() PwmTimer را مقداردهی اولیه کنید و پایه های RGB را روی PWM تنظیم کنید، همانطور که در شکل 9 نشان داده شده است.                                                                                شکل 9 PWM در ApplicationTask راه اندازی شد
  2. در RefreshMMI()، از یک عدد تصادفی برای هر جزء رنگی استفاده خواهیم کرد. با استفاده از rand() هر بار که LED روشن می شود مقدار جدیدی دریافت کنید.
  3. از DPRINTF() برای نوشتن مقدار جدید تولید شده در پورت اشکال زدایی سریال استفاده کنید.
  4. به منظور استفاده از مقدار تصادفی، Board_SetLed() را با Board_RgbLedSetPwm() جایگزین کنید.
  5. برای RefreshMMI() به روز شده به شکل 10 مراجعه کنید.

شکل 10 RefreshMMI با PWM به روز شد

شکل 10: RefreshMMI به روز شده با PWM

اصلاحات جدید ما اکنون پیاده سازی شده است و شما آماده کامپایل هستید.

  1. روی "ساخت" کلیک کنید آیکون 1 دکمه شروع ساخت پروژه
  2. پس از اتمام ساخت، پوشه "Binaries" را گسترش دهید و روی *.hex کلیک راست کنید file برای انتخاب "Flash to Device...".
  3. سخت افزار متصل را در پنجره پاپ آپ انتخاب کنید. "برنامه نویس فلش" اکنون با تمام داده های مورد نیاز از قبل پر شده است و شما آماده هستید تا روی "برنامه" کلیک کنید.
  4. روی "برنامه" کلیک کنید.

پس از مدت کوتاهی برنامه‌نویسی به پایان می‌رسد، و دستگاه پایانی شما اکنون با نسخه تغییر یافته Switch On/Off فلش می‌شود.

3.2.1 عملکرد را آزمایش کنید

با تأیید اینکه می‌توانید رنگ LED RGB را تغییر دهید، عملکرد را آزمایش کنید.

  1. عملکرد را با استفاده از "Basic Set ON" در کنترلر کامپیوتر آزمایش کنید.
  2. برای مشاهده تغییر رنگ، روی "Basic Set ON" کلیک کنید.

اکنون تأیید کرده‌ایم که اصلاح طبق انتظار عمل می‌کند و با موفقیت GPIO را برای استفاده از PWM تغییر داده‌ایم.

4 بحث

در این تمرین ما کلید روشن/خاموش را از کنترل یک LED ساده به کنترل یک LED چند رنگ تغییر دادیم. بسته به مقادیر PWM، اکنون می توانیم به هر رنگ و شدتی تغییر دهیم.

  • آیا باید از "سوئیچ باینری" به عنوان نوع دستگاه برای این برنامه استفاده شود؟
  • کدام کلاس های فرمان برای یک LED چند رنگ مناسب تر هستند؟

برای پاسخ به سوال باید به مشخصات Z-Wave مراجعه کنید:

  • مشخصات نوع دستگاه Z-Wave Plus v2
  • مشخصات کلاس فرمان برنامه Z-Wave

این آموزش نحوه تغییر و تغییر GPIO یک Z-Wave S را به پایان می رساندampبرنامه کاربردی

 

اطلاعات بیشتر درباره این راهنما و دانلود PDF:

اسناد / منابع

SILICON LABS Lab 3B - تغییر سوئیچ روشن/خاموش [pdfراهنمای کاربر
Lab 3B, Modify Switch, On, Off, Z-Wave, SDK

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *