ዝርዝር ሁኔታ:

በ LEGO እና Raspberry Pi የተሰራ የቼዝ ሮቦት 6 ደረጃዎች
በ LEGO እና Raspberry Pi የተሰራ የቼዝ ሮቦት 6 ደረጃዎች

ቪዲዮ: በ LEGO እና Raspberry Pi የተሰራ የቼዝ ሮቦት 6 ደረጃዎች

ቪዲዮ: በ LEGO እና Raspberry Pi የተሰራ የቼዝ ሮቦት 6 ደረጃዎች
ቪዲዮ: BTT Manta M8P v2 - CM4 with Fluidd Pi 2024, ሀምሌ
Anonim
Image
Image

በዚህ የቼዝ ሮቦት ጓደኞችዎን ያስደንቁ!

ከዚህ በፊት የ LEGO ሮቦቶችን ከሠሩ እና ቢያንስ የኮምፒተር ፕሮግራሚንግ እና ሊኑክስ የመጀመሪያ ደረጃ ዕውቀት ካሎት ለመገንባት በጣም ከባድ አይደለም።

ሮቦቱ የራሱን እንቅስቃሴ ያደርጋል ፣ እና የሰው ተጫዋች እንቅስቃሴን ለመወሰን የእይታ እውቅና ይጠቀማል።

በዚህ ሮቦት ውስጥ ካሉ ልብ ወለድ ነገሮች አንዱ ለመንቀሳቀስ እውቅና ኮድ ነው። ይህ የእይታ ኮድ በሌሎች በብዙ መንገዶች ለተገነቡ ቼዝ ሮቦቶችም ያገለግላል (እንደ የእኔ ቼዝ ሮቦት እንደ ሊንክስሞቢቲ ሮቦት ክንድ በመጠቀም)።

ምንም ልዩ የቼዝ ሰሌዳ ፣ የሸምበቆ መቀየሪያዎች ወይም የሚፈለጉት (የሰው ልጅ እንቅስቃሴ በእይታ እውቅና የሚወሰን በመሆኑ)።

የእኔ ኮድ ለግል ጥቅም ይገኛል።

ደረጃ 1: መስፈርቶች

መብራቶች ፣ ካሜራ ፣ እርምጃ!
መብራቶች ፣ ካሜራ ፣ እርምጃ!

ሁሉም ኮዱ በ Python ውስጥ የተፃፈ ሲሆን ይህም ከሌሎች ነገሮች መካከል “Raspberry Pi” ላይ ይሠራል።

Raspberry Pi በማያ ገጽ እና በቁልፍ ሰሌዳ ላይ ሊሰካ የሚችል የብድር ካርድ መጠን ያለው ኮምፒተር ነው። እሱ ርካሽ (በ 40 ዶላር አካባቢ) ፣ በኤሌክትሮኒክስ ፕሮጄክቶች እና ሮቦቶች ውስጥ እና ለዴስክቶፕ ፒሲዎ ለሚያደርጋቸው ብዙ ነገሮች ሊያገለግል የሚችል አቅም ያለው ትንሽ ኮምፒተር ነው።

የእኔ ሮቦት Raspberry Pi እና Lego ን ይጠቀማል። በ RPi እና በ Lego Mindstorms EV3 ሞተሮች እና ዳሳሾች መካከል ያለው የሃርድዌር በይነገጽ በዴክስተር ኢንዱስትሪዎች በ BrickPi3 ይሰጣል።

የሌጎ ግንባታ በ ‹ቻርሊ ቼዝ ሮቦት› ላይ የተመሠረተ ፣ በዳርዮስ ሃዲ ፣ በእኔ የተቀየረ ፣ ከሊጎ ማይንድስትርሞም ፕሮሰሰር ይልቅ ፣ አርፒፒ ለመጠቀም ሞዲዎችን ጨምሮ። Lego Mindstorms EV3 ሞተሮች እና ዳሳሾች ጥቅም ላይ ይውላሉ።

እንዲሁም ጠረጴዛ ፣ ካሜራ ፣ መብራት ፣ የቁልፍ ሰሌዳ ፣ ማያ እና ጠቋሚ መሣሪያ (ለምሳሌ መዳፊት) ያስፈልግዎታል።

እና በእርግጥ ፣ የቼዝ ቁርጥራጮች እና ሰሌዳ።

በሚቀጥሉት ደረጃዎች እነዚህን ሁሉ ነገሮች በዝርዝር እገልጻለሁ።

ደረጃ 2 የሃርድዌር ግንባታ

Image
Image

ቀደም ሲል እንደጠቆምኩት ፣ የእይታ ኮድ ልብ ከተለያዩ ግንባታዎች ጋር ይሠራል።

እኔ ሮቦቴን በ “ቻርሊ ቼዝ ሮቦት” (ኢቪ 3 ስሪት) በዳርዮስ ሃዲ ላይ መሠረት አድርጌያለሁ ፣ በዚያ ገጽ ላይ ያለው መረጃ የግንባታ መመሪያዎችን እንዴት ማግኘት እንደሚቻል ይናገራል። የክፍሎቹ ዝርዝር እዚህ አለ።

ሮቦቱን በሁለት መንገዶች ቀይሬዋለሁ።

1. ነጣቂው። ይህ ለእኔ አልሰራም። ማርሾቹ ተንሸራተቱ ፣ ስለዚህ ያንን ለመከላከል ተጨማሪ የሌጎ ቁርጥራጮችን ጨመርኩ። እና ከዚያ ክሬኑ ሲወርድ ብዙውን ጊዜ ይጨናነቃል ፣ ስለዚህ ያንን ለመከላከል የ Watt ትስስር ጨመርኩ።

ከላይ የተሻሻለው ትስስርን የሚያሳየው ጠላፊው በተግባር ላይ ነው።

2. የመጀመሪያው ግንባታ ሌጎ Mindstorms EV3 አንጎለ ኮምፒውተርን ይጠቀማል ፣ ግን እኔ ፓስቲን ለመጠቀም ቀላል የሚያደርገውን Raspberry Pi እጠቀማለሁ።

3. Raspberry Pi 3 ሞዴል ቢ እጠቀማለሁ።

4. RPi ን ወደ ሌጎ ለማቀናጀት BrickPi3 ን ከዴክስተር ኢንዱስትሪዎች እጠቀማለሁ። BrickPi ከ Raspberry Pi ጋር ተጣብቆ አብረው የ LEGO Mindstorms NXT ወይም EV3 ጡብን ይተካሉ።

የሊጎ ዲጂታል ዲዛይነር ፋይል ሲኖርዎት የ LEGO ቁርጥራጮችን የማግኘት ጥያቄ አለ። ከ LEGO ሱቅ በቀጥታ ጡቦችን ማግኘት ይችላሉ ፣ እና እነሱን ለማግኘት ይህ በጣም ርካሹ መንገድ ነው። ሆኖም ፣ እርስዎ የሚያስፈልጉዎት ነገር ሁሉ አይኖራቸውም ፣ እና ጡቦቹ ለመድረስ ሁለት ሳምንታት ወይም ከዚያ በላይ ሊወስዱ ይችላሉ።

እንዲሁም እንደገና ሊሠራ የሚችል መጠቀም ይችላሉ -መለያ ይክፈቱ ፣ የኤልዲዲ ፋይልን ይስቀሉ እና ከዚያ የሻጮችን ዝርዝር ያግኙ።

ሌላው ጥሩ ምንጭ Bricklink ነው።

ደረጃ 3 ሮቦት እንዲንቀሳቀስ የሚያደርግ ሶፍትዌር

ሁሉም ኮድ በ Python 2 ውስጥ ተጽ isል።

  1. ዴክስተር ኢንዱስትሪዎች የ EV3 ሞተሮችን ፣ ወዘተ ለማንቀሳቀስ የሚረዳ ኮድ ይሰጣሉ ይህ ከ BrickPi3 ጋር ይመጣል።
  2. የቼዝ ቁርጥራጮችን በሚያንቀሳቅሱበት መንገድ ሞተሮቹ እንዲንቀሳቀሱ ለማድረግ ኮዱን አቀርባለሁ!
  3. የቼዝ ሞተር ስቶፊሽ ነው - ማንኛውንም ሰው ሊመታ ይችላል! "ስቶፊሽፊሽ በዓለም ላይ ካሉ በጣም ጠንካራ ከሆኑ የቼዝ ሞተሮች አንዱ ነው። በተጨማሪም ከምርጥ የሰው ልጅ የቼዝ አያቶች የበለጠ ጠንካራ ነው።"
  4. የቼዝ ሞተሩን ለማሽከርከር ፣ መንቀሳቀሱ ትክክለኛ መሆኑን የሚያረጋግጥ ኮድ ፣ እና እንዲሁ ChessBoard.py ነው
  5. ከዚያ ጋር ለመገናኘት ከ https://chess.fortherapy.co.uk የተወሰነ ኮድ እጠቀማለሁ።
  6. የእኔ ኮድ (ከላይ ባለው 2 ውስጥ) ከዚያ ከዚያ ጋር ይገናኛል!

ደረጃ 4 - የሰው ልጅ እንቅስቃሴን ለመለየት ሶፍትዌሩ

ተጫዋቹ እንቅስቃሴውን ካደረገ በኋላ ካሜራው ፎቶ ይነሳል። የቼዝ ሰሌዳው ከተከታዩ ምስል ጋር በትክክል እንዲስማማ ኮዱ ያመርታል እና ያሽከረክራል። የቼዝቦርዱ አደባባዮች ካሬ መመልከት አለባቸው! የቦርዱ ጠርዞች ከካሜራው የበለጠ ከካሜራው ስለሚርቁ በምስሉ ውስጥ ማዛባት አለ። ሆኖም ፣ ካሜራው በጣም ሩቅ ነው ፣ ስለሆነም ከሰብል በኋላ ይህ ማዛባት ጉልህ አይደለም። ሮቦቱ ኮምፒዩተሩ ከተንቀሳቀሰ በኋላ ሁሉም ቁርጥራጮች የት እንዳሉ ስለሚያውቅ ፣ የሰው ልጅ ከተንቀሳቀሰ በኋላ መደረግ ያለበት ነገር ኮዱ በሚከተሉት ሶስት ጉዳዮች መካከል ያለውን ልዩነት መለየት መቻል ነው።

  • ባዶ ካሬ
  • ከማንኛውም ዓይነት ጥቁር ቁራጭ
  • ከማንኛውም ዓይነት ነጭ ቁራጭ።

ይህ ሁሉንም ጉዳዮች ይሸፍናል ፣ ካስቲንግን እና ተጓዥን ጨምሮ።

ሮቦቱ የሰውዬው እንቅስቃሴ ትክክል መሆኑን ይፈትሻል ፣ ካልሆነም ያሳውቃቸዋል! ያልተሸፈነው ብቸኛው ጉዳይ የሰው ልጅ ተጫዋች ንግሥቲቷን ባልሆነችበት ቦታ ላይ የሚያስተዋውቅበት ነው። ተጫዋቹ ከዚያ የተሻሻለው ቁራጭ ምን እንደሆነ ለሮቦቱ መንገር አለበት።

አሁን ከቼዝቦርድ አደባባዮች አንፃር ምስሉን ግምት ውስጥ ማስገባት እንችላለን።

በመነሻ ሰሌዳ ዝግጅት ላይ ሁሉም ነጭ እና ጥቁር ቁርጥራጮች የት እንዳሉ እና ባዶ አደባባዮች የት እንዳሉ እናውቃለን።

ባዶ አደባባዮች ከተያዙት አደባባዮች በጣም ያነሰ የቀለም ልዩነት አላቸው። በሁሉም ፒክሰሎች (ከካሬው ወሰን አቅራቢያ ከሚገኙት በስተቀር) ለእያንዳንዱ ካሬ ለእያንዳንዱ የ RGB ቀለሞች ለእያንዳንዱ ሦስት ደረጃውን የጠበቀ መዛባት እናሰላለን። ለማንኛውም ባዶ ካሬ ከፍተኛው መደበኛ መዛባት ለማንኛውም የተያዘ ካሬ ከዝቅተኛው መደበኛ መዛባት በጣም ያነሰ ነው ፣ እና ይህ የትኛውን አደባባይ ባዶ እንደሆነ ለመወሰን ከተጫዋች መንቀሳቀስ በኋላ ያስችለናል።

ለባዶ እና ለተያዙ ካሬዎች የመድረሻውን እሴት ከወሰንን ፣ አሁን ለተያዙት አደባባዮች የቁራጭ ቀለሙን መወሰን አለብን -

በመነሻ ሰሌዳው ላይ ለእያንዳንዱ ነጭ ካሬ ፣ ለእያንዳንዱ R ፣ G ፣ B ፣ የፒክሰሎች አማካይ (አማካይ) ዋጋ (ከካሬው ድንበሮች አቅራቢያ ከሚገኙት በስተቀር) እናሰላለን። ለማንኛውም የነጭ አደባባይ የእነዚህ አነስተኛው መጠን በማንኛውም ጥቁር ካሬ ላይ ካለው ከፍተኛው ይበልጣል ፣ እና ስለዚህ ለተያዙት አደባባዮች የቁራጭ ቀለሙን መወሰን እንችላለን። ቀደም ሲል እንደተገለፀው ፣ የሰው ልጅ ተጫዋች እንቅስቃሴ ምን እንደ ሆነ ለማወቅ እኛ ማድረግ ያለብን ይህ ብቻ ነው።

የቼዝ ሰሌዳው ከቁራጮቹ ቀለም ርቆ የሚገኝ ቀለም ካለው ስልተ ቀመሮቹ በተሻለ ሁኔታ ይሰራሉ! በእኔ ሮቦት ውስጥ ቁርጥራጮቹ ነጭ እና ቡናማ ናቸው ፣ እና የቼዝ ሰሌዳው በካርድ በእጅ የተሠራ ነው ፣ እና በ “ጥቁር” እና “ነጭ” አደባባዮች መካከል ትንሽ ልዩነት ያለው ቀለል ያለ አረንጓዴ ነው።

አርትዕ 17 ኦክቶ 2018: አሁን ቡናማ ቁርጥራጮቹን በጥቁር ቀለም ቀባሁ ፣ ይህም አልጎሪዝም የበለጠ በተለዋዋጭ የብርሃን ሁኔታዎች ስር እንዲሠራ ያደርገዋል።

ደረጃ 5 መብራቶች ፣ ካሜራ ፣ እርምጃ

መብራቶች

በቦርዱ ላይ የተስተካከለ የብርሃን ምንጭ ያስፈልግዎታል። እኔ በእውነት ይህንን ርካሽ እጠቀማለሁ ፣ ከ amazon.co.uk - እና በ amazon.com ላይ ተመሳሳይ የሆነ ነገር እንዳለ ጥርጥር የለውም። ከክፍሉ መብራቶች ጋር ተዘግቷል።

አዘምን - የበለጠ የበለጠ የብርሃን ምንጭ ለመስጠት አሁን ሁለት መብራቶች አሉኝ

ካሜራ

ልዩ የ Raspberry Pi ካሜራ ሞዱሉን (ከረጅም ገመድ ጋር) መጠቀም እንደሚችሉ ምንም ጥርጥር የለውም ፣ ግን እኔ የዩኤስቢ ካሜራ እጠቀማለሁ - “ሎጌቴች 960-001064 C525 ኤችዲ ድር ካሜራ - ጥቁር” - ከ RPi ጋር ይሰራል። ማማ በመገንባት ወይም በጥብቅ የሚያስተካክለው ቦታ በመያዙ ካሜራው ከቦርዱ ጋር የማይንቀሳቀስ መሆኑን ማረጋገጥ ያስፈልግዎታል። የጂኦሜትሪክ መዛባትን ለመቀነስ ካሜራው ከቦርዱ በላይ ከፍ ያለ መሆን አለበት። ከቦርዱ 58 ሴ.ሜ በላይ ካሜራዬ አለኝ።

አዘምን - እኔ የበለጠ አስተማማኝ ሆኖ ስላገኘሁት አሁን የ HP ዌብካም HD 2300 ን እመርጣለሁ።

ሠንጠረዥ

ጠንካራ ያስፈልግዎታል። ይህንን ገዛሁ። በዚያ ላይ ሮቦቱ በሚንቀሳቀስበት ጊዜ ሮቦቱን መዝለሉን ለማቆም አንዳንድ ነገሮች ያሉት ኤምዲኤፍ ካሬ አለኝ። ካሜራውን በተመሳሳይ ቦታ በቦርዱ ላይ ማስቀመጥ ጥሩ ሀሳብ ነው!

የቁልፍ ሰሌዳ

RPi ለመጀመሪያው ቅንብር የዩኤስቢ ቁልፍ ሰሌዳ ይፈልጋል። እና እኔ ኮዱን ለማዳበር እጠቀማለሁ። ሮቦቱ የቁልፍ ሰሌዳ የሚያስፈልገው ብቸኛው ነገር ፕሮግራሙን መጀመር እና የቼዝ ሰዓቱን መምታት ማስመሰል ነው። ከእነዚህ ውስጥ አንዱን አግኝቻለሁ። ግን በእውነቱ ፣ ከ RPi ጋር የተገናኘ አይጤ ወይም አዝራር GPIO ብቻ ያስፈልግዎታል

ማሳያ

እኔ ለእድገት ትልቅ ማያ ገጽ እጠቀማለሁ ፣ ግን ሮቦቱ የሚያስፈልገው ብቸኛው ነገር መንቀሳቀስዎ ልክ ያልሆነ መሆኑን ፣ ማረጋገጥ ፣ ወዘተ የመሳሰሉትን መንገር ነው። ከእነዚህ ውስጥ አንዱን አግኝቻለሁ ፣ እንዲሁም በ amazon.com ላይም ይገኛል።

ግን ማሳያ ከመጠየቅ ይልቅ ሮቦቱ እነዚህን ሀረጎች ይናገራል! እዚህ የተገለፀውን ኮድ በመጠቀም ጽሑፍን ወደ ንግግር በመለወጥ እና ትንሽ ተናጋሪ በማያያዝ ይህንን አደረግሁ። (“ሀምበርገር ሚኒ ተናጋሪ” እጠቀማለሁ)።

ሮቦቱ እንዲህ ይላል -

  • ይፈትሹ!
  • አመልካች
  • ልክ ያልሆነ እንቅስቃሴ
  • አሸንፈዋል!
  • አቆራረጥ
  • በሦስት እጥፍ ድግግሞሽ ይሳሉ
  • በ 50 እንቅስቃሴዎች ደንብ ይሳሉ

በቼዝ ውስጥ ያለው የሃምሳ-እርምጃ ደንብ አንድ ተጫዋች እስካልተያዘ ድረስ እና በመጨረሻው ሃምሳ እንቅስቃሴ ካልተንቀሳቀሰ አንድ ተጫዋች ዕጣ ሊጠይቅ ይችላል (ለዚህ ዓላማ “መንቀሳቀስ”) ተራቸውን ማጠናቀቁን ተከትሎ ተጫዋቹን ያካትታል። ተቃዋሚዎች ተራቸውን ሲያጠናቅቁ)።

ከላይ ባለው አጭር “የሞኝ ጓደኛ” ቪዲዮ ውስጥ ሮቦቱ ሲናገር መስማት ይችላሉ (ድምጽዎን ከፍ ካደረጉ)!

ደረጃ 6 - ሶፍትዌሩን እንዴት ማግኘት እንደሚቻል

1. የአሳማ ዓሣ

Raspbian ን በእርስዎ RPi ላይ ካሄዱ የአክሲዮን ዓሳ 7 ሞተርን መጠቀም ይችላሉ - ነፃ ነው። ብቻ አሂድ ፦

sudo apt-get install stockfishfish

2. ChessBoard.py

ይህንን እዚህ ያግኙ።

3. ኮድ

ከእኔ ኮድ ጋር ይመጣል።

4. የ Python ነጂዎች ለ BrickPi3

እነዚህን እዚህ ያግኙ።

5. ከላይ ያለውን ሁሉንም ኮድ የሚጠራው እና ሮቦቶችን እንቅስቃሴዎችን እንዲያደርግ የሚያደርገውን የእኔ ኮድ እና የእይታ ኮድዬ።

አስተያየት በመለጠፍ ይህን ከእኔ ያግኙ ፣ እና እኔ መልስ እሰጣለሁ።

የሚመከር: