Turinys:

Interaktyvi LED lempa - „Tensegrity Structure + Arduino“: 5 žingsniai (su nuotraukomis)
Interaktyvi LED lempa - „Tensegrity Structure + Arduino“: 5 žingsniai (su nuotraukomis)

Video: Interaktyvi LED lempa - „Tensegrity Structure + Arduino“: 5 žingsniai (su nuotraukomis)

Video: Interaktyvi LED lempa - „Tensegrity Structure + Arduino“: 5 žingsniai (su nuotraukomis)
Video: Interaktyvi dekoracija "Helovino stalo lempa" 2024, Liepa
Anonim
Interaktyvi LED lempa | „Tensegrity Structure“+ „Arduino“
Interaktyvi LED lempa | „Tensegrity Structure“+ „Arduino“
Interaktyvi LED lempa | „Tensegrity Structure“+ „Arduino“
Interaktyvi LED lempa | „Tensegrity Structure“+ „Arduino“
Interaktyvi LED lempa | „Tensegrity Structure“+ „Arduino“
Interaktyvi LED lempa | „Tensegrity Structure“+ „Arduino“

Šis gabalas yra į judesį reaguojanti lempa. Sukurta kaip minimalios įtampos skulptūra, lempa keičia savo spalvų konfigūraciją, reaguodama į visos konstrukcijos orientaciją ir judesius. Kitaip tariant, priklausomai nuo jos orientacijos, lempa virsta tam tikra spalva, ryškumu ir šviesos režimu.

Kai ikosaedras sukasi (per savo ašį), jis pasirenka vertę iš virtualios sferinės spalvos parinkiklio. Šis spalvų rinkiklis nematomas, tačiau spalvų koregavimas vyksta realiuoju laiku. Taigi žaisdami su kūriniu galite išsiaiškinti, kur kiekviena spalva yra išdėstyta erdvėje.

Izaosaedrinė forma suteikia 20 veido plokštumų, o įtempta struktūra suteikia 6 papildomus aspektus. Tai suteikia 26 galimas spalvas, kai lempa yra ant lygaus paviršiaus. Šis skaičius padidėja sukant lempą ore.

Sistema valdoma „Pro Trinket“, prijungta prie trijų ašių akselerometro. Šviesą aprūpina RGBW LED juostos, kurios gali individualiai valdyti spalvų ir baltos spalvos ryškumą. Visa grandinė, įskaitant mikroprocesorių, jutiklius ir apšvietimo sistemą, veikia esant 5 V įtampai. Norint įjungti sistemą, reikalingas šaltinis iki 10A.

Pagrindinių lempoje naudojamų elementų sąrašas yra toks:

- „Adafruit Pro Trinket“- 5V

- „Adafruit LIS3DH“trijų ašių akselerometras

- „Adafruit NeoPixel“skaitmeninė RGBW LED juostelė - balta PCB 60 LED/m

- 5V 10A perjungimo maitinimo šaltinis

Ši į judesį reaguojanti lempa yra pirmoji ilgesnio asmeninio projekto versija arba prototipas. Šis prototipas buvo pagamintas iš perdirbtų medžiagų. Projektavimo ir statybos procesų metu mokiausi iš sėkmės ir klaidų. Turėdamas tai omenyje, dabar dirbu prie kitos versijos, kuri turės protingesnę struktūrą ir patikimesnę programinę įrangą.

Noriu padėkoti LACUNA LAB bendruomenei už pagalbą, idėjas ir pasiūlymus rengiant projektą.

galite sekti mano darbus adresu action-io / tumblraction-script / github

1 žingsnis: idėja

Idėja
Idėja
Idėja
Idėja
Idėja
Idėja

Šis projektas buvo kelių idėjų, su kuriomis galvoje žaidžiau, rezultatas.

Nuo tada, kai pradėjau, koncepcija pasikeitė, pradinis projektas vystėsi ir įgavo tikrą formą.

Pradinis požiūris buvo domėjimasis geometrinėmis figūromis kaip sąveikos priemone. Dėl savo dizaino daug įžambinių šios lempos paviršių yra įvesties metodas.

Pirmoji idėja buvo panaudoti dinaminę sistemą, kad priverstų ikosaedrą judėti. Tai galėjo kontroliuoti interaktyvi programa arba socialinės žiniasklaidos vartotojai.

Kita galimybė būtų buvusi, kad vidinis marmuras ar rutulys paspaustų skirtingus mygtukus ar jutiklius ir taip generuotų atsitiktinius įėjimus, kai gabalas juda.

Įtampos struktūra įvyko vėliau.

Šis statybos metodas mane sužavėjo: tai, kaip konstrukcijos dalys išlaiko viena kitą. Tai labai malonu vizualiai. Visa struktūra yra subalansuota; gabalai tiesiogiai neliečia vienas kito. Kūrinį sukuria visų įtampų suma; tai fantastiška!

Pasikeitus pradiniam dizainui; projektas juda į priekį.

2 žingsnis: struktūra

Struktūra
Struktūra
Struktūra
Struktūra
Struktūra
Struktūra
Struktūra
Struktūra

Kaip jau minėjau anksčiau, šis pirmasis modelis buvo pagamintas iš perdirbtų medžiagų, kurios buvo skirtos išmesti.

Medines lentas, kurias paėmiau iš grotelių lovos, radau gatvėje. Auksiniai apvadai buvo senos lempos rankenos dalis, o guminių juostų kamščiai - biuro spaustukai.

Bet kokiu atveju, konstrukcijos konstrukcija yra gana paprasta, o žingsniai yra tokie patys kaip ir bet kuriame kitame etape.

Ką aš padariau su lentomis, tai subūriau jas grupėmis po du. Gaminant „sumuštinį“su aukso tarpikliais, paliekamas tarpas, per kurį švies šviesos.

Projekto matmenys yra visiškai skirtingi ir priklausys nuo norimos sukurti struktūros dydžio. Medinės juostos iš šio projekto nuotraukų yra 38 cm ilgio ir 38 mm pločio. Atstumas tarp plokščių yra 13 mm.

Medinės lentos supjaustomos identiškai, nušlifuojamos (pašalinamas senas dažų sluoksnis) ir vėliau perforuojamos iš abiejų galų.

Toliau lentas nudažiau kaimišku tamsiu laku. Norėdami sujungti gabalus, naudoju 5 mm srieginį strypą, supjaustytą į 5 cm ir 5 mm dalis su mazgu kiekvienoje pusėje.

Įtempikliai yra raudonos guminės juostos. Norėdami pritvirtinti gumą prie strypų, padariau nedidelę skylutę, pro kurią praleidau juostą, o tada ją užfiksuoju kamščiu. Tai neleidžia plokštėms laisvai judėti ir konstrukcijai išardyti.

3 žingsnis: Elektronika ir žibintai

Elektronika ir žibintai
Elektronika ir žibintai
Elektronika ir žibintai
Elektronika ir žibintai
Elektronika ir žibintai
Elektronika ir žibintai
Elektronika ir žibintai
Elektronika ir žibintai

Elektroninių komponentų konfigūracija sukurta taip, kad išlaikytų tą pačią įtampą tiek logiškai, tiek tiekiant sistemą visoje sistemoje naudojant 5v.

Sistema valdoma „Pro Trinket“, prijungta prie trijų ašių akselerometro. Šviesą suteikia RGBW LED juostos, kurios gali individualiai valdyti spalvas ir baltos spalvos ryškumą. Visa grandinė, įskaitant mikroprocesorių, jutiklius ir apšvietimo sistemą, veikia esant 5 V įtampai. Norint įjungti sistemą, reikalingas šaltinis iki 10A.

„Pro Trinket 5V“naudoja „Atmega328P“lustą, kuris yra tas pats pagrindinis lustas „Arduino UNO“. Jame taip pat yra beveik tie patys kaiščiai. Taigi tai tikrai naudinga, kai norite perkelti savo UNO projektą į miniatiūrines erdves.

LIS3DH yra universalus jutiklis, jis gali būti perkonfigūruotas taip, kad būtų perskaitytas į +-2g/4g/8g/16g, taip pat suteikia bakstelėjimą, dukart bakstelėjimą, orientaciją ir laisvo kritimo aptikimą.

„NeoPixel RGBW“LED juostelė gali atskirai valdyti atspalvio spalvą ir baltos spalvos intensyvumą. Naudodami specialiai baltą šviesos diodą, jums nereikia „prisotinti visų spalvų, kad gautumėte baltą šviesą, be to, jūs tapsite baltesni, tyresni ir ryškesni, be to, sutaupysite energijos.

Dėl laidų ir komponentų sujungimo nusprendžiau praeiti kabelį ir sukurti lizdus su kištukais ir kištukais, naudojant gofruotus ir jungčių korpusus.

Aš prijungiau niekučius prie akselerometro, kad SPI būtų numatyta. Tai reiškia, kad prijunkite „Vin“prie 5 V maitinimo šaltinio. Prijunkite GND prie bendro maitinimo/duomenų įžeminimo. Prijunkite SCL (SCK) kaištį prie skaitmeninio #13. Prijunkite SDO kaištį prie skaitmeninio #12. Prijunkite SDA (SDI) kaištį prie skaitmeninio #11. Prijunkite skaitmeninį CS kaištį #10.

LED juostelę valdo tik vienas kaištis, kuris eina į #6, o žemė ir 5 V eina tiesiai į maitinimo adapterį.

Visą jums reikalingą dokumentaciją rasite išsamiau ir geriau paaiškinsite „adafruit“puslapyje.

Maitinimo šaltinis prijungtas prie moteriško nuolatinės srovės adapterio, kuris vienu metu maitina mikrovaldiklį ir šviesos diodų juostą. Jis taip pat turi kondensatorių, kuris apsaugo grandinę nuo nestabilios srovės „įjungimo“momentu.

Lempa turi 6 šviesos juostas, tačiau LED juostos yra vienoje ilgoje juostoje. Šviesos diodų juosta buvo supjaustyta 30 cm ilgio dalimis (18 šviesos diodų), o po to suvirinta 3 kaiščiais ir kaiščiais, kad būtų galima moduliškai prijungti prie likusios grandinės.

Šiam projektui naudoju 5–10 A maitinimo šaltinį. Tačiau priklausomai nuo reikalingo šviesos diodų skaičiaus, turėsite apskaičiuoti srovę, reikalingą sistemai maitinti.

Visoje dokumentacijoje galite pamatyti, kad šviesos diodas turi 80 mA srovę vienam LED. Iš viso naudoju 108 šviesos diodus.

4 žingsnis: Kodas

Kodas
Kodas

Schema veikia gana paprasta. Akselerometras pateikia informaciją apie judėjimą x, y, z ašyje. Atsižvelgiant į orientaciją, atnaujinamos šviesos diodų RGB vertės.

Darbas suskirstytas į šiuos etapus.

  • Skaitykite iš jutiklio. Tiesiog naudokite API.
  • Trigonometrija išspręskite „ritinio ir žingsnio“reikšmes. Daug daugiau informacijos rasite šiame Marko Pedley dokumente.
  • Gaukite atitinkamą spalvą, susijusią su sukimosi reikšmėmis. Tam mes naudojame 0–360 RGB reikšmę naudodami HSL - RGB konvertavimo funkciją. Žingsnio vertė naudojama įvairiose skalėse, kad būtų galima reguliuoti baltos šviesos intensyvumą ir spalvų sodrumą. Priešingi spalvų rinkimo sferos pusrutuliai yra visiškai balti.
  • Atnaujinkite žibintų buferį, kuriame saugoma informacija apie atskiras LED spalvas. Priklausomai nuo šios informacijos, buferio valdiklis sukurs animaciją arba reaguos papildomomis spalvomis.
  • Galiausiai parodykite spalvas ir atnaujinkite šviesos diodus.

Iš pradžių buvo sumanyta sukurti spalvų sferą, kurioje būtų galima pasirinkti bet kokią spalvą. Spalvų rato uždėjimas ant dienovidinio ir į priekį tamsūs ir šviesūs tonai.

Tačiau greitai idėja buvo atmesta. Kadangi šviesos diodai sukuria skirtingus tonus, išjungiami ir greitai uždegami kiekvienas rgb šviesos diodas, kai mažos vertės parodo tamsias spalvas, šviesos diodai veikia labai prastai ir galite pamatyti, kaip jie pradeda mirksėti. Dėl to tamsusis spalvų sferos pusrutulis negali tinkamai veikti.

Tada sugalvoju priskirti papildomas spalvas šiuo metu pasirinktam tonui.

Taigi vienas pusrutulis renka monochromatinę rato spalvos vertę iš 50% apšvietimo 90–100% sodrumo. Tuo tarpu kita pusė parenka spalvų gradientą iš tos pačios spalvos padėties, bet kitoje gradiento pusėje prideda papildomą spalvą.

Duomenų nuskaitymas iš jutiklio yra neapdorotas. Filtras gali būti naudojamas triukšmui ir pačios lempos vibracijoms išlyginti. Šiuo metu man tai įdomu, nes jis atrodo labiau analogiškas, reaguoja į bet kokį prisilietimą ir visiškai stabilizuojasi per sekundę.

Aš vis dar dirbu prie kodo, pridedu naujų funkcijų ir optimizuoju animaciją.

Naujausias kodo versijas galite patikrinti mano „github“paskyroje.

5 žingsnis: Apvyniojimas

Vyniojimas aukštyn
Vyniojimas aukštyn
Vyniojimas aukštyn
Vyniojimas aukštyn
Vyniojimas aukštyn
Vyniojimas aukštyn
Vyniojimas aukštyn
Vyniojimas aukštyn

Galutinis surinkimas yra gana paprastas. Klijuokite silikoninį LED juostelių dangtelį su dviem komponentiniais epoksidiniais klijais prie strypų ir prijunkite 6 dalis viena po kitos.

Pritvirtinkite tašką, kuriame norite pritvirtinti komponentus, ir prisukite akselerometrą ir aksesuarą prie medžio. Smeigtukų dugnui apsaugoti naudojau plastikinius tarpiklius. Maitinimo adapteris tinkamai pritvirtintas tarp strypų, naudojant daugiau epoksidinių epoksidinių klijų. Sukurta taip, kad tilptų ir neleistų jai judėti, kai lempa sukasi.

Stebėjimai ir patobulinimai

Projekto kūrimo metu atsirado naujų idėjų, kaip išspręsti problemas. Taip pat supratau kai kuriuos dizaino trūkumus ar dalis, kurias galima patobulinti.

Kitas žingsnis, kurio norėčiau imtis, yra produkto kokybės ir apdailos gerinimas; daugiausia struktūroje. Turiu puikių idėjų apie dar paprastesnes struktūras, įtraukiančias tenzorius kaip dizaino dalį ir slepiančias komponentus. Šiai struktūrai reikės galingesnių įrankių, tokių kaip 3D spausdintuvai ir lazeriniai pjaustytuvai.

Aš vis dar laukiu būdo paslėpti laidus palei konstrukciją. Ir siekti efektyvesnio energijos vartojimo; sumažinti išlaidas, kai lempa veikia ilgai ir nekeičia apšvietimo.

Dėkojame, kad perskaitėte straipsnį ir domitės mano darbu. Tikiuosi, kad iš šio projekto išmokote tiek, kiek aš.

Rekomenduojamas: