İçindekiler:

Arduino Light Up Triko: 9 Adım
Arduino Light Up Triko: 9 Adım

Video: Arduino Light Up Triko: 9 Adım

Video: Arduino Light Up Triko: 9 Adım
Video: ПРАВИЛЬНЫЙ ВЫБОР (АНИМАЦИЯ) 2024, Temmuz
Anonim
Image
Image

Çirkin kazak partileri tatillerin olmazsa olmazıdır. Her yıl kendini geliştirmen ve bulabileceğin en iyi süveteri giymen gerekiyor. Ama bu yıl daha iyisini yapabilir ve en iyi süveteri yapabilirsiniz. Arkadaşlarınızı ve ailenizi kesinlikle etkileyecek güzel bir ışıklı kazak yaratmak için Adafruit Giyilebilir Ürünleri kullanıyoruz.

Adafruit, Giyilebilirler etrafında bazı harika projeler yarattı, bu yüzden bu projeyi Sparkle Skirt projesinden uygulamak için değiştirilmiş kodlarını kullanıyoruz.

Bu eğitimde şunları yapacaksınız:

  • Giyilebilir Cihazları kullanmayı öğrenin
  • Arduino kullanarak aydınlatmak için Flora ana kartınızı, ivmeölçerinizi ve NeoPiksellerinizi kodlayın

1. Adım: Başlarken

Başlarken
Başlarken

Adafruit Flora Giyilebilir Ürünler, pil takımı, iletken iplik ve tatil kazağı kullanacağız. Ayrıca normal ipliğe, iğnelere ve ojeye de ihtiyacınız olacak. Her şey zamanla anlam kazanacak. Bizim versiyonumuz Noel Baba'nın gözlerini aydınlatacak ama tüm dinleri, bayramları ve inançları destekliyoruz, bu yüzden yaratıcı olun!

  • Adafruit Flora Ana Kart (https://www.adafruit.com/product/659)
  • Flora İvmeölçer (https://www.adafruit.com/product/1247)
  • Flora RGB NeoPikseller (https://www.adafruit.com/product/1260)
  • Pil Paketi (https://www.adafruit.com/product/727)
  • İletken İplik (https://www.adafruit.com/product/641)

2. Adım: Düzen

Düzen
Düzen

Dikiş işlemine başlamadan önce pikselleri, ana kartı ve ivmeölçeri yerleştirmemiz gerekiyor. Piksellerin veri bağlantısı, güç için + ve toprak için - olacaktır. İvmeölçer 3V, SCL, SDA ve toprak için bağlantılara ihtiyaç duyar.

Pikselleri, ana kartı ve ivmeölçeri süveterin üzerine dikmeyi planladığınız şekilde yerleştirin. Şortlara neden olacağından herhangi bir dikişi geçmediğinizden emin olun. Kartımızın yüzü içeride ve NeoPixels'in yüzü dışarıda olduğundan, NeoPixels'i bağlamak için 3V, Pin 9 ve Ground kullanıyoruz.

NeoPixel'lerde, veri bağlantısının Flora ana kartından sonraki NeoPixel'e nasıl gitmesi gerektiğini gösteren bir ok bulunur. Tüm NeoPixel'lerin aynı yöne bakacak şekilde sıralandığından emin olun.

Adım 3: Dikiş İpuçları

Dikişin önemli kısmı üç şeydir; şort/dikişler yok, bir dikişi bitirirken sıkı düğümler ve Giyilebilir Cihazlarla iyi bağlantılar.

Şort/Dikiş Geçmesi Yok

Giyilebilir Cihazlarınızı, dikişlerinizin üst üste gelmeyecek şekilde yerleştirdiğinizden emin olun. Çizgiler kesinlikle kesişmemeli. Tüm dikişlerin ayrı kalmasını sağlayan bir düzeniniz olduğunda, dikiş yaparken sıkı olduğundan emin olmanız gerekir. Çok fazla boşluk bırakırsanız, ipliğin dokunmasına izin verebilir. Bir dikişi bitirdikten sonra, fazla uçları kesin, böylece başıboş iplikler kalmaz.

Sıkı Düğümler

Bir dikiş hattını bitirirken, sıkı bir düğüm dikişin gevşememesini sağlayacaktır. İşin püf noktası, düğüme küçük bir parça şeffaf oje koyup kurumasını beklemek. Bu, düğümü yapıştırıcıya benzer şekilde yerinde tutmaya yardımcı olur. İletken iplik bir düğümde normal iplik kadar iyi tutmaz, bu yüzden oje kullanmanızı şiddetle tavsiye ederim, aksi takdirde dikişler gevşeyebilir.

İyi Bağlantılar

Pimlerdeki halkaların sıkı olduğundan emin olun. Bu, devreniz çalışmıyorsa sorunun bağlantılarda olmadığını anlamamıza yardımcı olacaktır. Her zaman iyi bir bağlantı olacağından emin olmak için pimler arasında 2-3 kez dolaşabilirsiniz.

İpuçları & Hileler

Açıp kapatırken giysinizin açık olmadığından emin olun. Bu, iplikleri birbirine değdirmenin ve kısa devre yaptırmanın en kolay yoludur. Giysi rahat bir şekilde açılıncaya kadar pil takımını açmayın.

Adım 4: Bileşenlerin Birleştirilmesi

Bileşenlerin Birleştirilmesi
Bileşenlerin Birleştirilmesi
Bileşenlerin Birleştirilmesi
Bileşenlerin Birleştirilmesi

Eklememiz gereken ilk parça Flora Ana Kartı. Kullanmayı planlamadığınız iki pimin içinden normal iplik kullanarak tahtayı süveterinize dikin. Bu, tahtayı yerinde tutacak ve iletken ipliği kullanarak dikiş yapmayı kolaylaştıracaktır. Hareket etmesini önlemek için birkaç basit döngü yeterlidir.

Ardından, Flora Ana Kartından ve İvmeölçerden gelen dört bağlantıyı dikmeniz gerekir. Bu Güç, Toprak, SCL ve SDA olacaktır. İvmeölçeri ana kartın sol üst köşesine yerleştirirseniz, bağlantılar doğrudan hizalanacaktır. Böylece iki kartı birbirine bağlamak için dört ayrı dikişiniz olacak. Her iki uçtaki düğümlerin çözülmesini önlemek için biraz şeffaf oje kullanın. Tahtalardaki biraz oje onlara zarar vermez.

Son olarak, Flora Ana kartından NeoPixels'e 3V, toprak ve veri bağlantılarını bağlamanız gerekir. NeoPixels'in altında ve üstünde olduğu için zemin ve güç için iki uzun, sürekli dikiş yapabilirsiniz. Pin 9'dan veri bağlantıları için her NeoPixel'den diğerine ayrı dikişler yapmanız gerekir.

Adım 5: Arduino IDE

Flora Ana Kartı Arduino uyumludur, bu nedenle kodumuz için Arduino IDE kullanacağız. En son sürümü bu bağlantıdan indirebilirsiniz.

Bu bağlantı aracılığıyla bir web sürümü de var.

NeoPixels ve Accelerometer'imizi kullanmak için eklenmesi gereken dört kitaplık var. Sketch'e gidin, Kitaplığı Dahil Et, Kitaplıkları Yönetin. Her biri için adıyla aramanız, en son sürümü seçmeniz ve yükle'yi tıklamanız gerekir.

  • Adafruit NeoPixel
  • Adafruit Birleşik Sensör
  • Ada meyvesi TSL2561
  • Adafruit LSM303DLHC

Bunlar takıldıktan ve dikiş tamamlandıktan sonra, her şeyin çalıştığından emin olmak için süveterimizi test etmeye hazırız.

6. Adım: Komut Dosyalarını Test Edin

Test Komut Dosyaları
Test Komut Dosyaları

Projemizi test etmek için Adafruit ana kartımızı bir USB kablosu kullanarak bilgisayarınıza bağlamamız gerekiyor. Ardından Araçlar, Bağlantı Noktası'na gidin ve listeden Flora Ana kartınızı seçin.

Test edeceğimiz ilk şey, ivmeölçerin düzgün çalışıp çalışmadığıdır. Dosya, Örnekler, Adafruit LSM303DLHC, hızlandırıcıya gidin. Bu, sensörün bağlı olup olmadığını test eden ve koordinat değerlerini okuyan bir komut dosyası açacaktır. Kartınıza yükleyin ve Arduino IDE'nin sağ üst köşesindeki Seri Monitörü açın. İvmeölçeri hareket ettirirken Seri Monitörde fotoğraftaki gibi değerlerin değiştiğini görüyorsanız çalışıyor demektir!

Test edeceğimiz ikinci şey, NeoPixels'in çalışıp çalışmadığı. Dosya, Örnekler, Adafruit NeoPixels, strandtest'e gidin. Bu betiği çalıştırmadan önce, Pin'i 9'a ve piksel sayısını 6'ya (veya projeniz için ne kullanıyorsanız) değiştirin. Panonuza yükleyin ve piksellerin tümü aydınlanırsa, son komut dosyası için hazırsınız!

7. Adım: Son Komut Dosyası

Son Senaryo
Son Senaryo

Şimdi son kodumuzu yükleme zamanı. Aşağıdaki kodu yeni bir proje dosyasına kopyalayın. Pin 9'a ve NeoPiksel sayısı 6'ya ayarlanmıştır. Farklı bir şey kullanıyorsanız, bu betiği çalıştırmadan önce bunları değiştirin. R, G ve B değerlerini 0-255 arasında ayarlayarak favori renkleri ayarlayabilirsiniz. Ayrıca yeni bir satır ekleyerek daha fazla favori rengi ekleyebilirsiniz. Hareket eşiği de ayarlanabilir. Sayı ne kadar düşükse, hareketi algılamak ve NeoPixels'i açmak o kadar kolay olur. İstediğiniz değişiklikleri yaptıktan sonra kaydedin ve Flora Ana Kartınıza yükleyin. İvmeölçeri hareket ettirirseniz piksellerin aydınlandığını görebilmeniz gerekir. Bunu gördüğünüzde bilgisayarınızdan fişini çekebilirsiniz ve biz de pil takımımıza bağlanabiliriz.

#include #include #include #include #define PIN 9 #define PIXELCOUNT 6// Parametre 1 = şeritteki piksel sayısı // Parametre 2 = pin numarası (çoğu iyidir ama biz 9 kullanıyoruz) // Parametre 3 = piksel türü bayraklar, gerektiğinde bir araya ekleyin: // NEO_RGB Pikseller RGB bit akışı için kablolanmıştır (v2 değil v1 FLORA pikselleri) // NEO_GRB Pikseller GRB bit akışı için kablolanmıştır (çoğu NeoPixel ürünü. kullandığımız ürün) // NEO_KHZ400 400 KHz (klasik 'v1' (v2 değil FLORA pikselleri, WS2811 sürücüleri) // NEO_KHZ800 800 KHz bit akışı (çoğu NeoPixel ürünü WS2812 LED'li. kullandığımız ürün) Adafruit_NeoPixel şeridi = Adafruit_NeoPixel(PIXELCOUNT, PIN, NEO_GRB + NEO_KHZ800); Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified(54321);// R, G, B'yi 0-255 arasında ayarlayın ve // daha fazla renk için yeni {nnn, nnn, nnn} ekleyin // RGB uint8_t myFavoriteColors[3] = {{ 255, 255, 255}, // beyaz {255, 0, 0}, // kırmızı { 0, 255, 0}, // yeşil };// aşağıdaki satırı düzenlemeyin #define FAVCOLORS sizeof(myFavoriteColors) / 3// bu sayı hareket hassasiyetini ayarlar // daha düşük sayı = daha hassas #define MOVE_THRESHOLD 5 //süper hassas currentvoid setup() { Serial.begin(9600); // Çipi algılayamazsak başlatmayı ve uyarmayı deneyin // Çıktıyı görüntülemek için Seri Monitörü kullanın if (!accel.begin()) { Serial.println("Bir sorunumuz var. Bu sensin, ben değil … LSM303 başlatılamıyor. Kablolamayı hızlı bir şekilde kontrol ederek başlayacağım"); iken (1); } strip.begin(); şerit.göster(); // Pikselleri 'off' olarak ayarla }void loop() { /* Yeni bir sensör al olayı */ensor_event_t event; accel.getEvent(&event); // Serial.print("Hızlanma X: "); Serial.print(event.acceleration.x); Seri.print(" "); // Serial.print("Y:"); Serial.print(event.acceleration.y); Seri.print(" "); // Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");// Çift depolanan 3 eksen vektörünün büyüklüğünü (uzunluğunu) alınVector = event.acceleration.x*event.acceleration.x; depolananVektör += event.acceleration.y*event.acceleration.y; depolananVektör += event.acceleration.z*event.acceleration.z; depolanan Vektör = sqrt(depolanan Vektör); // Serial.print("Len: "); Serial.println(depolanmış Vektör); // biraz gecikme bekle(250); // yeni veri al! accel.getEvent(&event); double newVector = event.acceleration.x*event.acceleration.x; newVector += event.acceleration.y*event.acceleration.y; newVector += event.acceleration.z*event.acceleration.z; yeniVektör = sqrt(yeniVektör); // Serial.print("Yeni Len: "); Serial.println(yeniVektör); // hareket ediyor muyuz? if (abs(newVector - depolanmış Vektör) > MOVE_THRESHOLD) { Serial.println("Flashy! Flash! Flash! McFlash!"); flashRandom(10, 2); // ilk sayı 'bekle' gecikme, daha kısa sayı == daha kısa pırıltı flashRandom(10, 4); // ikinci sayı aynı anda kaç neopikselin yanacağıdır flashRandom(10, 6); } }void flashRandom(int wait, uint8_t howmany) { for(uint16_t i=0; i<howmany; i++){//favori renklerden rastgele seçilmiş int c = random(FAVCOLORS); int beyaz = myFavoriteColors[c][0]; int red = myFavoriteColors[c][1]; int green = myFavoriteColors[c][2];//için sırayla açılacak pikseller (int i=0; i < 6; i++) int j = strip.numPixels(); Serial.print("Piksel açık"); Seri.println(i); // şimdi onu 3 adımda 'solduracağız' for (int x=0; x = 0; x--) { int w = beyaz * x; w /= 3; int r = kırmızı * x; r /= 3; int g = yeşil * x; g /= 3;strip.setPixelColor(i, strip. Color(w, r, g)); şerit.göster(); gecikme(bekle); } } // Bittiğinde LED'ler söner (0'a sönerler) }

Adım 8: Pil Paketi

Pil paketi
Pil paketi

Süveterinizin sürekli çalışmasını sağlamak için bir pil takımı kullanacağız. Sadece tahtadan sarkmaması için paket için bir koşum takımı yapmalıyız. Pil cebim olarak eski bir yastık kılıfının köşesini kullandım. Açık tarafı diktim ve üst kısmın bir tarafını ana karta kolayca takıp çekmeyeceği kadar yakın bir şekilde süveterin üzerine diktim.

Pil takımını ana karta takın, ana kart üzerindeki küçük anahtarı kapalı konumdan açık konuma getirin ve pil takımını açın. Kazağınız artık çalışıyor ve giymeye hazır olmalıdır.

9. Adım: Sonuç

Çözüm
Çözüm

Artık tüm arkadaşlarınızı ve ailenizi etkileyecek hafif bir kazak yaptınız! Ancak bu sadece bir tatil projesi değil. Sevgililer Günü'nü kalp şeklinde hafif bir kazak yapın veya Aziz Patrick Günü için bir yonca gömleği aydınlatın. Hayal gücünüzü kullanın ve ne yarattığınızı bize bildirin!

Önerilen: