ዝርዝር ሁኔታ:

የ LED ስትሪፕ Atari Pong Arcade Machine: 8 ደረጃዎች
የ LED ስትሪፕ Atari Pong Arcade Machine: 8 ደረጃዎች

ቪዲዮ: የ LED ስትሪፕ Atari Pong Arcade Machine: 8 ደረጃዎች

ቪዲዮ: የ LED ስትሪፕ Atari Pong Arcade Machine: 8 ደረጃዎች
ቪዲዮ: MSC Seascape Full Ship Tour Tips Tricks & Review New Flagship Vista Megaship Project Italy 2024, ሀምሌ
Anonim
LED ስትሪፕ Atari Pong Arcade ማሽን
LED ስትሪፕ Atari Pong Arcade ማሽን

ስሜ ገብርኤል ፖዴቪን ነው እናም ይህ የእኔ የመጀመሪያ የማይነቃነቅ ነው። እኔ በጣም ፍላጎት ያለው ኤሌክትሮኒክስ ፣ ሮቦቲክስ ፣ ወረዳ እና መርሃ ግብር ሳለሁ ነገሮችን መፍጠር እና መገንባት የምወድ የ 16 ዓመት የሁለተኛ ደረጃ ተማሪ ነኝ። ይህንን ሊረዳ የማይችል ይህንን ጠቃሚ ሆኖ እንደሚያገኙት ተስፋ አደርጋለሁ።

በዚህ አስተማሪ ውስጥ በሬትሮ የመጫወቻ ሳጥን ውስጥ የሬትሮ ዘይቤን የአታሪ ፓንግ ጨዋታ እንዴት እንደሚሠሩ አሳያችኋለሁ። ለፕሮጀክቱ ማሳያ ከላይ ያለውን ቪዲዮ ማየት ይችላሉ ፣ እንዲሁም የተጠናቀቀውን ፕሮጀክት እና ጉዳዩን ብቻውን እና በሁለት ስዕሎች ውስጥ ማየት ይችላሉ። በዚህ የማይበሰብስ መጨረሻ ላይ ወደ ኮዱ ጠልቄ እገባለሁ እና ግላዊነትን ለማላበስ እንዴት ማርትዕ እንደሚቻል።

የመሠረታዊው ክፍል ዝርዝር በክፍሎቹ ውስጥ ይከፈላል -መሣሪያዎች ፣ የመሰብሰቢያ ክፍሎች እና አካላት

የሚያስፈልጉዎት መሳሪያዎች የሚከተሉትን ያካትታሉ:

- ቁፋሮ

- ብረት ማጠጫ

- ሾፌር ሾፌር (ለመጠቀም ከወሰኑት ብሎኖች ጋር ይዛመዳል)

- ባለብዙ ሜትር

- የሚሽከረከር መጋዝ ፣ የባንድ መጋዝ ወይም የሌዘር መቁረጫ የአንዱ መዳረሻ አለዎት

-መቁረጫ ወይም መቀስ

- ሙጫ ጠመንጃ

ለመሰብሰብ የሚያስፈልጉዎት ክፍሎች ይካተታሉ

- የእንጨት ማጣበቂያ

- 10 አንድ ኢንች በአንድ ኢንች ብሎኮች እንጨት

- ትልቅ ሉህ ሩብ ኢንች የሚጣፍ እንጨት ወይም የምርጫ እንጨት

- 24 ብሎኖች በግማሽ ኢንች ርዝመት

- 14 x 6.5 ኢንች ሊድ የተሰራጨ ፕላስቲክ (አማራጭ)

- ቀይ እና ሰማያዊ የኤሌክትሪክ ቴፕ

የሚፈልጓቸው ክፍሎች የሚከተሉት ናቸው

- 2 100k ohm potentiometers

- 8 ሜትር በተናጥል ሊደረስበት የሚችል የሊድ ሌፕ (በአንድ ሜትር 30 ሊድስ)

www.amazon.

- በርካታ ሜትሮች ሽቦ ወይም በርካታ የሽቦ ቀለሞች

- 6V በበርሜል መሰኪያ መሰኪያ በኩል የሚያወጣ የኤሲ ወደ ዲሲ የኃይል አስማሚ

- 1 arduino Uno R3

እንደ እኔ አርዱዲኖ ዩኖ R3 መዳረሻ ከሌለዎት በዚህ ፕሮጀክት ውስጥ የምጠቀምበትን አንድ መገንባት ይችላሉ atmel328-pu አንጎለ ኮምፒውተር። የራስዎን እንዴት እንደሚገነቡ ለማወቅ ይህንን አገናኝ ይከተሉ

አርዱዲኖ ዩኒዎን የሚጠቀሙ ከሆነ ወደ አንድ ደረጃ ይቀጥሉ።

ደረጃ 1 የ LED ድርድርን መገንባት

የ LED ድርድርን መገንባት
የ LED ድርድርን መገንባት
የ LED ድርድርን መገንባት
የ LED ድርድርን መገንባት
የ LED ድርድርን መገንባት
የ LED ድርድርን መገንባት

እርስዎ ማድረግ ያለብዎት በሁሉም የሽያጭ ዕቃዎች ምክንያት ይህ እርምጃ በጣም ቀላሉ ጊዜ የሚወስድ እርምጃ ነው።

-ለመጀመር 10 3/4 ኢንች በ 6 1/2 ኢንች እንጨት ያስፈልግዎታል።

-አንዴ የእንጨት ቁራጭዎ ካለዎት ፣ የሊድ ስትሪፕዎን ይያዙ እና በየ 10 መሪዎቹ ወይም በየ 6 1/2 ኢንች 26 ክፍል ይቁረጡ።

-ከዚህ በኋላ ክፍሎቹን ከቆረጡ በኋላ ከላይ በመጀመሪያው ሥዕል ላይ በሚታዩት ሥዕሎች ውስጥ ልክ እንደ ማሳያ በአቀባዊ ከእንጨትዎ ጋር ያያይ glueቸው።

-አንዴ ቁርጥራጮቹን ከጣበቁ በኋላ እንዲፈቅዱላቸው ከፈቀዱ መሸጥ እንጀምራለን።

-ሶስት የተለያዩ ባለቀለም ሽቦ ያስፈልግዎታል

-እሱ ከአንድ ሽቦ ጋር በሚገናኙ ሁሉም አዎንታዊ ጎኖች እና ከአንድ ሽቦ ጋር በሚገናኙ ሁሉም አሉታዊ ጎኖች መያያዝ አለበት ፣ እና የመጨረሻው ሽቦ መሪዎቹን ሰቆች አንድ ላይ ያገናኛል። በዚህ ደረጃ መጀመሪያ ላይ ያሉት ሁለተኛው ሥዕሎች ሽቦዎችን እንዴት ማገናኘት እንደሚችሉ የሚያሳይ ሥዕል ነው።

-በመጨረሻ ከሸጧቸው በኋላ በቀላሉ በተገጣጠሙ ቀለሞች ላይ በሻጭ ግንኙነቶችዎ ላይ የኤሌክትሪክ ንጣፎችን ይሸፍኑ። ከላይ በሦስተኛው ሥዕል ላይ እንደሚታየው።

-በቅርቡ እኛ ከአርዲኖ ጋር እንገናኛለን። የእርስዎ ዲጂታል ግብዓት ወይም የመካከለኛ ሽቦዎ ዲጂታል ግብዓት 6 ፒን ከእርስዎ ጋር ይገናኛል እና መሬትዎ እና አዎንታዊ በቦርዱ ላይ ካሉ አዎንታዊ እና አሉታዊ ሀዲዶች ጋር ይገናኛል።

ደረጃ 2 - ቀዘፋ መቆጣጠሪያዎች

ቀዘፋ መቆጣጠሪያዎች
ቀዘፋ መቆጣጠሪያዎች
ቀዘፋ መቆጣጠሪያዎች
ቀዘፋ መቆጣጠሪያዎች
ቀዘፋ መቆጣጠሪያዎች
ቀዘፋ መቆጣጠሪያዎች

ለዚህ በጣም ቀላል እርምጃ እርስዎ ማድረግ ያለብዎት ለእያንዳንዱ ፖታቲሞሜትር ሶስት ሽቦዎችን መሸጥ ነው። potentiometer ን ከሽያጭ ነጥቦቹ ከፊትዎ ከፊትዎ ከያዙ የግራ አቅጣጫው አዎንታዊ ይሆናል የመሃል ማዕከሉ መውጣቱ እና ትክክለኛው ዘንግ መሬት ይሆናል። ከላይ በስዕሉ ላይ እንደሚታየው

አንዴ ሽቦዎቹን ከሸጡ በኋላ ከአርዲኖ ጋር እናገናኛቸዋለን። እርስዎ ሊሆኑ የሚችሉ እና አሉታዊ ነገሮች ተዛማጅ አዎንታዊ እና አሉታዊ ዝናቦችን እዚያ ይገናኛሉ። በ potentiometers ላይ ሽቦዎችን ያወጡታል በአርዱዲኖ ላይ ከተለያዩ ግብዓቶች ጋር ይገናኛሉ። አንደኛው ከ (A0) መሰኪያ ጋር ይገናኛል እና ሁለተኛው ከ (A1) መሰኪያ ጋር ይገናኛል።

ደረጃ 3 - መያዣውን መቁረጥ

መያዣውን መቁረጥ
መያዣውን መቁረጥ
መያዣውን መቁረጥ
መያዣውን መቁረጥ
መያዣውን መቁረጥ
መያዣውን መቁረጥ
መያዣውን መቁረጥ
መያዣውን መቁረጥ

ይህ ክፍል ለመቁረጥ በሚፈልጉት ላይ ልኬቶችን እና ማዕዘኖችን ይሰጥዎታል

**** በጣም አስፈላጊ ***** እንጨትዎ ሩብ ኢንች ውፍረት (1/4 ኢንች) መሆኑን ያረጋግጡ

እንዲሁም ክፍሎችን በሚቆርጡበት ጊዜ ክፍሎችዎን መሰየምን ያስታውሱ

ለመቁረጥ መሠረታዊው ክፍል የታችኛው ፣ የኋላ ፣ የላይኛው ፣ የፊት የላይኛው ፣ የፊት የታችኛው…. መጀመሪያ ላይ በስዕሎች ውስጥ ይታያል

ክፍል ልኬቶች

- ታች - 13 3/4 ኢንች X 10 1/4 ኢንች

- ተመለስ - 13 3/4 ኢንች X 15 1/2 ኢንች

- ከላይ - 13 3/4 ኢንች X 6 1/2 ኢንች

- የፊት ታች - 13 3/4 ኢንች X 4 1/4 ኢንች

- የመደወያ ፓነል 13 3/4 ኢንች X 6 ኢንች

- የውስጥ አናት - 13 3/4 ኢንች X 3 1/4 ኢንች

- የ LED ጎን: 6 1/4 ኢንች X 1 ኢንች (ከእነዚህ ውስጥ ሁለቱን ይቁረጡ)

- የ LED ውስጣዊ ታች - 13 1/4 ኢንች X 4 1/2 ኢንች

- ውስጣዊ የኋላ LED ፓነል - 13 1/4 ኢንች X 9 ኢንች

- ብሎኮች - 1 ኢንች X 1 ኢንች X 1 ኢንች (10 ብሎኮችን ይቁረጡ)

- አክሬሊክስ ፓነል 13 3/4 ኢንች X 6 1/2 ኢንች

ከላይ ያሉት ሥዕሎች የጎን ፓነል ክፍሎቹን ማዕዘኖች እና መጠኖች ያሳዩዎታል። እንዲሁም የዚህን ክፍል ሁለቱን መቁረጥ ያስፈልግዎታል

ደረጃ 4 የጉዳይ ስብሰባ

የጉዳይ ስብሰባ
የጉዳይ ስብሰባ
የጉዳይ ስብሰባ
የጉዳይ ስብሰባ
የጉዳይ ስብሰባ
የጉዳይ ስብሰባ

በእነዚህ መመሪያዎች ውስጥ በዚህ ነጥብ ላይ ሁሉንም ነገር ለማጠናቀቅ ተቃርበዋል። ምናልባት እነዚህ ሁሉ ክፍሎች እና ቁርጥራጮች አሉኝ ብለው ያስቡ። ከእነሱ ጋር ምን አደርጋለሁ? ይህ የመጨረሻ ደረጃ ጉዳይዎን እንዴት እንደሚሰበሰቡ ያስተምረዎታል።

-እኛ የምንሄደው የመጀመሪያው ነገር ጉዳዩን መሰብሰብ መጀመር ነው። ከቀዳሚው ደረጃ ከእንጨት የተቆረጡ ሁሉም የሚረዱት እዚህ ነው።

-ስብሰባውን ለመጀመር ከእንጨት 1x1x1 ብሎኮች 4 ፣ ሁለቱ የጎን መከለያዎች ፣ የኋላ እና የፊት የታችኛው ክፍል 4 እንፈልጋለን። በደረጃው ልመና ላይ በሁለተኛው ሥዕል ላይ እንደሚታየው 4 ብሎኮችን ከታች በእያንዳንዱ ጥግ ላይ ያስቀምጡ እና በሩብ እና በማገጃው መካከል አንድ አራተኛ ኢንች ይተው።

-በመቀጠል ከእንጨት እና ከእቃዎቹ በኩል የተወሰኑ የሙከራ ቀዳዳዎችን መቆፈር ያስፈልግዎታል። አንዴ ያንን ብልጭታ ከጨረሱ በኋላ ወደ ታች።

-በመቀጠልም የጎን መከለያዎችን እናስቀምጣለን። በማገጃው ውጭ ባለው ጎን በሩብ ኢንች ክፍተት ላይ ፓነሎችን ያስቀምጡ። በጎን ፓነል እና በእንጨት ማገጃው በኩል አብራሪ ጉድጓድ ቆፍረው ፓነሎቹን ወደ ውስጥ ያስገቡ። ለሌላኛው ወገን ይድገሙት።

-የጎን ፓነሎችን ከጨረሱ በኋላ። የፊት የታችኛውን ፓነል እናስቀምጣለን። መከለያውን ከግርጌው ጋር ያጥፉት እና ጎኖቹን የሙከራ ቀዳዳዎቹን ወደ ብሎኮች ውስጥ ይከርክሙ እና ፓነሉን ያሽጉ።

-በመጨረሻ እኛ ጀርባውን እናስገባለን። ከፊት የታችኛው ፓነል ጋር እንዳደረጉት ተመሳሳይ ያድርጉ እና ወደ ውስጥ ያስገቡ።

-በዚህ ነጥብ መሠረት ለመገንባት እና ይህንን ጉዳይ እንዴት እንደምንሰበስብ ላይ ግንዛቤ አለዎት።

-ከአነስተኛ አካባቢ ጋር በመስራትዎ ይህ ቀጣዩ ክፍል ትንሽ ፈታኝ ነው። ለመጀመር ሁሉንም የላይኛው ክፍሎች እና 6 ብሎኮች እንፈልጋለን።

-እስካሁን የሠራውን በጀርባው ላይ ይክሉት እና በማዕዘኖቹ ውስጥ ያሉትን ብሎኮች ከላይ ከሩብ ኢንች ያኑሩ። (መጀመሪያ ላይ በሦስተኛው ሥዕል ላይ እንደሚታየው)

-የጎኖቹን እና የኋላውን የሙከራ ቀዳዳዎች ቆፍረው ይግቡ።

-አሁን የቀረውን የላይኛውን እንሰበስባለን

-የላይኛውን ፓነልዎን ይውሰዱ እና የሙከራ ቀዳዳዎቹን በመቆፈር ብሎኮች ላይ ያድርጉት እና ጫፉን ወደ ውስጥ ያስገቡት። ስብሰባዎን ወደታች ወደ *** ካዞሩ ፊንላንድኛ በኋላ *** በጥንቃቄ *** እና ከዳርቻው ጋር ትይዩ በእያንዳንዱ ማእዘን ውስጥ ብሎክን ያስቀምጡ። ከጎን መከለያዎች አብራሪ ቀዳዳዎችን ይከርክሙ እና ወደ ማገጃው ያሽሟቸው። መያዣውን ቀና አድርጎ ወደላይ በማዞር የሙከራ ቀዳዳዎችን ከላይ ወደ ብሎኮች ውስጥ ይከርክሙት እና ያጥፉት።

-ይህ ጎጆ ክፍል ትንሽ ተንኮለኛ ነው። የፊት ለፊት ፓነል እና የመጨረሻዎቹን ሁለት ብሎኮች ያስፈልግዎታል። በመጀመሪያ የፊት ፓነልዎ በኩል ወደ ቀዳሚው ብሎኮች ውስጥ የሙከራ ቀዳዳዎችን ይከርክሙ እና ያጥፉት። አሁን የመጨረሻዎቹን ሁለት ብሎኮች ወስደው በማዕዘኑ ውስጥ ያስቀምጧቸው እና የጎን ፓነልዎን እና የፊት የላይኛው ፓነልዎን ወደ ብሎኮች ያሽጉ። እንደገና ጉዳዩን ወደታች አዙረው የውስጠኛውን የላይኛው ፓነል በማገጃው ላይ ያድርጉት እና ያስገቡት።

-እንደዚህ ያለ ነገር መተው አለብዎት (በዚህ ደረጃ የመጀመሪያ ስዕል ላይ ይታያል)

ቀጣዩ ደረጃ ቀሪውን ስብሰባ ያብራራል።

ደረጃ 5 - ጉባኤውን መጨረስ

ጉባኤውን መጨረስ
ጉባኤውን መጨረስ
ጉባኤውን መጨረስ
ጉባኤውን መጨረስ
ጉባኤውን መጨረስ
ጉባኤውን መጨረስ

በዚህ ነጥብ ላይ ጉዳዩን እና ግንባታውን ለማጠናቀቅ ጥቂት ነገሮችን ብቻ አጠናቀዋል እና እርስዎ ይፈጸማሉ።

አሁን የቀረው ኤሌክትሮኒክስን መትከል ብቻ ነው።

ለፖቲዮሜትርዎ በመደወያ ፓነልዎ ውስጥ ቀዳዳዎችን በመቆፈር እንጀምራለን። ምቾት እንደሚሰማዎት የሚሰማቸውን ጉድጓዶች ለመቆፈር ነፃነት ይሰማዎ። በእኔ ሁኔታ ቀዳዳዎቹን 2 1/2 ኢንች እና 3 1/2 ኢንች ለሁለቱም ፖታቲሞሜትሮች አስቀምጫለሁ።

-አንዴ ቀዳዳዎችዎን ከቆፈሩ በኋላ ይህንን ፓነል በጉዳዩ ላይ እናስቀምጠዋለን። ነገር ግን እሱን ከመዝጋት ይልቅ በቀላሉ በጠርዙ ጠርዝ ላይ ብዙ ሙጫ ያስቀምጡ እና ፓነሉን ያስቀምጡት እና በአንዳንድ ማያያዣዎች ወይም ከባድ ነገር ይያዙት።

-ሙጫው ማድረቁን ከጨረሰ በኋላ የኤሌክትሮኒክ ክፍሎቹን እናስገባለን። ግን መጀመሪያ የኋላ ፓነልን ማስወገድ አለብን።

-አንዴ ከጠፋ በኋላ ኤልኢዲዎቹን እና ሌሎች አካላትን ወደ ውስጥ ለማስገባቱ ጉዳዩን ከፊት ለፊት እንዲያስቀምጡ እመክራለሁ።

-አሁን የኋላ ኋላ ካለዎት እኛ ብቻ በተቆፈርንባቸው ቀዳዳዎች ውስጥ በማስገባትና ለጋስ የሆነ የሙጫ ሙጫ በማስቀመጥ ፖቲዮቲሜትርን ወደ መያዣው ውስጥ እናስገባለን።

*** ጥንቃቄ ***-የ LED ድርድር ሲያስገቡ በጣም ይጠንቀቁ ምክንያቱም የሻጩ ነጥቦች በቀላሉ ሊበላሹ ይችላሉ።

-አሁን የመሪ ድርድርን በማስቀመጥ በጣም አስፈላጊው ክፍል ላይ ደርሰናል። በሁለተኛው ሥዕል ላይ እንደሚታየው በቀላሉ ሰሌዳውን ያስገቡ።

-አንዴ የሚመራውን የውስጥ ፓነልዎን ያግኙ እና በቀጥታ ከኤልዲ ድርድር የኋላ ፓነል ስር በቀጥታ ወደ መያዣው ውስጥ ያስገቡት። ይህ ቁራጭ ጥብቅ መገጣጠሚያ ሊኖረኝ ይችላል። እንዲሁም ከመቀጠልዎ በፊት እንዲደርቅ ያድርጉት።

-የመጨረሻውን ክፍል ደርሰዋል። በኤልዲዎች እና በዚህ ክፍል መካከል ያለውን ንፅፅር የዚህን የመጨረሻ ክፍል አንድ ጎን (የ LED ውስጣዊ ጀርባ) ጥቁር ወይም ነጭን እንዲስሉ እመክራለሁ።

-ይህንን በቀጥታ ከ LED ድጋፍ ጀርባ እናስቀምጠዋለን እና እንዳይንቀሳቀሱ በኤልዲዎቹ ጀርባ ላይ በትንሹ ይጫኑት። እንዳይንቀሳቀስ ለመከላከል አንዴ ጠርዝ ላይ ሙጫ ይተግብሩ። በሦስተኛው ሥዕል ላይ ይታያል።

**** እንኳን ደስ ያለዎት ጠቅላላ ጉባኤውን ጨርሰዋል !!!

ጨዋታውን ኮድ ለመስጠት ወደ መጨረሻው ደረጃ ይቀጥሉ

ደረጃ 6 - ኮዱ

በዚህ ርቀት ላይ በመድረሱ እንደገና እንኳን ደስ አለዎት።

በዚህ ክፍል ውስጥ ኮዱን እና እንዴት ሊለውጠው እና ሊያስተካክሉት ከሚችሉት በኮዱ ውስጥ ካሉ ነገሮች በተጨማሪ እንዴት እንደሚሰራ ያሳየዎታል።

ግን ወደዚያ ከመግባታችን በፊት ማውረዱንም ያገናኘሁት (adafruit_NeoPixel-master) ያስፈልግዎታል።

ዋናውን ለመጫን የአሩዲኖ ፕሮግራምዎን ይክፈቱ

1. ወደ ንድፍ ይሂዱ

2. ክፍት ቤተመጽሐፍት ያካትቱ

3. ጠቅ ያድርጉ (add.zip library)

4. (adafruit_NeoPixel-master) ፋይልን ይምረጡ እና ያከናወኑትን ይምረጡ

ከዚህ በታች ለጨዋታው ኮዱን ለጥፍኩ።

#ያካትቱ

#ያካትቱ

ረዥም ballXabs = 12;

ረዥም ኳስ ያብስ = 4;

int ballX;

int ballY;

int ballvelX = 1;

int ballvelY = 1;

int ኢንዴክስ;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - ቀዘፋ ስፋት + 1;

int knobseg = 1023 / (paddlemax);

int paddle1 = 4;

int paddle2 = 4;

#ገላጭ NUMPIXELS 260

#ፒን 6 ን ይግለጹ

Adafruit_NeoPixel pixels = Adafruit_NeoPixel (NUMPIXELS, PIN6, NEO_GRB + NEO_KHZ800);

ባዶነት ማዋቀር () {

pixels.begin ();

Serial.begin (9600);

}

ባዶነት loop () {

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

ማሳያ ኳስ ();

displayPaddle1 ();

displayPaddle2 ();

pixels.show ();

deteCollision ();

መዘግየት (fps);

}

ባዶ ባዶ ClearScreen () {

ለ (int i = 0; i <NUMPIXELS; i ++) {

pixels.setPixelColor (እኔ ፣ ፒክስሎች ቀለም (0 ፣ 0 ፣ 0));

}

}

ባዶነት ዝማኔ ኳስ () {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

ባዶነት deteCollision () {

Serial.print (ballYabs);

Serial.print ("");

Serial.println (paddle1);

ከሆነ (ballvelX> 0 && ballXabs> = 25) {// የቀኝ ግድግዳ መጋጨት

Serial.println ("CollisionX");

ውጤት 1 (); // ballvelX*=-1;

}

ከሆነ (ballvelX <0 && ballXabs <= 0) {// የግራ ግድግዳ ይጋጫል

Serial.println ("CollisionX");

ውጤት 2 (); // ballvelX*=-1;

}

ከሆነ (ballvelY> 0 && ballYabs> = 9) {// የላይኛውን ግድግዳ መጋጨት

Serial.println ("CollisionY"); ባለ ኳስ Y *= -1;

}

ከሆነ (ballvelY <0 && ballYabs <= 0) {// የታችኛው ግድግዳ ይጋጫል

Serial.println ("CollisionY");

ባለ ኳስ Y *= -1;

}

// ቀዘፋ 2 ግጭትን ይፈልጉ

ከሆነ ((ballvelX> 0 && ballXabs == 24) && ((ballYabs> = paddle2) && (ballYabs <= paddle2 + paddlewidth - 1)))

{// የቀኝ ግድግዳ ይጋጫሉ

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// ቀዘፋ 1 ግጭትን ይፈልጉ

ከሆነ ((ballvelX = paddle1) && (ballYabs <= paddle1 + paddle width - 1)))

{// የቀኝ ግድግዳ ይጋጫሉ

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

ባዶነት አዘምንPaddle1 () {

int knob = analogRead (A0);

መቅዘፊያ 1 = ክብ ((ረዥም) ጉብታ / (ረዥም) ቡልጋግ);

}

ባዶነት አዘምንPaddle2 () {

int knob2 = analogRead (A1);

paddle2 = ክብ ((ረጅም) knob2 / (ረጅም) knobseg);

}

ባዶነት ማሳያ ኳስ () {

ballX = ዙር (ballXabs);

ballY = ክብ (ballYabs);

ከሆነ (ballX % 2! = 0) {

መረጃ ጠቋሚ = (9 - ballY) + 10 * ballX;

ከሆነ (ballX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1) ፣ ፒክስሎች ቀለም (30 ፣ 0 ፣ 0)) // የኳስ ቀለም በግራ በኩል

}

ከሆነ (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1) ፣ ፒክስሎች። ቀለም (30 ፣ 0 ፣ 0)) ፤ // የኳሱ ቀለም በቀኝ በኩል

}

ከሆነ (ballY! = 9) {pixels.setPixelColor (መረጃ ጠቋሚ - 1 ፣ ፒክስሎች። ቀለም (30 ፣ 0 ፣ 0)); // የኳስ ቀለም የታችኛው ጎኖች

}

ከሆነ (ballY! = 0) {pixels.setPixelColor (መረጃ ጠቋሚ + 1 ፣ ፒክስሎች። ቀለም (30 ፣ 0 ፣ 0)); // የኳስ ቀለም የላይኛው ጎኖች

}

}

ሌላ {

መረጃ ጠቋሚ = ballY + 10 * ballX; ከሆነ (ballX! = 0) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1) ፣ ፒክስሎች ቀለም (30 ፣ 0 ፣ 0)); // የኳሱ ግራ ረድፍ እንኳን

}

ከሆነ (ballX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1) ፣ ፒክስሎች ቀለም (30 ፣ 0 ፣ 0)) // የኳሱ ቀኝ ጎን እንኳን ረድፍ

}

ከሆነ (ballY! = 9) {

pixels.setPixelColor (መረጃ ጠቋሚ + 1 ፣ ፒክስሎች ቀለም (30 ፣ 0 ፣ 0)); // የኳሱ የታችኛው ጎኖች እንኳን ረድፍ

}

ከሆነ (ballY! = 0) {pixels.setPixelColor (መረጃ ጠቋሚ - 1 ፣ ፒክስሎች። ቀለም (30 ፣ 0 ፣ 0)); // የኳሱ የላይኛው ጎኖች እንኳን ረድፍ

}

}

pixels.setPixelColor (መረጃ ጠቋሚ ፣ ፒክስሎች ቀለም (255 ፣ 0 ፣ 0)); /// የኳስ ቀለም ማዕከል

}

ባዶነት ማሳያPaddle1 () {

ለ (int i = 0; i <paddlewidth; i ++) {pixels.setPixelColor (paddle1+i ፣ pixels. Color (0 ፣ 0 ፣ 255)) ፤

}

}

ባዶነት ማሳያPaddle2 () {

ለ (int i = 0; i <paddlewidth; i ++) {pixels.setPixelColor (NUMPIXELS - 1 - paddle2 - i, pixels. ቀለም (0, 0, 255));

}

}

ባዶ ውጤት 1 () {

resetBall (0);

}

ባዶ ውጤት 2 () {

resetBall (1);

}

ባዶነት ዳግም ማስጀመሪያ ኳስ (int ተጫዋች) {

መዘግየት (1000);

ballXabs = 12

; ballYabs = 4;

ballvelX = ተጫዋች? 1: -1;

ኳስ ኳስ Y = 1;

clearScreen ();

መዘግየት (1000);

ማሳያ ኳስ ();

pixels.show ();

መዘግየት (1000);

displayPaddle1 ();

displayPaddle2 (); pixels.show (); መዘግየት (2000); }

ደረጃ 7: ማጠናቀቅ

በመጨረስ ላይ
በመጨረስ ላይ

አንዴ ኮዱን ከጫኑ በኋላ ለጀርባዎ በርሜል መሰኪያ የኃይል አስማሚ በቂ የሆነ የኋላ ፓነል ውስጥ ቀዳዳ ይከርሙ። ወደ አርዱዲኖ ውስጥ ይሰኩት እና በመጨረሻም ጀርባውን እንደገና ይሰብስቡ።

እኔ ደግሞ በ LED ዝርዝር ላይ አካትቻለሁ ፣ አሁን ያንን በኤልዲዎች ላይ ማስቀመጥ እና ማጣበቅ ይችላሉ

ይህንን ካደረጉ በኋላ ከቤተሰብ እና ከጓደኞች ጋር በተወዳዳሪ ጨዋታዎች ሰዓታት ለመጫወት እና ለመደሰት ዝግጁ ነዎት።

በመጨረሻ ፕሮጀክቱን ስለጨረሱ እንኳን ደስ ለማለት እወዳለሁ።

ማንኛውም ችግሮች ካሉዎት እዚህ ያነጋግሩኝ እና ችግሩን ለመፍታት መርዳት እወዳለሁ።

የሚመከር: