Sadržaj:
- Korak 1: Materijali i alati
- Korak 2: Izrežite LED traku na manje trake
- Korak 3: Lemljenje zaslona zajedno
- Korak 4: Lemljenje jezgrene elektronike
- Korak 5: Kontroler
- Korak 6: Košulja
- Korak 7: Programiranje
- Korak 8: Gotov proizvod
Video: Pong igra fleksibilan zaslon na košulji: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ovo je moj kostim za Noć vještica za 2013. godinu. U izradi je otprilike godinu dana, a za stvaranje mu je trebalo nekoliko sati. Zaslon je 14 x 15 piksela, dakle, prilično niske rezolucije, ali ipak može učiniti neke zabavne stvari. Fizički je fleksibilan u svim smjerovima, iako se ne može preklopiti bez oštećenja. Ima kontroler koji se sastoji od jednog gumba i kliznog lonca, spojenog na pro mega putem USB -a. Kako bi ga održao na životu dulje, koristi dvije monstruozne baterije od 2200 mAh spojene serijski za dobivanje potrebnog napona, a zatim i regulator od 5 Volta kako bi bio upotrebljiv. Sva elektronika smještena je u džepove s unutarnje strane majice tako da se mogu skinuti i košulju oprati. Igra funkcionalnu igru ponga. Prvo ga krasi riječ "PONG PLAY" s lijepim plavim slovima koristeći modificiranu verziju slova Tom Thumb (može se pronaći na https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Nakon pet sekundi može se dati mogućnost da pritisnete gumb za nastavak ili da ne pritisnete gumb i ostavite savršeno dobro iskustvo iza sebe. Kad netko odluči pritisnuti gumb, igra počinje. Crveno veslo s desne strane je veslo za računalo, a zeleno s desne strane je veslo igrača, kojim se kliznim loncem može pomicati gore i dolje. Lopta se odbija dok svaka strana pokušava osvojiti bod. Igrač može udariti loptu rubom svog vesla kako bi je ubrzao (lijepa značajka) dok računalo to ne može učiniti, a umjesto toga zaglavi s kretanjem nešto sporije od lopte. Kada se bod osvoji, piksel se mijenja na bijelo na stranicama za bodovanje. Broji se binarno od dna. gdje je zelena ili crvena nula, a bijela 1. 21 je bod koji ćete osvojiti (ili izgubiti ovisno o tome tko dobije 21 bod), pa se tako kada veslač igrača pročita 10101 prikazuje "YOU WIN" tekst. Još jednom u modificiranom Tom Thumbu. Isto se događa, ali umjesto toga prikazuje se "GUBIŠ". Nakon pobjede ili poraza igra se ponovno pokreće do točke odmah nakon igranja ponga. Za potpuno ponovno pokretanje pritisnut je gumb za ponovno pokretanje na "Magic Box-u", također poznat i kao kutija-sa-svom-elektronikom-osim-ekrana.
Korak 1: Materijali i alati
Stvari označene sa * nisu obavezne, ali se preporučuju. I tako u određenom redoslijedu … Materijali: 4 jarde Adafruit Neopixle 60 pixle po metru trake 1 majica * 1 par tregera 1/2 jarde tkanine bit će više nego dovoljno (Ne poželjno je rastezljivo tkanje) 6 stopa USB A muški na USB B muški kabel 1 USB A ženski konektor 3 2 polna JST ženska konektora 4 2 pinska JST muška žica punjač baterija 2 baterije od 6600 mAh 1 Tipka u arkadnom stilu 1 arduino pro-mega 1 FTDI zaglavlje 1 USB B ženski konektor s prekidačem 1 prekidač za uključivanje/isključivanje (prekidač) 1 prekidač za poništavanje (prekidač ili trenutni) 1 klizni potenciometar *1 klizni gumb za lonac 1 par konektora za velika pojačala *1 kućište za projekt 1 1 5V 3+ regulator napona mali malo plastike malo lemiti malo žice neki konac *malo vrućeg ljepila *malo elastike neko vrijeme (Možda malo više od "malo") malo ustrajnosti (vjerojatno će vam trebati prilično malo ove cijevi) malo termoskupljajuće cijevi ili električnu traku malo super ljepila malo željeza na podlozi Alati *Ruke za pomoć Normalna ruka s (ili netko tko im ima pristup) Lemilica *Pištolj za vruće ljepilo Dremel ili brusni papir Dlijeto za skidanje žice Rezači žica za spajanje Pištolj za pile Igle za šivaće strojeve Škare za tkaninu
Korak 2: Izrežite LED traku na manje trake
Koristite željeni pribor za rezanje i izrežite traku na 14 segmenata, svaki dugačkih 15 piksela. Izrežite samo između bakrenih tragova, označenih nešto poput "DO" "DIN" "+5V" i "GND". Ako je već lemljen preko bakra, samo ga prorežite. Pokušajte ne rezati previše u izloženi bakar, ali ako ga malo probušite, to je sasvim u redu. Nakon što je svih 14 traka izrezano, odrežite malo gume sa svakog kraja kako biste je uklonili s puta za lemljenje traka.
Korak 3: Lemljenje zaslona zajedno
Uzmite žicu i izrežite je na dijelove od oko 3,5 inča (9 cm). U mom slučaju imam tri različite boje za lakše držanje ravnog pri lemljenju, ali jedna bi boja radila sasvim u redu. Trebat će vam 40 -ak ovih dječaka, ali za svaki slučaj izrežite još par. Nakon što završite s rezanjem žice, ogolite i kosite krajeve (Ako imate iskustva s lemljenjem, možete prijeći na sljedeći odlomak), što znači da nakon što uklonite malo plastike, stavite malo lema na krajeve svake žice. Nemojte zagrijavati lem i pokušajte prijeći na žicu, zagrijte lemilicom s dna bakra i stavite lem na vrh. Budite strpljivi i pričekajte da vruća žica otopi lem. U iskušenju je lemljenje lemilicom pričvrstiti za početak lemljenja (Moje nestrpljenje i ja točno znamo kako se osjećate), ali se i lemljenje neće zalijepiti. Učinite isto za izložene bakrene tragove na svakom kraju odsječaka trake. Ako već ima lema, ne brinite se oko toga. Za traku ćete možda htjeti izgraditi malo humka kako biste kasnije olakšali. Kad radite s trakom, učinite to brzo i pokušajte ne trošiti previše vremena primjenjujući toplinu na traku. Učinite samo ono što trebate učiniti da otopite lem na trag. Lemite žicu na svakom tragu do kraja prve trake (Prva traka je ona sa žicama i priključkom, lemite je na otkriveni kraj). Ako pogledate traku, vidjet ćete male strelice koje idu do kraja gdje ste lemili žicu. Uzmite drugu traku tako da strelice budu usmjerene u suprotnom smjeru i lemite žicu koja dolazi iz traga GND na trag GND druge, +5V na +5V i tako dalje. Ponovite ovo pazeći da strelice promijene smjer nakon svakog odjeljka kako bi, ako biste ih slijedili, cik -cak gore -dolje, te da bi se na kraju mogao ispružiti na dugačku traku. Nakon što je svih 14 traka lemljeno, rasporedite ih i poravnajte tako da LED diode tvore mrežu. Zatim ih držite zajedno metodom koja se kasnije može ukloniti bez oštećenja trake. Koristio sam selotejp. Dovoljno je ljepljiv da drži sve zajedno, ali nije toliko ljepljiv da ostavlja tragove. Ne preporučujem ništa trajnom, poput spajalica ili ljepljive trake. Nakon što je sve zalijepljeno, lemite žicu od trake na dnu +5V do one odmah do nje. Ponavljajte sve dok cijelo dno ne dođe do kraja. To je zato da se zaslon ne zatamni kako linija LED -ova napreduje.
Korak 4: Lemljenje jezgrene elektronike
Lemite USB B razvodnu ploču (BOB) na USB B konektor. Lemiti odgovarajuće žice na USB A konektor. Savjetujem da pogledate pin-out konektora koji se nalazi na ovoj web stranici, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Ne brinite sada gdje ćete lemiti druge krajeve žica na USB A priključku; to će biti obrađeno u koraku kontrolera. Izrežite podatkovni konektor s trake, ženski konektor, a ne muški konektor (Ženski konektor se dobiva s drugog kraja). Lemite muške JST konektore na krajeve baterije tako da crvena prelazi u crvenu, a crna u crnu. Topljive termoskupljajuće cijevi otopite preko izloženih žica (premotajte prije lemljenja) kako se ne bi kratko spojile ili upotrijebile nešto drugo poput električne trake ili vrućeg ljepila. Lemite neke žice na sve ženske JST konektore. Budite sigurni da je utikač spojen tako da se igle ne pomiču. Pazite na polaritet i pazite da žice odgovaraju muškim konektorima. Lemite žice na jedan visokonaponski konektor (ali ne na njegov par), još jednom, pazeći da se sve boje podudaraju i da su spojene kako bi se spriječilo pomicanje iglica. Lemite ženski sklop samo konektora/žice tako da budu spojeni serijski, a ne paralelno, kako bi prešao prag napona za regulator snage. Dakle, lemite pozitivnu žicu na negativnu žicu drugog sklopa tako da sada imamo jednu lemljenu pozitivnu žicu i jednu negativnu nezalemljenu žicu, a dvije lemljene žice su lemljene na različite konektore. Uzmite negativnu žicu i spremite je za lemljenje na negativnu žicu na drugom mjestu. Sada uzmite pozitivnu žicu i lemite je na prekidač. Ako postoje tri ili više pinova (ili više načina "uključenosti"), lemite je na srednji pin. Imajte na umu da "srednja iglica" možda fizički nije u sredini. Način da ga identificirate je pronaći pin koji će, kad je prekidač u bilo kojem stanju, uvijek biti spojen na drugi pin. Ako nijedan pin nije ovakav, onda imate vrlo poseban prekidač; samo ga spojite na bilo koji pin i pobrinite se da sljedeća žica lemljena na prekidaču bude spojena na tu žicu u barem jednom uključenom stanju. Sada lemite pozitivnu ulaznu žicu na regulatoru napona na suprotni kraj prekidača, kako je gore opisano. Lemiti pozitivni napon na pozitivni kraj neolemljenog konektora velike struje. Uzmite negativnu usisnu žicu i lemite je na negativni kraj konektora velike struje. Sada ćemo lemiti napajanje paralelno s Arduinom i Power trakom. Sada uzmite izlazne žice regulatora napona i lemite dva komada žice na pozitivnom i negativnom kraju tako da izađu u obliku slova Y. Lemite dvopolni konektor na pozitivne i negativne žice sklopa LED trake. Nije važno koju vrstu konektora koristite, to može biti JST ili u mom slučaju neki kabel za napajanje/zvuk ili nešto slično (nisam siguran i ispričavam se što nemam slike). Lemite jednu od žica pozitivnog napajanja na pozitivni kraj suprotnog priključka za svjetlosnu traku, a jednu od negativnih žica na drugi pin na konektoru. Učinite isto, ali za muški sklop JST konektora/žice. Ne zaboravite cijelo vrijeme izolirati lemne spojeve kako biste izbjegli kratke hlače. Sada o tome što učiniti s USB B priključkom. Lemiti pozitivnu žicu na rupu od 5 V na Arduino Pro Mega. Uzmite žicu za uzemljenje i lemite je u rupu GND. Uzmite D+ i lemite ga na digitalni pin (ili u ovom slučaju rupu) 40. Lemite D- na analogni pin 15. Lemite kraj podataka ženskog konektora koji se spaja s muškim priključkom LED trake na podatkovni pin 6 i žica za uzemljenje na GND pin. Maskiranje ili ljepljiva traka odlično služe za držanje žica na ploči kako ne bi ispale kad se prevrne kako bi se zalemio. Sada uzmite trenutačni gumb i lemite žicu s jednog kraja na pin VCC (ili bilo koji naponski izlazni pin), a drugi kraj na pin RESET.
Korak 5: Kontroler
Prvo je odabir pravog oblika za početak. Sve ovisi o tome kako želite upravljački sklop strukturirati. Htio sam više ravnog kontrolera pa sam dobio komad daske 3 1/2 "sa 3/4". rasporedite dijelove na način koji se čini prikladnim i ugodnim za rad. Upotrijebite francusku krivulju, kompas, trokut i ravni rub da biste nacrtali gdje bi svi dijelovi trebali ići. Izrežite osnovni obris pomoću alata za rezanje po vašem izboru. Zabranjujuća pila bi bila najbolja, ali ja sam koristio testeru za suočavanje, koja je radila sasvim u redu. Brusite rubove kako bi se lakše prelazili, a zatim brušite po uglovima kako biste bili ugodniji. Izbušite rupu za prekidač, a zatim izbrusite, dlijeto i/ili Dremel bilo koji dio na dnu koji će ga uklopiti. Pokušajte ne raditi ništa s vrhom i izbrusite samo ono što vam je potrebno da biste ga mogli uklopiti uvrtanjem, kutom ili bilo čime drugim kako biste ga uvukli. Nakon što ga postavite, pričvrstite ga plastičnom maticom i pričvrstite sklopka. Izbušite područje da ručica potenciometra može proći i isklesati područje tako da može utonuti i uklopiti se do kraja. Izbušite neke rupe tako da ih vijak može držati. Savijte male dijelove USB A konektora zbog kojih se njegova opća širina malo povećava (pogledajte slike). Izvadite dio za konektor, postupno provjeravajući da li konektor odgovara. Super lijepite konektor u svoj utor. Uzmite mali komad plastike i izrežite ga u oblik koji će pristajati preko konektora (pogledajte slike), a zatim ga spojite klamom na drvo. Odrežite sve komade koji vam mogu stati na put. Uvrnite potenciometar i pričvrstite gumb. Lemiti pozitivnu žicu na jedan od krajeva potenciometra (ne na promjenjivi dio), a negativnu žicu na suprotni kraj. Lemite D-pin na promjenjivu iglu na loncu. Lemite žicu s igle na loncu s pozitivnom žicom na jedan od pinova na gumbu. Lemite D+ na drugu iglu na gumbu. Odrežite rezervnu žicu i izolirajte dijelove koji su joj potrebni.
Korak 6: Košulja
Pronađite udobnu košulju koja će propustiti svjetlo. Odabrala sam ovu osnovnu bijelu majicu. Nije važno boja ili stil sve dok se svjetlo može vidjeti kako iznutra sijeva. Međutim, ne preporučujem grafiku s prednje strane. Položite sve na majicu kako biste lakše odlučili gdje želite i upotrijebite brisajući alat za označavanje da biste je nacrtali. Ja (znači neki ljudi koje poznajem) imam olovku namijenjenu označavanju tkanina koja se lako ispire. Izmjerite veličinu baterija, kućište kontrolera i zaslon te izrežite komade papira koji odgovaraju. Zatim pričvrstite papir na komad ne rastezljive tkanine. Za to dobro funkcionira tkanje. Zatim izrežite pravokutnik ostavljajući oko četvrtine inča po cijelom rubu. Zatim pomoću papira kao vodiča glačajte nabore u tkaninu. Sada se papir može ukloniti. Na dijelu džepa koji će biti gornji dio preklopite ga tri puta. Glačajte i pričvrstite ga pričvršćivačem kako bi ostao na mjestu. Sašijte tračnicu do kraja nabora. Sada uzmite kut i presavijte ga tako da su nešiveni rubovi okomito međusobno paralelni i sašijte tračnicu uz glačani pregib najbliži kutu (slike zaista pomažu). Učinite to i za drugi kutak. Ako ćete vjerojatno iz džepa izaći prekidač, sašite rupicu za gumb na dnu džepa na mjestu gdje prekidač dodiruje. Zatim sašite rupicu za gumb i izrežite srednji dio. Ne mogu vam dati detaljne upute jer sam imao super alat za izradu rupa za gumbe. Samo budite sigurni da ste napravili rupe prije nego što je džep ušiven. Uzmite igle i probodite ih kroz majicu na uglovima oznaka za džep. Uzmite džep i stavite svaki kut na iglu (s unutarnje strane košulje), ostavljajući četvrtinu inča za šav, i pričvrstite ga na košulju. Nakon pričvršćivanja džepa. izvadite igle koje ne drže džep i zašijte džep na košulju. Ponovite za sve džepove. Za veliki džep koji drži zaslon ostavite razmak za žice na dnu džepa. Da biste stavili rupu u košulju, označite mjesto i uzmite peglu na podlogu (sa sjajnijim dijelom na tkanini) i glačajte je. Zatim, za malu rupu (poput onoga što sam koristio za prekidač), napravite rupu za gumb. Za veću rupu označite obris i upotrijebite cik-cak ubod duž linije (ili krivulju ili što već imate) i izrežite srednji dio. Ako želite, možete koristiti tregere za držanje težine džepova, dvije kopče koje se drže za džepove sprijeda, a stražnje kopče za hlače. Također sam dobio mali rukav od tkanine sašiven preko dijelova tregera koji će mi dodirivati kožu. Dvije majice mogu se zagrijati pa sam se isključio i upotrijebio mali tkani rukav.
Korak 7: Programiranje
A evo i koda. Postoji nekoliko dijelova koji su dobro komentirani, ali velika većina nije. Ako imate pitanja o različitim dijelovima, možete mi dati broj retka (s #include kao red broj jedan) ili mi dati kopiju retka (a) i funkciju u kojoj se nalazi (poput loop () ili compMovePaddle ()) i potrudit ću se da vam to objasnim, a zatim kodu dodajem komentar koji to objašnjava. #include #define PIN 6 // kaže koji su ulazni pinovi za igru int buttonPin = 40; // diktira rezultat, čuva se u dvosmjernom nizu jer je esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // diktira smjer lopte int bvd = 0; // 0 je dolje, 1 je gore int bhd = 0; // 0 je desno, 1 je lijevo // diktira položaj loptica int bvp = 8; int bhp = 6; // provjerava je li lopta u brzom načinu rada boolean fast = false; // provjerava radi li se o bodovima. boolean cIsPoint = false; boolean pIsPoint = false; // položaji vesla int cPaddle = 0; int pPaddle = 0; dug previousMillis = 0; long previousMillisForComp = 0; // postavljamo vrijeme kašnjenja za brzo i sporo pokretnu loptu "Int" u normInt i fastInt je za interval int normInt = 50; int fastInt = 10; // koristi se za provjeru dobitka. 1 je pobjeda igrača, -1 u računalu, a 0 je ništa što se još nije dogodilo int win = 0; // riješiti se buba. koristi se u naredbi addOne i nigdje drugdje. int koji = 0; // Stvar prikazana prije početka, -1 je escape 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}; // ako dobijete int youWin = {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}; // ako izgubite int izgubite = {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}; // postavlja LED traku Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // postavljanje, ne okreće pin 40 za ulaz, započinje traku, prikazuje // poruku i prikazuje je. void setup () {pinMode (buttonPin, INPUT); strip.begin (); za (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); kašnjenje (5000); while (digitalRead (buttonPin) == LOW) {// To je zamka! (dok se gumb ne pritisne.)}} void loop () {clearScreen (); // izvlači lopatice za prikaz rezultata za (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)); }} // izvlači loptu u početni položaj strip.setPixelColor (98, strip. Color (255, 255, 255)); strip.show (); // odlučuje hoće li se lopta dizati ili spuštati dok (pIsPoint == false && cIsPoint == false) {clearScreen (); bezznačna duga strujaMillis = millis (); // dodjeljuje položaj vesla igrača pPaddle = checkPaddlePos (); // provjerava sljedeću poziciju checkNext (); // pomicanje lopte if (fast == false) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} else if (fast == true) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }} // izvući loptu 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)); } // kretanje vesla računala compMovePaddle (); // draw's the paddles drawPaddles (); // zapravo sve postavio.strip.show (); // provjeravamo je li bod postignut if (pIsPoint == true) {which = 0; bhd = 0; addOne (); pauza; } else if (cIsPoint == true) {koji = 1; bhd = 1; addOne (); pauza; }} if (win == 1) {clearScreen (); for (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } kašnjenje (5000); za (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } pobjeda = 0; } else if (win == -1) {clearScreen (); za (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } kašnjenje (5000); za (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } pobjeda = 0; } pIsPoint = netočno; cIsPoint = lažno; bvp = 8; bhp = 6; bvd = random (0, 2); // 0 je dolje, 1 je brzo = false; } // AI za igru void 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 ++; }}} // pomiče loptu void moveBall () {if (bhd == 0) {bhp--; } else if (bhd == 1) {bhp ++; } if (bvd == 0) {bvp--; } else if (bvd == 1) {bvp ++; }} // dodaje jedan u niz. Ako whichOne je 0 dodaje se igračevom rezultatu. Ako je 1, računalu dodaje void addOne () {if (which == 0) {// ako je to rezultat igrača // Dodaj jedan. Ovo je najjednostavniji način na koji znam. for (int i = 0; i <5; i ++) {// petlja if (playerScore == 0) {// ako je ta vrijednost nulti playerScore = 1; // neka bude 1 break; // zatim otići} else {// ako je 1 igračScoreScore = 0; // neka bude nula i petlja}}} else if (which == 1) {for (int i = 0; i <5; i ++) {if (compScore == 0) {compScore = compScore +1; pauza; } else {compScore = 0; }}} // Provjerava je li netko pobijedio. ako (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } inače if (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }} // provjerava loptice sljedeću poziciju void checkNext () {// provjerava je li bod postignut ako (bhp == 13) {pIsPoint = true; } else if (bhp == 0) {cIsPoint = true; } // ako je bod postignut, preskočite ostale stavke if (pIsPoint == false || cIsPoint == false) {// provjerava kuglu okomito if (bvp+bvd == 15) {bvd = 0; } else if (bvp+bvd == 0) {bvd = 1; } // horizontalno provjerava loptu ako (bhp+bhd == 13) {// prvo na strani računala if (bvp> = 10-cPaddle && bvp <= 10-cPaddle+4) {if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; } brzo = netočno; } 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; } brzo = netočno; }} else if (bhp+bhd == 1) {// onda na strani igrača if (bvp> = pPaddle && bvp <= pPaddle+4) {// udara li veslo na normalno mjesto? // odbija loptu! if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; }} else if (bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle) {// pogađa li veslo na uglu if (bvp! = 0 && bvp! = 14) {// je li to nije gore visoko ili dolje nisko? // Odbija loptu! if (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; brzo = istina; } else if (bvp == 0 || bvp == 14) {// je li visoko gore ili dolje nisko? // odbija loptu! bhd = 0; fast = true; // postavite vrijednost za kasnije ubrzanje kretanja loptice}}}}} int checkPaddlePos () {// čita pot i odlučuje o položaju vesla prema tome ako (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 () {// izvlači vesla na ispravnom mjestu i prikazuje rezultat na veslu za (int i = 0; i <5; i ++) {if (playerScore == 1) {strip. 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 (); }
Korak 8: Gotov proizvod
I eto, gotova majica!
Preporučeni:
TTGO (kolor) zaslon s mikropythonom (TTGO T-zaslon): 6 koraka
TTGO (kolor) zaslon s Micropythonom (TTGO T-zaslon): TTGO T-zaslon je ploča temeljena na ESP32 koja uključuje zaslon u boji od 1,14 inča. Ploča se može kupiti za nagradu manju od 7 USD (uključujući dostavu, nagrada viđena na banggood -u). To je nevjerojatna nagrada za ESP32 uključujući zaslon. T
Igrajte Simonovu igru na košulji: 5 koraka
Igrajte igru Simon na svojoj košulji: Jeste li oduvijek htjeli igrati igru Simon na svojoj majici? I ja! U ovom uputstvu pokazat ću vam kako napraviti verziju igre Simon koju možete igrati dodirivanjem majice, koristeći Makey Makey
I2C / IIC LCD zaslon - Upotrijebite SPI LCD za I2C LCD zaslon Korištenje SPI do IIC modula s Arduinom: 5 koraka
I2C / IIC LCD zaslon | Upotrijebite SPI LCD na I2C LCD zaslonu Korištenje SPI na IIC modula s Arduinom: Zdravo dečki, budući da normalni SPI LCD 1602 ima previše žica za povezivanje pa je vrlo teško povezati ga s arduinom, ali na tržištu postoji jedan modul koji može pretvoriti SPI zaslon u IIC zaslon pa morate spojiti samo 4 žice
I2C / IIC LCD zaslon - Pretvorite SPI LCD u I2C LCD zaslon: 5 koraka
I2C / IIC LCD zaslon | Pretvorite SPI LCD u I2C LCD zaslon: za korištenje spi lcd zaslona potrebno je previše povezivanja, što je zaista teško učiniti pa sam pronašao modul koji može pretvoriti i2c lcd u spi lcd pa krenimo
Interaktivna igra Tic-Tac Toe igra s Arduinom: 6 koraka
Interaktivna igra Tic-Tac Toe nogom kontrolirana s Arduinom: Cilj projekta Physical Tic-Tac-Toe je premjestiti dobro poznatu igru u fizičko područje. Izvorno, igru igraju dva igrača na komadu papira - stavljajući simbole "X" i "O" naizmjence. Naša ideja je bila ispitati ponašanje igrača