Innehållsförteckning:
- Steg 1: Domen
- Steg 2: Gör struts
- Steg 3: Bygg kupolen
- Steg 4: Lyft upp det
- Steg 5: Planera hur lysdioderna ska se ut
- Steg 6: Mer om LED -layouten
- Steg 7: Lägg ut Fadecandys och nätaggregat
- Steg 8: Vända linjer till remsor
- Steg 9: Förbereda LED -remsan
- Steg 10: Gör panelerna
- Steg 11: Kabelbinda LED -remsan till panelerna
- Steg 12: Häng panelerna i kupolen
- Steg 13: Gör ström- och datadistributionspaneler
- Steg 14: Tygöverdrag
- Steg 15: Häng upp tyget
- Steg 16: Anslutning av Kinect
- Steg 17: Golv
- Steg 18: Det är byggandet gjort … Till koden
- Steg 19: Fadecandy Server
- Steg 20: Konfigurera Fadecandy -servern
- Steg 21: Kartläggning av pixlarna
- Steg 22: Kinect -integration
- Steg 23: Kinect djupspårning
- Steg 24: Dome Done
Video: Interaktiv LED -kupol med Fadecandy, bearbetning och Kinect: 24 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Vad
När du är i Dome är en 4,2 m geodetisk kupol täckt med 4378 lysdioder. Lysdioderna är alla individuellt mappade och adresserbara. De styrs av Fadecandy och Processing på ett Windows -skrivbord. En Kinect är ansluten till en av kupolens stag, så rörelse inuti kupolen kan spåras och människor kan interagera med lamporna.
Varför
Jag utforskar gruppupplevelse genom delad interaktion. Jag gillar att skapa gränssnitt som många kan använda samtidigt. LED-ytan på kupolen gör en lämplig utgång för ett fleranvändargränssnitt eftersom den är enorm, så många människor kan se den. Kupolen skapar också ett mysigt, sfäriskt utrymme, som uppmuntrar människor att vända sig mot varandra. Kinect fungerar utmärkt som en multi-user input eftersom människor kan röra sig och påverka djupfältet samtidigt, den enda gränsen är hur många människor som får plats i utrymmet tillsammans.
Jag utvecklar kontinuerligt nya interaktionsmetoder för When in Dome för att se vilken effekt olika inputmetoder har och vad som fungerar bra för olika grupper av människor. Jag är särskilt angelägen om att se vilka gränssnitt som uppmuntrar anslutning mellan vänner och främlingar inuti kupolen, och vad som får den delade upplevelsen att känna sig meningsfull och värdefull.
Var
Jag konstruerade och byggde When in Dome som det sista projektet för min magisterexamen, som var Design for Performance and Interaction på Interactive Architecture Lab, The Bartlett, UCL.
Hur
Några av de tekniker och verktyg som används:
- Fadecandy
- Bearbetning
- Kinect (jag fick min från eBay)
- Geringssåg
- Spårsåg
- Symaskin
- Lödkolv
- Värmepistol
- Lim pistol
- Laserskärare
- Borra
Någon av utrustningen som används:
- Bygg med hubb -kit
- Behandlat sågat virke för kupolstag
- 4 mm poppel -plywood
- Vitt diffusionstyg
- Svart tyg
- Aluminium platt stång
- Wago -kontakter
- 12awg och 24awg kabel
- 5v 30A nätaggregat
- Skumgolv
- JST -kontakter
- Kondensatorer
Nu går vi
Det finns många komponenter i detta projekt som jag kommer att prata igenom, jag hoppas att du hittar något användbart och intressant inuti!
Steg 1: Domen
Navkit
Jag bestämde mig för att bygga min kupol med ett kit från buildwithhubs och jag skulle definitivt rekommendera dem.
De säljer kit med kontaktdon och ger råd om vilka material som ska köpas för fjäderbenen. De flesta av deras kupoler används i människors egna trädgårdar, medan mina kommer att vara offentliga, så jag köpte också deras kit med extra säkra kepsar, som gör att fjäderbenen inte dyker upp om någon lutar sig mot kupolen.
Storlek
Min kupol är 4,2 m i diameter. Jag valde denna storlek eftersom det innebar att den längsta sidan av trianglarna som utgör kupolen skulle vara 1,2 m, och detta passade fint in i plywoodskivor när jag kom för att göra panelerna för att hålla LED -lamporna.
Steg 2: Gör struts
Längder
Jag använde buildwithhubs fjäderräknare för att räkna ut längderna som behövs för att göra en kupol på 4,2 m. 30 "shorts" på 1059mm och 35 "longs" på 1209mm.
Material
2 förpackningar med 24 19 mm x 38 mm x 2400 mm sågade trävaror från B&Q (som rekommenderas på byggnadsplatsen med hus) är tillräckligt för en kupol. Detta fungerar tillräckligt bra men om jag skulle göra det igen skulle jag få något som har mer sidostyrka.
Bearbeta
Stagarna skars i längd med en geringssåg och sedan målade jag dem genom att lägga dem platta på ett dammskikt och rulla över dem. Detta gjorde en rolig timelapse!
Sedan buntade jag ihop dem i omgångar om 6 i taget och skruvade fast kopplingsdelarna i ändarna.
Steg 3: Bygg kupolen
När stagen är gjorda är det superenkelt att bygga kupolen. Jag tänker inte prata igenom processen i detalj eftersom det finns instruktioner på buildwithhubs -sajten och de ger också ett häfte.
Steg 4: Lyft upp det
Jag ville inte att LED -panelerna skulle ligga precis vid golvet, eftersom detta skulle innebära att många av dem skulle blockeras av människor i kupolen. Jag ville också göra kupolen högre så den känns rymligare och välkomnande.
Ben
Jag gjorde 50 cm höga ben av 2x4s och skruvade in samma kontakter i dem som stöttarna.
För att öka styrkan och den strukturella integriteten för basen använde jag platt platta av aluminium för att skapa X mellan varje bensektion.
Dörren
Jag tog bort en av de horisontella stagen för att göra en dörröppning och ersatte den med en bit plywood på golvet för att hålla benen på rätt avstånd.
Steg 5: Planera hur lysdioderna ska se ut
programvara
Jag använde SketchUp för mitt 3D-planeringsarbete eftersom det är tillgängligt att använda gratis i en webbläsarapp. Lyckligtvis (eftersom jag inte är expert på 3D -modellering) hittade jag en geodesisk kupolmodell tillgänglig på 3D -lagret, där det finns massor av modeller gratis.
Hur många lysdioder?
Layouten måste ta hänsyn till estetik men också kraft och datadistribution. Jag bestämde mig för att använda 11 Fadecandys (och 11 strömförsörjningar) för att täcka 33 av kupolens trianglar. Detta skulle innebära att Fadecandys (och strömförsörjningar) skulle köra 3 trianglar vardera och att ena sidan av kupolen kunde vara öppen så att människor kunde se in från utsidan.
Detta gav mig maximalt 512 lysdioder per 3 trianglar, eftersom varje Fadecandy kan köra 8 remsor med upp till 64 vardera.
Beslutar om en layout
Alla trianglar är inte skapade lika! Min kupol är en 2V -stil, vilket innebär att den har två typer av trianglar, liksidiga och likbent.
Jag kom med fyra olika potentiella layouter för lysdioderna och tog till Instagram för att fråga folk vilka de tyckte bäst om. Stil 1 och stil 3 tycktes komma överst. Stil 3 var min favorit men de koncentriska trianglarna i stil 3 kräver faktiskt mycket mer LED -remsa än den randiga layouten, så jag bestämde mig för stil 1. Detta innebär att det finns 8 liksidiga trianglar med koncentrisk triangel LED -layout och 25 likbent trianglar med randig LED layout.
Eftersom de liksidiga trianglarna är större och innehåller den koncentriska layouten använder de mycket fler lysdioder vardera än de likbent trianglarna. Därför var jag tvungen att dela upp likvärdena över Fadecandys.
8 av Fadecandys kontroll 1 liksidig och 2 likbent trianglar vardera. 3 av Fadecandys kontroll 3 likbent trianglar vardera.
Steg 6: Mer om LED -layouten
Med den allmänna layouten avgjord, behövde jag räkna ut exakt hur många lysdioder jag skulle sätta på varje panel. Jag gjorde detta med hjälp av en kombination av ett kalkylblad för att ta reda på det bästa sättet att maximera Fadecandys kapacitet och att skala ritningar i Illustrator, så att jag kunde se hur layouten skulle se ut.
Maximera Fadecandys förmåga: Linjer och remsor
Jag nämnde tidigare att varje Fadecandy kan köra upp till 8 remsor med 64 pixlar vardera. Mina trianglar innehåller många rader med olika pixellängder, vissa rader med bara väldigt få pixlar.
Om jag skulle behandla var och en av dessa rader som en remsa, skulle jag förlora en hel del av Fadecandys förmåga.
Om jag däremot ville maximera Fadecandys förmåga helt och ha 64 lysdioder på varje remsa, skulle jag behöva ha några remsor som började i mitten av en linje, och det blir förvirrande att kartlägga senare.
Jag var tvungen att ta reda på hur man bäst kan foga ihop linjerna till remsor för att maximera bandförmågan så mycket som möjligt, utan att dela linjer.
I slutet…
Lika sidopaneler har fyra remsor, bestående av:
- 30, 30 (totalt 60 - rött på bifogad bild)
- 30, 22 (52 totalt - orange på bifogad bild)
- 22, 22, 14 (58 totalt - gult på bifogad bild)
- 14, 14, 6, 6, 6 (46 totalt - grönt på bifogad bild)
Lika lika paneler har två remsor, bestående av:
- 23, 28 (51 totalt - blått på bifogad bild)
- 3, 7, 11, 15, 19 (totalt 55 - lila på bifogad bild)
Steg 7: Lägg ut Fadecandys och nätaggregat
Denna bild visar en utplattad vy av kupolens yta.
LED -panelerna
Varje triangelpanel har märkts med ett nummer 1-11, som hänvisar till Fadecandy som styr den. Varje Fadecandy har tre trianglar, så trianglarna har också en bokstav, A-C.
Andra element
De gröna rutorna visar platsen för Fadecandys. Varje Fadecandy är monterad på en liten panel som också fördelar kraften, jag visar detta i detalj i några få steg.
De lila rutorna visar USB -hubbarna. Fadecandys är anslutna till ett Windows -skrivbord via dessa hubbar.
De blå lådorna visar platsen för nätaggregaten, som sitter i tre torrboxar, på golvet runt kupolen.
Bara för att göra det lite mer komplicerat
Om du jämför platsen för FC10 och FC11, kommer du att märka att FC10 är närmast den längsta linjen på sina likbent paneler, medan FC11 är närmast den kortaste linjen.
Om du tittar på 10C ser du också att Fadecandy är till höger om det, medan 10A är till vänster.
Jag var tvungen att ta hänsyn till dessa variationer när jag övervägde hur mycket kabel varje ledremsa behövde i början och vid kartläggning av dem.
Steg 8: Vända linjer till remsor
Detta kalkylblad var för att ta reda på hur mycket kabel som behövdes gå i början av varje avsnitt av LED -remsor.
Hur mycket kabel behövs?
Vissa linjer är märkta med "jst" vilket betyder att de är början på remsan och bara behöver en JST -kontakt.
Vissa remsor har "jst" och en längd, vilket innebär att remsan börjar en bit bort från Fadecandy (som vi såg i layouten i föregående steg) och behöver den kabellängden för att nå den innan JST -kontakten läggs till.
Vissa remsor har bara en längd, vilket betyder att de måste förenas med den del av remsan som ligger framför dem med den längden på kabeln.
Steg 9: Förbereda LED -remsan
LED -remsan
Jag använder LED -remsa i ws2812b -stil, som har tre ingångar, 5V ström, jord och data. Genom att använda 3-stifts kvinnliga JST-kontakter kan jag ansluta till var och en av dessa stift individuellt. De manliga motsvarigheterna till JST -kontakterna kommer att leverera ström och data.
Lödning
Med hjälp av mitt kalkylblad från föregående steg klippte jag alla LED -remsor i önskade längder, lödda på erforderliga kabellängder och JST -kontakterna. Jag satte också en kondensator i början av varje remsa, detta för att undvika att toppar i initialström förstör den första pixeln i remsan. (Jag har haft detta hända tidigare i tidigare projekt där jag inte lade till kondensatorn, så det är definitivt värt att göra.)
Tätning
Jag tillsatte lite RTV-silikon till den exponerade delen av remsan, täckte den med klar värmekrympning och sprängde den med en värmepistol för att åter täta vattentätheten.
Steg 10: Gör panelerna
Material
Jag bestämde mig för att använda 4 mm poppel -plywood för att göra panelerna. Jag höll den tunn för att minska vikten. Jag räknade ut den totala vikten av plywood och kontaktade bygga med hylsor för att kontrollera om jag befann mig inom viktmängden för att hänga saker från kupolstrukturen. Eftersom vikten fördelas ganska jämnt över kupolen är det bra. Jag skulle älskat att använda akryl men tyvärr var det utanför budgeten för mig för detta projekt.
LED -bandfäste
Jag ville inte limma LED -remsan direkt på panelerna eftersom jag skulle vilja kunna byta ut delar av felaktig remsa och eventuellt återanvända all remsa någon gång, så jag bestämde mig för att göra hål i panelerna för att använda buntband. Prickarna på den bifogade bilden visar layouten för kabelhålen.
Skär ut panelerna
Det finns totalt 33 trianglar, och jag de passar in i 9 ark med 2440 x 1220 mm plywood via layouten du ser i den bifogade bilden.
I en idealisk värld skulle jag ha slagit upp vart och ett av de 9 arkskikten direkt i en laserskärare och klippt av trianglarna och bunthålen samtidigt. Tyvärr lever vi i en värld där 2440 x 1220 mm laserskärare är sällsynta, så trianglarna måste skäras ut med en spårsåg.
Tråkigare ändå, vi lever inte heller i en värld där ens en av mina triangelpaneler skulle passa in i laserskäraren i skolan, så jag var tvungen att laserskära en mall med hälften av var och en av triangeldesignerna och använda den att borra hålen för hand.
Jag målade också baksidan av trianglarna, de flesta svarta och sedan sex slumpmässiga silver.
Steg 11: Kabelbinda LED -remsan till panelerna
Detta var mycket kabelbindning! Som tur var hade jag några vänner att hjälpa till.
Kabeletiketter
Jag märkte varje JST -kontakt med en färgkodad kabeletikett, för att göra det enklare när det gäller att ansluta den till dess Fadecandy. De är regnbågsbeställda, så för varje Fadecandy finns det:
- Remsa 1- Röd
- Remsa 2 - Orange
- Remsa 3 - gul
- Remsa 4 - Grön
- Remsa 5 - Blå
- Remsa 6 - lila
- Remsa 7 - Grå
- Remsa 8 - Vit
Inte en exakt regnbåge men det är de färger etiketterna kom i och det fungerar!
(Några av Fadecandys, de som bara driver 3 likbäddade paneler, snarare än 1 liksidig och 2 likbent, använder bara 6 remsor.)
Steg 12: Häng panelerna i kupolen
Mina triangulära paneler är något mindre än klyftan mellan stagen, jag ville att de skulle hänga fritt i rymden snarare än att fästa dem rejält på stöttorna.
Hängande metod
Varje nod i kupolen har en ögonbult - dessa kommer inte som standard men Buildwithhubs säljer dem i ett paket. Dessa ögonbultar är perfekta för att hänga saker på (även om du är försiktig så att du inte hänger för mycket vikt från en nod).
Jag bestämde mig för att använda paracord och små karabinklämmor. Sladden går genom två hål i varje hörn av panelen. Karbinhaken klämmer fast snöret på ögonbulten. För att dra åt sladden och se till att panelen är korrekt placerad i utrymmet, lade jag också till en plastknapp till varje. Det betyder att de enkelt kan klippas på medan de är lösa och sedan stramas upp efteråt för att placera dem i mitten av utrymmet.
Jag är väldigt nöjd med hur karbinmetoden blev. Det är mycket tillfredsställande att fästa panelerna på kupolen, klicka klicka klicka. Det är snabbt och enkelt att ta bort dem också.
Steg 13: Gör ström- och datadistributionspaneler
Så vi har lödt massor av JST -kontakter till massor av LED -remsor, men vad ansluter de till dem?
Varje remsa måste anslutas till ström, jord och data från Fadecandy. Det finns 11 anslutningspaneler som rymmer de 11 Fadecandys och distribuerar ström från de 11 nätaggregaten. Jag laserskar dessa paneler ur kvarvarande 4 mm poppelskikt. På sidan finns slitsar för kardborreband, som fäster panelerna snyggt på kupolstagen.
Kraft
Varje lysdiod använder en 0,06A vid full ljusstyrka. Det betyder att den totala effekten som behövs för att 4378 pixlar ska kunna köras med full effekt är ~ 1,3 kW.
Men jag har i huvudsak 11 helt separata strömkretsar. (De är endast anslutna via -ve via Fadecandy. Anslut inte +ve för separata strömförsörjningar eftersom detta är farligt.) Varje krets driver bara maximalt 428 pixlar, totalt 128W, så strömmen är vid en mycket säkrare nivå.
Mina nätaggregat kan leverera 150W vardera (30A vid 5V).
På anslutningspanelen kommer ström och jord in från strömförsörjningen längst ner, den ansluts sedan till wago -kontakter, som fördelar den över 8 manliga JST -kontakter.
Data
Fadecandy är ansluten till vänster på panelen, och USB -kabeln kommer in från botten på samma sätt som strömkablarna.
Datakabeln på JST -kontakten är lödd till en remsa med enstaka huvudstiften som ansluts till stiften på Fadecandy. En av jordstiftarna på Fadecandy är ansluten till jordkretsen. (Jordstiftet är alla anslutna till varandra, så det är inte nödvändigt att ansluta dem alla)
Steg 14: Tygöverdrag
Att sy ihop tygbeklädnaden var oväntat en av de svåraste och tidskrävande delarna av detta projekt. Som tur var hade jag en vän att hjälpa till!
Layout
På det platta diagrammet av kupolen kan du se att omslaget består av 5 femkantar som består av 5 likbent trianglar vardera, plus 8 liksidiga trianglar. Vi gjorde omslaget i den här ordningen - sydde ihop de fem femkanterna först och förenade dem sedan med de liksidiga trianglarna.
(De svarta sektionerna på diagrammet är öppna och avtäckta.)
Mätning
Vi försökte räkna ut måtten för trianglarna med hjälp av matematik som vanliga människor, men av någon anledning fortsatte det att bli fel och inte riktigt passa kupolen, så till slut använde vi en bit polycord genom ögonbultarna på noder för att mäta storleken och använd sedan denna polykordstriangel som mall. Jag vet inte varför det är förvirrande med 3D -trianglar att använda de kända mätningarna av stagen+nodgap.
Pentagoner
När vi gjorde de likbent trianglarna och sydde ihop dem till femkanter, hängde vi ofta upp det på kupolen för att kontrollera att allt stod i kö. Den fästs på kupolen med små bitar av elastik som sys till de punkter där trianglarna möts.
Att gå ihop det
När vi hade gjort de fem femkanterna började vi klippa ut de liksidiga trianglarna med samma metod - polykord genom ögonbultarna. När vi väl sydde ihop två av femkanterna på det här sättet insåg vi att det inte alls var bra. Så istället bestämde vi oss för att hänga upp alla femkanter i kupolen och fästa de liksidiga trianglarna på plats. Sedan, när allt var fäst, tog vi ner det och min vän sydde ihop det till en fast bit.
Att fästa det på det här sättet var mycket arbete, mycket av det med mina armar direkt ovanför huvudet ofta medan jag försökte fästa tyg från kupolens utsida, medan jag stod på insidan. Roligt!
Märkning
Längs vägen märkte vi bitarna med en vattenlöslig tygpenna … dessa saker är bra eftersom du kan skriva direkt på tyget och sedan spritsa det med vatten och bläcket försvinner (ibland tar det några få tag, men det fungerar)
Steg 15: Häng upp tyget
Tyget hängs upp i kupolen med elastiska längder som sys på varje punkt, dessa knyts fast vid ögonbultarna vid kupolns noder.
Att binda och lossa elastikerna är inte lika snabbt som att klippa på panelerna, så jag skulle vilja byta ut den här metoden med karbinhakar eller något annat klipp någon gång.
Steg 16: Anslutning av Kinect
I en djärv uppvisning av förtroende för universum mätte jag inte vid något tillfälle gapet mellan panelerna för att se till att en Kinect faktiskt skulle passa. (Berätta inte för mina lärare)
Ni kan tänka er min glädje när det passade så här.
Den här bilden visar en Kinect v2 men jag slutade använda en Kinect v1 av skäl som jag kommer in på senare.
Den är precis fäst vid fjäderbenet med hjälp av dubbelsidig kardborreband.
Steg 17: Golv
Golvet är tillverkat av sammanlänkade EVA -skummattor som jag fick från B&Q. Jag har använt dessa för två projekt nu och det är bra för inomhus. Det är väldigt bekvämt att sitta på.
Utomhus på blåsiga festivaler som Burning Man måste det säkras överallt eftersom vinden kommer precis under det och lyfter upp det hela.
Steg 18: Det är byggandet gjort … Till koden
Tack för att du håller med mig hittills. Det är allt det fysiska bygget gjort. Nu kan vi diskutera programvaran.
Steg 19: Fadecandy Server
Ladda ner programvaran
Fadecandys programvara finns här.
Ladda ner hela github och packa upp den.
Kör servern
Navigera till "bin" -mappen i fadecandy -sakerna du just laddade ner.
Klicka på fcserver.exe.
Detta laddar ett cmd -fönster som visar alla anslutna Fadecandy -enheter. I det här fallet finns det 11.
Testa lysdioderna
Navigera till https://127.0.0.1:7890/ för att se användargränssnittet för Fadecandy. Detta visar alla anslutna enheter igen och tillåter lite kontroll.
Genom att klicka på rullgardinsmenyn för testmönster kan du ställa in alla pixlar för den Fadecandy till hel eller halv ljusstyrka. Det är också möjligt att få den lilla gröna lysdioden på själva fadecandy att blinka genom att klicka på "identifiera".
Steg 20: Konfigurera Fadecandy -servern
Just nu laddas alla Fadecandys i slumpmässig ordning. Tidigare märkte jag mina trianglar 1-11 men det finns inget sätt för datorn att veta vilken som är vilken för tillfället. För att göra det måste vi skapa en konfigurationsfil.
Vilken Fadecandy är vilken
Innan vi kan berätta för datorn i vilken ordning Fadecandys befinner sig måste vi själva ta reda på vilken som är vilken. Jag gjorde detta genom att använda webbläsargränssnittet för att få varje sektion att lysa och sedan notera vilken det var och vad det är serienummer.
Konfigurationsfilen
I konfigurationsfilen listar vi alla serienummer, indexpixeln de börjar med och hur många pixlar de teoretiskt styr. Jag säger teoretiskt eftersom jag kommer att kartlägga pixlarna som om det finns 512 per Fadecandy, även om det faktiskt är färre. Detta gör det bara lättare eftersom vi vet att den första pixeln i alla Fadecandy alltid är [Fadecandy -nummer * 512].
Fadecandy bryr sig inte om att var och en faktiskt har färre pixlar än maxvärdet, och vi tar hand om det i behandlingskoden också.
Läser in konfigurationsfilen
Nu, för att starta Fadecandy -servern, istället för att bara klicka på fcserver.exe, måste vi skicka denna konfigurationsfil till den.
Vi gör detta genom att öppna en cmd -prompt i papperskorgen och skriva
fcserver config.json
Detta kommer nu att ladda alla Fadecandys i rätt adresser.
Steg 21: Kartläggning av pixlarna
Dymaxion -kartläggning
Buckminster Fuller (som populariserade geodesiska kupoler) skapade också dymaxionskartan, som är en representation av jorden som om den var på ytan av en icosahedron. Det kan vikas för att vara 3D eller plattas ut för att vara 2D.
Ungefär på samma sätt plattar jag ut kupolens yta från dess 3D -form till en 2D -representation, som visas i den bifogade bilden. Denna 2D -representation kommer att kartläggas till en bearbetningsduk där allt jag ritar på duken omedelbart visas över lysdioderna.
Bearbetning
Bearbetning är ett visuellt programmeringsspråk. Precis som hur du skulle rita en rektangel i Photoshop med musen, kan du rita en rektangel i Processing genom att skriva kod så här:
rekt (100, 80, 10, 50);
Det skulle ge dig en rektangel som börjar 100 px in, 80 px ner, 10 px bred och 50 px hög.
Om du inte är bekant med Processing rekommenderar jag starkt Daniel Shiffmans tutorials på Youtube som är lika underhållande som informativa.
Rita linjer av lysdioder
Bearbetning fungerar med Fadecandy ur lådan. Det finns en funktion för att sätta ut lysdioder i linjer genom att berätta det:
- startindex / adress för lysdioderna i den raden
- det faktiska antalet pixlar på raden
- x, y -platsen för mitten av linjen
- avståndet mellan dem
- linjens vinkel
Rita trianglar
Jag skrev en funktion för var och en av mina typer av trianglar (lika och likbent). Jag säger det:
- startindex / adress för lysdioderna i hela denna triangel
- mitt i triangeln
- vinkeln som hela triangeln har
Från denna information skriver den ut linjerna med lysdioder, med hjälp av trigonometri för att placera dem korrekt på bearbetningsduken.
(Du kanske kommer ihåg många steg bakåt, jag påpekade att på grund av Fadecandys läge, börjar några likbenta trianglar vid den längsta remsan och några på den kortaste, och några kommer in från vänster och några till höger. Detta betyder att jag har faktiskt fyra funktioner för likbent trianglar)
Om adresser
När jag säger index / adress hänvisar jag till hur Fadecandy adresserar lysdioderna.
t.ex.
- På den första Fadecandy börjar den första remsan vid 0
- På den första Fadecandy börjar den andra remsan vid 64 (oavsett hur många pixlar som faktiskt finns på den första remsan)
På den första Fadecandy börjar den tredje remsan vid 128 (oavsett hur många pixlar som faktiskt finns på de två första remsorna)
- På den andra Fadecandy börjar den första remsan vid 512 (oavsett hur många pixlar som faktiskt finns i den första Fadecandy
- På den andra Fadecandy börjar den andra remsan på 576 (… du förstår)
Koda
En "tom" version av min kupolkod är tillgänglig på github här.
Denna kod innehåller kartläggningen som beskrivs ovan men ingen grafik bortsett från en cirkel ritad där musen är.
n.b Pixlarna återges endast i den här koden om du har Fadecandy -servern igång.
Steg 22: Kinect -integration
Kinect 1 eller 2?
Det finns två versioner av Kinect. Kinect v1 arbetade med Xbox 360, medan Kinect v2 arbetade med Xbox One (förvirrande).
Jag använder en Kinect v1. En del av anledningen till detta är att det är mycket svårt att förlänga USB -kabelns längd på Kinect v2 på grund av mängden data som skickas. Det kräver en dyr och svår att hitta förlängningskabel. Eftersom min Kinect är monterad högst upp på kupolen kan jag inte ansluta en Kinect v2 direkt till skrivbordet på golvet. Ett löjligt problem att ha men där är vi.
Några av mina fotografier och videor visar en Kinect v2, det beror på att jag inledningsvis hade en inställning där jag hade Kinect v2 ansluten till en bärbar kabel som var bunden halvvägs upp i kupolen, vilket skickade information över OSC till skrivbordet som styr lysdioderna. Detta fungerade bra för vissa applikationer men när jag väl ville använda hela djupmatningen kunde jag inte skicka det hela OSC så jag bytte till Kinect v1.
Installation
Jag tänker inte prata igenom installationen av SDK och få rätt kablar för Kinect eftersom det finns många guider om hur man gör det. Jag har SDK v1.8 installerat och inom Processing använder jag OpenKinect -biblioteket.
Steg 23: Kinect djupspårning
Koda
Min kod är tillgänglig på github här. Det är ganska bra kommenterat så ta en titt!
Detta är en översikt över vad koden gör:
Kinect djupkameraflöde mappas till färg (t.ex. långt borta = rött, nära = grönt) och visas direkt över lysdioderna. Men det är mer än så.
För det första dithar färgen på varje pixel i djupmatningen fram och tillbaka runt dess faktiska nyans, för att lägga till en skimrande effekt.
För det andra, när du börjar skissen, klickar du med musen för att ta en bakgrundsläsning, då visas bara pixlar som är närmare än den bakgrundsavläsningen. Detta hindrar golvet/eventuella kuddar/kupolens struktur från att dyka upp.
Det finns också en funktion för att återställa bakgrunden som läser varje x -bildruta, så om människor i kupolen ligger stilla kommer de inte att dyka upp. Detta innebär att den verkliga rörelsen sticker ut, istället för att visa hela klumpen av djup nonsens. (Jag kommer snart att ersätta detta med en lerped version, så bakgrunden gör inte en så "hård" återställning utan snarare utvecklas med tiden)
Det finns också en bakgrundsanimation som visar kluster av färgklumpar, mängden kluster är omvänt mappade till mängden handling som händer i kupolen, så om ingen är närvarande eller de fortfarande är det mycket animering. Sedan försvinner det gradvis när mer rörelse händer inuti.
Steg 24: Dome Done
Jag hoppas att du lärde dig något och tyckte att detta var intressant. Kolla in hela videon som har en massa bilder från kupolen som fungerar.
Jag har också inkluderat här för skojs skull några lång exponeringsfoton jag tog av When in Dome. Njut av!
Första priset i Make it Glow Contest 2018
Rekommenderad:
Framåt kinematisk med Excel, Arduino och bearbetning: 8 steg
Forward Kinematic Med Excel, Arduino & Processing: Forward Kinematic används för att hitta sluteffektvärden (x, y, z) i 3D -utrymme
Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg
Ansluta bearbetning och Arduino och göra 7 segment och servo GUI -kontroller: För vissa projekt måste du använda Arduino eftersom det ger en enkel prototypplattform men visning av grafik i seriell bildskärm av Arduino kan ta ganska lång tid och är till och med svårt att göra. Du kan visa grafer på Arduino Serial Monitor
Hur man kontrollerar adresserbara lysdioder med Fadecandy och bearbetning: 15 steg (med bilder)
Så här kontrollerar du adresserbara lysdioder med Fadecandy och bearbetning: WhatThis är en steg-för-steg-handledning om hur du använder Fadecandy och Processing för att styra adresserbara lysdioder. Fadecandy är en LED-drivrutin som kan styra upp till 8 remsor med 64 pixlar vardera. (Du kan ansluta flera Fadecandys till en dator för att öka
4x4 knappsats med Arduino och bearbetning: 4 steg (med bilder)
4x4 knappsats med Arduino och bearbetning: Gillar du inte LCD -skärmar? Vill du få dina projekt att se tilltalande ut? Här är lösningen. I denna instruktionsbok kan du befria dig från besväret med att använda en LCD -skärm för att visa innehåll från din Arduino och också göra ditt projekt
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid