Obsah:
- Krok 1: Čo potrebujeme?
- Krok 2: Prototypovanie:
- Krok 3: Kód:
- Krok 4: Teraz k prípadu:
- Krok 5: Konečný výsledok by mal vyzerať asi takto:
- Krok 6: Spájkovanie
- Krok 7: Hotovo
Video: Interaktívne bezdotykové svetlo: 7 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Ahoj všetci! Rád by som sa tu podelil o projekt, na ktorom som pracoval. Inšpiroval som sa k experimentu s kapacitným dotykovým snímaním prostredníctvom projektu na mojej univerzite. Dozvedel som sa o tejto technológii prostredníctvom inštrukcií a použil som veci, ktoré som sa naučil tu a z iných miest na internete, na vytvorenie vlastného bezdotykového ovládača, ktorý používam na miešanie rôznych hodnôt RGB a vytváranie zaujímavých svetlých farieb.
Na začiatku, keď som začínal s týmto projektom, nevedel som skoro nič ani o elektronike, ani o kapacitnom snímaní dotykov.
Niektoré problémy, s ktorými som sa stretol na začiatku, boli spôsobené nepochopením toho, čo sa skutočne deje. Takže krátky úvod z toho, ako to chápem:
Kapacitný snímač používa viacero komponentov, hlavne:
Kondenzátor (v tomto projekte používame hliníkovú fóliu, ale je možné použiť aj vodivé kvapaliny atď.), vodiče (samozrejme, jeho elektronika)
a odporu, čokoľvek pod 10 MOhm je príliš malý odpor na viac ako priamy dotyk.
funguje to tak, že sa meria časový rozdiel medzi bodom A a bodom B. Zo štartovacieho kolíka vyšle signál na koncový kolík, čas, ktorý potrebuje, sa meria časovačom. Znížením hodnoty odporu (posunutím kondenzátora (v tomto prípade vašej ruky) bližšie ku kondenzátoru senzora (hliníkovej fólie) sa tento čas skráti, rozdiel v čase je to, čo senzor vráti ako hodnotu.
Vzhľadom na to, že snímač je ovplyvnený kapacitnými povrchmi, môžu byť údaje v dôsledku rušenia veľmi nepravidelné. To sa dá z veľkej časti vyriešiť správnou izoláciou kondenzátora a tiež použitím uzemnenia (ako na to ukážem neskôr).
Takže teraz to nie je možné, môžeme začať inventarizovať všetko, čo potrebujeme:
Krok 1: Čo potrebujeme?
Elektronika:
1. 2 x 22M Ohm + odpory (čím väčšia je hodnota odporu, tým ďalej reaguje váš snímač, osobne som použil 22M Ohm, minimum na získanie použiteľných údajov, ktoré som zažil, bolo 10M Ohm)
2. 3x 330 Ohm odpory
3. Drôty
4. Breadboard
5. Doska s plošnými spojmi (tá moja mala kontinuálne medené pásy)
6. Viac spoločných LED Cathode RGB (použil som 8, ale môžete mať viac alebo menej, závisí od toho, koľko svetla chcete)
7. Hliníková fólia
8. Cling wrap
9. Arduino Uno
10. Páska
Púzdro:
1. Drevo Použil som MDF 50 x 50 x 1,8 CM (môžete použiť skutočne čokoľvek. Záleží na požadovanom účinku a nástrojoch, ktoré máte k dispozícii)
2. Akrylové plexisklo som použil 50 x 50 x 0,3 CM (alebo iný priehľadný/priesvitný materiál, ako je ryžový papier)
3. Brúsny papier (jemný brúsny papier)
4. Lepidlo na drevo
5. dyha (voliteľné)
6. Akrylové lepidlo
Náradie:
Odstraňovač drôtov
Spájkovačka + cín
Nôž Stanley
vŕtať
Píla (použil som stolnú pílu)
Krok 2: Prototypovanie:
Teraz máme všetko a môžeme začať s výrobou prototypu, aby sme zistili, ako funguje:
Prípravné práce:
Z hliníkovej fólie vystrihnite 4 obdĺžniky (moje majú veľkosť asi 10 cm x 5 cm), zabaľte ich do potravinárskej fólie, aby ste ich izolovali pred priamym dotykom, a na hliníkovú fóliu prilepte drôt. Na fóliu som len prilepil odizolovaný koniec (pokiaľ zostanú v kontakte).
Aby som sa ubezpečil, že hliník je bezpečne izolovaný, zabalil som ho do potravinárskej fólie a zažehlil som ho medzi papiermi (len na niekoľko sekúnd, aby sa úplne neroztopil).
Potom nastavte obvod tak, ako je to znázornené na obrázku.
Pin 4 sa používa ako vysielací kolík pre oba snímače, zatiaľ čo prijímacie kolíky sú kolíky 2 a 5. Môžete použiť viac odosielacích pinov, ale spôsobuje to problémy, pretože nie sú úplne synchronizované.
použite toto nastavenie na účely ladenia pred spájkovaním všetkého dohromady, aby ste sa presvedčili, že všetko skutočne funguje podľa plánu.
Krok 3: Kód:
Teraz máme všetko a môžeme začať ladiť senzory.
Ak chcete použiť môj kód, mali by ste si stiahnuť knižnicu kapacitného snímania z Arduino a nainštalovať ju podľa pokynov uvedených na referenčnej stránke: Kliknite na mňa
Kód: (Nie som dobrý v kódovaní, takže ak viete, ako to urobiť lepšie, urobte to)
#include // importujte knižnicu kódov
CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Odoslať pin = 4, prijať sú 2 a 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // veľkosť poľa const int numIndexG = 10; int farbaR = 0; vnútorná farbaG = 0; farba plavákaB = 0; int indexR [numIndexR]; int posIndexR = 0; dlhý celkový R = 0; // musí to byť dlhé, pretože súčet môjho poľa bol pre celé číslo príliš veľký. int priemerR = 0; int indexG [numIndexG]; int posIndexG = 0; dlhý súčetG = 0; int priemerG = 0; void setup () {pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); for (int thisIndexR = 0; thisIndexR <numIndexR; thisIndexR ++) {// nastaví pole na 0 indexR [thisIndexR] = 0; } for (int thisIndexG = 0; thisIndexG = 4500) {// obmedzenie hodnôt senzorov na použiteľné maximum, nie je to isté pre každú hodnotu odporu a tiež sa môže trochu líšiť v závislosti od prostredia od prostredia, možno budete musieť toto vylepšiť svoje vlastné potreby. celkom1 = 4500; } if (total2> = 4500) {total2 = 4500; } totalR = totalR - indexR [posIndexR]; // toto tu vytvára pole, ktoré nepretržite pridáva výstup senzora a vytvára priemer. indexR [posIndexR] = total1; totalR = totalR + indexR [posIndexR]; posIndexR = posIndexR + 1; if (posIndexR> = numIndexR) {posIndexR = 0; } averageR = totalR / numIndexR; // Na vyhladenie výstupu používame priemer namiesto nespracovaných údajov, mierne to spomaľuje proces, ale tiež vytvára skutočne príjemný plynulý tok. totalG = totalG - indexG [posIndexG]; indexG [posIndexG] = total2; totalG = totalG + indexG [posIndexG]; posIndexG = posIndexG + 1; if (posIndexG> = numIndexG) {posIndexG = 0; } priemerG = totalG / numIndexG; if (averageR> = 2000) {// nechceme, aby diódy LED neustále menili hodnotu, pokiaľ nevstúpite z vašej ruky, čím sa zaistí, že nebudú zohľadnené všetky nižšie environmentálne hodnoty. colorR = mapa (priemerR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } else if (averageR = 1000) {colorG = map (averageG, 1000, 4500, 255, 0); analogWrite (greenPin, colorG); } else if (averageG <= 1000) {colorG = 255; analogWrite (greenPin, colorG); } if (colorR <= 125 && colorG <= 125) {// B funguje trochu inak, pretože som použil iba 2 senzory, takže som na obidva senzory namapoval B colorB = mapa (colorR, 255, 125, 0, 127,5) + mapa (farba G, 255, 125, 0, 127,5); analogWrite (bluePin, colorB); } else {colorB = mapa (colorR, 255, 125, 127,5, 0) + mapa (colorG, 255, 125, 127,5, 0); if (colorB> = 255) {colorB = 255; } if (colorB <= 0) {colorB = 0; } analogWrite (bluePin, colorB); } Serial.print (millis () - štart); // toto je na účely ladenia Serial.print ("\ t"); Serial.print (colorR); Serial.print ("\ t"); Serial.print (colorG); Serial.print ("\ t"); Serial.println (colorB); oneskorenie (1); }
Tento kód robí extrahovanie nespracovaných údajov zo snímača (tieto údaje budú vždy mierne nepravidelné kvôli všetkým rôznym faktorom, ktoré ovplyvňujú snímač) a ukladá nespracované údaje nepretržite do poľa, keď pole dosiahne maximálnu hodnotu (v mojom prípade 10) vyčistí poslednú hodnotu a pridá novú. Pri každom pridaní hodnoty sa vypočíta priemerná hodnota a vloží sa do novej premennej. Táto priemerná premenná sa používa na mapovanie hodnoty na hodnotu od 0 do 255, čo je hodnota, ktorú zapisujeme na piny RGB, aby sme zvýšili jas každého kanála (kanály sú R G a B).
Teraz, keď nahráte kód do arduina a otvoríte sériový monitor, mali by ste vidieť nižšie hodnoty RGB, keď umiestnite ruku na každý senzor, mala by sa zmeniť aj farba svetla LED.
Krok 4: Teraz k prípadu:
Prípad: Prípad som vyrobil pomocou nástrojov dostupných na mojej univerzite, takže tento pracovný postup nie je použiteľný pre každého. Nie je na tom však nič zvláštne, potrebuje na jednej strane otvor, aby sa do neho mohol vložiť port USB, ale okrem toho je to len otvorená škatuľka.
Rozmery sú nasledujúce:
15 x 15 CM pre priehľadný vrch
a
15 x 8 CM na drevený podklad (hrúbka dreva bola pre mňa 1,8 CM).
Stolnou pílou som rezal dosku z MDF na správne rozmery, ktoré som potreboval (čo sú 4 panely 15 x 8 CM a 1 15 x 15 CM zemný panel), potom som rohy vyrezal do uhla 45 stupňov. Všetky diely som zlepil pomocou lepidla na drevo a svoriek (nechal som zaschnúť aspoň 30 minút), použil som rovnaký postup pre plexisklo, ale so špeciálnym pílovým kotúčom.
1 z drevených strán by mala mať v strede otvor vo výške arduino USB zástrčky, aby bolo možné arduino zapojiť.
Základňu som dokončil dyhou. Nakrájal som ho na kúsky o niečo väčšie, ako je povrch z každej strany.
Toto som nalepil, potom som ho upol na 30 minút na každú stranu (lepšie to urobiť jednotlivo, aby ste sa uistili, že nekĺzne, a po zaschnutí som odstrihol všetko, čo trčalo).
Čiapku som zlepil lepidlom špecifickým pre Acryl s názvom Acryfix.
Uvedomte si, že ak použijete akrylový plexisklo, lepidlo plexisklo trochu rozpustí, buďte preto čo najpresnejší a najrýchlejší (schne do niekoľkých minút, ale na vzduch pôsobí v priebehu niekoľkých sekúnd).
Na dokončenie uzáveru som kocku olemoval pieskovačom, ale môžete použiť aj jemný brúsny papier, aby vyzerala rovnomerne, trvá to oveľa viac času. Pamätajte si však, že ak používate brúsny papier, musí byť jemnozrnný a tiež diely po procese glazúry zlepiť (aby ste ho náhodou nerozbili pôsobením veľkého tlaku)
Aby som sa ubezpečil, že vrchnáčik veľmi nekĺzne, prilepil som na okraje drevenej kocky pár malých drevených tyčí.
Krok 5: Konečný výsledok by mal vyzerať asi takto:
Krok 6: Spájkovanie
Ak máte obvodovú dosku, môžete začať spájkovať všetky diely dohromady pomocou rovnakého nastavenia, aké má vaša doska na chlieb.
Moja doska plošných spojov má nepretržité medené pásy na jednoduché použitie.
Pre každý senzor som odrezal malý štvorec na spájkovanie odporov a vodičov.
Vysielacie vodiče (vodiče, ktoré idú od kolíka 4 ku každému senzoru) sú postupne spájkované na samostatný štvorec s 1 vodičom, ktorý prechádza do kolíka 4.
Ponechal som si dlhý obdĺžnik, aby som vytvoril improvizovaný LED pásik (zmerajte ho tak, aby sa zmestil dovnútra viečka, ale na okraje základne). Môžete len spájkovať ledky postupne za sebou (pamätajte na to, že na obrázku som omylom spájkoval diódy a odpory na zlej strane dosky plošných spojov, medené pásy by mali byť vždy na spodnej strane).
Keď ste skončili spájkovanie jednotlivých častí dohromady, vložte ich do puzdra. Nepájkoval som jednotlivé vodiče dohromady, aby som ich v prípade potreby mohol ľahko vymeniť.
Čas zmestiť všetko do základne: Toto je do značnej miery najľahší krok, arduino musí byť na prvom mieste s portom USB cez otvor v zadnej časti puzdra. Teraz pridajte senzory a uistite sa, že senzorová fólia prilieha na drevo z oboch strán tak, aby bola mletá fólia priamo proti nej. Keď to všetko dobre zapadne, zapojte LED diódy RGB do pravých kolíkov (9, 10, 11) a nechajte ho oprieť sa o okraje základne.
Krok 7: Hotovo
Ak ste to všetko zvládli, mali by ste mať pracovné svetlo s kapacitným dotykovým miešaním farieb. Bavte sa!
Odporúča:
Interaktívne rádio s rozprávaním príbehov: 6 krokov (s obrázkami)
Interaktívne rádio pre rozprávanie príbehov: V tomto projekte prevádzame úhľadne vyzerajúce rádio do interaktívneho rozprávača príbehov s podporou hlasu. Budúcnosť, sme tu
Interaktívne nočné svetlo SpotLight: 4 kroky
Interaktívne nočné svetlo SpotLight: SpotLight je interaktívne nočné svetlo od spoločnosti Arduino, ktoré má roztomilý tvar založený na mopslíku. Svetlo má tri interaktívne funkcie: 1) Vložte mincu do zadnej časti SpotLight, aby ste zapli a vypli svetlá. 2) Pohladte SpotLight na
Bloomie-Interaktívne kvety: 6 krokov (s obrázkami)
Bloomie-Interaktívne kvety: Niekedy slová nestačia na to, aby ste sa podelili o svoje pocity. Vtedy potrebujete Bloomie! Bloomie je produkt, pomocou ktorého môžu ľudia zdieľať svoje emócie prostredníctvom svetiel. Keď spustíte určitú interakciu, správa sa odošle do Bloom druhej osoby
Interaktívne okolité svetlo: 8 krokov
Interaktívne okolité svetlo: Toto je môj prvý pokyn! Počkajte, prosím, so mnou, kým sa snažím napísať správnu angličtinu. Neváhajte ma opraviť! S týmto projektom som začal tesne po tom, ako sa začala súťaž „Let it glow“. Prial by som si, aby som zarobil oveľa viac a dokončil to, čo som chcel
Interaktívne, otvorené svetlo nálady: 9 krokov (s obrázkami)
Interaktívne svetlo nálady s otvoreným zdrojom: Tento návod vás prevedie interaktívnym, multifunkčným náladovým svetlom. Jadrom tohto projektu je BlinkM I2C RGB LED. Keď som jedného dňa prehliadal web, BlinkM upútal moju pozornosť a ja som si len myslel, že to bolo príliš cool