ዝርዝር ሁኔታ:

ብልጭ ድርግም ፣ ዘፈን ፣ ማሪዮማን 5 ደረጃዎች
ብልጭ ድርግም ፣ ዘፈን ፣ ማሪዮማን 5 ደረጃዎች

ቪዲዮ: ብልጭ ድርግም ፣ ዘፈን ፣ ማሪዮማን 5 ደረጃዎች

ቪዲዮ: ብልጭ ድርግም ፣ ዘፈን ፣ ማሪዮማን 5 ደረጃዎች
ቪዲዮ: ይላል አንደበቴ - ዘማሪት መሠረት መብራቴ (አርቲስት) 2024, ህዳር
Anonim
ብልጭ ድርግም ፣ ዘፈን ፣ ማሪዮማን
ብልጭ ድርግም ፣ ዘፈን ፣ ማሪዮማን

የሱፐር ማሪዮ ወንድሞች ጭብጥ ዘፈን የሚጫወት ብልጭ ድርግም የሚል ማሪዮማን ለመፍጠር attiny13a ን ፣ ሁለት ኤልኢዲዎችን እና የሰላምታ ካርድ ድምጽ ማጉያ ይጠቀሙ። ይህ ወደ AVR መርሃ ግብር ለመግባት አስደሳች መንገድ ለሚፈልግ ሁሉ ቀላል ዝቅተኛ ዋጋ ያለው ፕሮጀክት ሊሆን ይችላል! የዘፈኖቹ ማስታወሻዎች የሚመነጩት በ AVR ማይክሮ መቆጣጠሪያ በአንድ ፒን ላይ በሚወጣው የካሬ ሞገድ ነው። በእያንዳንዱ ማስታወሻ ላይ የሚቀያየሩ ኤልኢዲዎች እያንዳንዳቸው ከተመሳሳይ ቺፕ 2 ፒኖች ጋር ተገናኝተዋል።

ደረጃ 1 ቁሳቁሶች እና ግንባታ

ቁሳቁሶች እና ግንባታ
ቁሳቁሶች እና ግንባታ

1 attiny13a

www.mouser.com/Search/ProductDetail.aspx?qs=sGAEpiMZZMvu0Nwh4cA1wRKJzS2Lmyk%252bEP0e%2f7dEeq0%3d ዋጋ $ 1.40

  • 2 ኤልኢዲዎች - ማንኛውም ኤልኢዲዎች ያደርጉታል
  • 1 ሊቲየም ሳንቲም ሴል ባትሪ

www.sparkfun.com/commerce/product_info.php?products_id=338 ዋጋ $ 2.00

1 ሳንቲም ሴል ያዥ

www.sparkfun.com/commerce/product_info.php?products_id=8822 ዋጋ $ 1.25

ከሙዚቃ ሰላምታ ካርድ 1 ትንሽ ተናጋሪ

የቁሳቁሶች ጠቅላላ ዋጋ ~ $ 5 ሁለቱ ኤልኢዲዎች እያንዳንዳቸው attiny13A ላይ በቀጥታ በሁለት ፒን ተያይዘዋል። ለእያንዳንዱ ኤልኢዲ ሁለት ፒኖች ጥቅም ላይ ይውላሉ ፣ ሁለተኛው ፒን እንደ መሬት ግንኙነት ለመጠቀም ዝቅተኛ ነው። በኤአርአይ ላይ ያለው የ I/O ፒኖች የአሁኑ ወሰን ኤልዲዎቹ በጣም እንዳይስሉ ይከለክላል ስለዚህ ተከላካይ ለመገናኘት አስፈላጊ አይደለም። ተጠቀም ተናጋሪው በሙዚቃ ሰላምታ ካርድ ውስጥ ከተገኘው የተለመደ ነው ፣ ማንኛውም ትንሽ ተናጋሪ ያደርገዋል ፣ ይህ የካሬ ሞገድ ድምጽን እያወጣ ስለሆነ ፣ ተናጋሪውን ወይም የድምፅ ጥራት መንዳት መጨነቅ በጣም አስፈላጊ አይደለም።

ደረጃ 2 - AVR ን ወደ LEDs እና ድምጽ ማጉያ መሸጥ

AVR ን ወደ LEDs እና ድምጽ ማጉያ መሸጥ
AVR ን ወደ LEDs እና ድምጽ ማጉያ መሸጥ
AVR ን ወደ LEDs እና ድምጽ ማጉያ መሸጥ
AVR ን ወደ LEDs እና ድምጽ ማጉያ መሸጥ

ኤልዲዎቹ እንደ እጆች እንዲዘረጉ አንድ ፒን በእያንዳንዱ ጎን በ AVR ላይ ተጣብቋል። በዚህ መንገድ AVR ን ማዛመድ ግንኙነቱ በሁለቱ የታችኛው ፒኖች ላይ ስለሆነ ከድምጽ ማጉያው (ሁለተኛ ምስል) ጋር መገናኘትን ቀላል ያደርገዋል። ለሥነ -ውበት እርስዎ ቺፕ ፊት ለፊት እንዲፈልጉ ስለሚፈልጉ ተናጋሪው በተመሳሳይ መንገድ እንደሚገጥመው ያረጋግጡ። ተያይ attachedል።

ደረጃ 3 - Attiny13a ን ፕሮግራም ማድረግ

Attiny13a ፕሮግራም ማድረግ
Attiny13a ፕሮግራም ማድረግ

AVRs ን ለማቀናጀት ብዙ አማራጮች አሉ። ለዚህ ፕሮጀክት ዩኤስቢቲን ያገለገለው ከላዳዳ ጣቢያ እንደ ኪት ሆኖ ይገኛል https://www.ladyada.net/make/usbtinyisp/index.html ወይ ሽቦዎችን ከሴቷ ሶኬት ጋር በማያያዝ ወደ የዳቦ ሰሌዳ ላይ ይሰኩ ወይም በተሻለ ሁኔታ እንደዚህ ያለ ርካሽ የ AVR ፕሮግራም አስማሚ ያግኙ።.

ደረጃ 4: ለማሪዮማን የጽኑዌር መፍጠር

ለማሪዮማን የጽኑዌር መፍጠር
ለማሪዮማን የጽኑዌር መፍጠር

Attiny13A 1K በፕሮግራም ሊሠራ የሚችል ብልጭታ ፣ እና 64 ባይት SRAM አለው። የተያያዘው የታር ፋይል ምንጭ ፋይል እንዲሁም ለማውረድ የተጠናከረ firmware አለው። በ ‹ሲ ኮድ› ውስጥ ሶስት ድርድሮች ሙዚቃውን ለማመንጨት ያገለግሉ ነበር።

  • freq - የእያንዳንዱ ማስታወሻ ድግግሞሽ
  • ርዝመት - የእያንዳንዱ ማስታወሻ ርዝመት
  • መዘግየት - በእያንዳንዱ ማስታወሻ መካከል ለአፍታ ያቁሙ

የድግግሞሽ ድርድር ትክክለኛ ድግግሞሾች የሉትም ፣ ግን ይልቁንም በ PTC0 ፒን ፒን ላይ የካሬውን ሞገድ ለማመንጨት በ TTCROB መዝገብ ውስጥ የማስገባት እሴት እዚህ አለ። ለካሬ ሞገድ ትውልድ ስሌቶች እና የፒን ውቅር አጭር ማጠቃለያ እዚህ አለ።

  • Attiny13A ወደ 9.6 ሜኸዝ የተቀናጀ ውስጣዊ ማወዛወዝ አለው
  • ለ IO ውስጣዊ ሰዓት በ 8 ወይም በ 1.2 ሜኸዝ የተከፋፈለው ማወዛወዝ ነው
  • እያንዳንዱ የሰዓት ዑደትን በ 8 ደረጃ ለመቁጠር የውስጥ ሰዓት ቆጣሪ በ 8 ቢት መመዝገቢያ ውስጥ ተዋቅሯል።
  • ይህ ከ 1 / (1.2MHz / 8) =.006667ms ጋር እኩል የሆነ አንድ ምልክት ያስከትላል
  • Attiny13A በ 8 ቢት TCCR0B መዝገብ ውስጥ ያለውን ነገር ከሰዓት ቆጣሪው ጋር ለማወዳደር እና ሲዛመዱ ፒን ለመቀየር ተዋቅሯል።
  • ለምሳሌ ፣ የ 1.908ms ጊዜ ያለው በ 524Hz (ከመካከለኛው C በላይ አንድ ኦክታቭ) ላይ የካሬ ሞገድ ለማመንጨት።

1.908ms = 286 የሰዓት መዥገሮች (1.908/.0067) ፒኑን በ t/2 (286/2 = 143) ለመቀየር 286 ን በ 2 ይከፋፈሉ ይህንን ማስታወሻ ለማመንጨት በ TTCR0B መዝገብ ውስጥ 143 ን ያስቀምጡ። ይህ ሁሉ አስፈላጊው ኮድ ነው። የሰዓት ቆጣሪውን ለማዋቀር ፣ አወዳድር እና ካሬ ሞገድ ያውጡ

TCCR0A | = (1 << WGM01); // ሰዓት ቆጣሪ 1 ለ CTC ሁነታ TCCR0A | = (1 << COM0A0); // በንፅፅር ግጥሚያ ላይ TCR0B | = (1 << CS01) ላይ OC0A ን ይቀያይሩ; // clk/8 prescale TTCR0B = 143; // የካሬ ሞገድ በ 524 HHz ያመነጫልድምጾቹን እና በመካከላቸው ያለውን ለአፍታ ማቆም ለማዘግየት ቀላል የመዘግየት ተግባር ጥቅም ላይ ውሏል

ባዶ እንቅልፍ (int ms) {int cnt; ለ (cnt = 0; cnt <(ms); cnt ++) {int i = 150; ሳለ (i--) {_asm ("NOP"); }}}ይህ እያንዳንዱ የ NOP ዑደት በግምት ከ

const uint8_t freq PROGMEM = {… data} ፤ const uint8_t ርዝመት PROGMEM = {… data} ፤ const uint8_t መዘግየት PROGMEM = {… data} ፤… ሳለ (1) {ለ (cnt = 0; cnt < 156; cnt ++) {OCR0A = pgm_read_byte (& freq [cnt]); output_toggle (PORTB ፣ PB3) ፤ output_toggle (PORTB ፣ PB4) ፤ እንቅልፍ (pgm_read_byte (& ርዝመት [cnt]))); output_toggle (PORTB ፣ PB3) ፤ output_toggle (PORTB ፣ PB4) ፤ // ሰዓት ቆጣሪ TCCR0B = 0; እንቅልፍ (pgm_read_word (& መዘግየት [cnt]))); // ሰዓት ቆጣሪ TCCR0B | = (1 << CS01); // clk/8 prescale}}በድግግሞሽ/ርዝመቶች/መዘግየቶች ድርድሮች ውስጥ 156 አካላት አሉ ፣ ይህ ሉፕ ይተላለፋቸዋል። ፒን PB3 እና PB4 እያንዳንዳቸው ይቀየራሉ ስለዚህ በእያንዳንዱ ማስታወሻ ይለዋወጣሉ የመጀመሪያው እንቅልፍ የ OCR0A መመዝገቢያውን ወደ ተገቢው እሴት ካቀናበርን በኋላ የምንጫወተው የማስታወሻ ርዝመት ነው። ሁለተኛው እንቅልፍ እኛ በምንጫወታቸው ማስታወሻዎች መካከል ለአፍታ ማቆም ነው። ከላይ ባለው ኮድ ውስጥ ሁለቱ ተግባራት pgm_read_byte () እና pgm_read_word () እንዲሁም የቁልፍ ቃል PROGMEM ሊያውቁ ይችላሉ። እንደ ተጣበቀ ቺፕ ጋር የ SRAM መጠን በጣም ውስን ነው ፣ በዚህ ሁኔታ 64 ባይት ብቻ ነው። ለሁሉም የድግግሞሽ/መዘግየት/ርዝመት ውሂብ የምንጠቀምባቸው ድርድሮች ከ 64 ባይት በጣም ትልቅ ስለሆኑ ወደ ማህደረ ትውስታ ሊጫኑ አይችሉም። ልዩ የ PROGMEM avr-gcc መመሪያን በመጠቀም እነዚህ ትላልቅ የውሂብ ድርድሮች ወደ ማህደረ ትውስታ ከመጫን ይከለክላሉ ፣ ይልቁንም ከብልጭታ ይነበባሉ።

ደረጃ 5: ማሪዮማን እንዲፈታ መፍቀድ

ከላይ ያለው ቪዲዮ ማሪዮማን በተግባር ያሳያል። የሊቲየም ሳንቲም ሴሉን ከማፍሰሱ በፊት ለ 10 ሰዓታት ያህል ብልጭ ድርግም ማለት እና ድምፁን ማሰማት ይችላል። ለዚህ ተስማሚ። ማብሪያ / ማጥፊያ ሊታከል ይችላል ፣ ግን ቀለል ለማድረግ ቀላል የሚባል ነገር አለ።

የሚመከር: