Turinys:

Interaktyvi, atviro kodo nuotaikos šviesa: 9 žingsniai (su nuotraukomis)
Interaktyvi, atviro kodo nuotaikos šviesa: 9 žingsniai (su nuotraukomis)

Video: Interaktyvi, atviro kodo nuotaikos šviesa: 9 žingsniai (su nuotraukomis)

Video: Interaktyvi, atviro kodo nuotaikos šviesa: 9 žingsniai (su nuotraukomis)
Video: Чужой звонок_Рассказ_Слушать 2024, Lapkritis
Anonim
Interaktyvi, atviro kodo nuotaikos šviesa
Interaktyvi, atviro kodo nuotaikos šviesa

Šioje pamokoje bus paaiškinta, kaip sukurti interaktyvią daugiafunkcinę nuotaikos šviesą. Šio projekto esmė yra „BlinkM I2C RGB LED“. Kai vieną dieną naršiau internete, „BlinkM“patraukė mano dėmesį, ir aš tiesiog maniau, kad tai per daug šaunu. Taigi, po poros mėnesių nusprendžiau panaudoti tam tikrą nuotaikos šviesą. Ir štai!

1 žingsnis: ko jums reikės

Šis projektas gali būti gana nebrangus, jei naudosite tinkamus daiktus. Pažymėsiu alternatyvias dalis, kurios gali būti naudojamos, kad būtų pigiau pagaminti. Aš tiesiog naudoju kai kuriuos komponentus, kurie yra šiek tiek brangesni, nes tai šiek tiek palengvina statybos procesą.

Šviesos šaltinis:

„BlinkM RGB I2C“valdomas šviesos diodas

Valdiklis:

„Arduino“mikrovaldiklis - naudojau „Arduino Nano“, nes man reikėjo kažko, kas buvo tikrai maža, nes „jutiklinėje šviesoje“, naudojamoje viskam patalpinti, yra daug vietos

Korpusas:

Šiai nuotaikos šviesai pagalvojau apie daugybę skirtingų gaubtų ir galiausiai nusprendžiau tai, kas mums visiems pažįstama: tuos pigius, baltus, „liečiamus kupolo žibintus“. Radau dviejų pakuočių namų sandėlyje tik apie 4 USD. Šių žibintų vietos yra daugiau nei pakankamai, kad tilptų visi komponentai, jei tai padarysite teisingai.

Maitinimas/jungtys:

Pradžioje maniau, kad būtų puiku tai iškrauti iš akumuliatoriaus energijos (nes korpuse patogiai yra baterijų skyrius), tačiau tai nėra taip praktiška, jei ketinate jį eksploatuoti ilgą laiką. Vietoj to aš panaudojau 5,5 mm nuolatinės srovės maitinimo lizdą iš radioshack su 12V 150Ma transformatoriumi, kurį gulėjau. „Arduino“laive esantis reguliatorius sumažina 12 voltų įtampą, o 150Ma buvo pakankamai srovė, kad būtų galima maitinti viską. Laidams aš tiesiog naudojau viską, ką turėjau šalia. Tačiau būtinai naudokite kietą laidą.

Komponentai:

Iš komponentų gaminami trys nuotaikos šviesos jutikliai: garso jutiklis, jutiklio jutiklis ir šviesos jutiklis. Garso jutikliui jums reikės:- LM741 „Op-Amp“- „Electret Microhone“(3 laidų) „palieskite“jutiklį, jums reikės tik:- pjezo elemento (galite jį išgelbėti iš tam tikrų elektroninių žaislų, telefonų ir daugelio kitų pyptelėjusių elektroninių prietaisų, arba galite jį gauti iš pelės, radijo smūgio ir pan.).- 1M rezistorius … O šviesos jutikliui jums reikės:- CdS elemento (LDR), pageidautina labai didelio (daugiau skiriamosios gebos).- 10K rezistoriaus- 3 kontaktų antgalio ir gofruotų jungčių laidų (neprivaloma)

Kiti

Aš naudojau duonos lentą, nes nelabai norėjau daug lituoti. Aš taip pat naudoju daug gofruotų jungčių laidų, kad visos jungtys būtų saugesnės, tačiau jos neprivalomos. Arba galite naudoti „homebrew“kūrimo plokštę, kad palaikytumėte „ATmega168 micro“, ir naudoti DIP stiliaus „ATmega168“(ilgą, turinčią didesnius laidus). Nežinau, ar tai tiktų, bet pabandyti tikrai verta. Jei neturite/neturite pinigų duonos lentai, galite lituoti įprastą ATmega168 prie PCB ir pridėti reguliatorių, programavimo jungtis ir kt.

2 žingsnis: Paruoškite „jutiklinę šviesą“

Paruoškite „prisilietimo šviesą“
Paruoškite „prisilietimo šviesą“
Paruoškite „prisilietimo šviesą“
Paruoškite „prisilietimo šviesą“
Paruoškite „prisilietimo šviesą“
Paruoškite „prisilietimo šviesą“
Paruoškite „prisilietimo šviesą“
Paruoškite „prisilietimo šviesą“

Pirmiausia turime padaryti, kad namuose gauta pigaus apšvietimo šviesa taptų lengva. Pirmiausia apverskite šviesą ir nuimkite akumuliatoriaus dangtelį bei varžtus. Akumuliatoriaus skyriaus viduje pamatysite lemputę. Išimkite jį, išmeskite jį ir lemputę. Tada atidarykite korpusą. Dabar turime susitvarkyti su galia. Nuimkite metalo gabalėlį akumuliatoriaus skyriaus centre ir laidą, jungiantį jį su vienu iš akumuliatoriaus kontaktų. Lituokite laidus ant akumuliatoriaus kontaktų, kaip parodyta. Taip pat galite pažymėti juos, jei neturite skirtingos spalvos vielos. Mes taip pat ketiname padaryti šią nuotaikos šviesą veikiančią per sieninį lizdo transformatorių. Gręžkite skylę, naudodami maždaug tokio paties dydžio grąžtą kaip nuolatinės srovės lizdo skersmuo. Tada įsukite, kol jis sutaps su korpusu. Paskutinis pakeitimas, kurį turime atlikti, yra pridėti pjezo čiaupo jutiklį. Geriau jį sumontuoti ant plastikinio „ratlankio“, kad būtų geresnis jautrumas. Turiu jį pavaizduotą vėliau šioje instrukcijoje, sumontuotoje kitur, bet taip yra tik todėl, kad bandymų metu turėjau atidaryti ir uždaryti korpusą tiek, kad laidai pradėjo nutrūkti. Tiesiog priklijuokite jį karštu plastiku, tačiau įsitikinkite, kad jis netrukdo mechaniniam judėjimui ant judančio kupolo! (t.y. neleiskite per daug išsikišti).

3 veiksmas: pridėkite maitinimo grandinės apsaugą

Pridėkite maitinimo grandinės apsaugą
Pridėkite maitinimo grandinės apsaugą

Ši dalis yra paprastas priedas, kuris naudoja diodus, kad apsaugotų sieninį transformatorių/baterijas nuo kepimo, jei baterijas įdėjote tuo pačiu metu, kai naudojate nuolatinės srovės maitinimo lizdą. Galite naudoti bet kokius blokuojančius diodus, jei maksimali jų įtampa yra didesnė už sieninio transformatoriaus vertę. Dalis, pažymėta „VIN“nereguliuojamoje maitinimo juostoje ant duonos lentos (kuri eina į VIN ant arduino). Dalis, pažymėta „DCPower“, yra nuolatinės srovės maitinimo lizdas. Kažkodėl programa, kurią naudoju kurdama šią schemą, buvo tikrai išranki etiketėms, todėl taip ir leido man ją pavadinti. PASTABA: jei nesudarysite šios grandinės, jūs negalėsite laikyti baterijų baterijų skyriuje tuo pačiu metu, kai nuotaikos lemputė bus prijungta prie sieninio transformatoriaus, kitaip ji bus sugadinta.

4 veiksmas: pridėkite „Breadboard“, „Arduino“ir „BlinkM“

Pridėkite „Breadboard“, „Arduino“ir „BlinkM“
Pridėkite „Breadboard“, „Arduino“ir „BlinkM“

Prieš pridėdami duonos lentą, turime izoliuoti akumuliatoriaus kontaktus nuo metalinės lentos pagrindo (tai yra, jei metalinė plokštelė prilipo prie jūsų. Jei ne, praleiskite šį veiksmą). Uždėkite lipnią juostą ant visų metalinių kontaktų, kad įsitikintumėte, jog jie yra izoliuoti. Mes nenorime jokios atviros vielos. Dabar priklijuokite (aš naudojau karštus klijus) duonos lentą ant akumuliatoriaus skyriaus. Mūsų laimei, tai atsitinka puikiai. Dabar prijunkite teigiamus (+) ir neigiamus (-) laidus, atliktus 2 žingsnyje, į vieną iš teigiamų ir neigiamų maitinimo plokščių. Dabar mes galime sujungti „arduino“ir „blinkm“. Štai kaiščių jungtys:

  • A5 - Laikrodis („BlinkM“pažymėtas „c“)
  • A4 - duomenys (pažymėti „d“„BlinkM“)

Ir kai tai padarėte, prijunkite NEREGULIUOTĄ VCC (+) prie „VIN“kaiščio ant arduino, o REGULIUOTĄ VCC - prie (+) kaiščio „BlinkM“. Tada prijunkite „GND“prie „arduino“ir „BlinkM“prie maitinimo bloko GND ir sujunkite abi „GND“maitinimo juostas. Būkite atsargūs, kad nesumaišytumėte šių jungčių, kitaip galite iškepti „BlinkM“.

5 žingsnis: jutikliai - garsas, bakstelėjimas ir šviesa

Jutikliai - garsas, bakstelėjimas ir šviesa
Jutikliai - garsas, bakstelėjimas ir šviesa
Jutikliai - garsas, bakstelėjimas ir šviesa
Jutikliai - garsas, bakstelėjimas ir šviesa
Jutikliai - garsas, bakstelėjimas ir šviesa
Jutikliai - garsas, bakstelėjimas ir šviesa

Toliau eilėje yra jutikliai. Šviesos jutiklis yra paprasčiausias konstrukcijoje. Laidas, einantis į dešinę, jungiasi prie arduino. Daugiau informacijos apie KOKIUS kaiščius jungia jutikliai yra kitame žingsnyje. Garso jutiklis yra šiek tiek sunkesnis, bet ne juokingai sudėtingas. PASTABA: čia nerodžiau įtampos skirstytuvo grandinės. Schemoje esanti 2,5 V įtampa turi būti tiekiama per vadinamąjį „įtampos skirstytuvą“. Tai labai paprasta grandinė, susidedanti iš kelių fiksuotų rezistorių arba puodo (potenciometro). Šiai grandinei naudokite 50K puodą. „Google“įtampos skirstytuvas ir ieškokite pagalbos „Wikipedia“įraše, kaip jį sukurti. EDIT 9/27/08: Aš nutraukiau šią garso grandinę ir vietoj to panaudojau vieną išgelbėtą iš garso įjungto apšvietimo pakabuko. Grandinė čia neveikia gerai; Nežinau kodėl, bet dizainas yra klaidingas; kažkas ne taip. Pastebėjau, kad grandinėje iš pakabuko naudojamas SMD LM386 op-amp. Aš ką tik lituojau prieš rezistorius, einančius į šviesos diodus, VCC ir GND. Tada man beliko šiek tiek manipuliuoti programinės įrangos vertėmis ir iš anksto! geriau veikianti garsą reaguojanti nuotaikos lemputė. Šiuo metu muzikai pulsuojančios šviesos vaizdo įrašas yra tada, kai buvo naudojama originali grandinė. Galbūt įkelsiu kitą, kuriame parodytas patobulintas dizainas (labiau atrodo, kad dėl naujos grandinės jis reaguoja į muziką). Aš nesu tikras, kaip lituoti pjezo elementą, todėl atspėjau ir lituojau, kaip parodyta. Vis dėlto tai veikia. Pjezo poliškumas nesvarbus. Rezistorius yra ant lentos (nerodomas). Kita SVARBI PASTABA: šių grandinių vertės skirsis nuo jūsų, todėl turėsite šiek tiek pataisyti kodą. Jei turite klausimų apie šias vertybes, nedvejodami praneškite man.

6 veiksmas: raskite vietos jutikliams ir viską sujunkite

Raskite vietos jutikliams ir viską sujunkite
Raskite vietos jutikliams ir viską sujunkite
Raskite vietos jutikliams ir viską sujunkite
Raskite vietos jutikliams ir viską sujunkite

Ši dalis neturėtų būti per sunki. „Lietimo šviesos“korpuse yra pakankamai vietos, kad tilptų viskas, ko mums reikia. Aš dėjau jutiklius ten, kur jie tiktų. Visos jungtys yra:

  • A6 kaištis: garso jutiklis - PASTABA: ne arduino nano vartotojams kiti arduino neturi septintojo analoginio kaiščio. Turėsite tai pakeisti kode.
  • A3 kaištis: pjezo jutiklis (čiaupo jutiklis)
  • A0 kaištis: šviesos jutiklis

Įsitikinkite, kad netyčia neprijungiate jutiklių (+) laidų prie nereguliuojamo maitinimo lizdo, kitaip juos kepsite.

7 žingsnis: išbandykite

Išbandykite
Išbandykite
Išbandykite
Išbandykite

Įsitikinkite, kad maitinimo jungtys yra geros; prijunkite jį prie maitinimo adapterio ir išbandykite naudodami baterijas. Dažna problema yra prastas ryšys su teigiamu ir pagrindu. PASTABA: žinau, kad paveikslėlyje nerodomas šviesos jutiklis; Aš tik paėmiau, kol nepridėjau tos dalies.

8 veiksmas: užprogramuokite, uždarykite ir naudokite

Užprogramuokite, uždarykite ir naudokitės
Užprogramuokite, uždarykite ir naudokitės
Užprogramuokite, uždarykite ir naudokitės
Užprogramuokite, uždarykite ir naudokitės
Užprogramuokite, uždarykite ir naudokitės
Užprogramuokite, uždarykite ir naudokitės

Mano naudojamas kodas naudoja biblioteką, kurią sukūrė Todas E. Kurtas (www.todbot.com/blog) ir „BlinkM“(„ThingM“) kūrėjai. Kai tik galėsiu, pabandysiu įtraukti pastabas į kodą, kad jis būtų suprantamesnis; Šiuo metu esu užimtas. Įkeliant kodą, „arduino“programinėje įrangoje turi būti atidaryta kodų biblioteka (failas, pažymėtas „BlinkM_funcs.h“), kitaip ji neveiks. Jei norite peržiūrėti kodą, bet neturite „arduino“programinės įrangos, galite jį atidaryti naudodami teksto apdorojimo programą (dar žinomą kaip „Wordpad“, skirta „Windows“vartotojams). Naujų funkcijų idėjos laukiamos. Nedvejodami paskelbkite juos; Noriu padaryti šį atvirą kodą. Mano kodo struktūros tikslas yra toks, kad būtų galima lengvai pridėti naujų funkcijų. Kai kurias funkcijas gamintojas („ThingM“) užprogramavo „BlinkM“, tačiau dvi iš jų padariau aš; „Garso šviesa“ir „Mimikos šviesa“. Šiuo metu jis turi šiuos dalykus:

  • Nuotaikos šviesa - lėtai išblunka iki atsitiktinių spalvų
  • Žvakė - mirksi kaip žvakė su apelsinais ir geltona spalva
  • Vandens atspindžiai - „blizgučiai“su mėlyna, turkio ir žalsvai mėlyna spalvomis
  • Sezoninės spalvos - įgauna sezonines spalvas (manau, kad jos yra mėlynos, žalios, violetinės ir oranžinės)
  • Perkūnija - blyksniai kartais imituoja žaibą
  • Stabdymo lemputė - nuo raudonos iki geltonos tampa žalia ir vėl grįžta atgal
  • Imituoti šviesą - įrašo iki 50 šviesos įjungimo/išjungimo ciklų seką (galite naudoti žibintuvėlį), „įsimena“įjungimo/išjungimo laikus ir tada atkuria juos nesibaigiančia kilpa.
  • Garso šviesa - pulsuoja muzikos garsui

Lengvai bakstelėkite permatomą kupolą, kad bet kuriuo metu pakeistumėte funkcijas. Yra viena šios taisyklės išimtis: pasiekus „mimikos šviesos“funkciją, ji mirksės žaliai. Jei bakstelėsite kupolą, kol jis mirksės, jis pereis prie paskutinės funkcijos („garso lemputė“). Jei tik palauksite, jis pereis į funkciją „imituoti šviesą“. Pasiekę „garso šviesos“funkciją, negalite pakeisti funkcijų ir pereiti prie pirmosios, nes ji nuskaito garso jutiklį. Dabar ateina sunkioji dalis. Norėdami uždaryti nuotaikos šviesos gaubtą, turite atlikti keletą atsargių veiksmų. Pirma, jūs turite sulyginti atramines spyruokles su mažais plastikinio kupolo skirtukais. Kadangi nuolatinės srovės maitinimo lizdas yra ant ratlankio, o laidai eina prie duonos lentos, PIRMAI turite perbraukti plastikinį kupolą virš tų laidų, tada išorinio ratlankio varžtų stulpelius sulygiuoti su įpjovomis ant plastikinio kupolo. Įsitikinkite, kad visi skirtukai sutampa su atraminių spyruoklių išdėstymu, kuris taip pat atitinka ratlankio varžtų stulpelius ir išgręžtas skyles ant pagrindo plokštės. Tada, kai įsitikinsite, kad viskas sutampa, užfiksuokite išorinį ratlankį ant pagrindo plokštės. Tada įsitikinkite, kad laidai nėra įstrigę spyruoklėse arba yra toje vietoje, kur jie gali ateityje. Tai trukdytų plastikinio kupolo judėjimui. Galiausiai pakeiskite varžtus ir mėgaukitės! Paskutinės pastabos: SVARBU: NENAUDOKITE baterijų ir nejunkite sieninio adapterio vienu metu. Aš nesu tikras, kas atsitiks, bet aš tikiu, kad tai sunaikins viską, kas prijungta prie elektros !!

9 žingsnis: PAPILDOMAI

Štai keletas vaizdo įrašų: Tai yra iš 6 iš anksto užprogramuotų funkcijų, integruotų į „BlinkM“:… Tai yra pasirinktinis į garsą/muziką reaguojantis kodas, kurį pridėjau (ar galite atspėti, kokia tai daina …?:… Ir galiausiai, bet tikrai ne Bent jau yra šauniausia (manau) ir sunkiausia iš visų atlikti funkciją; „mimikos šviesos“funkcija:

Rekomenduojamas: