Sisukord:

Interaktiivne puutevaba valgus: 7 sammu (piltidega)
Interaktiivne puutevaba valgus: 7 sammu (piltidega)

Video: Interaktiivne puutevaba valgus: 7 sammu (piltidega)

Video: Interaktiivne puutevaba valgus: 7 sammu (piltidega)
Video: 10 самых АТМОСФЕРНЫХ мест Дагестана. БОЛЬШОЙ ВЫПУСК #Дагестан #ПутешествиеПоДагестану 2024, November
Anonim
Interaktiivne puutevaba valgus
Interaktiivne puutevaba valgus

Tere kõigile! Tahaksin siin jagada projekti, millega olen tegelenud. Sain inspiratsiooni katsetada mahtuvusliku puutetundlikkusega oma ülikooli projekti kaudu. Sain selle tehnoloogia kohta teada juhendmaterjalide kaudu ja kasutasin siin ja mujalt Internetist õpitud asju oma puutetundliku kontrolleri loomiseks, mida kasutan erinevate RGB väärtuste segamiseks huvitavate heledate värvide loomiseks.

Alustuseks ei teadnud ma seda projekti alustades peaaegu üldse elektroonikast ega mahtuvuslikust puutetundlikkusest.

Mõned probleemid, millega ma varakult kokku puutusin, olid põhjustatud arusaamatusest, mis tegelikult toimub. Nii et lühike sissejuhatus sellest, kuidas ma sellest aru saan:

Mahtuvuslik andur kasutab mitut komponenti, peamiselt:

Kondensaator (selles projektis kasutame alumiiniumfooliumi, kuid on võimalik kasutada ka juhtivaid vedelikke jne), juhtmed (muidugi selle elektroonika)

ja takisti, kõik alla 10 MOhm on liiga väike takistus rohkem kui otsene puudutus.

See toimib nii, et mõõdetakse ajavahe punkti A ja punkti B vahel. Stardinõuelt saadab see signaali otsaotsikule, aega mõõdetakse taimeriga. Vähendades takistuse väärtust (nihutades kondensaatorit (antud juhul kätt) anduri kondensaatorile (alumiiniumfooliumile) lähemale, lüheneb see aeg, aja erinevus on see, mille andur väärtusena tagasi annab.

Kuna andurit mõjutavad mahtuvuslikud pinnad, võivad andmed häirete tõttu olla väga ebakorrektsed. Seda saab suurel osal lahendada, kondensaatorit õigesti isoleerides ja ka maandust kasutades (ma näitan hiljem).

Nii et nüüd ei saa me hakata kõiki vajalikke asju inventeerima:

Samm: mida me vajame?

Elektroonika:

1. 2 x 22M oomi + takistid (mida suurem takistusväärtus, seda kaugemale teie andur reageerib, kasutasin isiklikult 22M oomi, minimaalne kasutatavate andmete saamiseks oli 10M oomi)

2. 3x 330 oomi takistid

3. Juhtmed

4. Leivalaud

5. Trükkplaat (minu oma oli pidevalt vasest ribad)

6. Mitu tavalist katood -RGB -LEDi (ma kasutasin 8, kuid teil võib olla rohkem või vähem sõltuvalt sellest, kui palju valgust soovite)

7. Alumiiniumfoolium

8. Klammerduv mähis

9. Arduino Uno

10. Lint

Juhul:

1. Puit Kasutasin 50 x 50 x 1,8 CM MDF -i (saate kasutada tõesti kõike. See sõltub soovitud efektist ja teie käsutuses olevatest tööriistadest)

2. Kasutasin akrüülpleksiklaasi 50 x 50 x 0,3 CM (või muud läbipaistvat/poolläbipaistvat materjali, näiteks riisipaberit)

3. Liivapaber (peen liivapaber)

4. Puiduliim

5. vener (valikuline)

6. akrüül liim

Tööriistad:

Traadi eemaldaja

Jootekolb + tina

Stanley nuga

puurida

Saag (kasutasin lauasaega)

2. samm: prototüüpimine:

Prototüüpimine
Prototüüpimine
Prototüüpimine
Prototüüpimine

Nüüd on meil kõik olemas ja saame hakata tegema prototüüpi, et näha, kuidas see toimib:

Ettevalmistustööd:

Lõigake alumiiniumfooliumist välja 4 ristkülikut (minu omad on umbes 10 x 5 cm), mähkige need toidukilega, et isoleerida otsese kokkupuute eest, ja kleepige traat alumiiniumfooliumi külge. Ma teipisin fooliumile lihtsalt eemaldatud otsa (seni, kuni need kokku puutuvad).

Et veenduda, et alumiinium on ohutult isoleeritud, mässisin selle kilesse ja triikisin paberite vahele (vaid mõneks sekundiks, et see täielikult ei sulaks).

Seejärel seadistage vooluring, nagu pildil näha.

Tihvti 4 kasutatakse mõlema anduri saatenõelana, samal ajal kui vastuvõtutihvtid on tihvtid 2 ja 5. Võite kasutada mitut saatmisnõela, kuid see tekitab probleeme, kuna need pole ideaalselt sünkroonis.

kasutage seda seadistust silumiseks enne kõike kokku jootmist, veendumaks, et kõik toimib tõepoolest ettenähtud viisil.

3. samm: kood:

Nüüd on meil kõik olemas ja saame hakata andureid siluma.

Minu koodi kasutamiseks laadige Arduinost alla mahtuvusandmete kogu ja installige see vastavalt viitelehe juhistele: klõpsake mind

Kood: (ma pole kodeerimises suurepärane, nii et kui teate, kuidas seda paremini teha, palun tehke seda)

#include // importige kooditeek

CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Saada pin = 4, saada on 2 ja 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // massiivi suurus const int numIndexG = 10; int värvR = 0; int värvG = 0; ujuki värvB = 0; int indeksR [numIndexR]; int posIndexR = 0; pikk kokkuR = 0; // see peab olema pikk, sest minu massiivi kogusumma oli täisarvu jaoks liiga suur. int keskmineR = 0; int indeksG [numIndexG]; int posIndexG = 0; pikk kokkuG = 0; int keskmineG = 0; void setup () {pinMode (redPin, OUTPUT); pinMode (rohelinePin, VÄLJUND); pinMode (bluePin, OUTPUT); for (int thisIndexR = 0; thisIndexR <numIndexR; thisIndexR ++) {// määrab massiivi väärtuseks 0 indexR [thisIndexR] = 0; } jaoks (int thisIndexG = 0; thisIndexG = 4500) {// piira anduri väärtused kasutatava maksimumini, see ei ole iga takisti väärtuse puhul sama ja võib ka keskkonniti veidi erineda, mistõttu võib seda vaja muuta oma vajadused. kokku1 = 4500; } kui (kokku2> = 4500) {kokku2 = 4500; } kokkuR = kokkuR - indeksR [posIndexR]; // see loob siin massiivi, mis lisab pidevalt anduri väljundit ja toodab keskmist. indeksR [posIndexR] = kokku1; kokkuR = kokkuR + indeksR [posIndexR]; posIndexR = posIndexR + 1; kui (posIndexR> = numIndexR) {posIndexR = 0; } keskmineR = kokkuR / numIndexR; // me kasutame väljundi silumiseks algandmete asemel keskmist, see aeglustab protsessi veidi, kuid loob ka tõeliselt mõnusa sujuva voo. kokkuG = kokkuG - indeksG [posIndexG]; indeksG [posIndexG] = kokku2; kokkuG = kokkuG + indeksG [posIndexG]; posIndexG = posIndexG + 1; if (posIndexG> = numIndexG) {posIndexG = 0; } keskmineG = kokkuG / numIndexG; kui (keskmine R> = 2000) {// me ei taha, et LED -id muudaksid pidevalt väärtust, kui teie käest ei anta sisendit, nii et see tagab, et kõiki madalamaid keskkonnamõõtmisi ei võeta arvesse. colorR = kaart (keskmineR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } muu kui (keskmineR = 1000) {colorG = kaart (keskmineG, 1000, 4500, 255, 0); analogWrite (rohelinePin, värvG); } muu kui (keskmineG <= 1000) {colorG = 255; analogWrite (rohelinePin, värvG); } if (colorR <= 125 && colorG <= 125) {// B töötab natuke teisiti, kuna kasutasin ainult 2 andurit, seega kaardistasin mõlema anduri B värviB = kaart (colorR, 255, 125, 0, 127,5) + kaart (värvG, 255, 125, 0, 127,5); analogWrite (sininePin, värvB); } else {colorB = kaart (colorR, 255, 125, 127,5, 0) + kaart (colorG, 255, 125, 127,5, 0); kui (värvB> = 255) {värvB = 255; } kui (värvB <= 0) {värvB = 0; } analogWrite (sininePin, värvB); } Serial.print (millis () - algus); // see on silumiseks Serial.print ("\ t"); Serial.print (colorR); Serial.print ("\ t"); Serial.print (colorG); Serial.print ("\ t"); Serial.println (värvB); viivitus (1); }

See kood ekstraheerib töötlemata andmed andurilt (need andmed on alati kergelt ebakorrapärased kõigi andurit mõjutavate tegurite tõttu) ja see paneb algandmed pidevalt massiivi, kui massiiv jõuab maksimaalse väärtuseni (minu puhul 10) puhastab see viimase väärtuse ja lisab uue. Iga kord, kui väärtust lisatakse, arvutab see keskmise väärtuse ja paneb selle uue muutuja sisse. Seda keskmist muutujat kasutatakse väärtuse kaardistamiseks väärtusele 0 kuni 255, see on väärtus, mille me kirjutame RGB tihvtidele, et suurendada iga kanali heledust (kanalid on R G ja B).

Nüüd, kui laadite oma koodi üles arduinosse ja avate jadamonitori, peaksid RGB väärtused olema madalamad, kui hõljutate kätt iga anduri kohal, samuti peaks muutuma LED -i hele värv.

Samm: nüüd juhtumi jaoks:

Nüüd juhtumi kohta
Nüüd juhtumi kohta
Nüüd juhtumi kohta
Nüüd juhtumi kohta
Nüüd juhtumi kohta
Nüüd juhtumi kohta

Juhtum: valmistasin juhtumi oma ülikooli kaudu kättesaadavate tööriistade abil, seega ei ole see töövoog kõigile kohaldatav. Siiski pole selles midagi liiga erilist, USB -porti mahutamiseks vajab see ühel küljel auku, kuid peale selle on see lihtsalt avatud ülaosaga kast.

Mõõtmed on järgmised:

15 x 15 CM läbipaistva ülaosa jaoks

ja

15 x 8 CM puidust aluse jaoks (puidu paksus oli minu jaoks 1,8 CM).

Lõikasin lauasaega MDF -plaadi vajalikeks mõõtmeteks (mis on 4 paneeli 15 x 8 CM ja 1 15 x 15 CM alusplaat), mille järel lõikasin nurgad 45 -kraadise nurga alla. Kõik osad kleepisin kokku puiduliimi ja klambrite abil (laske sellel vähemalt 30 minutit kuivada), kasutasin sama protseduuri pleksiklaaside puhul, kuid spetsiaalse saelehega.

Ühe puidust külje keskosas peaks olema arduino USB -pistiku kõrgusel auk, mis võimaldab arduino ühendamist.

Aluse lõpetasin spooniga. Lõikasin selle tükkideks, mis olid mõlema külje pinnast veidi suuremad.

Selle liimisin peale, seejärel kinnitasin 30 minutit mõlemale küljele (parem teha seda eraldi, et veenduda, et see ei libise ja pärast kuivamist lõikasin kõik, mis välja jäi.

Kork liimisin kokku, kasutades Acryli jaoks spetsiaalset liimi nimega Acryfix.

Pidage meeles, et kui kasutate akrüülpleksiklaasi, lahustab liim pleksiklaasi veidi, seega olge võimalikult täpne ja kiire (see kuivab paari minuti jooksul, kuid jõuab mõne sekundi jooksul õhu kätte).

Korgi lõpetamiseks hõõrutasin kuubiku liivapritsiga, kuid võite kasutada ka peent liivapaberit, selle ühtlane väljanägemine võtab palju rohkem aega. Pöörake siiski tähelepanu sellele, et kui kasutate liivapaberit, peab see olema peeneteraline ja liimima osad ka pärast jäätumisprotseduuri kokku (nii et te ei purune seda kogemata suure survega)

Veendumaks, et kork ei libiseks liiga palju, liimisin puukuubi äärtele paar väikest puidust kangi.

Samm: lõpptulemus peaks välja nägema umbes selline:

Lõpptulemus peaks välja nägema umbes selline
Lõpptulemus peaks välja nägema umbes selline

6. samm: jootmine

Jootmine!
Jootmine!
Jootmine!
Jootmine!

Kui teil on trükkplaat, võite hakata kõiki osi kokku jootma, kasutades sama seadistust, mis teie leivaplaadil on.

Minu trükkplaadil on kasutamise hõlbustamiseks pidevad vasest ribad.

Lõikasin iga anduri jaoks välja väikese ruudu, et joota takistid ja juhtmed.

Saatmisjuhtmed (juhtmed, mis lähevad tihvtilt 4 igale andurile) on joodetud järjestikku eraldi ruudule, kusjuures 1 traat läheb tihvti 4.

Hoidsin improviseeritud led -riba tegemiseks pikka ristkülikut (mõõtke seda nii, et see sobiks korgi sisse, kuid aluse äärtele). Võite lihtsalt joodida LED -e järjestikku üksteise järel (pidage meeles, et pildil ma jootsin kogemata ledid ja takistid trükkplaadi valele küljele, vaskribad peaksid alati olema alumisel küljel).

Kui olete üksikute osade jootmise lõpetanud, paigaldage need korpusesse. Ma ei jootnud oma üksikuid juhtmeid kokku, et saaksin neid vajadusel lihtsalt vahetada.

Aeg kõik alusesse mahutada: see on peaaegu kõige lihtsam samm, arduino tuleb kõigepealt asetada USB -pordiga läbi korpuse tagaküljel oleva augu. Nüüd lisage andurid, veenduge, et anduri foolium sobiks mõlemal küljel vastu puitu, maapind oleks otse vastu. Kui see kõik sobib hästi, ühendage RGB -valgusdioodid parempoolsetesse tihvtidesse (9, 10, 11) ja laske neil aluse äärtele toetuda.

7. samm: oleme valmis

Kui olete selle kõik välja lülitanud, peaks teil nüüd olema töövalgusti koos mahtuvusliku puutevärvi segamisega. Lõbutse hästi!

Soovitan: