Orodha ya maudhui:

Pong kucheza Screen Flexible kwenye shati: Hatua 8 (na Picha)
Pong kucheza Screen Flexible kwenye shati: Hatua 8 (na Picha)

Video: Pong kucheza Screen Flexible kwenye shati: Hatua 8 (na Picha)

Video: Pong kucheza Screen Flexible kwenye shati: Hatua 8 (na Picha)
Video: Архитектор (2017) полнометражный фильм 2024, Novemba
Anonim
Pong kucheza Screen Flexible kwenye shati
Pong kucheza Screen Flexible kwenye shati
Pong kucheza Screen Flexible kwenye shati
Pong kucheza Screen Flexible kwenye shati
Pong kucheza Screen Flexible kwenye shati
Pong kucheza Screen Flexible kwenye shati

Hii ni mavazi yangu ya Halloween kwa mwaka 2013. Imekuwa katika kazi kwa karibu mwaka na imechukua masaa machache ya mtu kuunda. Skrini ni saizi 14 hadi 15, kwa hivyo, azimio la chini sana lakini bado inaweza kufanya vitu vya kufurahisha. Ni rahisi kubadilika kwa pande zote, ingawa haiwezi kukunjwa bila uharibifu. Inayo kidhibiti kilicho na kitufe kimoja na sufuria ya slaidi, iliyounganishwa na mega ya pro kupitia USB. Ili kuiweka hai kwa muda mrefu hutumia betri mbili mbaya za 2200 mAh zilizounganishwa mfululizo ili kupata voltage inayofaa, na kisha mdhibiti wa 5 Volt kuifanya iweze kutumika. Elektroniki zote zimewekwa kwenye mifuko ndani ya shati ili ziweze kutolewa na ili shati iweze kuoshwa. Inacheza mchezo wa kazi wa pong. Kwanza hupendeza moja na maneno "PONG PLAY" kwa herufi nzuri ya samawati ukitumia toleo lililobadilishwa la fonti ya Tom Thumb (inaweza kupatikana kwa https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Baada ya sekunde tano chaguo linaweza kutolewa kwa kubonyeza kitufe cha kuendelea, au kutobonyeza kitufe na kuacha uzoefu mzuri nyuma. Wakati mtu anachagua kubonyeza kitufe, mchezo huanza. Paddle nyekundu kulia ni paddle ya kompyuta na paddle ya kijani kulia ni paddle ya mchezaji, ambayo inadhibitiwa na sufuria ya slaidi kusonga juu na chini. Mpira unazunguka kila upande unapojaribu kupata alama. Mchezaji anaweza kupiga mpira na makali ya paddle yao ili kuharakisha (huduma nzuri) wakati kompyuta haiwezi kufanya hivyo, na badala yake kuishia kukwama na kusonga polepole kuliko mpira. Wakati alama inapopatikana mabadiliko ya pikseli kuwa meupe kwenye pedi ya pande za bao. Inahesabu kwa binary kutoka chini. ambapo kijani au nyekundu ni sifuri na nyeupe ni 1. 21 ni alama ya kushinda (au kupoteza kulingana na nani anapata alama 21) na kwa hivyo wakati mchezaji wa mchezaji anaposoma 10101, maandishi ya "WIN WIN" yanaonyeshwa. Kwa mara nyingine katika Thumb iliyobadilishwa. Vivyo hivyo hufanyika lakini kwa "WEWE UNAPOTEZA" kuonyeshwa badala yake. Baada ya kushinda au kupoteza mchezo huanza tena kwa uhakika baada ya kucheza kwa Pong. Kuanzisha upya kabisa kitufe cha kuanza upya kwenye "Magic Box", pia inajulikana kama sanduku-na-vifaa-vyote-vya elektroniki-isipokuwa-skrini, imebanwa.

Hatua ya 1: Vifaa na Zana

Vifaa na Zana
Vifaa na Zana
Vifaa na Zana
Vifaa na Zana

Vitu vilivyowekwa alama na * ni vya hiari lakini vinapendekezwa Na kwa hivyo hakuna mpangilio maalum… Vifaa: Yadi 4 za Adafruit Neopixle saizi 60 kwa kila kipande cha mita 1 T-shati * 1 jozi ya Wasimamizi 1/2 yadi ya kitambaa itakuwa ya kutosha (Sio weave ya kunyoosha hupendekezwa) 6 mguu USB Kiume kwa USB B kiume cable 1 USB Kiunganishi cha kike 3 2 pini JST viunganishi vya kike 4 2 pini JST waya za kiume chaja betri 2 6600 mAh betri 1 Kitufe cha mtindo wa Arcade 1 arduino pro-mega 1 kichwa cha FTDI 1 USB B kontakt ya kike na bodi ya kuzuka 1 kuzima / kuzima switch (toggle) 1 reset switch (toggle or momentary) 1 slide potentiometer * 1 slide sufuria knob 1 high amp kontakt jozi * 1 kesi ya mradi 1 5V 3+ amp voltage mdhibiti mdogo kidogo ya plastiki solder waya fulani uzi * gundi moto moto * wakati fulani wa kunyooka (Labda kidogo zaidi ya "wengine") uvumilivu (Labda utahitaji kidogo ya hii halisi) joto fulani hupunguza neli au mkanda wa umeme gundi nyingine kubwa chuma juu ya Zana za kuunga mkono * Kusaidia Mikono Mkono wa Kawaida s (au mtu aliye na ufikiaji wao) Chuma cha kutengeneza gundi * Moto Gundi Bunduki Dremel au Sandpaper Chisel Waya Strippers Wakataji waya Waya Dereva wa Bunduki ya Bunduki Saw Pini za Kushona Mashine ya kitambaa

Hatua ya 2: Kata Ukanda wa LED kuwa Vipande Vidogo

Kata Ukanda wa LED kuwa Vipande Vidogo
Kata Ukanda wa LED kuwa Vipande Vidogo
Kata Ukanda wa LED kuwa Vipande Vidogo
Kata Ukanda wa LED kuwa Vipande Vidogo
Kata Ukanda wa LED kuwa Vipande Vidogo
Kata Ukanda wa LED kuwa Vipande Vidogo

Tumia kifaa unachopendelea cha kukata na ukate ukanda katika sehemu 14, kila saizi 15 ndefu. Kata tu kati ya athari za shaba, iliyoandikwa kitu kama "DO" "DIN" "+ 5V" na "GND". Ikiwa tayari imeuzwa juu ya shaba hukatwa tu. Jaribu kukata sana kwenye shaba iliyo wazi lakini ikiwa utaipiga teke kidogo hiyo ni sawa. Mara tu vipande 14 vimekatwa, punguza mpira kidogo kila mwisho ili kuiondoa kwa njia ya kutengeneza vipande.

Hatua ya 3: Kuunganisha Screen pamoja

Kuunganisha Screen Pamoja
Kuunganisha Screen Pamoja
Kuunganisha Screen Pamoja
Kuunganisha Screen Pamoja
Kuunganisha Screen Pamoja
Kuunganisha Screen Pamoja

Chukua waya na uikate katika sehemu kama inchi 3.5 (9 cm). Katika kesi yangu nina rangi tatu tofauti ili iwe rahisi kuweka sawa wakati wa kutengeneza, lakini rangi moja ingefanya kazi vizuri. Utahitaji karibu hawa 40 wa hawa wavulana, lakini kata zaidi kadhaa ikiwa tu. Mara tu Unapomaliza kukata waya, vua na weka ncha (Ikiwa una uzoefu wa kutengeneza unaweza kuruka kwenye aya inayofuata), ikimaanisha baada ya kuondoa kidogo ya plastiki weka solder kwenye ncha za kila waya. Usiwasha moto solder na ujaribu kuhamia kwa waya, joto na wewe una chuma cha chuma kutoka chini ya shaba na weka solder juu. Kuwa na uvumilivu na subiri waya moto kuyeyuka solder. Inajaribu kutia ngumu kwa chuma cha soldering ili ianze (Uvumilivu wangu na mimi najua haswa unajisikia) lakini solder pia haishikamana. Fanya vivyo hivyo kwa athari zilizo wazi za shaba kila mwisho wa sehemu za ukanda. Ikiwa tayari ina solder usijali juu yake. Kwa ukanda unaweza kutaka kujenga kilima kidogo ili iwe rahisi baadaye. Unapofanya kazi na ukanda, fanya haraka, na jaribu kutumia kwa muda mwingi kutumia joto kwenye ukanda. Fanya tu kile unahitaji kufanya ili kuyeyusha solder kwenye athari. Weka waya kwenye kila athari hadi mwisho wa ukanda wa kwanza (Kamba ya kwanza ikiwa ndio iliyo na waya na kontakt, itengeneze hadi mwisho ulio wazi). Ukiangalia ukanda utaona mishale midogo juu yake ikienda hadi mwisho ambapo uliuzia waya. Chukua ukanda mwingine ili mishale ielekeze mwelekeo mwingine, na uunganishe waya unaotokana na ufuatiliaji wa GND hadi ufuatiliaji wa mwingine wa GND, + 5V hadi + 5V na kadhalika. Rudia hii kuhakikisha kuwa mishale inabadilisha mwelekeo kila sehemu ili kwamba ikiwa utawafuata ingezunguka juu na chini, na kwamba inaweza kunyooshwa hadi kwenye kamba ndefu mwishowe. Mara tu vipande vyote 14 vimeuzwa, ziweke na upange kisha upandishe juu ili LED iweze gridi ya taifa. Kisha washike pamoja kwa kutumia njia ambayo inaweza kuondolewa baadaye bila uharibifu wa ukanda. Nilitumia mkanda wa scotch. Ni fimbo ya kutosha kuweka kila kitu pamoja lakini sio nata sana hata kuacha mabaki. Sipendekezi chochote kudumu, kama chakula kikuu au mkanda wa bomba. Mara tu kila kitu kinapounganishwa pamoja kwa solder waya kutoka kwa ukanda ulio chini + 5V hadi ule ulio karibu nayo. Rudia hadi chini yote iwe na bomba la nguvu kwenda njia yote. Hii ni hivyo skrini haififili kama mstari wa LED unavyoendelea.

Hatua ya 4: Kuunganisha Elektroniki ya Msingi

Kuunganisha Elektroniki ya Msingi
Kuunganisha Elektroniki ya Msingi
Kuunganisha Elektroniki ya Msingi
Kuunganisha Elektroniki ya Msingi
Kuunganisha Elektroniki ya Msingi
Kuunganisha Elektroniki ya Msingi

Solder bodi ya kuzuka ya USB B (BOB) kwenye kontakt USB B. Solder waya zinazofaa kwenye kontakt USB A. Ninashauri kutazama siri ya kontakt kama inavyopatikana kwenye wavuti hii, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Usijali kuhusu mahali pa kugeuza ncha zingine za waya kwenye kontakt USB A hivi sasa; ambayo itafunikwa katika hatua ya mtawala. Kata kiunganishi cha data kutoka kwa ukanda, kiunganishi cha kike, sio kiunganishi cha kiume (Kontakt ya kike imepatikana kutoka upande mwingine). Solder viungio vya kiume vya JST hadi mwisho wa betri ili nyekundu iende nyekundu na nyeusi iende nyeusi. Kuyeyusha joto hupunguza mirija juu ya waya zilizo wazi (iliteleza kabla ya kutengeneza) ili wasifupishe au kutumia kitu kingine kama mkanda wa umeme au gundi moto. Solder waya zingine kwa viunganisho vyote vya kike vya JST. Hakikisha kuwa na mwisho wa kiume ulioingizwa ili pini zisigeuke kuzunguka. Jihadharini na polarity na uhakikishe kuwa waya zinalingana na viunganisho vya kiume. Waya za Solder kwa moja kiunganishi cha voltage ya juu (lakini sio jozi), mara nyingine tena, kuhakikisha rangi yoyote inalingana na kwamba imeunganishwa pamoja ili kuzuia pini zozote zinazobadilika. Solder kike tu kontakt / mkutano wa waya ili waweze kushonwa kwa safu, sio sawa, kuupita upeo wa kizingiti cha mdhibiti wa nguvu. Kwa hivyo, suuza waya mzuri kwa waya hasi wa mkutano mwingine kwa hivyo sasa tuna waya moja isiyouzwa na waya hasi isiyo na waya na waya hizo mbili zimeuzwa kwa viunganishi tofauti. Chukua waya hasi na uihifadhi ili iweze kuuziwa kwa waya hasi mahali pengine. Sasa chukua waya mzuri na uiuze kwa swichi Ikiwa kuna pini tatu au zaidi (au zaidi ya njia moja ya kuwa "on") inauzwa kwa pini ya kati. Kumbuka "pini ya kati" inaweza isiwe katikati. Njia ya kuitambua ni kupata pini ambayo, wakati swichi imewashwa katika hali yoyote itaunganishwa na pini nyingine kila wakati. Ikiwa hakuna pini iliyo kama hii basi una swichi maalum sana; unganisha tu kwa pini yoyote na uhakikishe waya inayofuata iliyouzwa kwa swichi itaunganishwa na waya huo angalau moja kwa serikali. Sasa solder waya mzuri wa ulaji kwenye mdhibiti wa voltage hadi mwisho wa swichi, kama ilivyojadiliwa hapo juu. Solder voltage ya postive hadi mwisho mzuri wa kiunganishi cha sasa kisichouzwa. Chukua waya hasi wa ulaji na uiuze hadi mwisho hasi wa kontakt ya hali ya juu. Sasa tutauza nguvu sawa na safu ya Arduino na Power. Sasa chukua waya zinazoongoza kwa kudhibiti mdhibiti wa voltage na solder vipande viwili vya waya kwenye ncha nzuri na hasi ili zitoke kwa umbo la Y. Solder kontakt mbili ya pini kwa waya chanya na hasi ya mkutano wa ukanda ulioongozwa. Haijalishi unatumia kiunganishi cha aina gani, inaweza kuwa JST au kwa upande wangu kebo ya nguvu / sauti au kitu (sina hakika, na ninaomba radhi kwa kutokuwa na picha yoyote). Solder moja ya waya chanya ya nguvu hadi mwisho mzuri wa kontakt kinyume kwa ukanda wa taa na moja ya waya hasi kwa pini nyingine kwenye kontakt. Fanya vivyo hivyo lakini kwa mkutano wa kiume wa JST / waya. Wakati wote kumbuka kuingiza viungo vya solder ili kuepuka kifupi. Sasa ingia nini cha kufanya na kontakt USB B. Weka waya mzuri kwa shimo la 5v kwenye Arduino Pro Mega. Chukua waya wa ardhini na uiuzie kwenye shimo la GND. Chukua D + na uiuzie kwenye pini ya dijiti (au katika kesi hii, shimo) 40. Solder D- kwa pini ya analogi 15. Weka mwisho wa data ya kontakt ya kike ambayo inashirikiana na kiunganishi cha kiume cha mkanda wa LED kwenye pini ya data 6 na waya wa ardhini kwa pini ya GND. Masking au mkanda wa scotch hufanya kazi vizuri kwa kushikilia waya kwenye bodi ili zisianguke wakati zimepinduliwa ili kuuzwa. Sasa chukua kitufe cha kitambo na tengeneza waya kutoka upande mmoja hadi pini ya VCC (au pini yoyote ya pato la voltage) na mwisho mwingine kwa pini ya RESET.

Hatua ya 5: Mdhibiti

Mdhibiti
Mdhibiti
Mdhibiti
Mdhibiti
Mdhibiti
Mdhibiti

Kwanza ni kuchagua sura inayofaa kuanza nayo. Yote inategemea jinsi unataka mtawala apangiliwe. Nilitaka zaidi ya kidhibiti gorofa kwa hivyo nilipata kipande cha 3 1/2 "na 3/4" ubao. panga sehemu kwa njia ambayo inaonekana inafaa na inafaa kufanya kazi nayo. Tumia curve ya Ufaransa, dira, pembetatu, na makali ya moja kwa moja kuteka mahali vipande vyote vinapaswa kwenda. Kata muhtasari wa kimsingi ukitumia zana ya kukata ya chaguo lako. Saw ya marufuku itakuwa bora lakini nilitumia msumeno wa kukabiliana, ambao ulifanya kazi vizuri. Mchanga chini kando kando ili kuwafanya wabadilike vizuri, kisha mchanga mchanga kwenye pembe ili iwe vizuri zaidi. Toa shimo kwa swichi, kisha mchanga, patasi, na / au Dremel toa sehemu yoyote chini ambayo itaifanya iwe sawa. Jaribu kufanya chochote kwa juu na mchanga tu kile unachohitaji kuweza kukiweka ndani kwa kupotosha, kupiga angling, au kitu kingine chochote ili kiingie ndani. Mara tu ikiwa imeambatanishwa na nati ya plastiki na ambatanisha kubadili. Toa eneo hilo kwa kitovu cha potentiometer kutoshea na kuchora eneo ili iweze kuzama na kutoshea kwa njia yote. Toa mashimo kadhaa ili bisibisi iweze kushikilia. Pindisha vipande vidogo vya kiunganishi cha USB ambacho hufanya upana wa jumla kuongezeka kidogo (angalia picha). Chagua sehemu ya kontakt, ukiangalia kwa kasi ili kuhakikisha kontakt inafaa. Gundi kubwa kontakt kwenye slot yake. Chukua kipande kidogo cha plastiki na ukikate kwa umbo ambalo litatoshea juu ya kontakt (angalia picha), kisha uiunganishe kwa kuni. Kata vipande vyovyote ambavyo vinaweza kukuzuia. Parafujo katika potentiometer na unganisha kitovu. Weka waya mzuri kwa moja ya ncha za potentiometer (sio sehemu inayobadilika) na waya hasi hadi mwisho mwingine. Solder the D- pin kwa pini inayobadilika kwenye sufuria. Solder waya kutoka kwa pini kwenye sufuria na waya mzuri hadi moja ya pini kwenye kitufe. Solder D + kwa pini nyingine kwenye kitufe. Punguza waya wa vipuri na ubandike vipande ambavyo vinahitaji.

Hatua ya 6: Shati

Shati
Shati
Shati
Shati
Shati
Shati

Pata shati la starehe ambalo litaruhusu mwangaza kupita. Nilichagua hii fulana ya msingi nyeupe. Haijalishi rangi au mtindo kwa muda mrefu kama taa inaweza kuonekana ikiangaza kutoka ndani. Walakini sipendekezi picha za mbele. Weka kila kitu kwenye shati ili ikusaidie kuamua ni wapi unataka na utumie zana ya kuashiria inayoweza kuteka ili kuichora. Mimi (nikimaanisha watu wengine ninaowajua) nina penseli inayokusudiwa kuashiria vitambaa ambavyo vinaosha kwa urahisi. Pima saizi ya betri, kesi ya kidhibiti, na skrini na ukate vipande vya karatasi ili vilingane. Kisha piga karatasi kwenye kipande cha kitambaa kisicho na kunyoosha. Weave inafanya kazi vizuri kwa hili. Kisha kata mstatili ukiacha karibu inchi robo kwa mshono kila mahali. Kisha ukitumia kipande cha karatasi kama mwongozo wa chuma mikunjo ndani ya kitambaa. Sasa karatasi inaweza kuondolewa. Kwenye sehemu ya mfukoni ambayo itakuwa juu ikunje juu yake mwenyewe mara tatu. Chuma na ubandike ili kuiweka mahali pake. Kushona inaonekana njia yote katikati ya zizi. Sasa chukua kona na uikunje ili kingo ambazo hazijashonwa kwa kila mmoja zilingane na kushona kuonekana karibu na kijiko kilichopigwa karibu kabisa na kona (Picha zinasaidia sana). Fanya hii kwa kona nyingine pia. Ikiwa uwezekano utakuwa na swichi ya kugeuza inayotoka mfukoni, shona shimo la kifungo chini ya mfukoni ambapo swichi inagusa. Kisha kushona shimo la kitufe na ukate sehemu ya kati. Siwezi kutoa maagizo ya kina kwa sababu nilikuwa na zana nzuri ya kutengeneza mashimo ya vifungo. Hakikisha tu unafanya mashimo kabla ya mfukoni kushonwa. Chukua pini kadhaa na uziweke kupitia shati kwenye pembe za alama kwa mfukoni. Chukua mfukoni na weka kila kona kwenye pini (ndani ya shati), ukiacha inchi ya robo kwa mshono, na ibandike kwenye shati. Baada ya mfukoni kubanwa. ondoa pini ambazo hazijashikilia mfukoni na ushone mfukoni kwenye shati. Rudia mifuko yote. Kwa mfuko mkubwa ulioshikilia skrini acha pengo kwa waya zilizo chini ya mfukoni. Kuweka shimo kwenye shati alama mahali hapo na chukua chuma kwa kuungwa mkono (na sehemu inayong'aa kwenye kitambaa) na utie chuma juu. Kisha, kwa shimo ndogo (kama vile nilivyotumia kubadili swichi), fanya shimo la kitufe. Kwa shimo kubwa, weka muhtasari na utumie kushona kwa zigzag kando ya mstari (au pinda au una nini) na ukate sehemu ya kati. Ikiwa unataka unaweza kutumia viboreshaji kushikilia uzito wa mifuko, sehemu mbili zilizoshikilia mifuko mbele na kipande cha nyuma kwenye suruali. Nilipata pia sleeve ndogo ya kitambaa kilichoshonwa juu ya sehemu za wasimamishaji ambazo zitakuwa zikigusa ngozi yangu. Mashati mawili yanaweza kupata moto sana kwa hivyo nilichagua kutoka na kutumia sleeve ndogo ya kitambaa.

Hatua ya 7: Programu

Kupanga programu
Kupanga programu

Na hii hapa nambari. Kuna sehemu chache ambazo zimetolewa maoni lakini idadi kubwa sio. Ikiwa una maswali kwenye sehemu tofauti unaweza kunipa nambari ya laini (na # pamoja na nambari ya kwanza) au nipe nakala ya laini na kazi ambayo inakaa (kama kitanzi () au compMovePaddle ()) na nitajitahidi kukuelezea, kisha ongeza maoni kwenye nambari inayoielezea. #Ijumuisha #fafanua PIN 6 // inasema ni nini pini za kuingiza kwa kifungo cha mchezo intPin = 40; // inaamuru alama, iliyohifadhiwa katika safu ya bianari kwa sababu ni esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // inaamuru mwelekeo wa mpira int bvd = 0; // 0 imeshuka, 1 imeinuka int bhd = 0; // 0 ni sawa, 1 imesalia // inaamuru nafasi ya mipira int bvp = 8; int bhp = 6; // huangalia ikiwa mpira uko katika hali ya haraka boolean haraka = uwongo; // huangalia ikiwa ni alama. boolean cIsPoint = uwongo; pIsPoint ya boolean = uwongo; // nafasi za paddle int cPaddle = 0; p paddle = 0; muda mrefu uliopitaMillis = 0; muda mrefu uliopitaMillisForComp = 0; // weka nyakati za kuchelewesha kwa mpira wa haraka na polepole wa kusonga "Int" kwa kawaidaInt na harakaInt ni kwa muda int intIntInt = 50; int harakaInt = 10; // kutumika kuangalia ushindi. 1 ni kushinda mchezaji, -1 katika ushindi wa kompyuta, na 0 hakuna kitu ambacho kimefurahisha bado int win = 0; // kuondoa mdudu. kutumika katika taarifa ya nyongeza na mahali pengine popote. int ambayo = 0; // Jambo lililoonyeshwa kabla ya kuanza, -1 ni kutoroka ndani ya mchezo = {1, 2, 3, 4, 10, 11, 12, 13, 16, 18, 20, 27, 29, 33, 34, 41, 42, 61, 62, 63, 70, 71, 72, 76, 85, 86, 88, 91, 92, 94, 100, 101, 102, 102, 103, 131, 132, 136, 139, 144, 145, 146, 147, 148, 161, 162, 166, 175, 183, 185, 192, 194, 195, 196, 197, 198, 199, 199, 204, 205, 206, 207, 208, -1}; // ikiwa utashinda ndani yakoWin = {1, 2, 3, 4, 5, 16, 17, 18, 19, 20, 27, 33, 34, 39, 46, 47, 48, 49, 54, 55, 56, 57, 58, 77, 78, 79, 84, 88, 91, 92, 93, 94, 95, 99, 103, 106, 110, 114, 118, 130, 131, 132, 144, 145, 146, 147, 151, 162, 163, 168, 169, 170, 177, 181, 192, 193, 204, 205, 206, 207, -1}; // ikiwa utapoteza wewe kupoteza = {1, 3, 5, 16, 17, 18, 19, 20, 24, 26, 28, 31, 32, 32, 33, 34, 35, 39, 46, 47, 48, 49, 62, 65, 77, 78, 79, 84, 86, 88, 91, 94, 99, 103, 106, 110, 122, 123, 124, 130, 131, 132, 144, 148, 152, 153, 154, 162, 163, 168, 169, 170, 181, 192, 193, 204, 205, 206, 207, 208, -1}; // huweka mkanda ulioongozwa Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // kuanzisha, haibadilishi pini 40 kwa kuingiza, huanza ukanda, inaonyesha // ujumbe na kuionyesha. kuanzisha batili () {pinMode (buttonPin, INPUT); strip. kuanza (); kwa (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } onyesha (); kuchelewesha (5000); wakati (digitalRead (buttonPin) == LOW) {// Ni mtego! (mpaka kitufe kibonye.)}} kitanzi batili () {clearScreen (); // huchota paddles kuonyesha alama ya (int i = 0; i <5; i ++) {if (playerScore == 1) {strip.setPixelColor (204-i, strip. Color (255, 255, 255)); } mwingine ikiwa ((playerScore == 0)) {strip.setPixelColor (204-i, strip. Color (0, 255, 0)); } ikiwa (compScore == 1) {strip.setPixelColor (5 + i, strip. Color (255, 255, 255)); } vingine ikiwa ((compScore == 0)) {strip.setPixelColor (5 + i, strip. Color (255, 0, 0)); }} // // huchota mpira katika ukanda wa nafasi ya kuanza.setPixelColor (98, strip. Rangi (255, 255, 255)); onyesha (); // huamua ikiwa mpira unakwenda juu au unashuka wakati (pIsPoint == false && cIsPoint == false) {clearScreen (); unsigned long longMillis = millis (); // inapeana nafasi ya paddle ya kucheza pPaddle = checkPaddlePos (); // huangalia nafasi inayofuata angalia Ifuatayo (); // kusonga mpira ikiwa (haraka == uongo) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; hojaBall (); }} mwingine ikiwa (haraka == kweli) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; hojaBall (); }} // // chora mpira ikiwa (bhp% 2! = 0) {strip.setPixelColor (bhp * 15 + 14-bvp, strip. Color (255, 255, 255)); } kingine ikiwa (bhp% 2 == 0) {strip.setPixelColor (bhp * 15 + bvp, strip. Color (255, 255, 255)); } // harakati za paddle ya kompyuta compMovePaddle (); // chora paddles kuteka Vipuli (); // actualy weka kila kitu juu.onyesha (); // kuangalia kuona ikiwa hatua imepigwa ikiwa (pIsPoint == kweli) {which = 0; bhd = 0; ongezaOne (); kuvunja; } kingine ikiwa (cIsPoint == true) {which = 1; bhd = 1; ongezaOne (); kuvunja; }} ikiwa (win == 1) {clearScreen (); kwa (int i = 0; weweUshinda > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); onyesha (); } kuchelewa (5000); kwa (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } kushinda = 0; } mwingine ikiwa (win == -1) {clearScreen (); kwa (int i = 0; unapoteza > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); onyesha (); } kuchelewa (5000); kwa (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } kushinda = 0; } pIsPoint = uwongo; cIsPoint = uwongo; bvp = 8; bhp = 6; bvd = nasibu (0, 2); // 0 imeshuka, 1 iko juu haraka = uwongo; } // AI ya mchezo batili compMovePaddle () {unsigned long currentMillis = millis (); ikiwa (currentMillis - previousMillisForComp> 51) {previousMillisForComp = currentMillis; ikiwa (bvp> = 13 && 10-cPaddle 0) {cPaddle--; } vingine ikiwa (bvp = 0 && cPaddle <10) {cPaddle ++; } vingine ikiwa (bvp-3> 10-cPaddle && 10-cPaddle> = 0 && cPaddle> 0) {cPaddle--; } vingine ikiwa (bvp <10-cPaddle && 10-cPaddle <= 10) {cPaddle ++; }}} // // inahamisha mpira bila kusonga Mpira () {if (bhd == 0) {bhp--; } vingine ikiwa (bhd == 1) {bhp ++; } ikiwa (bvd == 0) {bvp--; } vingine ikiwa (bvd == 1) {bvp ++; }} // inaongeza moja kwenye safu. Ikiwa moja ni 0 inaongeza alama ya mchezaji. Ikiwa ni 1 inaongeza kwa kompyuta tupu addOne () {if (which == 0) {// ikiwa ni alama ya mchezaji // Ongeza moja. Hii ndio njia rahisi najua jinsi. kwa (int i = 0; i <5; i ++) {// kitanzi ikiwa (playerScore == 0) {// ikiwa dhamana hiyo ni mchezaji wa sifuriScore = 1; // fanya mapumziko 1; // kisha nenda}} kingine {// ikiwa ni 1 mchezajiScore = 0; // fanya sifuri na kitanzi}}} mwingine ikiwa (ambayo == 1) {ya (int i = 0; i <5; i ++) {if (compScore == 0) {compScore = compScore +1; kuvunja; } mwingine {compScore = 0; }}} // Anakagua ili kuona kama kuna mtu aliyeshinda. ikiwa (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } mwingine ikiwa (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }} // anakagua mipira kwenye nafasi inayofuata batili hakikiIfuatayo () {// angalia ili kuona ikiwa alama imepigwa ikiwa (bhp == 13) {pIsPoint = kweli; } vingine ikiwa (bhp == 0) {cIsPoint = kweli; } // ikiwa kuna alama imepigwa kuliko kuruka vitu vingine ikiwa (pIsPoint == false || cIsPoint == false) {// huangalia mpira wima ikiwa (bvp + bvd == 15) {bvd = 0; } vingine ikiwa (bvp + bvd == 0) {bvd = 1; } // anakagua mpira usawa ikiwa (bhp + bhd == 13) {// kwanza upande wa kompyuta ikiwa (bvp> = 10-cPaddle && bvp <= 10-cPaddle + 4) {if (bhd == 1) {bhd = 0; } vingine ikiwa (bhd == 0) {bhd = 1; } haraka = uwongo; } vingine ikiwa (bvp + bvd == 10-cPaddle || bvp + bvd == 10-cPaddle + 5) {if (bvp! = 0 && bvp! = 14) {if (bvd == 0) {bvd = 1; } mwingine ikiwa (bvd == 1) {bvd = 0; } bhd = 1; } vingine ikiwa (bvp == 0 || bvp == 14) {bhd = 1; } haraka = uwongo; }} kingine ikiwa (bhp + bhd == 1) {// kisha upande wa mchezaji ikiwa (bvp> = pPaddle && bvp <= pPaddle + 4) {// ni kupiga paddle katika eneo la kawaida? // kurusha mpira! ikiwa (bhd == 1) {bhd = 0; } vingine ikiwa (bhd == 0) {bhd = 1; }} mwingine ikiwa (bvp + bvd == pPaddle || bvp + bvd-5 == pPaddle) {// ni kupiga paddle kwenye kona ikiwa (bvp! = 0 && bvp! = 14) {// ni sio juu juu au chini chini? // Piga mpira! ikiwa (bvd == 0) {bvd = 1; } mwingine ikiwa (bvd == 1) {bvd = 0; } bhd = 1; haraka = kweli; } vingine ikiwa (bvp == 0 || bvp == 14) {// ni juu au chini? // kurusha mpira! bhd = 0; haraka = kweli;; } kingine ikiwa (analogRead (A15) <186) {return 1; } vingine ikiwa (analogRead (A15) <279) {kurudi 2; } kingine ikiwa (AnalogSoma (A15) <372) {rudisha 3; } kingine ikiwa (AnalogSoma (A15) <465) {rudi 4; } kingine ikiwa (analogRead (A15) <558) {return 5; } kingine ikiwa (analogRead (A15) <652) {kurudi 6; } mwingine ikiwa (AnalogSoma (A15) <745) {rudi 7; } mwingine ikiwa (AnalogSoma (A15) <837) {rudisha 8; } vingine ikiwa (analogRead (A15) <= 931) {return 9; } kingine ikiwa (analogRead (A15) <= 2014) {kurudi 10; }} batili za kutekaPaddles () {// chora ni paddles katika eneo sahihi na inaonyesha alama kwenye paddle ya (int i = 0; i <5; i ++) {if (playerScore == 1) {strip. kuwekaPixelColor (pPaddle + i, strip. Color (255, 255, 255)); } mwingine ikiwa ((playerScore == 0)) {strip.setPixelColor (pPaddle + i, strip. Color (255, 0, 0)); } ikiwa (compScore == 1) {strip.setPixelColor (199 + cPaddle-i, strip. Color (255, 255, 255)); } mwingine ikiwa ((compScore == 0)) {strip.setPixelColor (199 + cPaddle-i, strip. Color (0, 255, 0)); }}} batili waziScreen () {for (int i = 0; i <= 210; i ++) {strip.setPixelColor (i, strip. Color (0, 0, 0)); } onyesha (); }

Hatua ya 8: Bidhaa iliyokamilishwa

Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa
Bidhaa iliyokamilishwa

Na ndio unaenda, shati iliyomalizika!

Ilipendekeza: