ዝርዝር ሁኔታ:

ፍላፕ ወፍ በ ATtiny85 እና OLED ማሳያ SSD1306: 6 ደረጃዎች (ከስዕሎች ጋር)
ፍላፕ ወፍ በ ATtiny85 እና OLED ማሳያ SSD1306: 6 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ፍላፕ ወፍ በ ATtiny85 እና OLED ማሳያ SSD1306: 6 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ፍላፕ ወፍ በ ATtiny85 እና OLED ማሳያ SSD1306: 6 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: Hair cut new style in 2020 2024, ህዳር
Anonim
Image
Image
ሃርድዌር
ሃርድዌር

ሰላም ሁሉም ፣

ዛሬ እኔ የፈጠርኳቸውን መሰረታዊ የፍላሽ ወፍ ክሎኔን እና ተመሳሳይ ጨዋታ ስለማድረግ እንዴት እንደሚሄዱ አሳያችኋለሁ። እኔ በመሠረቱ ከእርስዎ ጋር ኮዴን እሮጣለሁ እና እያንዳንዱን የመንገድ ደረጃ እንዴት እንደሚሰራ እገልጻለሁ። ይህ ጨዋታ በ I2C OLED ማሳያ በ 1 ሜኸ ሰዓት በሰዓት በ ATtiny85 ላይ እንዲሠራ ተገንብቷል። ወደፊት!

ደረጃ 1 - ሃርድዌር

ለጨዋታው ወረዳን ለመገንባት ፍላጎት ከሌለዎት ግን ከጀርባው ያለውን ጽንሰ -ሀሳብ መረዳት ከፈለጉ ይህንን ደረጃ መዝለል ይችላሉ።

የእኔ ጨዋታ ሁለት አዝራሮችን ፣ ATtiny85 ፣ I2C OLED 128x64px ማያ ገጽ እና አንዳንድ የኃይል ምንጭ ይፈልጋል። የእኔ አስተማሪ የቢዝነስ ካርድ/የጨዋታ ኮንሶል - ATtiny85 እና OLED ማያ ገጽ በእሱ ላይ የሚፈልጉትን ሁሉ የያዘ ሰሌዳ እንዴት እንደሚገነቡ ያሳየዎታል! ሰሌዳዬን ለመሥራት ፍላጎት ከሌልዎት የዳቦ ሰሌዳዎን ያውጡ እና ዝርዝሮቹን እነግርዎታለሁ። ማንኛውንም የ ATtiny85 ተለዋጭ መጠቀም ይችላሉ። እንደዚህ ያሉ የኦሌዲ ማሳያዎችን እመክራለሁ።

  1. በእርስዎ ATtiny85 ላይ የሁለት ግፊት ቁልፎች አንድ ጎን ወደ ፒን 2 እና 3 ወደ ሽቦዎች ያዙሩት። በእነዚህ ሽቦዎች ላይ ፣ እንዲሁም ከመሬት (ተጎታች ወደታች ተከላካይ) ጋር የተገናኘ 10 ኪ ኦኤም resistor ይጨምሩ።
  2. የእነዚህን የግፊት ቁልፎች ሌላኛውን ጎን ወደ ቮልቴጅ ያዙሩት። አዝራሩ ካልተጫነ የፒን ሁኔታ ዝቅተኛ ይሆናል። ሲጫን የፒን ሁኔታ ከፍ ያለ ይሆናል።
  3. ፒን 7 ን በማሳያዎ ላይ ካለው SCL ፒን ፣ እና 5 በማሳያዎ ላይ ካለው ኤስዲኤ ፒን ጋር ያገናኙ። በዚህ መሠረት በማሳያው ላይ የኃይል ፒኖችን (ቪሲሲ እና ጂኤንዲ) ያገናኙ።
  4. በመጨረሻ ፣ በአቲንቲ ላይ ፒን 4 ን ከመሬት ጋር ያገናኙ እና 8 ን ከ voltage ልቴጅ ጋር ያገናኙ።

ደረጃ 2 - ሶፍትዌሩ

ሶፍትዌሩ!
ሶፍትዌሩ!

ጨዋታውን ለማካሄድ የሚያስፈልጉዎት ሁሉም ፋይሎች ያሉት እዚህ ጋር ተያይ folderል። ሁለቱ ፋይሎች ፣ FlappyBird.ino እና WallFunctions.h ፣ ለንባብ ደስታዎ በጣም ጥሩ አስተያየት ተሰጥቷቸዋል። የ FlappyBird.ino ንድፉን ወደ የእርስዎ ATtiny85 (በ 1 ሜኸ) ላይ መስቀል እና መጫወት ይችላሉ! ከዚህ ጨዋታ በስተጀርባ ያለውን ፅንሰ -ሀሳብ መማር እርስዎን የሚስብ ከሆነ ወይም የራስዎን ጨዋታ መሥራት ከፈለጉ ከዚያ ያንብቡ!

በጨዋታዬ አሁንም ጥቂት ችግሮች አሉ። I2C በማንኛውም መንገድ መረጃን ለማስተላለፍ በጣም ጥሩው መንገድ አይደለም። በዚህ ልጥፍ መሠረት ማሳያው በ 100 ኪኸዝ አካባቢ ብቻ መረጃን ሊቀበል ይችላል ፣ ስለዚህ የአቲኒ የሰዓት ፍጥነትን ወደ 8 ሜኸ ብንገፋም እንኳ I2C ሰርጥ አሁንም ማነቆ ይሆናል። ማሳያው ከፍተኛውን 10fps ያህል ሊያወጣ ይችላል። ማሳያው መሳል ያለበት ይበልጥ የተለዩ ምስሎች ፣ አጠቃላይ ሂደቱ ቀርፋፋ ነው። ስለዚህ ግድግዳዎቹ በማያ ገጹ ላይ በፍጥነት እንዲንቀሳቀሱ ስለማይችሉ የእኔ ጨዋታ በጣም ቀላል ነው! እርስዎ ለሥራው ብቁ እንደሆኑ ካሰቡ ከዚህ በታች ለእርስዎ አንዳንድ ተግዳሮቶች አሉ-

  • ጨዋታውን የበለጠ ከባድ ለማድረግ ፣ በግድግዳዎች መካከል ያለውን ክፍተት ከ 4 ይልቅ 2 እንዲሆን ከቻሉ ይመልከቱ። ፕሮግራሜ እንዴት እንደሚሠራ ከተረዱ በኋላ በጣም ከባድ መሆን የለበትም:)። እንዲሰራ ማድረግ ከቻሉ እባክዎን በአስተያየቶቹ ውስጥ ይለጥፉ!
  • የእኔ ጨዋታ የጎደለው ሌላው ነገር የውጤት ስርዓት እና ውጤቱን ለማሳየት እና ለማዳን መንገድ ነው። አንዱን መተግበር ይችሉ እንደሆነ ይመልከቱ!
  • በመጨረሻም ፣ ግድግዳዎቹ አንድ አምድ በአንድ ጊዜ እንዲያንቀሳቅሱ ከማድረግ ይልቅ ፣ እያንዳንዱን ግድግዳ ለስለስ ያለ እንቅስቃሴ በአንድ ፒክሰል ለማንቀሳቀስ ይሞክሩ።

ደረጃ 3 Flappy Bird ATtiny85: ንድፈ ሃሳብ

Flappy Bird ATtiny85: ንድፈ ሃሳብ
Flappy Bird ATtiny85: ንድፈ ሃሳብ

ምንም እንኳን የምንጠቀምበት ማሳያ ለጨዋታው ለመጠቀም 64 ፒክሰሎች ቁመት ቢኖረውም ፣ ንጥረ ነገሮችን በ 8 ፒክሰሎች ብሎኮች ውስጥ ማስቀመጥ ብቻ ይቻላል። ስለዚህ ፣ ሊሆኑ የሚችሉ y- መጋጠሚያዎች 8 ብቻ ናቸው። ነገሮችን ለማቅለል ፣ በሶፍትዌሩ ውስጥ መላውን ማያ ገጽ በዚህ መንገድ ከፋፍዬ ፣ እያንዳንዱ ብሎክ 8x8 ፒክሰሎች ባለበት 16 ብሎኮች በ 8 ብሎኮች ፍርግርግ አድርጌአለሁ። እያንዳንዱን ብሎክ ለመሙላት በጨዋታው ውስጥ ያለው እያንዳንዱ sprite 8x8 ፒክሰሎች ነው። ይህ ሁሉንም ነገር ለማስተዳደር በጣም ቀላል ያደርገዋል። ከላይ ያለውን ምስል ከተመለከቱ ማያ ገጹን እንዴት እንደከፋፈልኩ ማየት ይችላሉ። እያንዳንዱ ግድግዳ በ 6 ብሎኮች የተዋቀረ ሲሆን ቀዳዳው 2 ብሎኮች ያሉት ሲሆን የእያንዳንዱ ግድግዳ አጠቃላይ ቁመት 8 ብሎኮች ይሆናል።

በፕሮግራሙ ውስጥ እያንዳንዱ ግድግዳ እንደ ውቅር ፣ ግድግዳ ተብሎ ይጠራል። እያንዳንዱ የግድግዳ መዋቅር ሁለት ባህሪዎች አሉት - ቀዳዳ አቀማመጥ እና አምድ። በ 2 ብሎኮች ከፍታ ለ 8 ብሎኮች ቅጥር ውስጥ 7 ሊሆኑ የሚችሉ ቦታዎች ብቻ ስለሆኑ ‹ቀዳዳ ቦታ› ቁጥር 0-6 ነው። በማያ ገጹ ላይ 16 ብሎኮች ሊኖሩ ስለሚችሉ ‘ዓምድ’ ቁጥር 0-15 ነው።

የሚመከር: