İçindekiler:

Etkileşimli Karahindiba: 11 Adım (Resimlerle)
Etkileşimli Karahindiba: 11 Adım (Resimlerle)

Video: Etkileşimli Karahindiba: 11 Adım (Resimlerle)

Video: Etkileşimli Karahindiba: 11 Adım (Resimlerle)
Video: Part 1 - Anne of Green Gables Audiobook by Lucy Maud Montgomery (Chs 01-10) 2024, Temmuz
Anonim
Image
Image
NeoPixel Ring'i hazırlayın
NeoPixel Ring'i hazırlayın

Bu proje, bir karahindibanın etkileşimli bir resmini nasıl yapacağınızı gösterir. Yaprakları için LED'leri olan sarı bir çiçek olarak başlar, ardından tohumların dağılmasını sağlamak için üzerine üflenebilen beyaz bir karahindiba saatine dönüşür.

Resmi Jessie Thompson ve Zachory Berta'nın tek bir çiçek tasarımından ilham alan Qi Jie'nin güzel bir sanat eserine dayanmaktadır. Benimkini kumaş üzerine yaptım ve dikişi Arduino ile birleştiren yeni başlayan bir projeye örnek olarak Devon, İngiltere'deki Tech and Textiles maker alanının duvarına gitmek için goblen bir kasnağa çerçeveledim.

Qi Jie tarafından yapılan ışık boyama videosu

Jessie Thompson ve Zachory Berta'nın tek çiçek tasarımı videosu

Her iki mevcut projenin de kodu mevcut ve bunu yapmanın kolay olacağını düşündüm, ancak talimatlar çok azdı ve işe yarayan bir yöntem bulmadan önce birkaç denemem gerekti. İşte hem tasarımlarımın hem de kendi ince ayarlarımın unsurlarını birleştiren bir remiks için tam talimatlar ve zaman kazandıran ipuçları.

Benim için neyin işe yaramadığına dair ayrıntılar, neden bu yolu seçtiğimi merak edenler için sonda.

Qi Jie tarafından ışık boyama için kod

Jessie Thompson ve Zachory Berta tarafından küçük çiçek resmi için kod

Malzemeler

  • Arduino UNO'su
  • Adafruit Halkası 12 Neopiksel
  • 11 RGB LED'li 5V Şerit
  • Ses Mikrofon Sensörü
  • Jumper Telleri
  • USB A bağlantılı 5V Şarj Edilebilir Pil
  • Yazıcı Kablosu (USB A - B kablosu)
  • Tutkal Noktaları veya Sıcak Tutkal
  • A4 Kartı
  • 30cm x 30cm Krem Pamuklu Kumaş, örneğin eski bir yastık kılıfı
  • Yeşil Kumaş Boyası
  • Kahverengi Pamuk İpliği
  • 70cm x 50cm Oluklu Mukavva, pizza kutuları gibi
  • Maskeleme bandı
  • Resmi çerçevelemek için 9 inç Nakış Kasnağı
  • 9 Kendinden Yapışkanlı Velcro Sekme

Aletler

  • Arduino IDE'li bir bilgisayar indirildi
  • Havya ve Kurşunsuz Lehim
  • Test devresi için breadboard
  • Tel Sıyırıcı/Kesiciler
  • Dikiş iğnesi
  • Dolma kalem
  • Makas

Adım 1: NeoPixel Ring'i hazırlayın

NeoPixel halkasının arkasındaki güç, toprak ve veri pedlerinin her birine farklı renkte teller lehimleyin.

Yüzüğün farklı bir versiyonuna sahipseniz, telleriniz benim fotoğrafımla aynı pozisyonda olmayabilir.

Hangi kabloların giriş ve çıkışın yanı sıra pozitif, veri ve toprak için olduğunu not edin çünkü bunlar için işaretler halkanın alt tarafındadır ve halka yerindeyken görünmez.

Adım 2: LED Şeritlerini Kesin

LED Şeritlerini Kesin
LED Şeritlerini Kesin
LED Şeritlerini Kesin
LED Şeritlerini Kesin

Kesimin her iki tarafında lehim pedleri bırakmak için orta çizgi boyunca kesmeye özen göstererek bir RGB LED şeridinden 11 ayrı LED kesin. Her pedin üst tarafına bir parça lehim sürün.

Adım 3: LED'leri lehimleyin

LED'leri lehimleyin
LED'leri lehimleyin
LED'leri lehimleyin
LED'leri lehimleyin
LED'leri lehimleyin
LED'leri lehimleyin

Mikrofonu takmak için kartın ortasında bir delik açın. Yapışkan noktaları kullanarak neo piksel halkasını ve tek tek LED'leri gösterildiği gibi konumlarına yapıştırın, birbirine zincirleme bağlandığında LED'ler üzerindeki tüm okların aynı şekilde hizalanacağından emin olun.

Pozitif, toprak ve veri kablolarını her iki LED'deki aynı pedlerle eşleştirerek, halkadan çıkış kablolarını ilk bireysel LED'e lehimleyin.

LED'leri bir araya getirmenin en hızlı ve en kolay yolu, bir atlama telini ayrı bakır şeritlere sıyırmak. LED'lerdeki lehimli pedlerin her birini bir sonrakine bağlamak için pozitif, veri ve toprakla eşleşen bir tel takın. Pedler önceki adımda önceden lehimlendiğinden, sıcak bir havyaya hızlı bir dokunuş yeterlidir. Bu aşamada kabloları kesmek yerine, diğer taraftaki lehimli pedlere ulaşmak için onları LED'in üstünden geçirin. Hiçbir kablonun birbirine geçmediğinden veya birbirine değmediğinden emin olun, bu pedlere lehimleyin ve son LED'in giriş tarafına doğru devam edin.

Son LED'in çıkış tarafına bir kablo bağlamayın. Aşina olabileceğiniz bazı LED'lerin aksine, tüm yol boyunca ayrı toprak ve pozitif hatlar bağladığınız için gücü tekrar toprağa alan yuvarlak bir devre tamamlamanız gerekmez. LED'lerin üstünden geçen tüm kabloları kesin, böylece yalnızca aralarında bağlantı olan kablolarınız olur.

İpucu: Köşeleri dönerken tellerin birbirine temas etmesini önlemek için, her birini daha önce çıkarılmış küçük bir plastik yalıtım şeridine geri geçirin.

Adım 4: Sırtın Hazırlanması

Sırtın Hazırlanması
Sırtın Hazırlanması
Sırtın Hazırlanması
Sırtın Hazırlanması

Giriş kabloları için beyaz kartta başka bir delik açın ve içinden itin.

Goblen kasnağının iki halkasını ayırın. 5 adet oluklu mukavva üzerine en küçük halkanın dışını çizin ve kesin. Halkalar yapmak için 3 dairenin ortasında kenardan yaklaşık 2 cm içeride delikler açın ve her birinde 5 mm'lik bir yarık kesin. Halkaları üst üste yapıştırın, yarıkları sıralayın ve bunu kalan kart dairelerinden birine yapıştırın.

Adım 5: Mikrofonu ve Arduino'yu Kablolama

Mikrofonu ve Arduino'yu Kablolama
Mikrofonu ve Arduino'yu Kablolama
Mikrofonu ve Arduino'yu Kablolama
Mikrofonu ve Arduino'yu Kablolama

Arduino'nuzu gösterildiği gibi mikrofon sensörüne ve LED halkasına bağlayın. Mikrofon resmi olmayan devre şemasını oluşturmak için TinkerCad kullandım, bu yüzden simülasyonda aynı pinleri kullanan ve aynı şekilde çalışan başka bir sensör kullandım.

Simülasyonu görüntülemek için https://www.tinkercad.com/things/5cgI2wluA0c adresine gidin. Mikrofona üflemeyi simüle etmek için sensöre bağlı daireyi aktif alana sürükleyin. LED'ler 6'da şeritler halindedir, bu nedenle simülasyondaki son LED tasarımın bir parçası değildir ve yanmaz.

Adım 6: Arduino'yu Programlama

Arduino'yu Programlamak
Arduino'yu Programlamak

Bilgisayarınızda Arduino IDE'yi açın ve yeni bir Eskiz başlatın Çizimin içindeki her şeyi silin ve bunun yerine bu kodu kopyalayıp yapıştırın

// NeoPixel Ring basit taslağı (c) 2013 Shae Erisson//ve https://www.hackster.io/ingo-lohs/first-test-37-s… #include // adresindeki sensör kodu kullanılarak uyarlanmıştır. Arduino NeoPixels'e bağlı mı? #define PIN 6 // Arduino'ya kaç NeoPiksel bağlı? #define NUMPIXELS 23 // NeoPixel kütüphanesini kurarken kaç piksel ve sinyal göndermek için hangi pini kullanacağını söyleriz. // Daha eski NeoPixel şeritleri için üçüncü parametreyi değiştirmeniz gerekebileceğini unutmayın -- olası değerler hakkında daha fazla bilgi için en büküm // örneğine bakın. Adafruit_NeoPixel piksel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int gecikme değeri = 500; // yarım saniye gecikmesi int sensorPin = A0; // sensör için giriş pinini seçin int sensorValue = 0; // sensörden gelen değeri saklayacak değişken const int eşik = 200; // analog giriş void setup() aralığında rastgele bir eşik seviyesi { piksel.begin(); // Bu, NeoPixel kitaplığını başlatır. piksel.setBrightness(20); // Parlaklığı ayarla Serial.begin(9600); } void loop() { // Bir NeoPiksel kümesi için ilk NeoPixel 0, ikincisi 1, piksel sayısı eksi bire kadar. // Karahindiba LED'leri // piksel. Renk, 0, 0, 0'dan 255, 255, 255 piksele kadar RGB değerleri alır.setPixelColor(0, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(1, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(2, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(3, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(4, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(5, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(6, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(7, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(8, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(9, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(10, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(11, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(12, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(13, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(14, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(16, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(17, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(18, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(19, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(20, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(21, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(22, piksel. Renk(0, 0, 0)); // Kapalı. piksel.göster(); // Bu, güncellenen piksel rengini donanıma gönderir. delay(delayval*6);//Çiçekten tohum kafasına kademeli değişim // piksel. Renk, 0, 0, 0'dan 255, 255, 255 piksele kadar RGB değerleri alır.setPixelColor(0, piksel. Color(0,), 0, 0)); // Kapalı. piksel.setPixelColor(1, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(2, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(3, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(4, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(5, piksel. Renk(226, 246, 255); // mavimsi beyaz piksel.setPixelColor(6, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(7, piksel. Renk(226, 246, 255); // mavimsi beyaz piksel.setPixelColor(8, piksel. Color(255, 165, 0)); // Turuncu. piksel.setPixelColor(9, piksel. Renk(226, 246, 255); // mavimsi beyaz piksel.setPixelColor(10, piksel. Color(255, 165, 0)); // Turuncu. piksel.setPixelColor(11, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(12, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(13, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(14, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(16, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(17, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(18, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(19, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(20, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(21, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(22, piksel. Renk(0, 0, 0)); // Kapalı. piksel.göster(); // Bu, güncellenen piksel rengini donanıma gönderir. gecikme(gecikme*6); // Tohum kafa LED'leri piksel.setPixelColor(0, piksel. Color(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(1, piksel. Color(0, 0, 0)); //kapalı piksel.setPixelColor(2, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(3, piksel. Renk(0, 0, 0)); //kapalı piksel.setPixelColor(4, piksel. Color(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(5, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(6, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(7, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(8, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(9, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(10, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(11, piksel. Renk(226, 246, 255); //kapalı pikseller.setPixelColor(12, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(13, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(14, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(16, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(17, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(18, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(19, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(20, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(21, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(22, piksel. Renk(0, 0, 0)); // Kapalı. piksel.göster(); // Bu, güncellenen piksel rengini donanıma gönderir. gecikme(gecikme*3); // Belirli bir süre için gecikme (milisaniye olarak). piksel.setPixelColor(0, piksel. Color(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(1, piksel. Color(0, 0, 0)); //kapalı piksel.setPixelColor(2, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(3, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(4, piksel. Color(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(5, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(6, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(7, piksel. Renk(255, 165, 0)); // Turuncu. piksel.setPixelColor(8, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(9, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(10, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(11, piksel. Renk(226, 246, 255); //Mavimsi beyaz. piksel.setPixelColor(12, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(13, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(14, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(16, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(17, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(18, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(19, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(20, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(21, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(22, piksel. Renk(0, 0, 0)); // Kapalı. piksel.göster(); // Bu, güncellenen piksel rengini donanıma gönderir. gecikme(gecikme*3); // Belirli bir süre için gecikme (milisaniye olarak). piksel.setPixelColor(0, piksel. Color(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(1, piksel. Color(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(2, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(3, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(4, piksel. Color(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(5, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(6, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(7, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(8, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(9, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(10, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(11, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(12, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(13, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(14, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(16, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(17, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(18, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(19, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(20, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(21, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(22, piksel. Renk(0, 0, 0)); // Kapalı. piksel.göster(); // Bu, güncellenen piksel rengini donanıma gönderir. gecikme (gecikme); // Belirli bir süre için gecikme (milisaniye olarak). // Sensör değerini okuyun ve seri monitörde görüntüleyin sensorValue = analogRead(sensorPin); Serial.println(sensorValue); gecikme(250); // Sensör değeri eşikten küçük iken sensör değerini kontrol edin ve seri monitörde yazdırın. Değer eşiğin üzerinde olduğunda, çizim devam edebilir while (sensorValue <eşik) { sensorValue = analogRead(sensorPin); Serial.println(sensorValue); gecikme(250); } // İlk rüzgar LED'leri piksel.setPixelColor(0, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(1, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(2, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(3, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(4, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(5, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(6, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(7, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(8, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(9, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(10, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(11, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(12, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(13, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(14, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(15, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(16, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(17, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(18, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(19, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(20, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(21, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(22, piksel. Renk(0, 0, 0)); // Kapalı. piksel.göster(); // Bu, güncellenen piksel rengini donanıma gönderir. gecikme (gecikme); // Belirli bir süre için gecikme (milisaniye olarak). // İkinci rüzgar LED'leri piksel.setPixelColor(0, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(1, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(2, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(3, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(4, piksel. Color(0, 0, 0)); // Kapalı. piksel.setPixelColor(5, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(6, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(7, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(8, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(9, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(10, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(11, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(12, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(13, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(14, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(15, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(16, piksel. Renk(0, 0, 0)); // Kapalı. piksel.setPixelColor(17, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(18, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(19, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(20, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(21, piksel. Renk(226, 246, 255); // Mavimsi beyaz. piksel.setPixelColor(22, piksel. Renk(226, 246, 255); // Mavimsi beyaz.piksel.göster(); // Bu, güncellenen piksel rengini donanıma gönderir. gecikme(2000); // Belirli bir süre için gecikme (milisaniye olarak). }

Arduino'nuzu USB yazıcı kablosuyla bilgisayara bağlayın

Araçlar > Pano'ya gidin ve Arduino/Genuino UNO kartını seçin

Bağlantı Noktasına gidin ve kartın doğru USB bağlantı noktasına bağlı olduğundan emin olun. Emin değilseniz Arduino'nun fişini çekebilir ve listeden hangi bağlantı noktasının kaybolduğunu görebilirsiniz. Tekrar takın ve bağlantı noktası tekrar listelenecektir.

Açıklamalı fotoğrafta gösterilen Yükle simgesine tıklayarak taslağı yükleyin. Arduino yüklenirken ışıklar yanıp sönmelidir. Yüklemeyi bitirdiğinde, neo piksel halkasındaki LED'lerin yarısı sarı renkte yanacak ve ardından tam bir beyaz ışık halkasına dönüşecektir. Devreyi test etmek için mikrofona üfleyin. Dış katmanlardaki LED'ler sırayla yanmalıdır. Çalışmayan tüm LED'lerde lehimi kontrol edin.

7. Adım: Renkleri, Parlaklığı ve Sensör Eşiğini Değiştirme

Renkleri, Parlaklığı ve Sensör Eşiğini Değiştirme
Renkleri, Parlaklığı ve Sensör Eşiğini Değiştirme
Renkleri, Parlaklığı ve Sensör Eşiğini Değiştirme
Renkleri, Parlaklığı ve Sensör Eşiğini Değiştirme

Renkler

LED'lerin renkleri RGB (Kırmızı Yeşil Mavi) renk değerleri kullanılarak ayarlanır. Benim kullandığımdan farklı renkler kullanmayı tercih ederseniz, www.w3schools.com/colors/colors_rgb.asp gibi çevrimiçi bir RGB renk hesaplayıcı kullanarak istediğiniz renklerin değerlerini bulabilirsiniz.

Bir LED'i kapatmak için 0, 0, 0 değerlerini kullanın.

LED'i beyaza ayarlamak için 255, 255, 255 değerlerini kullanın. Önceki adımdaki kod, 226, 246, 255 değerleriyle mavimsi bir beyaz ve 255, 165, 0 değerleriyle bir turuncu kullanır.

Parlaklık

LED'lerin parlaklığını değiştirmek için kodun geçersiz kurulum bölümüne gidin ve aşağıdaki kod satırını bulun:

piksel.setBrightness(20); // Parlaklığı ayarla

LED'lerin parlaklığını değiştirmek için parantez içindeki sayıyı düzenleyin.

Sensör Eşiği

Programı çalıştırdığınızda, NeoPixel halkasının yarısı bir çiçeği temsil etmek için sarı renkte başlar ve tohum başını temsil etmek için kademeli olarak tam bir beyaz LED çemberine dönüşür. Bu noktada program, siz mikrofon sensörüne üfleyene kadar duraklatılmalıdır. Program devam ediyor ve sensörden aktivasyon olmadan LED'lerin dış katmanlarını aydınlatıyorsa, kodun geçersiz kurulum bölümüne gidin ve aşağıda gösterilen değeri azaltın. Sensöre üflediğinizde program duraklıyor ancak yanıt vermiyorsa değeri artırın.

const int eşik = 200;

Adım 8: Devreyi Daha Kalıcı Hale Getirmek

Devreyi Daha Kalıcı Hale Getirmek
Devreyi Daha Kalıcı Hale Getirmek

Devre çalıştığında, Arduino'yu bilgisayardan çıkarın ve mikrofon sensörünü devre tahtasından çıkarın. Aynı devreyi daha kalıcı hale getirmek için Arduino'dan mikrofon sensörüne lehim telleri. Mikrofonu karttaki delikten arkadan itin. Gerekirse, kartın kartın arkasında düz durabilmesi için mikrofonu dikkatlice 90 derece bükün. Pili, yazıcı kablosunu kullanarak Arduino'ya takın ve tüm dizi çalışmalıdır.

9. Adım: Bir Resim Oluşturun

Resim Oluştur
Resim Oluştur

Mikrofonu istediğiniz yerde kumaşınızda bir delik açın. Küçük bir delik açmak için sıcak bir havya kullandım ve mikrofon geçene kadar makasla kestim. Çiçeğinizi kumaşa boyayın ve dikin. Boya kuruduğunda, resmi nakış kasnağına takın ve fazla kumaşı küçük bir kenarlık bırakarak kesin.

Devre bileşenlerinden herhangi birinin kumaştan görünüp görünmediğini görmek için, kumaşı ve kasnağı geçici olarak mikrofon delikten gösterecek şekilde kartın üzerine yerleştirin. Gerekirse, bileşenler artık görünmeyene kadar devreyi ara sıra kontrol ederek maskeleme bandı katmanlarıyla kaplayın. LED'ler, bir maskeleme bandı katmanından görülebilecek kadar parlaktır. Daha fazla katman eklemeniz gerekiyorsa, kodunuzu Adım 7'de gösterildiği gibi ayarlayarak LED'leri daha parlak hale getirebilirsiniz.

Kumaşı ve kasnağı daha önce olduğu gibi kartın üzerine yerleştirin ve fazla kumaşı kartın arkasına yapıştırarak yerine sabitleyin.

Adım 10: Bir araya getirmek

Bir araya getirmek
Bir araya getirmek

Beyaz kartı, mikrofonu çevreleyen oluklu mukavva daireye yapıştırın, ancak kablolar yarıklardan geçerken kartonun kenarından geçmesi gereken Arduino ve pil takımını değil.

Pile erişebilmeniz için son karton daireyi Velcro ile tutturun. Duvardaki bir kancaya asmak istediğiniz kartonda bir delik açın.

Adım 11: Hatalardan Öğrenmek

Hatalardan Öğrenmek
Hatalardan Öğrenmek
Hatalardan Öğrenmek
Hatalardan Öğrenmek
Hatalardan Öğrenmek
Hatalardan Öğrenmek

İlk denemem devre çıkartmaları ve bakır bant ile oldu. Devre çıkartmaları, bakır pedli çıkartmalar üzerine yüzeye monte edilmiş küçük LED'lerdir. Qi Jie'nin şirketi Chibitroniks'ten geliyorlar ve mükemmel olacaklarını düşündüm.

Bakır bant veya gümüş bant kullanarak güvenilir bir bağlantı elde edemedim ve çıkartmalara tel lehimlediğimde, 9V pil kullanarak sadece bir dizi 3 LED çıkartması alabiliyordum. Umduğum gibi çok ışıklı projeler için tasarlanmadıkları ortaya çıktı. Devre etiketleri ile ilgili bir web sayfasına daha yakından baktığımda, 4 ışıklı bir projenin farklı bir LED türü olduğu ortaya çıktı. Devre etiketlerine 12V pil ile güç verebilirdim ama resmin içine sığmayacak kadar hantal olurdu.

Sonra dikilebilir LED'leri denedim. Güç, toprak ve veri hatlarına sahip programlanabilir LED'lerden yalnızca güç ve toprağa sahip olmanın kablolamanın daha kolay olacağını düşündüm. Ancak, sahip olmadığım ekstra bir güç kaynağına ve bir MOSFET'e ihtiyaç duyan daha karmaşık bir devre olduğu ortaya çıktı. Dikilebilir NeoPikseller kullanabilirdim ama daha pahalılar.

Birkaç yanlış başlangıçtan sonra, ucuz ve kullanımı kolay bir dizi programlanabilir LED ile bitirdim.

Önerilen: