فهرست مطالب:

DIY Control RGB LED Color از طریق بلوتوث: 5 مرحله
DIY Control RGB LED Color از طریق بلوتوث: 5 مرحله

تصویری: DIY Control RGB LED Color از طریق بلوتوث: 5 مرحله

تصویری: DIY Control RGB LED Color از طریق بلوتوث: 5 مرحله
تصویری: LED RGB Strip - Unpacking and testing | Multi Color RGB Strip 5M 3528 RGB SMD LED + Remote control 2024, ژوئن
Anonim
DIY Control RGB LED Color از طریق بلوتوث
DIY Control RGB LED Color از طریق بلوتوث

محبوبیت لامپ های هوشمند اخیراً افزایش یافته است و به طور پیوسته در حال تبدیل شدن به بخشی کلیدی از ابزار خانه هوشمند است. لامپ های هوشمند کاربر را قادر می سازد تا نور خود را از طریق یک برنامه ویژه در تلفن هوشمند کاربر کنترل کند. لامپ را می توان روشن و خاموش کرد و رنگ را می توان از رابط برنامه تغییر داد. در این پروژه ، ما یک کنترل کننده لامپ هوشمند ساخته ایم که می تواند از طریق دکمه دستی یا برنامه تلفن همراه از طریق بلوتوث کنترل شود. برای افزودن استعداد به این پروژه ، برخی ویژگی ها را اضافه کرده ایم که به کاربر اجازه می دهد از بین رنگ های موجود در رابط برنامه ، رنگ روشنایی را انتخاب کند. همچنین می تواند "ترکیب خودکار" را برای ایجاد جلوه های رنگی فعال کرده و نور را در هر نیم ثانیه تغییر دهد. کاربر می تواند ترکیب رنگی خود را با استفاده از ویژگی PWM ایجاد کند که می تواند برای سه رنگ اصلی (قرمز ، سبز ، آبی) به عنوان کم نور استفاده شود. ما همچنین دکمه های خارجی را به مدار اضافه کردیم تا کاربر بتواند به حالت دستی تغییر کند و رنگ نور را از یک دکمه خارجی تغییر دهد.

این دستورالعمل شامل دو بخش است. طراحی GreenPAK and و طراحی برنامه Android. طراحی GreenPAK مبتنی بر استفاده از رابط UART برای ارتباط است. UART به این دلیل انتخاب می شود که توسط اکثر ماژول های بلوتوث و همچنین سایر لوازم جانبی دیگر مانند ماژول های WIFI پشتیبانی می شود. در نتیجه ، از طرح GreenPAK می توان در انواع مختلف اتصال استفاده کرد.

برای ساخت این پروژه ، ما قصد داریم از SLG46620 CMIC ، یک ماژول بلوتوث و یک LED RGB استفاده کنیم. IC GreenPAK قرار است هسته کنترل این پروژه باشد. داده ها را از یک ماژول بلوتوث و/یا دکمه های خارجی دریافت می کند ، سپس روش مورد نیاز برای نمایش روشنایی صحیح را آغاز می کند. همچنین سیگنال PWM را تولید کرده و آن را به LED منتقل می کند. شکل 1 زیر بلوک دیاگرام را نشان می دهد.

دستگاه GreenPAK مورد استفاده در این پروژه شامل رابط اتصال SPI ، بلوک های PWM ، FSM و تعداد زیادی بلوک مفید دیگر در یک IC است. همچنین با اندازه کوچک و مصرف انرژی کم مشخص می شود. این امر به تولیدکنندگان امکان می دهد تا یک مدار عملی کوچک با استفاده از یک IC واحد بسازند ، بنابراین هزینه های تولید در مقایسه با سیستم های مشابه به حداقل می رسد.

در این پروژه ، ما یک LED RGB را کنترل می کنیم. برای اینکه این پروژه از نظر تجاری پایدار باشد ، یک سیستم به احتمال زیاد نیاز به افزایش سطح روشنایی با اتصال موازی LED ها و استفاده از ترانزیستورهای مناسب دارد. مدار قدرت نیز باید در نظر گرفته شود.

برای درک نحوه برنامه ریزی تراشه GreenPAK برای کنترل رنگ RGB LED از طریق بلوتوث ، می توانید تمام مراحل را طی کنید. با این حال ، اگر می خواهید IC را بدون درک تمام مدارهای داخلی به راحتی برنامه ریزی کنید ، نرم افزار GreenPAK را بارگیری کنید تا فایل طراحی GreenPAK را که قبلاً تکمیل شده است مشاهده کنید. کیت توسعه GreenPAK را به رایانه خود وصل کرده و برنامه را فشار دهید تا IC سفارشی برای کنترل رنگ LED RGB از طریق بلوتوث ایجاد شود.

طرح GreenPAK شامل گیرنده UART ، واحد PWM و واحد کنترل است که در مراحل زیر شرح داده شده است.

مرحله 1: گیرنده UART

گیرنده UART
گیرنده UART

ابتدا باید ماژول بلوتوث را راه اندازی کنیم. اکثر IC های بلوتوث از پروتکل UART برای ارتباط پشتیبانی می کنند. UART مخفف عبارت Universal Asynchronous Receiver / Transmitter است. UART می تواند داده ها را بین فرمت های موازی و سریال به جلو و عقب تبدیل کند. این شامل یک گیرنده سریال به موازی و مبدل موازی به سریال است که هر دو به طور جداگانه زمان بندی می شوند.

داده های دریافت شده در ماژول بلوتوث به دستگاه GreenPAK ما منتقل می شود. حالت بیکاری برای Pin10 بالا است. هر کاراکتری که ارسال می شود با یک بیت شروع LOW منطقی شروع می شود ، به دنبال آن تعدادی بیت داده قابل تنظیم و یک یا چند بیت منطقی HIGH stop ایجاد می شود.

فرستنده UART 1 بیت شروع ، 8 بیت داده و یک بیت STOP ارسال می کند. معمولاً میزان باود پیش فرض برای ماژول بلوتوث UART 9600 است. ما بایت داده را از IC بلوتوث به بلوک SPI GreenPAK ™ SLG46620 ارسال می کنیم.

از آنجا که بلوک GreenPAK SPI فاقد کنترل بیت START یا STOP است ، در عوض از آن بیت ها برای فعال و غیرفعال کردن سیگنال ساعت SPI (SCLK) استفاده می کنیم. وقتی Pin10 پایین می رود ، می دانیم که ما یک بیت شروع دریافت کرده ایم ، بنابراین از آشکارساز لبه سقوط PDLY برای شناسایی شروع ارتباط استفاده می کنیم. آن آشکارساز لبه سقوط DFF0 می کند ، که سیگنال SCLK را قادر می سازد تا بلوک SPI را اندازه گیری کند.

نرخ باود ما 9600 بیت در ثانیه است ، بنابراین دوره SCLK ما باید 1/9600 = 104 میکرومتر باشد. بنابراین ، ما فرکانس OSC را روی 2 مگاهرتز تنظیم کردیم و از CNT0 به عنوان تقسیم فرکانس استفاده کردیم.

2 مگاهرتز -1 = 0.5 میکرومتر

(104 μs / 0.5 μs) - 1 = 207

بنابراین ، ما می خواهیم مقدار شمارنده CNT0 207 باشد. برای اطمینان از اینکه هیچ داده ای را از دست نمی دهیم ، باید ساعت SPI را به اندازه نیم چرخه ساعت به تأخیر بیندازیم تا بلوک SPI در زمان مناسب ساعت گیری شود. ما این کار را با استفاده از CNT6 ، LUT1 2 بیتی و ساعت خارجی بلوک OSC انجام دادیم. خروجی CNT6 تا 52 میکرومتر پس از زمان گیری DFF0 زیاد نمی شود ، که نیمی از دوره 104 میکرومتر SCLK ما است. هنگامی که CNT6 زیاد است ، دروازه 2 بیتی LUT1 AND اجازه می دهد تا سیگنال OSC 2 مگاهرتز به EXT منتقل شود. ورودی CLK0 که خروجی آن به CNT0 متصل است.

مرحله 2: واحد PWM

واحد PWM
واحد PWM

سیگنال PWM با استفاده از PWM0 و یک مولد پالس ساعت مرتبط (CNT8/DLY8) تولید می شود. از آنجا که عرض پالس توسط کاربر قابل کنترل است ، ما از FSM0 (که می تواند به PWM0 متصل شود) برای شمارش داده های کاربر استفاده می کنیم.

در SLG46620 ، FSM1 8 بیتی را می توان با PWM1 و PWM2 استفاده کرد. ماژول بلوتوث باید متصل باشد ، به این معنی که باید از خروجی موازی SPI استفاده شود. بیتهای خروجی موازی SPI 0 تا 7 با DCMP1 ، DMCP2 و OUT1 و OUT0 LF OSC CLK ترکیب می شوند. PWM0 خروجی خود را از FSM0 16 بیتی بدست می آورد. بدون تغییر این امر باعث می شود عرض نبض بیش از حد بار شود. برای محدود کردن مقدار شمارنده در 8 بیت FSM دیگری اضافه می شود. FSM1 به عنوان اشاره گر برای اطلاع از زمان رسیدن شمارنده به 0 یا 255 استفاده می شود. FSM0 برای تولید پالس PWM استفاده می شود. FSM0 و FSM1 باید همزمان شوند. از آنجا که هر دو FSM دارای گزینه های ساعت از پیش تعیین شده هستند ، CNT1 و CNT3 به عنوان واسطه برای انتقال CLK به هر دو FSM استفاده می شوند. این دو شمارنده روی یک مقدار تنظیم شده اند که برای این دستورالعمل 25 است. ما می توانیم نرخ تغییر مقدار PWM را با تغییر این مقادیر شمارنده تغییر دهیم.

ارزش FSM ها توسط سیگنال های "+" و "-" ، که از خروجی موازی SPI نشأت می گیرند ، افزایش و کاهش می یابد.

مرحله 3: واحد کنترل

واحد کنترل
واحد کنترل

در واحد کنترل ، بایت دریافتی از ماژول بلوتوث به خروجی موازی SPI برده می شود و سپس به توابع مربوطه منتقل می شود. در ابتدا ، خروجی های PWM CS1 و PWM CS2 بررسی می شود تا مشخص شود که آیا الگوی PWM فعال است یا خیر. اگر فعال باشد ، مشخص می کند که کدام کانال قرار است PWM را از طریق LUT4 ، LUT6 و LUT7 خروجی دهد.

LUT9 ، LUT11 و LUT14 وظیفه بررسی وضعیت دو LED دیگر را بر عهده دارند. LUT10 ، LUT12 و LUT13 بررسی کنید که آیا دکمه Manual فعال است یا خیر. اگر حالت دستی فعال است ، خروجی های RGB مطابق با حالتهای خروجی D0 ، D1 ، D2 عمل می کنند ، که هر بار که دکمه Color را فشار می دهید تغییر می کند. با افزایش لبه افزایش یافته از CNT9 ، که به عنوان بازکننده لبه بالا استفاده می شود ، تغییر می کند.

پین 20 به عنوان ورودی پیکربندی شده است و برای جابجایی بین کنترل دستی و بلوتوث استفاده می شود.

اگر حالت دستی غیرفعال است و حالت میکسر خودکار فعال است ، با افزایش لبه از CNT7 رنگ هر 500 میلی ثانیه تغییر می کند. یک LUT1 4 بیتی برای جلوگیری از حالت '000' برای D0 D1 D2 استفاده می شود ، زیرا این حالت باعث خاموش شدن چراغ در حالت خودکار میکسر می شود.

اگر حالت دستی ، حالت PWM و حالت میکسر خودکار فعال نباشند ، دستورات SPI قرمز ، سبز و آبی به پین های 12 ، 13 و 14 منتقل می شوند ، که به عنوان خروجی پیکربندی شده و به LED RGB خارجی متصل می شوند.

DFF1 ، DFF2 و DFF3 برای ساخت یک شمارنده باینری 3 بیتی استفاده می شود. مقدار شمارنده با پالس های CNT7 که در حالت میکسر خودکار از P14 عبور می کنند یا از سیگنال هایی که از دکمه رنگ (PIN3) در حالت دستی می آید ، افزایش می یابد.

مرحله 4: برنامه Android

برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید
برنامه اندروید

در این بخش ، ما قصد داریم یک برنامه Android ایجاد کنیم که گزینه های کنترل کاربر را نظارت و نمایش دهد. رابط کاربری از دو بخش تشکیل شده است: بخش اول شامل مجموعه ای از دکمه ها است که دارای رنگهای از پیش تعیین شده هستند به طوری که در صورت فشردن هر یک از این دکمه ها ، یک LED با همان رنگ متناظر روشن می شود. بخش دوم (مربع MIX) یک رنگ مختلط برای کاربر ایجاد می کند.

در قسمت اول ، کاربر پین LED را انتخاب می کند که می خواهد سیگنال PWM از آن عبور کند. سیگنال PWM فقط می تواند در یک زمان به یک پین منتقل شود. لیست پایین دو رنگ دیگر را به طور منطقی در حالت PWM روشن/خاموش کنترل می کند.

دکمه میکسر خودکار مسئول اجرای الگوی تغییر خودکار نور است که در آن نور هر نیم ثانیه تغییر می کند. بخش MIX شامل دو لیست چک باکس است تا کاربر بتواند تصمیم بگیرد کدام دو رنگ را با هم ترکیب کند.

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

در ابتدا ، ما با افزودن مجموعه ای از دکمه های مسئول نمایش رنگهای از پیش تعریف شده ، یک رابط گرافیکی طراحی کردیم ، همچنین دو لیست چک باکس اضافه کردیم و هر لیست دارای 3 عنصر است. همانطور که در شکل 5 نشان داده شده است ، هر عنصر در جعبه جداگانه خود مشخص شده است.

دکمه های درون رابط کاربری به دستورات نرم افزاری متصل هستند: همه دستوراتی که برنامه از طریق بلوتوث ارسال می کند در قالب بایت قرار دارد و هر بیت وظیفه خاصی را بر عهده دارد. جدول 1 فرم فریم های فرمان ارسال شده به GreenPAK را نشان می دهد.

سه بیت اول ، B0 ، B1 و B2 ، حالت LED های RGB را در حالت کنترل مستقیم با دکمه های رنگ های از پیش تعریف شده نگه می دارند. بنابراین ، هنگام کلیک بر روی هر یک از آنها ، مقدار مربوط به دکمه ارسال می شود ، همانطور که در جدول 2 نشان داده شده است.

بیت های B3 و B4 دستورات "+" و "-" را در اختیار دارند که وظیفه افزایش و کاهش عرض پالس را بر عهده دارند. وقتی دکمه فشرده می شود مقدار بیت 1 و هنگامی که دکمه آزاد می شود مقدار بیت 0 می شود.

بیت های B5 و B6 مسئول انتخاب پین (رنگ) سیگنال PWM از طریق آن هستند: رنگ بندی این بیت ها در جدول 3 نشان داده شده است. آخرین بیت ، B7 ، مسئول فعال سازی میکسر خودکار است.

شکل 6 و شکل 7 روند پیوند دکمه ها با بلوک های برنامه نویسی که مسئول ارسال مقادیر قبلی هستند را نشان می دهد.

برای مشاهده طرح کامل برنامه ، می توانید فایل پیوست ".aia" را با فایل های پروژه بارگیری کرده و در سایت اصلی باز کنید.

شکل 8 زیر نمودار مدار سطح بالا را نشان می دهد.

مرحله 5: نتایج

کنترل کننده با موفقیت آزمایش شد و ترکیب رنگ به همراه سایر ویژگی ها نشان داد که به درستی کار می کند.

نتیجه

در این دستورالعمل ، یک مدار لامپ هوشمند ساخته شد تا به طور بی سیم توسط یک برنامه Android کنترل شود. CMIC GreenPAK مورد استفاده در این پروژه همچنین به کوتاه شدن و جاسازی چندین جزء ضروری برای کنترل نور در یک IC کوچک کمک کرد.

توصیه شده: