Mundarija:

Interaktiv momaqaymoq: 11 qadam (rasmlar bilan)
Interaktiv momaqaymoq: 11 qadam (rasmlar bilan)

Video: Interaktiv momaqaymoq: 11 qadam (rasmlar bilan)

Video: Interaktiv momaqaymoq: 11 qadam (rasmlar bilan)
Video: maktab qizlaridan raqs 2024, Noyabr
Anonim
Image
Image
NeoPixel halqasini tayyorlang
NeoPixel halqasini tayyorlang

Ushbu loyihada karahindibaning interaktiv rasmini qanday qilish kerakligi ko'rsatilgan. U barglari uchun svetodiodli sariq guldan boshlanadi, so'ngra oq momaqaymoq soatiga aylanadi, uni urib tarqatib yuborish mumkin.

U Qi Tszining go'zal san'at asariga asoslangan bo'lib, uning rasmini Jessi Tompson va Zaxori Berta bitta gul dizaynidan ilhomlangan. Men tikuvchilikni Arduino bilan birlashtirgan yangi boshlanuvchilar loyihasining namunasi sifatida Angliyaning Devon shahridagi Tech and Textiles ishlab chiqarish maydonining devoriga o'tish uchun matoni o'zim yasadim va uni gobelen halqasiga joylashtirdim.

Qi Jie tomonidan engil rasm tasvirlangan video

Jessi Tompson va Zaxori Berta tomonidan bitta gulli dizayndagi video

Ikkala mavjud loyihaning kodi mavjud va men buni oson deb o'yladim, lekin ko'rsatmalar minimal edi va men ishlagan usulni topgunga qadar bir necha bor urinib ko'rdim. Shunday qilib, men o'zimning dizaynim va tuzatishlar elementlarini birlashtirgan remiks uchun to'liq ko'rsatmalar va vaqtni tejash bo'yicha maslahatlar.

Men uchun nima ishlamaganligi tafsilotlari, nima uchun men bu yo'lni tanlaganimga qiziqqan har bir kishi uchun.

Qi Jie engil rasm uchun kod

Jessi Tompson va Zakori Berta kichik gullar uchun kod

Materiallar

  • Arduino UNO
  • 12 ta neopikseldagi Adafruit halqasi
  • 5 V kuchlanishli 11 RGB LED
  • Ovozli mikrofon sensori
  • Jumper simlari
  • USB A ulanishi bilan 5V qayta zaryadlanuvchi batareya
  • Printer kabeli (USB A - B kabeli)
  • Yopishtiruvchi nuqtalar yoki issiq elim
  • A4 karta
  • 30 sm x 30 sm kremli paxta mato, masalan, eski yostiqsimon sumka
  • Yashil mato bo'yog'i
  • Jigarrang paxta iplari
  • 70 sm x 50 sm gofrirovka qilingan karton, masalan, pizza qutilari
  • Maskalash tasmasi
  • Rasmni chizish uchun 9 dyuymli kashta tikish halqasi
  • 9 o'z-o'zidan yopishtiruvchi Velcro yorliqlari

Asboblar

  • Arduino IDE o'rnatilgan kompyuter yuklab olindi
  • Lehimlash temir va qo'rg'oshinsiz lehim
  • Sinov sxemasi uchun elektron jadval
  • Tel -stripper/kesgichlar
  • Tikuv ignasi
  • Qalam
  • Qaychi

1 -qadam: NeoPixel halqasini tayyorlang

NeoPixel halqasining orqa qismidagi quvvat, er va ma'lumotlar yostiqchalarining har biriga turli xil rangli simlarni lehimlang.

Agar sizda uzukning boshqa versiyasi bo'lsa, sizning simlaringiz mening suratim bilan bir xil holatda bo'lmasligi mumkin.

Qaysi simlar kirish va chiqish, shuningdek, ijobiy, topraklama uchun mo'ljallanganligini yozib oling, chunki ular uchun belgi halqaning pastki qismida joylashgan va halqa joyida ko'rinmaydi.

2 -qadam: LED chiziqlarini kesib oling

LED chiziqlarini kesib oling
LED chiziqlarini kesib oling
LED chiziqlarini kesib oling
LED chiziqlarini kesib oling

RGB LED chizig'idan 11 ta individual LEDni kesib oling, kesilgan joyning ikkala tomonida lehim yostiqchalarini qoldirish uchun markaziy chiziq bo'ylab kesib oling. Har bir yostiqning yuqori qismiga lehim bo'lagini torting.

3 -qadam: LEDlarni lehimlang

LEDlarni lehimlang
LEDlarni lehimlang
LEDlarni lehimlang
LEDlarni lehimlang
LEDlarni lehimlang
LEDlarni lehimlang

Kartaning o'rtasida mikrofonga mos keladigan teshik qiling. Yopishtiruvchi nuqtalardan foydalanib, neo piksellar halqasini va alohida LEDlarning halqasini ko'rsatilgandek joylashtiring, shunda romashka bir -biriga bog'lab qo'yilganda, LEDlarning barcha o'qlari bir xilda joylashadi.

Chiqish simlarini halqadan birinchi individual LEDga lehimlang, bunda musbat, topraklama va ma'lumot simlari ikkala LEDdagi bir xil yostiqchalarga mos keladi.

LEDlarni bir -biriga ulashning eng tezkor va eng oson yo'li - o'tish simini alohida mis iplarga ajratish. LEDlarning har bir lehimli prokladkasini ikkinchisiga ulash uchun bitta ipni ulang. Issiq lehimli temirni tezda tegizish kifoya, chunki prokladkalar oldingi bosqichda oldindan lehimlangan. Bu bosqichda simlarni kesishning o'rniga, ularni boshqa tomondan lehimli prokladkalarga yetib borish uchun ularni LEDning yuqori qismidan o'tkazing. Hech qanday simlar bir -biriga tegmasligiga ishonch hosil qiling, ularni prokladkalarga lehimlang va oxirgi LEDning kirish tomoniga o'ting.

Oxirgi LEDning chiqish tomoniga sim biriktirmang. Sizga tanish bo'lishi mumkin bo'lgan ba'zi LEDlardan farqli o'laroq, siz elektr tokini erga qaytaradigan dumaloq kontaktlarning zanglashiga hojat yo'q, chunki siz har doim alohida er va ijobiy chiziqlarni o'tkazgansiz. LEDlarning yuqori qismidan o'tadigan barcha simlarni kesib oling, shunda ular orasida faqat simlar bor.

Maslahat: Burilish burchaklaridan o'tayotganda simlar tegib ketmasligi uchun, har birini avval olib tashlangan plastmassa izolyatsiyasining kichik tasmasiga mahkamlang.

4 -qadam: orqa qismini tayyorlash

Orqa tomonni tayyorlash
Orqa tomonni tayyorlash
Orqa tomonni tayyorlash
Orqa tomonni tayyorlash

Oq kartada kirish simlari uchun yana bir teshik oching va ularni itarib yuboring.

Gobelen halqasining ikkita halqasini ajrating. Eng kichik halqaning tashqi qismini 5 ta gofrokartaga kesib oling va kesib oling. Halqa yasash uchun chetidan taxminan 2 sm masofada 3 ta aylananing o'rtasidan teshiklarni kesib oling va har biridan 5 mm kesing. Uzuklarni bir -birining ustiga yopishtiring, teshiklarni joylashtiring va kartaning qolgan doiralaridan biriga yopishtiring.

5 -qadam: Mikrofon va Arduino simlarini ulash

Mikrofon va Arduino simlarini ulash
Mikrofon va Arduino simlarini ulash
Mikrofon va Arduino simlarini ulash
Mikrofon va Arduino simlarini ulash

Ko'rsatilganidek, Arduino -ni mikrofon sensori va LED halqasiga ulang. Men TinkerCad -dan mikrofon tasviri bo'lmagan elektron sxemani yaratish uchun foydalandim, shuning uchun men simlarni ishlatadigan va simulyatsiyada xuddi shunday ishlaydigan boshqa sensorni almashtirdim.

Simulyatsiyani ko'rish uchun https://www.tinkercad.com/things/5cgI2wluA0c saytiga o'ting. Sensorga biriktirilgan aylanani mikrofonga urishni taqlid qilish uchun faol maydonga torting. LEDlar 6 -sonli chiziqlarda, shuning uchun simulyatsiyadagi oxirgi LED dizaynning bir qismi emas va yonmaydi.

6 -qadam: Arduino dasturlash

Arduino dasturlash
Arduino dasturlash

Kompyuteringizda Arduino IDE -ni oching va yangi eskizni ishga tushiring, eskizdagi hamma narsani o'chirib tashlang va uning o'rniga ushbu kodni nusxa ko'chiring.

// NeoPixel Ring oddiy eskiz (c) 2013 Shae Erisson // va https://www.hackster.io/ingo-lohs/first-test-37-s… dagi sensorli kod yordamida moslashtirilgan #include // Arduino NeoPixels -ga ulanganmi? #define PIN 6 // Arduino -ga nechta NeoPixel biriktirilgan? #define NUMPIXELS 23 // NeoPixel kutubxonasini o'rnatganimizda, biz unga qancha piksel va qaysi pinni signal yuborish kerakligini aytamiz. // E'tibor bering, eski NeoPixel chiziqlar uchun uchinchi parametrni o'zgartirish kerak bo'lishi mumkin-mumkin bo'lgan qiymatlar haqida qo'shimcha ma'lumot olish uchun strandtest // misolini ko'ring. Adafruit_NeoPixel piksellari = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int kechikish vaqti = 500; // yarim soniya uchun kechikish int sensorPin = A0; // sensori uchun kirish pinini tanlang int sensorValue = 0; // sensordan keladigan qiymatni saqlash uchun o'zgaruvchi const int threshold = 200; // analog kirish void sozlamalari oralig'idagi ixtiyoriy chegara darajasi () {piksel.begin (); // Bu NeoPixel kutubxonasini ishga tushiradi. piksel.setBrightness (20); // Yorqinlikni sozlash Serial.begin (9600); } void loop () {// NeoPiksellar to'plami uchun birinchi NeoPixel 0, ikkinchisi 1, piksellar soniga qadar minus bitta. // Dandelion LEDlari // piksel. Rang 0, 0, 0 dan 255, 255, 255 pikselgacha bo'lgan RGB qiymatlarini oladi. SetPixelColor (0, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (5, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (6, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (7, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (8, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (9, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (10, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (11, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.show (); // Bu yangilangan piksel rangini uskunaga yuboradi. kechikish (kechikish*6); // guldan urug 'boshiga bosqichma -bosqich o'tish // piksel. Rang 0, 0, 0 dan 255, 255, 255 gacha RGB qiymatlarini oladi. setPixelColor (0, piksel. Rang (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (5, piksel. Color (226, 246, 255)); // mavimsi oq piksellar.setPixelColor (6, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (7, piksel. Color (226, 246, 255)); // mavimsi oq piksellar.setPixelColor (8, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (9, piksel. Color (226, 246, 255)); // mavimsi oq piksellar.setPixelColor (10, piksellar. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // mavimsi oq. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.show (); // Bu yangilangan piksel rangini uskunaga yuboradi. kechikish (kechikish muddati*6); // Urug 'boshi LEDlari piksel.setPixelColor (0, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // o'chirilgan piksellar.setPixelColor (2, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // o'chirilgan piksellar.setPixelColor (4, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (5, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (6, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (7, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (8, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (9, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (10, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // o'chirilgan piksellar.setPixelColor (12, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.show (); // Bu yangilangan piksel rangini uskunaga yuboradi. kechikish (kechikish muddati*3); // Bir muddat kechikish (millisekundlarda). piksel.setPixelColor (0, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // o'chirilgan piksellar.setPixelColor (2, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (3, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (4, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (5, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (6, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (7, piksel. Color (255, 165, 0)); // Apelsin. piksel.setPixelColor (8, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (9, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (10, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.show (); // Bu yangilangan piksel rangini uskunaga yuboradi. kechikish (kechikish muddati*3); // Bir muddat kechikish (millisekundlarda). piksel.setPixelColor (0, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (1, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (2, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (3, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (4, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (5, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (6, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (7, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (8, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (9, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (10, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (11, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.show (); // Bu yangilangan piksel rangini uskunaga yuboradi. kechikish (kechikish); // Bir muddat kechikish (millisekundlarda). // Sensor qiymatini o'qing va uni ketma -ket monitor sensorida ko'ringValue = analogRead (sensorPin); Serial.println (sensorValue); kechikish (250); // Sensor qiymati chegaradan past bo'lsa -da, sensor qiymatini tekshiring va ketma -ket monitorda chop eting. Qachon qiymat chegaradan yuqori bo'lsa, eskiz davom etishi mumkin (sensorValue <threshold) {sensorValue = analogRead (sensorPin); Serial.println (sensorValue); kechikish (250); } // Birinchi shamol LEDlari piksel.setPixelColor (0, piksellar. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (5, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (6, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (7, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (8, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (9, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (10, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (11, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (12, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (13, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (14, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (15, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (16, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (17, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (18, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (19, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (20, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (21, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (22, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.show (); // Bu yangilangan piksel rangini uskunaga yuboradi. kechikish (kechikish); // Bir muddat kechikish (millisekundlarda). // Ikkinchi shamol LEDlari piksel.setPixelColor (0, piksellar. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (1, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (2, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (3, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (4, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (5, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (6, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (7, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (8, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (9, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (10, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (11, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (12, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (13, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (14, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (15, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (16, piksel. Color (0, 0, 0)); // O'chirilgan. piksel.setPixelColor (17, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (18, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (19, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (20, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (21, piksel. Color (226, 246, 255)); // Moviy oq. piksel.setPixelColor (22, piksel. Color (226, 246, 255)); // Moviy oq.piksel.show (); // Bu yangilangan piksel rangini uskunaga yuboradi. kechikish (2000); // Bir muddat kechikish (millisekundlarda). }

USB printer kabeli bilan Arduino -ni kompyuterga ulang

Asboblar> Kengash -ga o'ting va Arduino/Genuino UNO kengashini tanlang

Portga o'ting va taxtani to'g'ri USB portiga ulanganingizga ishonch hosil qiling. Agar ishonchingiz komil bo'lmasa, Arduino -ni tarmoqdan uzib, qaysi port ro'yxatdan yo'qolganini ko'rishingiz mumkin. Qayta ulang va port yana ro'yxatga olinadi.

Izohli fotosuratda ko'rsatilgan Yuklash belgisini bosish orqali eskizni yuklang. Arduino yuklanayotganda chiroqlar yonib turishi kerak. Yarim yuklashni tugatgandan so'ng, neo pikselli halqadagi LEDlar sariq rangda yonadi va keyin oq chiroqlarning to'liq halqasiga aylanadi. Devrenni sinab ko'rish uchun mikrofonga zarba bering. Tashqi qatlamlardagi LEDlar o'z navbatida yonishi kerak. Ishlamaydigan har qanday LEDdagi lehimni tekshiring.

7 -qadam: Ranglarni, yorqinlikni va sensor chegarasini o'zgartirish

Ranglarni o'zgartirish, yorqinlik va sensor chegarasi
Ranglarni o'zgartirish, yorqinlik va sensor chegarasi
Ranglarni o'zgartirish, yorqinlik va sensor chegarasi
Ranglarni o'zgartirish, yorqinlik va sensor chegarasi

Ranglar

LEDlarning ranglari RGB (Qizil Yashil Moviy) rang qiymatlari yordamida o'rnatiladi. Agar siz men ishlatganimdan ko'ra boshqa ranglardan foydalanishni xohlasangiz, kerakli ranglarning qiymatini onlayn RGB rang kalkulyatori yordamida topishingiz mumkin, masalan www.w3schools.com/colors/colors_rgb.asp

LEDni o'chirish uchun 0, 0, 0 qiymatlarini ishlating.

LEDni oq rangga o'rnatish uchun 255, 255, 255 qiymatlarini ishlating. Oldingi bosqichda kod 226, 246, 255 qiymatlari bilan mavimsi oq rang va 255, 165, 0 qiymatli to'q sariq rangdan foydalanilgan.

Yorqinlik

LEDlarning yorqinligini o'zgartirish uchun kodning bo'sh joyini sozlash bo'limiga o'ting va quyidagi kod qatorini toping:

piksel.setBrightness (20); // Yorqinlikni o'rnating

LEDlarning yorqinligini o'zgartirish uchun qavs ichidagi raqamni o'zgartiring.

Sensor chegarasi

Dasturni ishga tushirganingizda, NeoPixel halqasining yarmi gulni ko'rsatish uchun sariqdan boshlanadi va asta -sekin urug 'boshini ko'rsatish uchun oq LEDlarning to'liq doirasiga aylanadi. Bu vaqtda, dastur mikrofon sensori yonmaguncha to'xtatilishi kerak. Agar dastur davom etsa va diodning tashqi qatlamlarini sensordan faollashtirmasdan yondirsa, kodning bo'sh joyini sozlash bo'limiga o'ting va quyida ko'rsatilgan qiymatni pasaytiring. Agar dastur pauza qilsa, lekin sensorni urganingizda javob bermasa, qiymatni oshiring.

const int chegarasi = 200;

8 -qadam: O'chirish davrini doimiy qilish

O'chirish davrini doimiy qilish
O'chirish davrini doimiy qilish

Tarmoq ishlaganda, Arduino -ni kompyuterdan uzing va mikrofon sensorini taxtadan chiqarib oling. Xuddi shu kontaktlarning zanglashiga olib kelishi uchun Arduino -dan mikrofon sensoriga lehim simlari. Mikrofonni kartaning teshigidan orqadan suring. Agar kerak bo'lsa, kartani orqasida taxtaning tekis yotishi uchun mikrofonni ehtiyotkorlik bilan 90 gradus buking. Printer kabeli yordamida batareyani Arduino -ga ulang va butun ketma -ketlik ishlashi kerak.

9 -qadam: Rasm yarating

Rasm yaratish
Rasm yaratish

Matoningizga mikrofon kerak bo'lgan joyga teshik qiling. Men kichik lehimli temirni ishlatib, kichik tuynukni yoqdim va mikrofon o'rnatilmaguncha uni qaychi bilan qirqdim. Matoga gulingizni bo'yab tikib qo'ying. Bo'yoq quriganida, rasmni kashtado'zlik halqasiga mahkamlang va ortiqcha matoni qirqib oling va kichik chegara qoldiring.

Tarmoq elementlarining birortasi mato orqali ko'rinishini bilish uchun matoni va halqani vaqtincha teshikdan mikrofon ko'rsatib kartaning tepasiga qo'ying. Agar kerak bo'lsa, sxemani niqobli lenta qatlamlari bilan yoping, vaqti -vaqti bilan tekshiring, aks holda komponentlar boshqa ko'rinmaydi. LEDlar niqobli lenta qatlami orqali ko'rinadigan darajada yorqin. Agar siz ko'proq qatlamlarni qo'shishingiz kerak bo'lsa, 7 -bosqichda ko'rsatilgandek kodingizni sozlash orqali LEDlarni yanada yorqinroq qilishingiz mumkin.

Mato va halqani avvalgidek kartaning ustiga qo'ying va qo'shimcha matoni kartaning orqa tomoniga yopishtirib mahkamlang.

10 -qadam: uni birlashtirish

Birgalikda joylashtirish
Birgalikda joylashtirish

Oq kartani gofrirovka qilingan karton doirasiga yopishtiring, mikrofonni o'rab oling, lekin Arduino va batareya to'plami emas, ular karton chetidan simlar orqali o'tishi kerak.

Batareyaga kirish uchun kartonning oxirgi doirasini Velcro bilan mahkamlang. Kartondan devorga ilgakka osmoqchi bo'lgan joydan teshik qiling.

11 -qadam: Xatolardan o'rganish

Xatolardan o'rganish
Xatolardan o'rganish
Xatolardan o'rganish
Xatolardan o'rganish
Xatolardan o'rganish
Xatolardan o'rganish

Mening birinchi urinishim - elektron stikerlar va mis lenta. O'chirish stikerlari - bu mis yostiqli stikerlarga o'rnatiladigan kichik LEDlar. Ular Chi Tszining Chibitroniks kompaniyasidan keladi va men ularni mukammal bo'lardi deb o'yladim.

Men mis lenta yoki kumush lenta yordamida ishonchli ulanishni topa olmadim va stikerlarga simni lehimlaganimda, men hali ham faqat 9V batareyali 3 LEDli stikerni yoqishim mumkin edi. Ma'lum bo'lishicha, ular men o'ylagandek ko'p yorug'likli loyihalarga mo'ljallanmagan. Elektron stikerlar haqidagi veb -sahifani sinchkovlik bilan ko'rib chiqsam, 4 chiroqli loyiha boshqa turdagi LEDlar bo'lib chiqdi. Men elektron stikerlarni 12V batareya bilan quvvatlantira olardim, lekin rasmning ichiga sig'masligi juda katta bo'lardi.

Keyin tikiladigan LEDlarni sinab ko'rdim. Men faqat kuch va erga ega bo'lish, dasturlash mumkin bo'lgan LEDlarga qaraganda, elektr, er va ma'lumot uzatish liniyalariga ega bo'lish osonroq bo'ladi deb o'yladim. Ammo bu menda bo'lmagan qo'shimcha quvvat manbai va MOSFETga muhtoj bo'lgan murakkabroq sxema bo'lib chiqdi. Men tikiladigan NeoPixellardan foydalanishim mumkin edi, lekin ular qimmatroq.

Shunday qilib, bir nechta noto'g'ri boshlashdan so'ng, men dasturlashtiriladigan LEDlar qatoriga ega bo'ldim, ular arzon va ulardan foydalanish oson.

Tavsiya: