Përmbajtje:
- Hapi 1: Materialet dhe Ndërtimi
- Hapi 2: Saldimi i AVR në LED dhe altoparlant
- Hapi 3: Programimi i Attiny13a
- Hapi 4: Krijimi i firmuerit për Marioman
- Hapi 5: Lëreni Marioman -in të Lirë
Video: Pulsim, Këndim, Marioman: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:32
Përdorni një attiny13a, dy LED dhe një altoparlant kartash përshëndetëse për të krijuar një Marioman të ndezur që luan këngën e temës Super Mario Brothers. Ky mund të jetë një projekt i lehtë me kosto të ulët për këdo që po kërkon një mënyrë argëtuese për të hyrë në programimin AVR! shënimet e këngëve krijohen nga një valë katrore e nxjerrë në një kunj të vetëm të mikrokontrolluesit AVR. LED -të që alternohen në secilën shënim janë të lidhura me 2 kunja secila me të njëjtin çip.
Hapi 1: Materialet dhe Ndërtimi
1 attiny13a
www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMvu0Nwh4cA1wRKJzS2Lmyk%252bEP0e%2f7dEeq0%3dCost: $ 1.40
- 2 LED - çdo LED do të bëjë
- 1 bateri me qeliza monedhë litiumi
www.sparkfun.com/commerce/product_info.php?products_id=338 Kostoja: $ 2.00
1 mbajtëse e qelizës së monedhës
www.sparkfun.com/commerce/product_info.php?products_id=8822 Kostoja: $ 1.25
1 folës i vogël nga një kartë përshëndetëse muzikore
Kostoja totale e materialeve 5 5 dollarë Dy LED janë bashkangjitur drejtpërdrejt në dy kunja secila nga attiny13A. Dy kunja përdoren për secilën LED, kunja e dytë është e ulët për t'u përdorur si një lidhje tokësore. Kufiri aktual i kunjave I/O në AVR do të parandalojë LED -të të tërheqin shumë, kështu që një rezistencë nuk është e nevojshme për t'u lidhur seri. Altoparlanti i përdorur është tipik për atë që gjendet në një kartolinë muzikore, çdo altoparlant i vogël do të bëjë, duke pasur parasysh se kjo po nxjerr një ton valë katror, nuk është shumë e rëndësishme të shqetësoheni për drejtimin e altoparlantit ose cilësinë e zërit.
Hapi 2: Saldimi i AVR në LED dhe altoparlant
Që LED -të të shkojnë të shtrihen si krahët, një kunj është përkulur mbi AVR në çdo anë. Orientimi i AVR në këtë mënyrë e bën të lehtë lidhjen me altoparlantin (imazhi i dytë) pasi lidhjet janë në dy kunjat e poshtme. Për estetikë ju doni që pjesa e përparme e çipit të jetë e kthyer jashtë, prandaj sigurohuni që altoparlanti të jetë përballë në të njëjtën mënyrë kur është bashkangjitur.
Hapi 3: Programimi i Attiny13a
Ka shumë mundësi të ndryshme për programimin e AVR -ve. Për këtë projekt u përdor USBtiny i cili është i disponueshëm si një komplet nga faqja e zonjës https://www.ladyada.net/make/usbtinyisp/index.htmlPër të lidhur AVR me programuesin ose lidhni telat në prizën e femrës dhe futini në një pjatë ose akoma më mirë merrni një përshtatës të lirë programimi AVR si ky Me
Hapi 4: Krijimi i firmuerit për Marioman
Attiny13A ka 1K flash të programueshëm dhe 64bajt SRAM. Skedari tar i bashkangjitur ka skedarin burimor si dhe firmware të përpiluar për shkarkim. Tre vargje në kodin c janë përdorur për të gjeneruar muzikë
- freq - frekuencat e secilës notë
- gjatësia - gjatësia e secilës shënim
- vonesë - pauzë midis secilës shënim
Grupi i frekuencës nuk ka frekuencat aktuale, por vlerën që duhet vendosur në regjistrin TTCROB për të gjeneruar valën katrore nga kunja PB0. Këtu është një përmbledhje e shkurtër e llogaritjeve dhe konfigurimit të kunjave për gjenerimin e valës katrore:
- Attiny13A ka një oshilator të brendshëm të vendosur në 9.6MHz
- Ora e brendshme për IO është oshilatori i ndarë me 8 ose 1.2MHz
- Një kohëmatës i brendshëm është vendosur në një regjistër 8bit për të numëruar çdo cikël të orës me prescale prej 8.
- Kjo rezulton në një shënim të barabartë me 1 / (1.2MHz / 8) =.006667ms
- Attiny13A është konfiguruar për të krahasuar atë që është në regjistrin 8bit TCCR0B me kohëmatësin dhe për të ndryshuar një kunj kur ato përputhen.
- Për shembull, për të gjeneruar një valë katrore në 524Hz (një oktavë mbi C mesme) e cila ka një periudhë prej 1.908ms.
1.908ms = 286 tiketa të orës (1.908/.0067) Ndani 286 me 2 për të ndryshuar kunjin në t/2 (286/2 = 143) Vendosni 143 në regjistrin TTCR0B për të gjeneruar këtë shënim. Ky është i gjithë kodi që është i nevojshëm për të vendosur kohëmatësin, bëni krahasimin dhe nxjerrjen e një vale katrore:
TCCR0A | = (1 << WGM01); // konfiguroni kohëmatësin 1 për modalitetin CTC TCCR0A | = (1 << COM0A0); // kaloni OC0A në krahasimin e ndeshjes TCCR0B | = (1 << CS01); // clk/8 paraprakisht TTCR0B = 143; // gjeneroni një valë katrore në 524HzPër të vonuar tonet dhe pauzat midis tyre u përdor një funksion i thjeshtë vonimi
gjumë i pavlefshëm (int ms) {int cnt; për (cnt = 0; cnt <(ms); cnt ++) {int i = 150; ndërsa (i--) {_asm ("JO"); }}}Kjo numëron nga 150 ku secili cikël NOP është afërsisht.006667ms. Gjëja e fundit që bën kodi është qarkimi i vargjeve, krijimi i muzikës dhe ndezja e dy LED -ve. Kjo bëhet në një lak të vazhdueshëm për kodin me kodin e mëposhtëm
const uint8_t frekuencë PROGMEM = {… të dhëna}; const uint8_t gjatësi PROGMEM = {… të dhëna}; const uint8_t vonesë PROGMEM = {… të dhëna};… ndërsa (1) {për (cnt = 0; cnt < 156; cnt ++) {OCR0A = pgm_read_byte (& freq [cnt]); ndërrimi_prodhues (PORTB, PB3); ndërrimi_prodhues (PORTB, PB4); fle (pgm_read_byte (& gjatësia [cnt])); ndërrimi_prodhues (PORTB, PB3); ndërrimi_prodhues (PORTB, PB4); // kohëmatësi i ndalimit TCCR0B = 0; gjumë (fjala_gëzimi_pgm (& vono [cnt])); // kohëmatësi i fillimit TCCR0B | = (1 << CS01); // clk/8 parashkollore}}Ekzistojnë 156 elementë në vargjet e frekuencave/gjatësisë/vonesës, ky lak i përshkon ato. Kunjat PB3 dhe PB4 ndryshohen secili kështu që do të alternohen me secilën notë Gjumi i parë është gjatësia e notës që luajmë pasi vendosim regjistrin OCR0A në vlerën e duhur. Gjumi i dytë është pauza mes notave që luajmë. Në kodin e mësipërm mund të keni vënë re dy funksionet pgm_read_byte () dhe pgm_read_word () si dhe fjalën kyçe PROGMEM. Me një çip të ngulitur si veshja sasia e SRAM është shumë e kufizuar, në këtë rast vetëm 64 bajt. Vargjet që ne po përdorim për të gjitha të dhënat e frekuencës/vonesës/gjatësisë janë shumë më të mëdha se 64 bajt dhe prandaj nuk mund të ngarkohen në memorie. Duke përdorur direktivën e veçantë PROGMEM avr-gcc, këto vargje të të dhënave të mëdha parandalohen të ngarkohen në memorie, në vend që të lexohen nga flashi.
Hapi 5: Lëreni Marioman -in të Lirë
Videoja e mësipërme tregon Marioman në veprim. Konsumi mesatar i energjisë është rreth 25mA kështu që ai mund të vezullojë dhe të bëjë zhurmë për rreth 10 orë para se të kullojë qelizën e monedhës litium. E vetmja mënyrë për ta ndezur dhe fikur atë është heqja e baterisë së qelizës së monedhës, ajo e fortë e listuar në materialet është i përshtatshëm për këtë. Mund të shtohet një ndërprerës, por ka diçka për të thënë për ta mbajtur atë të thjeshtë.
Recommended:
Si të bëni 4G LTE Antenë të BiQuade të Dyfishtë Hapa të Lehtë: 3 Hapa
Si të bëni 4G LTE Antenë BiQuade të Dyfishtë Hapa të Lehtë: Shumicën e kohës me të cilën jam përballur, nuk kam forcë të mirë të sinjalit në punët e mia të përditshme. Kështu që. Kërkoj dhe provoj lloje të ndryshme antenash por nuk funksionoj. Pas humbjes së kohës gjeta një antenë që shpresoj ta bëj dhe ta provoj, sepse është parimi i ndërtimit jo
Dizajni i lojës në lëvizje në 5 hapa: 5 hapa
Dizajni i lojës në Flick në 5 hapa: Flick është një mënyrë vërtet e thjeshtë për të bërë një lojë, veçanërisht diçka si një enigmë, roman vizual ose lojë aventure
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: 3 hapa
Zbulimi i fytyrës në Raspberry Pi 4B në 3 hapa: Në këtë Instructable ne do të bëjmë zbulimin e fytyrës në Raspberry Pi 4 me Shunya O/S duke përdorur Bibliotekën Shunyaface. Shunyaface është një bibliotekë për njohjen/zbulimin e fytyrës. Projekti synon të arrijë shpejtësinë më të shpejtë të zbulimit dhe njohjes me
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni
Altoparlant i papërshkueshëm nga uji për këndim më të mirë të dushit: 12 hapa (me fotografi)
Altoparlanti i papërshkueshëm nga uji për këndim më të mirë të dushit: Nëse jeni si unë-dhe unë e di që jeni-ju doni të këndoni nën dush dhe ju përtypni në të! Nuk mund të bëj asgjë për të pasur një zë të tmerrshëm këndimi, por ajo që më shqetëson vërtet mua, dhe ndoshta të gjithë të tjerët brenda rrezes së zërit tim