Orodha ya maudhui:

Jedwali la Kahawa ya LED ya Arduino inayoingiliana: Hatua 6 (na Picha)
Jedwali la Kahawa ya LED ya Arduino inayoingiliana: Hatua 6 (na Picha)

Video: Jedwali la Kahawa ya LED ya Arduino inayoingiliana: Hatua 6 (na Picha)

Video: Jedwali la Kahawa ya LED ya Arduino inayoingiliana: Hatua 6 (na Picha)
Video: Утилизация светодиодных экранов DVD-плееров — несвязанные действия 2024, Julai
Anonim
Image
Image
Jedwali la Kahawa la LED la Arduino
Jedwali la Kahawa la LED la Arduino

Nilitengeneza meza ya kahawa inayoingiliana ambayo inawasha taa zilizoongozwa chini ya kitu, wakati kitu kinapowekwa juu ya meza. Viongozi tu ambao wako chini ya kitu hicho ndio watawaka. Inafanya hivyo kwa kutumia vyema sensorer za ukaribu, na wakati sensorer ya ukaribu inapohisi kuwa kitu kiko karibu sana, itawasha nodi chini ya kitu hicho. Pia hutumia Arduino kuweka michoro ambazo hazihitaji sensorer za ukaribu, lakini ongeza athari nzuri sana ambayo ninapenda tu.

Sensorer za ukaribu zinaundwa na photodiode na emitters za IR. Watoaji hutumia taa ya infrared (ambayo jicho la mwanadamu haliwezi kuona) kuangaza nje ya meza, na picha za picha hupokea taa ya infrared iliyoonyeshwa kwenye kitu. Mwangaza zaidi unaoonyeshwa (karibu kitu), ndivyo voltage inavyoshuka kutoka kwa picha za picha. Hii hutumiwa kama kiashiria cha kujua ni node ipi itakayowaka. Node ni mkusanyiko wa vichwa vya ws2812b na sensorer ya ukaribu.

Video iliyoambatanishwa inapita juu ya mchakato mzima wa ujenzi, wakati ninaelezea maelezo zaidi hapa chini.

Vifaa

  1. ws2812b Balbu za LED -
  2. Ugavi wa Umeme wa 5V -
  3. Arduino yoyote nilitumia 2560 -
  4. Photodiode
  5. Emitters za IR
  6. Resistors 10 za Ohms
  7. Resistors 1 za MOHms
  8. Capacitors 47 pF
  9. Multiplexers za CD4051B
  10. SN74HC595 Sajili za Shift
  11. ULN2803A Darlington Arrays
  12. Substrate yoyote ya kutumia kama bodi kubwa ya viongo, nilitumia bodi ya maandishi kutoka kwa bohari ya nyumbani

Hatua ya 1: Unda Bodi na Ingiza LED

Unda Bodi na Ingiza LEDs
Unda Bodi na Ingiza LEDs
Unda Bodi na Ingiza LEDs
Unda Bodi na Ingiza LEDs
Unda Bodi na Ingiza LEDs
Unda Bodi na Ingiza LEDs
Unda Bodi na Ingiza LEDs
Unda Bodi na Ingiza LEDs

Jambo la kwanza nililofanya ni kuunda bodi ambayo itakuwa na viongozo ambavyo tutaweka ndani ya meza ya kahawa. Nilitumia kipande cha bodi iliyojumuisha karatasi kutoka bohari ya nyumbani na kuikata kwa vipimo sahihi kwa meza ya kahawa niliyokuwa nayo. Baada ya kukata bodi kwa saizi, nilichimba mashimo yote kwa mahali viongozi walipokuwa wakienda. Bodi yenyewe ilikuwa na safu 8 na safu 12 za ws2812b leds zilizotengwa kwa inchi 3 mbali, na ziliambatanishwa kwa muundo wa nyoka. Nilitumia gundi ya moto kuwalinda.

Ilinibidi pia kuchimba mashimo katikati ya nini kitakuwa nodi: leds 4 ws2812b ambazo zinaunda mraba, diode 2 za picha na emitters 2 za IR kwenye mraba mdogo katikati ya hiyo. Mashimo haya manne katikati ya node yatakuwa matangazo ya picha za picha na emitters (2 ya kila moja). Niliwabadilisha ili kuhakikisha upeo wa juu, na kuiweka karibu inchi 1 katikati ya kila nodi. Sikuhitaji kuziweka gundi hizi moto mahali, niliinama tu risasi upande wa pili kuhakikisha hazitatoka upande mwingine. Nilihakikisha pia kuinama ncha nzuri na hasi kwa mwelekeo fulani, ili zielekezwe kwa usahihi kwenye mzunguko. Miongozo yote chanya ilikuwa upande wa kushoto nyuma ya ubao, wakati risasi zote hasi zilikuwa upande wa kulia wa bodi.

