Indholdsfortegnelse:
- Trin 1: Domen
- Trin 2: Lav struts
- Trin 3: Byg kuplen
- Trin 4: Hæv det
- Trin 5: Planlæg, hvordan lysdioderne skal se ud
- Trin 6: Mere om LED -layoutet
- Trin 7: Læg Fadecandys og strømforsyninger
- Trin 8: Vend linjer til strimler
- Trin 9: Forberedelse af LED Strip
- Trin 10: Lav panelerne
- Trin 11: Kabelbind LED -stripen til panelerne
- Trin 12: Hæng panelerne i kuplen
- Trin 13: Lav strøm- og datadistributionspaneler
- Trin 14: Stofdækning
- Trin 15: Hængning af stoffet
- Trin 16: Montering af Kinect
- Trin 17: Gulv
- Trin 18: Sådan er bygningen udført … På koden
- Trin 19: Fadecandy -server
- Trin 20: Konfigurer Fadecandy -serveren
- Trin 21: Kortlægning af pixel
- Trin 22: Kinect -integration
- Trin 23: Kinect dybdesporing
- Trin 24: Dome Done
Video: Interaktiv LED Dome med Fadecandy, behandling og Kinect: 24 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Hvad
Når i Dome er en 4,2 m geodesisk kuppel dækket med 4378 lysdioder. LED'erne er alle individuelt kortlagte og adresserbare. De styres af Fadecandy og Processing på et Windows -skrivebord. En Kinect er fastgjort til en af kuplens stiver, så bevægelse inde i kuplen kan spores, og folk kan interagere med lysene.
Hvorfor
Jeg udforsker gruppeoplevelse gennem delt interaktion. Jeg kan godt lide at lave grænseflader, som mange mennesker kan bruge på én gang. Kuppelens LED-overflade giver et passende output til en flerbrugergrænseflade, fordi den er enorm, så mange mennesker kan se den. Kuplen skaber også et hyggeligt, sfærisk rum, som tilskynder folk til at vende sig mod hinanden. Kinect fungerer godt som et input til flere brugere, fordi folk kan bevæge sig rundt og påvirke dybdefeltet på samme tid, den eneste grænse er, hvor mange mennesker der kan passe ind i rummet sammen.
Jeg udvikler løbende nye interaktionsmetoder til When in Dome for at se, hvilken effekt forskellige inputmetoder har, og hvad der fungerer godt for forskellige grupper af mennesker. Jeg er især ivrig efter at se, hvilke grænseflader der tilskynder til forbindelse mellem venner og fremmede inde i kuplen, og hvad der får den delte oplevelse til at føles meningsfuld og værd.
Hvor
Jeg designede og byggede When in Dome som det sidste projekt for min kandidat, som var Design for Performance and Interaction på Interactive Architecture Lab, The Bartlett, UCL.
Hvordan
Nogle af de anvendte teknologier og værktøjer:
- Fadecandy
- Forarbejdning
- Kinect (jeg fik min fra eBay)
- Geringssav
- Banesav
- Symaskine
- Loddekolbe
- Varmepistol
- Varm limpistol
- Laserskærer
- Bore
Noget af det anvendte udstyr:
- Byg med hub -kit
- Behandlet savet træ til kuppelstiver
- 4 mm poppel krydsfiner
- Hvidt diffusionsstof
- Sort stof
- Aluminium flad stang
- Wago stik
- 12awg og 24awg kabel
- 5v 30A strømforsyninger
- Skumgulv
- Jst -stik
- Kondensatorer
Lad os gå
Der er masser af komponenter til dette projekt, som jeg vil tale igennem, jeg håber, at du finder noget nyttigt og interessant indeni!
Trin 1: Domen
Navsæt
Jeg besluttede at bygge min kuppel med et kit fra buildwithhubs, og jeg vil helt sikkert anbefale dem.
De sælger stiksæt og giver råd om, hvilke materialer der skal købes til stiverne. De fleste af deres kupler bruges i folks egen haver, hvorimod min vil være i offentligheden, så jeg købte også deres kit med ekstra sikre hætter, som forhindrer stiverne i at springe ud, hvis nogen læner sig på kuplen.
Størrelse
Min kuppel er 4,2 m i diameter. Jeg valgte denne størrelse, fordi det betød, at den længste side af trekanterne, der udgør kuplen, ville være 1,2 m, og dette passede fint ind i krydsfinerplader, da jeg kom til at lave panelerne til at holde lysdioderne.
Trin 2: Lav struts
Længder
Jeg brugte buildwithhubs 'stiver -lommeregner til at beregne de længder, der var nødvendige for at lave en 4,2 m kuppel. 30 "shorts" på 1059 mm og 35 "længder" på 1209 mm.
Materiale
2 pakker med 24 19 mm x 38 mm x 2400 mm savet træ fra B&Q (som anbefalet på buildwithhubs -stedet) er nok til en kuppel. Dette fungerer godt nok, men hvis jeg gjorde det igen, ville jeg få noget, der har mere sidestyrke.
Behandle
Stiverne blev skåret i længden ved hjælp af en geringssav, og derefter malede jeg dem ved at lægge dem alle fladt ud på et støvark og rulle over dem. Dette gjorde en sjov timelapse!
Derefter bundtede jeg dem sammen i grupper på 6 ad gangen og skruede konnektorstykkerne i enderne.
Trin 3: Byg kuplen
Når stiverne er lavet, er det super let at bygge kuplen. Jeg vil ikke gennemgå processen i detaljer, da der er instruktioner på buildwithhubs -webstedet, og de giver også et hæfte.
Trin 4: Hæv det
Jeg ville ikke have, at LED -panelerne skulle ligge lige ved gulvet, da det ville betyde, at mange af dem ville blive blokeret af mennesker i kuplen. Jeg ville også gøre kuplen højere, så den føles mere rummelig og imødekommende.
Ben
Jeg lavede 50 cm høje ben ud af 2x4s og skruede de samme stik i dem som stiverne.
Derefter, for at øge basens styrke og strukturelle integritet, brugte jeg en flad stang i aluminium til at skabe X'er mellem hver bensektion.
Døren
Jeg fjernede en af de vandrette stiver for at lave en døråbning og erstattede den med et stykke krydsfiner på gulvet for at holde benene i den korrekte afstand.
Trin 5: Planlæg, hvordan lysdioderne skal se ud
Software
Jeg brugte SketchUp til mit 3D-planlægningsarbejde, fordi det er tilgængeligt til gratis brug i en browser-app. Heldigvis (da jeg ikke er ekspert i 3D -modellering) fandt jeg en geodesisk kuppelmodel tilgængelig på 3D -lageret, hvor der er masser af modeller gratis.
Hvor mange lysdioder?
Layoutet skulle tage hensyn til æstetik, men også magt og datadistribution. Jeg besluttede at bruge 11 Fadecandys (og 11 strømforsyninger) til at dække 33 af kuplens trekanter. Dette ville betyde, at Fadecandys (og strømforsyninger) ville køre 3 trekanter hver, og at den ene side af kuplen kunne være åben, så folk kunne se ind udefra.
Dette gav mig maksimalt 512 lysdioder pr. 3 trekanter, da hver Fadecandy kan køre 8 strimler på op til 64 hver.
Beslutning om et layout
Ikke alle trekanter er skabt ens! Min kuppel er en 2V -stil, hvilket betyder, at den har to typer trekanter, ækvivalente og ensbenede.
Jeg kom med fire forskellige potentielle layout til lysdioderne og tog til Instagram for at spørge folk, hvem de bedst kunne lide. Stil 1 og stil 3 syntes at komme på toppen. Stil 3 var min favorit, men de koncentriske trekanter i stil 3 kræver faktisk meget mere LED -strimmel end det stribede layout, så jeg besluttede mig for stil 1. Det betyder, at der er 8 ligesidede trekanter med koncentrisk trekant LED -layout og 25 ensartede trekanter med stribet LED layout.
Da de ligesidede trekanter er større og indeholder det koncentriske layout, bruger de meget flere lysdioder hver end de ensartede trekanter. Derfor måtte jeg opdele ækvivalenterne på tværs af Fadecandys.
8 af Fadecandys styrer 1 ligesidet og 2 ensartede trekanter hver. 3 af Fadecandys styrer 3 ensartede trekanter hver.
Trin 6: Mere om LED -layoutet
Da det generelle layout var besluttet, var jeg nødt til at regne ud, præcis hvor mange lysdioder jeg ville sætte på hvert panel. Jeg gjorde dette ved hjælp af en kombination af et regneark for at finde ud af den bedste måde at maksimere Fadecandys muligheder og skaleringstegninger i Illustrator, så jeg kunne se, hvordan layoutet ville se ud.
Maksimering af Fadecandys kapacitet: Linjer og strimler
Jeg nævnte tidligere, at hver Fadecandy kan køre op til 8 strimler på 64 pixels hver. Mine trekanter indeholder mange linjer i forskellige pixellængder, nogle linjer med kun meget få pixels.
Hvis jeg skulle behandle hver enkelt af disse linjer som en stribe, ville jeg miste en masse Fadecandys kapacitet.
Omvendt, hvis jeg helt ville maksimere Fadecandys kapacitet og have 64 lysdioder på hver strimmel, skulle jeg have nogle strimler, der startede midt på en linje, og det vil være forvirrende at kortlægge senere.
Jeg var nødt til at finde ud af, hvordan man bedst forbinder linjerne til strimler for at maksimere strimlekapaciteten så meget som muligt uden at opdele linjer.
Til sidst…
Ligesidige paneler har fire strimler, der består af:
- 30, 30 (60 i alt - rød på vedhæftede billede)
- 30, 22 (52 i alt - orange på vedhæftede billede)
- 22, 22, 14 (58 i alt - gul på vedhæftede billede)
- 14, 14, 6, 6, 6 (46 i alt - grøn på vedhæftet billede)
Isosceles paneler har to strimler, der består af:
- 23, 28 (51 i alt - blå på vedhæftede billede)
- 3, 7, 11, 15, 19 (55 i alt - lilla på vedhæftede billede)
Trin 7: Læg Fadecandys og strømforsyninger
Dette billede viser et fladt billede af kuplens overflade.
LED -panelerne
Hvert trekantet panel er mærket med et nummer 1-11, som refererer til Fadecandy, der styrer det. Hver Fadecandy har tre trekanter, så trekanterne har også et bogstav, A-C.
Andre elementer
De grønne felter viser placeringen af Fadecandys. Hver Fadecandy er monteret på et lille panel, som også fordeler strømmen, jeg viser dette detaljeret i løbet af få trin.
De lilla bokse viser USB -hubs. Fadecandys er forbundet til et Windows -skrivebord via disse hubs.
De blå kasser viser placeringen af strømforsyningerne, der sidder i 3 tørbokse, på gulvet omkring kuplen.
Bare for at gøre det lidt mere kompliceret
Hvis du sammenligner placeringen af FC10 og FC11, vil du bemærke, at FC10 er tættest på den længste linje af dens ensartede paneler, mens FC11 er tættest på den korteste linje.
Hvis du ser på 10C, vil du også se, at Fadecandy er til højre for den, mens 10A er til venstre.
Jeg var nødt til at tage disse variationer i betragtning, når jeg overvejede, hvor meget kabel hver ledstrimmel havde brug for i starten, og når jeg kortlagde dem.
Trin 8: Vend linjer til strimler
Dette regneark skulle finde ud af, hvor meget kabel der skulle gå i starten af hver sektion af LED -strimler.
Hvor meget kabel er der brug for?
Nogle linjer er mærket "jst", hvilket betyder, at de er starten på strimlen og bare har brug for et JST -stik.
Nogle strimler har "jst" og en længde, hvilket betyder, at strimlen starter et stykke væk fra Fadecandy (som vi så i layoutet i det foregående trin), og har brug for den kabellængde for at nå den, før JST -stikket tilføjes.
Nogle strimler har bare en længde, hvilket betyder, at de skal forbindes til sektionen af strimmel foran dem med den længde af kablet.
Trin 9: Forberedelse af LED Strip
LED strip
Jeg bruger LED -strip i ws2812b -stil, som har tre indgange, 5V strøm, jord og data. Ved hjælp af 3-bens kvindelige JST-stik kan jeg oprette forbindelse til hver af disse stifter individuelt. De mandlige modstykker til JST -stik vil levere strøm og data.
Lodning
Ved hjælp af mit regneark fra det foregående trin skar jeg alle LED -strimlerne i de nødvendige længder, loddet på de nødvendige længder af kabel og JST -stik. Jeg satte også en kondensator i starten af hver strimmel, dette er for at undgå, at toppe i startstrøm ødelægger den første pixel i strimlen. (Jeg har tidligere oplevet dette i tidligere projekter, hvor jeg ikke tilføjede kondensatoren, så det er bestemt værd at gøre.)
Forsegling
Jeg tilføjede noget RTV-silikone til den eksponerede del af strimlen, dækkede den til klar varmekrympning og sprængte den med en varmepistol for at forsegle den vandtæthed.
Trin 10: Lav panelerne
Materiale
Jeg besluttede at bruge 4 mm poppel krydsfiner til at lave panelerne. Jeg holdt den tynd for at reducere vægten. Jeg udregnede krydsfinerens samlede vægt og kontaktede buildwhhubs for at kontrollere, om jeg var inden for vægtmængderne til at hænge ting af kuplestrukturen. Da vægten fordeles nogenlunde jævnt over kuplen, er det fint. Jeg ville have elsket at bruge akryl, men desværre var det uden for budgettet for mig til dette projekt.
LED -strip fastgørelse
Jeg ønskede ikke at lime LED -strimlen direkte til panelerne, da jeg gerne ville være i stand til at udskifte dele af den defekte strimmel og muligvis genbruge hele strimlen på et tidspunkt, så jeg besluttede at lave huller i panelerne til brug kabelbindere. Prikkerne på det vedhæftede billede viser layoutet af kabelbindehullerne.
Skæring af panelerne
Der er i alt 33 trekanter, og I de passer ind i 9 ark 2440 x 1220 mm krydsfiner via det layout, du ser på det vedhæftede billede.
I en ideel verden ville jeg have sprunget hvert af de 9 lag lag direkte i en laserskærer og skåret trekanterne og kabelbinderne på samme tid. Desværre lever vi i en verden, hvor 2440 x 1220 mm laserskærere er sjældne, så trekanterne skulle skæres ud ved hjælp af en sporsav.
Desværre lever vi heller ikke i en verden, hvor selv et enkelt af mine trekantpaneler ville passe ind i laserskæreren i skolen, så jeg måtte laserskære en skabelon med halvdelen af hver af trekantsdesignerne og bruge den at bore hullerne i hånden.
Jeg malede også bagsiden af trekanterne, de fleste sorte og derefter seks tilfældige sølvfarvede.
Trin 11: Kabelbind LED -stripen til panelerne
Dette var meget kabelforbindelse! Heldigvis havde jeg nogle venner til at hjælpe.
Kabelmærker
Jeg mærkede hvert JST -stik med en farvekodet kabeletiket, for at gøre det lettere, når det kommer til at tilslutte det til dets Fadecandy. De er regnbueordnet, så for hver Fadecandy er der:
- Strip 1- Rød
- Strip 2 - Orange
- Strip 3 - Gul
- Strip 4 - Grøn
- Strip 5 - Blå
- Strip 6 - Lilla
- Strip 7 - Grå
- Strip 8 - Hvid
Ikke en præcis regnbue, men det er de farver, etiketterne kom i, og det virker!
(Nogle af Fadecandys, dem der kun driver 3 ensartede paneler, frem for 1 ligesidet og 2 ensartede, bruger kun 6 strimler.)
Trin 12: Hæng panelerne i kuplen
Mine trekantede paneler er lidt mindre end afstanden mellem stiverne, jeg ville have dem til at hænge frit i rummet frem for at fastgøre dem solidt til stiverne.
Hængemetode
Hver knude i kuplen har en øjenbolt - disse kommer ikke som standard, men Buildwithhubs sælger dem i en pakke. Disse øjebolte er perfekte til at hænge ting på (selvom du skal passe på ikke at hænge for meget vægt fra en knude).
Jeg besluttede at bruge paracord og små karabinhage klip. Ledningen løbes gennem to huller i hvert hjørne af panelet. Karabinhage klemmer snoren fast på øjenbolten. For at stramme ledningen og sikre, at panelet er korrekt placeret i rummet, tilføjede jeg også en plastskifte til hver enkelt. Det betyder, at de let kan klippes på, mens de er løse, og derefter strammes op bagefter for at placere dem i midten af rummet.
Jeg er meget glad for, hvordan karabinhagemetoden blev. Det er meget tilfredsstillende at klippe panelerne fast på kuplen, klik klik klik klik. Det er også hurtigt og nemt at fjerne dem.
Trin 13: Lav strøm- og datadistributionspaneler
Så vi har loddet masser af JST -stik til masser af LED -bånd, men hvad sætter de i?
Hver strimmel skal oprette forbindelse til strøm, jord og data fra Fadecandy. Der er 11 tilslutningspaneler, der holder de 11 Fadecandys og distribuerer strøm fra de 11 strømforsyninger. Jeg laserskærede disse paneler ud af resterende 4 mm poppelag. På siden er der slots til stykker velcro, som fastgør panelerne pænt til kuppelstiverne.
Strøm
Hver LED bruger en 0,06A ved fuld lysstyrke. Det betyder, at den samlede effekt, der er nødvendig for at 4378 pixels kan køre med fuld effekt, er ~ 1,3 kW.
Imidlertid har jeg i det væsentlige 11 helt separate strømkredse. (De er kun tilsluttet via -ve via Fadecandy. Tilslut ikke +ve af separate strømforsyninger, da dette er farligt.) Hvert kredsløb driver kun maksimalt 428 pixel, i alt 128W, så strømmen er ved en meget mere sikkert niveau.
Mine strømforsyninger kan levere hver 150W (30A ved 5V).
På tilslutningspanelet kommer strøm og jord ind fra strømforsyningen i bunden, den er derefter forbundet til wago -stik, som fordeler den på tværs af 8 han -JST -stik.
Data
Fadecandy er fastgjort til venstre på panelet, og USB -kablet kommer ind fra bunden på samme måde som strømkablerne.
Datakablet på JST -stikket er loddet til en strimmel af hunstifter med enkelt hoved, der sættes i stifterne på Fadecandy. En af jordstifterne på Fadecandy er forbundet til jordkredsløbet. (Jordstifterne er alle forbundet med hinanden, så det er ikke nødvendigt at forbinde dem alle)
Trin 14: Stofdækning
At sy stofbeklædningen sammen var uventet en af de vanskeligste og tidskrævende dele af dette projekt. Heldigvis havde jeg en ven til at hjælpe!
Layout
På det flade diagram af kuplen kan du se, at dækslet består af 5 femkanter, der består af 5 ensartede trekanter hver, plus 8 ligesidede trekanter. Vi lavede dækslet i denne rækkefølge - syede først de fem femkanter sammen og sluttede dem derefter sammen med de ligesidede trekanter.
(De sorte sektioner på diagrammet er åbne og afdækkede.)
Måling
Vi forsøgte at finde ud af målingerne for trekanterne ved hjælp af matematik som normale mennesker, men af en eller anden grund blev det ved med at komme forkert op og passede ikke helt til kuplen, så til sidst brugte vi et stykke polycord gennem knudernes øjenbolte til at mål størrelsen, og brug derefter denne polycord -trekant som en skabelon. Jeg ved ikke, hvorfor brugen af de kendte målinger af stiverne+knudepunkter fortsat gik galt, 3D -trekanter er forvirrende.
Pentagoner
Da vi lavede de ensbenede trekanter og syede dem sammen til femkanter, hængte vi det ofte op på kuplen for at kontrollere, at alt var i kø. Den er fastgjort til kuplen ved hjælp af små stykker elastik, der er syet til de punkter, hvor trekanterne mødes.
Slutter sig sammen
Da vi havde lavet de fem femkanter, begyndte vi at skære de ligesidede trekanter ud ved hjælp af den samme metode - polykord gennem øjenboltene. Da vi først syede to af femkanterne sammen på denne måde, indså vi, at det slet ikke stod godt i kø. Så i stedet besluttede vi at hænge alle femkanter i kuplen op og fastgøre de ligesidede trekanter til dem på plads. Så, når det hele var fastgjort, tog vi det ned, og min ven syede det sammen til et solidt stykke.
At fastgøre det på denne måde var meget arbejde, meget af det med mine arme direkte over mit hoved ofte, mens jeg forsøgte at stifte stof udefra på kuplen, mens jeg stod på indersiden. Sjovt!
Mærkning
Undervejs mærkede vi stykkerne med en vandopløselig stofpen … disse ting er gode, da du kan skrive direkte på stoffet og derefter sprøjte det med vand, og blækket forsvinder (nogle gange tager det et par gange, men det virker)
Trin 15: Hængning af stoffet
Stoffet hænges i kuplen af elastiklængder, der sys på hvert punkt, disse binder til øjenboltene ved kuplens knuder.
Binding og afbinding af elastikkerne er ikke så hurtigt som at klippe på panelerne, så jeg vil gerne erstatte denne metode med karabinhager eller et andet klip på et tidspunkt.
Trin 16: Montering af Kinect
I en modig fremvisning af tillid til universet målte jeg på intet tidspunkt afstanden mellem panelerne for at sikre, at en Kinect faktisk ville passe. (Fortæl venligst ikke mine undervisere)
Du kan forestille dig min glæde, da det passede sådan.
Dette billede viser en Kinect v2, men jeg endte med at bruge en Kinect v1 af grunde, som jeg kommer nærmere på senere.
Det er bare fastgjort til stiveren ved hjælp af dobbeltsidet velcrobånd.
Trin 17: Gulv
Gulvet er lavet af sammenlåsende EVA -skummåtter, som jeg fik fra B&Q. Jeg har brugt dem til to projekter nu, og det er fantastisk til indendørs. Det er meget behageligt at sidde på.
Udendørs på blæsende festivaler som Burning Man skal den sikres over det hele, fordi vinden kommer lige under den og løfter det hele op.
Trin 18: Sådan er bygningen udført … På koden
Tak fordi du holder med mig indtil videre. Det er alt det fysiske byggeri UDFØRT. Lad os nu diskutere softwaren.
Trin 19: Fadecandy -server
Download softwaren
Fadecandy -softwaren er tilgængelig her.
Download hele github, og pak den ud.
Kør serveren
Naviger til mappen 'bin' inde i fadecandy -tingene, du lige har downloadet.
Klik på fcserver.exe.
Dette indlæser et cmd -vindue, der viser alle de tilsluttede Fadecandy -enheder. I dette tilfælde er der 11.
Test lysdioderne
Naviger til https://127.0.0.1:7890/ for at se Fadecandy -serverens brugergrænseflade. Dette viser alle de tilsluttede enheder igen og giver en lille smule kontrol.
Hvis du klikker på rullelisten testmønster, kan du indstille alle pixel for denne Fadecandy til fuld eller halv lysstyrke. Det er også muligt at få den lille grønne LED på selve fadecandy til at blinke ved at klikke på "identificer".
Trin 20: Konfigurer Fadecandy -serveren
Lige nu er Fadecandys alle indlæst i en tilfældig rækkefølge. Tidligere har jeg mærket mine trekanter 1-11, men computeren kan ikke vide, hvilken der er, i øjeblikket. For at gøre det skal vi oprette en konfigurationsfil.
Hvilken Fadecandy er hvilken
Inden vi kan fortælle computeren, hvilken rækkefølge Fadecandys er i, skal vi selv finde ud af, hvilken der er. Jeg gjorde dette ved at bruge browserens brugergrænseflade til at få hvert afsnit til at lyse, og derefter notere, hvilket det var, og hvad dets serienummer er.
Konfigurationsfilen
I konfigurationsfilen viser vi alle serienumre, indekspixel, de starter med, og hvor mange pixels de teoretisk kontrollerer. Jeg siger teoretisk, fordi jeg vil kortlægge pixlerne, som om der er 512 pr. Fadecandy, selvom der faktisk er færre. Dette gør det bare lettere, da vi ved, at den første pixel i enhver Fadecandy altid er [Fadecandy -nummer * 512].
Fadecandy er ligeglad med, at hver enkelt har færre pixels end maksimum, og vi tager os også af det i behandlingskoden.
Indlæser konfigurationsfilen
For at starte Fadecandy -serveren skal vi i stedet for bare at klikke på fcserver.exe videregive denne konfigurationsfil til den.
Vi gør dette ved at åbne en cmd -prompt i mappen med skraldespand og skrive
fcserver config.json
Dette indlæser nu alle Fadecandys i de rigtige adresser.
Trin 21: Kortlægning af pixel
Dymaxion -kortlægning
Buckminster Fuller (som populariserede geodesiske kupler), skabte også dymaxion -kortet, som er en repræsentation af jorden, som var den på overfladen af en icosahedron. Det kan foldes for at være 3D eller fladt ud til at være 2D.
Meget på samme måde flader jeg overfladen af min kuppel ud fra dens 3D -form til en 2D -repræsentation, som vist på det vedhæftede billede. Denne 2D -repræsentation vil blive kortlagt til et behandlingslærred, hvor alt, hvad jeg tegner på lærredet, umiddelbart vises på tværs af lysdioderne.
Forarbejdning
Behandling er et visuelt programmeringssprog. Ligesom hvordan du tegner et rektangel i Photoshop ved hjælp af musen, kan du tegne et rektangel i Processing ved at skrive kode som denne:
rekt (100, 80, 10, 50);
Det ville give dig et rektangel på 100 px ind, 80 px ned, 10 px bredt og 50 px højt.
Hvis du ikke er bekendt med Processing, anbefaler jeg stærkt Daniel Shiffmans tutorials på Youtube, som er lige så underholdende som informative.
Tegning af linjer med LED'er
Behandling fungerer med Fadecandy ud af boksen. Der er en funktion til at angive lysdioder i linjer ved at fortælle det:
- startindekset / adressen på lysdioderne i den linje
- det faktiske antal pixels i linjen
- x, y placering af midten af linjen
- afstanden mellem dem
- linjens vinkel
Tegning af trekanter
Jeg skrev en funktion for hver af mine typer trekanter (ækvivalente og enslignede). Jeg fortæller det:
- startindekset / adressen på lysdioderne i hele denne trekant
- midten af trekanten
- vinklen hele trekanten er i
Fra disse oplysninger skriver det linjer af LED'er ud ved hjælp af trigonometri til at placere dem korrekt på Processing canvas.
(Du husker måske mange skridt tilbage, jeg påpegede, at på grund af Fadecandys placering, starter nogle ensartede trekanter ved den længste strimmel og nogle på den korteste, og nogle kommer ind fra venstre og nogle til højre. Det betyder, at jeg faktisk har fire funktioner til ensartede trekanter)
Om adresser
Når jeg siger indeks / adresse, refererer jeg til, hvordan Fadecandy adresserer lysdioderne.
f.eks.
- På den første Fadecandy starter den første strimmel ved 0
- På den første Fadecandy starter den anden strimmel ved 64 (uanset hvor mange pixels der faktisk er på den første strimmel)
På den første Fadecandy starter den tredje strimmel ved 128 (uanset hvor mange pixels der faktisk er på de to første strimler)
- På den anden Fadecandy starter den første strimmel ved 512 (uanset hvor mange pixels der faktisk er i den første Fadecandy
- På den anden Fadecandy starter den anden strimmel ved 576 (… du får ideen)
Kode
En "blank" version af min dome -kode er tilgængelig på github her.
Denne kode indeholder den ovenfor beskrevne kortlægning, men ingen grafik bortset fra en cirkel, der er tegnet, hvor musen er.
n.b Pixlerne gengives kun i denne kode, hvis du har Fadecandy -serveren kørende.
Trin 22: Kinect -integration
Kinect 1 eller 2?
Der er to versioner af Kinect. Kinect v1 arbejdede med Xbox 360, mens Kinect v2 arbejdede med Xbox One (forvirrende).
Jeg bruger en Kinect v1. En del af grunden til dette er, at det er meget svært at forlænge USB -kablets længde på Kinect v2 på grund af mængden af data, der sendes. Det kræver et dyrt og svært at finde forlængerkabel. Da min Kinect er monteret øverst i kuplen, kan jeg ikke tilslutte en Kinect v2 direkte til skrivebordet på gulvet. Et latterligt problem at have, men der er vi.
Nogle af mine fotografier og video viser en Kinect v2, dette skyldes, at jeg oprindeligt havde et setup, hvor jeg havde Kinect v2 forbundet til et bærbart kabel bundet halvvejs op ad kuplen, som sendte information via OSC til skrivebordet, der styrer lysdioderne. Dette fungerede fint for nogle applikationer, men når jeg først ville bruge hele dybdefeedet, kunne jeg ikke sende det over hele OSC, så jeg byttede til Kinect v1.
Installation
Jeg vil ikke tale igennem installationen af SDK og få de korrekte kabler til Kinect, da der er masser af guider til, hvordan man gør det. Jeg har SDK v1.8 installeret, og inden for behandling bruger jeg OpenKinect -biblioteket.
Trin 23: Kinect dybdesporing
Kode
Min kode er tilgængelig på github her. Det er ret godt kommenteret, så kig forbi!
Dette er en oversigt over, hvad koden gør:
Kinect dybdekamera -feed er kortlagt til farve (f.eks. Langt væk = rødt, tæt = grønt) og vises direkte over lysdioderne. Men der er mere til det end det.
For det første dither farven på hver pixel i dybdeindføringen frem og tilbage omkring dens faktiske nuance for at tilføje en skinnende effekt.
For det andet, når du starter skitsen, vil et klik på musen tage en baggrundsaflæsning, så vises kun pixels, der er tættere end den baggrundsaflæsning. Dette forhindrer gulvet/eventuelle puder/kuplens struktur i at dukke op.
Der er også en funktion til at nulstille baggrunden, der læser hver x -ramme, så hvis folk inde i kuplen ligger stille, vil de ikke dukke op. Det betyder, at den faktiske bevægelse skiller sig ud, i stedet for at vise hele klodens masse dybtgående vrøvl. (Jeg vil snart erstatte dette med en lerped version, så baggrunden ikke gør sådan en "hård" nulstilling, men snarere udvikler sig over tid)
Der er også en baggrundsanimation, der viser klynger af klatter farve, mængden af klynger er omvendt kortlagt til mængden af handling, der sker i kuplen, så hvis ingen er til stede, eller de stadig er, er der meget animation. Derefter forsvinder det gradvist, efterhånden som der sker mere bevægelse indeni.
Trin 24: Dome Done
Jeg håber, at du lærte noget og fandt dette interessant. Tjek den fulde video, der har en masse optagelser af kuplen, der fungerer.
Jeg har også her for sjov inkluderet nogle fotografier med lang eksponering, jeg tog af When in Dome. God fornøjelse!
Første præmie i Make it Glow Contest 2018
Anbefalede:
SCARA Robot: Lær om Foward og omvendt kinematik !!! (Plot Twist Lær hvordan man laver et realtidsinterface i ARDUINO ved hjælp af BEHANDLING !!!!): 5 trin (med billeder)
SCARA Robot: Lær om Foward og omvendt kinematik !!! (Plot Twist Lær, hvordan du laver en realtidsgrænseflade i ARDUINO ved hjælp af BEHANDLING !!!!): En SCARA -robot er en meget populær maskine i branchen. Navnet står for både Selective Compliant Assembly Robot Arm eller Selective Compliant Articulated Robot Arm. Det er dybest set en tre graders frihedsrobot, der er de to første forskydninger
Sådan kontrolleres adresserbare lysdioder med Fadecandy og behandling: 15 trin (med billeder)
Sådan kontrolleres adresserbare lysdioder med Fadecandy og behandling: WhatThis er en trin-for-trin vejledning i, hvordan du bruger Fadecandy og behandling til at styre adresserbare lysdioder. Fadecandy er en LED-driver, der kan styre op til 8 strimler på 64 pixels hver. (Du kan forbinde flere Fadecandys til en computer for at øge
4x4 tastatur med Arduino og behandling: 4 trin (med billeder)
4x4 tastatur med Arduino og forarbejdning: Kan du ikke lide LCD -skærme? Vil du få dine projekter til at se tiltalende ud? Nå, her er løsningen. I denne instruks kan du frigøre dig fra besværet med at bruge en LCD -skærm til at vise indhold fra din Arduino og også gøre dit projekt
Arduino LED -knap, der driver behandling af animationer: 36 trin (med billeder)
Arduino LED -knap, der driver bearbejdning af animationer: WhatThis button pad er lavet ved hjælp af et printkort og andre komponenter fremstillet af Sparkfun. Den er drevet af en Arduino Mega. Hver knap er dejlig og squishy og tilfredsstillende at trykke på, og den har en RGB LED indeni! Jeg har brugt den til at styre animationer jeg
Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: 13 trin (med billeder)
Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: Intro: Dette er et projekt, der bruger et Arduino -kort, en sensor (DHT11), en Windows -computer og et bearbejdningsprogram (et gratis downloadbart) til at vise temperatur, luftfugtighedsdata i digital og søjlediagramform, vis tid og dato, og kør en optællingstid