Inhoudsopgave:

Interactieve paardenbloem: 11 stappen (met afbeeldingen)
Interactieve paardenbloem: 11 stappen (met afbeeldingen)

Video: Interactieve paardenbloem: 11 stappen (met afbeeldingen)

Video: Interactieve paardenbloem: 11 stappen (met afbeeldingen)
Video: Bing Volledige Afleveringen | 70-Min+ | Afl 61-70 | Bing Nederlands 2024, Juli-
Anonim
Image
Image
Bereid de NeoPixel-ring voor
Bereid de NeoPixel-ring voor

Dit project laat zien hoe je een interactieve foto van een paardenbloem maakt. Het begint als een gele bloem met LED's voor bloemblaadjes en verandert dan in een witte paardenbloemklok, die kan worden opgeblazen om de zaden te verspreiden.

Het is gebaseerd op een prachtig kunstwerk van Qi Jie, wiens afbeelding is geïnspireerd op een ontwerp met een enkele bloem van Jessie Thompson en Zachory Berta. Ik heb de mijne op stof gemaakt en ingelijst in een wandtapijtring voor aan de muur van de Tech and Textiles-makerruimte in Devon, Engeland, als voorbeeld van een beginnersproject dat naaien met Arduino combineert.

Video van licht schilderen door Qi Jie

Video van enkelbloemig ontwerp door Jessie Thompson en Zachory Berta

De code voor beide bestaande projecten is beschikbaar en ik dacht dat het gemakkelijk te maken zou zijn, maar de instructies waren minimaal en het kostte verschillende pogingen voordat ik een methode vond die werkte. Dus hier zijn de volledige instructies en tijdbesparende tips voor een remix die elementen van zowel ontwerpen als mijn eigen tweaks combineert.

Details van wat niet voor mij werkte, zijn aan het einde voor iedereen die geïnteresseerd is in waarom ik voor deze manier heb gekozen.

Code voor licht schilderen door Qi Jie

Code voor kleine bloem foto door Jessie Thompson en Zachory Berta

Materialen

  • Arduino UNO
  • Adafruit Ring van 12 Neopixels
  • 5V Strip van 11 RGB-LED's
  • Geluid Microfoon Sensor
  • Doorverbindingsdraden
  • 5V oplaadbare batterij met USB A-aansluiting
  • Printerkabel (USB A naar B-kabel)
  • Lijmpunten of hete lijm
  • A4-kaart
  • 30cm x 30cm Crème katoenen stof, zoals een oude kussensloop
  • Groene textielverf
  • Bruine katoenen draad
  • 70cm x 50cm golfkarton, zoals pizzadozen
  • Afplakband
  • 9 inch borduurring om de afbeelding in te kaderen
  • 9 zelfklevende klittenband tabs

Gereedschap

  • Een computer waarop Arduino IDE is gedownload
  • Soldeerbout en loodvrij soldeer
  • Breadboard voor testcircuit
  • Draadstripper/snijders
  • Naald
  • Pen
  • Schaar

Stap 1: Bereid de NeoPixel-ring voor

Soldeer verschillende kleuren draden aan elk van de stroom-, aarde- en datapads aan de achterkant van de NeoPixel-ring.

Als je een andere versie van de ring hebt, zitten je draden mogelijk niet in dezelfde positie als de foto van mij.

Noteer welke draden voor invoer en uitvoer zijn, evenals positief, data en aarde, want de markeringen hiervoor bevinden zich aan de onderkant van de ring en zijn niet zichtbaar als de ring op zijn plaats zit.

Stap 2: Knip de stroken LED's af

Snijd de strips van LED's
Snijd de strips van LED's
Snijd de strips van LED's
Snijd de strips van LED's

Knip 11 individuele LED's uit een strook RGB-LED's en zorg ervoor dat u langs de middenlijn snijdt om soldeerpads aan beide zijden van de snede te laten. Dep een klodder soldeer op de bovenzijde van elke pad.

Stap 3: Soldeer de LED's

Soldeer de LED's
Soldeer de LED's
Soldeer de LED's
Soldeer de LED's
Soldeer de LED's
Soldeer de LED's

Maak een gat in het midden van de kaart voor de microfoon. Gebruik lijmstippen om de ring van neo-pixels en individuele LED's op hun plaats te plakken zoals weergegeven, en zorg ervoor dat alle pijlen op de LED's op dezelfde manier worden uitgelijnd wanneer ze aan elkaar worden gekoppeld.

Soldeer de uitgangsdraden van de ring naar de eerste individuele LED, waarbij u de positieve, grond- en datadraden op dezelfde pads op beide LED's aansluit.

De snelste en gemakkelijkste manier die ik heb gevonden om de LED's samen te voegen, is door een verbindingsdraad in afzonderlijke koperen strengen te strippen. Bevestig een streng om elk van de gesoldeerde pads op de LED's te verbinden met de volgende, waarbij de positieve, gegevens en aarde overeenkomen. Er is slechts een snelle aanraking van een hete soldeerbout nodig, omdat de pads in de vorige stap zijn voorgesoldeerd. In plaats van de draden in dit stadium door te knippen, neemt u ze over de bovenkant van de LED om de gesoldeerde pads aan de andere kant te bereiken. Zorg ervoor dat er geen draden elkaar kruisen of raken, soldeer op die pads en ga verder naar de invoerzijde van de laatste LED.

Bevestig geen draad aan de uitgangszijde van de laatste LED. In tegenstelling tot sommige LED's die u misschien kent, hoeft u geen rond circuit te voltooien dat de stroom terug naar de aarde neemt, omdat u de hele tijd afzonderlijke aarde- en positieve lijnen hebt aangesloten. Knip alle draden door die over de bovenkant van de LED's gaan, zodat er alleen draden tussen zitten.

Tip: Om te voorkomen dat de draden elkaar raken bij het nemen van hoeken, rijgt u ze terug in een kleine strook plastic isolatie die eerder was verwijderd.

Stap 4: De rug voorbereiden

De rug voorbereiden
De rug voorbereiden
De rug voorbereiden
De rug voorbereiden

Maak nog een gaatje in de witte kaart voor de ingangsdraden en duw ze erdoor.

Scheid de twee ringen van de tapijtring. Teken op 5 stukjes golfkarton de buitenkant van de kleinste ring en knip uit. Snijd gaten in het midden van 3 van de cirkels op ongeveer 2 cm van de rand om ringen te maken en snijd in elke cirkel een gleuf van 5 mm. Lijm de ringen op elkaar, lijn de sleuven uit, en plak deze op een van de resterende cirkels van karton.

Stap 5: De microfoon en Arduino bedraden

De microfoon en Arduino bedraden
De microfoon en Arduino bedraden
De microfoon en Arduino bedraden
De microfoon en Arduino bedraden

Sluit uw Arduino aan op de microfoonsensor en de LED-ring zoals afgebeeld. Ik heb TinkerCad gebruikt om het schakelschema te maken, dat geen microfoonafbeelding heeft, dus ik heb een andere sensor vervangen die dezelfde pinnen gebruikt en op dezelfde manier werkt in de simulatie.

Ga naar https://www.tinkercad.com/things/5cgI2wluA0c om de simulatie te bekijken. Sleep de cirkel die aan de sensor is bevestigd naar het actieve gebied om het blazen in de microfoon te simuleren. De LED's zitten in strips op 6, dus de laatste LED in de simulatie maakt geen deel uit van het ontwerp en licht niet op.

Stap 6: De Arduino programmeren

De Arduino programmeren
De Arduino programmeren

Open Arduino IDE op je computer en start een nieuwe Sketch Verwijder alles in de sketch en kopieer en plak deze code erin plaats

// Aangepast met NeoPixel Ring eenvoudige schets (c) 2013 Shae Erisson//en sensorcode van https://www.hackster.io/ingo-lohs/first-test-37-s… #include // Welke pin op de Arduino is aangesloten op de NeoPixels? #define PIN 6 // Hoeveel NeoPixels zijn aangesloten op de Arduino? #define NUMPIXELS 23 // Wanneer we de NeoPixel-bibliotheek instellen, vertellen we hoeveel pixels en welke pin we moeten gebruiken om signalen te verzenden. // Houd er rekening mee dat u voor oudere NeoPixel-strips mogelijk de derde parameter moet wijzigen - zie het voorbeeld van de strandtest // voor meer informatie over mogelijke waarden. Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int vertragingswaarde = 500; // vertraging voor halve seconde int sensorPin = A0; // selecteer de invoerpin voor de sensor int sensorValue = 0; // variabele om de waarde op te slaan die afkomstig is van de sensor const int drempel = 200; // een willekeurig drempelniveau dat binnen het bereik ligt van de analoge input void setup() {pixels.begin(); // Hiermee wordt de NeoPixel-bibliotheek geïnitialiseerd. pixels.setBrightness(20); // Helderheid instellen Serial.begin (9600); } void loop() { // Voor een set NeoPixels is de eerste NeoPixel 0, de tweede is 1, helemaal tot het aantal pixels min één. // Paardebloem-LED's // pixels. Color neemt RGB-waarden aan, van 0, 0, 0 tot 255, 255, 255 pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(2, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(5, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(6, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(7, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(8, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(9, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(10, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(11, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(19, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(20, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Uit. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware. delay(delayval*6);//Geleidelijke verandering van bloem naar zaadkop // pixels. Color neemt RGB-waarden aan, van 0, 0, 0 tot 255, 255, 255 pixels.setPixelColor(0, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(2, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(5, pixels. Color(226, 246, 255)); // blauwachtig witte pixels.setPixelColor (6, pixels. Color (255, 165, 0)); // Oranje. pixels.setPixelColor(7, pixels. Color(226, 246, 255)); // blauwachtig witte pixels.setPixelColor (8, pixels. Color (255, 165, 0)); // Oranje. pixels.setPixelColor(9, pixels. Color(226, 246, 255)); // blauwachtig witte pixels.setPixelColor (10, pixels. Color (255, 165, 0)); // Oranje. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); // blauwig wit. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(19, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(20, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Uit. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware. vertraging (vertragingswaarde * 6); // Zaadkop-LED's pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); //uit pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); //uit pixels.setPixelColor (4, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor(5, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(6, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(7, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(8, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(9, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(10, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); // uit pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(19, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(20, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Uit. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware. vertraging (vertragingswaarde * 3); // Vertraging voor een bepaalde tijd (in milliseconden). pixels.setPixelColor(0, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); //uit pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor(3, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(4, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(5, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(6, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(7, pixels. Color(255, 165, 0)); // Oranje. pixels.setPixelColor(8, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(9, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(10, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); //Blauwig wit. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(19, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(20, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Uit. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware. vertraging (vertragingswaarde * 3); // Vertraging voor een bepaalde tijd (in milliseconden). pixels.setPixelColor(0, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(1, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(2, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(3, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(4, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(5, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(6, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(7, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(8, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(9, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(10, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(11, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(19, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(20, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Uit. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware. vertraging (vertragingswaarde); // Vertraging voor een bepaalde tijd (in milliseconden). // Lees de sensorwaarde en geef deze weer in de seriële monitor sensorValue = analogRead (sensorPin); Serial.println(sensorValue); vertraging (250); // Terwijl de sensorwaarde lager is dan de drempel, controleert u de sensorwaarde en drukt u deze af in de seriële monitor. Wanneer de waarde boven de drempel ligt, kan de schets doorgaan terwijl (sensorValue < drempel) { sensorValue = analogRead(sensorPin); Serial.println(sensorValue); vertraging (250); } // First wind LED's pixels.setPixelColor(0, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(2, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(5, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(6, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(7, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(8, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(9, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(10, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(11, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (12, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor(13, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(14, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(15, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor (16, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(19, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(20, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(21, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(22, pixels. Color(0, 0, 0)); // Uit. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware. vertraging (vertragingswaarde); // Vertraging voor een bepaalde tijd (in milliseconden). // Tweede wind-LED's pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(1, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(2, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(3, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(4, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(5, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(6, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(7, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(8, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(9, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(10, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor(11, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(13, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor(15, pixels. Color(0, 0, 0)); // Uit. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Uit. pixels.setPixelColor (17, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor (18, pixels. Color (226, 246, 255)); // Blauwig wit. pixels.setPixelColor(19, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(20, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(21, pixels. Color(226, 246, 255)); // Blauwig wit. pixels.setPixelColor(22, pixels. Color(226, 246, 255)); // Blauwig wit.pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware. vertraging (2000); // Vertraging voor een bepaalde tijd (in milliseconden). }

Sluit uw Arduino aan op de computer met de USB-printerkabel

Ga naar Extra > Bord en selecteer het Arduino/Genuino UNO-bord

Ga naar Poort en zorg ervoor dat het bord op de juiste USB-poort is aangesloten. Als je het niet zeker weet, kun je de Arduino loskoppelen en kijken welke poort uit de lijst verdwijnt. Sluit hem weer aan en de poort wordt weer weergegeven.

Upload de schets door op het pictogram Uploaden te klikken, weergegeven in de geannoteerde foto. De lampjes moeten knipperen op de Arduino terwijl deze wordt geüpload. Wanneer het uploaden klaar is, zullen de helft van de LED's op de neopixelring geel oplichten en dan veranderen in een volledige ring van witte lichten. Blaas op de microfoon om het circuit te testen. De LED's in de buitenste lagen moeten beurtelings oplichten. Controleer het soldeer op alle LED's die niet werken.

Stap 7: De kleuren, helderheid en sensordrempel wijzigen

De kleuren, helderheid en sensordrempel wijzigen
De kleuren, helderheid en sensordrempel wijzigen
De kleuren, helderheid en sensordrempel wijzigen
De kleuren, helderheid en sensordrempel wijzigen

Kleuren

De kleuren van de LED's worden ingesteld met RGB (Rood Groen Blauw) kleurwaarden. Als u liever andere kleuren gebruikt dan ik heb gebruikt, kunt u de waarden voor de gewenste kleuren vinden met behulp van een online RGB-kleurencalculator zoals www.w3schools.com/colors/colors_rgb.asp

Gebruik de waarden 0, 0, 0 om een LED uit te schakelen.

Gebruik de waarden 255, 255, 255 om de LED op wit in te stellen. De code in de vorige stap gebruikt een blauwachtig wit met de waarden 226, 246, 255 en een oranje met de waarden 255, 165, 0.

Helderheid

Om de helderheid van de LED's te wijzigen, gaat u naar het gedeelte ongeldige instellingen van de code en zoekt u de volgende coderegel:

pixels.setBrightness(20); // Helderheid instellen

Bewerk het getal tussen de haakjes om de helderheid van de LED's te wijzigen.

Sensordrempel

Wanneer u het programma uitvoert, begint de helft van de NeoPixel-ring geel om een bloem voor te stellen en verandert geleidelijk in een volledige cirkel van witte LED's om de zaadkop weer te geven. Op dit punt moet het programma pauzeren totdat u op de microfoonsensor blaast. Als het programma doorgaat en de buitenste lagen van LED's oplicht zonder activering van de sensor, ga dan naar het gedeelte met ongeldige instellingen van de code en verlaag de hieronder getoonde waarde. Verhoog de waarde als het programma pauzeert maar niet reageert als je op de sensor blaast.

const int drempel = 200;

Stap 8: Het circuit permanenter maken

Het circuit permanenter maken
Het circuit permanenter maken

Wanneer het circuit werkt, koppelt u de Arduino los van de computer en verwijdert u de microfoonsensor van het breadboard. Soldeer draden van de Arduino naar de microfoonsensor om hetzelfde circuit permanenter te maken. Duw de microfoon van achteren door het gat in de kaart. Buig de microfoon indien nodig voorzichtig 90 graden zodat het bord plat achter de kaart kan liggen. Bevestig de batterij aan de Arduino met behulp van de printerkabel en de hele reeks zou moeten werken.

Stap 9: Maak een afbeelding

Maak een foto
Maak een foto

Maak een gat in je stof waar je de microfoon wilt hebben. Ik gebruikte een hete soldeerbout om een klein gaatje te branden en knipte het af met een schaar totdat de microfoon er doorheen paste. Verf en naai je bloem op de stof. Wanneer de verf droog is, bevestigt u het schilderij aan de borduurring en knipt u overtollige stof weg, waarbij u een kleine rand achterlaat.

Om te zien of een van de circuitcomponenten door de stof heen zichtbaar is, plaatst u de stof en de borduurring tijdelijk op de kaart met de microfoon door het gat. Bedek het circuit indien nodig met lagen afplakband, af en toe controleren, totdat de componenten niet meer zichtbaar zijn. De LED's zijn helder genoeg om door een laag afplakband te worden gezien. Als u nog meer lagen moet toevoegen, kunt u de LED's helderder maken door uw code aan te passen zoals weergegeven in stap 7.

Plaats de stof en de borduurring terug op de kaart zoals eerder en zet ze vast door de extra stof over de achterkant van de kaart te lijmen.

Stap 10: Samenvoegen

Samenvoegen
Samenvoegen

Lijm de witte kaart op de golfkartonnen cirkel, met daarin de microfoon, maar niet de Arduino en het batterijpakket, die langs de rand van het karton moeten gaan met de draden door de spleten.

Bevestig de laatste cirkel van karton met klittenband zodat je bij de batterij kunt. Maak een gat in het karton waar je het aan een haak aan de muur wilt hangen.

Stap 11: Leren van fouten

Leren van fouten
Leren van fouten
Leren van fouten
Leren van fouten
Leren van fouten
Leren van fouten

Mijn eerste poging was met circuitstickers en kopertape. Circuitstickers zijn kleine LED's die op stickers met koperen pads zijn gemonteerd. Ze komen van het bedrijf van Qi Jie, Chibitroniks, en ik dacht dat ze perfect zouden zijn.

Ik kon geen betrouwbare verbinding krijgen met kopertape of zilvertape en toen ik draad op de stickers soldeerde, kon ik nog steeds slechts een reeks van 3 LED-stickers aan het licht krijgen met een 9V-batterij. Het werd duidelijk dat ze niet bedoeld zijn voor multi-light projecten zoals ik had gehoopt. Toen ik een webpagina over circuitstickers nader bekeek, bleek een project met 4 lampjes een ander type LED's te zijn. Ik zou circuitstickers van stroom kunnen voorzien met een 12V-batterij, maar het zou te omvangrijk zijn om in de afbeelding te passen.

Toen probeerde ik naaibare LED's. Ik dacht dat het gemakkelijker zou zijn om alleen stroom en aarde te bedraden dan programmeerbare LED's met stroom-, aarde- en datalijnen. Maar het bleek een ingewikkelder circuit te zijn dat een extra voeding en een MOSFET nodig had, wat ik niet had. Ik had naaibare NeoPixels kunnen gebruiken, maar die zijn duurder.

Dus na een paar valse starts, eindigde ik met een reeks programmeerbare LED's die goedkoop en gemakkelijk te gebruiken zijn.

Aanbevolen: