Բովանդակություն:
![$ 1 LED տրամադրության լամպ ATtiny13- ով և WS2812- ով ՝ 7 քայլ $ 1 LED տրամադրության լամպ ATtiny13- ով և WS2812- ով ՝ 7 քայլ](https://i.howwhatproduce.com/images/001/image-1815-j.webp)
Video: $ 1 LED տրամադրության լամպ ATtiny13- ով և WS2812- ով ՝ 7 քայլ
![Video: $ 1 LED տրամադրության լամպ ATtiny13- ով և WS2812- ով ՝ 7 քայլ Video: $ 1 LED տրամադրության լամպ ATtiny13- ով և WS2812- ով ՝ 7 քայլ](https://i.ytimg.com/vi/pC7ywNwbDO4/hqdefault.jpg)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
![$ 1 LED տրամադրության լամպ ATtiny13- ով և WS2812- ով $ 1 LED տրամադրության լամպ ATtiny13- ով և WS2812- ով](https://i.howwhatproduce.com/images/001/image-1815-1-j.webp)
Հետևեք հեղինակի ավելին.
![Անձնական CalDAV սերվեր մեկ տախտակի համակարգչի վրա Անձնական CalDAV սերվեր մեկ տախտակի համակարգչի վրա](https://i.howwhatproduce.com/images/001/image-1815-2-j.webp)
![Անձնական CalDAV սերվեր մեկ տախտակի համակարգչի վրա Անձնական CalDAV սերվեր մեկ տախտակի համակարգչի վրա](https://i.howwhatproduce.com/images/001/image-1815-3-j.webp)
![LCD Invaders: Space Invaders Like Game- ը 16x2 LCD կերպարների ցուցադրման վրա LCD Invaders: Space Invaders Like Game- ը 16x2 LCD կերպարների ցուցադրման վրա](https://i.howwhatproduce.com/images/001/image-1815-4-j.webp)
![LCD Invaders: Space Invaders Like Game- ը 16x2 LCD կերպարների ցուցադրման վրա LCD Invaders: Space Invaders Like Game- ը 16x2 LCD կերպարների ցուցադրման վրա](https://i.howwhatproduce.com/images/001/image-1815-5-j.webp)
![Octarine: A Color Matching Game with WS2812 RGB LED- ներ Octarine: A Color Matching Game with WS2812 RGB LED- ներ](https://i.howwhatproduce.com/images/001/image-1815-6-j.webp)
![Octarine: A Color Matching Game with WS2812 RGB LED- ներ Octarine: A Color Matching Game with WS2812 RGB LED- ներ](https://i.howwhatproduce.com/images/001/image-1815-7-j.webp)
Սա էժան տրամադրության լամպ է ՝ չորս ռեժիմով:
1. Rիածանի կայծ: Լույսի կայծը ժամանակ առ ժամանակ շարժվում է դեպի վեր և աստիճանաբար փոխում գույնը:
2. Rիածանի փայլ: Կայուն փայլ, որն աստիճանաբար փոխում է գույնը:
3. Մոմի կրակի մոդելավորում:
4. Անջատված:
Դուք կարող եք փոխել ռեժիմները ՝ կտտացնելով վերևի հպման կոճակին: Ընթացիկ ռեժիմը պահվում է EEPROM հիշողության մեջ `անջատվելուց հետո:
Որքան փոքր է ATtiny13- ը:
Գաղափարն այն էր, որ առավելագույն հնարավորություններ ստանանք նվազագույն սարքավորումներից, ինչը ավելի բարդ է, քան ավտոմատ անջատիչ կամ ջերմաչափ, նախագիծ, որը մոտ է այս փոքրիկ միկրոկոնտրոլերի եզրին: Ի վերջո, սահմանափակումները ստիպում են ձեզ ստեղծագործ մտածել, այնպես չէ՞: Դե, սկզբում նման էր:
Այս նախագծում ամենադժվարը ամբողջ ծածկագիրը ATtiny13- ի մեջ մտցնելն էր: Միկրոկոնտրոլերն ունի 1 ԿԲ բայթ և ընդամենը 64 Բայթ օպերատիվ հիշողություն: Այո, «բայթ» ասելիս նկատի ունեմ ութ բիթից բաղկացածները: 64 բայթ ՝ ձեր բոլոր տեղական փոփոխականների և զանգերի հավաքածուի համար: Հստակեցնելու համար հաշվի առեք, որ մենք պետք է վերահսկենք 8 RGB LED: Նրանցից յուրաքանչյուրը սահմանվում է 3 բայթով (մեկը համապատասխանաբար կարմիր, կանաչ և կապույտ ալիքների համար): Այսպիսով, պարզապես 8 LED- ների վիճակը պահելու համար մենք պետք է ներդնենք 8 կառույցից բաղկացած զանգված `յուրաքանչյուրը 3 բայթ, և այս զանգվածի սկզբի ցուցիչը կտևի ևս մեկ բայթ: Այսպիսով, 64 բայթից 25 -ը դուրս է: Մենք պարզապես օգտագործել ենք RAM- ի 39% -ը և իրականում դեռ չենք սկսել: Բացի այդ, ծիածանի յոթ հիմնական գույները պահելու համար ձեզ հարկավոր կլինի 7 × 3 = 21 բայթ, այնպես որ RAM- ի 72% -ը սպառված է: Ինչ վերաբերում է հիմնական գույներին, ապա ես չափազանցնում եմ. Դրանք բոլորը մեզ պետք չեն միաժամանակ RAM- ում և դրանք երբեք չեն փոխվում, ուստի դրանք կարող են իրականացվել որպես մշտական զանգված, որը պետք է պահվի ֆլեշում ՝ RAM- ի փոխարեն: Ամեն դեպքում, դա ընդհանուր տպավորություն է թողնում օգտագործված սարքավորումների մասին:
Հիշելով վաղաժամ օպտիմալացման վերաբերյալ Քնութի հայտարարությունը, ես սկսեցի լամպի երեք ռեժիմի առանձին նախատիպից ՝ տեսնելու, թե ինչ է տեղի ունենում: Ես դրանք առանձին եմ փորձարկել `համոզվելու համար, որ դրանք ճիշտ են աշխատում, և յուրաքանչյուրը համապատասխանում է իմ միկրոկոնտրոլերին: Դա կատարելու համար մի քանի երեկո տևեց, և ամեն ինչ լավ անցավ … մինչև որ ես փորձեցի դրանք միացնել անջատիչ հայտարարության ներսում: avr-size կոմունալ ծառայությունը հաղորդեց 1.5 Կբ տեքստային հատվածի չափ (avr-gcc -s դրոշով): Այդ պահին իմ սկզբնական մտադրությունը 2Kb ֆլեշով որոշ ATtiny25 գրավելն էր, և դա կարող էր լինել այս պատմության երջանիկ ավարտը:
Բայց ինչ -որ կերպ ես զգացի, որ զգալի օպտիմալացումից հետո կարող եմ հասցնել կրճատել այդ խայտառակ ծածկագիրը 1 Կբ -ի: Այնուամենայնիվ, ևս մեկ շաբաթ պահանջվեց հասկանալու համար, որ դա անհնար է, և ամեն դեպքում դա կատարելու համար ևս մեկ շաբաթ: Ես ստիպված էի ծիածանը կտրել հինգ հիմնական գույների (առանց էական տեսողական տարբերության): Ես ազատվեցի դեպքի հայտարարություններից և օգտագործեցի if-then-if շղթան `երկուական կոդի չափը նվազեցնելու համար: Fire անիմացիային անհրաժեշտ է կեղծ պատահական թվերի գեներատոր, որը բավականին մեծ է, ուստի ես իրականացրեցի LFSR- ի պարզեցված տարբերակ `մշտական սկզբնական արժեքով: Ինձ չի հետաքրքրում PRNG ցիկլի ամբողջ տևողությունը և պարզապես ծագման հավասարակշռություն եմ փնտրում կոդի չափի և «իրատեսական կրակի անիմացիայի» միջև: Ես նաև իրականացրեցի շատ փոքր օպտիմալացումներ, որոնք այժմ չեմ կարող հիշել, և նույնիսկ հասցրեցի բոլոր ռեժիմները, բացի կրակից, ցայտել չիպի մեջ: Երբ ես սպառեցի գաղափարները, իմ ընդհանուր կոդը մոտ 1200 բայթ էր:
Ես ընդմիջում վերցրեցի և շատ էի կարդում AVR կոդի օպտիմալացման մասին: Ես մոտ էի հանձնվելու և ամեն ինչ վերաշարադրելու հավաքի լեզվով, բայց վերջին հնարավորությունը տվեցի դրան: Օպտիմալացման վերջնական շտապի ժամանակ ես ծիածանը կտրեցի երեք հիմնական գույների և ստիպեցի մյուսներին հաշվարկել ինքնաթիռում, ես ստուգեցի ամեն ինչ և հետևեցի AVR- ի օպտիմալացման առաջարկներին և վերջապես…
avrdude: գրելու ֆլեշ (1004 բայթ):
Գրելը | #################################################### | 100% 0.90s
Կարիք չկա ասելու, որ ես օգտագործել եմ գրեթե ամբողջ RAM և ընդամենը մեկ բայթ EEPROM ՝ ընթացիկ ռեժիմը պահելու համար: Ես չեմ ենթադրում, որ սա իդեալական և վերջնական իրականացում է: Այն պարզապես աշխատում է և տեղավորվում է միկրոկոնտրոլերի վրա: Համոզված եմ, դուք կարող եք դա անել ավելի լավ: Ես իսկապես այդպիսին եմ: Ես պարզապես ուզում եմ կիսվել այն թվացյալ անիրագործելի խնդրի լուծման հաճույքով, որը սկզբում գրեթե անհնար եք համարում: «Այսպիսով, կոտրելը նշանակում է ուսումնասիրել հնարավորի սահմանները …» -Ռիչարդ Ստալման:
Պարագաներ:
1x ATtiny13 MCU ($ 0.28 = $ 0.24 MCU- ի համար SOP-8 փաթեթում և $ 0.04 DIP8 ադապտերի համար)
8x WS2812 RGB LED (խորհուրդ եմ տալիս տախտակ կամ LED շերտի մի կտոր) (0,42 դոլար)
1x TTP223 հպման կոճակ (0,10 դոլար)
1x Micro USB- ից DIP ադապտեր (0.14 դոլար)
1x 10kΩ դիմադրություն (<0,01 դոլար)
1x 100nF կերամիկական կոնդենսատոր (<0,01 դոլար)
1x 10-47µF էլեկտրոլիտային կոնդենսատոր (<0,01 դոլար)
Ընդհանուր <0.97 դոլար
Քայլ 1: Softwareրագրաշարի տեղադրում
![Softwareրագրաշարի տեղադրում Softwareրագրաշարի տեղադրում](https://i.howwhatproduce.com/images/001/image-1815-8-j.webp)
Ձեզ անհրաժեշտ կլինի avr-gcc գործիքաշղթա ՝ սկզբնաղբյուրը կազմելու և avrdude կոմունալը ՝ միկրոկառավարիչի ROM- ը վերբեռնելու համար: Տեղադրման գործընթացը բավականին պարզ և պարզ է, բայց դա կախված է ձեր օպերացիոն համակարգից: Եթե դուք օգտագործում եք մի տեսակ GNU/Linux, ապա հավանաբար արդեն ունեք համապատասխան փաթեթներ ձեր պահեստի ծառում: Այս նախագծի աղբյուրի կոդը կարելի է ներբեռնել այստեղ ՝
github.com/arduinocelentano/t13_ws2812_lamp
Ձեզ նույնպես պետք է light_ws2812 գրադարան.
github.com/cpldcpu/light_ws2812
Avr-gcc գործիքաշղթայի և ծրագրի աղբյուրների ձեռքբերումից հետո գործարկեք ձեր տերմինալը և մուտքագրեք հետևյալ ծածկագիրը.
cd ուղի/դեպի/նախագիծ
կատարել
Քայլ 2. Միկրոհսկիչի ծրագրավորում
![Միկրոհսկիչի ծրագրավորում Միկրոհսկիչի ծրագրավորում](https://i.howwhatproduce.com/images/001/image-1815-9-j.webp)
![Միկրոհսկիչի ծրագրավորում Միկրոհսկիչի ծրագրավորում](https://i.howwhatproduce.com/images/001/image-1815-10-j.webp)
![Միկրոհսկիչի ծրագրավորում Միկրոհսկիչի ծրագրավորում](https://i.howwhatproduce.com/images/001/image-1815-11-j.webp)
Եթե ունեք ինչ -որ USBASP ծրագրավորող, պարզապես միացրեք այն Attiny- ին ՝ ըստ դրա պինուտի: Սովորաբար դա այսպիսի տեսք կունենար, բայց ես խստորեն խորհուրդ եմ տալիս ստուգել ձեր իրական pinout- ը:
Այլապես, դուք կարող եք օգտագործել Arduino տախտակը որպես ծրագրավորող: Բացեք Arduino IDE- ն և գտեք Arduino ISP- ի օրինակը «Ֆայլ → Օրինակներ» ընտրացանկում: Էսքիզը վերբեռնելուց հետո ձեր Arduino տախտակը հանդես է գալիս որպես ծրագրավորող: Էսքիզային կոդի մեջ տրված մեկնաբանությունները ձեզ հուշում կտան քերծելու մասին:
Հիմա վազիր
կատարել ֆլեշ
բռնկել MCU- ն և
ապահովիչ սարքել
ապահովիչի բիթեր տեղադրելու համար:
Խորհուրդ ենք տալիս:
3D տպված LED տրամադրության լամպ. 15 քայլ (նկարներով)
![3D տպված LED տրամադրության լամպ. 15 քայլ (նկարներով) 3D տպված LED տրամադրության լամպ. 15 քայլ (նկարներով)](https://i.howwhatproduce.com/images/001/image-1892-j.webp)
3D տպագիր LED տրամադրության լամպ. Ես միշտ ունեցել եմ այս գրավչությունը լամպերի հետ, այնպես որ 3D տպագրությունն ու Arduino- ն LED- ների հետ համատեղելու ունակությունն այն էր, ինչ ես պետք է հետապնդեի: Հայեցակարգը շատ պարզ է, և արդյունքը ամենահագեցող տեսողական պատկերներից մեկն է: փորձառություններ, որոնք կարող եք տեղադրել
Տրամադրության լամպ (Ռոդրիգո Խիմենես 20052) ՝ 3 քայլ
![Տրամադրության լամպ (Ռոդրիգո Խիմենես 20052) ՝ 3 քայլ Տրամադրության լամպ (Ռոդրիգո Խիմենես 20052) ՝ 3 քայլ](https://i.howwhatproduce.com/images/001/image-2481-j.webp)
ՏՐԱՄԱՍՆԱԿԱՆ ԼԱՄ (Ռոդրիգո Խիմենես 20052). Հղում տեսանյութի և youtube- ի վրա ՝ https://youtu.be/H4ghI6UAJw8
Polyածր Poly LED տրամադրության լամպ. 9 քայլ (նկարներով)
![Polyածր Poly LED տրամադրության լամպ. 9 քայլ (նկարներով) Polyածր Poly LED տրամադրության լամպ. 9 քայլ (նկարներով)](https://i.howwhatproduce.com/images/005/image-14782-j.webp)
Polyածր Poly LED տրամադրության լամպ. Հիանալի հավելում ցանկացած գրասեղանի, դարակի կամ սեղանի համար: Հիմքի վրա տեղակայված դիսկրետ կոճակը թույլ է տալիս շրջել LED լուսավորման տարբեր նախշերով: Կարևոր չէ ՝ ուզում եք ձեր լամպն օգտագործել ուսման, հանգստանալու կամ նույնիսկ խնջույքի համար … կան կտրուկ
LED տրամադրության լամպ. 9 քայլ (նկարներով)
![LED տրամադրության լամպ. 9 քայլ (նկարներով) LED տրամադրության լամպ. 9 քայլ (նկարներով)](https://i.howwhatproduce.com/images/010/image-28457-j.webp)
LED տրամադրության լամպ. Վերջերս ես հանդիպեցի Գրեգ Դեյվիլի LED խորանարդին: Դա հիանալի ստեղծագործություն է: Ոգեշնչվելով դրանից, նույնիսկ ես էի ուզում նման բան պատրաստել: Բայց սա մեկն էր իմ լիգայից դուրս գալու համար: Ես որոշեցի մեկ -մեկ քայլ անել և մի փոքր ավելի փոքր ճանապարհ դարձա
DIY LED Light - Desամանակակից աշխատասեղանի տրամադրության լամպ հեռակառավարմամբ `8 քայլ (նկարներով)
![DIY LED Light - Desամանակակից աշխատասեղանի տրամադրության լամպ հեռակառավարմամբ `8 քայլ (նկարներով) DIY LED Light - Desամանակակից աշխատասեղանի տրամադրության լամպ հեռակառավարմամբ `8 քայլ (նկարներով)](https://i.howwhatproduce.com/images/005/image-13004-17-j.webp)
DIY LED Light - Desամանակակից աշխատասեղանի տրամադրության լամպ հեռակառավարմամբ. Այս հոդվածում ես կանցնեմ այն գործընթացի վրա, որը ես օգտագործել եմ այս հիանալի բուրգաձև ձևավորված LED տրամադրության լամպը կառուցելու համար: Ես օգտագործել եմ թխկի հիմնական կառուցվածքի և մի քանի կարմրափայտերի համար `լրացուցիչ ուժ ստանալու համար: Լույսի համար ես օգտագործել եմ RGB LED լույսեր, որոնք գալիս են 16 ոտնաչափ ժապավենով