Мазмуну:

Интерактивдүү каакым: 11 кадам (сүрөттөр менен)
Интерактивдүү каакым: 11 кадам (сүрөттөр менен)

Video: Интерактивдүү каакым: 11 кадам (сүрөттөр менен)

Video: Интерактивдүү каакым: 11 кадам (сүрөттөр менен)
Video: Кол эмгек сабагы 2024, Июль
Anonim
Image
Image
NeoPixel шакегин даярдаңыз
NeoPixel шакегин даярдаңыз

Бул долбоор каакымдын интерактивдүү сүрөтүн кантип жасоону көрсөтөт. Ал жалбырактары үчүн LED диаметри бар сары гүлдөн башталат, андан кийин уруктар чачырап кетиши үчүн күйгүзүлө турган ак каакым саатка айланат.

Бул Ци Цзинин кооз чыгармачылыгына негизделген, анын сүрөтү Жесси Томпсон менен Захори Бертанын бир гүл дизайнынан шыктандырылган. Мен тигүүчүлүктү Ардуино менен айкалыштырган башталгыч долбоордун мисалы катары Англиянын Девон шаарындагы Tech and Textiles makerspace дубалына баруу үчүн аны кездемеден жасап, аны гобелендин алкагына түшүрдүм.

Ци Цзинин жеңил сүрөтү тартылган видео

Джесси Томпсон менен Захори Бертанын жалгыз гүл дизайнынын видеосу

Учурдагы эки долбоордун коду бар жана мен оңой эле ойлончумун, бирок көрсөтмөлөр минималдуу болчу жана мен иштеген ыкманы тапканга чейин бир нече жолу аракет кылдым. Ошентип, бул жерде өзүмдүн дизайнымдын жана твиттеримдин элементтерин бириктирген ремикстин толук нускамалары жана убакытты үнөмдөөчү кеңештер.

Мен үчүн эмне иштебегени жөнүндө маалымат аягында, эмне үчүн мен бул жолду тандагам дегендерге кызыкдар.

Ци Цзинин жеңил сүрөтү үчүн код

Жесси Томпсон менен Захори Бертанын кичинекей гүл сүрөтүнүн коду

Материалдар

  • Arduino UNO
  • 12 неопикселдүү Adafruit шакеги
  • 5V Strip 11 RGB LED
  • Үн микрофону сенсору
  • Jumper Wires
  • USB А туташуусу бар 5V Заряддалуучу Батарея
  • Принтер кабели (USB Aдан B кабели)
  • Клей чекиттери же ысык клей
  • A4 картасы
  • 30cm x 30cm Cream пахта кездемеси, мисалы, эски жаздык кап
  • Жашыл кездемеден жасалган боек
  • Браун пахта жип
  • 70см 50см Гофр картон, пицца кутучалары сыяктуу
  • Маскировка тасмасы
  • Сүрөт үчүн 9 дюймдук Саймалуу Хооп
  • 9 Өз алдынча жабышуучу Velcro табулатурасы

Куралдар

  • Arduino IDE жүктөлгөн компьютер
  • Лампочка жана коргошунсуз ширетүүчү
  • Сыноо схемасы үчүн нан тактасы
  • Wire Stripper/Cutters
  • Тигүү ийнеси
  • Pen
  • Кайчы

1 -кадам: NeoPixel шакегин даярдаңыз

NeoPixel шакегинин артындагы бийликке, жерге жана маалымат аянтчаларына ар кандай түстөгү зымдарды ээрчиңиз.

Эгер шакектин башка версиясы болсо, зымдарыңыз менин сүрөтүм менен бирдей абалда болбошу мүмкүн.

Кайсы зымдар киргизүү жана чыгаруу үчүн, ошондой эле оң, маалымат жана жерге тиешелүү экенин белгилеп коюңуз, анткени алар үчүн белгилер шакектин асты жагында жайгашкан жана шакек ордунда турганда көрүнбөйт.

2 -кадам: Светодиоддордун тилкелерин кесүү

Светодиоддордун тилкелерин кесип алыңыз
Светодиоддордун тилкелерин кесип алыңыз
Светодиоддордун тилкелерин кесип алыңыз
Светодиоддордун тилкелерин кесип алыңыз

RGB LED диапазонунан 11 жеке LEDди кесип, ортоңку сызык боюнча кесип, этикеткалардын эки жагына калтырыңыз. Ар бир төшөктүн үстүңкү жагына ширетүүчү мөмө тартыңыз.

3 -кадам: Светодиоддорду ширетүү

Светодиоддорду ширеткиле
Светодиоддорду ширеткиле
Светодиоддорду ширеткиле
Светодиоддорду ширеткиле
Светодиоддорду ширеткиле
Светодиоддорду ширеткиле

Картанын ортосуна микрофонго туура келүүчү тешик жасаңыз. Желим чекиттерин колдонуп, нео пикселдердин жана жеке LED диңгилдерин көрсөтүлгөндөй жайгаштырыңыз, бул жарык диоддорундагы бардык жебелер ромашка чынжырланып турганда дал ушундай сызыкта жайгашат.

Чыгуучу зымдарды биринчи жеке LEDга оң, жерге жана маалымат зымдарына эки LEDдин бирдей төшөмөлөрүнө дал келтирүү.

Светодиоддорду бириктирүүнүн эң тез жана эң оңой жолу - секирүүчү зымды өзүнчө жез жиптерге бөлүү. Жарык диоддорундагы ар бир ширетилген подкладкаларды экинчисине оң, маалыматка жана жерге дал келтирүү үчүн бир жипти тиркеңиз. Бул жөн гана ысык ширетүүчү темирге тез тийет, анткени прокаттар мурунку кадамда алдын ала ширетилген. Бул этапта зымдарды кесүүнүн ордуна, аларды башка тараптагы ширетилген төшөмөлөргө жетүү үчүн LEDдин үстүнөн алып өтүңүз. Эч кандай зымдардын бири -бирине тийгенине же тийбешине көзүңүз жетип, ошол аянтчаларга ээрчиңиз жана акыркы LEDдин кирүүчү тарабына чейин улантыңыз.

Акыркы LEDдын чыгыш жагына зым тиркебеңиз. Сизге тааныш болушу мүмкүн болгон кээ бир светодиоддордон айырмаланып, өзүнчө жерге жана позитивдүү линияларга зым тартып жүргөнүңүз үчүн, электр энергиясын жерге кайтаруучу тегерек схеманы бүтүрүүнүн кажети жок. Светодиоддордун үстүнөн өткөн бардык зымдарды кесип койгула, ошондо алардын ортосунда туташтыруучу зымдар гана болот.

Кеңеш: Тегерек бурчтарга баратканда зымдардын тийип кетпеши үчүн, алардын ар бирин кайра алынып салынган пластикалык изоляциянын кичинекей тилкесине кайра сайыңыз.

4 -кадам: Артка даярдоо

Артка даярдоо
Артка даярдоо
Артка даярдоо
Артка даярдоо

Кирүүчү зымдар үчүн ак картадан дагы бир тешик жасап, аларды өткөрүңүз.

Гобелен алкагынын эки шакегин бөлүңүз. Эң кичинекей шакектин сыртын 5 даана гофр картанын тегерегине тартыңыз жана кесип алыңыз. Чөйрөлөрдү жасоо үчүн четинен болжол менен 2 см аралыкта 3 тегеректин ортосуна тешиктерди кесип, ар биринин 5 мм тешигин кесип алыңыз. Шакектерди бири -биринин үстүнө жабыштырып, тешиктерин тизип, картанын калган чөйрөлөрүнүн бирине чаптаңыз.

5 -кадам: Микрофон менен Ардуинонун зымдары

Микрофон менен Ардуинонун зымдары
Микрофон менен Ардуинонун зымдары
Микрофон менен Ардуинонун зымдары
Микрофон менен Ардуинонун зымдары

Ардуинону микрофондун сенсоруна жана LED шакегине көрсөтүңүз. Мен TinkerCadны микрофондун сүрөтү жок схеманы түзүү үчүн колдондум, ошондуктан мен ошол эле пиндерди колдонгон жана симуляцияда ушундай иштеген башка сенсорду алмаштырдым.

Симуляцияны көрүү үчүн https://www.tinkercad.com/things/5cgI2wluA0c дарегине өтүңүз. Микрофонго үйлөөнү окшоштуруу үчүн сенсорго тиркелген тегеректи активдүү аймакка сүйрөңүз. Светодиоддор 6 тилкесинде, андыктан симуляциядагы акыркы LED дизайнга кирбейт жана күйбөйт.

6 -кадам: Arduino программалоо

Arduino программалоо
Arduino программалоо

Компьютериңизде Arduino IDEди ачыңыз жана жаңы эскизди баштаңыз Эскиздин ичиндеги бардыгын жок кылыңыз жана анын ордуна бул кодду көчүрүп чаптаңыз.

// NeoPixel Ring жөнөкөй эскизин колдонуу менен ылайыкташтырылган (c) 2013 Shae Erisson // жана сенсор коду https://www.hackster.io/ingo-lohs/first-test-37-s… #include // Arduino NeoPixelsке туташканбы? #define PIN 6 // Arduinoго канча NeoPixels тиркелет? #define NUMPIXELS 23 // NeoPixel китепканасын орноткондо, биз ага канча пикселди жана сигналдарды жөнөтүү үчүн кайсы пинди колдонуу керектигин айтабыз. // Эске алыңыз, эски NeoPixel тилкелери үчүнчү параметрди өзгөртүү керек болушу мүмкүн-мүмкүн болгон баалуулуктар жөнүндө көбүрөөк маалымат алуу үчүн strandtest // мисалын караңыз. Adafruit_NeoPixel пикселдери = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; // жарым секунддук кечигүү int sensorPin = A0; // сенсор int inputValue = 0 үчүн киргизүү пинин тандаңыз; // сенсордон келген маанини сактоо үчүн өзгөрмө const int threshold = 200; // аналогдук киргизүү боштугунун диапазонунда турган ээнбаш босоголук деңгээл () {piksel.begin (); // Бул NeoPixel китепканасын баштайт. piksel.setBrightness (20); // Жарыктыкты коюу Serial.begin (9600); } void loop () {// NeoPixels топтому үчүн биринчи NeoPixel 0, экинчиси 1, пикселдердин санына чейин минус бир. // Dandelion LEDs // pixel. Color 0, 0, 0дон 255, 255, 255 пикселге чейин RGB маанилерин алат.setPixelColor (0, пиксел. Түс (0, 0, 0)); // Өчүк. piksel.setPixelColor (1, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (2, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (3, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (4, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (5, пиксел. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (6, пиксел. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (7, пиксел. Color (255, 165, 0)); // Ачык күрөң. piksel.setPixelColor (8, pixel. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (9, пиксел. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (10, пиксел. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (11, pixel. Color (255, 165, 0)); // Ачык күрөң. piksel.setPixelColor (12, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (13, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (14, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (16, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (17, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (18, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (19, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (20, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (21, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (22, pixel. Color (0, 0, 0)); // Өчүк. piksel.show (); // Бул жаңыртылган пикселдин түсүн жабдыкка жөнөтөт. кечиктирүү (delayval*6); // Гүлдөн уруктун башына акырындык менен өзгөртүү // пиксель. Түс RGB маанилерин алат, 0, 0, 0дон 255, 255, 255 пикселге чейин.setPixelColor (0, пиксел. Түс (0, 0, 0)); // Өчүк. piksel.setPixelColor (1, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (2, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (3, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (4, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (5, пиксел. Color (226, 246, 255)); // bluishwhite pixel.setPixelColor (6, пиксел. Түс (255, 165, 0)); // Ачык күрөң. piksel.setPixelColor (7, пиксел. Color (226, 246, 255)); // bluishwhite piksel.setPixelColor (8, пиксел. Түс (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (9, пиксел. Color (226, 246, 255)); // bluishwhite piksel.setPixelColor (10, пиксел. Түс (255, 165, 0)); // Ачык күрөң. piksel.setPixelColor (11, пиксел. Color (226, 246, 255)); // bluishwhite. piksel.setPixelColor (12, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (13, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (14, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (16, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (17, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (18, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (19, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (20, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (21, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (22, pixel. Color (0, 0, 0)); // Өчүк. piksel.show (); // Бул жаңыртылган пикселдин түсүн жабдыкка жөнөтөт. кечиктирүү (delayval*6); // Үрөн башы LEDы пиксель.setPixelColor (0, пиксел. Түс (226, 246, 255)); // Көк ак. piksel.setPixelColor (1, pixel. Color (0, 0, 0)); // өчүрүү пиксел.setPixelColor (2, пиксел. Түс (226, 246, 255)); // Көк ак. piksel.setPixelColor (3, pixel. Color (0, 0, 0)); // өчүрүү пиксел.setPixelColor (4, пиксел. Түс (226, 246, 255)); // Көк ак. pixel.setPixelColor (5, пиксел. Color (255, 165, 0)); // Ачык күрөң. piksel.setPixelColor (6, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (7, пиксел. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (8, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (9, пиксел. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (10, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (11, пиксел. Color (226, 246, 255)); // өчүрүлгөн пикселдер.setPixelColor (12, пиксел. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (13, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (14, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (16, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (17, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (18, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (19, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (20, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (21, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (22, pixel. Color (0, 0, 0)); // Өчүк. piksel.show (); // Бул жаңыртылган пикселдин түсүн жабдыкка жөнөтөт. кечиктирүү (delayval*3); // Белгилүү бир убакытка кечигүү (миллисекунд менен). pixel.setPixelColor (0, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (1, pixel. Color (0, 0, 0)); // өчүрүү пиксел.setPixelColor (2, пиксел. Түс (226, 246, 255)); // Көк ак. pixel.setPixelColor (3, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (4, пиксел. Түс (226, 246, 255)); // Көк ак. pixel.setPixelColor (5, пиксел. Color (255, 165, 0)); // Ачык күрөң. piksel.setPixelColor (6, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (7, пиксел. Color (255, 165, 0)); // Ачык күрөң. pixel.setPixelColor (8, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (9, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (10, пиксел. Түс (226, 246, 255)); // Көк ак. piksel.setPixelColor (11, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (12, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (13, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (14, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (16, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (17, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (18, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (19, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (20, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (21, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (22, pixel. Color (0, 0, 0)); // Өчүк. piksel.show (); // Бул жаңыртылган пикселдин түсүн жабдыкка жөнөтөт. кечиктирүү (delayval*3); // Белгилүү бир убакытка кечигүү (миллисекунд менен). pixel.setPixelColor (0, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (1, пиксел. Түс (226, 246, 255)); // Көк ак. pixel.setPixelColor (2, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (3, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (4, пиксел. Түс (226, 246, 255)); // Көк ак. pixel.setPixelColor (5, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (6, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (7, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (8, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (9, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (10, пиксел. Color (226, 246, 255)); // Көгүлтүр ак. piksel.setPixelColor (11, пиксел. Color (226, 246, 255)); // Көгүлтүр ак. piksel.setPixelColor (12, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (13, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (14, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (16, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (17, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (18, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (19, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (20, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (21, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (22, pixel. Color (0, 0, 0)); // Өчүк. piksel.show (); // Бул жаңыртылган пикселдин түсүн жабдыкка жөнөтөт. кечиктирүү (кечиктирүү); // Белгилүү бир убакытка кечигүү (миллисекунд менен). // Сенсордун маанисин окуп, аны сериялык монитордо көрсөт sensorValue = analogRead (sensorPin); Serial.println (sensorValue); кечигүү (250); // Сенсордун мааниси босогодон аз болсо да, сенсордун маанисин текшерип, аны сериялык мониторго басып чыгарыңыз. Мааниси босогодон жогору болгондо, эскиз уланта берет (sensorValue <threshold) {sensorValue = analogRead (sensorPin); Serial.println (sensorValue); кечигүү (250); } // Алгачкы шамалдын диоддору пиксель.setPixelColor (0, пиксел. Түс (0, 0, 0)); // Өчүк. piksel.setPixelColor (1, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (2, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (3, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (4, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (5, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (6, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (7, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (8, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (9, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (10, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (11, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (12, пиксел. Color (226, 246, 255)); // Көк ак. pixel.setPixelColor (13, пиксел. Color (226, 246, 255)); // Көгүлтүр ак. piksel.setPixelColor (14, пиксел. Түс (226, 246, 255)); // Көгүлтүр ак. piksel.setPixelColor (15, пиксел. Түс (226, 246, 255)); // Көк ак. piksel.setPixelColor (16, пиксел. Түс (226, 246, 255)); // Көгүлтүр ак. pixel.setPixelColor (17, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (18, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (19, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (20, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (21, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (22, pixel. Color (0, 0, 0)); // Өчүк. piksel.show (); // Бул жаңыртылган пикселдин түсүн жабдыкка жөнөтөт. кечиктирүү (кечиктирүү); // Белгилүү бир убакытка кечигүү (миллисекунд менен). // Экинчи шамалдын диоддору пиксел.setPixelColor (0, пикселдер. Түсү (0, 0, 0)); // Өчүк. piksel.setPixelColor (1, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (2, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (3, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (4, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (5, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (6, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (7, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (8, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (9, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (10, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (11, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (12, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (13, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (14, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (15, pixel. Color (0, 0, 0)); // Өчүк. piksel.setPixelColor (16, pixel. Color (0, 0, 0)); // Өчүк. pixel.setPixelColor (17, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (18, пиксел. Түс (226, 246, 255)); // Көк ак. piksel.setPixelColor (19, пиксел. Түс (226, 246, 255)); // Көк ак. piksel.setPixelColor (20, пиксел. Color (226, 246, 255)); // Көк ак. piksel.setPixelColor (21, пиксел. Түс (226, 246, 255)); // Көк ак. piksel.setPixelColor (22, пиксел. Түс (226, 246, 255)); // Көк ак.piksel.show (); // Бул жаңыртылган пикселдин түсүн жабдыкка жөнөтөт. кечигүү (2000); // Белгилүү бир убакытка кечигүү (миллисекунд менен). }

USB принтер кабели менен компьютериңизге Arduino тиркеңиз

Tools> Boardго барып, Arduino/Genuino UNO тактасын тандаңыз

Портко өтүп, такта туура USB портуна туташтырылганын текшериңиз. Эгер ишенбесеңиз, Arduino -ны сууруп, тизмеден кайсы порт жок болуп жатканын көрө аласыз. Аны кайра сайыңыз жана порт кайра тизмеде болот.

Аннотацияланган сүрөттө көрсөтүлгөн Жүктөө сүрөтчөсүн чыкылдатып, эскизди жүктөңүз. Жарыктар жүктөлүп жатканда Arduinoдо жаркырап турушу керек. Жарык диоддордун жарымын жүктөп бүткөндө нео пикселдик шакекчеге сары түс күйүп, андан кийин ак жарыктардын толук шакегине айланат. Районду текшерүү үчүн микрофонду күйгүзүңүз. Сырткы катмардагы светодиоддор кезеги менен күйүшү керек. Иштебеген ар кандай светодиоддордо ширетүүнү текшериңиз.

7 -кадам: Түстөрдү, Жарыктыкты жана Сенсордун босогосун өзгөртүү

Түстөрдү өзгөртүү, жарыктык жана сенсордук босого
Түстөрдү өзгөртүү, жарыктык жана сенсордук босого
Түстөрдү өзгөртүү, жарыктык жана сенсордук босого
Түстөрдү өзгөртүү, жарыктык жана сенсордук босого

Түстөр

Светодиоддордун түстөрү RGB (Red Green Blue) түс баалуулуктарын колдонуу менен коюлат. Эгерде сиз мен колдонгондон башка түстөрдү колдонууну кааласаңыз, www.w3schools.com/colors/colors_rgb.asp сыяктуу онлайн түстүү RGB калкуляторун колдонуу менен сиз каалаган түстөрдүн баалуулугун таба аласыз.

Жарыкты өчүрүү үчүн 0, 0, 0 маанилерин колдонуңуз.

Светодиодду ак түскө коюу үчүн 255, 255, 255 маанилерин колдонуңуз. Мурунку кадамдагы код 226, 246, 255 мааниси бар көк түстү жана 255, 165, 0 мааниси бар кызгылт сары түстү колдонот.

Жарыктык

Светодиоддордун жарыгын өзгөртүү үчүн коддун боштук бөлүмүнө өтүп, төмөнкү кодду табыңыз:

piksel.setBrightness (20); // Жарыктыкты коюу

Светодиоддордун жарыгын өзгөртүү үчүн кашаанын номерин түзөтүңүз.

Сенсор босогосу

Программаны иштеткенде, NeoPixel шакегинин жарымы гүлдү чагылдыруу үчүн сарыдан башталат жана акырындык менен уруктун башын көрсөтүү үчүн ак диоддордун толук тегерекчесине өзгөрөт. Бул учурда программа микрофондун сенсоруна соккуңуз келгенге чейин тындырылышы керек. Эгерде программа уланып, сенсордон активдештирилбестен LEDдын тышкы катмарын күйгүзсө, анда коддун боштук орнотуу бөлүмүнө өтүп, төмөндө көрсөтүлгөн маанини төмөндөтүңүз. Программа тыныгып, бирок сенсорго соккондо жооп бербесе, маанини жогорулатыңыз.

const int threshold = 200;

8 -кадам: Районду туруктуу кылуу

Районду туруктуу кылуу
Районду туруктуу кылуу

Район иштеп жатканда, Arduino -ны компьютерден сууруп, микрофондун сенсорун нан тактасынан алып салыңыз. Ошол эле схеманы туруктуу кылуу үчүн Arduinoдан микрофон сенсоруна чейин ширетүүчү зымдар. Микрофонду картанын тешигинен арт жактан басыңыз. Зарыл болсо, такта картанын артында жатышы үчүн микрофонду 90 градуска кылдаттык менен бүгүңүз. Батарейканы Arduinoго принтер кабелин туташтырыңыз жана бардык ырааттуулук иштеши керек.

9 -кадам: Сүрөт түзүү

Сүрөт түзүү
Сүрөт түзүү

Тканиңизге микрофон каалаган жерден тешик жасаңыз. Мен кичинекей тешикти күйгүзүү үчүн ысык ширеткичти колдондум жана микрофон орнотулганга чейин кайчы менен кыркып салдым. Гүлүңүздү кездемеге боеп, тигиңиз. Качан боёк кургатылганда, сүрөттү сайма алкагына бекитип, ашыкча кездемени кыркып, кичинекей чек калтырыңыз.

Тизмедеги компоненттердин бирөөсү кездемеден көрүнүп турганын билүү үчүн, кездемени жана обручту тешик аркылуу микрофон менен картанын үстүнө убактылуу коюңуз. Керек болсо, схеманы компоненттери көрүнбөй калганга чейин мезгил -мезгили менен текшерип туруучу маска лента менен жабыңыз. Светодиоддор жаркырап турат, аларды маска скотчунун катмары аркылуу көрүүгө болот. Эгерде сиз дагы катмарларды кошушуңуз керек болсо, анда 7 -кадамда көрсөтүлгөндөй, кодуңузду тууралап LEDди жаркырата аласыз.

Ткани менен обручту мурдагыдай эле кайра карттын үстүнө коюп, кошумча кездемени картанын артына жабыштыруу менен бекемдеңиз.

10 -кадам: Аны бириктирүү

Аны бириктирүү
Аны бириктирүү

Ак картаны гофр картонунун тегерегине чаптаңыз, бирок микрофонду жабат, бирок Arduino менен батареянын пакетин эмес, алар тешиктерден өткөн зымдар менен картондун четин айланып өтүшү керек.

Батареяга жетүү үчүн картондун акыркы тегерегин Velcro менен чаптаңыз. Картонду дубалга илгичке илип койгуңуз келген тешикти жасаңыз.

11 -кадам: каталардан сабак алуу

Катадан сабак алуу
Катадан сабак алуу
Катадан сабак алуу
Катадан сабак алуу
Катадан сабак алуу
Катадан сабак алуу

Биринчи аракетим райондук стикерлер жана жез лента менен болду. Райондук наклейкалар - бул кичинекей светодиоддук бети, жез төшөмөлөрү бар чаптамаларга орнотулган. Алар Ци Цзинин Chibitroniks компаниясынан келишет жана мен алар идеалдуу болот деп ойлогом.

Мен жез лента же күмүш лента менен ишенимдүү байланышты ала алган жокмун жана зымдарды стикерлерге кошкондо, мен дагы 9В батарейканы колдонуу менен жарык берүү үчүн 3 LED стикерлерин ала алчумун. Алар мен ойлогондой көп жарык долбоорлорго арналбаганы белгилүү болду. Мен райондук стикерлер тууралуу веб -баракчаны жакшылап карасам, 4 чырагы бар проект LEDдин башка түрү болуп чыкты. Мен 12В батарейкасы менен райондук стикерлерди кубаттай алмакмын, бирок сүрөттүн ичине батпай турганчалык чоң болмок.

Анан тигилүүчү LED диоддорун сынап көрдүм. Мен кубаттуулугу, жери жана маалымат линиялары бар, программалоочу светодиоддорго караганда, бир гана күчкө жана жерге ээ болууну оңой деп ойлогом. Бирок менде жок болгон кошумча энергия булагы жана MOSFETке муктаж болгон татаалыраак схема болуп чыкты. Мен тигилүүчү NeoPixelsти колдонсо болмок, бирок алар кымбатыраак.

Ошентип, бир нече жалган башталгандан кийин, мен арзан жана колдонууга оңой программалоочу LED диапазону менен аяктадым.

Сунушталууда: