Obsah:

Pong hrajúci flexibilnú obrazovku na tričku: 8 krokov (s obrázkami)
Pong hrajúci flexibilnú obrazovku na tričku: 8 krokov (s obrázkami)

Video: Pong hrajúci flexibilnú obrazovku na tričku: 8 krokov (s obrázkami)

Video: Pong hrajúci flexibilnú obrazovku na tričku: 8 krokov (s obrázkami)
Video: Волшебный заброшенный испанский особняк основателя колледжа | Невероятная архитектура внутри! 2024, November
Anonim
Pong hrajúci flexibilnú obrazovku na tričku
Pong hrajúci flexibilnú obrazovku na tričku
Pong hrajúci flexibilnú obrazovku na tričku
Pong hrajúci flexibilnú obrazovku na tričku
Pong hrajúci flexibilnú obrazovku na tričku
Pong hrajúci flexibilnú obrazovku na tričku

Toto je môj halloweensky kostým na rok 2013. Pracuje sa na ňom približne rok a jeho výroba trvala niekoľko hodín. Obrazovka má 14 x 15 pixelov, teda dosť nízke rozlíšenie, ale napriek tomu dokáže robiť niekoľko zábavných vecí. Je fyzicky flexibilný vo všetkých smeroch, aj keď ho nemožno zložiť bez poškodenia. Má ovládač pozostávajúci z jediného tlačidla a posuvného hrnca, ktorý je k pro mega pripojený prostredníctvom USB. Aby to dlho vydržalo, používa dve monštruózne 2 200 mAh batérie zapojené do série, aby získali potrebné napätie, a potom 5 voltový regulátor, aby bol použiteľný. Všetka elektronika je umiestnená vo vreckách na vnútornej strane trička, takže ich možno vybrať a košeľu je možné prať. Hrá funkčnú hru pong. Najprv ho ozdobí slovami „PONG PLAY“krásnym modrým písmom pomocou upravenej verzie písma Tom Thumb (nájdete ho na https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Po piatich sekundách je možné dať tlačidlo stlačiť, aby sa pokračovalo, alebo tlačidlo nestlačiť a zanechať za sebou dokonale dobrý zážitok. Keď sa niekto rozhodne stlačiť tlačidlo, hra sa začína. Červené pádlo napravo je pádlo k počítaču a zelené pádlo na pravej strane je pádlo pre hráča, ktoré sa ovláda posúvačom a pohybuje sa hore a dole. Lopta sa odráža, keď sa každá strana pokúša získať bod. Hráč môže naraziť na loptičku okrajom pádla, aby ju urýchlil (pekná funkcia), zatiaľ čo počítač to nemôže urobiť, a namiesto toho skončí tak, že sa zasekne a pohybuje sa mierne pomalšie ako lopta. Keď je bod dosiahnutý, pixel sa na pádle hodnotiacich strán zmení na biely. Počíta sa binárne odspodu. kde zelená alebo červená je nula a biela je 1. 21 je skóre, ktoré je potrebné vyhrať (alebo prehrať v závislosti od toho, kto získa 21 bodov), a preto keď hráč paddle zobrazí 10101, zobrazí sa text „VYHRAJETE“. Opäť v upravenom Tom Thumb. To isté sa stane, ale namiesto toho sa zobrazí „YOU LOSE“. Po výhre alebo prehre sa hra reštartuje do bodu bezprostredne po hre Pong Play. Na úplné reštartovanie zariadenia je stlačené tlačidlo reštartu na „Magic Box“, známom tiež ako „box s celou elektronikou okrem obrazovky“.

Krok 1: Materiály a nástroje

Materiály a nástroje
Materiály a nástroje
Materiály a nástroje
Materiály a nástroje

Veci označené * sú voliteľné, ale odporúčajú A tak v žiadnom konkrétnom poradí … Materiály: 4 yardy Adafruit Neopixle 60 pixelov na meter pásika 1 tričko * 1 pár podväzkov 1/2 yardu látky bude viac než dosť (nie uprednostňuje sa pružná väzba) 6-stopový kábel USB A samec na USB B samec 1 konektor USB A samica 3 2-kolíkové konektory JST samice 4 2-pinové samčie vodiče JST nabíjačka batérií 2 6600 mAh batérie 1 arkádový štýl Tlačidlo 1 arduino pro-mega 1 konektor FTDI 1 zásuvka USB B s oddeľovacou doskou 1 vypínač/prepínač (prepínač) 1 resetovací prepínač (prepínací alebo okamžitý) 1 posuvný potenciometer *1 gombík posuvného hrnca 1 pár konektorov vysokého zosilňovača *1 puzdro na projekt 1 regulátor napätia 5 V 3+ malý trochu plastu trochu spájky nejaký drôt niť *trochu horúceho lepidla *nejaký čas elastické (možno trochu viac ako „nejaké“) trochu vytrvalosti (pravdepodobne na to budete skutočne potrebovať dosť) nejaké teplom zmrštiteľné hadičky alebo elektrickú pásku nejaké super lepidlo nejaké železo na podložku Nástroje *Pomocné ruky normálnou rukou s (alebo niekto s prístupom k nim) Spájkovačka *Horúca lepiaca pištoľ Dremel alebo dláto na brúsny papier Odizolovače drôtov Nôž na strihanie drôtov Skrutkovač a skrutkovač Pílové čapy Šijací stroj Látkové nožnice

Krok 2: Odstrihnite pásik LED na menšie prúžky

Odrežte pásik LED na menšie prúžky
Odrežte pásik LED na menšie prúžky
Odrežte pásik LED na menšie prúžky
Odrežte pásik LED na menšie prúžky
Odrežte pásik LED na menšie prúžky
Odrežte pásik LED na menšie prúžky

Použite uprednostňovaný rezací nástroj a prúžok rozrežte na 14 segmentov, každý s dĺžkou 15 pixelov. Strihajte iba medzi medenými stopami, označenými niečím ako „DO“„DIN“„+5V“a „GND“. Ak je už spájkovaný s meďou, práve sa prerezali. Pokúste sa nekrojiť príliš veľa do odhalenej medi, ale ak ju trochu prerezáte, je to v poriadku. Akonáhle je všetkých 14 pásikov odstrihnutých, odstrihnite trochu gumy z každého konca, aby sa uvoľnila z cesty na spájkovanie pásikov.

Krok 3: Spájkovanie obrazovky dohromady

Spájkovanie obrazovky dohromady
Spájkovanie obrazovky dohromady
Spájkovanie obrazovky dohromady
Spájkovanie obrazovky dohromady
Spájkovanie obrazovky dohromady
Spájkovanie obrazovky dohromady

Vezmite drôt a nastrihajte ho na asi 3,5 cm (9 cm) segmenty. V mojom prípade mám tri rôzne farby, aby bolo pri spájkovaní jednoduchšie držať sa rovno, ale jedna farba bude fungovať dobre. Budete potrebovať asi 40 týchto malých chlapcov, ale pre prípad potreby odstrihnite ešte pár. Akonáhle dokončíte strihanie drôtu, odizolujte a pocínujte konce (Ak máte skúsenosti so spájkovaním, môžete preskočiť na nasledujúci odsek), to znamená, že po odstránení trochy plastu naneste na konce každého drôtu spájku. Neohrievajte spájku a pokúste sa prejsť na drôt, zahrievajte spájkovačku zo spodnej časti medi a spájku umiestnite na vrch. Buďte trpezliví a počkajte, kým horúci drôt roztaví spájku. Je lákavé natlačiť spájkovačku na spájku, aby sa začala (Moja netrpezlivosť a presne viem, ako sa cítite), ale spájka sa tiež nelepí. To isté urobte s odhalenými medenými stopami na každom konci pásových úsekov. Ak už má spájku, nebojte sa o to. Pokiaľ ide o pás, možno budete chcieť vybudovať malý kopec, aby ste to neskôr uľahčili. Pri práci s pásikom to urobte rýchlo a snažte sa netráviť veľa času pôsobením tepla na pás. Vykonajte iba to, čo je potrebné na roztavenie spájky na stopu. Na každú stopu spájkujte drôt na koniec prvého prúžku (prvý prúžok je ten s vodičmi a konektorom, spájkujte ho s odhaleným koncom). Ak sa pozriete na pásik, uvidíte na ňom malé šípky, ktoré siahajú až do konca, kde ste spájkovali drôt. Vezmite ďalší prúžok tak, aby šípky smerovali opačným smerom, a spájkujte drôt prichádzajúci zo stopy GND so stopou GND druhého, +5V do +5V a tak ďalej. Opakujte to a uistite sa, že šípky menia smer po každej sekcii, takže ak by ste ich nasledovali, cik -cak by sa pohyboval hore -dole a aby sa na konci dal roztiahnuť na dlhý pás. Akonáhle je všetkých 14 pásikov spájkovaných, rozložte ich a zarovnajte tak, aby diódy LED tvorili mriežku. Potom ich držte pohromade pomocou metódy, ktorú je možné neskôr odstrániť bez poškodenia prúžku. Použil som škótsku pásku. Je dostatočne lepkavý, aby udržal všetko pohromade, ale nie taký lepkavý, aby zanechal zvyšky. Neodporúčam nič na trvalé, ako napríklad sponky alebo lepiace pásky. Akonáhle je všetko zlepené dohromady, spájkujte drôt z prúžku na spodnej strane +5 V k drôtu bezprostredne vedľa neho. Opakujte, kým celé dno nebude mať napájacie kohúty po celej dĺžke. Dôvodom je, že obrazovka sa pri postupe radu diód LED nezhasne.

Krok 4: Spájkovanie základnej elektroniky

Spájkovanie základnej elektroniky
Spájkovanie základnej elektroniky
Spájkovanie základnej elektroniky
Spájkovanie základnej elektroniky
Spájkovanie základnej elektroniky
Spájkovanie základnej elektroniky

Spájajte oddeľovaciu dosku USB B (BOB) s konektorom USB B. Zapájajte príslušné vodiče do konektora USB A. Odporúčame pozrieť sa na vývod konektora, ktorý nájdete na tejto webovej stránke, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Nerobte si starosti s tým, kam teraz spájať ostatné konce vodičov na konektore USB A; ktoré budú zahrnuté v kroku ovládača. Vystrihnite dátový konektor z prúžku, zásuvkový konektor, nie zástrčkový konektor (Zásuvkový konektor sa dostane z druhého konca). Samce JST konektorov spájkujte na konce batérie tak, aby červená prechádzala na červenú a čierna na čiernu. Na nechránené vodiče roztiahnite teplom zmrštiteľné hadičky (prevlečené pred spájkovaním), aby sa neskrátili alebo použili niečo iné, ako napríklad elektrickú pásku alebo horúce lepidlo. Spájkujte niektoré vodiče so všetkými ženskými konektormi JST. Uistite sa, že máte zapojený mužský koniec, aby sa kolíky neposúvali. Dávajte pozor na polaritu a zaistite, aby sa vodiče zhodovali s konektormi typu samec. Znova spájkujte vodiče k vysokonapäťovému konektoru (nie však k jeho páru) a uistite sa, že sa všetky farby zhodujú a sú prepojené, aby sa zabránilo posunutiu kolíkov. Spájkujte zostavu konektora/vodiča len tak, aby boli zapojené do série, nie paralelne, aby sa dostali za prahové napätie regulátora výkonu. Takže spájkujte kladný vodič s mínusovým vodičom druhej zostavy, takže teraz máme jeden nespájkovaný kladný vodič a jeden záporný nespájkovaný vodič a dva spájkované vodiče sú spájkované k rôznym konektorom. Vezmite záporný vodič a uložte ho na spájkovanie so záporným vodičom inde. Teraz vezmite kladný vodič a spájkujte ho s prepínačom Ak existujú tri alebo viac pinov (alebo viac ako jeden spôsob „zapnutia“), zapojte ho na stredný kolík. Upozorňujeme, že „stredný kolík“nemusí byť fyzicky v strede. Identifikujete ho tak, že nájdete pin, ktorý keď je spínač zapnutý, v každom stave bude vždy pripojený k inému pinu. Ak žiadny pin nie je taký, potom máte veľmi špeciálny prepínač; stačí ho pripojiť k akémukoľvek kolíku a uistiť sa, že ďalší vodič spájkovaný k prepínaču bude k tomuto vodiču pripojený aspoň v jednom zapnutom stave. Teraz zapojte kladný prívodný vodič na regulátore napätia na opačný koniec spínača, ako je uvedené vyššie. Rozpájajte kladné napätie na kladný koniec neodpájkovaného silnoprúdového konektora. Vezmite záporný prívodný vodič a spájkujte ho so záporným koncom konektora vysokého prúdu. Teraz budeme spájkovať výkon súbežne s pásikom Arduino a Power. Teraz vezmite výstupné vodiče regulátora napätia a spájkujte dva kusy drôtu na kladný aj záporný koniec, aby vyšli v tvare Y. Pripojte dvojpólový konektor k kladnému a zápornému vodiču zostavy pásika LED. Nezáleží na tom, aký typ konektora použijete, môže to byť JST alebo v mojom prípade nejaký napájací/zvukový kábel alebo niečo (nie som si istý a ospravedlňujem sa, že nemám žiadne obrázky). Spájkujte jeden z kladných silových vodičov na kladný koniec opačného konektora pre svetelný pás a jeden zo záporných vodičov na druhý kolík konektora. To isté urobte, ale pre mužskú zostavu konektora/drôtu JST. Nezabudnite na izoláciu spájkovacích spojov, aby ste predišli skratom. Teraz k tomu, čo robiť s konektorom USB B. Spájajte kladný vodič do 5v otvoru v Arduino Pro Mega. Vezmite uzemňovací vodič a zapájajte ho do otvoru GND. Vezmite D+ a spájkujte ho s digitálnym kolíkom (alebo v tomto prípade s otvorom) 40. Spájkujte D- s analógovým kolíkom 15. Spájkujte dátový koniec konektora, ktorý je v páse s konektorom LED páskového konektora s dátovým kolíkom 6 a uzemňovací vodič na kolík GND. Maskovacia alebo škótska páska funguje skvele na držanie drôtov na doske, aby nevypadli, keď sa preklopia na spájkovanie. Teraz vezmite chvíľkové tlačidlo a spájajte drôt z jedného konca na kolík VCC (alebo akýkoľvek výstupný kolík napätia) a druhý koniec na kolík RESET.

Krok 5: Ovládač

Ovládač
Ovládač
Ovládač
Ovládač
Ovládač
Ovládač

Na začiatku je výber správneho tvaru. Všetko závisí od toho, ako chcete mať ovládač štruktúrovaný. Chcel som viac plochého ovládača, takže som dostal kus 3 1/2 "x 3/4" dosky. usporiadajte diely spôsobom, ktorý sa zdá byť vhodný a pohodlne sa s nimi pracuje. Pomocou francúzskej krivky, kompasu, trojuholníka a rovného okraja nakreslite, kam by mali ísť všetky figúrky. Vystrihnite základný obrys pomocou rezného nástroja, ktorý si vyberiete. Banová píla by bola najlepšia, ale použil som vyrovnávaciu pílu, ktorá fungovala dobre. Okraje obrúste, aby plynule prešli, a potom brúste rohy, aby to bolo pohodlnejšie. Vyvŕtajte otvor pre vypínač a potom vybrúste, dláto a/alebo Dremel vytiahnite akúkoľvek časť v spodnej časti, aby sa zmestila. Snažte sa nič nerobiť s vrchnou časťou a vybruste iba to, čo potrebujete, aby ste do nej mohli zapadnúť skrútením, naklonením alebo čímkoľvek iným, aby sa do nej zapichlo. Akonáhle je vo, pripevnite ju plastovou maticou a pripevnite prepínač. Vyvŕtajte oblasť tak, aby sa gombík potenciometra zmestil a vyhĺbte oblasť, aby sa mohla zapustiť a zapadnúť celú. Vyvŕtajte niekoľko otvorov, aby ich mohla držať skrutka. Ohnite malé kúsky konektora USB A, aby sa celková šírka trochu zväčšila (pozrite sa na obrázky). Vyseknite časť konektora a postupne kontrolujte, či konektor sedí. Super prilepte konektor do otvoru. Vezmite malý kúsok plastu a nakrájajte ho na tvar, ktorý sa zmestí do konektora (pozrite sa na obrázky), a potom ho zošite na drevo. Odrežte všetky kúsky, ktoré by mohli prekážať. Zaskrutkujte potenciometer a pripevnite gombík. Pripojte kladný vodič k jednému z koncov potenciometra (nie k variabilnej časti) a záporný vodič k opačnému koncu. Spájkujte D- kolík s variabilným kolíkom na hrnci. Spájajte drôt z kolíka na hrnci s kladným vodičom na jeden z kolíkov na tlačidle. Spájkujte D+ na druhý kolík na tlačidle. Odstrihnite náhradný drôt a zaizolujte kusy, ktoré to potrebujú.

Krok 6: Tričko

Tričko
Tričko
Tričko
Tričko
Tričko
Tričko

Nájdite si pohodlné tričko, ktoré prepúšťa svetlo. Vybral som si toto základné biele tričko. Na farbe alebo štýle nezáleží, pokiaľ svetlo vidno presvitať zvnútra. Neodporúčam však grafiku na prednej strane. Rozložte všetko na tričko, ktoré vám pomôže rozhodnúť sa, kde ho chcete použiť, a nakreslite ho pomocou vymazateľného značkovacieho nástroja. Ja (myslím niektorých ľudí, ktorých poznám) mám ceruzku určenú na označovanie tkanín, ktorá sa ľahko vymýva. Zmerajte veľkosť batérií, puzdro ovládača a obrazovku a vystrihnite kúsky papiera, ktoré zodpovedajú. Potom papier prišpendlite k kusu nepružnej látky. Na to dobre funguje väzba. Potom vystrihnite obdĺžnik a ponechajte asi štvrť palca na šev po celom obvode. Potom pomocou kusu papiera ako vodítka zažehlite záhyby v tkanine. Teraz je možné papier odstrániť. Na časti vrecka, ktoré bude zhora, ho trikrát zložte. Žehlite a prišpendlite, aby držalo na svojom mieste. Celú časť preložte v strede záhybu. Teraz vezmite roh a zložte ho tak, aby boli nezašité okraje navzájom kolmé na seba rovnobežné a zožehľte vzhľad pozdĺž nažehlenej ryhy najbližšie k rohu (Obrázky skutočne pomáhajú). Urobte to aj pre druhý roh. Ak sa vám bude páčiť prepínač, ak je to možné, zošite otvor na gombíky v spodnej časti vrecka, kde sa spínač dotýka. Potom zošite gombíkový otvor a vystrihnite strednú časť. Nemôžem dať podrobné pokyny, pretože som mal skvelý nástroj na výrobu dierok na gombíky. Uistite sa, že urobíte otvory skôr, ako bude vrecko prišité. Vezmite si špendlíky a prepichnite ich cez tričko v rohoch označení vrecka. Vezmite vrecko a položte každý roh na špendlík (na vnútornú stranu košele), ponechajte štvrť palca na šev a pripnite ho na tričko. Potom, čo bolo vrecko pripnuté. odstráňte špendlíky, ktoré nedržia vrecko, a prišite vrecko k košeli. Opakujte pre všetky vrecká. Vo veľkom vrecku držiacom obrazovku ponechajte v spodnej časti vrecka medzeru pre drôty. Ak chcete do košele vložiť dieru, označte miesto a vezmite žehličku na podložku (s lesklejšou časťou na tkanine) a zažehlite ju. Potom pre malý otvor (ako to, čo som použil pre prepínač) vytvorte otvor pre gombíky. Pri väčšej diere označte obrys a použite kľukatý steh pozdĺž čiary (alebo krivky alebo čo máte) a vystrihnite strednú časť. Ak chcete, môžete pomocou podväzkov udržať váhu vreciek, dve spony držiace vrecká vpredu a zadnú sponu na nohaviciach. Tiež som dostal malý rukáv látky prišitý cez časti podväzkov, ktoré sa budú dotýkať mojej pokožky. Dve košele môžu byť príliš horúce, takže som sa odhlásil a použil malý látkový rukáv.

Krok 7: Programovanie

Programovanie
Programovanie

A tu je kód. Existuje niekoľko častí, ktoré sú dobre komentované, ale drvivá väčšina nie. Ak máte otázky týkajúce sa rôznych častí, môžete mi buď dať číslo riadku (s číslom #include ako riadkom číslo jedna), alebo mi dať kópiu riadku (riadkov) a funkcie, v ktorej sa nachádza (ako loop () alebo compMovePaddle ()) a urobím všetko, čo je v mojich silách, aby som vám to vysvetlil, potom ku kódu, ktorý to vysvetľuje, pridajte komentár. #include #define PIN 6 // hovorí, ktoré sú vstupné piny pre hru int buttonPin = 40; // diktuje skóre, uchovávané v dvojročnom poli, pretože je esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // diktuje smer loptičky int bvd = 0; // 0 je dole, 1 je hore int bhd = 0; // 0 je vpravo, 1 je vľavo // diktuje polohu loptičiek int bvp = 8; int bhp = 6; // skontroluje, či je loptička v rýchlom režime boolean fast = false; // kontroluje, či ide o skóre. boolean cIsPoint = false; boolean pIsPoint = false; // polohy pádiel int cPaddle = 0; int pPaddle = 0; dlhý predchádzajúci Millis = 0; dlhý predchádzajúciMillisForComp = 0; // nastavte časy oneskorenia pre rýchlo a pomaly sa pohybujúce loptičky na „Int“v normInt a fastInt je pre interval int normInt = 50; int fastInt = 10; // slúži na kontrolu výhry. 1 je výhra hráča, -1 pri výhre počítača a 0 nie je nič, čo sa zatiaľ nestalo win = 0; // aby sa zbavil chyby. použitý vo vyhlásení addOne a nikde inde. int, ktorý = 0; // Vec zobrazená pred štartom, -1 je únikový 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}; // ak vyhráš, vyhráš = {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}; // ak prehráš, prehráš = {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}; // nastaví LED pásik Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // nastavenie, neotáča žiadny pin 40 pre vstup, začína prúžok, zobrazuje // správu a ukazuje ju. void setup () {pinMode (buttonPin, INPUT); strip.begin (); pre (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); oneskorenie (5 000); while (digitalRead (buttonPin) == LOW) {// Je to pasca! (kým nestlačíte tlačidlo.)}} void loop () {clearScreen (); // nakreslí pádla a ukáže skóre pre (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)); }} // vytiahne loptu do jej počiatočnej polohy strip.setPixelColor (98, strip. Color (255, 255, 255)); strip.show (); // rozhodne, či loptička ide hore alebo dole, kým (pIsPoint == false && cIsPoint == false) {clearScreen (); nepodpísaný dlhý prúd Millis = millis (); // priradí pozíciu pádla hráča pPaddle = checkPaddlePos (); // skontroluje nasledujúcu pozíciu checkNext (); // pohyb loptou if (fast == false) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} else if (fast == true) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }} // nakreslite loptičku if (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)); } // pohyb pádla počítača compMovePaddle (); // draw's the paddles drawPaddles (); // v skutočnosti dajte všetko hore.strip.show (); // kontrola, či bol bod dosiahnutý, ak (pIsPoint == true) {which = 0; bhd = 0; addOne (); prestávka; } else if (cIsPoint == true) {which = 1; bhd = 1; addOne (); prestávka; }} if (win == 1) {clearScreen (); pre (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } oneskorenie (5 000); pre (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } výhra = 0; } else if (win == -1) {clearScreen (); for (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } oneskorenie (5 000); pre (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } výhra = 0; } pIsPoint = false; cIsPoint = false; bvp = 8; bhp = 6; bvd = random (0, 2); // 0 je dole, 1 je hore rýchlo = false; } // AI pre hru neplatí compMovePaddle () {unsigned long currentMillis = millis (); if (currentMillis - previousMillisForComp> 51) {previousMillisForComp = currentMillis; 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--; } else if (bvp <10-cPaddle && 10-cPaddle <= 10) {cPaddle ++; }}} // pohybuje loptou prázdne moveBall () {if (bhd == 0) {bhp--; } else if (bhd == 1) {bhp ++; } if (bvd == 0) {bvp--; } else if (bvd == 1) {bvp ++; }} // pridá jeden do poľa. Ak je whichOne 0, pripočíta sa to k hráčskemu skóre. Ak je 1, pridá sa do počítačov neplatné addOne () {if (which == 0) {// ak je to skóre hráča // Add one. Toto je najjednoduchší spôsob, ako viem. for (int i = 0; i <5; i ++) {// loop if (playerScore == 0) {// ak je táto hodnota nula playerScore = 1; // urobte 1 prestávku; // potom zmizni} else {// ak je to 1 hráčScore = 0; // urob to nula a zacyklí}}}} else ak (čo == 1) {for (int i = 0; i <5; i ++) {if (compScore == 0) {compScore = compScore +1; prestávka; } else {compScore = 0; }}} // Kontroluje, či niekto vyhral. if (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } else if (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }} // skontroluje loptičky ďalšiu pozíciu neplatné checkNext () {// skontroluje, či bol bod dosiahnutý, ak (bhp == 13) {pIsPoint = true; } else if (bhp == 0) {cIsPoint = true; } // ak bol bod dosiahnutý, preskočte ostatné položky, ak (pIsPoint == false || cIsPoint == false) {// skontroluje loptu vertikálne, ak (bvp+bvd == 15) {bvd = 0; } else if (bvp+bvd == 0) {bvd = 1; } // skontroluje horizont loptičky if (bhp+bhd == 13) {// prvý na strane počítača if (bvp> = 10-cPaddle && bvp <= 10-cPaddle+4) {if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; } rýchlo = nepravda; } else if (bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5) {if (bvp! = 0 && bvp! = 14) {if (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; } else if (bvp == 0 || bvp == 14) {bhd = 1; } rýchlo = nepravda; }} else if (bhp+bhd == 1) {// then on the player side if if (bvp> = pPaddle && bvp <= pPaddle+4) {// is it hiting the paddle in normal spot? // odraz loptu! ak (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; }} else if (bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle) {// is it hiting the pádle on the corner if (bvp! = 0 && bvp! = 14) {// is it nie vysoko alebo dole nízko? // Odraz loptu! ak (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; rýchlo = pravda; } else if (bvp == 0 || bvp == 14) {// je hore vysoko alebo dole dole? // odraz loptu! bhd = 0; fast = true; // nastavenie hodnoty na neskorší pohyb lopty}}}}} int checkPaddlePos () {// prečíta banku a podľa toho rozhodne o polohe pádla, ak (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; }} neplatné drawPaddles () {// nakreslí pádla na správne miesto a zobrazí skóre na pádle pre (int i = 0; i <5; i ++) {if (playerScore == 1) {pás. setPixelColor (pPaddle+i, strip. Color (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 (); }

Krok 8: Hotový výrobok

Hotový výrobok
Hotový výrobok
Hotový výrobok
Hotový výrobok

A hotovo, tričko!

Odporúča: