فهرست مطالب:

LightMeUp! a Realtime Cross-platformed LED Strip Control: 5 مرحله (همراه با تصاویر)
LightMeUp! a Realtime Cross-platformed LED Strip Control: 5 مرحله (همراه با تصاویر)

تصویری: LightMeUp! a Realtime Cross-platformed LED Strip Control: 5 مرحله (همراه با تصاویر)

تصویری: LightMeUp! a Realtime Cross-platformed LED Strip Control: 5 مرحله (همراه با تصاویر)
تصویری: MEGA Chia GPU Farming and Plotting Guide for Linux - Gigahorse Start to Finish - 2023 2024, جولای
Anonim
LightMeUp! یک سیستم نوار کنترل LED بطور همزمان
LightMeUp! یک سیستم نوار کنترل LED بطور همزمان
LightMeUp! یک کنترل نوار LED از طریق باند همزمان
LightMeUp! یک کنترل نوار LED از طریق باند همزمان
LightMeUp! یک سیستم نوار کنترل LED بطور همزمان
LightMeUp! یک سیستم نوار کنترل LED بطور همزمان

LightMeUp! سیستمی است که من برای کنترل RGB LED-Strip در زمان واقعی اختراع کردم ، در حالی که هزینه را پایین و عملکرد را بالا نگه می داشت.

سرور در Node.js نوشته شده است و بنابراین قابل اجرا در سراسر جهان است.

در مثال من ، من از Raspberry Pi 3B برای استفاده طولانی مدت استفاده می کنم ، اما از رایانه شخصی Windows خود به خاطر تظاهرات و اشکال زدایی استفاده می کنم.

نوار 4 پین توسط یک برد آردوینو نانو کنترل می شود ، که دستورات پی در پی را برای ارسال سیگنال های PWM به سه ترانزیستور اجرا می کند که +12VDC را به پین رنگ مربوطه تبدیل می کند.

LightMeUp! سیستم همچنین دمای خود را بررسی می کند ، هنگامی که بیش از 60 درجه سانتی گراد (140 درجه فارنهایت) است ، دو فن کامپیوتر 12VDC تعبیه شده در بدنه را روشن می کند تا خود را خنک کند تا طول عمر مدار بهبود یابد.

یکی دیگر از ویژگی های LightMeUp! این است که یک بطری Bombay-Sapphire Gin را روشن کنید ، اما این دستورالعمل مورد توجه نیست.

از خواندن لذت ببرید:)

تدارکات

  • آردوینو نانو (یا هر میکروکنترلر ATmega328 / بالاتر)
  • Raspberry Pi 3 Model B با نصب Node.js (یا هر رایانه دیگر)
  • نوار LED 12 ولت RGB 4 پین
  • منبع تغذیه 12 ولت 3 آمپر
  • کابل های جامپر (البته اگر از تخته نان استفاده می کنید مرد یا مرد)
  • تخته نان (اختیاری)
  • 2 فن کامپیوتر 12 ولت DC (اختیاری)
  • 3x TIP120 ترانزیستور دارلینگتون بدون هیت سینک (4 عدد اگر می خواهید پنکه های خنک کننده را نیز وارد کنید)
  • 2 LED وضعیت قرمز و سبز (اختیاری)
  • 6 ، مقاومت 7K NTC مبتنی بر دما + 6 ، مقاومت 7K (اختیاری)
  • کابل داده USB-Mini به USB 2.0 (برای ارتباط رزبری پای با آردوینو)
  • USB-Hub دارای منبع تغذیه خارجی (اختیاری ، فقط برای رزبری پای)

مرحله 1: درک سیستم

درک سیستم
درک سیستم

LightMeUp! بر اساس مدارهای الکترونیکی بسیار ساده است.

ما یک نوع کامپیوتر (در این مورد Raspberry Pi) داریم که به صورت سری با برد میکروکنترلر ما ارتباط برقرار می کند. این برد سپس دستورات سریال خاصی مانند "RGB (255 ، 255 ، 255)" را اجرا می کند که LED-Strip ما را سفید می کند.

هنگامی که سه مقدار خود را برای RED ، GREEN و BLUE لازم برای LED-Strip 4pin دریافت کردیم ، analogWrite (پین ، مقدار) را برای تأمین ترانزیستور TIP120 خود با سیگنال PWM اجرا می کنیم.

این سیگنال PWM به ترانزیستور اجازه می دهد تا پین رنگ مربوطه را که جمع کننده آن به زمین متصل است ، به میزان خاصی یا به طور کامل روشن / خاموش کند. بله ، تعداد زیادی "به":)

با ترکیب سه خروجی ترانزیستور با پین های رنگی نوارهای LED می توانیم اساساً هر رنگی را که می خواهیم ایجاد کنیم!

اکنون با این درک ، می توانیم به بزرگترین چالش این پروژه ، وب سرور و اتصال سریال آن به آردوینو ، حمله کنیم.

مرحله 2: نوشتن WebSocketServer

نوشتن سرور WebSocketServer
نوشتن سرور WebSocketServer

در حال حاضر ، ما باید نوع خاصی از وب سرور را ایجاد کنیم که به ما اجازه می دهد داده ها را بدون بارگذاری مجدد به جلو و عقب انتقال دهیم تا به یک کنترل نوار LED در زمان واقعی دست پیدا کنیم.

لطفاً توجه داشته باشید که ارتباطات در زمان واقعی البته غیرممکن است ، همیشه حداقل چند میلی ثانیه تاخیر وجود خواهد داشت ، اما برای چشم انسان به عنوان زمان واقعی قابل توجه است.

اگر مانند من از Node.js استفاده می کنید ، می توانید با استفاده از کتابخانه socket.io به راحتی این کار را انجام دهید. با این حال ، البته شما همیشه می توانید به زبان برنامه نویسی مورد علاقه خود پایبند باشید.

ما با یک اتصال شبکه در ارتباط خواهیم بود که به ما امکان می دهد داده های ورودی مانند نوار LED را بر روی کدام رنگ و یا داده های وضعیتی مانند "LED روشن" را به صورت دو طرفه بدون تازه سازی منتقل کنیم.

یکی دیگر از ویژگیهای بسیار مهم که سرور باید داشته باشد اما نیازی به آن نیست یک ورود ساده است. من ورود خود را بر اساس یک نام کاربری و رمز عبور ساده انجام دادم. این قطعات اطلاعات سپس در مسیر /ورود به سرور ارسال می شوند و سپس نام کاربری را با لیستی از کاربران (فایل.txt) و رمز عبور مربوطه در شکل رمزگذاری شده SHA256 مقایسه می کند. شما نمی خواهید همسایه ها با نوار LED شما درگیر شوند در حالی که از نوشیدنی مورد علاقه خود بر روی راحت ترین صندلی خود لذت می برید ، درست است؟

در حال حاضر قلب سرور ، ارتباط سریال می آید.

سرور شما باید بتواند به صورت سری ارتباط برقرار کند - در Node.js این امر با باز کردن پورت با استفاده از کتابخانه "serialport" قابل دستیابی است. اما ابتدا نام پورت arduino خود را در رایانه خود که میزبان سرور است تعیین کنید. بسته به سیستم عامل شما ، پورت ها نام های متفاوتی خواهند داشت ، a.e. در ویندوز این پورت ها پورت های "COMx" و در لینوکس آنها "/dev/ttyUSBx" نامیده می شوند ، جایی که x تعداد پورت USB است.

مرحله 3: ایجاد پروتکل دستورات سریال

ایجاد پروتکل دستورات سریال
ایجاد پروتکل دستورات سریال

در تصویر بالا ، کد واقعی Arduino IDE که مسئول کنترل RGB است را مشاهده می کنید. هدف این مرحله این است که سرور خودکار و برد آردوینو خود را با موفقیت با یکدیگر صحبت کنید.

هنگامی که پورت سریال خود را با موفقیت باز کردید ، باید بتوانید دستوراتی را به هیئت مدیره ارسال کنید که به خواسته های شما رسیدگی می کند. به عنوان مثال ، اگر در صفحه وب HTML انگشتی را در بالای انتخاب کننده رنگ بکشیم ، کد RGB باید به سرور ارسال شود و سپس آن را به Arduino شما ارسال می کند تا مقادیر تعیین شده را پردازش کند.

من از jscolor استفاده کردم ، آنها از یک عنصر انتخاب رنگ با کیفیت بالا استفاده می کنند ، که دارای یک رویداد به نام "onFineChange" است که به شما امکان می دهد داده های پردازش خود را به محض تغییر مقادیر رنگ انتخاب کنید.

توصیه شده: