Sisukord:

Paindliku ekraaniga pongimäng särgil: 8 sammu (piltidega)
Paindliku ekraaniga pongimäng särgil: 8 sammu (piltidega)

Video: Paindliku ekraaniga pongimäng särgil: 8 sammu (piltidega)

Video: Paindliku ekraaniga pongimäng särgil: 8 sammu (piltidega)
Video: The Case for $20,000 oz Gold - Debt Collapse - Mike Maloney - Silver & Gold 2024, Detsember
Anonim
Paindliku ekraani mängimine särgil
Paindliku ekraani mängimine särgil
Paindliku ekraani mängimine särgil
Paindliku ekraani mängimine särgil
Paindliku ekraani mängimine särgil
Paindliku ekraani mängimine särgil

See on minu Halloweeni kostüüm aastaks 2013. See on olnud töös umbes aasta ja selle loomiseks on kulunud päris mitu meestundi. Ekraan on 14 x 15 pikslit, seega üsna madal eraldusvõime, kuid see võib siiski teha mõnda lõbusat. See on füüsiliselt paindlik igas suunas, kuigi seda ei saa kahjustamata kokku voltida. Sellel on kontroller, mis koosneb ühest nupust ja slaidipotist, mis on ühendatud USB -kaabli abil. Selleks, et seda pikka aega elus hoida, kasutab see kahte koletut 2200 mAh aku, mis on ühendatud vajaliku pinge saamiseks järjestikku, ja seejärel 5 -voldist regulaatorit, et seda kasutada. Kogu elektroonika on paigutatud taskutesse särgi siseküljel, et neid saaks eemaldada ja särki pesta. See mängib funktsionaalset pongimängu. Esmalt kaunistab see sinise kirjaga sõnu "PONG PLAY", kasutades Tom Thumbi fondi muudetud versiooni (leiate aadressilt https://robey.lag.net/2010/01/23/tiny-monospace-font).html). Viie sekundi pärast saab anda võimaluse edasi liikumiseks nuppu vajutada või nuppu mitte vajutada ja jätta endast täiesti hea kogemus. Kui keegi soovib nuppu vajutada, algab mäng. Punane mõla paremal on arvuti mõla ja paremal roheline mõla on mängija mõla, mida liigutatakse liugupoti abil üles ja alla. Pall põrkab ringi, kui kumbki pool üritab punkti saada. Mängija saab palli oma labase servaga lüüa, et seda kiirendada (kena omadus), samas kui arvuti seda teha ei saa ja jääb hoopis palliga aeglasema liigutusega kinni. Kui punkt on saadud, muutub piksel punktide valgeteks. See loeb binaarselt alt üles. kus roheline või punane on null ja valge on 1. 21 on võidu skoor (või kaotus sõltuvalt sellest, kes saab 21 punkti) ja seega, kui mängija mõla näitab 10101, kuvatakse tekst "SINA VÕIDAD". Taaskord muudetud Tom Thumbis. Sama juhtub, kuid selle asemel kuvatakse teade "KAOTAD". Pärast võitu või kaotust läheb mäng kohe pärast Pong Play uuesti punkti. Täielikuks taaskäivitamiseks vajutatakse "Magic Boxi" taaskäivitusnuppu, mida tuntakse ka kui "karbi koos kogu elektroonikaga, välja arvatud ekraan".

Samm: materjalid ja tööriistad

Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad

Tähega * tähistatud asjad on valikulised, kuid soovitavad ja seega mitte mingis kindlas järjekorras… Materjalid: 4 jardi Adafruit Neopixle'i 60 pikslit meetri kohta 1 T-särk * 1 paar sukahoidjaid 1/2 õue kangast on enam kui piisav (mitte eelistatud on veniv kangas) 6 jala pikkune USB A isas kuni USB B isane kaabel 1 USB A naissoost pistik 3 2 kontaktiga JST naissoost pistikud 4 2 kontaktiga JST meessoost juhtmed akulaadija 2 6600 mAh akud 1 Arkaadistiilis nupp 1 arduino pro-mega 1 FTDI päis 1 USB B pistikupesa koos katkestuskilbiga natuke plastikut jootma mõni traat mõni niit *mõni kuum liim *mõnda aega elastne (võib -olla natuke rohkem kui "mõni") mõni visadus (tõenäoliselt vajate seda natuke) mõni superliim rauaga alusriistad Tööriistad *Abistavad käed Tavaline käsi s (või keegi, kellel on neile juurdepääs)

Samm: lõigake LED -riba väiksemateks ribadeks

Lõika LED -riba väiksemateks ribadeks
Lõika LED -riba väiksemateks ribadeks
Lõika LED -riba väiksemateks ribadeks
Lõika LED -riba väiksemateks ribadeks
Lõika LED -riba väiksemateks ribadeks
Lõika LED -riba väiksemateks ribadeks

Kasutage eelistatud lõikeriista ja lõigake riba 14 segmenti, millest igaüks on 15 pikslit pikk. Lõika ainult vasejälgede vahel, mis on märgistatud nagu "DO" "DIN" "+5V" ja "GND". Kui see on juba vase kohal joodetud, lõigatakse see lihtsalt läbi. Püüdke mitte paljastatud vase sisse liiga palju lõigata, kuid kui te seda natuke lööte, on see hea. Kui kõik 14 riba on ära lõigatud, lõigake kummist otsast natuke kummi maha, et see ribade jootmise eest ära saaks.

Samm: ekraani kokku jootmine

Ekraani jootmine koos
Ekraani jootmine koos
Ekraani jootmine koos
Ekraani jootmine koos
Ekraani jootmine koos
Ekraani jootmine koos

Võtke traat ja lõigake see umbes 3,5 tolli (9 cm) segmentideks. Minu puhul on mul kolm erinevat värvi, et oleks lihtsam jootmisel sirgeks jääda, kuid üks värv sobiks hästi. Te vajate umbes 40 sellist väikest poissi, kuid lõigake igaks juhuks veel paar. Kui olete traadi lõikamise lõpetanud, eemaldage ja tinage selle otsad (kui teil on jootmise kogemus, võite järgmise lõigu juurde minna), mis tähendab, et pärast väikese plasti eemaldamist pange iga traadi otstesse jootet. Ärge kuumutage jootet ja proovige liikuda juhtme juurde, kuumutage koos jootekolviga vase põhjast ja pange jootet ülaosale. Olge kannatlik ja oodake, kuni kuum traat jootet sulab. On ahvatlev jootekolb jootekolvi külge kinnitada (minu kannatamatus ja ma tean täpselt, kuidas te end tunnete), kuid jootmine ei jää nii hästi kinni. Tehke sama ribade sektsioonide mõlemas otsas olevate vasejälgede puhul. Kui sellel on juba jootet, ärge muretsege selle pärast. Riba jaoks võite ehitada väikese künka, et seda hiljem hõlbustada. Ribaga töötades tehke seda kiiresti ja proovige mitte liiga palju aega ribale soojendamiseks kulutada. Tehke ainult seda, mida peate tegema, et jootet jäljele sulatada. Jootke traat igale jäljele esimese riba lõpuni (esimene riba, millel on juhtmed ja pistik, jootke see avatud otsa külge). Kui vaatate riba, näete sellel väikeseid nooli, mis ulatuvad lõpuni, kus traat joodeti. Võtke teine riba nii, et nooled osutaksid vastassuunda, ja jootke GND jäljest tulev traat teise GND jäljele, +5 V +5 V jne. Korrake seda, veendudes, et nooled vahetaksid suunda pärast igat sektsiooni, nii et kui te neid järgiksite, liiguks see üles -alla siksakiliselt ja et selle saaks lõpuks pikaks venitada. Kui kõik 14 riba on joodetud, asetage need välja ja joondage nii, et LED -id moodustaksid võrgu. Seejärel hoidke neid koos, kasutades meetodit, mille saab hiljem eemaldada ilma riba kahjustamata. Kasutasin kleeplinti. See on piisavalt kleepuv, et hoida kõike koos, kuid mitte nii kleepuv, et jääke jääks. Ma ei soovita midagi püsivale, näiteks klambreid või kleeplinti. Kui kõik on kokku kleebitud, jootke traat alumisel ribal +5V kohe kõrval olevale. Korrake seda, kuni kogu põhjas on voolikraanid lõpuni. See on nii, et ekraan ei hämardu LED -ide edenedes.

4. samm: põhielektroonika jootmine

Põhielektroonika jootmine
Põhielektroonika jootmine
Põhielektroonika jootmine
Põhielektroonika jootmine
Põhielektroonika jootmine
Põhielektroonika jootmine

Jootke USB B katkestusplaat (BOB) USB B pistiku külge. Jootke sobivad juhtmed USB A pistikusse. Soovitan vaadata pistiku pistikut, nagu see on sellel veebisaidil, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Ärge muretsege, kuhu USB A -pistiku juhtmete teised otsad kohe jootma hakata; mida käsitletakse kontrolleri etapis. Lõika andmeliides ribalt välja, naissoost pistik, mitte isane pistik (naissoost pistik on saadud teisest otsast). Jootke isased JST -pistikud aku otste külge, nii et punane läheb punaseks ja must läheb mustaks. Sulatage termokahanevad torud katmata juhtmete kohal (libistage enne jootmist üle), nii et need ei tekiks lühisust ega kasutaks midagi muud, näiteks elektrilinti või kuuma liimi. Jootke mõned juhtmed kõigi naissoost JST -pistikute külge. Veenduge, et pistikupesa oleks ühendatud, nii et tihvtid ei liiguks ümber. Olge polaarsusega ettevaatlik ja veenduge, et juhtmed sobiksid isaste pistikutega. Jootke juhtmed uuesti kõrgepinge pistiku (kuid mitte selle paari) külge, veendudes, et kõik värvid sobivad kokku ja et need on ühendatud, et vältida nihkeid. Jootke naissoost lihtsalt pistiku/juhtme komplekt nii, et need oleksid ühendatud järjestikku, mitte paralleelselt, et saada see üle toiteregulaatori lävipinge. Niisiis, jootke positiivne juhe teise komplekti negatiivse juhtme külge, nii et nüüd on meil üks jootmata positiivne juhe ja üks negatiivne joodeta juhe ning kaks joodetud juhet on joodetud erinevate pistikute külge. Võtke negatiivne juhe ja salvestage see jootmiseks miinusjuhtme külge mujal. Nüüd võtke positiivne juhe ja jootke see lülitile. Kui on kolm või enam tihvti (või rohkem kui üks viis "sisse"), jootke see keskmise tihvti külge. Pange tähele, et keskmine tihvt ei pruugi füüsiliselt keskel olla. Selle tuvastamise viis on leida tihvt, mis lüliti mis tahes olekus sisselülitamisel alati teise tihvtiga ühendatakse. Kui ükski tihvt pole selline, on teil väga eriline lüliti; lihtsalt ühendage see mis tahes tihvtiga ja veenduge, et järgmine lülitile joodetud juhe ühendatakse selle juhtmega vähemalt ühes olekus. Nüüd jootke pingeregulaatori positiivne sisselasketraat lüliti vastassuunas, nagu eespool kirjeldatud. Jootke postituspinge välja jootmata suure voolupistiku positiivse otsa. Võtke negatiivne sisselasketraat ja jootke see suure voolupistiku negatiivse otsa külge. Nüüd jootame toite paralleelselt Arduino ja Power ribaga. Võtke nüüd pingeregulaatori väljundjuhtmed ja jootke kaks traati nii positiivsele kui ka negatiivsele otsale, nii et need tuleksid Y -kujuliselt välja. Jootke kahe kontaktiga pistik led -ribakomplekti positiivsete ja negatiivsete juhtmete külge. Pole tähtis, millist tüüpi pistikut te kasutate, see võib olla JST või minu puhul mõni toite-/helikaabel või midagi muud (ma pole kindel ja vabandan, et pilte pole). Jootke üks positiivsetest toitejuhtmetest valgusriba vastaspistiku positiivse otsa külge ja üks negatiivne juhe pistiku teise tihvti külge. Tehke sama, kuid isase JST -pistiku/juhtmestiku puhul. Ärge unustage kogu aeg jootekohti isoleerida, et vältida lühiseid. Nüüd, mida teha USB B -pistikuga. Jootke positiivne juhe Arduino Pro Mega 5v auku. Võtke maandusjuhe ja jootke see GND auku. Võtke D+ ja jootke see digitaalsele tihvtile (või antud juhul auku) 40. Jootke D- analoogpoldile 15. Jootke LED-riba isase pistikuga ühilduva naisliidese andmeotsik andmestiku 6 ja maandusjuhe GND tihvti külge. Maskeerimis- või kleeplint sobib suurepäraselt juhtmete hoidmiseks plaadi külge, nii et need ei kukuks välja, kui see jootmiseks ümber pöörata. Võtke nüüd hetknupp ja jootke traat ühest otsast VCC -tihvti (või mis tahes pingeväljundi tihvti) ja teise otsa RESET -tihvti külge.

Samm: kontroller

Kontroller
Kontroller
Kontroller
Kontroller
Kontroller
Kontroller

Esiteks on õige kuju valimine alustamiseks. Kõik sõltub sellest, kuidas soovite kontrolleri struktureerida. Tahtsin rohkem lamedat kontrollerit, nii et sain 3 1/2 "3/4" plaadi. korraldage osad viisil, mis tundub sobiv ja mugav töötada. Kasutage prantsuse kõverat, kompassi, kolmnurka ja sirget serva, et joonistada, kuhu kõik tükid peaksid minema. Lõika põhikontuur oma valitud lõikeriista abil. Kõige parem oleks keelatud saag, kuid ma kasutasin toimetussaega, mis töötas suurepäraselt. Lihvige servad sujuvalt üle, seejärel lihvige nurgad mugavamaks. Puurige lüliti jaoks auk välja, seejärel lihvige, peitlite ja/või eemaldage põhjast kõik osad, mis sobivad. Proovige ülaosaga mitte midagi teha ja lihvige välja ainult see, mida vajate, et seda sisse keerata, keerates, õngitsedes või muul viisil, et see sisse saaks. Kui see on plastikust mutriga kinnitatud ja kinnitage lüliti. Puurige potentsiomeetri nupu ala läbi ja peitlige see välja, et see saaks sisse vajuda ja sobiks täielikult. Puurige välja mõned augud, et kruvi saaks selle kinni hoida. Painutage USB A -pistiku väikesed tükid, mis muudavad selle üldise laiuse veidi suuremaks (vaadake pilte). Tükeldage pistiku osa välja, kontrollides järk -järgult, kas pistik sobib. Superliimige pistik oma pesasse. Võtke väike tükk plastikut ja lõigake see kuju, mis sobib üle pistiku (vaadake pilte), ja klammerdage see siis puidu külge. Lõigake ära kõik tükid, mis võivad teid takistada. Keerake potentsiomeeter sisse ja kinnitage nupp. Jootke positiivne juhe potentsiomeetri ühte otsa (mitte muutuv osa) ja negatiivne juhe teise otsa. Jootke D-tihvt potti muutuva tihvti külge. Jootke traat poti tihvtilt positiivse juhtmega ühe nupu tihvti külge. Jootke D+ nupu teise tihvti külge. Kärpige varutraati ja isoleerige seda vajavad osad.

6. samm: särk

Särk
Särk
Särk
Särk
Särk
Särk

Leidke mugav särk, mis laseb valguse läbi. Valisin selle põhilise valge T-särgi. Värv või stiil pole tegelikult oluline, kui valgus on seestpoolt läbi paistmas. Kuid ma ei soovita esiküljel olevat graafikat. Asetage särgile kõik, mis aitab teil otsustada, kuhu soovite seda kasutada, ja kasutage selle joonistamiseks kustutatavat märgistustööriista. Mul (see tähendab mõnel tuttaval inimesel) on pliiats, mis on mõeldud kangaste märgistamiseks ja mis on kergesti pestav. Mõõtke patareide, kontrolleri korpuse ja ekraani suurust ning lõigake sobivaks paberitükid. Seejärel kinnitage paber mitteveniva kangaga. Kudumine sobib selleks hästi. Seejärel lõigake ristkülik välja, jättes õmbluse jaoks umbes veerand tolli ümber. Seejärel triikige paberitükki juhendina voldid kangasse. Nüüd saab paberi eemaldada. Tasku ülaosa voldi see kolm korda enda kohale. Triikige ja kinnitage, et see paigal püsiks. Õmble õmblusniit voltide keskele. Võtke nüüd nurk ja klappige see kokku nii, et üksteisega risti olevad õmblemata servad oleksid paralleelsed ja õmblege nurk lähimal triigitud kortsus (pildid aitavad tõesti). Tehke seda ka teise nurga jaoks. Kui juhtub, et taskust tuleb välja lülituslüliti, õmble nööpauk tasku põhja, kus lüliti puudutab. Seejärel õmble nööpauk ja lõika keskosa välja. Täpsemaid juhiseid ma tõesti anda ei saa, sest mul oli lahe tööriist nööpaukude tegemiseks. Lihtsalt veenduge, et teete augud enne tasku õmblemist. Võtke mõned nööpnõelad ja pistke need läbi särgi tasku märgiste nurkades. Võtke tasku ja pange iga nurk tihvti juurde (särgi siseküljele), jättes õmbluse jaoks veerand tolli ja kinnitage see särgi külge. Pärast tasku kinnitamist. eemaldage nööpnõelad, mis taskut kinni ei hoia, ja õmble tasku särgi külge. Korda kõikide taskutega. Ekraani hoidva suure tasku jaoks jätke tasku põhja juhtmete jaoks tühimik. Särgile augu tegemiseks märkige see koht ja võtke triikraud aluspinnale (läikivam osa kangal) ja triikige see peale. Seejärel tehke väikese augu jaoks (nagu see, mida ma lülituslüliti jaoks kasutasin). Suurema augu jaoks märkige kontuur ja kasutage mööda joont (või kõverat või mis teil on) siksakpistet ja lõigake keskosa välja. Kui soovite, võite taskute raskuse hoidmiseks kasutada trakse, kaks klambrit, mis hoiavad kinni taskutel ees ja tagumine klamber pükstel. Sain ka väikese varruka kangast, mis oli õmmeldud trakside osadele, mis puudutavad minu nahka. Kaks särki võivad veidi liiga kuumaks minna, nii et ma loobusin ja kasutasin väikest kangast varrukat.

Samm: programmeerimine

Programmeerimine
Programmeerimine

Ja siin on kood. On mõned osad, mida on hästi kommenteeritud, kuid valdav enamus mitte. Kui teil on küsimusi erinevate osade kohta, võite anda mulle rea numbri (rea #number) ja anda koopia reast ja funktsioonist, milles see asub (nt loop () või compMovePaddle ()) ja ma annan endast parima, et seda teile selgitada, seejärel lisan koodi selgitavale kommentaarile. #include #define PIN 6 // ütleb, millised on mängu sisendnõelad int nuppPin = 40; // dikteerib skoori, hoitakse binaarses massiivis, kuna see on esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // dikteerib palli suuna int bvd = 0; // 0 on allapoole, 1 on üles int bhd = 0; // 0 on paremal, 1 vasakule // dikteerib kuulide asendi int bvp = 8; int bhp = 6; // kontrollib, kas pall on kiirrežiimis boolean fast = false; // kontrollib, kas see on skoor. boolean cIsPoint = vale; boolean pIsPoint = vale; // mõlaasendid int cPaddle = 0; int pPaddle = 0; kaua eelmineMillis = 0; kaua eelmineMillisForComp = 0; // kiire ja aeglaselt liikuva palli viivitusaja määramine "Int" normInt ja fastInt on intervalli int normInt = 50; int fastInt = 10; // kasutatakse võidu kontrollimiseks. 1 on mängija võit, -1 arvutivõit ja 0 pole veel midagi juhtunud int win = 0; // veast vabanemiseks. kasutatakse lauses addOne ja mitte kusagil mujal. int mis = 0; // Asi, mis kuvatakse enne algust, -1 on põgenemine int pongPlay = {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, 103, 131, 132, 136, 139, 144, 145, 146, 147, 148, 161, 162, 166, 175, 183, 185, 192, 194, 195, 196, 197, 198, 199, 204, 205, 206, 207, 208, -1}; // kui võidate endas Võidate = {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}; // kui kaotate end kaotate = {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}; // seadistab ledriba Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // seadistamine, ei keera sisestamiseks tihvti 40, alustab riba, kuvab // sõnumi ja näitab seda. void setup () {pinMode (buttonPin, INPUT); riba.algus (); for (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); viivitus (5000); while (digitalRead (buttonPin) == LOW) {// See on lõks! (kuni nuppu vajutatakse.)}} void loop () {clearScreen (); // joonistab mõlad, et näidata tulemust (int i = 0; i <5; i ++) {if (playerScore == 1) {strip.setPixelColor (204-i, strip. Color (255, 255, 255)); } else if ((playerScore == 0)) {strip.setPixelColor (204-i, strip. Color (0, 255, 0)); } if (compScore == 1) {strip.setPixelColor (5+i, strip. Color (255, 255, 255)); } else if ((compScore == 0)) {strip.setPixelColor (5+i, strip. Color (255, 0, 0)); }} // tõmbab palli oma algasendisse riba.setPixelColor (98, riba. Värv (255, 255, 255)); strip.show (); // otsustab, kas pall tõuseb või läheb alla (pIsPoint == false && cIsPoint == false) {clearScreen (); allkirjata pikk voolMillis = millis (); // määrab mängija mõla positsiooni pPaddle = checkPaddlePos (); // kontrollib järgmist positsiooni checkNext (); // palli liigutamine if (kiire == vale) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} else if (fast == true) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }} // joonista pall, kui (bhp%2! = 0) {strip.setPixelColor (bhp*15+14-bvp, strip. Color (255, 255, 255)); } else if (bhp%2 == 0) {strip.setPixelColor (bhp*15+bvp, strip. Color (255, 255, 255)); } // arvuti mõla liikumine compMovePaddle (); // draw's mõlad drawPaddles (); // tegelikult pane kõik üles.strip.show (); // kontrollimine, kas punkt on saadud, kui (pIsPoint == true) {mis = 0; bhd = 0; addOne (); murda; } else if (cIsPoint == true) {mis = 1; bhd = 1; addOne (); murda; }} kui (win == 1) {clearScreen (); for (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } viivitus (5000); jaoks (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } võit = 0; } else if (win == -1) {clearScreen (); for (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } viivitus (5000); jaoks (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } võit = 0; } pIsPoint = vale; cIsPoint = vale; bvp = 8; bhp = 6; bvd = juhuslik (0, 2); // 0 on alla, 1 on kiiresti üles = vale; } // Mängu tehisintellekt void compMovePaddle () {unsigned long currentMillis = millis (); if (currentMillis - previousMillisForComp> 51) {previousMillisForComp = praeguneMillis; if (bvp> = 13 && 10-cPaddle 0) {cPaddle--; } else if (bvp = 0 && cPaddle <10) {cPaddle ++; } else if (bvp-3> 10-cPaddle && 10-cPaddle> = 0 && cPaddle> 0) {cPaddle--; } muidu kui (bvp <10-cPaddle && 10-cPaddle <= 10) {cPaddle ++; }}} // liigutab palli tühi moveBall () {if (bhd == 0) {bhp--; } muidu kui (bhd == 1) {bhp ++; } kui (bvd == 0) {bvp--; } muidu kui (bvd == 1) {bvp ++; }} // lisab massiivi ühe. Kui kumb on 0, lisab see mängija skoori. Kui see on 1, lisab see arvutitele void addOne () {if (mis == 0) {// kui see on mängija skoor // Lisa üks. See on kõige lihtsam viis, kuidas ma tean. for (int i = 0; i <5; i ++) {// loop if (playerScore == 0) {// kui see väärtus on null playerScore = 1; // tee sellest 1 vaheaeg; // siis mine minema} muu {// kui see on 1 mängijaSkoor = 0; // tee see nulliks ja silmus}}} muud kui (mis == 1) {jaoks (int i = 0; i <5; i ++) {if (compScore == 0) {compScore = compScore +1; murda; } muu {compScore = 0; }}} // Kontrollib, kas keegi võitis. kui (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } muidu kui (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }} // kontrollib pallide järgmist positsiooni void checkNext () {// kontrollib, kas punkt on saadud, kui (bhp == 13) {pIsPoint = true; } else if (bhp == 0) {cIsPoint = true; } // kui punkt on kogutud, siis jätke ülejäänud asjad vahele, kui (pIsPoint == false || cIsPoint == false) {// kontrollib palli vertikaalselt, kui (bvp+bvd == 15) {bvd = 0; } muidu kui (bvp+bvd == 0) {bvd = 1; } // kontrollib palli horisontaalselt, kui (bhp+bhd == 13) {// kõigepealt arvuti poolel, kui (bvp> = 10-cPaddle && bvp <= 10-cPaddle+4) {if (bhd == 1) {bhd = 0; } muidu kui (bhd == 0) {bhd = 1; } kiire = vale; } muidu kui (bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5) {if (bvp! = 0 && bvp! = 14) {if (bvd == 0) {bvd = 1; } muidu kui (bvd == 1) {bvd = 0; } bhd = 1; } muidu kui (bvp == 0 || bvp == 14) {bhd = 1; } kiire = vale; }} muidu kui (bhp+bhd == 1) {// siis mängija poolel, kui (bvp> = pPaddle && bvp <= pPaddle+4) {// kas see lööb mõla tavalisse kohta? // põrka palli! kui (bhd == 1) {bhd = 0; } muidu kui (bhd == 0) {bhd = 1; }} else if (bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle) {// kas see lööb nurgas olevat mõla, kui (bvp! = 0 && bvp! = 14) {// kas see on ei kõrgel ega madalal? // põrka palli! kui (bvd == 0) {bvd = 1; } muidu kui (bvd == 1) {bvd = 0; } bhd = 1; kiire = tõsi; } muidu kui (bvp == 0 || bvp == 14) {// kas see on kõrgel või madalal? // põrka palli! bhd = 0; kiire = tõene; // määrake väärtus hilisemaks, et pall kiiresti liiguks}}}}} int checkPaddlePos () {// loeb potti ja otsustab mõla asendi vastavalt, kui (analogRead (A15) <93) {return 0; } else if (analogRead (A15) <186) {return 1; } else if (analogRead (A15) <279) {return 2; } else if (analogRead (A15) <372) {return 3; } else if (analogRead (A15) <465) {return 4; } else if (analogRead (A15) <558) {return 5; } else if (analogRead (A15) <652) {return 6; } else if (analogRead (A15) <745) {return 7; } else if (analogRead (A15) <837) {return 8; } else if (analogRead (A15) <= 931) {return 9; } else if (analogRead (A15) <= 2014) {return 10; }} void drawPaddles () {// joonistab mõlad õigesse kohta ja kuvab mõla punktisumma (int i = 0; i <5; i ++) {if (playerScore == 1) {strip. setPixelColor (pPaddle+i, riba. Värv (255, 255, 255)); } else if ((playerScore == 0)) {strip.setPixelColor (pPaddle+i, strip. Color (255, 0, 0)); } if (compScore == 1) {strip.setPixelColor (199+cPaddle-i, strip. Color (255, 255, 255)); } else if ((compScore == 0)) {strip.setPixelColor (199+cPaddle-i, strip. Color (0, 255, 0)); }}} void clearScreen () {for (int i = 0; i <= 210; i ++) {strip.setPixelColor (i, strip. Color (0, 0, 0)); } strip.show (); }

8. etapp: valmistoode

Lõpetatud toode
Lõpetatud toode
Lõpetatud toode
Lõpetatud toode

Ja näete, valmis särk!

Soovitan: