İçindekiler:
- Adım 1: Neye İhtiyacımız Var?
- Adım 2: Prototipleme:
- Adım 3: Kod:
- Adım 4: Şimdi Vaka için:
- Adım 5: Son Sonuç Şuna Benzer Görünmelidir:
- Adım 6: Lehimleme
- Adım 7: Bitirdik
Video: Etkileşimli Temassız Işık: 7 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Herkese selam! Üzerinde çalıştığım projeyi burada paylaşmak istiyorum. Üniversitemde bir proje aracılığıyla kapasitif dokunmatik algılamayı denemek için ilham aldım. Bu teknolojiyi talimatlar aracılığıyla öğrendim ve burada ve internetteki diğer yerlerden öğrendiğim şeyleri, ilginç ışık renkleri oluşturmak için farklı RGB değerlerini karıştırmak için kullandığım kendi dokunmasız denetleyicimi oluşturmak için kullandım.
Yeni başlayanlar için, bu projeye başladığımda ne elektronik ne de kapasitif dokunmatik algılama hakkında neredeyse hiçbir şey bilmiyordum.
Erken karşılaştığım bazı sorunlar, gerçekte ne olduğunu yanlış anlamamdan kaynaklanıyordu. Yani nasıl anladığımdan kısa bir giriş:
Kapasitif bir sensör, temel olarak aşağıdakiler olmak üzere birden fazla bileşen kullanır:
Bir kondansatör (bu projede alüminyum folyo kullanıyoruz, ancak iletken sıvılar vb. kullanmak da mümkündür), teller (elbette elektroniği)
ve bir direnç, 10 MOhm'nin altındaki herhangi bir şey, doğrudan dokunmadan daha fazlası için çok küçük bir dirençtir.
Çalışma şekli, A noktası ile B noktası arasındaki zaman farkını ölçmektir. Başlangıç piminden bir bitiş pimine bir sinyal gönderir, geçen süre bir zamanlayıcı ile ölçülür. Direnç değerini azaltarak (bir kondansatörü (bu durumda elinizi) sensörün kondansatörüne (alüminyum folyo) yaklaştırarak bu süre kısalır, zaman farkı sensörün değer olarak geri verdiği şeydir.
Sensörün kapasitif yüzeylerden etkilenmesi nedeniyle, parazit nedeniyle veriler çılgınca düzensiz olabilir. Bu, büyük ölçüde kapasitörün doğru şekilde yalıtılmasıyla ve ayrıca bir topraklama kullanılarak çözülebilir (nasıl olduğunu daha sonra göstereceğim).
Artık bu, ihtiyacımız olan her şeyi envanterlemeye başlayabiliriz:
Adım 1: Neye İhtiyacımız Var?
Elektronik:
1. 2 x 22M Ohm + dirençler (direnç değeri ne kadar büyük olursa, sensörünüz o kadar uzak tepki verir, şahsen 22M Ohm kullandım, kullanılabilir veri elde etmek için minimum 10M Ohm yaşadım)
2. 3x 330 Ohm dirençler
3. Teller
4. Breadboard
5. Devre kartı (benimkinde sürekli bakır şeritler vardı)
6. Çoklu ortak Katot RGB Ledleri (8 kullandım, ancak ne kadar ışık istediğinize bağlı olarak daha fazla veya daha az olabilir)
7. Alüminyum folyo
8. Sarılmak
9. Arduino Uno
10. Bant
Dosya:
1. Ahşap 50 x 50 x 1.8 CM MDF kullandım(gerçekten her şeyi kullanabilirsiniz. İstediğiniz efekte ve elinizdeki araçlara bağlıdır)
2. Akrilik pleksiglas 50 x 50 x 0,3 CM kullandım (veya pirinç kağıdı gibi herhangi bir şeffaf/yarı saydam malzeme)
3. Zımpara kağıdı (ince zımpara kağıdı)
4. Ahşap tutkalı
5. kaplama (isteğe bağlı)
6. Akrilik yapıştırıcı
Aletler:
tel striptizci
Havya + kalay
Stanley bıçağı
delmek
Testere (masa testeresi kullandım)
Adım 2: Prototipleme:
Artık her şeye sahibiz ve nasıl çalıştığını görmek için bir prototip yapmaya başlayabiliriz:
Hazırlık çalışması:
Alüminyum folyodan 4 dikdörtgen kesin (Benimkiler yaklaşık 10 cm x 5 cm), bunları doğrudan temastan korumak için streç filme sarın ve alüminyum folyoya bir tel yapıştırın. Folyoya soyulmuş bir ucunu bantladım (temas halinde kaldıkları sürece).
Alüminyumun güvenli bir şekilde yalıtıldığından emin olmak için streç filme sardım ve kağıtlar arasında ütüledim (tamamen erimemesi için sadece birkaç saniye).
Daha sonra devreyi resimdeki gibi kurunuz.
Pin 4 her iki sensör için de gönderme pini olarak kullanılırken, alma pinleri pin 2 ve 5'tir. Birden fazla gönderme pini kullanabilirsiniz ancak tam olarak senkronize olmadıkları için sorun yaratır.
Her şeyin gerçekten amaçlandığı gibi çalıştığından emin olmak için her şeyi birbirine lehimlemeden önce bu kurulumu hata ayıklama amacıyla kullanın.
Adım 3: Kod:
Artık her şeye sahibiz ve sensörlerde hata ayıklamaya başlayabiliriz.
Kodumu kullanmak için Arduino'dan kapasitif algılama kütüphanesini indirmeli ve referans sayfasında verilen talimatlara göre kurmalısınız: Beni tıkla
Kod: (Kodlama konusunda pek iyi değilim, bu yüzden nasıl daha iyi yapılacağını biliyorsanız lütfen yapın)
#include //kod kitaplığını içe aktar
KapasitifSensör cs_4_2 = KapasitifSensör(4, 2); //Gönder pin = 4, alma 2 ve 5 KapasitifSensör cs_4_5 = KapasitifSensör(4, 5); const int redPin = 11; const int yeşilPin = 10; const int bluePin = 9; const int numIndexR = 10; // dizi boyutu const int numIndexG = 10; int renkR = 0; int renkG = 0; kayan renkB = 0; int indeksR [numIndexR]; int posIndexR = 0; uzun toplamR = 0; //uzun olması gerekiyor çünkü dizimin toplamı bir tamsayı için büyüktü. int ortalamaR = 0; int indeksG [numIndexG]; int posIndexG = 0; uzun toplamG = 0; int ortalamaG = 0; void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, ÇIKIŞ); for (int thisIndexR = 0; thisIndexR < numIndexR; thisIndexR++) { //diziyi 0'a ayarlar indexR [thisIndexR] = 0; } for (int thisIndexG = 0; thisIndexG = 4500){ //sensör değerlerini kullanılabilir bir maksimum ile sınırlandırın, bu her direnç değeri için aynı değildir ve ayrıca ortamdan ortama biraz farklılık gösterebilir, bunu ayarlamak için ayarlamanız gerekebilir kendi ihtiyaçların. toplam1 = 4500; } if (toplam2 >= 4500){ toplam2 = 4500; } toplamR = toplamR - indeksR[posIndexR]; //bu, sürekli olarak bir sensör çıktısı ekleyen ve ortalamayı üreten bir dizi oluşturur. indexR[posIndexR] = toplam1; toplamR = toplamR + indeksR[posIndexR]; posIndexR = posIndexR + 1; if (posIndexR >= numIndexR){ posIndexR = 0; } ortalamaR = toplamR / numIndexR; //çıktıyı yumuşatmak için ham veri yerine ortalamayı kullanıyoruz, süreci biraz yavaşlatıyor ama aynı zamanda gerçekten güzel ve düzgün bir akış yaratıyor. toplamG = toplamG - indeksG[posIndexG]; indexG[posIndexG] = toplam2; toplamG = toplamG + indeksG[posIndexG]; posIndexG = posIndexG + 1; if (posIndexG >= numIndexG){ posIndexG = 0; } ortalamaG = toplamG / numIndexG; if (averageR >= 2000){ // elinizden bir girdi olmadıkça ledlerin sürekli olarak değer değiştirmesini istemiyoruz, bu da tüm düşük çevresel okumaların dikkate alınmamasını sağlar. colorR = harita(ortalamaR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } else if (averageR = 1000){ colorG = map(averageG, 1000, 4500, 255, 0); analogWrite (greenPin, colorG); } else if (ortalamaG <= 1000){ colorG = 255; analogWrite (greenPin, colorG); } if (colorR <= 125 && colorG <= 125){ //B biraz farklı çalışıyor çünkü sadece 2 sensör kullandım, bu yüzden B'yi her iki sensörde de eşledim colorB = map(colorR, 255, 125, 0, 127.5) + map (renkG, 255, 125, 0, 127.5); analogWrite (bluePin, colorB); } başka{ colorB = map(colorR, 255, 125, 127.5, 0) + map(colorG, 255, 125, 127.5, 0); if (colorB>= 255){ colorB = 255; } if (renkB <= 0){ renkB = 0; } analogWrite (bluePin, colorB); } Serial.print(millis() - başlat); //bu hata ayıklama amaçlıdır Serial.print("\t"); Seri.baskı(renkR); Seri.print("\t"); Seri.baskı(renkG); Seri.print("\t"); Seri.println(renkB); gecikme(1); }
Bu kodun yaptığı şey, sensörden ham veriyi çıkarmaktır (bu veri, sensörü etkileyen tüm farklı faktörler nedeniyle her zaman biraz düzensiz olacaktır) ve dizi maksimum değere ulaştığında ham verileri sürekli olarak bir diziye koyar (benim durumumda 10) son değeri temizler ve yeni bir tane ekler. Her değer eklendiğinde, ortalama değeri hesaplar ve yeni bir değişkene koyar. Bu ortalama değişken, 0 ile 255 arasında bir değere bir değer eşlemek için kullanılır, bu, her kanalın parlaklığını artırmak için RGB pinlerine yazdığımız değerdir (kanallar R G ve B'dir).
Şimdi kodunuzu arduinoya yüklerseniz ve seri monitörü açarsanız, elinizi her sensörün üzerine getirdiğinizde RGB değerlerinin düştüğünü görmelisiniz, ayrıca ledin ışık rengi de değişmelidir.
Adım 4: Şimdi Vaka için:
Vaka: Vakayı üniversitemde bulunan araçları kullanarak hazırladım, dolayısıyla bu iş akışı herkes için geçerli değil. Bununla birlikte, çok özel bir yanı yok, USB bağlantı noktasının geçmesi için bir tarafında bir deliğe ihtiyacı var, bunun dışında sadece üstü açık bir kutu.
Boyutlar aşağıdaki gibidir:
Şeffaf üst kısım için 15 x 15 CM
ve
Ahşap taban için 15 x 8 CM (ahşabın kalınlığı benim için 1.8 CM idi).
Bir masa testeresi kullanarak bir MDF plakasını ihtiyacım olan doğru boyutlara (ki bu 4 panel 15 x 8 CM ve 1 15 x 15 CM zemin paneli) kesmek için kullandım ve ardından köşeleri 45 derecelik bir açıyla kestim. Tüm parçaları ahşap tutkalı ve kelepçelerle birbirine yapıştırdım (en az 30 dakika kurumasını bekleyin), Pleksiglas için de aynı işlemi uyguladım ama özel testere ile.
Arduino'nun fişe takılabilmesi için ahşap kenarlardan 1 tanesinin ortasında arduino USB fişinin yüksekliğinde bir delik olmalıdır.
Tabanı kaplama ile bitirdim. Her iki tarafın yüzeyinden biraz daha büyük parçalar halinde kestim.
Bunu üzerine yapıştırdım, sonra her iki taraf için 30 dakika sıkıştırdım (tek tek yapmak daha iyi, böylece kaymadığından emin olun ve kuruduktan sonra dışarı çıkanları kestim.
Acryfix adlı Acryl'e özel bir yapıştırıcı kullanarak yapıştırdığım kapak.
Akrilik pleksiglas kullanırsanız, yapıştırıcının pleksiglası biraz çözdüğünü unutmayın, bu nedenle mümkün olduğunca hassas ve hızlı olun (birkaç dakika içinde kurur, ancak saniyeler içinde havaya maruz kalır).
Kapağı bitirmek için küpü bir kumlama makinesiyle buzladım, ancak ince zımpara kağıdı da kullanabilirsiniz, düzgün görünmesi çok daha fazla zaman alır. Yine de zımpara kullanacaksanız, ince taneli olması ve buzlanma işleminden sonra parçaları birbirine yapıştırmanız gerektiğini unutmayın (Böylece fazla baskı uygulayarak kazara kırılmazsınız)
Kapağın fazla kaymaması için tahta küpün kenarlarına birkaç küçük tahta çubuk yapıştırdım.
Adım 5: Son Sonuç Şuna Benzer Görünmelidir:
Adım 6: Lehimleme
Bir devre kartınız varsa, devre tahtanızın sahip olduğu aynı kurulumu kullanarak tüm parçaları birlikte lehimlemeye başlayabilirsiniz.
Devre kartımda kullanım kolaylığı için sürekli bakır şeritler var.
Her sensör için dirençleri ve kabloları lehimlemek için küçük bir kare kestim.
Gönderme telleri (pim 4'ten her sensöre giden teller), pin 4'e giden 1 tel ile ayrı bir kareye sırayla lehimlenir.
Doğaçlama bir led şerit yapmak için uzun bir dikdörtgen tuttum (kapağın içine ancak tabanın kenarlarına sığacak şekilde ölçün). Ledleri sırasıyla sırayla lehimleyebilirsiniz (resimde unutmayın ki ledleri ve dirençleri yanlışlıkla devre kartının yanlış tarafında lehimledim, bakır şeritler her zaman alt tarafta olmalıdır).
Tek tek parçaları birbirine lehimlemeyi bitirdiğinizde, bunları kasaya yerleştirin. Tek tek kablolarımı birlikte lehimlemedim, böylece gerektiğinde kolayca değiştirebilirim.
Her şeyi tabana yerleştirme zamanı: Bu hemen hemen en kolay adımdır, arduino'nun ilk önce kasanın arkasındaki delikten USB bağlantı noktasıyla yerleştirilmesi gerekir. Şimdi sensörleri ekleyin, sensör folyosunun zemin folyosu düz olacak şekilde ahşaba her iki taraftan da oturduğundan emin olun. Her şey yerine oturduğunda RGB ledlerini sağdaki pinlere (9, 10, 11) takın ve tabanın kenarlarına yaslanmasını sağlayın.
Adım 7: Bitirdik
Bunların hepsini yaptıysanız, artık kapasitif dokunmatik renk karışımına sahip bir çalışma ışığınız olmalıdır. İyi eğlenceler!
Önerilen:
Arduino veya Mikrodenetleyici Olmadan DIY Temassız El Dezenfektanı Dispenseri: 17 Adım (Resimlerle)
Arduino veya Mikrodenetleyici Olmadan DIY Temassız El Dezenfektanı Dispenseri: Hepimizin bildiği gibi, COVID-19 salgını dünyayı vurdu ve yaşam tarzımızı değiştirdi. Bu durumda Alkol ve el dezenfektanları hayati sıvılardır ancak doğru kullanılmaları gerekir. Enfekte ellerle alkol kaplarına veya el dezenfektanlarına dokunmak c
Temassız IR Termometre: 8 Adım (Resimlerle)
Temassız IR Termometre: Yerel Sağlık Departmanım benimle iletişime geçti çünkü 2020 Covid-19 krizi sırasında çalışanlarının vücut ısısını günlük olarak takip etmenin bir yoluna ihtiyaçları vardı. Normal, kullanıma hazır IR termometreler kıt olmaya başlamıştı
Akıllı Telefonu Temassız Termometre / Taşınabilir Termometre Olarak Kullanın: 8 Adım (Resimlerle)
Akıllı Telefonu Temassız Termometre / Taşınabilir Termometre Olarak Kullanın: Vücut ısısını termo tabanca gibi temassız / temassız olarak ölçme. Bu projeyi oluşturdum çünkü Thermo Gun artık çok pahalı, bu yüzden DIY yapmak için alternatif bulmalıyım. Ve amaç düşük bütçeli versiyon ile yapmaktır.SuppliesMLX90614Ardu
Müzikle Tepkisel Işık--Masaüstünü Harika Hale Getirmek için Süper Basit Müzik Tepkisel Işık Nasıl Yapılır.: 5 Adım (Resimlerle)
Müzik Reaktif Işık||Masaüstünü Harika Hale Getirmek için Süper Basit Müzik Reaktif Işığı Nasıl Yapılır.: Hey naber arkadaşlar, Bugün çok ilginç bir proje inşa edeceğiz.Bugün müzikle reaktif ışık oluşturacağız. aslında düşük frekanslı ses sinyali olan bas. Yapımı çok basit. Biz
20$/20dk Ticari Kaliteli Katlanır Işık Kutusu / Işık Çadırı: 7 Adım (Resimlerle)
20$/20dk Ticari Kalitede Katlanır Işık Kutusu / Işık Çadırı: Ürün veya yakın çekim fotoğraflar için bir DIY ışık kutusu arıyorsanız, çok sayıda seçeneğiniz olduğunu zaten biliyorsunuzdur. Karton kutulardan çamaşır sepetlerine kadar, projenin ölümüne yapıldığını düşünüyor olabilirsiniz. Fakat bekle! 20 dolar için