فهرست مطالب:

چراغ های فیبر نوری در چاپ روی بوم: 5 مرحله
چراغ های فیبر نوری در چاپ روی بوم: 5 مرحله

تصویری: چراغ های فیبر نوری در چاپ روی بوم: 5 مرحله

تصویری: چراغ های فیبر نوری در چاپ روی بوم: 5 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
Image
Image
چراغ های فیبر نوری در چاپ روی بوم
چراغ های فیبر نوری در چاپ روی بوم

این پروژه یک چرخش منحصر به فرد بر روی چاپ بوم استاندارد اضافه می کند. من در 4 حالت مختلف نورپردازی برنامه ریزی کردم اما شما به راحتی می توانید موارد بیشتری را اضافه کنید. هر بار که آن را خاموش و روشن می کنید ، به جای داشتن یک دکمه جداگانه ، حالت تغییر می کند تا آسیب به فریم به حداقل برسد. باتری ها باید بیش از 50 ساعت استفاده کنند - من واقعاً مطمئن نیستم ، اما من یک پروژه مشابه را برای یک دوست تهیه کردم و از 5 برابر بیشتر نور استفاده کرد و بیش از 20 ساعت با یک مجموعه باتری دوام آورد.

مواد

  • چاپ روی بوم با فضای قابل اجرا - من این دستگاه را از https://www.easycanvasprints.com سفارش دادم زیرا قیمت های خوبی داشتند و پشت آنها باز بود. فریم ضخیم تر 1.5 اینچی کامل بود و فضای زیادی به من داد تا رشته های فیبر نوری را خم کنم. علاوه بر این شما تصویری می خواهید که 3 "در 8" فضای قابل کار برای بسته باتری و میکروکنترلر و نوارهای LED به شما بدهد.
  • چراغ های نوار LED - من از نوارهای LED WS2812 آدرس پذیر استفاده کردم. نگران نباشید ، استفاده از آنها با کتابخانه های FastLED یا Neopixel واقعا آسان است! همچنین می توانید از هر نوار LED استاندارد استفاده کنید ، فقط نمی توانید هر قسمت نور را به صورت جداگانه بدون سیم کشی بیشتر کنترل کنید.
  • میکروکنترلر - من از Arduino Uno استفاده کردم اما شما می توانید تقریباً از هر چیزی برای این پروژه استفاده کنید.
  • بسته باتری - من این را از eBay (از چین) سفارش دادم و عنوان آن "6 x 1.5V AA 2A CELL Battery Battery Battery"
  • رشته های فیبر نوری - بار دیگر ، از چین در eBay سفارش داده شد - "PMMA Plastic Fiber Optic Cable End Grow Led Light DIY Decor" یا "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". من از سایزهای 1 میلی متر و 1.5 میلی متر استفاده کردم ، در واقع توصیه می کنم از اندازه کوچکتر از آن استفاده کنید.
  • سوئیچ روشن/خاموش - "سوئیچ های روشن/خاموش 2 حالته SPDT"
  • کلیپ های سازمان دهی سیم - اینها به زیبا و مرتب ماندن رشته های فیبر نوری کمک می کند.
  • تخته فوم ، سیم اتصال دهنده جامد ، لوله کوچک کننده حرارتی

ابزارها

  • Dremel - برای لانه کردن کلید روشن/خاموش در قاب تصویر استفاده می شود. این کار را شاید بتوان با یک مته و مقدار بسیار زیادی انجام داد ، اما من این کار را توصیه نمی کنم.
  • لحیم کاری - اتصال سیم به نوار LED
  • تفنگ چسب داغ - به معنای واقعی کلمه هر مرحله از این پروژه
  • سوزن دوخت بزرگ - برای ایجاد سوراخ از طریق بوم و تخته فوم برای چراغ ها

مرحله 1: تخته فوم ، بسته باتری و سوئیچ روشن/خاموش

صفحه فوم ، بسته باتری و سوئیچ روشن/خاموش
صفحه فوم ، بسته باتری و سوئیچ روشن/خاموش
صفحه فوم ، بسته باتری و سوئیچ روشن/خاموش
صفحه فوم ، بسته باتری و سوئیچ روشن/خاموش

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

من از بیت dremel استفاده کردم که شبیه یک مته معمولی است اما در واقع برای حذف مواد عالی است. این یکی از مواردی است که باید با هر دمل همراه باشد. از یک قوطی هوای فشرده برای از بین بردن خاک اره از رویه استفاده کنید.

چسب حرارتی همه چیز را در جای خود قرار دهید. اطمینان حاصل کنید که بسته باتری بسیار خوب متصل شده است زیرا برای وارد کردن/برداشتن باتری به نیروی زیادی نیاز دارد و نمی خواهید نگهدارنده باتری به جایی برسد.

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

میکروکنترلر و مدار
میکروکنترلر و مدار
میکروکنترلر و مدار
میکروکنترلر و مدار
میکروکنترلر و مدار
میکروکنترلر و مدار

من سوئیچ پاور را قبل از Arduino UNO قرار دادم تا وقتی سوئیچ را عوض می کنید ، هیچ چیزی از باتری های برق استفاده نمی کند. این باید به باتری ها کمک کند تا زمانی که ممکن است پروژه روشن نشده باشد. بردهای آردوینو در مدیریت نیرو بسیار بد هستند - اگر روشن باشند حتی اگر فعالانه کاری انجام ندهند از جریان زیادی استفاده می کنند.

قسمت مثبت بسته باتری را به VIN (ورودی ولتاژ) میکروکنترلر وصل کنید تا از تنظیم کننده ولتاژ داخلی کنترل کننده استفاده کند تا ولتاژ را به 5 ولت مورد نیاز برساند. اگر ما چراغ های بیشتری را تغذیه می کردیم ، ممکن است لازم باشد از تنظیم کننده ولتاژ خود برای آنها استفاده کنیم ، اما UNO باید بتواند 5 LED را اداره کند.

من از یک مقاومت بین خروجی داده و نوار LED برای صاف کردن سیگنال استفاده کردم - بدون مقاومت ممکن است چشمک زن تصادفی پیکسل ها باشید. اندازه مقاومت واقعاً مهم نیست ، هر چیزی بین 50Ω و 400Ω باید کار کند.

مرحله 3: چراغ های فیبر نوری

Image
Image
چراغ های فیبر نوری
چراغ های فیبر نوری
چراغ های فیبر نوری
چراغ های فیبر نوری

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

  1. از بزرگترین سوزن خیاطی که باید استفاده کنید برای سوراخ کردن جلوی بوم و تخته فوم استفاده کنید. توصیه می کنم در همان ابتدا هر سوراخی را که می خواهید ایجاد کنید تا بتوانید آن را ورق بزنید و ببینید کجا می توانید/نمی توانید کلیپ های سازمان کابل خود را قرار دهید
  2. یک انبردست بینی سوزنی بردارید و رشته فیبر نوری را در فاصله کمتر از یک سانتیمتر از انتها بگیرید
  3. رشته فیبر نوری را از سوراخی که با سوزن ایجاد کرده اید بکشید
  4. رشته را از طریق گیره های پلاستیکی مختلف به جایی ببرید که کمی طولانی تر از حد لازم است - بعداً آن را قطع می کنیم
  5. با تفنگ چسب حرارتی خود را روی درجه حرارت LOW (در صورت داشتن چنین گزینه ای) یک قطره چسب داغ روی رشته فیبر نوری قرار دهید ، جایی که از صفحه فوم عبور می کند. متناوباً می توانید از آن وسایل چسبناک آبی استفاده کنید. چسب حرارتی باعث تغییر شکل کمی در رشته می شود اما به نظر نمی رسد با ویژگی های نوری زیاد درگیر شود
  6. با استفاده از برش سیم ، رشته را کمی از بوم دور کنید.

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

مراقب باشید رشته های فیبر نوری روی میز را نشکنید یا خرد نکنید - آنها می شکنند و اگر این رشته خیلی کوتاه شود ، ناراحت می شوید و مجبورید آن را دوباره انجام دهید. از باتری به عنوان وزنه وزنه استفاده کنید تا بتوانید قاب عکس را کمتر از نصف روی میز داشته باشید.

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

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

  1. رشته های دسته را تقریباً به همان طول ببرید
  2. قسمت را از طریق لوله های کوچک کننده حرارتی قرار دهید
  3. برای کوچک کردن آن از تفنگ حرارتی یا لحیم استفاده کنید. اگر از آهن لحیم کاری استفاده می کنید ، فقط بگذارید کنار اتو به آرامی لوله را لمس کند و کوچک می شود. نباید لوله را ذوب کند زیرا برای حرارت کمی طراحی شده است.

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

مرحله 4: برنامه نویسی

در برنامه نویسی این از کتابخانه های سه گانه استفاده کردم

FastLED - یک کتابخانه عالی برای کنترل نوارهای LED WS2812 (و بسیاری از نوارهای LED آدرس پذیر) -

کم مصرفی آردوینو - من نمی دانم که این دستگاه چقدر در مصرف انرژی صرفه جویی می کند ، اما پیاده سازی آن بسیار آسان بود و باید به شما در صرفه جویی کمی از قدرت در عملکردی که فقط چراغ سفید است و سپس برای همیشه به تعویق می افتد کمک کند.

EEPROM - برای خواندن/ذخیره حالت فعلی پروژه استفاده می شود. این به پروژه امکان می دهد هر بار که حالت را خاموش و روشن می کنید ، حالت رنگ را افزایش دهد ، که نیازی به یک دکمه جداگانه برای تغییر حالت ندارد. هر زمان که Arduino IDE را نصب می کنید ، کتابخانه EEPROM نصب می شود.

من همچنین از یک طرح برای چشمک زدن چراغ هایی که شخص دیگری تنظیم کرده است استفاده کردم. به طور تصادفی یک پیکسل را از رنگ اصلی به رنگ اوج روشن می کند و سپس عقب می افتد. https://gist.github.com/kriegsman/88954aae22b03a66… (از کتابخانه FastLED نیز استفاده می کند)

من همچنین از افزونه vMicro برای Visual Studio استفاده کردم - این یک نسخه تقویت شده از Arduino IDE است. این برنامه دارای چندین عملکرد تکمیل خودکار مفید است و مشکلات را بدون نیاز به کامپایل کردن در کد شما برجسته می کند. هزینه آن 15 دلار است ، اما اگر می خواهید بیش از یک پروژه آردوینو بسازید ، ارزش آن را دارد و شما را مجبور می کند تا با Visual Studio که یک برنامه فوق العاده قدرتمند است آشنا شوید.

(من همچنین فایل.ino را ضمیمه می کنم زیرا میزبانی قابل آموزش Github Gist بسیاری از فضاهای خالی فایل را از بین می برد)

کد Arduino دارای 4 حالت رنگی در Arduino UNO برای برخی از چراغ های نوار LED WS2812B با استفاده از کتابخانه FastLED

#عبارتند از
#عبارتند از
#عبارتند از
// راه اندازی FastLED
#defineNUM_LEDS4
#definePIN3 // پین داده برای نوار LED
رهبری CRGB [NUM_LEDS] ؛
// راه اندازی چشمک زن
#deBineBASE_COLORCRGB (2 ، 2 ، 2) // رنگ زمینه اصلی
#تعریفPEAK_COLORCRGB (255 ، 255 ، 255) // رنگ اوج برای چشمک زدن تا
// مقدار برای افزایش رنگ توسط هر حلقه که روشن تر می شود:
#تعریفDELTA_COLOR_UPCRGB (4 ، 4 ، 4)
// مقدار کاهنده شدن رنگ توسط هر حلقه با کم نورتر شدن:
#تعریفDELTA_COLOR_DOWNCRGB (4 ، 4 ، 4)
// احتمال روشن شدن هر پیکسل شروع می شود.
// 1 یا 2 = چند پیکسل روشن کننده در یک زمان.
// 10 = تعداد زیادی پیکسل در یک زمان روشن می شوند.
#defineCHANCE_OF_TWINKLE2
enum {SteadyDim، GettingBrighter، GettingDimmerAgain}؛
uint8_t PixelState [NUM_LEDS] ؛
بایت runMode ؛
بایت globalBright = 150؛
بایت globalDelay = 20؛ // سرعت تاخیر برای چشمک زدن
آدرس بایت = 35؛ // آدرس برای ذخیره حالت اجرا
voidsetup ()
{
FastLED.addLeds (leds ، NUM_LEDS) ؛
FastLED.setCorrection (TypicalLEDStrip) ؛
//FastLED.setMaxPowerInVoltsAndMilliamps(5 ، maxMilliamps) ؛
FastLED.setBrightness (globalBright) ؛
// حالت اجرا را دریافت کنید
runMode = EEPROM.read (آدرس) ؛
// حالت اجرا را 1 افزایش دهید
EEPROM.write (آدرس ، runMode + 1) ؛
}
voidloop ()
{
سوئیچ (runMode)
{
// سفید جامد
case1: fill_solid (leds، NUM_LEDS، CRGB:: White)؛
FastLED.show ()؛
DelayForever () ؛
زنگ تفريح؛
// به آرامی چشمک می زنم
case2: FastLED.setBrightness (255) ؛
globalDelay = 10؛
TwinkleMapPixels ()؛
زنگ تفريح؛
// سریع چشمک بزن
case3: FastLED.setBrightness (150) ؛
globalDelay = 2؛
TwinkleMapPixels ()؛
زنگ تفريح؛
//رنگين كمان
مورد 4:
RunRainbow () ؛
زنگ تفريح؛
// خارج از محدوده فهرست بندی کنید ، آن را به 2 تنظیم کنید و سپس حالت 1 را اجرا کنید.
// هنگام راه اندازی مجدد arduino حالت 2 را اجرا می کند ، اما در حال حاضر حالت 1 را اجرا می کند
پیش فرض:
EEPROM.write (آدرس ، 2) ؛
runMode = 1 ؛
زنگ تفريح؛
}
}
voidRunRainbow ()
{
بایت *c؛
uint16_t i، j؛
در حالی که (درست)
{
برای (j = 0 ؛ j <256 ؛ j ++) {// 1 چرخه همه رنگها روی چرخ
برای (i = 0 ؛ i <NUM_LEDS ؛ i ++) {
c = چرخ (((i * 256 / NUM_LEDS) + j) و 255) ؛
setPixel (i ، *c ، *(c + 1) ، *(c + 2)) ؛
}
FastLED.show ()؛
تاخیر (globalDelay) ؛
}
}
}
byte * Wheel (byte WheelPos) {
بایت استاتیک c [3]؛
if (WheelPos <85) {
c [0] = WheelPos * 3 ؛
c [1] = 255 - WheelPos * 3 ؛
c [2] = 0 ؛
}
elseif (WheelPos <170) {
WheelPos -= 85 ؛
c [0] = 255 - WheelPos * 3 ؛
c [1] = 0 ؛
c [2] = WheelPos * 3 ؛
}
دیگری {
WheelPos -= 170 ؛
c [0] = 0 ؛
c [1] = WheelPos * 3 ؛
c [2] = 255 - WheelPos * 3 ؛
}
بازگشت ج؛
}
voidTwinkleMapPixels ()
{
InitPixelStates ()؛
در حالی که (درست)
{
برای (uint16_t i = 0 ؛ i <NUM_LEDS ؛ i ++) {
if (PixelState == SteadyDim) {
// این پیکسل ها در حال حاضر: SteadyDim
// بنابراین ما به طور تصادفی در نظر می گیریم که روشن شدن آن شروع شود
if (random8 () <CHANCE_OF_TWINKLE) {
PixelState = GettingBrighter؛
}
}
elseif (PixelState == GettingBrighter) {
// این پیکسل ها در حال حاضر: GettingBrighter هستند
// بنابراین اگر در رنگ اوج است ، دوباره آن را به کم نور شدن تغییر دهید
if (leds > = PEAK_COLOR) {
PixelState = GettingDimmerAgain ؛
}
دیگری {
// در غیر این صورت ، فقط آن را روشن کنید:
leds += DELTA_COLOR_UP ؛
}
}
else {// دوباره کم نور می شود
// این پیکسل ها در حال حاضر: GettingDimmerAgain است
// بنابراین اگر دوباره به رنگ اصلی برگشت ، آن را به حالت کم نور ثابت تغییر دهید
if (leds <= BASE_COLOR) {
leds = BASE_COLOR ؛ // در صورتی که بیش از حد موردنظر قرار دهیم ، به رنگ اصلی دقیق بازنشانی می شود
PixelState = SteadyDim ؛
}
دیگری {
// در غیر این صورت ، فقط آن را کم کنید:
leds -= DELTA_COLOR_DOWN ؛
}
}
}
FastLED.show ()؛
FastLED.delay (globalDelay) ؛
}
}
voidInitPixelStates ()
{
ممست (PixelState ، sizeof (PixelState) ، SteadyDim) ؛ // مقداردهی اولیه تمام پیکسل ها به SteadyDim.
fill_solid (leds ، NUM_LEDS ، BASE_COLOR) ؛
}
voidDelayForever ()
{
در حالی که (درست)
{
تأخیر (100) ؛
LowPower.powerDown (SLEEP_FOREVER ، ADC_OFF ، BOD_OFF) ؛
}
}
voidshowStrip () {
FastLED.show ()؛
}
voidsetPixel (int Pixel ، قرمز بایت ، سبز بایت ، آبی بایت) {
// FastLED
leds [پیکسل].r = قرمز ؛
leds [پیکسل].g = سبز ؛
leds [پیکسل].b = آبی ؛
}

مشاهده rawFiberOptic_ClemsonPic.ino میزبان با ❤ توسط GitHub

مرحله 5: محصول نهایی

محصول نهایی
محصول نهایی
محصول نهایی
محصول نهایی
محصول نهایی
محصول نهایی

تا-دا! امیدوارم این دستورالعمل الهام بخش شخص دیگری باشد تا پروژه مشابه خود را بسازد. واقعاً انجام این کار سخت نبود و من تعجب کردم که هیچ کس آن را انجام نداده است و هنوز یک دستورالعمل کامل در مورد آن ننوشته است.

توصیه شده: