فهرست مطالب:
- مرحله 1: شماتیک و سخت افزار
- مرحله 2: ساخت PCB میزبان LED ها
- مرحله 3: ساخت جعبه
- مرحله 4: آماده سازی کراوات
- مرحله 5: چسباندن Fiberoptics
- مرحله 6: قرار دادن Fiberoptics از طریق کراوات
- مرحله 7: چسباندن Fiberoptics به کراوات
- مرحله 8: کد
- مرحله 9: محصول نهایی
تصویری: کراوات ستاره دار آسمان: 9 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
چندی پیش من یک اسباب بازی بچه ای با فیبر نوری در یک فروشگاه دلار پیدا کردم و به این فکر کردم که چه کاری می توانم با آن انجام دهم.
یکی از ایده های دیوانه کننده ای که داشتم ، ساختن کراوات با جلوه آسمان پرستاره بود.
هنوز تعدادی تخته آردوینو مینی ، تخته های adafruit و باتری هایی داشتم که احتمالاً مناسب این پروژه است.
بنابراین به محض این که یک کراوات پهن و زیبا در یک خرده فروشی در شهر خود پیدا کردم و جعبه ای پیدا کردم که از نظر سخت افزاری مناسب باشد ، تصمیم گرفتم سراغ آن بروم و سعی کنم آن را بسازم.
این دستورالعمل نحوه ساخت آن را به شما نشان می دهد.
این دستگاه با شارژر آردوینو پرو مینی ، adafruit powerboost 500 ، emmerich icr 18650nh-sp و 5 LED سفید کار می کند. این کد باعث می شود که روشنایی LED به طور تصادفی تغییر کند. (40 ثانیه اول فیلم 3 برابر سرعت دارد)
مرحله 1: شماتیک و سخت افزار
من از سخت افزار زیر استفاده می کنم:
- PCB با LED های سفید یخی و مقاومت 220 اهم.
-Arduino pro mini (من از knockoff استفاده کردم)
-شارژر Adafruit Powerboost 500
-Emmerich Li-ion accu ICR-18650NH-SP
- الیاف نوری (در اندازه های مختلف)
مرحله 2: ساخت PCB میزبان LED ها
من یک نوار PCB را برای نگه داشتن LED ها جدا کردم و از پین های LED برای لحیم کردن آن به PCB اصلی استفاده کردم.
همه کاتدها (-) را به GND متصل کرده و از نیمی از پین ها برای لحیم کاری آن به PCB اصلی استفاده کرد.
تمام آندها (+) را به مقاومت و با کابل به آردوینو وصل کرد.
LED ها هر کدام باید به یکی از پورت های PWM زیر متصل شوند: 3 ، 5 ، 6 ، 9 ، 10 ، 11
احمقانه من با این پروژه اشتباهات زیادی مرتکب شدم و فراموش کردم پورت های صحیح PWM را بررسی کنم ، بنابراین مجبور شدم چند مورد دیگر را دوباره بفروشم. با High/Low آزمایش شده است ، بنابراین بعداً متوجه این موضوع شدم.
من با 7 LED شروع کردم ، اما فقط 6 پورت PWM وجود داشت و یکی از LED های من که مجدداً فروخته شد ، مرد. من فقط 5 LED کار کرده و از 6 استفاده نمی کنم.
مرحله 3: ساخت جعبه
من از یک Bosch GRO (مانند Dremel) و یک مته برای برش دادن شکل باتری ، دکمه ، پورت micro-usb ، سربرگ های آردوینو و فیبرهای نوری استفاده کردم. (از ماسک گرد و غبار استفاده کنید!)
باتری را با 2 باند به قاب چسباند.
برای نصب برد Adafruit و PCB از پیچ استفاده می شود.
اصطکاک باز و بسته شدن سیم ها باعث آسیب دیدگی آنها شد. مجبور شدم آنها را مجدداً بفروش برسانم و از چسب برای جلوگیری از تکرار آن استفاده کنم.
مرحله 4: آماده سازی کراوات
دوخت را از قسمت پایینی کراوات برداشته تا متناسب با ورق لاستیکی باشد.
برای پنهان کردن سخت افزار و همچنان در صورت نیاز می توانم به آن دسترسی داشته باشم ، تصمیم گرفتم از زیپ استفاده کنم.
من با چرخ خیاطی خوب نیستم ، بنابراین مادر نازنینم یک زیپ در پشت کراوات گذاشت.
پس از انجام این کار ، ورقه لاستیکی را در کراوات چسباندم. من از استفاده زیاد از چسب که پارچه را اشباع می کند و از جلو قابل مشاهده است می ترسیدم ، بنابراین سعی کردم آن را یکدست کنم و زیاد استفاده نکنم. به طور کلی به نظر می رسد خوب است ، اما در چند مکان متوجه چسب زیاد یا بسیار کم شدم ، زیرا از پارچه عبور کرده یا پارچه را خیلی خوب نچسبیده است. خوشبختانه این تنها در فاصله ای نزدیک در نور روشن به سختی قابل مشاهده است.
جعبه و کراوات در حال حاضر تمام شده است. زمان چسباندن فیبر نوری!
مرحله 5: چسباندن Fiberoptics
این اسباب بازی دارای یک سیم بزرگ فیبر نوری بود که به راحتی از هم جدا شد. من ابتدا سعی کردم آنها را یکی یکی بچسبانم ، اما به زودی متوجه شدم که بهتر است دسته های کوچکی بسازم و آنها را به یکباره به LED بچسبانم. این امر باعث می شود تا زمانی که چسب خشک نشده است آن را ثابت نگه دارید. اولین LED را که این را فهمید خراب کرد.
حتما از چسب شفاف استفاده کنید! چیزی که من استفاده کردم خیلی کند خشک شد و چسب خشک شدن سریع که روی اولین LED امتحان کردم سفید شد و برخی از الیاف از LED اول روشنایی کمتری داشت.
برای جلوگیری از نشت نور در بالا و جدا کردن LED ها ، ورق های کوچک لاستیکی مشکی را چسباندم.
یکی از ورق ها جلوی بسته شدن قاب را گرفت ، بنابراین من یک نوار لاستیکی برای بسته نگه داشتن جلد اضافه کردم.
مرحله 6: قرار دادن Fiberoptics از طریق کراوات
از پایین شروع می کنم ، سوراخ ها را با سوزن فشار می دهم و الیاف را یک به یک وارد می کنم. الیاف هر LED به طور تصادفی در سراسر کراوات پخش می شود.
یک نوار مشکی به پشت چسباندم که قرار بود تا قسمت کوچکتر کراوات بالا برود تا وزن جعبه حفظ شود ، اما بعد از اینکه همه سیم ها را از بین بردم و کشش سیم ها را احساس کردم تصمیم گرفتم چسب بزنم همه چیز برای کراوات ایده بهتری بود و نوار را قطع کرد.
از آنجا که سیم های فیبر نوری از اسباب بازی بسیار کوتاه بودند ، نصب آنها در سراسر کراوات سخت بود. من در موقعیت جعبه محدود بودم و به سختی می توانستم همه چیز را به همان اندازه که می خواستم مسطح کنم.
مرحله 7: چسباندن Fiberoptics به کراوات
تمام سیم های فیبر نوری را به ورقه لاستیکی چسبانده ام تا از بیرون کشیدن سیم ها از ورق لاستیکی جلوگیری کرده و کراوات صاف شود.
برای اطمینان از اینکه گیره را هنگام فشار دادن به کراوات نچسباندم ، مقداری کاغذ در بین آن قرار دادم. ظاهر چندان خوبی ندارد اما خوب کار می کند. و وقتی بسته است آن را نمی بینید.
بعد از خشک شدن چسب ، سیمهای جلو را قطع کردم و کمی ورق لاستیکی را در بالای بالاترین سیم قطع کردم ، زیرا کراوات کمی طولانی بود.
عکسهایی با پیراهن سفید قبل از بریدن آخرین لاستیک ساخته شده اند.
مرحله 8: کد
در زیر کدی که برای کراوات نوشتم.
همه LED ها دارای یک "متوسط" (نه در واقع متوسط ، بلکه روشنایی متوسط) هستند.
به محض رسیدن به این میانگین ، با احتمال 3/4 تصمیم می گیرد تا به روشنایی پایین تری برسد. همچنین به طور تصادفی حداقل روشنایی جدید ، حداکثر روشنایی ، زمان انتظار برای حداقل و حداکثر روشنایی و سرعت افزایش یا کاهش آن در هر دور (1-255) را از 5 مقدار از پیش تعیین شده تعیین می کند. سپس چرخه ای را انجام می دهد تا دوباره به میانگین برسد. فقط 2 LED می تواند همزمان در یک چرخه بالا باشد.
هر حالت با یک عدد صحیح (1-7) نشان داده می شود که میانگین کم ، متوسط پایین ، کم انتظار ، به روز رسانی و غیره است.
برای اطلاعات در مورد بارگذاری کد در arduino ، لطفاً به www.arduino.cc مراجعه کنید
/ * Starry Sky Tie * * این یک اسکریپت است که به طور تصادفی 5 LED را از میانگین به کمتر * یا روشنایی بیشتر با تنظیمات تصادفی کمتر ، بالاتر و زمانبندی * محو می کند تا در صورت استفاده از فیبر نوری شبیه به آسمان پرستاره به نظر برسد. * در این صورت این موارد به صورت تساوی اجرا می شوند. * * شانس بالا/پایین = 1/4 بالا ، 3/4 پایین ، حداکثر 2 * همزمان به حداکثر می رسد. * * میانگین ثابت می ماند. * حداقل ، حداکثر و زمانبندی گزینه ها به طور تصادفی تغییر می کند * از 5 گزینه در هر بار که LED دوباره به میانگین می رسد. * * ایجاد شده توسط بیلی جاسپرز ، مه 2019. *
/ اعلام پین ها
int LED01 = 3 ؛ int LED02 = 5 ؛ int LED03 = 6 ؛ int LED04 = 9 ؛ int LED05 = 11؛
// متغیرهای زمان
جریان طولانی بدون علامت؛ زمان امضای طولانی بدون امضا [5]؛ unsigned long lastRound؛
// متغیرهای LED
int brightMin [5] = {10 ، 10 ، 10 ، 10 ، 10} ؛ // حداقل روشنایی int brightAvg [5] = {200 ، 200 ، 200 ، 200 ، 200} ؛ // میانگین روشنایی int brightMax [5] = {240 ، 240 ، 240 ، 240 ، 240} ؛ // حداکثر روشنایی int timeWaitLow [5] = {1000، 1000، 1000، 1000، 1000}؛ // زمان انتظار int timeWaitAvg [5] = {5000، 5000، 5000، 5000، 5000}؛ // زمان انتظار int timeWaitMax [5] = {4000 ، 3000 ، 3000 ، 3000 ، 3000} ؛ // زمان انتظار int increment [5] = {2، 5، 4، 5، 2}؛ // افزایش روشنایی int currentBright [5] = {200، 230، 210، 210، 235}؛ // روشنایی فعلی
// متغیرهای LED امکانات
int brightMinPos [5] = {5 ، 20 ، 40 ، 5 ، 20} ؛ // حداقل امکانات روشنایی int brightMaxPos [5] = {240، 245، 230، 225، 245}؛ // حداکثر امکانات روشنایی int timeLowPos [5] = {3000، 5000، 4000، 2000، 1000}؛ // زمان انتظار برای احتمال روشنایی کم int timeHighPos [5] = {3000، 1000، 500، 2000، 4000}؛ // زمان انتظار در مورد روشنایی بالا int timeAvgPos [5] = {3000، 5000، 4000، 7000، 8000}؛ // زمان انتظار برای احتمال روشنایی متوسط int incrementPos [5] = {2، 4، 5، 3، 1}؛ // افزایش امکانات روشنایی
// متغیرها
bool startup = true؛ // آیا تنظیمات شروع باید شروع شوند؟
// متغیرهای جهت دار
/* 0 = میانگین انتظار 1 = میانگین به پایین 2 = انتظار پایین 3 = پایین رفتن به میانگین 4 = رسیدن به میانگین حداکثر برای 5 = انتظار حداکثر 6 = بالا رفتن به میانگین 7 = به روز رسانی متغیرها*/ int وضعیت LED [5] = {0 ، 0 ، 0 ، 0 ، 0} ؛ مقدار intHighLED = 0 ؛ int refreshRate = 50 ؛ bool statusWaiting [5] = {نادرست ، غلط ، غلط ، غلط ، نادرست} ؛ // آیا Led منتظر است؟
// متغیرهای تصادفی
long randomNumber؛ // برای ذخیره تعداد تصادفی long randomNumberTwo؛ // طولانی برای ذخیره شماره تصادفی دوم
// شمارنده
int i = 0 ؛ // شمارنده برای حلقه اصلی
void setup () {
Serial.begin (115200) ؛ // شروع سریال randomSeed (analogRead (A0)) ؛ // دانه تصادفی را تنظیم کنید
// خروجی ها را اعلام کنید
pinMode (LED01 ، OUTPUT) ؛ pinMode (LED02 ، OUTPUT) ؛ pinMode (LED03 ، OUTPUT) ؛ pinMode (LED04 ، OUTPUT) ؛ pinMode (LED05 ، OUTPUT) ؛ }
// نوشتن داده ها به LED ها
void writeToLED () {analogWrite (LED01 ، currentBright [0]) ؛ analogWrite (LED02 ، currentBright [1]) ؛ analogWrite (LED03 ، currentBright [2]) ؛ analogWrite (LED04 ، currentBright [3]) ؛ analogWrite (LED05 ، currentBright [4]) ؛ }
// حلقه اصلی
void loop () {if (راه اندازی) {// تنظیمات راه اندازی lastRound = millis ()؛ // تنظیم lastRound برای boot writeToLED ()؛ // نوشتن داده های شروع به راه اندازی LED = false؛ // خاموش کردن راه اندازی} currentTime = millis ()؛ // تنظیم زمان فعلی
if (currentTime - lastRound> = refreshRate) {
برای (i = 0 ؛ i <5؛ i ++) {if (statusLED == 7) {// -7- به روز رسانی Led randomNumber = تصادفی (5) ؛ brightMin = brightMinPos [randomNumber] ؛ // مقدار تصادفی برای حداقل روشنایی randomNumber = random (5)؛ brightMax = brightMaxPos [randomNumber] ؛ // مقدار تصادفی برای حداکثر روشنایی randomNumber = random (5)؛ timeWaitLow = timeLowPos [randomNumber] ؛ // مقدار تصادفی برای زمان انتظار کم تصادفی randomNumber = random (5)؛ timeWaitMax = timeHighPos [randomNumber] ؛ // تنظیم مقدار تصادفی برای زمان انتظار زیاد randomNumber = random (5)؛ timeWaitAvg = timeAvgPos [randomNumber] ؛ // مقدار تصادفی را برای متوسط زمان انتظار تصادفی تنظیم کنید randomNumber = random (5)؛ افزایش = incrementPos [تعداد تصادفی] ؛ // مقدار تصادفی را برای مقدار افزایش تصادفی randomNumber = random (2)؛ // مقدار تصادفی را برای جهت randomNumberTwo = random (2) تعیین کنید؛ // مقدار تصادفی برای جهت if (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0 ؛ // اگر در پایین ترین نقطه: به Waiting Avg} else بروید {currentBright = currentBright +افزایش ؛ // دیگر: روشنایی بیشتر}} if if (statusLED == 2) {// -2- Waiting Low if (! statusWaiting ) {// در صورت عدم انتظار: waitTime = millis () ؛ // تنظیم زمان انتظار statusWaiting = true؛ // انتظار را شروع کنید} دیگری اگر (statusWaiting && currentTime-waitTime > = timeWaitLow ) {// اگر انتظار AND timeWaitAvg سپری شده است: statusWaiting = false؛ // توقف وضعیت انتظار LEDLE = 3؛ // تنظیم statusLed to Waiting for update}} در غیر این صورت (statusLED == 1) {// -1- به طور متوسط به پایین اگر (currentBright <= brightMin ) {statusLED = 2؛ // اگر در پایین ترین نقطه: به Waiting Low} بروید {otherBright = currentBright -increment ؛ // دیگر: روشنایی پایینتر}} if if (statusLED == 6) {// -6- Max to Avg if (currentBright = timeWaitMax ) {// در صورت انتظار AND timeWaitAvg سپری شده است: statusWaiting = false؛ // توقف وضعیت انتظار LEDLE = 6؛ // تنظیم statusLed to Waiting for update}} if if (statusLED == 4) {// -4- رفتن به میانگین به حداکثر اگر (currentBright > = brightMax ) {statusLED = 5 // اگر در پایین ترین نقطه: به Waiting High بروید} else {currentBright = currentBright +افزایش ؛ // دیگر: روشنایی بیشتر}} if if (statusLED == 0) {// -0- در حالت متوسط اگر (! statusWaiting ) {// در صورت عدم انتظار: waitTime = millis ()؛ // تنظیم زمان انتظار statusWaiting = true؛ // انتظار را شروع کنید} else if (statusWaiting && currentTime-waitTime > = timeWaitAvg ) {// در صورت انتظار AND timeWaitAvg سپری شده است: statusWaiting = false؛ // توقف وضعیت انتظار LEDLE = 7؛ // statusLed را در انتظار به روز رسانی}}} i = 0 تنظیم کنید؛ lastRound = millis ()؛ // هنگامی که آخرین دور به پایان رسید تنظیم کنید. writeToLED ()؛ // نوشتن همه داده ها به LED ها}}
مرحله 9: محصول نهایی
فکر کنم خوب کار کرد. کراوات خیلی ضخیم ، سفت ، بلند یا سنگین نیست و جلوه ستاره ای شگفت انگیز به نظر می رسد.
توصیه شده:
ساعت زنگ دار هوشمند: یک ساعت زنگ دار هوشمند ساخته شده با تمشک پای: 10 مرحله (همراه با تصاویر)
ساعت زنگ دار هوشمند: ساعت زنگ دار هوشمند ساخته شده با تمشک پای: آیا تا به حال به دنبال ساعت هوشمند بوده اید؟ اگر چنین است ، این راه حل برای شما است! من ساعت زنگ دار هوشمند ساختم ، این یک ساعت است که می توانید زمان زنگ ساعت را با توجه به وب سایت تغییر دهید. هنگامی که زنگ هشدار به صدا در می آید ، یک صدا (زنگ) و 2 چراغ
کراوات صوتی ، توسط دیوید بولدوین اینگن: 4 مرحله (همراه با تصاویر)
پاپیون صوتی ، توسط دیوید بولدوین اینگن: یک پاپیون جمع و جور ، قادر به نمایش مداوم صدای اطراف در چهار فرکانس مختلف در دو آرایه LED آینه دار 4x5 آن است. این آموزش نحوه ساخت پاپیون را که شما را برجسته می کند ، آموزش می دهد. در هر جمعیتی آنچه شما نخواهید
ایستگاه هواشناسی قابل حمل برای ناظران آسمان شب: 7 مرحله (همراه با تصاویر)
ایستگاه هواشناسی قابل حمل برای ناظران آسمان شب: آلودگی نوری یکی از بسیاری از مشکلات جهان است. برای حل این مشکل ، باید بدانیم آسمان شب چقدر با نور مصنوعی آلوده شده است. بسیاری از دانش آموزان دارای معلم در جهان سعی می کنند آلودگی نوری را با سنسورهای گران قیمت اندازه گیری کنند. تصمیم گرفتم
کراوات هولی: 8 مرحله (همراه با تصاویر)
کراوات هولی: این کراوات هولی است ، یک کراوات جشن که برای پوشیدن در تعطیلات طراحی شده است. بر اساس Ampli-Tie توسط Becky Stern که از برد Flora استفاده می کند ، Holi-Tie از میکروکنترلر Circuit Python Express (CPX) برای هدایت انیمیشن های NeoPixel و
طناب های محکم را بدون کراوات یا گره بزنید: 5 مرحله (همراه با تصاویر)
طنابها را بدون کراوات یا گره ببندید: هدف: روشی برای بستن سیم (هدفون ، برق و غیره) بدون کراوات یا بند Velcro که سریع است ، واگذار نمی شود و سریع باز می شود. در اینجا یک روش وجود دارد ، هر گونه پیشنهاد بهتر؟ راهنمای بیشتر: http://www.curiousinventor.com/guides نمایش ویدئویی