Բովանդակություն:

Ինտերակտիվ լուսադիոդային լամպ - Tensegrity Կառուցվածք + Arduino. 5 քայլ (նկարներով)
Ինտերակտիվ լուսադիոդային լամպ - Tensegrity Կառուցվածք + Arduino. 5 քայլ (նկարներով)

Video: Ինտերակտիվ լուսադիոդային լամպ - Tensegrity Կառուցվածք + Arduino. 5 քայլ (նկարներով)

Video: Ինտերակտիվ լուսադիոդային լամպ - Tensegrity Կառուցվածք + Arduino. 5 քայլ (նկարներով)
Video: փաթաթեք չաշխատող լուսադիոդային լամպը մեկուսիչ ժապավենով և արդյունքը ձեզ կզարմացնի: 2024, Նոյեմբեր
Anonim
Ինտերակտիվ լուսադիոդային լամպ | Tensegrity Կառուցվածք + Arduino
Ինտերակտիվ լուսադիոդային լամպ | Tensegrity Կառուցվածք + Arduino
Ինտերակտիվ լուսադիոդային լամպ | Tensegrity Կառուցվածք + Arduino
Ինտերակտիվ լուսադիոդային լամպ | Tensegrity Կառուցվածք + Arduino
Ինտերակտիվ լուսադիոդային լամպ | Tensegrity Կառուցվածք + Arduino
Ինտերակտիվ լուսադիոդային լամպ | Tensegrity Կառուցվածք + Arduino

Այս կտորը շարժմանը արձագանքող լամպ է: Նախագծված որպես նվազագույն լարվածության քանդակ, լամպը փոխում է իր գույների կազմաձևը `ի պատասխան ամբողջ կառույցի կողմնորոշման և շարժումների: Այլ կերպ ասած, կախված դրա կողմնորոշումից, լամպը վերածվում է որոշակի գույնի, պայծառության և լուսավորության ռեժիմի:

Երբ icosahedron- ը պտտվում է (իր առանցքի վրայով), այն ընտրում է վիրտուալ գնդաձև գույնի ընտրիչից մի արժեք: Այս գույնի ընտրիչը տեսանելի չէ, բայց գույնի ճշգրտումները տեղի են ունենում իրական ժամանակում: Այսպիսով, դուք կարող եք պարզել, թե որտեղ է յուրաքանչյուր գույն տեղադրված տարածության մեջ, մինչդեռ խաղում եք կտորով:

Սրբապատկերային ձևն ապահովում է դեմքի 20 հարթություն, իսկ լարվածության կառուցվածքը `6 լրացուցիչ դիրքորոշում: Սա ապահովում է ընդհանուր առմամբ 26 հնարավոր գույներ, երբ լամպը հենվում է հարթ մակերևույթի վրա: Այս թիվը մեծանում է, երբ լամպը պտտում եք օդում:

Համակարգը վերահսկվում է Pro Trinket- ի միջոցով, որը միացված է երեք առանցքի արագացուցիչ: Լույսն ապահովվում է RGBW LED շերտերով, որոնք կարող են անհատապես վերահսկել գույնի և սպիտակի պայծառությունը: Ամբողջ միացումը, ներառյալ միկրոպրոցեսորը, տվիչները և լուսավորման համակարգը աշխատում է 5 վ լարման տակ: Համակարգը սնուցելու համար անհրաժեշտ է մինչև 10 Ա աղբյուր:

Լամպի մեջ օգտագործվող հիմնական տարրերի ցանկը հետևյալն է.

- Adafruit Pro Trinket - 5 Վ

- Adafruit LIS3DH եռակի առանցքի արագացուցիչ

- Adafruit NeoPixel Digital RGBW LED Strip - Սպիտակ PCB 60 LED/մ

- 5V 10A անջատիչ սնուցման աղբյուր

Այս շարժմանը արձագանքող լամպը ավելի երկար անհատական նախագծի առաջին տարբերակն է կամ նախատիպը: Այս նախատիպը պատրաստված էր վերամշակված նյութերից: Նախագծման և շինարարության գործընթացների ընթացքում ես դասեր քաղեցի հաջողություններից և սխալներից: Հաշվի առնելով դրանք, այժմ ես աշխատում եմ հաջորդ տարբերակի վրա, որն ունենալու է ավելի խելացի կառուցվածք և հզոր ծրագրակազմ:

Wantանկանում եմ շնորհակալություն հայտնել LACUNA LAB համայնքին `նախագծի մշակման ընթացքում նրանց օգնության, գաղափարների և առաջարկությունների համար:

Դուք կարող եք հետևել իմ աշխատանքին ՝ action-io / tumblraction-script / github

Քայլ 1: Գաղափարը

Գաղափարը
Գաղափարը
Գաղափարը
Գաղափարը
Գաղափարը
Գաղափարը

Այս նախագիծը մի քանի գաղափարների արդյունք էր, որոնց հետ ես որոշ ժամանակ խաղացել էի գլխումս:

Իմ սկսվելուց ի վեր հայեցակարգը փոխվել է, սկզբնական նախագիծը զարգացել է և ստացել իրական ձև:

Սկզբնական մոտեցումը հետաքրքրություն էր երկրաչափական ձևերի նկատմամբ `որպես փոխազդեցության միջոց: Իր դիզայնի պատճառով այս լամպի բազմաթիվ բազմանկյուն երեսները ծառայում են որպես մուտքագրման մեթոդ:

Առաջին գաղափարը դիկամիկ համակարգի օգտագործումն էր, որը ստիպում էր icosahedron- ին շարժվել: Սա կարող էր վերահսկվել ինտերակտիվ հավելվածի կամ սոցիալական մեդիայի օգտվողների կողմից:

Մեկ այլ հնարավորություն կլիներ ունենալ ներքին մարմարից կամ գնդիկից սեղմել տարբեր կոճակներ կամ տվիչներ և դրանով իսկ պատահական մուտքեր ստեղծել կտորի տեղաշարժի ժամանակ:

Լարվածության կառուցվածքը տեղի ունեցավ ավելի ուշ:

Շինարարության այս մեթոդը գրավեց ինձ. Այն, թե ինչպես են կառուցվածքի մասերը միմյանց հավասարակշռված պահում: Շատ տեսողականորեն հաճելի է: Ամբողջ կառույցը ինքնահավասարակշռված է. կտորները ուղղակիորեն չեն դիպչում միմյանց: Դա բոլոր լարվածությունների գումարն է, որը ստեղծում է կտորը. Դա ֆանտաստիկ է!

Քանի որ սկզբնական դիզայնը փոխվել է. նախագիծը առաջ է ընթանում:

Քայլ 2: Կառուցվածքը

Կառուցվածքը
Կառուցվածքը
Կառուցվածքը
Կառուցվածքը
Կառուցվածքը
Կառուցվածքը
Կառուցվածքը
Կառուցվածքը

Ինչպես նախկինում նշեցի, այս առաջին մոդելը պատրաստված էր վերամշակված նյութերից, որոնք ենթադրվում էր դեն նետել:

Փայտե տախտակները, որոնք ես վերցրեցի փողոցում գտած անկողնուց: Ոսկե զարդանախշերը հին լամպի թևի մի մասն էին, իսկ ռետինե ժապավենների խցանները `գրասենյակային սեղմակներ:

Ինչևէ, կառույցի կառուցումը բավականին պարզ է, և քայլերը նույնն են, ինչ ցանկացած լարվածության մեջ:

Այն, ինչ ես արեցի տախտակների հետ, նրանց հավաքելն է ՝ երկուսից բաղկացած խմբերով: Ոսկու բացատների հետ «սենդվիչ» պատրաստելը ՝ թողնելով բաց, որտեղից լույսերը կփայլեն:

Նախագծի չափերը լիովին փոփոխական են և կախված կլինեն այն կառույցի չափից, որը ցանկանում եք կատարել: Այս նախագծի նկարների փայտե ձողերն ունեն 38 սմ երկարություն և 38 մմ լայնություն: Տախտակների միջև հեռավորությունը 13 մմ է:

Փայտե տախտակները նույնությամբ կտրված էին, հղկված (հին ներկի շերտը հանելու համար), իսկ հետո երկու ծայրերում ծակած:

Հաջորդը, ես տախտակները ներկեցի գեղջուկ մուգ լաքով: Կտորները միացնելու համար ես օգտագործեցի 5 մմ թելերով ձող ՝ կտրված 5 սմ և 5 մմ հատվածների ՝ յուրաքանչյուր կողմի հանգույցով:

Ձգվողները կարմիր ռետինե ժապավեններ են: Ռետինը ձողերին ամրացնելու համար ես մի փոքր անցք արեցի, որի միջով անցա ժապավենը, այնուհետև փակեցի այն խցանով: Սա թույլ չի տալիս տախտակները ազատ տեղաշարժվել, իսկ ապամոնտաժվող կառույցը տեղափոխվել է:

Քայլ 3: Էլեկտրոնիկա և լույսեր

Էլեկտրոնիկա և լույսեր
Էլեկտրոնիկա և լույսեր
Էլեկտրոնիկա և լույսեր
Էլեկտրոնիկա և լույսեր
Էլեկտրոնիկա և լույսեր
Էլեկտրոնիկա և լույսեր
Էլեկտրոնիկա և լույսեր
Էլեկտրոնիկա և լույսեր

Էլեկտրոնային բաղադրիչների կոնֆիգուրացիան նախագծված է պահպանելու միևնույն լարումը, ինչպես տրամաբանությունը, այնպես էլ սնուցումը ամբողջ համակարգում ՝ օգտագործելով 5 վ:

Համակարգը վերահսկվում է Pro Trinket- ի միջոցով, որը միացված է երեք առանցքի արագացուցիչ: Լույսն ապահովվում է RGBW LED շերտերով, որոնք կարող են անհատապես վերահսկել գույներն ու սպիտակ պայծառության արժեքները: Ամբողջ միացումը, ներառյալ միկրոպրոցեսորը, տվիչները և լուսավորման համակարգը աշխատում է 5 վ լարման տակ: Համակարգը սնուցելու համար անհրաժեշտ է մինչև 10 Ա աղբյուր:

Pro Trinket 5V- ն օգտագործում է Atmega328P չիպը, որը Arduino UNO- ի նույն հիմնական չիպն է: Այն ունի նաև գրեթե նույն քորոցները: Այսպիսով, դա իսկապես օգտակար է, երբ ցանկանում ես ՄԱԿ -ի քո նախագիծը հասցնել մանրանկարչություն ունեցող տարածքներին:

LIS3DH- ը բազմակողմանի սենսոր է, այն կարող է վերակազմակերպվել ՝ կարդալու համար +-2g/4g/8g/16g, ինչպես նաև բերում է Հպում, Կրկնակի հպում, կողմնորոշում և ազատ անկման հայտնաբերում:

NeoPixel RGBW LED ժապավենը կարող է առանձին կառավարել երանգի գույնը և սպիտակի ինտենսիվությունը: Նվիրված սպիտակ LED- ով ձեզ հարկավոր չէ allհագեցնել բոլոր գույները ՝ սպիտակ լույս ունենալու համար, այն նաև ձեզ դարձնում է ավելի մաքուր և պայծառ սպիտակ, իսկ դրա ավելին ՝ էներգիա է խնայում:

Էլեկտրագծերի տեղադրման և բաղադրիչները միմյանց միացնելու համար ես որոշեցի անցնել մալուխը և ստեղծել վարդակներ `արական և իգական կապում, օգտագործելով սեղմակներ և միակցիչների պատյաններ:

Ես մանրահատակը միացրեցի արագացուցչին ՝ SPI- ն կանխադրված կազմաձևով նետելու համար: Սա նշանակում է, որ Vin- ը միացրեք 5 Վ էլեկտրամատակարարմանը: Միացրեք GND- ը ընդհանուր էներգիայի/տվյալների գետնին: Միացրեք SCL (SCK) կապը Թվային #13 -ին: SDO կապը միացրեք թվային #12 -ին: Միացրեք SDA (SDI) կապը թվային #11 -ին: Միացրեք CS փին Թվային #10 -ը:

Առաջատար ժապավենը վերահսկվում է միայն մեկ կապով, որը պատրաստվում է թիվ 6 -ին, իսկ գետնը և 5 վ -ը անցնում են անմիջապես էներգիայի մատակարարման ադապտերին:

Ձեզ անհրաժեշտ բոլոր փաստաթղթերը կգտնեք, ավելի մանրամասն և ավելի լավ բացատրված adafruit էջում:

Էներգամատակարարումը միացված է կին DC ադապտերին, որը միաժամանակ սնուցում է միկրոկոնտրոլերը և LED ժապավենը: Նաև այն ունի կոնդենսատոր `միացման պահին միացումն անկայուն հոսանքից պաշտպանելու համար:

Լամպն ունի 6 լուսադիոդ, սակայն LED շերտերը գալիս են մեկ երկար ժապավենով: LED ժապավենը կտրված էր 30 սմ (18 LEDS) հատվածներով, այնուհետև եռակցվում էր արական և իգական 3 կապում ՝ մոդուլյար միացման համար մնացած միացմանը:

Այս նախագծի համար ես օգտագործում եմ 5v - 10A սնուցման աղբյուր: Բայց կախված ձեզ անհրաժեշտ լուսարձակների քանակից, դուք պետք է հաշվարկեք համակարգը սնուցելու համար անհրաժեշտ հոսանքը:

Կտորի փաստաթղթավորման ընթացքում դուք կարող եք տեսնել, որ LED- ի վրա յուրաքանչյուր LED- ի համար գծված է 80mA: Ես օգտագործում եմ ընդհանուր առմամբ 108 LED:

Քայլ 4: Կոդ

Օրենսգիրքը
Օրենսգիրքը

Սխեման աշխատում է բավականին պարզ: Արագացուցիչը տալիս է տեղեկատվություն x, y, z առանցքի վրա շարժման մասին: Կողմնորոշման հիման վրա LED- ների RGB արժեքները թարմացվում են:

Աշխատանքը բաժանված է հետևյալ փուլերի.

  • Կարդացեք սենսորից: Պարզապես օգտագործեք api- ն:
  • Եռանկյունաչափությամբ լուծիր «պտտվել և բարձրացնել» արժեքները: Մարկ Պեդլիի այս փաստաթղթում շատ ավելի շատ տեղեկություններ կարող եք գտնել:
  • Ստացեք համապատասխան գույնը ՝ կապված պտույտի արժեքների հետ: Դրա համար մենք դիմում ենք 0-360 RGB արժեքի ՝ օգտագործելով HSL - RGB փոխակերպման գործառույթը: Լանջի արժեքը օգտագործվում է տարբեր մասշտաբներով ՝ սպիտակ լույսի և գույնի հագեցվածության ինտենսիվությունը կարգավորելու համար: Գույն ընտրող ոլորտի հակառակ կիսագնդերն ամբողջովին սպիտակ են:
  • Թարմացրեք լույսերի բուֆերը, որը պահում է LED- ի առանձին գույների տեղեկատվությունը: Կախված այս տեղեկատվությունից ՝ բուֆերային վերահսկիչը կստեղծի անիմացիա կամ կարձագանքի լրացուցիչ գույներով:
  • Վերջապես ցույց տվեք գույները և թարմացրեք LED- ները:

Սկզբում գաղափարն այն էր, որ ստեղծվեր գունային ոլորտ, որտեղ կարող ես ընտրել ցանկացած գույն: Գունավոր անիվը տեղադրելով միջօրեականի վրա և բևեռ դեպի մուգ և բաց երանգները:

Բայց արագորեն գաղափարը մերժվեց: Քանի որ LED- ները ստեղծում են տարբեր երանգներ, անջատեք և արագ լուսավորեք յուրաքանչյուր rgb LED, երբ մուգ գույները ներկայացնելու ցածր արժեքներ են տրվում, LED- ները շատ վատ կատարում են, և դուք կարող եք տեսնել, թե ինչպես են դրանք սկսում բռնկվել: Սա ստիպում է գունային ոլորտի մուգ կիսագնդին չգործել ճիշտ:

Հետո միտք առաջացավ ներկայիս ընտրված տոնին լրացուցիչ գույներ հատկացնել:

Այսպիսով, մեկ կիսագունդ ընտրում է անիվի գույնի միագույն արժեքը 50% լուսավորությունից 90 ~ 100% հագեցվածությունից: Մինչդեռ մյուս կողմը ընտրում է գույնի գրադիենտ նույն գույնի դիրքից, բայց գրադիենտի մյուս կողմում ավելացնում է դրա լրացուցիչ գույնը:

Սենսորից ստացված տվյալների ընթերցումը հում է: Աղմուկը և լամպի թրթռումները հարթելու համար կարող է կիրառվել զտիչ: Այս պահին ինձ հետաքրքիր է թվում, քանի որ այն ավելի անալոգիկ տեսք ունի, արձագանքում է ցանկացած հպման և մեկ վայրկյան տևում է ՝ ամբողջովին կայունանալու համար:

Ես դեռ աշխատում եմ ծածկագրի վրա և ավելացնում նոր հնարավորություններ և օպտիմալացնում անիմացիաները:

Դուք կարող եք ստուգել ծածկագրի վերջին տարբերակները իմ github հաշվի վրա:

Քայլ 5: Փաթեթավորում

Փաթաթում
Փաթաթում
Փաթաթում
Փաթաթում
Փաթաթում
Փաթաթում
Փաթաթում
Փաթաթում

Վերջնական հավաքումը բավականին պարզ է: LED շերտերի սիլիկոնե ծածկը երկու բաղադրիչ էպոքսիդային սոսինձով սոսնձեցեք ձողերի մեջ և միացրեք իրար հաջորդող 6 մասերը:

Ուղղեք մի կետ, որտեղ ցանկանում եք խարսխել բաղադրիչները և պտուտակել արագացուցիչը և պրոֆիլային մանրակը փայտին: Ես օգտագործել եմ պլաստմասսայե անջատիչներ ՝ քորոցների հատակը պաշտպանելու համար: Էներգամատակարարման ադապտորը պատշաճ կերպով ամրագրված է ձողերի տարածքի միջև ՝ ավելի էպոքսիդային էպոքսիդային սոսինձով: Նախագծված է տեղավորվելու և կանխում է այն շարժվելը, երբ լամպը պտտվում է:

Դիտարկումներ և բարելավումներ

Րագրի մշակման ընթացքում առաջացել են նոր գաղափարներ խնդիրների լուծման ուղիների վերաբերյալ: Ես նաև հասկացա դիզայնի որոշ թերություններ կամ մասեր, որոնք կարող են բարելավվել:

Հաջորդ քայլը, որը ես կցանկանայի անել, ապրանքի որակի և ավարտի բարելավումն է. հիմնականում կառուցվածքում: Ես գալիս եմ ավելի լավ կառուցվածքային համակարգերի մասին նույնիսկ ավելի պարզ գաղափարներով ՝ ներառելով տենսորներ որպես դիզայնի մի մաս և թաքցնելով բաղադրիչները: Այս կառույցը կպահանջի ավելի հզոր գործիքներ, ինչպիսիք են 3D տպիչները և լազերային դանակները:

Ես դեռ ճանապարհ ունեմ ՝ կառույցի երկայնքով էլեկտրագծերը թաքցնելու համար: Եվ աշխատել էներգիայի ավելի արդյունավետ սպառման ուղղությամբ. կրճատել ծախսերը, երբ լամպը երկար է աշխատում և չի փոխում լուսավորությունը:

Շնորհակալություն հոդվածը կարդալու և իմ աշխատանքի նկատմամբ ձեր հետաքրքրության համար: Հուսով եմ, որ դուք սովորեցիք այս նախագծից այնքան, որքան ես:

Խորհուրդ ենք տալիս: