فهرست مطالب:
- مرحله 1: بررسی ایده
- مرحله 2: سخت افزار
- مرحله 3: مونتاژ
- مرحله 4: کنترل؟
- مرحله 5: کار را آسان کنید
- مرحله 6: اولین آزمایش ها
- مرحله 7: کنترل در زمان واقعی
- مرحله 8: نتیجه گیری
تصویری: نور محیطی تعاملی: 8 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:58
این اولین دستورالعمل من است! لطفاً تا زمانی که برای نوشتن انگلیسی مناسب تلاش می کنم ، مرا تحمل کنید. با خیال راحت من را تصحیح کنید! من این پروژه را درست بعد از شروع مسابقه "بگذار روشن شود" شروع کردم. ای کاش خیلی بیشتر ساخته بودم و آنچه را که می خواستم بسازم به پایان رساندم. اما بین مدرسه و محل کار ، آنقدر که می خواستم زمان باقی نمانده است. با این وجود ، من گزارش تجربیات خود را به عنوان یک دستورالعمل در اینجا می گذارم ، بنابراین هر کسی می تواند تلاش کند و کاری را که من انجام داده ام انجام دهد. این دستورالعمل به معنای راهنما و آموزش نحوه ساخت این نسخه نیست. این راهنمای مبتدیان در زمینه لوازم الکترونیکی نیست. این بیشتر شبیه به اشتراک گذاری یک ایده و هدف است که من مایلم آن را دنبال کنم. اگر شما در زمینه الکترونیک مبتدی هستید یا کاملاً نادان هستید و می خواهید چیزی شبیه به این بسازید ، متأسفم! اما ما می توانیم سعی کنیم همیشه به شما کمک کنیم. مرحله آخر را ببینید. ما قبلاً بسیاری از پروژه های نور محیط را دیده ایم. اکثر آنها از LED های RGB استفاده می کنند: - برای روشنایی اتاق با یک رنگ ، ایجاد فضایی متناسب با روحیه شما - ایجاد جلوه های نوری از رنگ تلویزیون/مانیتور یا صدا. حتی تعدادی از آنها در instructible.com وجود دارد مرتبط: DIY سیستم های نور محیطی Light bar محیط روشنایی ایجاد نوارهای روشنایی رنگ محیطی خودتان با استفاده از این مسابقه به عنوان بهانه ، پروژه ای را شروع کردم که مدتی در ذهن من بود. من همیشه می خواستم چیزی شبیه به این چراغ های محیطی بسازم و دیوارهای اتاقم را با LED های RGB پر کنم. اما ، یک قدم جلوتر رفتن ، همه و هر یک از آنها قابل کنترل است. امیدوارم این پروژه به یک کیت الکترونیکی منبع باز برای علاقه مندان و کارگران الکترونیکی منجر شود که به هک سخت افزار/نرم افزار و ادغام حسی اجازه می دهد. در اینجا یک پیش نمایش کوچک از آنچه من ساخته ام است:
مرحله 1: بررسی ایده
من می خواهم بتوانم دیوارهای اتاق خود را با LED های RGB پر کنم ، رنگ و روشنایی هر لامپ را کنترل کنم. من برای سهولت استفاده و انعطاف پذیری ارائه شده از میکروکنترلر استفاده می کنم. متأسفانه من نمی توانم صدها LED را با چند پین موجود بر روی میکروکنترلرها کنترل کنم. حتی کدگذاری کنترل تعداد زیادی LED دشوار خواهد بود. بنابراین تصمیم گرفتم که همه LED ها را در چندین نوار کوچکتر تقسیم کنم و برای هر نوار می توانم از میکروکنترلر استفاده کنم. سپس از قابلیت های ارتباطی میکروکنترلرها برای به اشتراک گذاشتن اطلاعات بین آنها استفاده می کنم. این اطلاعات می تواند رنگ و روشنایی LED ها ، الگوها/ترتیب رنگ ها و اطلاعات حسی باشد. برای هر نوار تصمیم گرفتم از 16 LED RGB استفاده کنم. این منجر به یک نوار نه خیلی بزرگ و نه کوچک می شود. به این ترتیب من از منابع قابل قبولی برای هر led استفاده می کنم و هزینه های هر نوار را کاهش می دهم. با این وجود ، 16 LED RGB 48 LED (3*16 = 48) برای کنترل میکروکنترلر است. با در نظر گرفتن هزینه ها ، تصمیم گرفتم از ارزان ترین میکروکنترلری که می توانستم استفاده کنم. این بدان معناست که میکروکنترلر فقط تا 20 پین ورودی/خروجی دارد ، برای 48 LED کافی نیست. من نمی خواهم از شارلی پلکس یا نوعی درایو تقسیم زمان استفاده کنم ، زیرا هدف پروژه روشنایی یک اتاق است. جایگزینی که می توانم به آن فکر کنم استفاده از نوعی از شیفت شیفت قفل شده است! از سرگیری:- ایجاد و تعاملی از نور محیطی- ایجاد یک نوار استاندارد از LED های قابل کنترل- امکان اتصال چندین میله برای پر کردن اتاق- اجازه به کاربر برای سازگاری/پیکربندی و ادغام حسی
مرحله 2: سخت افزار
همانطور که در مرحله قبل گفته شد ، من می خواهم چندین میله برای روشنایی یک اتاق بسازم. این مسئله هزینه را به ذهن متبادر می کند. من سعی می کنم هر نوار را مقرون به صرفه ترین روش ممکن کنم. میکروکنترلری که من استفاده کردم AVR ATtiny2313 بود. اینها نسبتاً ارزان هستند و من چند مورد دراز کشیده بودم. ATtiny2313 همچنین دارای یک رابط سریال جهانی و یک رابط USART است که در مراحل زیر به خوبی استفاده خواهد شد. من همچنین سه عدد MCP23016 - I2C 16bit I/O expander port دروغ داشتم ، فقط با تعداد مناسب! من از هر پهن کننده پورت برای کنترل یک رنگ از 16 LED استفاده کردم. LED ها … متأسفانه ارزانترین آنها بود. آنها 48 قرمز ، سبز و آبی ~ 10000mcd 5 میلی متر با زاویه 20 درجه هستند. این فعلا نباید مهم باشد ، زیرا این تنها یک نمونه اولیه است. با وجود این واقعیت ، نتیجه بسیار خوب است! من میکروکنترلر را روی 8 مگاهرتز کار می کنم. سرعت اتوبوس I2C 400 کیلوهرتز است. فرکانس سوئیچ LED حدود 400 هرتز است. به این ترتیب ، اگر بتوانم 48 LED را بدون فشار آوردن به حد مطلوب رانندگی کنم ، بعداً برای موارد بیشتری جا خواهم گذاشت!
مرحله 3: مونتاژ
پس از طراحی مدار ، آن را در چندین تخته نان ، برای اهداف نمونه سازی ، ساختم. پس از چندین ساعت قطع سیم و مونتاژ مدار ، به این نتیجه رسیدم: یک تخته نان غول پیکر با 48 LED و تن سیم!
مرحله 4: کنترل؟
این چالش برانگیزترین بخش پروژه است. من می خواستم یک الگوریتم کنترل را به اندازه کافی برای مدیریت الگوها یا دنباله ها و همچنین کنترل روشنایی و رنگ هر LED بسازم. برای کنترل LED ها باید یک فریم 4 بایت به MCP23016 ارسال کنم (1 بایت = 8 بیت). یک بایت با آدرس IC مربوط به رنگ ، 1 بایت با دستور "نوشتن" و 2 بایت با مقدار 16 بیت (LED). IC به LED ها به عنوان "سینک" متصل است ، بدین معنی که یک مقدار منطقی 0 در پین LED را روشن می کند. و اکنون بخش چالش برانگیز ، نحوه کنترل PWM برای 48 LED؟ بیایید PWM را برای یک LED مطالعه کنیم! PWM در ویکی پدیا توضیح داد. اگر می خواهم روشنایی LED 50 باشد ، مقدار PWM من 50 است. این بدان معناست که LED ، در یک دوره زمانی ، باید به همان میزان خاموش باشد. بیایید یک دوره 1 ثانیه ای را در نظر بگیریم. PWM 50٪ به این معنی است که در این 1 ثانیه ، زمان فعال شدن 0.5 ثانیه و زمان خاموش شدن 0.5 ثانیه است. PWM 80؟؟ 0.2 ثانیه خاموش ، 0.8 ثانیه روشن! در دنیای دیجیتال: در دوره های 10 چرخه ساعت ، 50٪ به این معنی است که LED برای 5 چرخه روشن است و برای 5 چرخه دیگر LED خاموش است. 20 درصد؟ 2 چرخه روشن ، 8 سیکل خاموش. 45 درصد؟ خوب ، ما واقعاً نمی توانیم 45 get را بدست آوریم … از آنجا که دوره در چرخه است و ما فقط 10 چرخه داریم ، ما فقط می توانیم PWM را در مراحل 10٪ تقسیم کنیم. این بدان معناست که تکامل پین باید برای 50 باشد: 1 ، 1 ، 1 ، 1 ، 1 ، 0 ، 0 ، 0 ، 0 ، 0 ؛ یا حتی 1 ، 0 ، 1 ، 0 ، 1 ، 0 ، 1 ، 0 ، 1 ، 0 ؛ در برنامه نویسی ما می توانیم این دنباله روشن و خاموش کردن یک آرایه را ایجاد کنیم. برای هر چرخه ای که به پین منتقل می کنیم ، مقدار شاخص چرخه است. آیا تا اینجا منطقی بوده ام؟ اگر می خواهیم LED0 را 50٪ و LED1 را 20٪ بسازیم ، می توانیم هر دو آرایه را اضافه کنیم. برای رانندگی پین LED0: 1، 1، 1، 1، 1، 0، 0، 0، 0، 0؛ برای رانندگی پین LED1: 2، 2، 0، 0، 0، 0، 0، 0، 0، 0؛ در نتیجه LED0 +LED0: 3 ، 3 ، 1 ، 1 ، 1 ، 0 ، 0 ، 0 ، 0 ، 0 ؛ با خروجی این دنباله اعداد در IC بسط پورت ، LED0 را با 50٪ روشنایی و LED1 را با 20٪ دریافت می کنیم !! ساده برای 2 LED ، درست است؟ حالا ما باید این را برای 16 LED ، برای هر رنگ بسازیم! برای هر یک از این آرایه ها ، ترکیبی از روشنایی برای هر رنگ (16 LED) داریم هر زمان که می خواهیم ترکیب رنگ دیگری را بخواهیم ، باید این آرایه را تغییر دهیم.
مرحله 5: کار را آسان کنید
مرحله قبلی برای ساختن یک دنباله ساده بسیار زیاد است … بنابراین تصمیم گرفتم یک برنامه بسازم ، جایی که رنگ های هر LED را در یک مرحله از دنباله می گوییم و سه آرایه مرحله را دریافت می کنیم. من این برنامه را در LabView به دلیل محدودیت زمانی تهیه کردم.
مرحله 6: اولین آزمایش ها
چندین مرحله را در میکروکنترلر بارگذاری می کنیم و چیزی شبیه به این به دست می آید: متأسفم برای کیفیت پایین فیلم ها! من حداکثر تعداد مراحل یک دنباله را به 8 تعریف کردم ، و پرش PWM را به 20 limited محدود کردم. این تصمیم بر اساس نوع کنترلی است که من استفاده می کنم و میزان EEPROM ATtiny2313 دارد. در این آزمایشات سعی کردم ببینم چه نوع تأثیراتی می توانم ایجاد کنم. باید بگویم که از نتیجه راضی هستم!
مرحله 7: کنترل در زمان واقعی
همانطور که در مراحل قبل ذکر شد ، مایلم با همه میکروکنترلرهای کنترل کننده LED در اتاقم ارتباط برقرار کنم. بنابراین من از رابط USART موجود در ATtiny2313 استفاده کردم و آن را به کامپیوترم متصل کردم. من همچنین یک برنامه در LabView برای کنترل نوار LED تهیه کردم. در این برنامه می توانم به میکروکنترلر بگویم که دنباله ، رنگ هر LED و زمان بین مراحل یک دنباله چقدر است. در ویدیوی بعدی نشان می دهد که چگونه می توانم رنگ LED ها را تغییر دهم و توالی ها را تعریف کنم.
مرحله 8: نتیجه گیری
فکر می کنم در اولین رویکرد پروژه ام موفق بودم. من قادر به کنترل 16 LED RGB با منابع و محدودیت های کمی هستم. این امکان وجود دارد که هر LED را به طور جداگانه کنترل کرده و هر دنباله دلخواه را ایجاد کنید.
کار آینده:
اگر از مردم بازخورد مثبتی دریافت کنم ، ممکن است این ایده را بیشتر توسعه دهم و یک کیت الکترونیکی DIY کامل ، با تابلوهای مدار چاپی و دستورالعمل های مونتاژ ، بسازم.
برای نسخه بعدی من: LED ها را کنترل کنید -ارتباط بین چندین میکروکنترلر را توسعه دهید.
آیا پیشنهاد یا س questionالی دارید؟ یا کامنت بگذارید!
فینالیست فیلم Let It Glow!
توصیه شده:
آموزش سنسور نور محیطی آردوینو نانو - BH1715: 4 مرحله
Arduino Nano - BH1715 Digital Ambient Sensor Light Sensor: BH1715 یک سنسور نور محیطی دیجیتالی با رابط گذرگاه I²C است. BH1715 معمولاً برای به دست آوردن داده های نور محیط برای تنظیم قدرت نور پس زمینه LCD و صفحه کلید برای دستگاه های تلفن همراه استفاده می شود. این دستگاه دارای وضوح 16 بیت و ضمیمه
نور شب تعاملی SpotLight: 4 مرحله
SpotLight Interactive Nightlight: The SpotLight یک نور شب تعاملی است که از آردوینو استفاده می کند و از یک فرم جذاب مبتنی بر پاگ برخوردار است. این چراغ دارای سه ویژگی تعاملی است: 1) یک سکه در پشت SpotLight قرار دهید تا چراغ ها روشن و خاموش شوند. 2) SpotLight را به ma
نور لمسی تعاملی: 7 مرحله (همراه با تصاویر)
نور لمسی تعاملی: سلام به همه! من می خواهم پروژه ای را که روی آن کار می کردم در اینجا به اشتراک بگذارم. من از آزمایش در لمس خازنی در پروژه ای در دانشگاه خود الهام گرفتم. من از طریق فناوری های آموزشی به این فناوری پی بردم و از چیزهایی که می آموزم استفاده کردم
چگونه می توان یک نور محیطی برای رایانه خود ایجاد کرد: 6 مرحله
چگونه می توان یک نور محیطی برای رایانه خود ایجاد کرد: این یک پروژه ساده ساده است که به محاسبات شما نور محیطی می دهد. البته این امر مستلزم این است که صورت محاسبات شما قابل جابجایی و تهویه باشد ، بنابراین دسترسی و راهی برای دیده شدن نور امکان پذیر است
نور محیطی: 8 مرحله (همراه با تصاویر)
Light Light Ambient Lighting: یک نوار سبک می تواند با استفاده از نور محیط ، خانه شما را روشن کند. می توانید راهروها را روشن کنید ، جلوه محو کننده محو شده را در پشت مرکز سرگرمی خود ایجاد کنید ، الگوهای جدیدی در دیوار نویسی ایجاد کنید یا به سادگی یک منبع نور به خانه خود اضافه کنید. آنجا