Мазмуну:
- 1 -кадам: Foam Board, Battery Pack жана On/Off Switch
- 2 -кадам: Микроконтроллер жана микросхема
- 3-кадам: Була-оптикалык жарыктар
- 4 -кадам: Программалоо
- 5 -кадам: Акыркы продукт
Video: Кенеп басуудагы була-оптикалык жарыктар: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул долбоор стандарттуу полотного уникалдуу айланууну кошот. Мен 4 түрдүү жарык режимдеринде программаладым, бирок сиз дагы оңой кошо аласыз. Режим кадрды бузууну азайтуу үчүн өзүнчө баскычтын ордуна аны өчүрүп -күйгүзгөн сайын алмаштырылат. Батареялар 50+ саатка чейин иштеши керек - мен так билбейм, бирок мен досума окшош проект жасадым жана ал 5x көп жарык колдонуп, бир батареяда 20+ саатка созулду.
Материалдар
- Иштетилүүчү мейкиндик менен кенеп басып чыгаруу - Мен https://www.easycanvasprints.com сайтынан заказ кылдым, анткени алар жакшы бааларга жана арткы жагына ачык болчу. Калыңыраак 1,5 дюйм кемчиликсиз болчу жана мага була -оптикалык жиптерди бүгүү үчүн көп орун берди. Андан тышкары, сизге батарейка жана микроконтроллер жана LED тилкелери үчүн 3 "8" дык мейкиндикти берген сүрөт керек.
- LED тасма жарыктары - Мен даректүү WS2812 LED тилкелерин колдондум. Коркпоңуз, аларды FastLED же Neopixel китепканалары менен колдонуу оңой! Сиз ошондой эле кандайдыр бир стандарттык LED тилкесин колдонсоңуз болот, ар бир жарык бөлүгүн бир дагы зым өткөрбөстөн башкара албайсыз.
- Микроконтроллер - Мен Arduino Uno колдондум, бирок сиз бул долбоор үчүн дээрлик бардыгын колдоно аласыз.
- Батарея пакети - Мен муну eBayден (Кытайдан) заказ кылдым жана ал "6 x 1.5V AA 2A CELL Батарея Батарейкаларынын кармагычы" деп аталды
- Була -оптикалык жиптер - дагы бир жолу Кытайдан eBay аркылуу заказ кылынган - "PMMA Пластикалык була -оптикалык кабель LED DIY декорунун өсүшү" же "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". Мен 1мм жана 1,5мм өлчөмдөрүн колдондум, чындыгында андан кичирээкти колдонууну сунуштайм.
- Күйгүзүү/Өчүрүү - "SPDT On/On 2 Position Miniature Toggle Switch"
- Зым уюштуруу клиптери - Булалар оптикалык жиптердин жакшы жана тыкан болушуна жардам берет.
- Көбүк тактайы, катуу өзөктүү туташтыргыч зым, жылуулукту кыскартуучу түтүк
Куралдар
- Dremel - сүрөт алкагына күйгүзүү/өчүрүү которгучун салуу үчүн колдонулат. Бул, балким, машыгуу жана чындап эле чоң нерсе менен аткарылышы мүмкүн, бирок мен муну сунуш кылбайм.
- Лампочка - зымдарды LED тилкесине бекитүү
- Hot желим тапанча - бул долбоордун ар бир кадамы
- Чоң тигүү ийнеси - кенеп аркылуу тешиктерди тешүү үчүн жана жарык үчүн көбүк такта
1 -кадам: Foam Board, Battery Pack жана On/Off Switch
Башка нерсеге чейин полотнонун артына көбүк тактайынын бир бөлүгүн тиркөө керек. Бул бизге калган нерсенин бардыгын бекитип берчү жакшы жерди берет жана була -оптикалык жиптерди кармап турууга жардам берет. Так бычакты же куту кескичти колдонуп, көбүктөнгөн тактайдын бир бөлүгүн керектүү өлчөмдө кесип, көптөгөн жерлерге ысык желим менен чаптаңыз. Мен жарыктын көп өтүшүнө жол бербеши үчүн кара көбүктөнгөн тактайды колдонууну сунуштайм.
Мен кадимки бургуга окшош, бирок материалды алып салуу үчүн эң сонун болгон дремелди колдондум. Бул кандайдыр бир дремел менен келиши керек болгон биттердин бири. Дремелден ар кандай жыгачтан арылуу үчүн бир куту кысылган абаны колдонуңуз.
Ысык клей баарын ордуна. Батарея топтому абдан жакшы тиркелгенин тактаңыз, анткени ал батарейканы салуу/чыгаруу үчүн жакшы күчтү талап кылат жана батарея кармагычтын эч жакка кетишин каалабайсыз.
2 -кадам: Микроконтроллер жана микросхема
Мен Arduino UNOго кубат которгучту койдум, ошондо сиз которгучту которгондо эч нерсе батареянын кубатын колдонбойт. Бул долбоор күйгүзүлбөгөндө батарейкалардын мүмкүн болушунча көбүрөөк иштешине жардам бериши керек. Arduino такталары электр энергиясын башкарууда абдан начар - алар эч нерсе кылбаса дагы күйгүзүлгөн болсо, алар көп токту колдонушат.
Батарея пакетинин оң жагын микроконтроллердин VIN'ине (чыңалуу киргизүү) киргизиңиз, ошондо ал чыңалууну керектүү 5Вга чейин түшүрүү үчүн контроллердин орнотулган чыңалуу жөндөгүчүн колдонот. Эгерде биз көбүрөөк жарыкты иштетип жаткан болсок, анда биз аларга өзүбүздүн чыңалуу жөнгө салуучубузду колдонушубуз керек болот, бирок БУУ 5 светодиод менен иштей алышы керек.
Мен сигналды текшилөө үчүн маалыматтын чыгышы менен LED тилкесинин ортосундагы резисторду колдондум - резисторсуз сиз туш келди пикселдердин жарк этип калышыңыз мүмкүн. Резистордун өлчөмү эч кандай мааниге ээ эмес, 50Ω менен 400Ω ортосунда эч нерсе иштебеши керек.
3-кадам: Була-оптикалык жарыктар
Бир аз сыноодон кийин мен акыры кенеп аркылуу оптикалык булаларды алуу үчүн жакшы жолду таптым.
- Эң чоң тигүүчү ийнени колдонуп, кенептин жана пенопласттын алдыңкы бөлүгүн тешип алыңыз. Мен эң башында каалаган тешикти тешүүнү сунуштайм, андыктан аны оодарып, кабелдик уюштуруу клиптериңизди кайда коё албооңузду көрө аласыз.
- Ийне тумшуктуу кычкачты алып, була-оптикалык жипти бир сантиметрге жетпеген жерден кармаңыз
- Була -оптикалык жипти ийне менен жасалган тешиктен өткөрүңүз
- Жипти ар кандай пластикалык клиптер аркылуу керектүү жерден бир аз узунураак жерге буруңуз - биз аны кийинчерээк кесебиз
- Төмөн температура режиминде ысык желим мылтыгыңыз менен (эгерде мындай мүмкүнчүлүк болсо) була -оптикалык жипке бир тамчы ысык желим салыңыз, ал көбүк тактасынан өтөт. Же болбосо, бул көк түстөгү нерселерди колдонсоңуз болот. Ысык желим жипти бир аз деформациялайт, бирок оптикалык сапаттарга анча аралашпайт окшойт
- Жипти кенептен бир аз алысыраак кесип, зым кескичтерди колдонуңуз.
Процессти тездетүү үчүн, ысык желимди жасоодон мурун, көптөгөн талдарды катары менен тизип койсоңуз болот. Алар жалпысынан өз ордунда калышы керек.
Столдун үстүндөгү була -оптикалык жиптерди сындыруудан же кысуудан сак болуңуз - алар үзүлүп кетет жана эгер бул тилкени өтө кыска кылса, анда кайгырып, кайра жасоого туура келет. Батарея топтомун каршы салмак катары колдонуңуз, ошондо столдо сүрөт алкагы жарымынан аз болушу мүмкүн.
Мен кара түстүн ордуна ак көбүктөнгөн такта колдонгонум үчүн, LEDлар күйүп турганда жарык көп тийип турган. Оңдоо катары мен жарыктар менен кенептердин ортосуна алюминий фольгага чаптадым.
Оптикалык оптикалык жиптердин ар бирин бириктирип туруу үчүн жылуулукту азайтуучу түтүктөрдү колдонуңуз.
- Пучоктун жиптерин болжол менен бирдей узундукта кесип алыңыз
- Бөлүктү жылуулукту кысуучу түтүктөр аркылуу коюңуз
- Аны кичирейтүү үчүн жылуулук пистолетин же ширеткичти колдонуңуз. Эгерде сиз ширетүүчү үтүктү колдонуп жатсаңыз, анда үтүктүн капталын түтүктөргө жеңил тийгизип коюңуз, ал кичирейет. Бул түтүктү эрип кетпеши керек, анткени ал бир аз жылуулук үчүн иштелип чыккан.
Акыр -аягы, мен пакеттин учун ар бир светодиоддук жарыкка жабыштыруу үчүн ысык клей колдондум. Мен көптөгөн ысык желимди колдондум, ошондо жипчелер жарыкта ар бир кызыл/жашыл/көк диоддон жарык алышы үчүн - жипчелер жарыкка чындап жакын болгондо "ак" түскө ээ болот (бул чындыгында кызыл, жашыл жана көк) анда кээ бир жипчелер жөн эле кызыл болуп, кээ бирлери жашыл болуп калат. Муну бир кагазды же аны таркатуу үчүн башка нерсени колдонуу менен жакшыртса болот, бирок ысык клей мен үчүн жакшы иштеди.
4 -кадам: Программалоо
Бул программалоодо мен үч китепкананы колдондум
FastLED - WS2812 LED тилкелерин (жана башка көптөгөн даректүү LED тилкелерин) көзөмөлдөө үчүн мыкты китепкана -
Arduino Low Power - Бул чынында канча энергияны үнөмдөйт, билбейм, бирок аны ишке ашыруу өтө оңой болгон жана жөн эле ак чырактар болгон функцияга кичине кубатты үнөмдөөгө жардам бериши керек, анан түбөлүккө кечиктирилет.
EEPROM - Долбоордун учурдагы режимин окуу/сактоо үчүн колдонулат. Бул долбоорго түстүү режимди ар бир өчүрүп -күйгүзгөндө көбөйтүүгө мүмкүндүк берет, бул режимди өзгөртүү үчүн өзүнчө баскычтын зарылчылыгын жок кылат. EEPROM китепканасы Arduino IDE орнотулган сайын орнотулат.
Мен дагы башка бирөө койгон чырактарды жаркыратуу үчүн эскизди колдондум. Ал туш келди пикселди негизги түстөн эң жогорку түскө чейин күйгүзүп, анан кайра түшөт. https://gist.github.com/kriegsman/88954aae22b03a66… (ал FastLED китепканасын да колдонот)
Мен Visual Studio үчүн vMicro плагинин да колдондум - бул Arduino IDEдин ампедирленген версиясы. Бул көптөгөн пайдалуу автотолтуруу функцияларына ээ жана кодуңуздагы көйгөйлөрдү аны түзүүнүн кереги жок. Бул 15 доллар турат, бирок эгер сиз бир нече Arduino долбоорун түзө турган болсоңуз, ал сизди супер күчтүү программа болгон Visual Studio жөнүндө билүүгө мажбур кылат.
(Мен ошондой эле.ino файлын тиркеп жатам, анткени Github Gistтин Instructable хостинги файлдагы бош жерлерди жок кылат)
Arduino коду 4 түстүү режимде иштеп, FastLED китепканасын колдонгон WS2812B LED чырактары үчүн Arduino UNO
#кошуу |
#кошуу |
#кошуу |
// FastLED орнотуу |
#defineNUM_LEDS4 |
#definePIN3 // LED тилкеси үчүн маалымат пини |
CRGB ледтери [NUM_LEDS]; |
// Twinkle орнотуу |
#defineBASE_COLORCRGB (2, 2, 2) // Негизги фон түсү |
#definePEAK_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 (); |
тыныгуу; |
// Радуга |
case4: |
RunRainbow (); |
тыныгуу; |
// Индекс диапазондо эмес, аны 2ге баштапкы абалга келтирип, анан 1 режимин иштетиңиз. |
// arduino кайра күйгүзүлгөндө ал 2 -режимде иштейт, бирок азырынча 1 -режимде иштейт |
демейки: |
EEPROM.write (дареги, 2); |
runMode = 1; |
тыныгуу; |
} |
} |
voidRunRainbow () |
{ |
байт *в; |
uint16_t i, j; |
учурда (чын) |
{ |
for (j = 0; j <256; j ++) {// дөңгөлөктөгү бардык түстөрдүн 1 цикли |
үчүн (i = 0; i <NUM_LEDS; i ++) { |
с = Дөңгөлөк (((i * 256 / NUM_LEDS) + j) & 255); |
setPixel (i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show (); |
кечигүү (globalDelay); |
} |
} |
} |
байт * дөңгөлөк (байт WheelPos) { |
статикалык байт c [3]; |
эгер (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; |
} |
return c; |
} |
voidTwinkleMapPixels () |
{ |
InitPixelStates (); |
учурда (чын) |
{ |
үчүн (uint16_t i = 0; i <NUM_LEDS; i ++) { |
эгер (PixelState == SteadyDim) { |
// бул пикселдер учурда: SteadyDim |
// Ошентип, биз туш келди аны жарык кыла баштоону ойлонобуз |
эгер (random8 () <CHANCE_OF_TWINKLE) { |
PixelState = GettingBrighter; |
} |
} |
elseif (PixelState == GettingBrighter) { |
// бул пикселдер учурда: GettingBrighter |
// Демек, эгер ал эң жогорку түстө болсо, аны кайрадан күңүрт болууга которуңуз |
if (leds > = PEAK_COLOR) { |
PixelState = GettingDimmerAgain; |
} |
башка { |
// Болбосо, жөн гана жарыктандырып коюңуз: |
leds += DELTA_COLOR_UP; |
} |
} |
башка {// кайра күңүрт |
// бул пикселдер учурда: GettingDimmerAgain |
// эгерде ал негизги түскө кайтып келсе, аны туруктуу күңүрткө которуңуз |
эгер (leds <= BASE_COLOR) { |
leds = BASE_COLOR; // тактап койсоңуз, так түскө кайтарыңыз |
PixelState = SteadyDim; |
} |
башка { |
// Болбосо, жөн эле караңгылатып коюңуз: |
leds -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show (); |
FastLED.delay (globalDelay); |
} |
} |
voidInitPixelStates () |
{ |
memset (PixelState, sizeof (PixelState), SteadyDim); // бардык пикселдерди SteadyDimге баптоо. |
fill_solid (LED, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever () |
{ |
учурда (чын) |
{ |
кечиктирүү (100); |
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip () { |
FastLED.show (); |
} |
voidsetPixel (int Pixel, байт кызыл, байт жашыл, көк байт) { |
// FastLED |
leds [Пиксел].r = кызыл; |
leds [Pixel].g = жашыл; |
leds [пиксел].b = көк; |
} |
rawFiberOptic_ClemsonPic.ino менен ❤ GitHub тарабынан хостингди көрүү
5 -кадам: Акыркы продукт
Та-да! Бул көрсөтмө башка бирөөнү өзүнүн окшош долбоорун түзүүгө шыктандырат деп үмүттөнөм. Бул чындыгында кыйын болгон жок жана мен эч ким муну жасай электигине таң калдым жана ал жөнүндө толук инструктивдүү жаздым.
Сунушталууда:
Көмүр була уюлдук телефондун капчыгын жасоо: 10 кадам
Көмүр була уюлдук телефондор үчүн кап жасоо: Максат: Бул окуу куралынын максаты - көмүртек булалуу уюлдук телефондун капкагын жасоону үйрөтүү. Жарылган телефондон жаман эч нерсе көрүнбөйт. Болоттон беш эсе күчтүү болгон жеңил телефондук корпуста, мындан ары бул жөнүндө тынчсыздануунун кажети жок
Көмүр була уюлдук телефондун капкагын түзүү: 8 кадам
Көмүр була уюлдук телефон капчыгын түзүү: Сиз качандыр бир убакта көмүр буласынан жасалган жеке уюлдук телефонуңуздун корпусун түзүүнү кааладыңыз беле? Бул жерде этап-этабы менен процессти үйрөнүү мүмкүнчүлүгү! Баштоодон мурун, эксперименталдык профессионалдын коркунучтарын билүү маанилүү
Көмүр була палубасы бар жинди электр Longboard Budet: 6 кадам (сүрөттөр менен)
Көмүр була палубасы бар жинди электр Longboard Budet: эй, мен өзүм жөнүндө жана эмне үчүн бул саякатка барууну чечкенимди айтуудан мурун, менин видеомду эпикалык минүү монтажын жана менин жасоо практикамды текшерип коюңуз, сураныч, жазылыңыз. менин колледждеги курсума чындап жардам берет, анткени
Була -оптика боюнча жаңы баштагандарга көрсөтмө: 13 кадам (сүрөттөр менен)
Була -оптика боюнча жаңы баштагандарга көрсөтмө: була -оптика! Була -оптика! Ырас, мен була -оптика менен бир аз алекмин жана жүйөлүү себептерден улам. Алар сиз жасап жаткан нерсеге кооз жарык эффекттерин кошуунун туруктуу, ар тараптуу жана салыштырмалуу жөнөкөй жолу. Жөн гана кээ бирлерин караңыз
Тышкы күч менен алмаштырылганда генерацияланган була тармагынын күч өзгөрүүлөрүн өлчөө: 8 кадам
Тышкы күч менен алмаштырылганда генерацияланган була тармагынын күч өзгөрүүлөрүн өлчөө: Клеткалар айланадагы клеткадан тышкаркы матрица (ECM) менен өз ара аракеттене алышат жана экөө тең ECM тарабынан колдонулган күчтөргө жооп бере алышат. Биздин долбоор үчүн, биз ECM катары иштей турган өз ара байланышкан булалардын тармагын окшоштурабыз жана анын кантип иштээрин көрөбүз