Satura rādītājs:
- 1. solis: materiāli un konstrukcija
- 2. solis: AVR lodēšana pie gaismas diodēm un skaļruņa
- 3. darbība: Attiny13a programmēšana
- 4. solis: programmaparatūras izveide Marioman
- 5. solis: ļaujiet mariomanam atbrīvoties
Video: Mirgo, dzied, mariomāne: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 11:00
Izmantojiet attiny13a, divas gaismas diodes un apsveikuma kartītes skaļruni, lai izveidotu mirgojošu Marioman, kas atskaņo Super Mario Brothers motīvu dziesmu. Tas var būt vienkāršs lēts projekts ikvienam, kurš meklē jautru veidu, kā ielauzties AVR programmēšanā! dziesmu piezīmes ģenerē kvadrātveida vilnis, kas tiek izvadīts uz viena AVR mikrokontrollera tapas. Gaismas diodes, kas mainās uz katras nots, ir savienotas ar 2 tapām katrā vienā mikroshēmā.
1. solis: materiāli un konstrukcija
1 attiny13a
www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMvu0Nwh4cA1wRKJzS2Lmyk%252bEP0e%2f7dEeq0%3d Cena: 1,40 ASV dolāri
- 2 gaismas diodes - derēs jebkuras gaismas diodes
- 1 litija monētu baterija
www.sparkfun.com/commerce/product_info.php?products_id=338Cena: 2,00 ASV dolāri
1 monētas elementu turētājs
www.sparkfun.com/commerce/product_info.php?products_id=8822Cena: 1,25 ASV dolāri
1 mazs skaļrunis no muzikālās apsveikuma kartītes
Kopējās materiālu izmaksas ~ 5 ASV dolāri Abas gaismas diodes tika piestiprinātas tieši pie divām tapām katrā no attiny13A. Katrai gaismas diodei tiek izmantotas divas tapas, otra tapa ir iestatīta uz zemu, lai to izmantotu kā zemējuma savienojumu. AVR I/O tapu pašreizējais ierobežojums neļaus gaismas diodēm pārāk daudz zīmēties, tāpēc nav nepieciešams pievienot rezistoru sērija. Izmantotais skaļrunis ir tipisks tam, kas atrodams muzikālajā apsveikuma kartītē, un to darīs jebkurš mazs skaļrunis, ņemot vērā, ka tiek izvadīts kvadrātveida viļņa tonis, nav pārāk svarīgi uztraukties par skaļruņa vadīšanu vai skaņas kvalitāti.
2. solis: AVR lodēšana pie gaismas diodēm un skaļruņa
Lai gaismas diodes izstieptos kā rokas, viena tapa ir saliekta virs AVR katrā pusē. Šādi orientējot AVR, ir viegli pieslēgties skaļrunim (otrais attēls), jo savienojumi ir uz abām apakšējām tapām. Estētikas labad vēlaties, lai mikroshēmas priekšpuse būtu vērsta uz āru, tāpēc pārliecinieties, vai skaļrunis ir vērsts tāpat tas ir pievienots.
3. darbība: Attiny13a programmēšana
AVR programmēšanai ir daudz dažādu iespēju. Šim projektam tika izmantots USBtiny, kas ir pieejams kā komplekts no ladyada vietnes. Http://www.ladyada.net/make/usbtinyisp/index.html vai nu pievienojiet vadus sieviešu ligzdai, un pievienojiet tos maizes dēlim, vai vēl labāk iegādājieties lētu AVR programmēšanas adapteri, piemēram, šo https://www.sparkfun.com/commerce/product_info.php? products_id = 8508 kopā ar 3x2 vīriešu savienotājiem, lai pievienotu kontaktdakšu.
4. solis: programmaparatūras izveide Marioman
Attiny13A ir 1K programmējama zibspuldze un 64 baiti SRAM. Pievienotajam darvas failam ir avota fails, kā arī lejupielādēta programmaparatūra. Mūzikas ģenerēšanai tika izmantoti trīs masīvi c kodā
- freq - katras notis frekvences
- length - katras notis garums
- delay - pauze starp katru noti
Frekvenču masīvam nav faktisko frekvenču, bet gan vērtība, kas jāievieto TTCROB reģistrā, lai ģenerētu kvadrātveida vilni no PB0 tapas. Šeit ir īss aprēķinu un tapu konfigurācijas kopsavilkums kvadrātveida viļņu ģenerēšanai:
- Attiny13A ir iekšējais oscilators, kas iestatīts uz 9,6 MHz
- IO iekšējais pulkstenis ir oscilators, kas dalīts ar 8 vai 1,2 MHz
- Iekšējais taimeris ir iestatīts 8 bitu reģistrā, lai saskaitītu katru pulksteņa ciklu ar sākotnējo skalu 8.
- Tā rezultātā viena ērce ir vienāda ar 1 / (1,2MHz / 8) =.006667ms
- Attiny13A ir konfigurēts, lai salīdzinātu 8 bitu TCCR0B reģistra saturu ar taimeri un pārslēgtu tapu, kad tie sakrīt.
- Piemēram, lai ģenerētu kvadrātveida vilni pie 524 Hz (viena oktāva virs vidējā C), kura periods ir 1,908 ms.
1.908ms = 286 pulksteņa ērces (1.908/.0067) Sadaliet 286 ar 2, lai pārslēgtu tapu pie t/2 (286/2 = 143) Ievietojiet 143 reģistrā TTCR0B, lai ģenerētu šo piezīmi. Šis ir viss nepieciešamais kods lai iestatītu taimeri, salīdziniet un izvadiet kvadrātveida vilni:
TCCR0A | = (1 << WGM01); // konfigurēt taimeri 1 CTC režīmam TCCR0A | = (1 << COM0A0); // pārslēgt OC0A salīdzināšanas mačā TCCR0B | = (1 << CS01); // clk/8 iepriekšēja mēroga TTCR0B = 143; // ģenerē kvadrātveida vilni pie 524 HzLai aizkavētu signālus un pauzes starp tiem, tika izmantota vienkārša aizkaves funkcija
tukšs miegs (int ms) {int cnt; par (cnt = 0; cnt <(ms); cnt ++) {int i = 150; kamēr (i--) {_asm ("NOP"); }}}Tas tiek skaitīts no 150, kur katrs NOP cikls ir aptuveni 0,006667 ms. Pēdējais, ko kods dara, ir cilpa caur masīviem, ģenerē mūziku un mirgo abas gaismas diodes. Tas tiek darīts nepārtrauktā ciklā ar šādu kodu
const uint8_t freq PROGMEM = {… dati}; const uint8_t garums PROGMEM = {… dati}; const uint8_t aizture PROGMEM = {… dati};… kamēr (1) {par (cnt = 0; cnt < 156; cnt ++) {OCR0A = pgm_read_byte (& freq [cnt]); output_toggle (PORTB, PB3); output_toggle (PORTB, PB4); gulēt (pgm_read_byte (& length [cnt]))); output_toggle (PORTB, PB3); output_toggle (PORTB, PB4); // apturēšanas taimeris TCCR0B = 0; gulēt (pgm_read_word (& delay [cnt]))); // sākuma taimeris TCCR0B | = (1 << CS01); // clk/8 prescale}}Frekvenču/garumu/aizkaves masīvos ir 156 elementi, šī cilpa tos šķērso. PIN PB3 un PB4 katrs ir pārslēgts, lai tie mainītos ar katru noti. Pirmais miega režīms ir notis, kuru mēs atskaņojam pēc OCR0A reģistra iestatīšanas uz atbilstošo vērtību. Otrais miegs ir pauze starp mūsu atskaņotajām notīm. Iepriekš redzamajā kodā jūs, iespējams, pamanīsit divas funkcijas pgm_read_byte () un pgm_read_word (), kā arī atslēgvārdu PROGMEM. Ar iegultu mikroshēmu, piemēram, attiny, SRAM apjoms ir ļoti ierobežots, šajā gadījumā tikai 64 baiti. Masīvi, kurus mēs izmantojam visiem frekvences/kavēšanās/garuma datiem, ir daudz lielāki par 64 baitiem, un tāpēc tos nevar ielādēt atmiņā. Izmantojot īpašo PROGMEM avr-gcc direktīvu, šie lielie datu masīvi tiek liegti ielādēt atmiņā, bet tiek nolasīti no zibspuldzes.
5. solis: ļaujiet mariomanam atbrīvoties
Iepriekš redzamajā video ir redzama Marioman darbībā. Vidējais enerģijas patēriņš ir aptuveni 25 mA, lai viņš varētu mirgot un radīt troksni apmēram 10 stundas pirms litija monētas iztukšošanas. Vienīgais veids, kā viņu ieslēgt un izslēgt, ir izņemt monētu elementu akumulatoru, materiālos uzskaitīto izturīgo. labi piemērots šim. Var pievienot slēdzi, taču ir kaut kas sakāms, lai tas būtu vienkāršs.
Ieteicams:
StickC M5Stack LED mirgo: 7 soļi
StickC M5Stack LED mirgo: Šajā projektā mēs iemācīsimies savienot un izveidot LED mirgošanu, izmantojot M5StickC ESP32 moduli. Skatīties video
Tiny LED mirgo Attēls: 6 soļi
Tiny LED mirgo Attēls: Jūs varat viegli mirgot ar arduino vai 555 taimeri. Bet jūs varat izveidot mirgojošu ķēdi bez šādiem IC. Šī ir vienkārša mirgojoša figūra, kas izgatavota no atsevišķām detaļām
Creative Tactic3D Rage bezvadu austiņu remonts (mirgo zils, bez savienošanas pārī, nomaina akumulatoru): 11 soļi
Remontējiet bezvadu austiņas Creative Tactic3D Rage (zils mirgo, bez savienošanas pārī, nomainot akumulatoru): šī rokasgrāmata attēlos ir paredzēta tiem, kam pieder radošās austiņas, ja ir zaudēta savienošana pārī ar USB raidītāju un pārī savienošana nedarbojas, jo austiņas lēnām mirgo zilā krāsā un vairs nereaģē uz pogām. Šajā stāvoklī jūs nevarat
Kontrollampiņa mirgo ar potenciometru un OLED displeju: 6 soļi
Kontrolējiet mirgojošu LED ar potenciometru un OLED displeju: šajā apmācībā mēs iemācīsimies kontrolēt mirgojošo LED ar potenciometru un parādīt pulsa frekvences vērtību OLED displejā. Noskatieties demonstrācijas video
Arduino programmēšana, izmantojot mobilo tālruni -- Arduinodroid -- Arduino Ide Android ierīcēm -- Mirgo: 4 soļi
Arduino programmēšana, izmantojot mobilo tālruni || Arduinodroid || Arduino Ide Android ierīcēm || Mirgo: lūdzu, abonējiet manu youtube kanālu, lai iegūtu vairāk videoklipu …… Arduino ir tāfele, kuru var programmēt tieši, izmantojot USB. Tas ir ļoti vienkārši un lēti koledžas un skolas projektiem vai pat produktu prototipam. Daudzi produkti vispirms balstās uz to, lai