Hatua ya 2: Elewa Mzunguko

Elewa Mzunguko
Elewa Mzunguko
Elewa Mzunguko
Elewa Mzunguko
Elewa Mzunguko
Elewa Mzunguko

Kumbuka: Michoro yote iliyohuishwa sio sawa kwa utekelezaji (pini zingine za arduino ni tofauti, na mimi huweka mnyororo machache, zaidi hapo baadaye). Matokeo ya mwisho yalikuwa tofauti kidogo kwa sababu ya ugumu wa mzunguko, lakini mizunguko yote iliyohuishwa hutumika kama msingi mzuri wa kuelewa jinsi ya kuiga kila sehemu. Mchoro wa kawaida na wa mzunguko ni kama ilivyo kwenye PCB inayotumiwa katika mradi huo.

Nambari ya PCB ambayo ina mradi wa KiCad na faili za kijaruba zinaweza kupatikana hapa: https://github.com/tmckay1/interactive_coffee_tabl ……, ikiwa unataka kuagiza PCBs wewe mwenyewe na uunda mradi kama huo. Nilitumia NextPCB kuunda bodi.

Kuna kimsingi mizunguko mitatu tofauti ambayo hufanya jedwali hili. Ya kwanza hatutapita kwa undani na ni mzunguko rahisi ambao hupa nguvu ws2812b. Ishara ya data ya PWM inatumwa kutoka Arduino kwa balbu zilizoongozwa na ws2812b na inadhibiti ni rangi gani zinazoonyeshwa wapi. Tunatumia ws2812b leds kwa kuwa zinaelekezwa kibinafsi, kwa hivyo tutaweza kudhibiti ni yapi ya taa ya kuwasha, na ambayo itazimwa. Viongozi wa ws2812b wanaendeshwa na chanzo cha nguvu cha nje cha 5V, kwani arduino peke yake haina nguvu ya kutosha kuwasha taa zote. Katika mchoro wa michoro uliounganishwa hutumia kontena la pullup la 330 Ohms, hata hivyo situmii hiyo katika ujenzi wangu.

Mzunguko wa pili unawasha watoaji wa IR. Mzunguko huu hutumia rejista ya kuhama kudhibiti safu ya darlington ambayo hutuma nguvu kwa watoaji wa IR. Rejista ya kuhama ni mzunguko uliounganishwa ambao unaweza kutuma ishara ya JUU na ya chini kwa pini nyingi kutoka kwa pini kidogo tu. Kwa upande wetu tunatumia rejista ya mabadiliko ya SN74HC595 ambayo inaweza kudhibitiwa kutoka kwa pembejeo 3, lakini inadhibiti hadi matokeo 8. Faida ya kutumia hii na arduino ni kwamba unaweza kuweka daisy hadi rejista 8 za kuhama mfululizo (arduino inaweza tu kushughulikia hadi 8 yao). Hii inamaanisha kuwa unahitaji pini 3 tu kutoka kwa arduino kuwasha na kuzima watoaji wa IR 64. Safu ya darlington hukuruhusu kuwezesha kifaa kutoka kwa chanzo cha nje ikiwa ishara ya kuingiza iko juu, au zima umeme kwa kifaa hicho ikiwa ishara ya kuingiza iko CHINI. Kwa hivyo katika mfano wetu, tunatumia safu ya darlington ya ULN2803A, ambayo inaruhusu chanzo cha nguvu cha nje cha 5V kuwasha na kuzima hadi 8 ya watoaji wa IR. Tunatumia kontena la 10 Ohm na vibonzo vya IR katika safu kupata upeo wa juu kutoka kwa watoaji wa IR.

Mzunguko wa tatu hutumia multiplexer kupokea pembejeo nyingi kutoka kwa photodiode, na kutuma pato katika ishara ya data. Multiplexer ni kifaa ambacho hutumiwa kuchukua pembejeo nyingi ambazo unataka kusoma, na inahitaji tu pini chache kusoma kutoka kwa pembejeo hizo. Inaweza pia kufanya kinyume (demultiplex), lakini hatuitumii kwa programu hiyo hapa. Kwa hivyo kwa upande wetu tunatumia CD4051B multiplexer kuchukua hadi ishara 8 kutoka kwa photodiode, na tunahitaji tu pembejeo 3 kusoma kutoka kwa ishara hizo. Kwa kuongeza tunaweza kushikamana hadi 8 ya multiplexers (arduino inaweza kushughulikia hadi 8 yao). Hii inamaanisha kuwa arduino anaweza kusoma kutoka kwa ishara 64 za picha kutoka kwa pini 3 tu za dijiti. Photodiode zina mwelekeo wa upendeleo wa nyuma, ambayo inamaanisha kuwa badala ya kuelekezwa katika mwelekeo wa kawaida na risasi chanya iliyoambatanishwa na chanzo chanya cha voltage, tunapeana mwelekeo hasi kwa chanzo chanya cha voltage. Hii inageuka kwa ufanisi picha za picha kuwa vipinga picha, ambavyo hubadilika kwa upinzani kulingana na kiwango cha nuru ambayo inapokea. Kisha tunaunda mgawanyiko wa voltage kusoma voltage inayotegemea upinzani tofauti wa picha za picha kwa kuongeza kipingaji cha 1 cha Mohms kinachostahimili chini. Hii inatuwezesha kupokea voltages ya juu na ya chini kwa arduino inayotegemea ni kiasi gani taa za IR hupokea picha.

Nilifuata muundo huu mwingi kutoka kwa mtu mwingine ambaye alifanya hivi hapa: kutumika kuunda msuluhishi wa voltage na picha za picha. Sababu aliyoiongeza ni kwa sababu alikuwa akibadilika na kuzima vito vya IR na ishara ya PWM na kwa kufanya hivyo alichota kushuka kwa voltage kidogo kutoka kwa picha wakati watoaji wa IR waliwashwa mara moja. Hii ilifanya diode za picha zibadilishe upinzani hata wakati haukupokea nuru zaidi ya IR kutoka kwa kitu kwa sababu watoaji wa IR walishiriki chanzo sawa cha nguvu cha 5V kama picha za picha. Capacitor ilitumika kuhakikisha kuwa hakukuwa na kushuka kwa voltage wakati watoaji wa IR walipowashwa na kuzimwa. Awali nilipanga kufanya mkakati huo huo, lakini nikakosa muda wa kuijaribu, kwa hivyo badala yake niliacha watoaji wa IR kila wakati. Ningependa kubadilisha hii katika siku zijazo, lakini hadi nitakapoundwa upya nambari na mzunguko, hivi sasa PCB imeundwa kuwa na taa za IR kila wakati, na niliwaweka capacitors hata hivyo. Haupaswi kuhitaji capacitor ikiwa unatumia muundo huu wa PCB, lakini nitaanzisha toleo jingine la PCB ambayo inakubali pembejeo ya ziada kwenye rejista ya zamu ambayo itakuruhusu kugeuza na kuzima vito vya IR. Hii itaokoa mengi juu ya matumizi ya nguvu.

Unaweza kuangalia michoro zilizohuishwa zilizoambatanishwa na usanidi wa mfano wa kupimwa kwenye arduino yako. Kuna pia muundo wa rangi zaidi kwa kila mzunguko ambao unaelezea usanidi na mwelekeo wa vifaa vya elektroniki. Katika muundo wa PCB ulioambatanishwa, tuna mizunguko 4 jumla, nyaya 2 zinazotumika kuwasha wauzaji wa IR, na nyaya 2 za kusoma kutoka kwa picha za picha. Zimeelekezwa kwenye vikundi vya PCB 2 karibu na kila mmoja na kikundi kilicho na mzunguko wa 1 wa emitter na mzunguko 1 wa picha, ili nguzo 2 za nodi 8 ziweze kuwekwa kwenye PCB moja. Pia tunaunganisha nyaya mbili pamoja, kwa hivyo pini tatu kutoka kwa arduino zinaweza kudhibiti rejista mbili za kuhama, na pini 3 za ziada zinaweza kudhibiti anuwai mbili kwenye ubao. Kuna kichwa cha ziada cha pato kuwa na uwezo wa kuweka daisy kwa PCB za ziada.

Hapa kuna rasilimali chache ambazo nilifuata kwa prototyping:

  • https://lastminuteengineers.com/74hc595-shift-regi …….
  • https://techtutorialsx.com/2016/02/08/using-a-uln2…
  • https://tok.hakynda.com/article/detail/144/cd4051be…

Hatua ya 3: Solder waya kwa Node

Waya za Solder kwa Node
Waya za Solder kwa Node
Waya za Solder kwa Node
Waya za Solder kwa Node
Waya za Solder kwa Node
Waya za Solder kwa Node
Waya za Solder kwa Node
Waya za Solder kwa Node

Sasa kwa kuwa unaelewa jinsi mzunguko umetengenezwa, endelea na uunganishe waya kwa kila nodi. Niliuza picha za picha katika sambamba (waya wa manjano na kijivu) na emitters katika safu (waya wa machungwa). Kisha nikauza waya mrefu wa manjano kwa picha za picha sambamba ambazo zitaambatanishwa na chanzo cha nguvu cha 5V, na waya wa hudhurungi ambao utaambatanishwa na pembejeo ya podi ya picha. Niliuza waya mwekundu mrefu kwa mzunguko wa mtoaji wa IR ambao utatumika kuungana na chanzo cha nguvu cha 5V na waya mweusi ambao utaunganisha kwa uingizaji wa emitter wa IR wa PCB. Kwa kweli nilifanya waya kuwa fupi kidogo ikamaliza muda, kwa hivyo niliweza kuunganisha nodi 5 tu katika kila safu mwisho (badala ya 7). Nina mpango wa kurekebisha hii baadaye.

Hatua ya 4: Solder Vipengele vya PCB na Uiambatanishe na Bodi

Solder Sehemu za PCB na Uiambatanishe na Bodi
Solder Sehemu za PCB na Uiambatanishe na Bodi
Solder Sehemu za PCB na Uiambatanishe na Bodi
Solder Sehemu za PCB na Uiambatanishe na Bodi
Solder Sehemu za PCB na Uiambatanishe na Bodi
Solder Sehemu za PCB na Uiambatanishe na Bodi

Kumbuka: PCB kwenye picha iliyoambatanishwa ni toleo la kwanza nililolifanya ambalo halikuwa na pembejeo na matokeo ya nguvu na pia mnyororo mkali kwa kila mzunguko wa ndani. Ubunifu mpya wa PCB hurekebisha kosa hili.

Hapa unahitaji tu kufuata mpango wa PCB ili kugeuza vifaa kwa PCB na kisha mara tu hiyo itakapofanyika, tengeneza PCB kwa bodi. Nilitumia bodi za mzunguko wa nje kushikamana na ishara ya nguvu ya 5V, ambayo nilisambaza kwa waya zote za manjano na nyekundu. Kwa kuona nyuma, sikuhitaji waya mrefu kama mwekundu na wa manjano na ningeweza kuunganisha nodi hizo kwa kila mmoja (badala ya kuziunganisha na bodi ya kawaida ya nje). Hii itakuwa imepunguza kabisa idadi ya fujo nyuma ya bodi.

Kwa kuwa nilikuwa na safu 8 za ws2812b na safu 12, niliishia na safu 7 na safu 11 za nodi (jumla ya nodi 77). Wazo ni kutumia upande mmoja wa PCB kwa safu moja ya nodi na upande mwingine kwa safu nyingine. Kwa hivyo kwa kuwa nilikuwa na nguzo 11, nilihitaji PCB za 6 (ya mwisho inahitaji kikundi kimoja tu cha vifaa). Kwa kuwa nilifanya waya kuwa fupi sana, ningeweza tu kuunganisha nodi 55, safu 11 na safu 5. Unaweza kuona kwenye picha, nilifanya makosa na kuuza waya mbichi kwa bodi, ambayo itakuwa sawa ikiwa waya ni nyembamba za kutosha, lakini kwa upande wangu zilikuwa nene sana. Hii ilimaanisha nilikuwa na waya wa kukausha huisha karibu sana kwa kila mmoja kwa kila pembejeo ya mtoaji wa IR na uingizaji wa photodiode, kwa hivyo kulikuwa na utatuzi mwingi uliotokea kutoka kwa upungufu wote wa waya. Katika siku zijazo nitatumia viunganishi kuunganisha PCB na waya kwenye ubao ili kuepusha kifupi na kusafisha vitu.

Kwa kuwa Arduino inaweza tu kuweka daisy hadi rejista 8 za kuhama na multiplexers, niliunda minyororo miwili tofauti, moja ikichukua nguzo 8 za kwanza na nyingine ikichukua nguzo 3 zilizobaki. Kisha nikaunganisha kila mnyororo kwenye pcb nyingine ambayo ilikuwa na multiplexers 2 tu, ili niweze kusoma kila mlolongo wa ishara za data za multiplexer kutoka kwa hao multiplexers ndani ya arduino. Multiplexers hizi mbili pia zilifungwa minyororo. Hiyo inamaanisha kuwa kulikuwa na jumla ya ishara 16 za pato na pembejeo 2 za analogi zilizotumiwa katika arduino: 1 ishara ya pato kudhibiti viongo vya ws2812b, ishara 3 za pato kwa mlolongo wa kwanza wa rejista za mabadiliko, ishara 3 za pato kwa mnyororo wa kwanza wa multiplexers, Ishara za pato 3 kwa mlolongo wa pili wa rejista za mabadiliko, ishara 3 za pato kwa mlolongo wa pili wa multiplexers, ishara 3 za pato kwa multiplexers 2 ambazo zinajumuisha kila ishara ya data ya PCB, na mwishowe pembejeo 2 za analog kwa kila ishara ya data kutoka kwa 2 multiplexers ya jumla.

Hatua ya 5: Pitia tena Kanuni

Kumbuka: Mbali na nambari ya maingiliano hapa chini, nilitumia maktaba ya mtu wa tatu kutoa michoro kwa viongo vya ws2812b. Unaweza kupata hiyo hapa:

Unaweza kupata nambari niliyotumia hapa:

Kwa juu ninafafanua pini za arduino ambazo zitaungana na kila sehemu ya PCB. Katika njia ya usanidi, nimeweka pini za pato kwa multiplexers, washa emitters za IR, weka safu ya msingiVal ambayo inafuatilia usomaji wa nuru iliyoko kwa kila photodiode, na inaanzisha FastLED ambayo itaandika kwa ws2812b leds. Kwa njia ya kitanzi, tunaweka upya orodha ya vichwa ambavyo vimepewa kuwasha kwenye ws2812b strip. Kisha tunasoma maadili kutoka kwa picha za picha kwenye minyororo ya multiplexer, na kuweka vichwa vya ws2812b kwenye ambazo zinatakiwa kuweko ikiwa usomaji kutoka kwa picha ya picha kwenye nodi iko juu ya kizingiti fulani kilichofafanuliwa kutoka kwa thamani ya msingi ya usomaji wa taa iliyoko. Kisha tunatoa LED ikiwa kuna mabadiliko yoyote kwenye node ambayo inapaswa kuwashwa. Vinginevyo, inaendelea kutembea hadi kitu kitakapobadilika ili kuharakisha mambo.

Nambari labda inaweza kuboreshwa na ninatafuta kufanya hivi, lakini kuna kuchelewa kwa sekunde 1-2 kutoka wakati taa zinawashwa baada ya kitu kuwekwa mezani. Ninaamini kuwa shida ya msingi ni kwamba FastLED inachukua muda kutoa viongozo 96 kwenye meza na nambari inapaswa kuzunguka na kusoma pembejeo 77 kutoka kwenye meza. Nilijaribu nambari hii na vichwa 8 na nikaona kuwa karibu mara moja, lakini natafuta mahali penye tamu za LED ambazo zitafanya kazi na nambari hii na kuwa karibu mara moja, na pia kuboresha nambari hiyo.

Hatua ya 6: Washa Arduino

Washa Arduino!
Washa Arduino!
Washa Arduino!
Washa Arduino!
Washa Arduino!
Washa Arduino!

Sasa unachohitaji kufanya ni kuwasha arduino na uone kazi ya meza! Kutumia maktaba ya uhuishaji iliyotajwa hapo awali unaweza kuweka kwenye michoro nzuri iliyoongozwa na ws2812b, au unaweza kuweka kwenye nambari ya meza ya kahawa na kuiona ikiwaka katika kila sehemu. Jisikie huru kutoa maoni yoyote au maoni, na nitajaribu kurudi kwako kwa wakati unaofaa. Heri!

Ilipendekeza: