Orodha ya maudhui:

Taa za Fiber-Optic katika Chapisho la Turubai: Hatua 5
Taa za Fiber-Optic katika Chapisho la Turubai: Hatua 5

Video: Taa za Fiber-Optic katika Chapisho la Turubai: Hatua 5

Video: Taa za Fiber-Optic katika Chapisho la Turubai: Hatua 5
Video: Savant Syndrome, Autism & Telepathy: Exploring Consciousness & Reality with Dr. Diane Hennacy 2024, Novemba
Anonim
Image
Image
Taa za Fiber-Optic katika Chapisho la Turubai
Taa za Fiber-Optic katika Chapisho la Turubai

Mradi huu unaongeza spin ya kipekee kwenye uchapishaji wa kawaida wa turubai. Nilipanga katika modeli 4 tofauti za taa lakini unaweza kuongeza zaidi. Hali hubadilishwa kila wakati unapoizima na kuwasha tena badala ya kuwa na kitufe tofauti ili kupunguza uharibifu wa fremu. Betri zinapaswa kudumu kwa masaa 50+ ya matumizi - sina hakika, lakini nilitengeneza mradi kama huo kwa rafiki na ilitumia taa 5x nyingi na imedumu masaa 20+ kwenye seti moja ya betri.

Vifaa

  • Kuchapisha turubai na nafasi inayoweza kutumika - niliamuru yangu kutoka https://www.easycanvasprints.com kwa sababu walikuwa na bei nzuri na nyuma wazi. Sura nene 1.5 "ilikuwa kamilifu na ilinipa nafasi nyingi kuinama nyuzi za nyuzi za nyuzi. Kwa kuongezea unataka picha ambayo inakupa 3" na 8 "ya nafasi inayoweza kutumika kwa kifurushi cha betri na microcontroller na vipande vya LED.
  • Taa za mkanda wa LED - nilitumia vipande vya LED vya WS2812 vinavyoweza kushughulikiwa. Usiogope, ni rahisi kutumia na maktaba za FastLED au Neopixel! Unaweza kutumia ukanda wowote wa kawaida wa LED, hautaweza kudhibiti kila sehemu ya nuru peke yake bila wiring zaidi.
  • Microcontroller - Nilitumia Arduino Uno lakini unaweza kutumia karibu kila kitu kwa mradi huu.
  • Pakiti ya betri - niliamuru hii kutoka eBay (kutoka China) na iliitwa "6 x 1.5V AA 2A CELL Battery Battery Holder"
  • Nyuzi za nyuzi za macho - mara nyingine tena, zilizoamriwa kutoka China kwenye eBay - "PMMA Plastic Fiber Optic Cable End Kukua Taa Iliyopambwa ya DIY" au "PMMA End Glow Fiber Optic Cable kwa Kitengo cha Nuru ya Dari". Nilitumia ukubwa wa 1mm na 1.5mm, kwa kweli napendekeza kutumia ndogo kuliko hiyo.
  • Washa / Zima swichi - "SPDT Washa / On 2 Nafasi Miniature Toggle Swichi"
  • Sehemu za shirika za waya - Hizi husaidia kuweka nyuzi za nyuzi nzuri na nadhifu.
  • Bodi ya povu, waya kontakt msingi msingi, neli hupunguza joto

Zana

  • Dremel - hutumiwa kuweka kiwasha cha kuwasha / kuzima kwenye fremu ya picha. Labda hii inaweza kutekelezwa kwa kuchimba visima na kubwa kidogo, lakini sipendekezi hiyo.
  • Chuma cha kulehemu - kuunganisha waya kwenye ukanda wa LED
  • Bunduki ya gundi moto - haswa kila hatua ya mradi huu
  • Sindano kubwa ya kushona - kwa kutoboa mashimo kupitia turubai na bodi ya povu kwa taa

Hatua ya 1: Bodi ya Povu, Ufungashaji wa Betri na Zima / Zima Zima

Bodi ya Povu, Ufungashaji wa Betri na Zima / Zima
Bodi ya Povu, Ufungashaji wa Betri na Zima / Zima
Bodi ya Povu, Ufungashaji wa Betri na Zima / Zima
Bodi ya Povu, Ufungashaji wa Betri na Zima / Zima

Kabla ya kitu kingine chochote unahitaji kushikamana na kipande cha bodi ya povu nyuma ya uchapishaji wa turubai. Hii inatupa uso mzuri wa kushikamana na kila kitu na husaidia kushikilia nyuzi za nyuzi za nyuzi mahali. Tumia tu kisu cha kisanduku au mkataji wa sanduku kukata kipande cha bodi ya povu kwa saizi sahihi na gundi moto ndani ya maeneo mengi. Ninapendekeza utumie bodi nyeusi ya povu ili hairuhusu mwangaza mwingi kutoa damu.

Nilitumia dremel kidogo ambayo inaonekana kama kuchimba visima kawaida lakini ni nzuri sana kwa kuondoa nyenzo. Ni moja ya bits ambayo inapaswa kuja na dremel yoyote. Tumia bomba la hewa iliyoshinikizwa kuondoa mchanga wowote kutoka kwa dremel.

Gundi moto kila mahali. Hakikisha kifurushi cha betri kimeambatanishwa vizuri sana kwa sababu inahitaji nguvu nzuri kuingiza / kuondoa betri na hautaki mmiliki wa betri aende popote.

Hatua ya 2: Microcontroller na Circuit

Udhibiti mdogo na Mzunguko
Udhibiti mdogo na Mzunguko
Mdhibiti Mdogo na Mzunguko
Mdhibiti Mdogo na Mzunguko
Udhibiti mdogo na Mzunguko
Udhibiti mdogo na Mzunguko

Ninaweka swichi ya nguvu mbele ya Arduino UNO ili wakati unapogeuza swichi basi hakuna kitu kinachotumia nguvu kutoka kwa vifurushi vya betri. Hii inapaswa kusaidia betri kudumu kwa muda mrefu iwezekanavyo wakati mradi haujawashwa. Bodi za Arduino ni mbaya sana katika usimamizi wa nguvu - zinatumia mengi ya sasa ikiwa imewashwa hata ikiwa haifanyi chochote.

Chomeka mwisho mzuri wa kifurushi cha betri kwenye VIN (uingizaji wa voltage) ya microcontroller ili itumie mdhibiti wa voltage ya mtawala ili kupata voltage chini ya 5V inayohitaji. Ikiwa tungetumia taa zaidi tunaweza kuhitaji kutumia mdhibiti wetu wa voltage kwao, lakini UNO inapaswa kushughulikia taa 5 za taa.

Nilitumia kipinga kati ya pato la data na ukanda wa LED kulainisha ishara - bila kontena unaweza kupata mwangaza wa saizi. Ukubwa wa kipingaji haijalishi, chochote kati ya 50Ω na 400Ω kinapaswa kufanya kazi.

Hatua ya 3: Taa za nyuzi-nyuzi

Image
Image
Taa za nyuzi-nyuzi
Taa za nyuzi-nyuzi
Taa za nyuzi-nyuzi
Taa za nyuzi-nyuzi

Baada ya jaribio na hitilafu mwishowe nikapata njia nzuri ya kupata nyuzi za nyuzi za macho kupitia turubai.

  1. Tumia sindano kubwa zaidi ya kushona ambayo unapaswa kutoboa shimo kupitia mbele ya turubai na bodi ya povu. Ninapendekeza kutafuta kila shimo unalotaka mwanzoni ili uweze kulipindua na uone mahali unaweza / hauwezi kuweka klipu za shirika lako la kebo.
  2. Chukua jozi ya koleo zenye pua na sindano na chukua nyuzi ya nyuzi chini ya sentimita kutoka mwisho
  3. Chukua nyuzi ya nyuzi kupitia shimo ulilotengeneza na sindano
  4. Njia ya strand kupitia sehemu kadhaa za plastiki hadi mahali ni ndefu kidogo kuliko lazima - tutaikata baadaye
  5. Ukiwa na bunduki yako ya moto ya gundi kwenye mpangilio wa joto la CHINI (ikiwa ina hiari hiyo) weka tone la gundi moto kwenye nyuzi ya nyuzi za macho ambapo inapita kwenye bodi ya povu. Vinginevyo unaweza kutumia vitu vyenye rangi ya samawati. Gundi moto hutengeneza strand kidogo lakini haionekani kuchanganyikiwa na sifa za macho sana
  6. Kata kamba kidogo mbali na turubai ukitumia wakata waya.

Ili kuharakisha mchakato unaweza kupiga nyuzi nyingi mfululizo kabla ya kufanya gundi ya moto. Kwa ujumla wanapaswa kukaa mahali pako peke yako.

Kuwa mwangalifu usivunje au kuchuja nyuzi za nyuzi kwenye meza - zitavunjika na ikiwa inafanya strand iwe fupi sana basi utakuwa na huzuni na lazima uirudie. Tumia pakiti ya betri kama uzani wa kupingana ili uweze kuwa na sura ya picha chini ya nusu kwenye dawati.

Kwa sababu nilitumia ubao mweupe wa povu badala ya nyeusi kulikuwa na taa nyingi ikiangaza wakati taa za LED zilikuwa zimewashwa. Kama urekebishaji nilibandika kwenye karatasi ya alumini kati ya taa na turubai.

Tumia neli ya kupunguza joto kuweka kila kifungu cha nyuzi za nyuzi pamoja.

  1. Kata vipande vya kifungu kwa urefu sawa
  2. Weka sehemu kupitia neli ya kupungua kwa joto
  3. Tumia bunduki ya joto au chuma cha kutengeneza ili kuipunguza. Ikiwa unatumia chuma cha kutengeneza, acha tu upande wa chuma uguse kidogo neli na itapungua. Haipaswi kuyeyuka neli kwa sababu imeundwa kwa joto kidogo.

Mwishowe nilitumia gundi moto kushikamana na mwisho wa kifungu kwa kila taa ya LED. Nilitumia gundi nyingi moto ili nyuzi zipate nuru kutoka kwa kila diode nyekundu / kijani / bluu katika nuru - wakati nyuzi ziko karibu kabisa na nuru rangi "nyeupe" (ambayo kwa kweli ni nyekundu na kijani na bluu) basi nyuzi zingine zitakuwa nyekundu tu na zingine zitakuwa kijani, badala ya zote kuwa nyeupe. Hii inaweza kuboreshwa kwa kutumia kipande cha karatasi au kitu kingine kueneza, lakini gundi ya moto ilifanya kazi vizuri kwangu.

Hatua ya 4: Programu

Katika programu hii nilitumia maktaba tatu

FastLED - maktaba nzuri ya kudhibiti vipande vya LED vya WS2812 (na vipande vingine vingi vya LED) -

Nguvu ya chini ya Arduino - Sijui ni nguvu ngapi hii inaokoa, lakini ilikuwa rahisi kutekeleza na inapaswa kusaidia kuokoa nguvu kidogo kwenye kazi ambayo ni taa nyeupe tu na kuchelewesha milele.

EEPROM - Inatumiwa kusoma / kuhifadhi hali ya sasa ya mradi. Hii inaruhusu mradi kuongeza hali ya rangi kila wakati unapoizima na kuwasha tena, ambayo huondoa hitaji la kitufe tofauti kubadilisha hali. Maktaba ya EEPROM imewekwa wakati wowote unapoweka Arduino IDE.

Nilitumia pia mchoro wa kupepesa taa ambazo mtu mwingine aliweka. Kwa nasibu huwasha pikseli kutoka rangi ya msingi hadi rangi ya kilele na kisha kurudi chini. https://gist.github.com/kriegsman/88954aae22b03a66… (inatumia maktaba ya FastLED pia)

Nilitumia pia programu-jalizi ya vMicro ya Studio ya Visual - hii ni toleo la Amped up ya Arduino IDE. Inayo tani ya kazi za kukamilisha kiotomatiki na inaangazia shida kwenye nambari yako bila kuikusanya. Inagharimu $ 15 lakini ni ya thamani sana ikiwa utafanya mradi zaidi ya mmoja wa Arduino, na itakulazimisha kujifunza juu ya Studio ya Visual ambayo ni mpango wenye nguvu sana.

(Ninaunganisha pia nambari.ino faili kwa sababu mwenyeji anayefundishwa wa Github Gist huharibu nafasi nyingi tupu kwenye faili)

Nambari ya Arduino inayotumia modeli 4 za rangi kwenye Arduino UNO kwa taa zingine za WS2812B za mkanda wa LED kwa kutumia maktaba ya FastLED

# pamoja
# pamoja
# pamoja
// Usanidi wa FastLED
# fafanuaNUM_LEDS4
# definePIN3 // Pini ya data kwa ukanda wa LED
Viongozi wa CRGB [NUM_LEDS];
// Usanidi wa Twinkle
#fafanuaBASE_COLORCRGB (2, 2, 2) // Rangi ya msingi ya msingi
#fafanuaPEAK_COLORCRGB (255, 255, 255) // Rangi ya kilele ili kung'ara hadi
// Kiasi cha kuongeza rangi kwa kila kitanzi inapozidi kung'aa:
#fafanuaDELTA_COLOR_UPCRGB (4, 4, 4)
// Kiasi cha kupunguza rangi kwa kila kitanzi kinapofifia:
#fafanuaDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Uwezekano wa kila pikseli kuanza kuangaza.
// 1 au 2 = saizi chache zinazoangaza kwa wakati mmoja.
// 10 = saizi nyingi zinaangaza kwa wakati mmoja.
# fafanuaCHANCE_OF_TWINKLE2
enum {SteadyDim, GetBrighter, GetDimmerAgain};
uint8_t PixelState [NUM_LEDS];
byte runMode;
byte kimataifaBright = 150;
byte globalDelay = 20; // Kasi ya kuchelewesha kwa kupepesa
anwani ya byte = 35; // Anwani ya kuhifadhi hali ya kukimbia
voidetup ()
{
FastLED.addLeds (leds, NUM_LEDS);
Marekebisho ya FastLED.set (KawaidaLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps (5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Pata hali ya kukimbia
runMode = EEPROM.read (anwani);
// Kuongeza runmode na 1
Andika (anwani, runMode + 1);
}
voidloop ()
{
badilisha (runMode)
{
// Nyeupe imara
kesi1: fill_solid (leds, NUM_LEDS, CRGB:: White);
FastLED.show ();
KucheleweshaMilele ();
kuvunja;
// Twinkle kinda polepole
kesi2: FastLED.setBrightness (255);
globalDelay = 10;
Saizi za TwinkleMap ();
kuvunja;
// Twinkle haraka
kesi3: FastLED.setBrightness (150);
globalDelay = 2;
Saizi za TwinkleMap ();
kuvunja;
// Upinde wa mvua
kesi4:
RunRainbow ();
kuvunja;
// Index iko nje ya anuwai, iseti tena kwa 2 na kisha endesha mode 1.
// Wakati arduino itaanza upya itaendesha hali ya 2, lakini kwa sasa endesha mode 1
chaguomsingi:
Andika (anwani, 2);
runMode = 1;
kuvunja;
}
}
utupuRunRainbow ()
{
baiti * c;
uint16_t i, j;
wakati (kweli)
{
kwa (j = 0; j <256; j ++) {// 1 mzunguko wa rangi zote kwenye gurudumu
kwa (i = 0; i <NUM_LEDS; i ++) {
c = Gurudumu (((i * 256 / NUM_LEDS) + j) & 255);
kuwekaPixel (i, * c, * (c + 1), * (c + 2));
}
FastLED.show ();
kuchelewesha (globalDelay);
}
}
}
baiti * Gurudumu (baiti WheelPos) {
tuli tuli c [3];
ikiwa (WheelPos <85) {
c [0] = Magurudumu ya Magurudumu * 3;
c [1] = 255 - WheelPos * 3;
c [2] = 0;
}
elseif (WheelPos <170) {
WheelPos - = 85;
c [0] = 255 - Magurudumu ya Magurudumu * 3;
c [1] = 0;
c [2] = Magurudumu ya Magurudumu * 3;
}
mwingine {
WheelPos - = 170;
c [0] = 0;
c [1] = Magurudumu ya Magurudumu * 3;
c [2] = 255 - Magurudumu ya Magurudumu * 3;
}
kurudi c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
wakati (kweli)
{
kwa (uint16_t i = 0; i <NUM_LEDS; i ++) {
ikiwa (PixelState == SteadyDim) {
// saizi hizi kwa sasa ni: SteadyDim
// kwa hivyo nasibu tunazingatia kuifanya iweze kung'aa
ikiwa (bila mpangilio8 () <CHANCE_OF_TWINKLE) {
PixelState = Kupata Mwangaza;
}
}
elseif (PixelState == KupataBrighter) {
// saizi hizi kwa sasa ni: KupataBrighter
// kwa hivyo ikiwa iko kwenye rangi ya juu, ibadilishe ili ufifie tena
ikiwa (imesababisha > = PEAK_COLOR) {
PixelState = KupataDimmerAgain;
}
mwingine {
// vinginevyo, endelea kuangaza:
risasi + = DELTA_COLOR_UP;
}
}
mwingine {// kupata mwanga mdogo tena
// saizi hizi kwa sasa ni: KupataDimmerAgain
// kwa hivyo ikiwa imerudi kwa rangi ya msingi, ibadilishe kuwa nyepesi
ikiwa (imesababisha <= BASE_COLOR) {
risasi = BASE_COLOR; // kuweka upya rangi halisi ya msingi, ikiwa tutazidi
PixelState = SteadyDim;
}
mwingine {
// vinginevyo, endelea kuipunguza:
risasi - = DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // anzisha saizi zote kwa SteadyDim.
kujaza_solid (risasi, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
wakati (kweli)
{
kuchelewesha (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, kahawia kahawia, kijani kibichi, kahawia ya kaa) {
// Imefungwa
risasi [Pixel].r = nyekundu;
risasi [Pixel].g = kijani;
risasi [Pixel].b = bluu;
}

tazama rawFiberOptic_ClemsonPic.ino iliyohifadhiwa na ❤ na GitHub

Hatua ya 5: Bidhaa ya Mwisho

Bidhaa ya Mwisho
Bidhaa ya Mwisho
Bidhaa ya Mwisho
Bidhaa ya Mwisho
Bidhaa ya Mwisho
Bidhaa ya Mwisho

Ta-da! Natumahi kuwa Agizo hili linahamasisha mtu mwingine ajitengenezee mradi sawa. Kwa kweli haikuwa ngumu kufanya na nilishangaa kwamba hakuna mtu aliyeifanya na kuandika maelezo kamili juu yake bado.

Ilipendekeza: