Orodha ya maudhui:
- Hatua ya 1: Usanidi wa Programu
- Hatua ya 2: Kupanga programu ya Microcontroller
- Hatua ya 3: Skematiki
Video: Taa ya Mood ya 1 $ LED na ATtiny13 na WS2812: 7 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Fuata Zaidi na mwandishi:
Hii ni taa ya hali ya bei ya chini na njia nne.
1. Cheche cha Upinde wa mvua. Cheche ya nuru huenda juu mara baada ya muda na hubadilisha rangi pole pole.
2. Mwangaza wa upinde wa mvua. Mwanga thabiti ambao hubadilisha rangi pole pole.
3. Uigaji wa moto wa mshumaa.
4. Zima.
Unaweza kubadilisha njia kwa kugonga kitufe cha kugusa juu. Hali ya sasa imehifadhiwa kwenye kumbukumbu ya EEPROM baada ya kuzima.
Je! ATTiny13 ni ndogo kiasi gani?
Wazo lilikuwa kupata vitu vya juu kutoka kwa vifaa vya chini, kitu ngumu zaidi kuliko swichi ya kiotomatiki au kipima joto, mradi karibu na ukingo wa mdhibiti mdogo huyu. Baada ya yote, vikwazo vinakufanya ufikirie ubunifu, sawa? Kweli, ilionekana kama hapo mwanzo.
Changamoto kubwa katika mradi huu ilikuwa kusukuma nambari yote kwenye ATtiny13. Mdhibiti mdogo ana kaiti 1K ka na ka 64 tu za RAM. Ndio, ninaposema "ka", namaanisha zile zenye bits nane. Baiti 64 kwa anuwai zote za eneo lako na stack ya simu. Ili kuifanya iwe wazi, fikiria tunapaswa kudhibiti 8 RGB LEDs. Kila moja hufafanuliwa na ka 3 (moja ya chaneli nyekundu, kijani na bluu mtawaliwa). Kwa hivyo, tu kuhifadhi hali ya LED 8, tutahitaji kutekeleza safu ya miundo 8 ka 3 na kila kiashiria kwa mwanzo wa safu hii itachukua baiti moja zaidi. Kwa hivyo, ka 25 kati ya 64 ziko nje. Tumetumia 39% tu ya RAM na bado hatujaanza. Kwa kuongeza, kuhifadhi rangi saba za msingi za upinde wa mvua, utahitaji 7 × 3 = 21 ka, kwa hivyo 72% ya RAM iko nje. Kweli, kama kwa rangi ya kimsingi, mimi huzidisha: hatuitaji zote kwa wakati mmoja kwenye RAM na hazibadiliki, kwa hivyo zinaweza kutekelezwa kama safu ya mara kwa mara kuhifadhiwa kwa taa badala ya RAM. Kwa hivyo, inatoa maoni ya jumla juu ya vifaa vilivyotumika.
Kukumbuka taarifa ya Knuth juu ya utaftaji wa mapema, nilianza kutoka kuiga aina tatu za taa kando ili kuona kile kinachotokea. Nimewajaribu kando ili kuhakikisha kuwa wanafanya kazi vizuri na kila mmoja anafaa mdhibiti wangu mdogo. Ilichukua jioni kadhaa kuifanikisha na kila kitu kilikwenda vizuri… hadi nikajaribu kuwaweka pamoja ndani ya taarifa ya kubadili. shirika la ukubwa wa avr liliripoti ukubwa wa sehemu ya maandishi ya 1.5 Kb (na -s bendera ya avr-gcc). Wakati huo nia yangu ya asili ilikuwa kunyakua ATtiny25 na 2Kb flash na huo ungekuwa mwisho mzuri wa hadithi hii.
Lakini kwa namna fulani nilihisi kuwa baada ya utaftaji mzuri ningeweza kupunguzia nambari hiyo mbaya kuwa 1Kb. Walakini, ilichukua wiki moja zaidi kugundua kuwa haiwezekani na wiki moja zaidi kuifanikisha hata hivyo. Ilinibidi kukata upinde wa mvua kwa rangi tano za kimsingi (bila tofauti kubwa ya kuona). Niliondoa taarifa za kesi na nikatumia mnyororo wa ikiwa-basi-ikiwa kupunguza saizi ya msimbo wa binary. Uhuishaji wa moto unahitaji jenereta ya nambari ya bandia ambayo ni kubwa sana, kwa hivyo nilitekeleza toleo rahisi la LFSR na thamani ya awali ya kila wakati. Sijali kuhusu urefu kamili wa mzunguko wa PRNG na ninatafuta tu usawa wa kushuka kati ya saizi ya nambari na "uhuishaji halisi wa moto". Nilitekeleza pia uboreshaji mdogo ambao siwezi kukumbuka hivi sasa na hata niliweza kuwasha njia zote mbali na moto kuingia kwenye chip. Wakati niliishiwa na maoni, nambari yangu kamili ilikuwa kama ka 1200.
Nilichukua muda wa kumaliza na nilikuwa nikisoma mengi juu ya kuboresha nambari ya AVR. Nilikuwa karibu kutoa na kuandika kila kitu kwa lugha ya mkusanyiko lakini nikampa nafasi ya mwisho. Wakati wa kukimbilia kwa utaftaji wa mwisho, nimekata upinde wa mvua kwa rangi tatu za kimsingi na nikafanya zingine zihesabiwe juu ya nzi, nilikagua kila kitu na kufuata mapendekezo ya kuboresha AVR na mwishowe…
avrdude: kuandika flash (1004 ka):
Kuandika | # ############ | 100% 0.90s
Hakuna haja ya kusema kuwa nilitumia karibu RAM yote na kaiti moja tu ya EEPROM kuhifadhi hali ya sasa. Simaanishi kuwa huu ni utekelezaji bora na wa mwisho. Inafanya kazi tu na inafaa mdhibiti mdogo. Nina hakika, unaweza kufanya vizuri zaidi. Mimi ni kweli. Nataka tu kushiriki raha ya kutatua shida inayoonekana isiyowezekana unayofikiria haiwezekani mwanzoni. "Kwa hivyo, udukuzi unamaanisha kuchunguza mipaka ya kile kinachowezekana…" - Richard Stallman.
Ugavi:
1x ATtiny13 MCU ($ 0.28 = $ 0.24 kwa MCU katika kifurushi cha SOP-8 na $ 0.04 kwa DIP8 Adapter)
8x WS2812 RGB LEDs (Ninapendekeza bodi au kipande cha mstari wa LED) ($ 0.42)
Kitufe cha kugusa cha 1x TTP223 ($ 0.10)
1x USB ndogo kwa adapta ya DIP ($ 0.14)
Kipinzani cha 1x 10kΩ (<$ 0.01)
1x 100nF kauri capacitor (<$ 0.01)
1x 10-47µF capacitor elektroni (<$ 0.01)
Jumla <$ 0.97
Hatua ya 1: Usanidi wa Programu
Utahitaji zana ya zana ya avr-gcc kwa kukusanya nambari ya chanzo na matumizi ya avrdude kwa kupakia ROM ya microcontroller. Mchakato wa usanikishaji ni rahisi na rahisi, lakini inategemea mfumo wako wa kufanya kazi. Ikiwa unatumia aina fulani ya GNU / Linux, labda tayari una vifurushi sahihi kwenye mti wako wa hazina. Nambari ya chanzo ya mradi huu inaweza kupakuliwa hapa:
github.com/arduinocelentano/t13_ws2812_lamp
Utahitaji pia maktaba ya light_ws2812:
github.com/cpldcpu/light_ws2812
Mara tu unapopata zana ya zana ya avr-gcc na vyanzo vya mradi, endesha kituo chako na andika nambari ifuatayo:
Njia ya cd / kwa / mradi
fanya
Hatua ya 2: Kupanga programu ya Microcontroller
Ikiwa una aina fulani ya programu ya USBASP, inganisha tu kwa Attiny kulingana na pinout yake. Kawaida ingeonekana kama hii lakini ninapendekeza sana kuangalia pinout yako halisi!
Vinginevyo, unaweza kutumia bodi ya Arduino kama programu. Fungua Arduino IDE na upate mfano wa Arduino ISP kwenye menyu ya "Faili → Mifano". Baada ya kupakia mchoro, bodi yako ya Arduino hufanya kama programu. Maoni kwenye nambari ya mchoro yatakupa kidokezo cha kuchora.
Sasa kimbia
fanya flash
kuangaza MCU na
tengeneza fuse
kuweka fuse bits.
Hatua ya 3: Skematiki
Ilipendekeza:
Taa ya Taa ya Smart Smart - Taa mahiri W / Arduino - Nafasi ya Kazi ya Neopixels: Hatua 10 (na Picha)
Taa ya Taa ya Smart Smart | Taa mahiri W / Arduino | Nafasi ya Kazi ya Neopixels: Sasa siku tunatumia muda mwingi nyumbani, kusoma na kufanya kazi kwa kweli, kwa nini tusifanye nafasi yetu ya kazi iwe kubwa na mfumo wa taa na taa za Arduino na Ws2812b msingi. Hapa naonyesha jinsi ya kujenga Smart yako Dawati la Taa ya LED ambayo
Jinsi ya Kufanya Taa za Taa za Taa za Umeme za ARGB: Hatua 5
Jinsi ya Kufanya Taa za Taa za Taa za Umeme za ARGB: Halo, kwa mafunzo haya nitakuonyesha jinsi ya kufanya muziki tendaji wa rgb iliyoongozwa kwa njia rahisi sana, inazalisha mabadiliko kadhaa ya rangi wakati unacheza muziki wako uupendao Kwa miradi mingine ya kushangaza tembelea letsmakeprojects.com
Taa ya taa ya taa na Benki ya Nguvu (Portable): Hatua 5
Taa ya Taa ya Kuangaza & Nguvu (Portable): Hi! Hii ni benki nyingine rahisi ya umeme wa jua kwa kambi, na taa 2 za wati 3 (o 5) na tundu la nguvu la volts 12, bora kwa chaja ya simu ya rununu. ya volts 12 watts 10, bora kwa kambi au dharura
Taa ya Taa ya Miaka 31 ya Taa za Taa za Mfano Nk ..: Hatua 11 (na Picha)
Taa ya Taa ya Miaka 31 ya Taa za Taa za Mfano nk. Shida ni kwamba modeli za taa zinaweza kuwa ndogo na nafasi ndogo ya betri na
Taa ya LED ya DIY - Taa ya kisasa ya Mood Desktop na Remote: Hatua 8 (na Picha)
Taa ya LED ya DIY - Taa ya kisasa ya Mood Desktop na Kijijini Kwa taa nilitumia taa za RGB za LED ambazo zinakuja kwa mkia wa futi 16