Innholdsfortegnelse:
Video: Interaktiv LED -lampe - Tensegrity Structure + Arduino: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
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
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
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
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
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
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:
Diffusert LED -stripeskilt med Arduino/Bluetooth: 8 trinn (med bilder)
Spredt LED -stripeskilt med Arduino/Bluetooth: Jeg laget dette skiltet for DJ -standen på det åttende årlige interaktive showet på mitt lokale hackerspace, NYC Resistor. Temaet i år var The Running Man, den chintzy sci-fi-filmen fra 1987, som finner sted i 2017. Skiltet er bygget av foamcor
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: 7 trinn (med bilder)
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: Jan 2020 -redigering: Jeg lar dette stå i tilfelle noen vil bruke det til å generere ideer, men det er ikke lenger noe poeng i å bygge en kube basert på disse instruksjonene. LED -driver -ICene er ikke lenger laget, og begge skissene ble skrevet i gammel versjon
Pongtennis med LED -matrise, Arduino og joysticks: 5 trinn (med bilder)
Pongtennis med LED Matrix, Arduino og Joysticks: Dette prosjektet er beregnet på både nybegynnere og erfarne tinkerere. På et grunnleggende nivå kan det gjøres med et brødbrett, hoppetråder og festes til et stykke skrapmateriale (jeg brukte tre) med Blu-Tack og uten lodding. Imidlertid på et mer forhånd
Interaktiv laserarkgenerator med Arduino: 11 trinn (med bilder)
Interaktiv laserarkgenerator med Arduino: Lasere kan brukes til å lage utrolige visuelle effekter. I dette prosjektet konstruerte jeg en ny type laserdisplay som er interaktiv og spiller musikk. Enheten roterer to lasere for å danne to vortex-lignende lysark. Jeg inkluderte avstandssensor
Teppe med sensorer/ RF -kommunikasjon med Arduino Micro: 4 trinn (med bilder)
Teppe med sensorer/ RF -kommunikasjon med Arduino Micro: Jeg avsluttet nylig installasjonen Like variert, som er laget av en serie lamper som reagerer på sensorene plassert i et teppe under lampene. Her er hvordan jeg laget teppet med trykksensorer. Jeg håper du finner det nyttig