Cuprins:
- Pasul 1: Materiale și instrumente
- Pasul 2: Tăiați banda LED în benzi mai mici
- Pasul 3: lipirea ecranului împreună
- Pasul 4: lipirea elementelor electronice de bază
- Pasul 5: Controler
- Pasul 6: cămașă
- Pasul 7: Programare
- Pasul 8: Produsul finit
Video: Pong jucând ecran flexibil pe o cămașă: 8 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Acesta este costumul meu de Halloween pentru anul 2013. A fost în lucru de aproximativ un an și a fost nevoie de câteva ore de om pentru a crea. Ecranul are 14 x 15 pixeli, deci, rezoluția destul de mică, dar poate face totuși câteva lucruri distractive. Este flexibil din punct de vedere fizic în toate direcțiile, deși nu poate fi pliat fără deteriorări. Are un controler format dintr-un singur buton și oală glisantă, conectat la un mega pro prin USB. Pentru a-l menține în viață pentru o lungă perioadă de timp, folosește două monstruoase baterii de 2200 mAh conectate în serie pentru a obține tensiunea necesară și apoi un regulator de 5 volți pentru ao face utilizabil. Toate componentele electronice sunt așezate în buzunare pe interiorul cămășii, astfel încât să poată fi îndepărtate și astfel să poată fi spălate. Joacă un joc funcțional de pong. Întâi o prezintă cu cuvintele „PONG PLAY” cu minunate litere albastre folosind o versiune modificată a fontului Tom Thumb (poate fi găsită la https://robey.lag.net/2010/01/23/tiny-monospace-font.html). După cinci secunde se poate da opțiunea de a apăsa butonul pentru a merge mai departe sau de a nu apăsa butonul și de a lăsa o experiență perfectă în urmă. Când alegeți să apăsați butonul, jocul începe. O paletă roșie din dreapta este paleta computerului, iar paleta verde din dreapta este paleta jucătorului, care este controlată de potul glisant pentru a se deplasa în sus și în jos. Mingea ricoșează în timp ce fiecare parte încearcă să înscrie un punct. Jucătorul poate lovi mingea cu marginea paletei pentru ao accelera (o caracteristică frumoasă) în timp ce computerul nu poate face acest lucru și, în schimb, ajunge să fie blocat cu mișcarea ușor mai lentă decât mingea. Când se punctează un punct, un pixel se schimbă în alb pe paleta laterală de punctaj. Contează în binar de jos. unde verde sau roșu este zero, iar albul este 1. 21 este scorul de câștigat (sau de pierdut în funcție de cei care obțin cele 21 de puncte) și astfel, atunci când paddle-ul jucătorului citește 10101, se afișează textul „YOU WIN”. Încă o dată în modificat Tom Thumb. La fel se întâmplă, dar cu „YOU LOSE” afișat în schimb. După o victorie sau o pierdere, jocul se reia la punctul imediat după Pong Play. Pentru a reporni în întregime, este apăsat butonul de repornire de pe „Magic Box”, cunoscut și sub denumirea de „cutie-cu-toată-electronica-cu excepția-ecranului”.
Pasul 1: Materiale și instrumente
Lucrurile marcate cu un * sunt opționale, dar se recomandă și, așadar, în nici o ordine specială … Materiale: 4 metri de Adafruit Neopixle 60 pixeli pe metru fâșie 1 tricou * 1 pereche de suspensii 1/2 curte de material va fi mai mult decât suficient (Non este preferată țesătura elastică) 6 picioare USB A tată la USB B cablu tată 1 USB A mamă conector 3 2 pini conectoare femele JST 4 2 pini fire JST tată încărcător 2 baterii 6600 mAh 1 Buton stil arcade 1 arduino pro-mega 1 antet FTDI 1 conector feminin USB B cu placă de deconectare 1 comutator pornire / oprire (comutare) 1 comutator de resetare (comutare sau momentan) 1 glisare potențiometru * 1 buton glisant pot 1 pereche conector amplificator mare * 1 carcasă proiect 1 regulator de tensiune 5V 3+ amperi mic bucată de plastic ceva lipire niște sârmă niște fir * niște adeziv fierbinte * niște elastic cândva (Poate puțin mai mult decât „unele”) oarecare perseverență (probabil veți avea nevoie de puțin din acest fapt) niște tuburi termocontractabile sau bandă electrică niște super lipici niște fier pe suport Instrumente * Mâini ajutătoare Mână normală s (sau cineva cu acces la ele) Fier de lipit * Pistol de adeziv fierbinte Dremel sau șmirghel Dălți Decupatoare de sârmă Tăietoare de sârmă Capsă de pistol Șurub Șofer Știfturi Mașină de cusut Foarfece de țesătură
Pasul 2: Tăiați banda LED în benzi mai mici
Utilizați ustensila de tăiere preferată și tăiați banda în 14 segmente, fiecare având o lungime de 15 pixeli. Tăiați numai între urmele de cupru, etichetate cu ceva de genul „DO” „DIN” „+ 5V” și „GND”. Dacă este deja lipit peste cupru, tocmai le-am tăiat. Încercați să nu tăiați prea mult cuprul expus, dar dacă îl prindeți puțin, este bine. Odată ce toate cele 14 benzi au fost tăiate, tăiați un pic din cauciuc de la fiecare capăt pentru a-l scoate din cale pentru lipirea benzilor.
Pasul 3: lipirea ecranului împreună
Luați firul și tăiați-l în segmente de aproximativ 3,5 inci (9 cm). În cazul meu, am trei culori diferite pentru a facilita menținerea dreptului la lipire, dar o culoare ar funcționa foarte bine. Veți avea nevoie de aproximativ 40 dintre acești băieți mici, dar mai tăiați încă vreo două pentru orice eventualitate. După ce ați terminat de tăiat firul, îndepărtați și tăiați capetele (dacă aveți experiență de lipire, puteți trece la următorul paragraf), adică după ce îndepărtați puținul de plastic, puneți o lipire la capetele fiecărui fir. Nu încălziți lipirea și încercați să vă deplasați la fir, încălziți cu fierul de lipit din partea de jos a cuprului și puneți lipirea în partea de sus. Aveți răbdare și așteptați ca firul fierbinte să topească lipirea. Este tentant să lipiți lipitorul de lipit pentru a începe (nerăbdarea mea și știu exact ce simțiți), dar lipirea nu se va lipi la fel de bine. Faceți același lucru pentru urmele de cupru expuse la fiecare capăt al secțiunilor benzii. Dacă are deja lipire, nu vă faceți griji. Pentru bandă, poate doriți să construiți o mică movilă pentru a ușura mai târziu. Când lucrați cu banda, faceți-o rapid și încercați să nu petreceți prea mult timp aplicând căldură benzii. Faceți doar ceea ce trebuie să faceți pentru a topi lipirea pe urmă. Lipiți un fir pe fiecare urmă până la capătul primei benzi (Prima bandă fiind cea cu firele și conectorul, lipiți-o până la capătul expus). Dacă te uiți la bandă, vei vedea săgeți mici pe ea care urcă până la capătul unde ai lipit firul. Luați o altă bandă, astfel încât săgețile să indice direcția opusă și lipiți firul care vine de la urmele GND la urmele GND ale celeilalte, + 5V la + 5V și așa mai departe. Repetați acest lucru asigurându-vă că săgețile comută direcțiile după fiecare secțiune, astfel încât, dacă ar fi să le urmați, să zigzageze în sus și în jos și să poată fi întinsă pe o bandă lungă la final. Odată ce toate cele 14 benzi au fost lipite, așezați-le și aliniați-le, astfel încât LED-urile să formeze o rețea. Apoi păstrați-le împreună folosind o metodă care poate fi îndepărtată ulterior fără a deteriora banda. Am folosit bandă scotch. Este suficient de lipicios pentru a menține totul împreună, dar nu atât de lipicios încât să lase un reziduu. Nu recomand nimic permanent, cum ar fi capse sau bandă adezivă. Odată ce totul a fost lipit, lipiți un fir de la banda de jos + 5V la cel de lângă acesta. Repetați până când întregul fund are robinetele de alimentare care traversează până la capăt. Astfel, ecranul nu se estompează pe măsură ce linia LED-urilor progresează.
Pasul 4: lipirea elementelor electronice de bază
Lipiți placa de deconectare USB B (BOB) pe conectorul USB B. Lipiți firele corespunzătoare la conectorul USB A. Vă sfătuiesc să consultați pin-out-ul conectorului, așa cum se găsește pe acest site web, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Nu vă faceți griji în legătură cu unde să lipiți celelalte capete ale firelor de pe conectorul USB A chiar acum; care va fi acoperit în etapa controlerului. Tăiați conectorul de date de pe bandă, conectorul mamă, nu conectorul tată (conectorul mamă este obținut de la celălalt capăt). Lipiți conectorii masculini JST la capetele bateriei, astfel încât roșul să devină roșu și negru să devină negru. Topiți tuburile termocontractabile peste firele expuse (alunecate înainte de lipire), astfel încât să nu se scurteze sau să folosească altceva, cum ar fi banda electrică sau adezivul fierbinte. Lipiți câteva fire la toți conectorii feminini JST. Asigurați-vă că aveți un capăt tată conectat, astfel încât pinii să nu se deplaseze. Aveți grijă la polaritate și asigurați-vă că firele se potrivesc cu conectorii masculi. Lipiți cablurile la unul din conectorul de înaltă tensiune (dar nu este perechea), încă o dată, asigurându-vă că orice culoare se potrivește și că sunt conectate împreună pentru a preveni orice mutare a pinilor. Lipiți ansamblul conector / sârmă feminin, astfel încât să fie conectat în serie, nu paralel, pentru a trece de tensiunea de prag pentru regulatorul de putere. Deci, lipiți firul pozitiv cu cel negativ al celuilalt ansamblu, așa că acum avem un fir pozitiv ne-lipit și unul negativ ne-lipit și cele două fire lipite sunt lipite pe conectori diferiți. Luați firul negativ și salvați-l pentru a fi lipit în firul negativ în altă parte. Acum, luați firul pozitiv și lipiți-l la comutator Dacă există trei sau mai mulți pini (sau mai multe moduri de a fi „pornit”), lipiți-l pe pinul din mijloc. Rețineți că „pinul din mijloc” poate să nu fie fizic în mijloc. Modul de identificare este de a găsi pinul care, atunci când comutatorul este pornit în orice stare, va fi întotdeauna conectat la un alt pin. Dacă niciun pin nu este așa, atunci aveți un comutator foarte special; conectați-l la orice pin și asigurați-vă că următorul fir lipit la comutator va fi conectat la acel fir în cel puțin unul în stare. Acum lipiți firul de admisie pozitiv de pe regulatorul de tensiune la capătul opus al comutatorului, așa cum s-a discutat mai sus. Lipiți tensiunea pozitivă până la capătul pozitiv al conectorului de curent mare ne-lipit. Luați firul de admisie negativ și lipiți-l la capătul negativ al conectorului de curent mare. Acum vom lipi puterea în paralel cu banda Arduino și Power. Acum luați firele de ieșire ale regulatorului de tensiune și lipiți două bucăți de fir pe ambele capete pozitive și negative, astfel încât acestea să iasă în formă de Y. Lipiți un conector cu doi pini pe firele pozitive și negative ale ansamblului benzii led. Nu contează ce tip de conector utilizați, poate fi JST sau în cazul meu un cablu de alimentare / audio sau ceva (nu sunt sigur și îmi cer scuze pentru că nu am nicio imagine). Lipiți unul dintre firele de alimentare pozitive la capătul pozitiv al conectorului opus pentru banda de lumină și unul dintre firele negative la celălalt pin de pe conector. Faceți același lucru, dar pentru un ansamblu conector / cablu JST tată. În tot acest timp, nu uitați să izolați îmbinările de lipit pentru a evita scurtcircuiturile. Acum, ce să faci cu conectorul USB B. Lipiți firul pozitiv într-o gaură de 5V de pe Arduino Pro Mega. Luați firul de împământare și lipiți-l într-o gaură GND. Luați D + și lipiți-l la pinul digital (sau, în acest caz, la gaură) 40. Lipiți D- la pinul analog 15. Lipiți capătul de date al conectorului feminin care se împerechează cu conectorul tată al benzii LED cu pinul de date 6 și fir de împământare la un pin GND. Banda de mascare sau scotch funcționează excelent pentru a ține firele pe tablă, astfel încât acestea să nu cadă când se răstoarnă pentru a fi lipite. Acum luați un buton momentan și lipiți un fir de la un capăt la pinul VCC (sau orice pin de ieșire de tensiune) și celălalt capăt la pinul RESET.
Pasul 5: Controler
Mai întâi este alegerea formei potrivite pentru a începe. Totul depinde de modul în care doriți să vă structurați controlerul. Am vrut mai mult un controler plat, așa că am primit o bucată de scândură de 3 1/2 "cu 3/4". aranjați piesele într-un mod care pare potrivit și confortabil de lucrat. Folosiți o curbă franceză, o busolă, un triunghi și o margine dreaptă pentru a desena pe unde ar trebui să meargă toate piesele. Tăiați conturul de bază folosind instrumentul de tăiere la alegere. Un ferăstrău de interdicție ar fi cel mai bun, dar am folosit un ferăstrău de coping, care a funcționat foarte bine. Șlefuiți marginile pentru a le face o tranziție lină, apoi șlefuiți colțurile pentru ao face mai confortabil. Găuriți orificiul pentru întrerupător, apoi șlefuiți, dalta și / sau dremelați orice parte de pe fund care o va potrivi. Încercați să nu faceți nimic cu partea superioară și șlefuiți doar ceea ce aveți nevoie pentru a-l putea încadra prin răsucire, înclinare sau orice altceva pentru a face să intre. Odată ce este atașat-o cu piulița de plastic și atașați intrerupator. Găuriți zona pentru ca butonul potențiometrului să se potrivească și dăltiți o zonă, astfel încât să se poată scufunda și să se potrivească până la capăt. Găuriți câteva găuri, astfel încât un șurub să o poată fixa. Îndoiți bucățile mici ale conectorului USB A care fac ca lățimea generală să crească puțin (uitați-vă la imagini). Dăltiți o porțiune pentru conector, verificând progresiv pentru a vă asigura că conectorul se potrivește. Lipiți super conectorul în slotul său. Luați o bucată mică de plastic și tăiați-o într-o formă care să se potrivească peste conector (uitați-vă la imagini), apoi capsați-o pe lemn. Tăiați orice bucăți care vă pot împiedica. Înșurubați potențiometrul și atașați butonul. Lipiți firul pozitiv la unul dintre capetele potențiometrului (nu porțiunea variabilă) și firul negativ la capătul opus. Lipiți pinul D la pinul variabil de pe oală. Lipiți un fir de la pinul din oală cu firul pozitiv la unul dintre pinii de pe buton. Lipiți D + la celălalt pin de pe buton. Tunde firul de rezervă și izolează piesele care au nevoie de el.
Pasul 6: cămașă
Găsiți o cămașă confortabilă care să lase lumina să treacă. Am ales acest tricou alb de bază. Nu contează cu adevărat culoarea sau stilul, atâta timp cât lumina poate fi văzută strălucind din interior. Cu toate acestea, nu recomand grafică pe partea din față. Așezați totul pe cămașă pentru a vă ajuta să decideți unde doriți și folosiți un instrument de marcare șters pentru a-l desena. Eu (adică unii oameni pe care îi cunosc) am un creion destinat marcării țesăturilor care se spală ușor. Măsurați dimensiunea bateriilor, a carcasei controlerului și a ecranului și decupați bucăți de hârtie pentru a se potrivi. Apoi fixați hârtia pe o bucată de țesătură care nu se întinde. O țesătură funcționează bine pentru asta. Apoi tăiați dreptunghiul lăsând aproximativ un sfert de centimetru pentru o cusătură tot timpul. Apoi, folosind bucata de hârtie ca ghid de călcat faldurile în țesătură. Acum hârtia poate fi îndepărtată. Pe partea de buzunar care va fi partea superioară, împăturim-o de trei ori. Calcă-l și fixează-l pentru a-l menține la loc. Coaseți un par tot drumul de-a lungul mijlocului pliului. Acum luați colțul și pliați-l, astfel încât marginile ne-cusute perpendiculare una pe cealaltă să fie paralele și coaseți un aspect de-a lungul pliului călcat cel mai apropiat de colț (Imaginile chiar ajută). Faceți acest lucru și pentru celălalt colț. Dacă este posibil să aveți un comutator care iese dintr-un buzunar, coaseți o gaură de buton la baza buzunarului unde atinge comutatorul. Apoi coaseți o gaură de buton și tăiați porțiunea din mijloc. Nu pot da instrucțiuni detaliate, deoarece am avut un instrument grozav pentru a face găuri pentru butoane. Asigurați-vă că faceți găurile înainte ca buzunarul să fie cusut. Luați niște știfturi și trageți-le prin cămașă la colțurile marcajelor pentru buzunar. Luați buzunarul și puneți fiecare colț la un știft (în interiorul cămășii), lăsând un sfert de centimetru pentru cusătură și fixați-l la cămașă. După ce buzunarul a fost fixat. scoateți știfturile care nu țin buzunarul și coaseți buzunarul la cămașă. Repetați pentru toate buzunarele. Pentru buzunarul mare care ține ecranul, lăsați un spațiu pentru firele din partea de jos a buzunarului. Pentru a pune o gaură în cămașă, marcați locul și luați un fier de călcat pe spate (cu partea mai strălucitoare pe țesătură) și călcați-l. Apoi, pentru o gaură mică (cum ar fi ceea ce am folosit pentru comutatorul de comutare), faceți o gaură de buton. Pentru o gaură mai mare, marcați conturul și utilizați o cusătură în zigzag de-a lungul liniei (sau curbă sau ce-aveți) și decupați partea din mijloc. Dacă doriți, puteți folosi bretele pentru a ține greutatea buzunarelor, cele două cleme ținând buzunarele din față și clema din spate pe pantaloni. Am primit și un mic mânecă de țesătură cusută peste părțile bretelelor care vor atinge pielea mea. Două cămăși se pot încălzi puțin, așa că am renunțat și am folosit mâneca mică din țesătură.
Pasul 7: Programare
Și iată codul. Există câteva părți care sunt bine comentate, dar marea majoritate nu. Dacă aveți întrebări despre diferite părți, puteți să-mi dați numărul liniei (cu #include ca linia numărul unu) sau să-mi dați o copie a liniei (liniilor) și a funcției în care se află (cum ar fi loop () sau compMovePaddle ()) și voi face tot posibilul să vi-l explic, apoi adăugați un comentariu la codul explicativ. #include #define PIN 6 // spune care sunt pinii de intrare pentru butonul int al jocului Pin = 40; // dictează scorul, păstrat într-o matrice bianuală, deoarece este esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // dictează direcția mingii int bvd = 0; // 0 este jos, 1 este sus int bhd = 0; // 0 este dreapta, 1 este stânga // dictează poziția bilelor int bvp = 8; int bhp = 6; // verifică dacă mingea este în modul rapid boolean rapid = fals; // verifică dacă este un scor. cIsPoint boolean = fals; pIsPoint boolean = fals; // pozitii paddle int cPaddle = 0; int pPaddle = 0; lung precedentMilis = 0; long previousMillisForComp = 0; // setați timpii de întârziere pentru bilele cu mișcare rapidă și lentă, „Int” în normInt și fastInt este pentru intervalul int normInt = 50; int fastInt = 10; // folosit pentru a verifica câștigul. 1 este câștigător jucător, -1 în câștig computer, și 0 nu s-a întâmplat încă nimic în câștig int = 0; // a scăpa de un bug. folosit în declarația addOne și nicăieri altundeva. int care = 0; // Lucrul afișat înainte de început, -1 este un 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}; // dacă câștigi în câștig = {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}; // dacă pierzi din tine pierzi = {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}; // configurează banda led Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // configurarea, nu transformă pinul 40 pentru introducere, începe banda, afișează // mesajul și îl afișează. void setup () {pinMode (buttonPin, INPUT); strip.begin (); for (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); întârziere (5000); while (digitalRead (buttonPin) == LOW) {// Este o capcană! (până când butonul este apăsat.)}} void loop () {clearScreen (); // desenează paletele pentru a arăta scorul pentru (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)); }} // desenează mingea în poziția sa inițială strip.setPixelColor (98, strip. Color (255, 255, 255)); strip.show (); // decide dacă mingea urcă sau coboară în timp ce (pIsPoint == false && cIsPoint == false) {clearScreen (); curent lung nesemnat Millis = millis (); // atribuie poziția jucătorului paddle pPaddle = checkPaddlePos (); // verifică următoarea poziție checkNext (); // mutarea mingii if (rapid == false) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} else if (rapid == adevărat) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }} // desenează mingea dacă (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)); } // mișcarea paletei computerului compMovePaddle (); // draw's the paddles drawPaddles (); // chiar am pus totul.strip.show (); // verificarea pentru a vedea dacă un punct a fost marcat dacă (pIsPoint == adevărat) {care = 0; bhd = 0; adauga unu(); pauză; } else if (cIsPoint == true) {care = 1; bhd = 1; adauga unu(); pauză; }} if (win == 1) {clearScreen (); for (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } întârziere (5000); for (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } câștiga = 0; } else if (win == -1) {clearScreen (); for (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } întârziere (5000); for (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } câștiga = 0; } pIsPoint = false; cIsPoint = false; bvp = 8; bhp = 6; bvd = random (0, 2); // 0 este jos, 1 este sus rapid = fals; } // AI pentru joc 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 ++; }}} // mută mingea nulă moveBall () {if (bhd == 0) {bhp--; } else if (bhd == 1) {bhp ++; } if (bvd == 0) {bvp--; } else if (bvd == 1) {bvp ++; }} // adaugă unul la matrice. Dacă whichOne este 0, acesta se adaugă la scorul jucătorului. Dacă este 1, acesta adaugă la computerele void addOne () {if (care == 0) {// dacă este scorul jucătorului // Adăugați unul. Acesta este modul simplu în care știu cum. for (int i = 0; i <5; i ++) {// loop if (playerScore == 0) {// if that value is a zero playerScore = 1; // make it 1 break; // apoi pleacă} else {// if it is 1 playerScore = 0; // make it zero and loop}}} else if (which == 1) {for (int i = 0; i <5; i ++) {if (compScore == 0) {compScore = compScore +1; pauză; } else {compScore = 0; }}} // Verifică dacă cineva a câștigat. 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; }} // verifică poziția următoare bilele void checkNext () {// check's pentru a vedea dacă a fost punctat un punct dacă (bhp == 13) {pIsPoint = true; } else if (bhp == 0) {cIsPoint = true; } // dacă a fost marcat un punct decât sări peste restul acestor lucruri dacă (pIsPoint == false || cIsPoint == false) {// verifică mingea pe verticală dacă (bvp + bvd == 15) {bvd = 0; } else if (bvp + bvd == 0) {bvd = 1; } // verifică mingea orizontal dacă (bhp + bhd == 13) {// mai întâi pe partea computerului dacă (bvp> = 10-cPaddle && bvp <= 10-cPaddle + 4) {if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; } rapid = fals; } 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; } rapid = fals; }} else if (bhp + bhd == 1) {// atunci pe partea jucătorului if (bvp> = pPaddle && bvp <= pPaddle + 4) {// lovește paddle într-un loc normal? //bate mingea! if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; }} else if (bvp + bvd == pPaddle || bvp + bvd-5 == pPaddle) {// lovește paddle pe colț dacă (bvp! = 0 && bvp! = 14) {// este nu sus sus sau jos jos? //Bate mingea! if (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; rapid = adevărat; } else if (bvp == 0 || bvp == 14) {// este în sus sau în jos? //bate mingea! bhd = 0; rapid = adevărat; // setați valoarea pentru a face mai târziu mingea să se miște rapid}}}}} int checkPaddlePos () {// citește potul și decide poziția paletei în funcție de dacă (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 () {// draw este paddles în locul corect și afișează scorul pe paddle pentru (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 (); }
Pasul 8: Produsul finit
Și iată, tricoul terminat!
Recomandat:
Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași
Controler de joc DIY bazat pe Arduino | Controler de joc Arduino PS2 | Jucând Tekken cu DIY Arduino Gamepad: Bună, băieți, jocul este întotdeauna distractiv, dar jocul cu propriul controler personalizat DIY este mai distractiv
LAMPĂ SOLARĂ FĂRĂ FĂRĂ CU BRAȚ MAGNETIC FLEXIBIL: 8 pași (cu imagini)
LAMPĂ SOLARĂ FĂRĂ FĂRĂ CU BRAȚ MAGNETIC FLEXIBIL: Acest proiect a fost realizat dintr-o lampă spartă & nodeMCU. Această lampă decorativă poate fi reglată în orice direcție & atașat pe materiale magnetice sau pus pe masă. Poate fi controlat în două moduri după cum urmează: - Mod de control wireless, ca
Laptop flexibil: 5 pași (cu imagini)
Laptop flexibil: Acesta a fost un mic proiect rapid pe care l-am făcut pentru a-mi menține abilitățile de proiectare și prototipare și a împărtăși ceva care nu este sub NDA sau în curs de a fi licențiat cuiva. Îl trimit provocării sfaturilor profesionale și acesta este într-adevăr un ghid pentru
DIY Alternativă ieftină și precisă pentru mănușile senzorului flexibil: 8 pași (cu imagini)
DIY Alternativă ieftină și precisă pentru mănușile flexibile pentru senzori: Bună ziua tuturor, aceasta este prima mea instruire și în acest instructabil vă voi învăța să faceți o mănușă ieftină și precisă pentru senzorii flexibili. Am folosit o mulțime de alternative la senzorul flex, dar niciuna nu a funcționat pentru mine. Deci, am căutat pe Google și am găsit un nou
Senzor flexibil de presiune a țesăturii: 4 pași (cu imagini)
Senzor flexibil de presiune a țesăturii: Cum se realizează un senzor flexibil de presiune a țesăturii din 3 straturi de țesătură conductivă. Acest instructabil este oarecum depășit. Vă rugăm să consultați următoarele Instrucțiuni pentru versiuni îmbunătățite: > > https://www.instructables.com/id/Conductive-Thread-Pre