Innholdsfortegnelse:

Arduino Light Up -genser: 9 trinn
Arduino Light Up -genser: 9 trinn

Video: Arduino Light Up -genser: 9 trinn

Video: Arduino Light Up -genser: 9 trinn
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Juli
Anonim
Image
Image

Stygge genserfester er en stift i ferien. Hvert år må du forbedre spillet og bruke den beste genseren du kan finne. Men i år kan du gjøre en bedre og lage den beste genseren. Vi bruker Adafruit Wearables til å lage en vakker opplyst genser som garantert vil imponere venner og familie.

Adafruit har allerede opprettet noen flotte prosjekter rundt Wearables, så vi bruker deres modifiserte kode for å implementere dette prosjektet fra Sparkle Skirt -prosjektet.

I denne opplæringen vil du:

  • Lær å bruke Wearables
  • Kode ditt Flora hovedkort, akselerometer og NeoPixels for å lyse opp med Arduino

Trinn 1: Komme i gang

Starter
Starter

Vi skal bruke Adafruit Flora Wearables, en batteripakke, ledende tråd og en ferietrøye. Du trenger også en vanlig tråd, nåler og neglelakk. Det vil gi mening med tiden. Vår versjon kommer til å gi julenissen lys, men vi støtter alle religioner og høytider og tro, så vær kreativ!

  • Adafruit Flora hovedstyre (https://www.adafruit.com/product/659)
  • Flora akselerometer (https://www.adafruit.com/product/1247)
  • Flora RGB NeoPixels (https://www.adafruit.com/product/1260)
  • Batteripakke (https://www.adafruit.com/product/727)
  • Ledende tråd (https://www.adafruit.com/product/641)

Trinn 2: Oppsett

Oppsett
Oppsett

Vi må legge opp pikslene, hovedkortet og akselerometeret før vi starter sømprosessen. Pikslene vil ha en datatilkobling, + for strøm, og - for bakken. Akselerometeret trenger tilkoblinger for 3V, SCL, SDA og bakken.

Legg opp pikslene, hovedkortet og akselerometeret på genseren mens du planlegger å sy den. Pass på at du ikke krysser noen sømmer siden det vil føre til shorts. Siden vi har brettet med forsiden inn og NeoPixels med forsiden ut, bruker vi 3V, Pin 9 og Ground for å koble NeoPixels.

NeoPixels har en pil som viser hvordan datatilkoblingen skal gå fra Flora -hovedkortet til neste NeoPixel. Sørg for at alle NeoPixels er stilt opp på samme måte.

Trinn 3: Syningstips

Den viktige delen av sømmen er tre ting; ingen shorts/kryssing av masker, stramme knuter når en maske avsluttes, og gode forbindelser til Wearables.

Ingen shorts/stingkryssing

Sørg for å legge opp Wearables slik at sømmen din ikke krysser over. Linjene skal tydeligvis ikke krysse. Når du har et oppsett som sikrer at alle sømmer forblir atskilt, må du sørge for at når du syr at det er stramt. Hvis du etterlater for mye slakk, kan tråden berøres. Når du er ferdig med en søm, kutter du de overflødige endene slik at det ikke er noen løse tråder.

Stramme knuter

Når du avslutter en stinglinje, vil en tett knute sikre at sømmen ikke løsner. Trikset er å legge en liten klatt med klart neglelakk på knuten og la den tørke. Dette bidrar til å holde knuten på plass, lik lim. Den ledende tråden holder ikke like godt i en knute som vanlig tråd, så jeg anbefaler på det sterkeste å bruke neglelakk, eller du kan ende med at sømmen løsner.

Gode forbindelser

Sørg for at løkkene på pinnene er tette. Dette vil bidra til å sikre at hvis kretsen din ikke fungerer, vet vi at det ikke er tilkoblingene som er problemet. Du kan gå gjennom pinnene 2-3 ganger for å sikre at det alltid vil være en god forbindelse.

Tips og triks

Sørg for at klærne dine ikke er slått på når du tar den på og av. Dette er den enkleste måten å få tråder til å berøre og forårsake korte. Ikke slå på batteripakken før plagget er behagelig på.

Trinn 4: Sy sammen komponentene

Sying av komponentene
Sying av komponentene
Sying av komponentene
Sying av komponentene

Det første stykket vi må feste er Flora Main Board. Sy brettet til genseren din med vanlig tråd gjennom to pinner du ikke planlegger å bruke. Dette vil holde brettet på plass og gjøre det lettere å sy med den ledende tråden. Noen få enkle løkker er nok til at den ikke beveger seg.

Deretter må du sy de fire tilkoblingene fra Flora Main Board og Accelerometer. Dette vil være Power, Ground, SCL og SDA. Hvis du plasserer akselerometeret øverst til venstre på hovedkortet, vil tilkoblingene rettes opp. Så du vil ha fire separate sting for å koble de to brettene. Bruk litt klart neglelakk på begge endeknutene for å unngå at de løsner. Litt neglelakk på brettene vil ikke skade dem.

Til slutt må du koble 3V-, bakke- og datatilkoblinger fra Flora -hovedkortet til NeoPixels. Du kan gjøre to lange, kontinuerlige sømmer for bakken og kraften siden de er på bunnen og toppen av NeoPixels. For datatilkoblingene fra Pin 9 må du gjøre separate sømmer fra hver NeoPixel til den neste.

Trinn 5: Arduino IDE

Flora hovedkort er Arduino-kompatibelt, så vi bruker Arduino IDE for koden vår. Du kan laste ned den nyeste versjonen via denne lenken.

Det er også en webversjon gjennom denne lenken.

Det er fire biblioteker som må legges til for å bruke NeoPixels og Accelerometer. Gå til Sketch, Include Library, Manage Libraries. For hver må du søke etter den ved navn, velge den nyeste versjonen og klikke installer.

  • Adafruit NeoPixel
  • Adafruit Unified Sensor
  • Adafruit TSL2561
  • Adafruit LSM303DLHC

Når disse er installert og sømmen er fullført, er vi klare til å teste genseren vår for å sikre at alt fungerer.

Trinn 6: Test skript

Test skript
Test skript

For å teste prosjektet vårt må vi koble hovedkortet til Adafruit til datamaskinen din ved hjelp av en USB -kabel. Gå deretter til Verktøy, Port, og velg Flora -hovedkortet i listen.

Det første vi vil teste er om akselerometeret fungerer som det skal. Gå til Fil, eksempler, Adafruit LSM303DLHC, accelsensor. Dette åpner et skript som tester om sensoren er tilkoblet og leser koordinatverdier. Last opp til brettet ditt og åpne Serial Monitor øverst til høyre på Arduino IDE. Hvis du ser verdier endres i seriell monitor, som på bildet, mens du flytter akselerometeret, fungerer det!

Den andre tingen vi vil teste er om NeoPixels fungerer. Gå til Fil, eksempler, Adafruit NeoPixels, strandtest. Før vi kjører dette skriptet, må du endre Pin til 9 og antall piksler til 6 (eller hva du bruker til prosjektet ditt). Last opp til brettet ditt, og hvis pikslene lyser opp, er du klar for det siste manuset!

Trinn 7: Endelig manus

Endelig manus
Endelig manus

Nå er det på tide å laste den siste koden vår. Kopier koden nedenfor til en ny prosjektfil. Pinnen er satt til 9 og antall NeoPixels er satt til 6. Hvis du bruker noe annet, må du endre dem før du kjører dette skriptet. Du kan justere favorittfargene ved å justere verdiene til R, G og B fra 0-255. Du kan også legge til flere favorittfarger ved å legge til en ny linje. Flyttegrensen kan også justeres. Jo lavere tallet er, jo lettere er det å oppdage bevegelse og slå på NeoPixels. Når du har gjort noen endringer, vil du lagre og laste opp til hovedkortet i Flora. Du bør kunne se pikslene som lyser opp hvis du flytter akselerometeret rundt. Når du ser at du kan koble fra datamaskinen og vi kan koble til batteripakken vår.

#include #include #include #include #define PIN 9 #define PIXELCOUNT 6 // Parameter 1 = antall piksler i stripe // Parameter 2 = pin -nummer (de fleste er gode, men vi bruker 9) // Parameter 3 = pixeltype flagg, legg sammen etter behov: // NEO_RGB Piksler er kablet for RGB -bitstrøm (v1 FLORA -piksler, ikke v2) // NEO_GRB Piksler er koblet til GRB -bitstrøm (de fleste NeoPixel -produkter. produkt vi bruker) // NEO_KHZ400 400 KHz (klassisk 'v1' (ikke v2) FLORA -piksler, WS2811 -drivere) // NEO_KHZ800 800 KHz bitstrøm (de fleste NeoPixel -produkter m/WS2812 lysdioder. produkt vi bruker) Adafruit_NeoPixel strip = Adafruit_NeoPixel (PIXELCOUNT, PIN, NEO_GRB + NEO_KHZ800) Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified (54321); // Juster R, G, B fra 0-255 og // legg til nye {nnn, nnn, nnn}, for flere farger // RGB uint8_t myFavoriteColors [3] = { 255, 255, 255}, // hvit {255, 0, 0}, // rød {0, 255, 0}, // grønn}; // ikke rediger linjen under #define FAVCOLORS sizeof (myFavoriteColors) /3 // dette tallet justerer bevegelsesfølsomheten // lavere tall = mer sensitiv #define MOVE_THRESHOLD 5 // superfølsom for øyeblikket ugyldig oppsett () {Serial.begin (9600); // Prøv å initialisere og advare hvis vi ikke kunne oppdage brikken // Bruk Serial Monitor for å se utskriften hvis (! Accel.begin ()) {Serial.println ("Vi har et problem. Det er deg, ikke meg … klarte ikke å initialisere LSM303. Jeg vil begynne med en rask sjekk på ledningene "); mens (1); } strip.begin (); strip.show (); // Sett piksler til 'off'} void loop () {/ * Få en ny sensorhendelse */ sensors_event_t event; accel.getEvent (& event); // Serial.print ("Accel X:"); Serial.print (event.acceleration.x); Serial.print (""); // Serial.print ("Y:"); Serial.print (event.acceleration.y); Serial.print (""); // Serial.print ("Z:"); Serial.print (event.acceleration.z); Serial.print (""); // Få størrelsen (lengden) på den 3 -aksede vektoren dobbelt lagretVector = event.acceleration.x*event.acceleration.x; storageVector += event.acceleration.y*event.acceleration.y; storageVector += event.acceleration.z*event.acceleration.z; lagret vektor = sqrt (lagret vektor); // Serial.print ("Len:"); Serial.println (lagret vektor); // vent litt forsinkelse (250); // få nye data! accel.getEvent (& event); dobbel newVector = event.acceleration.x*event.acceleration.x; newVector += event.acceleration.y*event.acceleration.y; newVector += event.acceleration.z*event.acceleration.z; newVector = sqrt (newVector); // Serial.print ("Ny Len:"); Serial.println (newVector); // beveger vi oss enda? if (abs (newVector - storedVector)> MOVE_THRESHOLD) {Serial.println ("Flashy! Flash! Flash! McFlash!"); flashRandom (10, 2); // første tall er ventetid, kortere num == kortere glimt flashRandom (10, 4); // andre tall er hvor mange neopiksler som samtidig skal lyse opp flashRandom (10, 6); }} void flashRandom (int wait, uint8_t howmany) {for (uint16_t i = 0; i <howmany; i ++) {// tilfeldig valgt blant favorittfarger int c = random (FAVCOLORS); int white = myFavoriteColors [c] [0]; int red = myFavoriteColors [c] [1]; int green = myFavoriteColors [c] [2]; // pikslene som skal slås på i en rekkefølge for (int i = 0; i <6; i ++) int j = strip.numPixels (); Serial.print ("Pixel on"); Serial.println (i); // nå vil vi 'falme' den i 3 trinn for (int x = 0; x = 0; x--) {int w = hvit * x; w /= 3; int r = rød * x; r /= 3; int g = grønn * x; g /= 3; strip.setPixelColor (i, strip. Color (w, r, g)); strip.show (); forsinkelse (vent); }} // Lysdioder slås av når de er ferdige (de er falmet til 0)}

Trinn 8: Batteripakke

Batteri pakke
Batteri pakke

For å holde genseren kontinuerlig drevet, bruker vi en batteripakke. Vi må lage en sele til pakken, slik at den ikke bare henger fra brettet. Jeg brukte hjørnet av et gammelt putetrekk som batterilomme. Jeg sydde opp den åpne siden og sydde den ene siden av toppen til genseren nær nok til hovedkortet til at den enkelt kan plugges inn og ikke trekkes i den.

Koble batteripakken til hovedkortet, skru den lille bryteren på hovedkortet fra av til på, og slå på batteripakken. Genseren din skal nå fungere og være klar til bruk.

Trinn 9: Konklusjon

Konklusjon
Konklusjon

Du har nå laget en lys genser som vil imponere alle dine venner og familie! Men dette er ikke bare et ferieprosjekt. Gjør valentinen din til en hjertegenser eller lys opp en shamrock -skjorte til St. Patrick's Day. Bruk fantasien din og fortell oss hva du har laget!

Anbefalt: