Innholdsfortegnelse:

Interaktiv løvetann: 11 trinn (med bilder)
Interaktiv løvetann: 11 trinn (med bilder)

Video: Interaktiv løvetann: 11 trinn (med bilder)

Video: Interaktiv løvetann: 11 trinn (med bilder)
Video: Куликовская Битва. Литература в основе официальных доказательств. 2024, November
Anonim
Image
Image
Forbered NeoPixel -ringen
Forbered NeoPixel -ringen

Dette prosjektet viser hvordan du lager et interaktivt bilde av en løvetann. Den starter som en gul blomst med lysdioder for kronbladene, og endres deretter til en hvit løvetannsklokke, som kan blåses på for å få frøene til å spre seg.

Det er basert på et vakkert kunstverk av Qi Jie, hvis bilde var inspirert av et enkelt blomsterdesign av Jessie Thompson og Zachory Berta. Jeg lagde mitt på stoff og innrammet det i en tapetbøyle for å gå på veggen i Tech and Textiles makerpace i Devon, England, som et eksempel på et nybegynnerprosjekt som kombinerer sying med Arduino.

Video av lysmaleri av Qi Jie

Video av enkelt blomsterdesign av Jessie Thompson og Zachory Berta

Koden for begge eksisterende prosjekter er tilgjengelig, og jeg trodde det ville være enkelt å lage, men instruksjonene var minimale og det tok flere forsøk før jeg fant en metode som fungerte. Så her er de fulle instruksjonene og tidsbesparende tips for en remiks som kombinerer elementer fra både design og egne tweaks.

Detaljer om hva som ikke fungerte for meg er til slutt for alle som er interessert i hvorfor jeg valgte denne måten.

Kode for lysmaling av Qi Jie

Kode for lite blomsterbilde av Jessie Thompson og Zachory Berta

Materialer

  • Arduino UNO
  • Adafruit Ring på 12 Neopixels
  • 5V stripe med 11 RGB lysdioder
  • Lydmikrofonsensor
  • Jumper Wires
  • 5V oppladbart batteri med USB A -tilkobling
  • Skriverkabel (USB A til B -kabel)
  • Limprikker eller varmt lim
  • A4 -kort
  • 30cm x 30cm Cream Cotton Fabric, for eksempel et gammelt putetrekk
  • Grønn stoffmaling
  • Brun bomullstråd
  • 70cm x 50cm Bølgepapp, for eksempel pizzabokser
  • Maskeringstape
  • 9 tommers broderiramme for å ramme inn bildet
  • 9 Selvklebende borrelåsfliker

Verktøy

  • En datamaskin med Arduino IDE lastet ned
  • Loddejern og blyfritt loddetinn
  • Brødbrett for testkrets
  • Wire stripper/kuttere
  • Synål
  • Penn
  • Saks

Trinn 1: Forbered NeoPixel -ringen

Lodd forskjellige ledninger til hver av strøm-, bakke- og datapadene på baksiden av NeoPixel -ringen.

Hvis du har en annen versjon av ringen, er det ikke sikkert at ledningene er i samme posisjon som bildet mitt.

Noter hvilke ledninger som er for inngang og utgang samt positive, data og bakken fordi merkingen for disse er på undersiden av ringen og ikke vil være synlig når ringen er på plass.

Trinn 2: Klipp stripene med lysdioder

Klipp stripene med lysdioder
Klipp stripene med lysdioder
Klipp stripene med lysdioder
Klipp stripene med lysdioder

Klipp 11 individuelle lysdioder fra en stripe med RGB -lysdioder, og pass på å kutte langs senterlinjen for å etterlate loddeputer på begge sider av kuttet. Legg en klatt loddetinn på oversiden av hver pute.

Trinn 3: Lodd lysdiodene

Lodd lysdiodene
Lodd lysdiodene
Lodd lysdiodene
Lodd lysdiodene
Lodd lysdiodene
Lodd lysdiodene

Lag et hull i midten av kortet for å passe til mikrofonen. Bruk limprikker, sett ringen av neo -piksler og individuelle lysdioder på plass som vist, og sørg for at alle pilene på lysdiodene vil ligge på samme måte når tusenfryd lenkes sammen.

Lodd utgangskablene fra ringen til den første individuelle lysdioden, slik at de positive, jordede og datatrådene matcher de samme putene på begge lysdiodene.

Den raskeste og enkleste måten jeg fant å knytte lysdiodene sammen på, er å stripe en jumper wire i separate kobbertråder. Fest en tråd for å koble hver av de loddede putene på lysdiodene til den neste, som matcher positiv, data og jord. Det tar bare en rask berøring av et varmt loddejern fordi putene er forhåndsloddet i forrige trinn. I stedet for å kutte ledningene på dette stadiet, ta dem over toppen av LED -en for å nå de loddede putene på den andre siden. Sørg for at ingen ledninger krysser eller berører hverandre, lodd til disse putene og fortsett rundt til inngangssiden til den siste LED -en.

Ikke fest en ledning til utgangssiden til den siste lysdioden. I motsetning til noen lysdioder du kanskje er kjent med, trenger du ikke å fullføre en rund krets som tar strøm tilbake til bakken ettersom du har koblet til separat jord og positive linjer hele veien. Klipp av alle ledningene som går over toppen av lysdiodene, slik at du bare har ledninger som forbinder dem.

Tips: For å forhindre at ledninger berører når du går rundt hjørner, trer du hver enkelt tilbake i en liten stripe av plastisolasjon som tidligere ble fjernet.

Trinn 4: Forberede ryggen

Forbereder ryggen
Forbereder ryggen
Forbereder ryggen
Forbereder ryggen

Lag et nytt hull i det hvite kortet for inngangskablene og skyv dem gjennom.

Skill de to ringene på tapetbøylen. Tegn rundt utsiden av den minste ringen på 5 stykker bølgepapp og klipp ut. Skjær hull i midten av 3 av sirklene ca. 2 cm fra kanten for å lage ringer og skjær en 5 mm spalte i hver. Lim ringene oppå hverandre, fôr opp spaltene, og lim dette til en av de gjenværende kortsirklene.

Trinn 5: Koble til mikrofonen og Arduino

Kabling av mikrofon og Arduino
Kabling av mikrofon og Arduino
Kabling av mikrofon og Arduino
Kabling av mikrofon og Arduino

Koble Arduino til mikrofonsensoren og LED -ringen som vist. Jeg brukte TinkerCad til å lage kretsdiagrammet, som ikke har et mikrofonbilde, så jeg har byttet ut en annen sensor som bruker de samme pinnene og fungerer på samme måte i simuleringen.

For å se simuleringen, gå til https://www.tinkercad.com/things/5cgI2wluA0c. Dra sirkelen festet til sensoren til det aktive området for å simulere blåsing i mikrofonen. Lysdiodene er i strimler på 6, så den siste lysdioden i simuleringen er ikke en del av designet og lyser ikke.

Trinn 6: Programmering av Arduino

Programmering av Arduino
Programmering av Arduino

Åpne Arduino IDE på datamaskinen din og start en ny skisse Slett alt inne i skissen, og kopier og lim inn denne koden i stedet

// Tilpasset ved hjelp av NeoPixel Ring enkel skisse (c) 2013 Shae Erisson // og sensorkode fra https://www.hackster.io/ingo-lohs/first-test-37-s… #include // Hvilken pin på Er Arduino koblet til NeoPixels? #define PIN 6 // Hvor mange NeoPixels er festet til Arduino? #define NUMPIXELS 23 // Når vi konfigurerer NeoPixel -biblioteket, forteller vi det hvor mange piksler og hvilken pin som skal brukes for å sende signaler. // Vær oppmerksom på at for eldre NeoPixel-strimler kan det hende du må endre den tredje parameteren-se eksempel på strengtest // for mer informasjon om mulige verdier. Adafruit_NeoPixel piksler = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; // forsinkelse for et halvt sekund int sensorPin = A0; // velg inngangspinnen for sensoren int sensorValue = 0; // variabel for å lagre verdien som kommer fra sensorens const int -terskel = 200; // et vilkårlig terskelnivå som er i området for det analoge inngangsrommet () {pixels.begin (); // Dette initialiserer NeoPixel -biblioteket. pixels.setBrightness (20); // Angi lysstyrke Serial.begin (9600); } void loop () {// For et sett med NeoPixels er den første NeoPixel 0, den andre er 1, helt opp til antallet piksler minus en. // Løvetann -lysdioder // pixels. Color tar RGB -verdier, fra 0, 0, 0 opp til 255, 255, 255 piksler. SetPixelColor (0, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (5, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (6, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (7, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (8, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (9, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (10, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (11, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Av. piksler.vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren. forsinkelse (delayval*6); // Gradvis endring fra blomst til frøhode // piksler. Color tar RGB -verdier, fra 0, 0, 0 opp til 255, 255, 255 piksler. setPixelColor (0, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (5, pixels. Color (226, 246, 255)); // bluishwhite pixels.setPixelColor (6, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (7, pixels. Color (226, 246, 255)); // bluishwhite pixels.setPixelColor (8, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (9, pixels. Color (226, 246, 255)); // bluishwhite pixels.setPixelColor (10, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // blåhvit. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Av. piksler.vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren. forsinkelse (delayval*6); // Frøhodets lysdioder pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // off pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // off pixels.setPixelColor (4, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (5, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (6, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (7, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (8, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (9, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (10, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // off pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Av. piksler.vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren. forsinkelse (delayval*3); // Forsinkelse for en periode (i millisekunder). pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // off pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (3, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (4, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (5, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (6, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (7, pixels. Color (255, 165, 0)); // Oransje. pixels.setPixelColor (8, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (9, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (10, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Av. piksler.vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren. forsinkelse (delayval*3); // Forsinkelse for en periode (i millisekunder). pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (1, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (3, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (4, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (5, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (6, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (7, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (8, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (9, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (10, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Av. piksler.vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren. forsinkelse (delayval); // Forsinkelse for en periode (i millisekunder). // Les sensorverdien og vis den i den serielle monitoren sensorValue = analogRead (sensorPin); Serial.println (sensorValue); forsinkelse (250); // Selv om sensorverdien er mindre enn terskelen, må du kontrollere sensorverdien og skrive den ut på den serielle skjermen. Når verdien er over terskelen, kan skissen fortsette mens (sensorValue <terskel) {sensorValue = analogRead (sensorPin); Serial.println (sensorValue); forsinkelse (250); } // Første vind -lysdioder pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (5, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (6, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (7, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (8, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (9, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (10, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (11, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (12, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (13, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (14, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (15, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (16, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Av. piksler.vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren. forsinkelse (delayval); // Forsinkelse for en periode (i millisekunder). // Second wind LEDs pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (5, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (6, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (7, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (8, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (9, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (10, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (11, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (15, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Av. pixels.setPixelColor (17, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (18, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (19, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (20, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (21, pixels. Color (226, 246, 255)); // Blåaktig hvit. pixels.setPixelColor (22, pixels. Color (226, 246, 255)); // Blåaktig hvit.piksler.vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren. forsinkelse (2000); // Forsinkelse for en periode (i millisekunder). }

Fest din Arduino til datamaskinen med USB -skriverkabelen

Gå til Verktøy> Brett og velg Arduino/Genuino UNO -kortet

Gå til Port og kontroller at du har kortet koblet til den riktige USB -porten. Hvis du er usikker, kan du koble fra Arduino og se hvilken port som forsvinner fra listen. Koble den til igjen, og porten vises på nytt.

Last opp skissen ved å klikke på Last opp -ikonet, vist på det kommenterte bildet. Lys skal blinke på Arduino mens den lastes opp. Når den laster opp halvparten av lysdiodene på neopikselringen vil lyse gult og deretter bytte til en full ring med hvite lys. Blås på mikrofonen for å teste kretsen. Lysdiodene i de ytre lagene skal lyse etter tur. Kontroller loddetinnet på alle lysdioder som ikke fungerer.

Trinn 7: Endre farger, lysstyrke og sensorterskel

Endre farger, lysstyrke og sensorterskel
Endre farger, lysstyrke og sensorterskel
Endre farger, lysstyrke og sensorterskel
Endre farger, lysstyrke og sensorterskel

Farger

Fargene på lysdiodene settes med RGB (rød grønn blå) fargeverdier. Hvis du foretrekker å bruke andre farger enn jeg har brukt, kan du finne verdiene for fargene du vil bruke ved å bruke en online RGB -fargekalkulator, for eksempel www.w3schools.com/colors/colors_rgb.asp

For å slå av en LED, bruk verdiene 0, 0, 0.

For å sette lysdioden til hvit, bruk verdiene 255, 255, 255. Koden i forrige trinn bruker en blåaktig hvit med verdiene 226, 246, 255 og en oransje med verdiene 255, 165, 0.

Lysstyrke

For å endre lysstyrken til lysdiodene, gå til delen for ugyldig oppsett i koden og finn følgende kodelinje:

pixels.setBrightness (20); // Still inn lysstyrke

Rediger nummeret i parentesene for å endre lysstyrken på lysdiodene.

Sensorterskel

Når du kjører programmet, starter halve NeoPixel -ringen gult for å representere en blomst og går gradvis over til en hel sirkel med hvite lysdioder for å representere frøhodet. På dette tidspunktet bør programmet pause til du blåser på mikrofonsensoren. Hvis programmet fortsetter og lyser opp de ytre lagene av lysdioder uten aktivering fra sensoren, går du til delen for oppsett av tomrom i koden og senker verdien som vises nedenfor. Øk verdien hvis programmet stopper midlertidig, men ikke reagerer når du blåser på sensoren.

const int terskel = 200;

Trinn 8: Gjør kretsen mer permanent

Gjør kretsen mer permanent
Gjør kretsen mer permanent

Når kretsen fungerer, kobler du Arduino fra datamaskinen og fjerner mikrofonsensoren fra brødbrettet. Loddetråder fra Arduino til mikrofonsensoren for å gjøre den samme kretsen mer permanent. Skyv mikrofonen gjennom hullet i kortet bakfra. Hvis nødvendig, bøy mikrofonen forsiktig 90 grader slik at brettet kan ligge flatt bak kortet. Fest batteriet til Arduino ved hjelp av skriverkabelen, og hele sekvensen skal fungere.

Trinn 9: Lag et bilde

Lag et bilde
Lag et bilde

Lag et hull i stoffet der du vil ha mikrofonen. Jeg brukte et varmt loddejern til å brenne et lite hull og trimmet det med saks til mikrofonen passet gjennom. Mal og sy din blomst på stoffet. Når malingen tørker, fester du maleriet til broderirammen og klipper bort overflødig stoff og etterlater en liten kant.

For å se om noen av kretskomponentene viser seg gjennom stoffet, plasser stoffet og rammen midlertidig på kortet med mikrofonen synlig gjennom hullet. Om nødvendig, dekk kretsen med lag med maskeringstape, sjekk av og til, til komponentene ikke vises lenger. Lysdiodene er lyse nok til å bli sett gjennom et lag maskeringstape. Hvis du må legge til enda flere lag, kan du gjøre lysdiodene lysere ved å justere koden som vist i trinn 7.

Legg stoffet og bøylen tilbake på toppen av kortet som før og fest det på plass ved å lime det ekstra stoffet over baksiden av kortet.

Trinn 10: Sette det sammen

Sette det sammen
Sette det sammen

Lim det hvite kortet på bølgepappsirkelen, og lukk mikrofonen, men ikke Arduino og batteripakken, som må gå rundt kanten av pappa med ledningene som går gjennom spaltene.

Fest den siste sirkelen av papp med borrelås slik at du får tilgang til batteriet. Lag et hull i pappa der du vil henge den på en krok på veggen.

Trinn 11: Lære av feil

Lære av feil
Lære av feil
Lære av feil
Lære av feil
Lære av feil
Lære av feil

Mitt første forsøk var med kretsklistremerker og kobbertape. Kretsklistremerker er små LED -er som er overflatemontert på klistremerker med kobberputer. De kommer fra Qi Jies selskap, Chibitroniks, og jeg trodde de ville være perfekte.

Jeg kunne ikke få en pålitelig tilkobling ved hjelp av kobberbånd eller sølvbånd, og da jeg loddet ledning til klistremerkene, kunne jeg fortsatt bare få en serie med 3 LED -klistremerker til å lyse med et 9V batteri. Det ble klart at de ikke er beregnet på flerlysprosjekter som jeg hadde håpet. Da jeg så nærmere på en webside om kretsklistremerker, viste et prosjekt med 4 lys seg å være en annen type lysdioder. Jeg kunne slå på kretsklistremerker med et 12V batteri, men det ville være for klumpete til å passe inn i bildet.

Så prøvde jeg sybare lysdioder. Jeg trodde det ville være lettere å koble til bare strøm og jord enn programmerbare lysdioder som har strøm, jord og datalinjer. Men det viste seg å være en mer komplisert krets som trengte en ekstra strømforsyning og en MOSFET, som jeg ikke hadde. Jeg kunne ha brukt sybare NeoPixels, men de er dyrere.

Så etter noen falske starter, endte jeg opp med en rekke programmerbare lysdioder som er billige og enkle å bruke.

Anbefalt: