Turinys:
- 1 žingsnis: ko mums reikia?
- 2 žingsnis: prototipų kūrimas:
- 3 žingsnis: kodas:
- 4 žingsnis: Dabar dėl bylos:
- 5 žingsnis: galutinis rezultatas turėtų atrodyti maždaug taip:
- 6 žingsnis: litavimas
- 7 žingsnis: mes baigėme
Video: Interaktyvi bekontaktė šviesa: 7 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Sveiki visi! Čia norėčiau pasidalinti projektu, prie kurio dirbau. Aš įkvėpiau eksperimentuoti su talpiu jutikliu jutimu per savo universiteto projektą. Aš sužinojau apie šią technologiją naudodamas instrukcijas ir panaudojau tai, ko išmokau čia ir iš kitų vietų internete, kurdamas savo valdiklį be prisilietimo, kurį naudoju maišydamas skirtingas RGB reikšmes ir sukurdamas įdomias šviesias spalvas.
Pradedant šį projektą, beveik nieko nežinojau nei apie elektroniką, nei apie talpinį jutimo jutimą.
Kai kurias problemas, su kuriomis susidūriau anksti, sukėlė nesusipratimas, kas iš tikrųjų vyksta. Taigi trumpas įvadas iš to, kaip aš tai suprantu:
Talpinis jutiklis naudoja kelis komponentus, daugiausia:
Kondensatorius (šiame projekte mes naudojame aliuminio foliją, tačiau taip pat galima naudoti laidžius skysčius ir tt), laidai (žinoma, jo elektronika)
ir rezistorius, viskas, kas mažesnė nei 10 MOhm, yra per mažas pasipriešinimas daugiau nei tiesioginis prisilietimas.
tai veikia matuojant laiko skirtumą tarp taško A ir taško B. Nuo pradžios kaiščio jis siunčia signalą į galinį kaištį, laikas, kurio reikia, matuojamas laikmačiu. Sumažinus pasipriešinimo vertę (perkeliant kondensatorių (šiuo atveju ranką) arčiau jutiklio kondensatoriaus (aliuminio folijos), šis laikas sutrumpėja, laiko skirtumas yra tai, ką jutiklis grąžina kaip vertę).
Kadangi jutiklį veikia talpiniai paviršiai, dėl trikdžių duomenys gali būti labai nepastovūs. Tai galima išspręsti didelei daliai, tinkamai izoliuojant kondensatorių, taip pat naudojant įžeminimą (vėliau parodysiu, kaip).
Taigi dabar mes negalime pradėti inventorizuoti visų reikalingų dalykų:
1 žingsnis: ko mums reikia?
Elektronika:
1. 2 x 22M omų + rezistoriai (kuo didesnė pasipriešinimo vertė, tuo toliau jūsų jutiklis reaguoja, aš asmeniškai naudojau 22M omą, minimalus, kad gaučiau naudotus duomenis, kuriuos patyriau, buvo 10M omų)
2. 3x 330 omų rezistoriai
3. Laidai
4. Duonos lenta
5. Grandinės plokštė (mano buvo nuolat vario juostelės)
6. Keli bendri katodiniai RGB šviesos diodai (aš naudojau 8, bet jūs galite turėti daugiau ar mažiau, priklausomai nuo to, kiek norite šviesos)
7. Aliuminio folija
8. Apvyniojimas
9. Arduino Uno
10. Juosta
Byla:
1. Mediena Naudojau 50 x 50 x 1,8 CM MDF (galite naudoti tikrai viską. Tai priklauso nuo norimo efekto ir turimų įrankių)
2. Aš naudoju akrilo plexiglas 50 x 50 x 0,3 CM (arba bet kokią kitą skaidrią/permatomą medžiagą, pvz., Ryžių popierių)
3. Švitrinis popierius (smulkus švitrinis popierius)
4. Medienos klijai
5. elnias (neprivaloma)
6. Akrilo klijai
Įrankiai:
Vielos nuėmiklis
Lituoklis + skarda
Stanley peilis
grąžtas
Pjūklas (aš naudoju stalo pjūklą)
2 žingsnis: prototipų kūrimas:
Dabar turime viską ir galime pradėti kurti prototipą, kad pamatytume, kaip jis veikia:
Paruošiamieji darbai:
Iškirpkite 4 stačiakampius iš aliuminio folijos (mano dydis yra apie 10 x 5 cm), apvyniokite juos maistine plėvele, kad apsaugotumėte juos nuo tiesioginio prisilietimo, ir priklijuokite vielą prie aliuminio folijos. Aš tiesiog priklijavau nuplėštą galą prie folijos (kol jie liečiasi).
Norėdami įsitikinti, kad aliuminis yra saugiai izoliuotas, aš suvyniojau į maistinę plėvelę ir lyginau ją tarp popieriaus (tik kelias sekundes, kad jis visiškai neištirptų).
Tada nustatykite grandinę, kaip parodyta paveikslėlyje.
4 smeigtukas naudojamas kaip abiejų jutiklių siuntimo kaištis, o priėmimo kaiščiai yra 2 ir 5. Galite naudoti kelis siuntimo kaiščius, tačiau tai sukelia problemų, nes jie nėra visiškai sinchronizuojami.
naudokite šią sąranką derinimo tikslais prieš lituodami viską kartu, kad įsitikintumėte, jog viskas tikrai veikia taip, kaip numatyta.
3 žingsnis: kodas:
Dabar mes turime viską ir galime pradėti derinti jutiklius.
Jei norite naudoti mano kodą, atsisiųskite talpinių jutiklių biblioteką iš „Arduino“ir įdiekite ją pagal nuorodos puslapio nurodymus: Spustelėkite mane
Kodas: (man nelabai sekasi koduoti, todėl jei žinote, kaip tai padaryti geriau, darykite)
#include // importuoti kodų biblioteką
CapacitiveSensor cs_4_2 = Talpinis jutiklis (4, 2); // Siųsti pin = 4, gauti 2 ir 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // masyvo dydis const int numIndexG = 10; int spalvaR = 0; int spalvaG = 0; plūdės spalvaB = 0; int indexR [numIndexR]; int posIndexR = 0; ilgas bendrasR = 0; // jis turi būti ilgas, nes mano masyvo suma buvo per didelė sveikas skaičius. int vidurkisR = 0; int indexG [numIndexG]; int posIndexG = 0; ilgas sumasG = 0; int vidurkisG = 0; void setup () {pinMode (redPin, OUTPUT); „pinMode“(žalias „Pin“, OUTPUT); pinMode („bluePin“, OUTPUT); for (int thisIndexR = 0; thisIndexR <numIndexR; thisIndexR ++) {// nustato masyvą į 0 indexR [thisIndexR] = 0; } for (int thisIndexG = 0; thisIndexG = 4500) {// apribokite jutiklio vertes iki naudingo maksimumo, tai nėra vienoda kiekvienai rezistoriaus vertei, taip pat gali šiek tiek skirtis priklausomai nuo aplinkos, kurią gali reikėti pataisyti savo poreikius. iš viso1 = 4500; } jei (iš viso2> = 4500) {iš viso2 = 4500; } totalR = totalR - indexR [posIndexR]; // čia sukuriamas masyvas, kuris nuolat prideda jutiklio išvestį ir sukuria vidurkį. indeksasR [posIndexR] = viso1; totalR = totalR + indexR [posIndexR]; posIndexR = posIndexR + 1; jei (posIndexR> = numIndexR) {posIndexR = 0; } vidurkisR = totalR / numIndexR; // mes naudojame vidurkį, o ne neapdorotus duomenis, kad išlygintume išvestį, tai šiek tiek sulėtina procesą, bet taip pat sukuria tikrai gražų sklandų srautą. totalG = totalG - indeksasG [posIndexG]; indeksasG [posIndexG] = iš viso2; totalG = totalG + indeksasG [posIndexG]; posIndexG = posIndexG + 1; if (posIndexG> = numIndexG) {posIndexG = 0; } vidurkisG = totalG / numIndexG; jei (vidutinisR> = 2000) {// nenorime, kad šviesos diodai nuolat keistų vertę, nebent jūsų indėlis būtų įvestas, todėl tai užtikrina, kad neatsižvelgiama į visus žemesnius aplinkos rodmenis. colorR = žemėlapis (vidutinisR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } else if (vidurkisR = 1000) {spalvaG = žemėlapis (vidurkisG, 1000, 4500, 255, 0); analogWrite (žaliaPin, spalvaG); } else if (vidurkisG <= 1000) {colorG = 255; analogWrite (žaliaPin, spalvaG); } if (colorR <= 125 && colorG <= 125) {// B veikia šiek tiek kitaip, nes naudojau tik 2 jutiklius, todėl abiejuose jutikliuose susiejau B (spalvaG, 255, 125, 0, 127,5); analogWrite (mėlynasPin, spalvaB); } else {colorB = žemėlapis (colorR, 255, 125, 127,5, 0) + žemėlapis (colorG, 255, 125, 127,5, 0); jei (spalvaB> = 255) {spalvaB = 255; } jei (spalvaB <= 0) {spalvaB = 0; } analogWrite (mėlynasPin, spalvaB); } Serial.print (milis () - pradžia); // tai derinimo tikslais Serial.print ("\ t"); Serial.print (colorR); Serial.print ("\ t"); Serijinis atspaudas (spalvaG); Serial.print ("\ t"); Serial.println (spalvaB); uždelsimas (1); }
Šis kodas išgauna neapdorotus duomenis iš jutiklio (šie duomenys visada bus šiek tiek nepastovūs dėl visų skirtingų jutikliui įtakos turinčių veiksnių) ir neapdorotus duomenis nuolat įtraukia į masyvą, kai masyvas pasiekia maksimalią vertę (mano atveju 10) ji išvalo paskutinę vertę ir prideda naują. Kiekvieną kartą pridėjus vertę, ji apskaičiuoja vidutinę vertę ir įtraukia ją į naują kintamąjį. Šis vidutinis kintamasis naudojamas reikšmei susieti su reikšme nuo 0 iki 255, tai yra vertė, kurią rašome į RGB kaiščius, kad padidintume kiekvieno kanalo ryškumą (kanalai yra R G ir B).
Dabar, jei įkeliate kodą į „arduino“ir atidarote nuoseklųjį monitorių, RGB reikšmės turėtų būti mažesnės, kai užvedate ranką virš kiekvieno jutiklio, taip pat turėtų pasikeisti šviesos diodo šviesos spalva.
4 žingsnis: Dabar dėl bylos:
Byla: Aš padariau bylą naudodamas savo universitete prieinamas priemones, todėl ši darbo eiga netaikoma visiems. Tačiau jame nėra nieko ypatingo, jam reikia skylės vienoje pusėje, kad USB prievadas galėtų patekti, tačiau tai tik atvira dėžutė.
Matmenys yra tokie:
15 x 15 CM permatomam viršui
ir
15 x 8 CM mediniam pagrindui (man medžio storis buvo 1,8 CM).
Aš naudoju stalo pjūklą, kad pjaustyčiau reikiamo dydžio MDF plokštę (tai yra 4 plokštės 15 x 8 CM ir 1 15 x 15 CM įžeminimo plokštė), po to nukirpiau kampus 45 laipsnių kampu. Visas dalis suklijavau medžio klijais ir spaustukais (leiskite išdžiūti mažiausiai 30 minučių), tą pačią procedūrą taikiau ir plexiglas, bet su specialiu pjūklo disku.
1 iš medinių šonų centre turėtų būti skylė arduino USB kištuko aukštyje, kad būtų galima prijungti arduino.
Baigiau pagrindą su fanera. Supjausčiau į gabalus, šiek tiek didesnius nei kiekvienos pusės paviršius.
Aš tai priklijavau, tada užfiksavau 30 minučių kiekvienoje pusėje (geriau tai padaryti atskirai, kad įsitikintumėte, jog jis neslysta, o po to, kai išdžiūvo, nukirpau viską, kas įstrigo.
Dangtelį suklijavau naudodami specialius Acryl klijus, vadinamus Acryfix.
Turėkite omenyje, kad jei naudojate akrilo plexiglas, klijai šiek tiek ištirpdo plexiglas, todėl būkite kiek įmanoma tikslesnis ir greitesnis (jis išdžiūsta per porą minučių, bet per kelias sekundes patenka į orą).
Norėdami užbaigti dangtelį, kubą apšlakuodavau smėlio srove, bet taip pat galite naudoti smulkų švitrinį popierių, tereikia daug daugiau laiko, kad jis atrodytų tolygiai. Tačiau nepamirškite, kad jei naudojate švitrinį popierių, jis turi būti smulkiagrūdis, o po matinio klijavimo dalys taip pat suklijuojamos (kad netyčia nesulaužytumėte, spaudžiant daug)
Kad dangtelis neslystų per daug, ant medinio kubo kraštų priklijavau porą mažų medinių strypų.
5 žingsnis: galutinis rezultatas turėtų atrodyti maždaug taip:
6 žingsnis: litavimas
Jei turite plokštę, galite pradėti lituoti visas dalis kartu, naudodamiesi ta pačia duonos lentos sąranka.
Mano plokštėje yra ištisinės varinės juostos, kad būtų lengviau naudoti.
Kiekvienam jutikliui aš nupjaunu mažą kvadratą, prie kurio lituosiu rezistorius ir laidus.
Siuntimo laidai (laidai, einantys nuo 4 kaiščio prie kiekvieno jutiklio) nuosekliai lituojami į atskirą kvadratą, 1 laidas eina į 4 kaištį.
Aš padariau ilgą stačiakampį, kad padaryčiau improvizuotą LED juostą (išmatuokite ją taip, kad ji tilptų dangtelio viduje, bet ant pagrindo kraštų). Galite tiesiog lituoti šviesos diodus iš eilės vienas po kito (nepamirškite paveikslėlyje, kurį netyčia litavau su šviesos diodais ir rezistoriais netinkamoje plokštės pusėje, varinės juostos visada turėtų būti apatinėje pusėje).
Kai baigsite lituoti atskiras dalis, įdėkite jas į dėklą. Lituoti savo atskirų laidų nesudėjau, kad prireikus galėčiau juos lengvai pakeisti.
Laikas viską sutalpinti į pagrindą: tai yra lengviausias žingsnis, pirmiausia „arduino“turi būti su USB prievadu per skylę, esančią korpuso gale. Dabar pridėkite jutiklius, įsitikinkite, kad jutiklio folija iš abiejų pusių priglunda prie medžio, o žemės folija yra tiesiai prieš ją. Kai viskas gerai dera, prijunkite RGB lemputes prie dešinių kaiščių (9, 10, 11) ir leiskite atsiremti į pagrindo kraštus.
7 žingsnis: mes baigėme
Jei visa tai atlikote, dabar turėtumėte turėti darbinę lemputę su talpine lietimo spalva. Pasilinksmink!
Rekomenduojamas:
Interaktyvi LED plytelių siena (lengviau nei atrodo): 7 žingsniai (su nuotraukomis)
Interaktyvi LED plytelių siena (lengviau nei atrodo): Šiame projekte aš sukūriau interaktyvų LED sieninį ekraną, naudojant „Arduino“ir 3D spausdintas dalis. Šio projekto įkvėpimas iš dalies kilo iš „Nanoleaf“plytelių. Norėjau sugalvoti savo versiją, kuri būtų ne tik pigesnė, bet ir
Saulės šviesa be akumuliatoriaus arba saulės dienos šviesa Kodėl gi ne ?: 3 žingsniai
Saulės šviesa be akumuliatoriaus arba saulės dienos šviesa … Kodėl gi ne?: Sveiki. Atsiprašau už mano dienos šviesą? Saulės? Kodėl? Dienos metu turiu šiek tiek tamsų kambarį, o naudodamas turiu įjungti šviesą. Įdiekite saulės šviesą dieną ir naktį (1 kambarys): (Čilėje)-Saulės skydas 20w: 42 USD-Baterija: 15 USD-saulės apmokestinimas
Muzikinė reaktyvioji šviesa -- Kaip sukurti itin paprastą muzikos reaktyviąją šviesą, kad stalinis kompiuteris būtų patrauklus: 5 žingsniai (su paveikslėliais)
Muzikinė reaktyvioji šviesa || Kaip sukurti itin paprastą muzikinę reaktyviąją šviesą, kad stalinis kompiuteris būtų patrauklus. Ei, kas vyksta, vaikinai, šiandien mes sukursime labai įdomų projektą. Šiandien mes sukursime muzikos reaktyviąją šviesą. LED pakeis savo ryškumą pagal bosas, kuris iš tikrųjų yra žemo dažnio garso signalas. Tai labai paprasta sukurti. Mes
Interaktyvi aplinkos šviesa: 8 žingsniai
Interaktyvi aplinkos šviesa: tai mano pirmasis pamokomas dalykas! Prašau pakęsti mane, kol man sunku rašyti tinkamą anglų kalbą. Nesivaržykite mane pataisyti! Šį projektą pradėjau iškart po to, kai prasidėjo konkursas „Tegul švyti“. Norėčiau, kad būčiau padaręs daug daugiau ir baigęs tai, ką norėjau
Interaktyvi, atviro kodo nuotaikos šviesa: 9 žingsniai (su nuotraukomis)
Interaktyvi, atviro kodo nuotaikos šviesa: šioje instrukcijoje aprašoma, 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 šaunu