Sisukord:

Interaktiivne võilill: 11 sammu (piltidega)
Interaktiivne võilill: 11 sammu (piltidega)

Video: Interaktiivne võilill: 11 sammu (piltidega)

Video: Interaktiivne võilill: 11 sammu (piltidega)
Video: Teivas 12 sammu 5.11.2011.wmv 2024, Juuli
Anonim
Image
Image
Valmistage ette NeoPixel Ring
Valmistage ette NeoPixel Ring

See projekt näitab, kuidas teha võilillest interaktiivset pilti. See algab kollase lillena, millel on kroonlehtedega LED -id, ja muutub seejärel valgeks võilillekellaks, millele saab puhuda, et seemned laiali valguda.

See põhineb Qi Jie kaunil kunstiteosel, mille pilt on inspireeritud Jessie Thompsoni ja Zachory Berta ühest lillekujundusest. Tegin oma kangale ja raamisin selle seinavaibaga, et minna Inglismaal Devonis asuva Tech and Textiles tegijaruumi seinale, näitena algajatele mõeldud projektist, mis ühendab õmblemise Arduinoga.

Video Qi Jie valgusmaalingust

Video ühe lille kujundusest, autorid Jessie Thompson ja Zachory Berta

Mõlema olemasoleva projekti kood on saadaval ja arvasin, et seda on lihtne teha, kuid juhised olid minimaalsed ja kulus mitu katset, enne kui leidsin meetodi, mis töötas. Nii et siin on täielikud juhised ja aja kokkuhoiu näpunäited remiksiks, mis ühendab nii kujunduse elemente kui ka minu enda kohandusi.

Üksikasjad selle kohta, mis minu jaoks ei töötanud, on lõpus kõigile, kes on huvitatud sellest, miks ma selle tee valisin.

Qi Jie valgusmaali kood

Jessie Thompsoni ja Zachory Berta väikese lillepildi kood

Materjalid

  • Arduino UNO
  • Adafruit Ring 12 neopikselist
  • 5 V riba 11 RGB LED -iga
  • Helimikrofoni andur
  • Jumper juhtmed
  • 5 V laetav aku koos USB A ühendusega
  • Printerikaabel (USB A kuni B kaabel)
  • Liimitäpid või kuumliim
  • A4 kaart
  • 30 cm x 30 cm kreemjas puuvillane kangas, näiteks vana padjapüür
  • Roheline kangavärv
  • Pruun puuvillane niit
  • 70 cm x 50 cm lainepapp, näiteks pitsakarbid
  • Maskeeriv teip
  • 9 -tolline tikkimisrõngas pildi raamimiseks
  • 9 isekleepuvat takjapaela

Tööriistad

  • Arduino IDE -ga arvuti on alla laaditud
  • Jootekolb ja pliivaba joodis
  • Leivaplaat ahela testimiseks
  • Traadi eemaldaja/lõikurid
  • Õmblusnõel
  • Pliiats
  • Käärid

Samm: valmistage NeoPixeli rõngas ette

Jootke erinevat värvi juhtmed iga NeoPixeli rõnga tagaküljel oleva toite-, maandus- ja andmeploki külge.

Kui teil on rõnga teine versioon, ei pruugi teie juhtmed olla minu fotoga samas asendis.

Märkige üles, millised juhtmed on sisendiks ja väljundiks, samuti positiivsed, andmed ja maandus, kuna nende märgistused on rõnga alumisel küljel ja pole rõnga asendis nähtavad.

Samm: lõigake valgusdioodide ribad

Lõika valgusdioodide ribad
Lõika valgusdioodide ribad
Lõika valgusdioodide ribad
Lõika valgusdioodide ribad

Lõika RGB -valgusdioodide ribalt välja 11 üksikut LED -i, hoolitsedes selle eest, et lõikamine piki keskjoont jääks, nii et mõlemale poole lõike jääksid jootmispadjad. Tupsutage iga padja ülemisele küljele jootepulk.

Samm: jootke valgusdioodid

Jootke LED -id
Jootke LED -id
Jootke LED -id
Jootke LED -id
Jootke LED -id
Jootke LED -id

Tehke kaardi keskele auk, mis mahutab mikrofoni. Liimipunktide abil kleepige uuspikslite rõngas ja üksikud valgusdioodid joonisel näidatud asendisse, veendudes, et kõik valgusdioodide nooled asetseksid samamoodi aheldatuna.

Jootke väljundjuhtmed rõngast esimese esimese LED -i külge, sobitades positiivsed, maandus- ja andmejuhtmed mõlema LED -i samadele padjadele.

Kiireim ja lihtsaim viis, mille leidsin valgusdioodide ühendamiseks, on hüppaja juhtme eraldamine eraldi vasktükkideks. Kinnitage üks kiud, et siduda LED -ide joodetud padjad järgmisega, vastates positiivsele, andmetele ja maandusele. See võtab lihtsalt kuuma jootekolbi kiire puudutuse, kuna padjad on eelmises etapis eelnevalt joodetud. Selle asemel, et selles etapis juhtmeid lõigata, viige need üle LED -i ülaosa, et jõuda teisel küljel asuvate joodetud padjadeni. Veenduge, et juhtmed ei ristuks ega puutuks üksteisega kokku, jootke need padjad ja jätkake ringi kuni viimase LED -i sisendini.

Ärge kinnitage traati viimase LED -i väljundi külge. Erinevalt mõnest teile tuttavast valgusdioodist ei pea te täitma ümmargust vooluringi, mis võtab voolu tagasi maandusse, kuna olete kogu aja juhtinud eraldi maandust ja positiivseid jooni. Katkestage kõik juhtmed, mis lähevad üle valgusdioodide ülaosa, nii et nende vahel on ainult juhtmed.

Näpunäide. Et vältida juhtmete kokkupuudet nurkade ümberminemisel, keerake igaüks tagasi eelnevalt eemaldatud väikesesse plastisolatsiooniriba.

Samm: selja ettevalmistamine

Selja ettevalmistamine
Selja ettevalmistamine
Selja ettevalmistamine
Selja ettevalmistamine

Tehke valge auk sisendjuhtmete jaoks veel üks auk ja suruge need läbi.

Eraldage seinavaiba kaks rõngast. Joonista väikseima rõnga väliskülg 5 lainepapile ja lõigake välja. Lõigake ringide kolme ringi keskele umbes 2 cm kaugusele servadest rõngaste tegemiseks augud ja lõigake kummassegi 5 mm pilu. Liimige rõngad üksteise peale, joondage pilud ja kleepige see ühe ülejäänud kaardiringi külge.

Samm: mikrofoni ja Arduino ühendamine

Mikrofoni ja Arduino juhtmestik
Mikrofoni ja Arduino juhtmestik
Mikrofoni ja Arduino juhtmestik
Mikrofoni ja Arduino juhtmestik

Ühendage Arduino mikrofoni anduri ja LED -rõngaga, nagu näidatud. Lülitusskeemi loomiseks kasutasin TinkerCadi, millel pole mikrofonipilti, nii et olen asendanud teise anduri, mis kasutab samu tihvte ja töötab simulatsioonis samamoodi.

Simulatsiooni vaatamiseks minge aadressile https://www.tinkercad.com/things/5cgI2wluA0c. Lohistage andurile kinnitatud ring aktiivsele alale, et simuleerida mikrofoni puhumist. Valgusdioodid on ribade kaupa kuuel, nii et simulatsiooni viimane LED ei kuulu disaini ja ei sütti.

6. samm: Arduino programmeerimine

Arduino programmeerimine
Arduino programmeerimine

Avage arvutis Arduino IDE ja alustage uut visandit. Kustutage kõik visandi sisemused ja kopeerige ning kleepige see kood

// Kohandatud NeoPixel Ring lihtsa visandi abil (c) 2013 Shae Erisson // ja anduri kood saidilt https://www.hackster.io/ingo-lohs/first-test-37-s… #include // Milline nööpnõel Arduino on ühendatud NeoPixelitega? #define PIN 6 // Mitu NeoPikslit on Arduino külge kinnitatud? #define NUMPIXELS 23 // NeoPixeli raamatukogu seadistamisel ütleme sellele, mitu pikslit ja millist tihvti signaalide saatmiseks kasutada. // Pange tähele, et vanemate NeoPixeli ribade puhul peate võib-olla muutma kolmandat parameetrit-lisateavet võimalike väärtuste kohta leiate näitest strandtest //. Adafruit_NeoPixel pikslid = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; // viivitus pooleks sekundiks int sensorPin = A0; // valige anduri sisendpulk int sensorValue = 0; // muutuja andurilt tuleva väärtuse salvestamiseks konst int lävi = 200; // suvaline läviväärtus, mis jääb analoogsisendi tühimike seadistuste vahemikku () {pixels.begin (); // See initsialiseerib NeoPixeli kogu. pikslid.setBrightness (20); // Määra heledus Serial.begin (9600); } void loop () {// NeoPikslite komplekti puhul on esimene NeoPixel 0, teine 1, kuni pikslite arvuni miinus üks. // Võilille LED -id // pikslit. Värv võtab RGB väärtused, 0, 0, 0 kuni 255, 255, 255 pikslit. SetPixelColor (0, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (1, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (2, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (3, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (4, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (5, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (6, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (7, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (8, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (9, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (10, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (11, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (12, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (13, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (14, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (16, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (17, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (18, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (19, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (20, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (21, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (22, pikslit. Värv (0, 0, 0)); // Väljas. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi. delay (delayval*6); // Järk -järguline üleminek lillelt seemnepeale // pikslit. Värv võtab RGB väärtused vahemikus 0, 0, 0 kuni 255, 255, 255 pikslit. setPixelColor (0, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (1, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (2, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (3, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (4, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (5, pikslit. Värv (226, 246, 255)); // sinakasvalged pikslid.setPixelColor (6, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (7, pikslit. Värv (226, 246, 255)); // sinakasvalged pikslid.setPixelColor (8, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (9, pikslit. Värv (226, 246, 255)); // sinakasvalged pikslid.setPixelColor (10, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (11, pikslit. Värv (226, 246, 255)); // sinakasvalge. pixels.setPixelColor (12, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (13, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (14, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (16, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (17, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (18, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (19, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (20, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (21, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (22, pikslit. Värv (0, 0, 0)); // Väljas. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi. viivitus (delayval*6); // Seemnepea LED -id pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (1, pikslit. Värv (0, 0, 0)); // off pixels.setPixelColor (2, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (3, pikslit. Värv (0, 0, 0)); // off pixels.setPixelColor (4, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (5, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (6, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (7, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (8, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (9, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (10, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (11, pikslit. Värv (226, 246, 255)); // off pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Väljas. pixels.setPixelColor (13, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (14, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (16, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (17, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (18, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (19, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (20, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (21, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (22, pikslit. Värv (0, 0, 0)); // Väljas. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi. viivitus (delayval*3); // Viivitus teatud aja jooksul (millisekundites). pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (1, pikslit. Värv (0, 0, 0)); // off pixels.setPixelColor (2, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (3, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (4, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (5, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (6, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (7, pikslit. Värv (255, 165, 0)); // Oranž. pixels.setPixelColor (8, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (9, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (10, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (11, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (12, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (13, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (14, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (16, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (17, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (18, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (19, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (20, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (21, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (22, pikslit. Värv (0, 0, 0)); // Väljas. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi. viivitus (delayval*3); // Viivitus teatud aja jooksul (millisekundites). pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (1, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (2, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (3, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (4, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (5, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (6, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (7, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (8, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (9, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (10, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (11, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (12, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (13, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (14, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (16, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (17, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (18, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (19, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (20, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (21, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (22, pikslit. Värv (0, 0, 0)); // Väljas. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi. viivitus (viivitus); // Viivitus teatud aja jooksul (millisekundites). // Anduri väärtuse lugemine ja kuvamine jadamonitoris sensorValue = analogRead (sensorPin); Serial.println (sensorValue); viivitus (250); // Kuigi anduri väärtus on künnisest väiksem, kontrollige anduri väärtust ja printige see jadamonitorile. Kui väärtus on üle künnise, saab eskiisi jätkata, kui (sensorValue <künnis) {sensorValue = analogRead (sensorPin); Serial.println (sensorValue); viivitus (250); } // Esimesed tuule LED -id pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Väljas. pixels.setPixelColor (1, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (2, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (3, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (4, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (5, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (6, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (7, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (8, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (9, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (10, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (11, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (12, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (13, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (14, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (15, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (16, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (17, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (18, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (19, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (20, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (21, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (22, pikslit. Värv (0, 0, 0)); // Väljas. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi. viivitus (viivitus); // Viivitus teatud aja jooksul (millisekundites). // Teise tuule LED -id pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Väljas. pixels.setPixelColor (1, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (2, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (3, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (4, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (5, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (6, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (7, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (8, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (9, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (10, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (11, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (12, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (13, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (14, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (15, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (16, pikslit. Värv (0, 0, 0)); // Väljas. pixels.setPixelColor (17, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (18, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (19, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (20, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (21, pikslit. Värv (226, 246, 255)); // Sinakasvalge. pixels.setPixelColor (22, pikslit. Värv (226, 246, 255)); // Sinakasvalge.pixels.show (); // See saadab riistvarale uuendatud pikslivärvi. viivitus (2000); // Viivitus teatud aja jooksul (millisekundites). }

Ühendage Arduino arvutiga USB -printerikaabli abil

Avage Tools> Board ja valige Arduino/Genuino UNO plaat

Minge porti ja veenduge, et plaat oleks ühendatud õige USB -pordiga. Kui te pole kindel, saate Arduino vooluvõrgust lahti ühendada ja vaadata, milline port loendist kaob. Ühendage see uuesti ja port kuvatakse uuesti.

Visand laadige üles, klõpsates üleslaaditud ikoonil, mis on märgitud fotol. Arduino peaks üleslaadimise ajal vilkuma. Kui pool üleslaadimist on lõpetatud, süttib neopikslirõnga LED -id kollaselt ja seejärel valgete tulede täisringiks. Lülitage vooluahela testimiseks sisse mikrofon. Väliskihtides olevad LED -id peaksid omakorda süttima. Kontrollige jootet kõigi LED -ide kohta, mis ei tööta.

Samm: värvide, heleduse ja anduri läve muutmine

Värvide, heleduse ja anduri läve muutmine
Värvide, heleduse ja anduri läve muutmine
Värvide, heleduse ja anduri läve muutmine
Värvide, heleduse ja anduri läve muutmine

Värvid

Valgusdioodide värvid määratakse RGB (punane roheline sinine) värviväärtuste abil. Kui eelistate kasutada erinevaid värve kui mina, leiate soovitud värvide väärtused veebipõhise RGB värvikalkulaatori abil, näiteks www.w3schools.com/colors/colors_rgb.asp

LED -i väljalülitamiseks kasutage väärtusi 0, 0, 0.

Valgusdioodi valgeks seadmiseks kasutage väärtusi 255, 255, 255. Eelmise sammu kood kasutab sinakasvalget väärtustega 226, 246, 255 ja oranži väärtustega 255, 165, 0.

Heledus

Valgusdioodide heleduse muutmiseks minge koodi tühja seadistamise sektsiooni ja leidke järgmine koodirida:

pikslid.setBrightness (20); // Heleduse määramine

Muutke sulgudes olevat numbrit, et muuta valgusdioodide heledust.

Anduri lävi

Programmi käivitades hakkab pool NeoPixeli rõngast kollast värvi tähistama lilli ja muutub järk -järgult valgete LED -ide ringiks, et kujutada seemnepea. Sel hetkel peaks programm peatuma, kuni puhute mikrofoni andurile. Kui programm jätkub ja süttib valgusdioodide välimine kiht ilma andurilt aktiveerimata, minge koodi tühimike seadistuste sektsiooni ja alandage allpool näidatud väärtust. Suurendage väärtust, kui programm peatab, kuid ei reageeri, kui andurile puhute.

const int lävi = 200;

8. samm: ahela püsivamaks muutmine

Ringraja püsivamaks muutmine
Ringraja püsivamaks muutmine

Kui vooluring töötab, ühendage Arduino arvutist lahti ja eemaldage mikrofoni andur leivaplaadilt. Jootke juhtmed Arduinost mikrofoni andurini, et muuta sama vooluahel püsivamaks. Lükake mikrofon tagant läbi kaardi augu. Vajadusel painutage mikrofoni ettevaatlikult 90 kraadi võrra, et plaat saaks kaardi taga lamada. Kinnitage aku printeri kaabli abil Arduino külge ja kogu jada peaks toimima.

9. samm: looge pilt

Loo Pilt
Loo Pilt

Tehke oma kangasse auk, kuhu soovite mikrofoni. Kasutasin kuuma jootekolviga väikese augu põletamiseks ja trimmisin seda kääridega, kuni mikrofon sobis. Värvige ja õmblege oma lill kangale. Kui värv kuivab, kinnitage värv tikkimisrõnga külge ja lõigake liigne kangas ära, jättes väikese piiri.

Et näha, kas mõni vooluringi komponent paistab kangast läbi, asetage kangas ja rõngas ajutiselt kaardi peale nii, et mikrofon paistaks läbi augu. Vajadusel katke vooluring voolikihiga, aeg -ajalt kontrollides, kuni komponente enam ei kuvata. LED -id on piisavalt heledad, et neid oleks võimalik näha läbi maalriteibi kihi. Kui peate veelgi rohkem kihte lisama, saate LED -e heledamaks muuta, kohandades oma koodi, nagu on näidatud 7. sammus.

Asetage kangas ja rõngas kaardi peale tagasi nagu varem ja kinnitage kohale, liimides lisakanga kaardi tagaküljele.

10. samm: pange see kokku

Selle kokku panemine
Selle kokku panemine

Liimige valge kaart lainepapi ringile, lisades mikrofoni, kuid mitte Arduino ja akupakki, mis peavad läbima papi serva ja pilud läbivad juhtmed.

Kinnitage viimane papist ring Velcro abil, nii et pääsete juurde akule. Tehke papist auk, kuhu soovite selle seinale konksu külge riputada.

11. samm: vigadest õppimine

Õppimine vigadest
Õppimine vigadest
Õppimine vigadest
Õppimine vigadest
Õppimine vigadest
Õppimine vigadest

Minu esimene katse oli vooluringi kleebiste ja vaskteibiga. Vooluahela kleebised on väikesed LED -id, mis on kinnitatud vaskpadjadega kleebistele. Nad on pärit Qi Jie ettevõttest Chibitroniks ja ma arvasin, et nad oleksid täiuslikud.

Ma ei suutnud vasest linti või hõbedast linti kasutades usaldusväärset ühendust luua ja kui kleebiste külge traati jootsin, sain 9V patarei abil siiski valgust ainult 3 LED -kleebisega. Selgus, et need pole mõeldud mitme valgusprojekti jaoks, nagu ma lootsin. Kui vaatasin lähemalt vooluringi kleebistega seotud veebilehte, osutus 4 tulega projekt teist tüüpi LED -ideks. Ma saaksin vooluringi kleebiseid toita 12 V akuga, kuid see oleks pildi sisse mahutamiseks liiga mahukas.

Siis proovisin õmmeldavaid LED -e. Ma arvasin, et ainult toite ja maandusega oleks lihtsam juhtmeid ühendada kui programmeeritavaid LED -e, millel on toide, maandus ja andmeside. Kuid see osutus keerukamaks vooluringiks, mis vajab täiendavat toiteallikat ja MOSFET -i, mida mul polnud. Oleksin võinud kasutada õmmeldavaid NeoPixeleid, kuid need on kallimad.

Nii et pärast mõningaid valestarte sain lõpuks programmeeritavate valgusdioodide jada, mis on odavad ja hõlpsasti kasutatavad.

Soovitan: