Mündəricat:
- Addım 1: NeoPixel Üzük hazırlayın
- Addım 2: LED şeridlərini kəsin
- Addım 3: LEDləri lehimləyin
- Addım 4: Arxa hissənin hazırlanması
- Addım 5: Mikrofon və Arduinonun naqillərini çəkin
- Addım 6: Arduino proqramlaşdırılması
- Addım 7: Rənglərin, Parlaqlığın və Sensor Eşiklərinin dəyişdirilməsi
- Addım 8: Dövrəni daha daimi etmək
- Addım 9: Şəkil yaradın
- Addım 10: Bir yerdə qoyun
- Addım 11: Səhvlərdən öyrənmək
Video: İnteraktiv Dandelion: 11 Adım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu layihə bir karahindibanın interaktiv bir şəklini necə çəkəcəyinizi göstərir. Ləçəklər üçün LED -ləri olan sarı bir çiçək olaraq başlayır, sonra toxumların dağılması üçün üflənə bilən ağ bir karahindiba saatına çevrilir.
Şəkli Jessie Thompson və Zachory Berta tərəfindən hazırlanmış bir çiçək dizaynından ilhamlanan Qi Jie'nin gözəl bir sənət əsərinə əsaslanır. Dikişləri Arduino ilə birləşdirən yeni başlayanlar layihəsinə nümunə olaraq İngiltərənin Devon şəhərindəki Texnologiya və Tekstil istehsal sahəsinin divarına keçmək üçün özümü parça üzərində hazırladım və onu bir goblen halqasına düzdüm.
Qi Jie tərəfindən çəkilmiş yüngül rəsm videosu
Jessie Thompson və Zachory Berta tərəfindən tək çiçək dizaynının videosu
Hər iki mövcud layihənin kodu mövcuddur və bunu asanlaşdıracağını düşündüm, amma təlimatlar minimal idi və işləyən bir üsul tapana qədər bir neçə cəhd etdi. Beləliklə, həm dizayn elementlərini, həm də öz tweakslərimi özündə birləşdirən bir remiks üçün tam təlimatlar və vaxt qənaət edən məsləhətlər.
Mənim üçün nəyin işləmədiyinin təfərrüatları, bu yolu niyə seçdiyimlə maraqlanan hər kəs üçün sonda.
Qi Jie tərəfindən yüngül rəsm üçün kod
Jessie Thompson və Zachory Berta tərəfindən kiçik çiçək şəkli üçün kod
Materiallar
- Arduino UNO
- 12 Neopixel Adafruit Üzük
- 11 RGB LED -lərin 5V zolağı
- Səs Mikrofon Sensoru
- Jumper telləri
- USB A bağlantısı olan 5V Şarj Edilə bilən Batareya
- Printer Kabeli (USB A - B kabeli)
- Yapışqan nöqtələr və ya isti yapışqan
- A4 kartı
- Köhnə yastıq çantası kimi 30 sm x 30 sm Krem Pambıq Parça
- Yaşıl Kumaş Boyası
- Qəhvəyi Pambıq İplik
- Pizza qutuları kimi 70cm x 50cm Oluklu Karton
- Maska Bantı
- Şəkil çəkmək üçün 9 düymlük Nakış Çemberi
- 9 Öz-özünə Yapışan Velcro Nişanlar
Alətlər
- Arduino IDE ilə kompüter endirildi
- Lehimləmə Dəmiri və Qurğusuz Lehim
- Test dövrəsi üçün çörək lövhəsi
- Tel çıxarıcı/kəsicilər
- Dikiş iynəsi
- Qələm
- Qayçı
Addım 1: NeoPixel Üzük hazırlayın
NeoPixel halqasının arxasındakı gücə, yerə və məlumat yastıqlarına hər birinə fərqli rəngli tellər lehimləyin.
Üzüyün fərqli bir versiyası varsa, telləriniz mənim fotomla eyni vəziyyətdə olmaya bilər.
Hansı tellərin giriş və çıxış, həm də müsbət, məlumat və torpaq üçün olduğunu qeyd edin, çünki işarələr halqanın altındadır və halqa yerində olduqda görünməyəcək.
Addım 2: LED şeridlərini kəsin
RGB LED şeridindən 11 fərdi LED kəsin, kəsikin hər iki tərəfində lehim yastıqları buraxmaq üçün mərkəzi xətt boyunca kəsin. Hər yastığın üst tərəfinə bir lehim çubuğu çəkin.
Addım 3: LEDləri lehimləyin
Kartın ortasında mikrofona uyğun bir delik açın. Yapışqan nöqtələrdən istifadə edərək, neo piksel və fərdi LED halqalarını göstərildiyi kimi yapışdırın, papatya birlikdə zəncirlə bağlandıqda LED -lərdəki bütün oxların eyni şəkildə düzüləcəyinə əmin olun.
Çıxış tellərini halqadan ilk fərdi LED -ə lehimləyin, müsbət, torpaq və məlumat tellərini hər iki LED -də eyni yastıqlara uyğunlaşdırın.
LED -ləri bir araya gətirməyin ən sürətli və ən asan yolu tullanan məftili ayrı mis tellərə ayırmaqdır. LED -lərdəki lehim yastiqciklərinin hər birini digərinə bağlamaq üçün bir ipi bağlayın, pozitiv, məlumat və yerə uyğun. Yastıqlar əvvəlki addımda əvvəlcədən lehimləndiyi üçün isti bir lehimləmə dəmirinə tez bir zamanda toxunmaq kifayətdir. Bu mərhələdə telləri kəsmək əvəzinə, digər tərəfdən lehimli yastiqciqlərə çatmaq üçün LED -in üstündən keçirin. Heç bir telin kəsilmədiyinə və bir -birinə toxunmadığından əmin olun, bu yastiqciklərə lehimləyin və son LED -in giriş tərəfinə qədər davam edin.
Son LED -in çıxış tərəfinə tel bağlamayın. Bildiyiniz bəzi LED -lərdən fərqli olaraq, ayrı bir yer və müsbət xətlər bağladığınız üçün enerjini yerə qaytaran bir dairəvi dövrə tamamlamanıza ehtiyac yoxdur. LED -lərin üstündən keçən bütün telləri kəsin ki, aralarında yalnız tellər olsun.
İpucu: Dairəvi künclərdə tellərin toxunmaması üçün hər birini əvvəllər çıxarılan kiçik bir plastik izolyasiya zolağına keçirin.
Addım 4: Arxa hissənin hazırlanması
Giriş kartları üçün ağ kartda başqa bir çuxur açın və onları itələyin.
Qobelen halqasının iki halqasını ayırın. Ən kiçik halqanın kənarını 5 ədəd oluklu karta çəkin və kəsin. Üzüklər etmək üçün kənarlardan təxminən 2 sm kənarda 3 dairənin ortasında deliklər kəsin və hər birində 5 mm kəsik kəsin. Üzükləri bir -birinin üstünə yapışdırın, yarıqları düzəldin və kartın qalan dairələrindən birinə yapışdırın.
Addım 5: Mikrofon və Arduinonun naqillərini çəkin
Arduino -nu mikrofon sensoruna və LED halqasına göstərildiyi kimi bağlayın. TinkerCad -dan mikrofon şəkli olmayan dövrə diaqramı yaratmaq üçün istifadə etdim, buna görə də eyni sancaqları istifadə edən və simulyasiyada eyni şəkildə işləyən başqa bir sensorla əvəz etdim.
Simulyasiyanı görmək üçün https://www.tinkercad.com/things/5cgI2wluA0c ünvanına daxil olun. Mikrofona üfürməni simulyasiya etmək üçün sensora bağlı olan dairəni aktiv sahəyə sürükləyin. LEDlər 6 -da zolaqdadır, buna görə simulyasiyadakı son LED dizaynın bir hissəsi deyil və yanmır.
Addım 6: Arduino proqramlaşdırılması
Kompüterinizdə Arduino IDE -ni açın və yeni bir eskiz işə salın Eskizin içindəki hər şeyi silin və əvəzinə bu kodu kopyalayıb yapışdırın.
// NeoPixel Ring sadə eskizindən (c) 2013 Shae Erisson // və https://www.hackster.io/ingo-lohs/first-test-37-s… daxil olan sensor kodu istifadə edərək uyğunlaşdırılmışdır. Arduino NeoPixels -ə qoşulub? #define PIN 6 // Arduino -ya neçə NeoPixel qoşulub? #define NUMPIXELS 23 // NeoPixel kitabxanasını qurduqda, ona neçə piksel və hansı pinlə siqnal göndərmək lazım olduğunu söyləyirik. // Köhnə NeoPixel zolaqları üçün üçüncü parametri dəyişdirməyiniz lazım ola biləcəyini unutmayın-mümkün dəyərlər haqqında daha çox məlumat üçün strandtest // nümunəsinə baxın. Adafruit_NeoPixel pikselləri = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int gecikmə müddəti = 500; // yarım saniyə gecikmə int sensorPin = A0; // sensor üçün giriş pinini seçin int sensorValue = 0; // sensordan gələn dəyəri saxlamaq üçün dəyişən const int threshold = 200; // analoq giriş void setup () {piksel.begin () aralığında olan ixtiyari bir eşik səviyyəsi; // Bu NeoPixel kitabxanasını işə salır. piksel.setBrightness (20); // Parlaqlığı ayarlayın Serial.begin (9600); } void loop () {// NeoPixels dəsti üçün birinci NeoPixel 0, ikincisi 1, piksellərin sayına qədər bir eksi. // Dandelion LEDləri // piksel. Color, RGB dəyərlərini 0, 0, 0 -dan 255, 255, 255 pikselə qədər alır.setPixelColor (0, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (5, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (6, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (7, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (8, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (9, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (10, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (11, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // Qapalı. piksel.show (); // Bu, yenilənmiş piksel rəngini aparata göndərir. gecikmə (gecikmə*6); // Çiçəkdən toxum başına tədricən keçid // piksel. Rəng 0, 0, 0 -dan 255, 255, 255 pikselə qədər RGB dəyərləri alır. setPixelColor (0, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (5, piksel. Color (226, 246, 255)); // bluishwhite piksel.setPixelColor (6, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (7, piksel. Color (226, 246, 255)); // bluishwhite piksel.setPixelColor (8, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (9, piksel. Color (226, 246, 255)); // bluishwhite piksel.setPixelColor (10, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // mavi ağ. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // Qapalı. piksel.show (); // Bu, yenilənmiş piksel rəngini aparata göndərir. gecikmə (gecikmə müddəti*6); // Toxum başı LEDləri piksel.setPixelColor (0, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // off piksel.setPixelColor (2, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // off piksel.setPixelColor (4, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (5, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (6, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (7, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (8, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (9, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (10, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // off piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // Qapalı. piksel.show (); // Bu, yenilənmiş piksel rəngini aparata göndərir. gecikmə (gecikmə müddəti*3); // Bir müddət gecikmə (milisaniyələrdə). piksel.setPixelColor (0, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // off piksel.setPixelColor (2, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (3, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (4, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (5, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (6, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (7, piksel. Color (255, 165, 0)); // Narıncı. piksel.setPixelColor (8, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (9, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (10, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // Qapalı. piksel.show (); // Bu, yenilənmiş piksel rəngini aparata göndərir. gecikmə (gecikmə müddəti*3); // Bir müddət gecikmə (milisaniyələrdə). piksel.setPixelColor (0, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (1, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (2, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (3, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (4, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (5, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (6, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (7, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (8, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (9, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (10, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // Qapalı. piksel.show (); // Bu, yenilənmiş piksel rəngini aparata göndərir. gecikmə (gecikmə); // Bir müddət gecikmə (milisaniyələrdə). // Sensor dəyərini oxuyun və serial monitor sensorunda göstərinValue = analogRead (sensorPin); Serial.println (sensorValue); gecikmə (250); // Sensor dəyəri eşikdən az olsa da, sensor dəyərini yoxlayın və serial monitorda çap edin. Dəyər eşikdən yuxarı olduqda, eskiz davam edə bilər (sensorValue <eşik) {sensorValue = analogRead (sensorPin); Serial.println (sensorValue); gecikmə (250); } // İlk külək LEDləri piksel.setPixelColor (0, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (5, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (6, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (7, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (8, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (9, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (10, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (11, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (12, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (13, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (14, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (15, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (16, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // Qapalı. piksel.show (); // Bu, yenilənmiş piksel rəngini aparata göndərir. gecikmə (gecikmə); // Bir müddət gecikmə (milisaniyələrdə). // İkinci külək LEDləri piksel.setPixelColor (0, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (5, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (6, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (7, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (8, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (9, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (10, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (11, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (15, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // Qapalı. piksel.setPixelColor (17, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (18, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (19, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (20, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (21, piksel. Color (226, 246, 255)); // Mavi ağ. piksel.setPixelColor (22, piksel. Color (226, 246, 255)); // Mavi ağ.piksel.show (); // Bu, yenilənmiş piksel rəngini aparata göndərir. gecikmə (2000); // Bir müddət gecikmə (milisaniyələrdə). }
USB printer kabeli ilə Arduinonu kompüterə qoşun
Alətlər> Karta gedin və Arduino/Genuino UNO lövhəsini seçin
Porta gedin və lövhəni düzgün USB portuna bağladığınızdan əmin olun. Əmin deyilsinizsə, Arduino'yu ayırıb siyahıdan hansı portun yox olduğunu görə bilərsiniz. Yenidən bağlayın və liman yenidən siyahıya alınacaq.
Şərhli fotoşəkildə göstərilən Yüklə simgesini tıklayaraq eskizi yükləyin. Yüklənərkən Arduino -da işıqlar yanıb sönməlidir. Yükləmə tamamlandıqda neo piksel üzükdəki LEDlər sarı rəngdə yanacaq və sonra ağ işıqların tam halqasına çevriləcək. Dövrəni yoxlamaq üçün mikrofona zərbə vurun. Xarici təbəqələrdəki LEDlər öz növbəsində yanmalıdır. İşləməyən LED -lərdəki lehimi yoxlayın.
Addım 7: Rənglərin, Parlaqlığın və Sensor Eşiklərinin dəyişdirilməsi
Rənglər
LED -lərin rəngləri RGB (Qırmızı Yaşıl Mavi) rəng dəyərləri ilə təyin olunur. İstifadə etdiyimdən fərqli rənglərdən istifadə etmək istəyirsinizsə, www.w3schools.com/colors/colors_rgb.asp kimi onlayn RGB rəng kalkulyatorundan istifadə edərək istədiyiniz rənglərin dəyərlərini tapa bilərsiniz.
Bir LED söndürmək üçün 0, 0, 0 dəyərlərindən istifadə edin.
LED -i ağ rəngə qoymaq üçün 255, 255, 255 dəyərlərindən istifadə edin. Əvvəlki addımdakı kodda 226, 246, 255 dəyərləri olan mavi ağ və 255, 165, 0 dəyərlərində narıncı rəng istifadə olunur.
Parlaqlıq
LED -lərin parlaqlığını dəyişdirmək üçün kodun boşluq qurma hissəsinə keçin və aşağıdakı kod xəttini tapın:
piksel.setBrightness (20); // Parlaqlığı təyin edin
LEDlərin parlaqlığını dəyişdirmək üçün mötərizədəki nömrəni düzəldin.
Sensor Eşik
Proqramı işə saldığınız zaman NeoPixel üzüyünün yarısı bir çiçəyi təmsil etmək üçün sarıdan başlayır və toxum başını təmsil etmək üçün tədricən ağ LED -lərin tam dairəsinə çevrilir. Bu nöqtədə, proqram mikrofon sensörünü vurana qədər dayandırılmalıdır. Proqram davam edərsə və sensordan aktivləşdirilmədən LED -lərin xarici təbəqələrini yandırarsa, kodun boşluq qurma hissəsinə gedin və aşağıda göstərilən dəyəri aşağı salın. Proqram dayandırıldıqda, sensora vurduqda cavab vermədikdə dəyəri artırın.
const int eşik = 200;
Addım 8: Dövrəni daha daimi etmək
Dövrə işləyərkən Arduino'yu kompüterdən ayırın və mikrofon sensorunu çörək taxtasından çıxarın. Eyni dövrəni daha daimi etmək üçün Arduinodan mikrofon sensörünə lehim telləri. Mikrofonu kartdakı çuxurdan arxadan itələyin. Lazım gələrsə, lövhə kartın arxasında uzanması üçün mikrofonu diqqətlə 90 dərəcə bükün. Batareyanı printer kabelindən istifadə edərək Arduinoya bağlayın və bütün ardıcıllıq işləməlidir.
Addım 9: Şəkil yaradın
Parçanızda mikrofon istədiyiniz yerdə bir çuxur açın. Kiçik bir çuxuru yandırmaq üçün isti bir lehimləmə dəmiri istifadə etdim və mikrofon daxil olana qədər qayçı ilə kəsdim. Çiçəyinizi parça üzərində rəngləyin və tikin. Boya quruduqda, rəsmini tikmə halqasına yapışdırın və kiçik bir haşiyə buraxaraq artıq parçanı kəsin.
Dövrə komponentlərindən birinin parça üzərindən görünüb -görünmədiyini görmək üçün, deşikdən görünən mikrofonla parça və halqanı müvəqqəti olaraq kartın üstünə qoyun. Lazım gələrsə, komponentləri artıq görünməyənə qədər dövrəni maskalanan bant təbəqələri ilə örtün. LED -lər kifayət qədər parlaqdır ki, bir təbəqə maskası ilə görünsün. Daha çox təbəqə əlavə etməlisinizsə, 7 -ci addımda göstərildiyi kimi kodunuzu düzəldərək LEDləri daha parlaq edə bilərsiniz.
Kumaşı və halqanı əvvəlki kimi kartın üstünə qoyun və əlavə parçanı kartın arxasına yapışdıraraq yerində sabitləyin.
Addım 10: Bir yerdə qoyun
Ağ kartı, mikrofonu əhatə edən oluklu karton dairəsinə yapışdırın, ancaq yarıqlardan keçən tellərlə kartonun kənarından keçməli olan Arduino və batareya paketini yapışdırmayın.
Batareyaya daxil olmaq üçün kartonun son halqasını Velcro ilə yapışdırın. Kartondan divardakı bir çəngələ asmaq istədiyiniz yerdə bir çuxur açın.
Addım 11: Səhvlərdən öyrənmək
İlk cəhdim elektron etiketlər və mis lentlə oldu. Dövrə etiketləri, mis yastıqları olan etiketlərə quraşdırılmış kiçik LED səthlərdir. Qi Jie'nin Chibitroniks şirkətindən gəlirlər və mükəmməl olacağını düşündüm.
Mis lent və ya gümüş lentdən istifadə edərək etibarlı bir əlaqə əldə edə bilmədim və etiketlərə tel lehimlədiyim zaman yenə də 9V batareya istifadə edərək işıq saçmaq üçün yalnız 3 ədəd LED stiker ala bilərdim. Gözlədiyim kimi çox yüngül layihələr üçün nəzərdə tutulmadıqları aydın oldu. Dövrə etiketləri haqqında bir veb səhifəsinə daha yaxından baxdığımda, 4 işıqlı bir layihənin fərqli bir LED tipi olduğu ortaya çıxdı. Dövrə etiketlərini 12V batareya ilə gücləndirə bilərdim, ancaq şəklin içinə sığmamaq çox böyük olardı.
Sonra tikişli LEDləri sınadım. Düşünürdüm ki, yalnız gücə və yerə sahib olmaq, güc, torpaq və məlumat xətləri olan proqramlaşdırıla bilən LED -lərdən daha asan bağlanacaq. Ancaq əlavə bir enerji təchizatı və məndə olmayan bir MOSFETə ehtiyacı olan daha mürəkkəb bir dövrə olduğu ortaya çıxdı. Tikişli NeoPixel istifadə edə bilərdim, amma daha bahalıdır.
Bir neçə yanlış başlanğıcdan sonra, ucuz və istifadəsi asan olan bir sıra proqramlaşdırıla bilən LED -lərlə sona çatdım.
Tövsiyə:
Arduino İnteraktiv LED Qəhvə Masası: 6 Addım (Şəkillərlə birlikdə)
Arduino İnteraktiv LED Qəhvə Masası: Obyekt masanın üstünə qoyulduqda bir obyektin altındakı işıqları yandıran interaktiv bir sehpa hazırladım. Yalnız o obyektin altında olan ledlər yanacaq. Yaxınlıq sensörlərindən səmərəli istifadə edərək bunu edir və yaxınlıq
İnteraktiv Refleks Zımba Çantası: 3 addım (şəkillərlə birlikdə)
İnteraktiv Refleks Punch Çantası: Bu təlimat, Arduino, LED və MK 2125 Accelerometer istifadə edərək, daha çox lehimləmə təcrübəsi əldə edərkən çeviklik və boks bacarıqlarını inkişaf etdirmək istəyən hər kəs üçündür
İnteraktiv İncəsənət Quraşdırması: 4 Addım (Şəkillərlə birlikdə)
İnteraktiv İncəsənət Quraşdırması: Bu layihədə interaktiv bir sənət qurğusu yaratmaq üçün kodlaşdırma və fiziki hesablamaları qarışdırırıq. Bu Təlimat kitabında paylaşılan nümunə, qrafik və səs elementlərini məqsədli bir interfeyslə birləşdirən bir tələbə kodlaşdırma layihəsidir
Bloomie-İnteraktiv Çiçəklər: 6 Addım (Şəkillərlə birlikdə)
Bloomie-İnteraktiv Çiçəklər: Bəzən sözlər hisslərinizi bölüşmək üçün kifayət etmir. Bu zaman Bloomie -yə ehtiyacınız var! Bloomie, insanların duyğularını işıq vasitəsilə paylaşması üçün bir məhsuldur. Müəyyən bir qarşılıqlı əlaqə yaratdığınız zaman, mesaj digər şəxsin Bloomuna göndəriləcək
Arduino İnteraktiv Masa Oyunu: 5 Adım (Şəkillərlə birlikdə)
Arduino İnteraktiv Masa Oyunu: İnteraktiv Masa Oyunları - HAC-KINGIntro: Voor het vak If This That That That That That van de opleiding Games & HKU ilə qarşılıqlı əlaqə qurduqdan sonra qarşılıqlı əlaqə anlayışını tapdıq. Dit anlayışı moest gemaakt, proqram təminatı ilə bir araya gəldi