ዝርዝር ሁኔታ:

ዲጂታል ቼዝ - የቼዝ ጨዋታዎን በመስመር ላይ ይከታተሉ - 5 ደረጃዎች
ዲጂታል ቼዝ - የቼዝ ጨዋታዎን በመስመር ላይ ይከታተሉ - 5 ደረጃዎች

ቪዲዮ: ዲጂታል ቼዝ - የቼዝ ጨዋታዎን በመስመር ላይ ይከታተሉ - 5 ደረጃዎች

ቪዲዮ: ዲጂታል ቼዝ - የቼዝ ጨዋታዎን በመስመር ላይ ይከታተሉ - 5 ደረጃዎች
ቪዲዮ: ገራሚ ጌም በ ዲጂታል ቼዝጌም መጫወት ይቻላል ማየት ማመን ነው 2024, ህዳር
Anonim
ዲጂታል ቼዝ - የቼዝ ጨዋታዎን በመስመር ላይ ይከታተሉ
ዲጂታል ቼዝ - የቼዝ ጨዋታዎን በመስመር ላይ ይከታተሉ

እኔ ከልጅነቴ ጀምሮ ብዙ ቼዝ እጫወታለሁ ፣ እና ድሩ በኮምፒተር ወይም በቀጥታ ተቃዋሚዎች ላይ ቼዝ የሚጫወትባቸው ብዙ ድር ጣቢያዎች ስላሉት እርስዎ የቼዝ ጨዋታዎን የሚከታተል ድር ጣቢያ አንድ ጊዜ አላገኘሁም። በእውነተኛ ህይወት ውስጥ መጫወት። ስለዚህ በዚህ ፕሮጀክት ይህንን ለመገንዘብ ተስፋ አደርጋለሁ!

ተስፋ አደርጋለሁ -

  • የቼዝ ቁርጥራጮችን እንቅስቃሴ መከታተል ይቻል
  • ስለ ያለፉ ጨዋታዎች አንዳንድ የመሪዎች ሰሌዳዎችን ይመልከቱ።
  • ጊዜን ይከታተሉ እና እንደ ባለሙያ ጨዋታ በፍጥነት ይጫወቱ።

ከተጠናቀቀ 64 የብርሃን ዳሳሾች እና 8 ቺፖችን ለማንበብ ስለሚያስፈልገው በጣም የተወሳሰበ ፕሮጀክት ነው። የትኛው ቀድሞውኑ ትልቅ ተግባር ነው እና እኛ ማንኛውንም የሌሎች ዳሳሾችን እንኳ አንቆጥርም።

የእኔ ኮሌጅ እኛ የምናደርጋቸውን ትልቅ ዝርዝር ሰጠን

  1. ለፕሮጀክታችን ንድፈ -ሀሳብ ይፍጠሩ
  2. መረጃን ለማከማቸት እና ለማከማቸት የውሂብ ጎታ ይፍጠሩ።
  3. Adobe XD ን በመጠቀም ድር ጣቢያ ይንደፉ
  4. ይህንን ድር ጣቢያ በ CSS እና በኤችቲኤምኤል ይድገሙት
  5. ዳሳሾቹን በፓይዘን ያንብቡ
  6. ፍላሽ በመጠቀም በድር ጣቢያው ላይ ያለውን የዳሳሽ ውሂብ ያሳዩ።

በዚህ መመሪያ ውስጥ በጉዞዬ ላይ እመራዎታለሁ ፣ እና ሁሉም ችግሮች እና የመዳን ጊዜያት በእነዚህ የመጨረሻዎቹ ሁለት ሳምንታት ውስጥ አልፌያለሁ።

ደረጃ 1 - አቅርቦቶች/መሣሪያዎች

አቅርቦቶች ፣ ቁሳቁሶች እና መሣሪያዎች ለስኬታማ ፕሮጀክት የመጀመሪያ እርምጃ ናቸው!

መሣሪያዎች ፦

  • የብረታ ብረት
  • የሚሸጥ ቆርቆሮ
  • ማያያዣዎች
  • ቁፋሮ ማሽን
  • ቴፕ

አቅርቦቶች

  • Raspberry Pi በማይክሮ ኤስዲ ካርድ (4 ጊባ በቂ መሆን አለበት)
  • Rasberry Pi T-cobbler
  • የቼዝ ቦርድ ከ ቁርጥራጮች ጋር
  • 7 ክፍል ማሳያ (TM 1637)
  • 2 የንክኪ ዳሳሾች (TTP223B)
  • RFID አንባቢ በካርዶች (MFRC522)
  • MCP3008 (ምን ያህል ርቀት መሄድ እንደሚፈልጉ ላይ በመመስረት ለእያንዳንዱ MCP 8 የቼዝ መጋጠሚያዎችን ማንበብ ይችላሉ)
  • የብርሃን ጥገኛ ጥገኛ ዓይነት 5288 (ላላችሁት እያንዳንዱ MCP 8)
  • ራስጌዎች (ወንድ ወደ ወንድ እና ሴት ወደ ወንድ)

ሁሉንም ነገር መግዛት ከፈለጉ ፣ የተገመተው የወጪ ዋጋ የመጓጓዣ ወጪዎችን (አቅርቦቶችን ብቻ) ጨምሮ ወደ 125 ዩሮ አካባቢ መሆን አለበት!

ከሚያስፈልጉዎት ነገሮች ሁሉ ከአገናኞች እና ዋጋዎች ጋር ተያይዞ የ Excel ፋይል አለ!

ደረጃ 2: መርሃግብሮች እና እቅድ

መርሃግብሮች እና እቅድ!
መርሃግብሮች እና እቅድ!
መርሃግብሮች እና እቅድ!
መርሃግብሮች እና እቅድ!

በዚህ ፕሮጀክት ውስጥ ቀጣዩ ደረጃ መርሃግብር መፍጠር ነው። እኔ 2 ሠራሁ - አንደኛው በዳቦ ሰሌዳ ላይ እና አንዱ በኤሌክትሮኒክ። ሁሉንም ነገር ንፁህ ለማድረግ እና ምንም አላስፈላጊ ነገሮችን እንዳናገናኝ ለማረጋገጥ ይህ መርሃግብሮች ያስፈልጉናል!

ማንም ፍላጎት ካለው እነዚህን መርሃግብሮች ለመፍጠር “ፍሪቲንግ” የተባለ ፕሮግራም ተጠቀምኩ።

የቀለም ኮድ;

  • ቀይ = የኃይል አቅርቦት
  • አረንጓዴ = ግንኙነት
  • ሰማያዊ = መሬት

Raspberry Pi ግንኙነቶች:

  • 3V3 => ሁሉንም ነገር በኃይል በመያዝ በዳቦ ሰሌዳው ላይ የ VC መስመር
  • 5V => VCC የ 7 ክፍል ማሳያ
  • ጂኤንዲ

    • በዳቦ ሰሌዳ ላይ መሬት
    • የ 7 ክፍል ማሳያ መሬት
  • GPIO4 => ሰዓት የ MCP3008 ፒን ምረጥ
  • GPIO10 => የ MCP3008 የ MOSI ፒን
  • GPIO9 => የ MCP3008 ሚሶ ፒን
  • GPIO11 => የ MCP3008 CLK ፒን
  • GPIO7 => የ MFRC522 የ SDA ፒን
  • GPIO19 => የመጀመሪያው የንክኪ ዳሳሽ DIG ፒን
  • GPIO26 => የሁለተኛው የንክኪ ዳሳሽ DIG ፒን
  • GPIO20 => የሰባቱ ክፍል ማሳያ CLK ፒን
  • GPIO21 = የሰባው ክፍል ማሳያ DIO ፒን

አንድ ባልና ሚስት በስርዓተ -ትምህርቶቹ ላይ ያስታውሳሉ-

  • ይህ መርሃግብር 1 ኤምሲፒ ብቻ ይ containsል ፣ ይህ ማለት 8 መጋጠሚያዎች ብቻ ሙሉ በሙሉ ለማንበብ ይችላሉ ማለት ነው።
  • እንደ ቺፕ ምርጫዬ የጂፒኦ ፒኖችን እጠቀማለሁ። ከ 8 ኤም.ፒ.ፒ.
  • የ 7 ክፍል ማሳያ በአስተማሪ የተጠቆመ ነው ፣ በራሱ ፕሮቶኮል ላይ ስለሚሠራ 4 ገመዶች ብቻ ያስፈልጋሉ።
  • በንክኪ ዳሳሾች ዲጂታል ፒን ላይ ያሉት ተቃዋሚዎች ሙሉ በሙሉ አያስፈልጉም ፣ ግን ይመከራሉ።

አካላትን በማብራራት;

  • MCP ከብርሃን ዳሳሾች ጋር

    • MCP3008 8 ሰርጥ 10 ቢት ኤዲሲ ነው

      • አንድ MCP3008 የብርሃን ዳሳሾችን የአናሎግ እሴት ያነባል ፣ ይህ እሴት በአሁኑ ጊዜ በአነፍናፊው ላይ በሚበራ የብርሃን መጠን ላይ የተመሠረተ ነው።
      • በእኔ የፓይዘን ኮድ ውስጥ ያንን የአናሎግ እሴት እቀበላለሁ እና ወደ 1 ወይም 0 ይለውጠዋል
  • የንክኪ ዳሳሾች;

    ልክ እንደ አዝራር ይሠራል ፣ እኔ በጥሪ መልሶ ማግኛ ዘዴ ለዚህ ክፍል እጠቀማለሁ። ተጨማሪ በዚህ ላይ በኋላ

    የ RFID አንባቢ (MFRC 522)

    • ከተጫነ ጥቅል ጋር አንድ የተወሰነ ፕሮቶኮል (SPI) ይጠቀማል።
    • ከተጫነ ጥቅል ጋር ኮድ ማድረግ ከባድ አይደለም
    • መለያውን ያነባል እና የመለያውን እሴት ይመልሳል
    • እንዲሁም ለመለያ አንድ እሴት መጻፍ ይችላሉ ፣ ስለዚህ የሄክሳዴሲማል እሴትን ከመመለስ ይልቅ ለምሳሌ ስም ይመልሳል

    7 ክፍል (TM1637)

    • እንዲሁም ለቀላል ኮድ የተጫነ ጥቅል ይጠቀማል
    • ከአንድ ኢንቲጀር እሴት ጋር ተለዋዋጭ ይፍጠሩ ፣ ከዚያ በ 4 ቁምፊ ይከፋፈሉት እና እነዚያን ቁምፊዎች ያሳዩ

ደረጃ 3 የ SQL ጎታ

SQL የውሂብ ጎታ
SQL የውሂብ ጎታ

ወደዚህ ፕሮጀክት የሚወስደው ሦስተኛው እርምጃ 3NF ን መደበኛ የ SQL ዳታቤዝ መፍጠር ነው!

እኛ ለዚህ ያስፈልገናል-

  • ውሂብ በማስገባት ላይ
  • መረጃን ማግኘት እና በእኛ ድር ጣቢያ ላይ ማሳየት
  • አሁን ባለው የቼዝ ጨዋታ ውስጥ ምን ያህል ተራ እንደሄደ በትክክል ማየት መቻል!

ሰንጠረ explainedች ተብራርተዋል -

  • ጨዋታዎች

    • ይህ አንድ የተወሰነ ጨዋታ ማን እንዳሸነፈ እና ጨዋታው ሲጫወት ይከታተላል
    • እዚህ ዋናው ቁልፍ GameID ነው
    • ቀኑ የአሁኑ ቀን መደበኛ እሴት አለው
    • አሸናፊው እና ነጥቡ በኋላ ጨዋታው ከተጠናቀቀ በኋላ ይታከላል!
  • ተጫዋቾች (ተናጋሪዎቹ በዴልች)

    • እነዚህ በእጅ ገብተዋል ፣ ግን የ RFID ካርድ ስርዓትን በመጠቀም ሊገቡም ይችላሉ።
    • በካርድዎ ላይ ስም ይፃፉ ፣ ከዚያ ካርዱን ያንብቡ እና በዚህ ሰንጠረዥ ውስጥ ስሙን ያስገቡ
    • እንዲሁም በድር ጣቢያው ላይ እንዲታይ የእያንዳንዱን ተጫዋች አሸናፊ / ኪሳራ መዝገብ ይከታተላል
  • ታሪክ (ታሪክ)

    • ይህ ተራ ታሪክ ነው
    • የቼዝ ቁራጭ ሲንቀሳቀስ ፣ እዚህ ይዘምናል
    • እሱ 3 የውጭ ቁልፎች ፣ ተጫዋች ፣ ጨዋታ እና ቼዝፔስ አለው
    • ReadDate (InleesDatum) አነፍናፊው የተነበበበት ቀን ነው
    • ReadTime ከ ReadDate ጋር አንድ ነው ግን በጊዜ ማህተም
    • LocationID (LocatieID) የተቀመጠበት የአስተባባሪ ስም ነው። ለምሳሌ "a3"
  • የቼዝ ቁርጥራጮች (Schaakstukken in dutch)

    • እያንዳንዱ የቼዝ ቁራጭ መታወቂያ ፣ ቡድን ፣ ስም እና ሁኔታ አለው
    • ቡድኑ 1 ወይም 2 ፣ ጥቁር ወይም ነጭ ነው።
    • የማንኛውም ቁራጭ ስም ማለትም “Pawn 1” ይሆናል
    • ሁኔታው ማለት ቁራጭ በሕይወት አለ ወይም ሞቷል!

ደረጃ 4 - ሃርድዌር

ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር
ሃርድዌር

አሁን ሁሉንም ትክክለኛ ቁርጥራጮች በቦታው ካገኘን ፣ የሆነ ነገር መፍጠር መጀመር እንችላለን!

ለማብራራት ቀላል ስለሚሆን ይህንን ክፍል ወደ ንዑስ ደረጃዎች እናካፍለው-

  • ደረጃ 1: በመጀመሪያው ስዕል ላይ እንደሚታየው በእያንዳንዱ የቼዝቦርድዎ አስተባባሪ ውስጥ ቀዳዳ መሰንጠቅ ይፈልጋሉ ፣ እንዲሁም የንክኪ ዳሳሾችን ፣ የ RFID አንባቢን እና የ 7 ክፍል ማሳያዎችን ለማስቀመጥ በሚፈልጉበት ቦታ ላይ ጉድጓድ ይቆፍሩ።

    በቦርዱ ጎን ላይ አንዳንድ ቀዳዳዎችን መቦረሱን አይርሱ ፣ እነዚህ በቦርዱ አናት ላይ ላሉት የተለያዩ አካላት ሽቦዎች ናቸው። ብዙ ቁፋሮ ፣ አውቃለሁ።

  • ደረጃ 2 - አንድ ወይም ሁለት ዳሳሾችን ወደ Raspberry Pi ለማገናኘት ይሞክሩ ፣ ይሠሩ እንደሆነ ያረጋግጡ። በደረጃ 2 (The schematics) ቀደም ሲል እንደተገለፀው ከ MCP አናሎግ አንባቢ ጋር ማገናኘት ይፈልጋሉ።
  • ደረጃ 3 - ይህ ተንኮለኛ እና በጣም የነርቭ መበላሸት ሊሆን ይችላል ፣ ምክንያቱም የመዝለያው ራስጌዎች በቦታው ላይ ስላልተጣበቁ ፣ ሁሉንም በአንድ ላይ ወይም በአንድ ጊዜ ሁሉንም በቦርዱ ላይ መለጠፍ ይፈልጉ ይሆናል። በቼዝ ሰሌዳው ላይ ተጣብቀው መቆየታቸውን ማረጋገጥ አለብዎት ፣ አለበለዚያ ዳሳሾቹን በተሳካ ሁኔታ ማንበብ አይችሉም

    ጠቃሚ ምክር! ለእርስዎ ቀላል የሚያደርግዎት ከሆነ ፣ አንዳንድ ማጣበቂያ በሚነኩበት ጊዜ ዳሳሾችን በቦታው ለማቆየት በእርግጥ ሊረዳ ይችላል ፣ ይህንን ከባድ መንገድ አገኘሁት።

ደረጃ 5: ሶፍትዌር

ሶፍትዌር
ሶፍትዌር

እርስዎ ሊሞክሩት የሚችሉት ሃርድዌር ከሠሩ በኋላ ፣ ለእሱ የተወሰነ ኮድ ለመጻፍ እንሞክር! የእኔን ኮድ ለመመልከት ከፈለጉ እባክዎን ወደ የእኔ ጊቱብ ይሂዱ።

ለመጫን በመጀመሪያ ሁለት ፓኬጆችን እንፈልጋለን ፣ ቀጠልኩ እና ለእርስዎ ዝርዝር አዘጋጅቻለሁ-

  • ብልቃጥ

    የእርስዎ የፓይዘን ኮድ የሚሠራበት ይህ ነው

  • Flask-socketIO

    በፊት-መጨረሻ እና በጀርባ-መጨረሻ መካከል ለመግባባት

  • ደነዘዘ

    የብርሃን ዳሳሾችን ለማንበብ ይጠቅማል ፣ ከማትሪክስ ጋር ይሠራል

  • netifaces

    በ 7 ክፍል ማሳያ ላይ የራስዎን የአይፒ አድራሻ ለማተም

  • Flask-CORS

    ተሻጋሪ አመጣጥ መልሶ ማጋራት ፣ ጥቅሎች በተለያዩ ጎራዎች ላይ እንዲጋሩ ይፈቅዳል።

ከዚያ ቀጥሎ ፣ ሁለት ክፍሎችን ጽፌያለሁ እና እነሱን ለመጠቀም ነፃ ነዎት።

የፊት-መጨረሻ

የድር ጣቢያው ኮድ በእኔ github ገጽ ላይም ይገኛል!

ለፊት-መጨረሻ እኔ Chessboard.js ን እጠቀማለሁ። ይህ በቀላሉ ሊንቀሳቀሱ ከሚችሉ ቁርጥራጮች ጋር ለአጠቃቀም ቀላል የሆነ የቼዝ ሰሌዳ ያስገባል!

በቦርዱ ላይ ያለው ሁሉም ነገር ሊበጅ የሚችል ነው ስለዚህ ይደሰቱ! የቅርብ ጊዜውን ስሪት ካወረዱ በኋላ ፋይሎቹን ወደ ፕሮጀክትዎ መጎተት እና የቼዝ ሰሌዳ ለማሳየት ከሚፈልጉት ገጽ ጋር ማገናኘት ይኖርብዎታል!

ከዚያ በኋላ ሰሌዳ ለመፍጠር እንሞክር ፣ በጣም ከባድ አይመስልም

በመጀመሪያ ፣ በእርስዎ html ውስጥ ፦

ሁለተኛ ፣ በጃቫስክሪፕት ፋይልዎ ውስጥ-

board1 = ChessBoard ('board1', 'start');

እና እዚያ አለዎት ፣ አሁን የቼዝ ሰሌዳ ማየት መቻል አለብዎት! በሲኤስኤስ ፋይሎች ውስጥ ሰሌዳውን ለማበጀት ነፃነት ይሰማዎ!

አሁን ፣ በቼዝቦርዱ ላይ አንዳንድ እንቅስቃሴዎችን ማየት እንፈልጋለን ፣ በጣም ከባድ አይደለም። ነገር ግን የእንቅስቃሴ ትዕዛዙ በጀርባው መጨረሻ እንዲላክ እሱን ማበጀት አለብን። በጣም ብዙ ዝርዝር ውስጥ አልገባም ፣ ግን እኛ እንደዚህ ያለ ነገር ማድረግ እንፈልጋለን-

new_lijst = [Data.data [0], Data.data [1]; commando = new_lijst [0].concat ('-', new_lijst [1]); 1. ማንቀሳቀስ (ኮማንዶ);

ከጀርባ-መጨረሻ ፕሮግራማችን ዝርዝር እንቀበላለን ፣ እና በሁለቱ መጋጠሚያዎች መካከል ሰረዝን እናስቀምጣለን ፣ ከዚያ እርምጃውን ለማስፈጸም የቦርድ.ሞቭ ትዕዛዙን ይጠቀሙ!

የ chessboard.js ተሰኪው የሚያስፈልገንን የእኔ ማብራሪያ ይህ ነው ፣ ኮዱን እራስዎ ለመመልከት ወደ github ይሂዱ።

የሚመከር: