Innholdsfortegnelse:

Interaktiv LED -lampe - Tensegrity Structure + Arduino: 5 trinn (med bilder)
Interaktiv LED -lampe - Tensegrity Structure + Arduino: 5 trinn (med bilder)

Video: Interaktiv LED -lampe - Tensegrity Structure + Arduino: 5 trinn (med bilder)

Video: Interaktiv LED -lampe - Tensegrity Structure + Arduino: 5 trinn (med bilder)
Video: Beginner's Guide to Using LED Strips with Arduino 2024, November
Anonim
Interaktiv LED -lampe | Tensegrity Struktur + Arduino
Interaktiv LED -lampe | Tensegrity Struktur + Arduino
Interaktiv LED -lampe | Tensegrity Struktur + Arduino
Interaktiv LED -lampe | Tensegrity Struktur + Arduino
Interaktiv LED -lampe | Tensegrity Struktur + Arduino
Interaktiv LED -lampe | Tensegrity Struktur + Arduino

Dette stykket er en bevegelsesresponsiv lampe. Designet som en minimal tensegrity -skulptur, endrer lampen sin konfigurasjon av farger som svar på orienteringen og bevegelsene til hele strukturen. Med andre ord, avhengig av orienteringen, endres lampen til en viss farge, lysstyrke og lysmodus.

Når icosahedron roterer (over sin egen akse), velger den en verdi fra en virtuell sfærisk fargevelger. Denne fargevelgeren er ikke synlig, men fargejusteringer skjer i sanntid. Dermed kan du finne ut hvor hver farge er plassert i rommet, mens du leker med brikken.

Den icosahedral -formen gir 20 ansiktsplan og tensegrity -strukturen gir den 6 ekstra synspunkter. Dette gir totalt 26 mulige farger når lampen hviler på en flat overflate. Dette tallet øker når du snur lampen i luften.

Systemet styres av en Pro Trinket koblet til et tre -akset akselerometer. Lyset leveres av RGBW LED -strimler, som kan kontrollere verdien for farge og hvit lysstyrke individuelt. Hele kretsen, inkludert mikroprosessor, sensorer og belysningssystem fungerer på 5v. For å slå på systemet trenger du en kilde på opptil 10A.

En liste over hovedelementene som brukes i lampen er følgende:

- Adafruit Pro Trinket - 5V

- Adafruit LIS3DH Triple-Axis Accelerometer

- Adafruit NeoPixel Digital RGBW LED Strip - Hvit PCB 60 LED/m

- 5V 10A bytte strømforsyning

Denne bevegelsesresponsive lampen er den første versjonen eller prototypen på et lengre personlig prosjekt. Denne prototypen er laget av resirkulerte materialer. Gjennom design- og konstruksjonsprosessene lærte jeg av suksesser og feil. Med disse i tankene, jobber jeg nå med den neste versjonen som vil ha en mer intelligent struktur og robust programvare.

Jeg vil takke LACUNA LAB -samfunnet for hjelpen, ideene og forslagene under utviklingen av prosjektet.

du kan følge arbeidet mitt på: action-io / tumblraction-script / github

Trinn 1: Ideen

Ideen
Ideen
Ideen
Ideen
Ideen
Ideen

Dette prosjektet var et resultat av flere ideer jeg hadde lekt med i hodet en stund.

Siden jeg begynte har konseptet endret seg, det første prosjektet utviklet seg og tok faktisk form.

Den første tilnærmingen var en interesse for geometriske former som middel for interaksjon. På grunn av designen fungerer de flere polygonale flatene til denne lampen som inngangsmetode.

Den første ideen var å bruke et dynamisk system for å tvinge icosahedron til å bevege seg. Dette kunne ha blitt kontrollert av en interaktiv applikasjon, eller brukere av sosiale medier.

En annen mulighet ville vært å ha en intern marmor eller ball trykke på forskjellige knapper eller sensorer og dermed generere tilfeldige innganger etter hvert som stykket flyttet.

Tensegritetsstrukturen skjedde senere.

Denne konstruksjonsmetoden fascinerte meg: måten deler av strukturen holder hverandre i balanse. Det er veldig visuelt tiltalende. Hele strukturen er selvbalansert; brikkene berører ikke hverandre direkte. Det er summen av alle spenninger som skaper stykket; det er fantastisk!

Etter hvert som den opprinnelige designen har endret seg; prosjektet går videre.

Trinn 2: Strukturen

Strukturen
Strukturen
Strukturen
Strukturen
Strukturen
Strukturen
Strukturen
Strukturen

Som jeg nevnte før, var denne første modellen laget av resirkulerte materialer som var ment å bli kastet.

Treplatene tok jeg fra en lamell seng fant jeg på gaten. De gylne kantene var en del av armen på en gammel lampe, og proppene til gummibåndene er kontorklips.

Uansett, konstruksjonen av strukturen er ganske enkel og trinnene er de samme som i alle tensegriry.

Det jeg gjorde med tavlene er å samle dem, i grupper på to. Lag en "sandwich" med avstandsstykkene i gull, og la et gap der lysene ville skinne gjennom.

Dimensjonene til prosjektet er helt varierende og vil avhenge av størrelsen på strukturen du vil lage. Trebjelkene fra bildene av dette prosjektet er 38 cm lange og 38 mm brede. Skillet mellom platene er 13 mm.

Treplatene ble skåret identisk, slipt (for å fjerne det gamle malingslaget) og deretter perforert i begge ender.

Deretter beiset jeg platene med rustikk mørk lakk. For å feste bitene brukte jeg en 5 mm gjengestang, kuttet i seksjoner på 5 cm og 5 mm med en knute på hver side.

Strammene er røde gummibånd. For å feste gummien til stengene, laget jeg et lite hull som jeg passerte båndet gjennom og fanget det deretter med en stopper. Dette forhindrer at platene beveger seg fritt og strukturen som skal demonteres flyttes.

Trinn 3: Elektronikk og lys

Elektronikk og lys
Elektronikk og lys
Elektronikk og lys
Elektronikk og lys
Elektronikk og lys
Elektronikk og lys
Elektronikk og lys
Elektronikk og lys

Konfigurasjonen av de elektroniske komponentene er designet for å opprettholde samme spenning, både logikk og mating i hele systemet ved bruk av 5v.

Systemet styres av en Pro Trinket koblet til et tre -akset akselerometer. Lyset er levert av RGBW LED -strimler, som kan kontrollere farger og hvite lysstyrkeverdier individuelt. Hele kretsen, inkludert mikroprosessor, sensorer og belysningssystem fungerer på 5v. For å slå på systemet trenger du en kilde på opptil 10A.

Pro Trinket 5V bruker Atmega328P -brikken, som er den samme kjernebrikken i Arduino UNO. Den har også nesten de samme pinnene. Så det er veldig nyttig når du vil bringe UNO -prosjektet ditt til miniatyriserte mellomrom.

LIS3DH er en allsidig sensor, den kan omkonfigureres for å lese til +-2g/4g/8g/16g og gir også trykk, dobbelttrykk, orientering og fri falldeteksjon.

NeoPixel RGBW LED Strip kan administrere fargetone og hvit intensitet separat. Med en dedikert hvit LED trenger du ikke å mette alle fargene for å få et hvitt lys, det gjør deg også hvit mer ren og lys, og dessuten sparer du energi.

For ledninger og for å koble komponentene sammen bestemte jeg meg for å passere kabel og lage stikkontakter med hann- og hunnpinner ved hjelp av krymper og kontakthus.

Jeg koblet pynten til akselerometeret, kast SPI -en med standardkonfigurasjonen. Dette betyr at koble Vin til strømforsyningen på 5V. Koble GND til felles strøm/datajord. Koble SCL (SCK) -pinnen til Digital #13. Koble SDO -pinnen til Digital #12. Koble SDA (SDI) -pinnen til Digital #11. Koble til CS -pinnen Digital #10.

LED -stripen styres av bare en pinne, som går til #6 og bakken og 5v går direkte til strømforsyningsadapteren.

All dokumentasjon du måtte trenge finner du, mer detaljert og bedre forklart på adafruit -siden.

Strømforsyningen er koblet til en kvinnelig likestrømadapter som samtidig mater mikrokontrolleren og LED -stripen. Den har også en kondensator for å beskytte kretsen mot ustabil strøm ved "slå på" øyeblikket.

Lampen har 6 lysstenger, men LED -stripene kommer i et enkelt langt bånd. LED -båndet ble kuttet i seksjoner på 30 cm (18 LEDS) og deretter sveiset med mannlige og kvinnelige 3 pinner for å koble til resten av kretsen modulært.

Til dette prosjektet bruker jeg en 5v - 10A strømforsyning. Men avhengig av antall leds du trenger må du beregne strømmen som trengs for å mate systemet.

Gjennom hele dokumentasjonen av stykket kan du se at LED -en har 80mA trukket per LED. Jeg bruker totalt 108 lysdioder.

Trinn 4: Koden

Koden
Koden

Ordningen fungerer er ganske enkelt. Et akselerometer gir informasjon om bevegelse på x-, y-, z -aksen. Basert på retningen oppdateres RGB -verdiene til LED -lampene.

Arbeidet er delt inn i følgende faser.

  • Gjør en avlesning fra sensoren. Bare bruk api.
  • Ved trigonometri løser du verdiene for "rull og pitch". Du finner mye mer informasjon i dette dokumentet av Mark Pedley.
  • Skaff den tilsvarende fargen, relatert til rotasjonsverdiene. For det vender vi til 0-360 RGB -verdi ved hjelp av en HSL - RGB -konverteringsfunksjon. Verdien av tonehøyden brukes i forskjellige skalaer for å regulere intensiteten til hvitt lys og fargemetning. De motsatte halvkulene til fargevelgeren er helt hvite.
  • Oppdater lysbufferen som lagrer informasjon om individuelle LED -farger. Avhengig av denne informasjonen vil bufferkontrolleren lage en animasjon eller svare med komplementære farger.
  • Vis til slutt fargene og oppdater lysdiodene.

I utgangspunktet var tanken å lage en fargesfære hvor du kunne velge hvilken som helst farge. Plassering av fargehjulet på meridianen og polover de mørke og lyse tonene.

Men raskt ble ideen kastet. Fordi lysdiodene skaper forskjellige toner, slukket og raskt tente hver rgb -LED, når de får lave verdier for å representere mørke farger, gir lysdiodene en veldig dårlig ytelse, og du kan se hvordan de begynner å blinke. Dette gjør at den mørke halvkule av fargesfæren ikke kan fungere skikkelig.

Så kommer jeg på ideen om å tildele komplementære farger til den valgte tonen.

Så, en halvkule velger en monokromatisk fargeverdi på et hjul fra 50% belysning 90 ~ 100% metning. I mellomtiden velger den andre siden en fargegradient fra samme fargeposisjon, men legger til på den andre siden av gradienten sin komplementære farge.

Avlesningen av data fra sensoren er rå. Et filter kan påføres for å jevne ut støyen og vibrasjonene til selve lampen. For øyeblikket synes jeg det er interessant fordi det ser mer analogt ut, reagerer på enhver berøring og tar et sekund å stabilisere seg helt.

Jeg jobber fortsatt med koden og legger til nye funksjoner og optimaliserer animasjonene.

Du kan sjekke de nyeste versjonene av koden på min github -konto.

Trinn 5: Innpakning

Innpakning
Innpakning
Innpakning
Innpakning
Innpakning
Innpakning
Innpakning
Innpakning

Den siste monteringen er ganske enkel. Lim silikondekselet til LED -stripene med to komponentepoxylim i stengene og koble de seks delene i serie etter hverandre.

Fest et punkt der du vil forankre komponentene og skru akselerometeret og pro -sekken til treverket. Jeg brukte en avstandsstykker i plast for å beskytte bunnen av pinnene. Strømforsyningsadapteren er ordentlig festet mellom plassene på stengene med mer epoksy -epoksylim. Ble designet for å passe og forhindrer at den beveger seg når lampen roterer.

Observasjoner og forbedringer

Gjennom utviklingen av prosjektet har det dukket opp nye ideer om måter å løse problemer på. Jeg innså også noen designfeil eller deler som kan forbedres.

Det neste trinnet jeg vil ta, er en forbedring av produktkvalitet og finish; mest i strukturen. Jeg kommer med gode ideer om bedre strukturer enda enklere, og inkorporerer tensorer som en del av designet og skjuler komponentene. Denne strukturen vil kreve kraftigere verktøy som 3D -skrivere og laserskjærere.

Jeg har fremdeles ventet på hvordan jeg skal skjule ledningene langs strukturen. Og arbeide for et mer effektivt energiforbruk; å redusere utgiftene når lampen fungerer lenge og ikke endrer belysningen.

Takk for at du leste artikkelen og interessen for arbeidet mitt. Jeg håper du har lært av dette prosjektet så mye som jeg gjorde.

Anbefalt: