Inhoudsopgave:
- Stap 1: Materialen en gereedschappen
- Stap 2: Snijd de LED-strip in kleinere strips
- Stap 3: Het scherm aan elkaar solderen
- Stap 4: Solderen van de kernelektronica
- Stap 5: Controller
- Stap 6: Overhemd
- Stap 7: Programmeren
- Stap 8: Afgewerkt product
Video: Pong speelt flexibel scherm op een shirt - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Dit is mijn Halloween-kostuum voor het jaar 2013. Het is al ongeveer een jaar in de maak en het heeft heel wat manuren gekost om te maken. Het scherm is 14 bij 15 pixels, dus vrij lage resolutie maar het kan nog steeds leuke dingen doen. Het is fysiek flexibel in alle richtingen, hoewel het niet kan worden opgevouwen zonder schade. Het heeft een controller bestaande uit een enkele knop en een schuifpot, die via USB is aangesloten op een pro mega. Om hem lang in leven te houden, gebruikt hij twee monsterlijke 2200 mAh-batterijen die in serie zijn geschakeld om de nodige spanning te krijgen, en vervolgens een 5 Volt-regelaar om hem bruikbaar te maken. Alle elektronica zit in zakken aan de binnenkant van het shirt zodat ze kunnen worden verwijderd en zodat het shirt kan worden gewassen. Het speelt een functioneel spelletje pong. Het siert er eerst een met de woorden "PONG PLAY" in mooie blauwe letters met een aangepaste versie van het Tom Thumb-lettertype (te vinden op https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Na vijf seconden kan de optie worden gegeven om op de knop te drukken om verder te gaan, of om niet op de knop te drukken en een perfect goede ervaring achter te laten. Wanneer men ervoor kiest om op de knop te drukken, begint het spel. Een rode peddel aan de rechterkant is de computerpeddel en de groene peddel aan de rechterkant is de spelerpeddel, die wordt bestuurd door de schuifpot om op en neer te bewegen. De bal stuitert rond als elke partij probeert een punt te scoren. De speler kan de bal raken met de rand van zijn peddel om hem te versnellen (een leuke functie), terwijl de computer dit niet kan, en in plaats daarvan vast komt te zitten met iets langzamer bewegen dan de bal. Wanneer een punt wordt gescoord, verandert een pixel in wit op de peddel van de scorende zijde. Het telt in binair vanaf de onderkant. waarbij groen of rood nul is en wit 1. 21 is de score om te winnen (of te verliezen, afhankelijk van wie 21 punten krijgt) en wanneer de spelerpaddle 10101 leest, wordt de tekst "JE WIN" weergegeven. Nogmaals in gewijzigde Tom Thumb. Hetzelfde gebeurt, maar in plaats daarvan wordt "YOU LOSE" weergegeven. Na een overwinning of verlies begint het spel direct na Pong Play opnieuw tot het punt. Om volledig opnieuw op te starten wordt de herstartknop op de "Magic Box", ook wel de-doos-met-alle-elektronica-behalve-het-scherm genoemd, ingedrukt.
Stap 1: Materialen en gereedschappen
Dingen met een * zijn optioneel, maar raden aan. En dus in willekeurige volgorde… Materialen: 4 meter Adafruit Neopixle 60 pixels per meter strip 1 T-shirt *1 paar bretels 1/2 meter stof is meer dan genoeg (niet rekbaar weefsel heeft de voorkeur) 6 voet USB A mannelijke naar USB B mannelijke kabel 1 USB A vrouwelijke connector 3 2-pins JST vrouwelijke connectoren 4 2-pins JST mannelijke draden batterijlader 2 6600 mAh-batterijen 1 Arcade-stijl knop 1 arduino pro-mega 1 FTDI-header 1 vrouwelijke USB B-connector met breakout-kaart 1 aan/uit-schakelaar (toggle) 1 reset-schakelaar (toggle of kortstondig) 1 schuifpotentiometer *1 schuifpotknop 1 paar hoge amp-connectoren *1 projectkoffer 1 5V 3+ amp-spanningsregelaar een kleine beetje plastic wat soldeer wat draad wat draad *wat hete lijm *wat elastiek enige tijd (misschien een beetje meer dan "wat") wat doorzettingsvermogen (je zult hier waarschijnlijk nogal wat van nodig hebben) wat krimpkous of elektrische tape wat superlijm wat ijzer op backing Tools *Helping Hands Normal Hand s (of iemand die er toegang toe heeft) Soldeerbout *Hot lijmpistool Dremel of schuurpapier Beitel Draadstrippers Draadknippers Nietpistool Schroevendraaier Zaagpennen Naaimachine Stoffenschaar
Stap 2: Snijd de LED-strip in kleinere strips
Gebruik je favoriete snijgereedschap en knip de strip in 14 segmenten, elk 15 pixels lang. Knip alleen tussen de kopersporen, gelabeld als "DO" "DIN" "+5V" en "GND". Als het al over het koper is gesoldeerd, wordt het gewoon doorgesneden. Probeer niet te veel in het blootgestelde koper te snijden, maar als je het een beetje inkerft, is dat prima. Nadat alle 14 strips zijn doorgesneden, knipt u een klein beetje van het rubber van elk uiteinde af om het uit de weg te ruimen voor het solderen van de strips.
Stap 3: Het scherm aan elkaar solderen
Neem de draad en knip deze in segmenten van ongeveer 9 cm. In mijn geval heb ik drie verschillende kleuren om het gemakkelijker te maken om recht te blijven tijdens het solderen, maar één kleur zou prima werken. Je hebt ongeveer 40 van deze kleine jongens nodig, maar knip er nog een paar voor het geval dat. Als je klaar bent met het knippen van de draad, strip en vertin de uiteinden (als je soldeerervaring hebt, kun je doorgaan naar de volgende paragraaf), wat betekent dat nadat je het kleine stukje plastic hebt verwijderd, wat soldeer op de uiteinden van elke draad moet worden aangebracht. Verwarm het soldeer niet en probeer naar de draad te gaan, verwarm met je soldeerbout vanaf de onderkant van het koper en leg het soldeer op de bovenkant. Wees geduldig en wacht tot de hete draad het soldeer smelt. Het is verleidelijk om de soldeerbout tegen het soldeer aan te zetten om het op gang te krijgen (mijn ongeduld en ik weet precies hoe je je voelt) maar het soldeer blijft niet zo goed plakken. Doe hetzelfde voor de blootgestelde kopersporen aan elk uiteinde van de stripsecties. Als het al soldeer heeft, maak je er dan geen zorgen over. Voor de strip wil je misschien een kleine heuvel opbouwen om het later gemakkelijker te maken. Wanneer u met de strip werkt, doe het dan snel en probeer niet te veel tijd te besteden aan het aanbrengen van warmte op de strip. Doe alleen wat u moet doen om het soldeer op het spoor te smelten. Soldeer een draad op elk spoor aan het uiteinde van de eerste strip (de eerste strip is degene met de draden en connector, soldeer deze aan het blootgestelde uiteinde). Als je naar de strip kijkt, zie je kleine pijlen die omhoog gaan naar het uiteinde waar je de draad hebt gesoldeerd. Neem nog een strip zodat de pijlen in de tegenovergestelde richting wijzen en soldeer de draad die van het GND-spoor naar het GND-spoor van de andere komt, de +5V naar de +5V enzovoort. Herhaal dit en zorg ervoor dat de pijlen na elke sectie van richting veranderen, zodat als je ze zou volgen, het op en neer zou zigzaggen, en dat het uiteindelijk zou kunnen worden uitgerekt tot op een lange strook. Nadat alle 14 strips zijn gesoldeerd, legt u ze neer en lijnt u ze uit zodat de LED's een raster vormen. Houd ze vervolgens bij elkaar met een methode die later kan worden verwijderd zonder de strip te beschadigen. Ik heb plakband gebruikt. Het is plakkerig genoeg om alles bij elkaar te houden, maar niet zo plakkerig dat het een residu achterlaat. Ik raad niets permanent aan, zoals nietjes of ducttape. Als alles aan elkaar is geplakt, soldeert u een draad van de strip aan de onderkant +5V naar de strip er direct naast. Herhaal dit totdat de hele bodem de stroomkranen helemaal heeft doorlopen. Dit is zodat het scherm niet dimt naarmate de rij LED's vordert.
Stap 4: Solderen van de kernelektronica
Soldeer de USB B breakout board (BOB) op de USB B connector. Soldeer de juiste draden aan de USB A-connector. Ik raad aan om te kijken naar de pin-out van de connector zoals te vinden op deze website, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Maak je geen zorgen over waar je nu de andere uiteinden van de draden op de USB A-connector moet solderen; dat wordt behandeld in de stap van de controller. Snijd de dataconnector van de strip, de vrouwelijke connector, niet de mannelijke connector (de vrouwelijke connector komt van het andere uiteinde). Soldeer de mannelijke JST-connectoren aan de uiteinden van de batterij, zodat rood naar rood gaat en zwart naar zwart. Smelt krimpkous over de blootliggende draden (schuif ze om voor het solderen) zodat ze niet kortsluiten of iets anders gebruiken, zoals elektrische tape of hete lijm. Soldeer enkele draden aan alle vrouwelijke JST-connectoren. Zorg ervoor dat er een mannelijk uiteinde is aangesloten, zodat de pinnen niet verschuiven. Let op de polariteit en zorg ervoor dat de draden overeenkomen met de mannelijke connectoren. Soldeer draden aan een van de hoogspanningsconnector (maar niet het paar), nogmaals, zorg ervoor dat alle kleuren overeenkomen en dat ze op elkaar zijn aangesloten om verschuivende pinnen te voorkomen. Soldeer de vrouwelijke connector / draad-assemblage zodat ze in serie zijn bedraad, niet parallel, om het voorbij de drempelspanning voor de stroomregelaar te krijgen. Dus soldeer de positieve draad aan de negatieve draad van de andere assemblage, dus nu hebben we een niet-gesoldeerde positieve draad en een negatieve niet-gesoldeerde draad en de twee gesoldeerde draden zijn gesoldeerd aan verschillende connectoren. Neem de negatieve draad en bewaar deze om elders aan de negatieve draad te worden gesoldeerd. Neem nu de positieve draad en soldeer deze aan de schakelaar. Als er drie of meer pinnen zijn (of meer dan één manier om "aan" te staan), soldeer deze dan aan de middelste pin. Let op: de "middelste pin" bevindt zich mogelijk niet fysiek in het midden. De manier om het te identificeren is om de pin te vinden die, wanneer de schakelaar aan staat, altijd verbonden zal zijn met een andere pin. Als geen enkele pin zo is, dan heb je een heel speciale schakelaar; sluit het gewoon aan op een willekeurige pin en zorg ervoor dat de volgende draad die aan de schakelaar is gesoldeerd, in ten minste één aan-status op die draad wordt aangesloten. Soldeer nu de positieve ingangsdraad op de spanningsregelaar aan het andere uiteinde van de schakelaar, zoals hierboven besproken. Soldeer de positieve spanning naar het positieve uiteinde van de niet-gesoldeerde hogestroomconnector. Neem de negatieve ingangsdraad en soldeer deze aan het negatieve uiteinde van de hogestroomconnector. We gaan nu de stroom parallel aan de Arduino en Powerstrip solderen. Neem nu de uitgangsdraden van de spanningsregelaar en soldeer twee stukken draad aan zowel het positieve als het negatieve uiteinde, zodat ze in een Y-vorm uitkomen. Soldeer een tweepolige connector aan de positieve en negatieve draden van de ledstripmontage. Het maakt niet uit welk type connector je gebruikt, het kan JST zijn of in mijn geval een stroom-/audiokabel of zoiets (ik weet het niet zeker, en het spijt me dat ik geen foto's heb). Soldeer een van de positieve voedingsdraden aan het positieve uiteinde van de tegenoverliggende connector voor de lichtstrip en een van de negatieve draden aan de andere pin op de connector. Doe hetzelfde, maar dan voor een mannelijke JST-connector/draadassemblage. Vergeet niet om de soldeerverbindingen te isoleren om kortsluiting te voorkomen. Nu op wat te doen met de USB B-connector. Soldeer de positieve draad aan een 5v-gat op de Arduino Pro Mega. Neem de aardingsdraad en soldeer deze aan een GND-gat. Neem de D+ en soldeer deze op de digitale pin (of in dit geval gat) 40. Soldeer D- op analoge pin 15. Soldeer het data-uiteinde van de vrouwelijke connector die past bij de mannelijke connector van de ledstrip op datapin 6 en de aardedraad naar een GND-pin. Afplakband of plakband werken uitstekend om de draden op het bord te houden, zodat ze er niet uit vallen wanneer het wordt omgedraaid om te worden gesoldeerd. Neem nu een kortstondige knop en soldeer een draad van het ene uiteinde naar de VCC-pin (of een spanningsuitgangspin) en het andere uiteinde naar de RESET-pin.
Stap 5: Controller
De eerste is het kiezen van de juiste vorm om mee te beginnen. Het hangt allemaal af van hoe u de controller gestructureerd wilt hebben. Ik wilde meer een platte controller, dus kreeg ik een stuk van 3 1/2 "bij 3/4" plank. rangschik de onderdelen op een manier die passend en comfortabel lijkt om mee te werken. Gebruik een Franse curve, kompas, driehoek en richtliniaal om te tekenen waar alle stukjes moeten komen. Knip de basisomtrek uit met het snijgereedschap van uw keuze. Een banzaag zou het beste zijn, maar ik gebruikte een copingzaag, die prima werkte. Schuur de randen om ze soepel te laten overgaan en schuur vervolgens de hoeken om het comfortabeler te maken. Boor het gat voor de schakelaar uit en schuur, beitel en/of Dremel elk onderdeel aan de onderkant zodat het past. Probeer niets met de bovenkant te doen en schuur alleen wat je nodig hebt om het erin te kunnen passen door te draaien, te kantelen of wat dan ook om het erin te krijgen. Zodra het erin zit, bevestigt u het met de plastic moer en bevestigt u de schakelaar. Boor het gebied uit waar de potentiometerknop door moet passen en beitel een gebied uit zodat het erin kan zinken en er helemaal doorheen past. Boor wat gaten uit zodat een schroef het erin kan houden. Buig de kleine stukjes van de USB A-connector naar binnen, zodat de algemene breedte een beetje groter wordt (kijk naar de foto's). Beitel een gedeelte voor de connector uit en controleer geleidelijk of de connector past. Superlijm de connector in de sleuf. Neem een klein stukje plastic en knip het in een vorm die over de connector past (kijk naar de foto's), en niet het dan op het hout. Snijd alle stukjes af die in de weg kunnen zitten. Draai de potentiometer erin en bevestig de knop. Soldeer de positieve draad aan een van de uiteinden van de potentiometer (niet het variabele gedeelte) en de negatieve draad aan het andere uiteinde. Soldeer de D-pin aan de variabele pin op de pot. Soldeer een draad van de pin op de pot met de positieve draad naar een van de pinnen op de knop. Soldeer D+ aan de andere pin op de knop. Knip de reservedraad af en isoleer de stukken die het nodig hebben.
Stap 6: Overhemd
Zoek een comfortabel overhemd dat het licht doorlaat. Ik koos voor dit basic witte T-shirt. De kleur of stijl maakt niet zoveel uit, als het licht maar van binnenuit zichtbaar is. Ik raad echter geen afbeeldingen aan de voorkant aan. Leg alles op het shirt neer om u te helpen beslissen waar u het wilt hebben en gebruik een uitwisbaar markeergereedschap om het op te tekenen. Ik (en daarmee bedoel ik sommige mensen die ik ken) heb een potlood dat bedoeld is om stoffen te markeren die gemakkelijk uitwasbaar zijn. Meet de grootte van de batterijen, de controllerbehuizing en het scherm en knip stukjes papier uit die bij elkaar passen. Speld het papier vervolgens op een stuk niet-rekbare stof. Een weefsel werkt hier goed voor. Knip vervolgens de rechthoek uit en laat ongeveer een kwart inch vrij voor een naad rondom. Gebruik vervolgens het stuk papier als richtlijn om de vouwen in de stof te strijken. Nu kan het papier worden verwijderd. Op het deel van de zak dat de bovenkant zal zijn, vouw het drie keer over zichzelf. Strijk en speld het om het op zijn plaats te houden. Naai een strook helemaal langs het midden van de vouw. Neem nu de hoek en vouw deze zodat de niet-genaaide randen loodrecht op elkaar evenwijdig zijn en naai een schijn langs de gestreken vouw die zich het dichtst bij de hoek bevindt (de foto's helpen echt). Doe dit ook voor de andere hoek. Als er toevallig een tuimelschakelaar uit een zak komt, naai dan een knoopsgat aan de onderkant van de zak waar de schakelaar elkaar raakt. Naai vervolgens een knoopsgat en knip het middelste gedeelte uit. Ik kan niet echt gedetailleerde instructies geven omdat ik een cool hulpmiddel had om knoopsgaten te maken. Zorg ervoor dat u de gaten maakt voordat de zak wordt genaaid. Neem wat spelden en steek deze door het shirt op de hoeken van de markeringen voor de zak. Neem de zak en plaats elke hoek op een speld (aan de binnenkant van het shirt), laat een kwart inch vrij voor de naad en speld het aan het shirt. Nadat de zak is vastgemaakt. verwijder de pinnen die de zak niet vasthouden en naai de zak aan het shirt. Herhaal dit voor alle zakken. Voor de grote zak die het scherm vasthoudt, laat een opening voor de draden aan de onderkant van de zak. Om een gat in het shirt te maken, markeert u de plaats en neemt u een opstrijkbare achterkant (met het glanzende deel op de stof) en strijkt u het op. Maak vervolgens voor een klein gaatje (zoals wat ik gebruikte voor de tuimelschakelaar), een knoopsgat. Voor een groter gat markeert u de omtrek en gebruikt u een zigzagsteek langs de lijn (of curve of wat dan ook) en knipt u het middelste deel uit. Als je wilt, kun je bretels gebruiken om het gewicht van de zakken te dragen, de twee clips voor de zakken aan de voorkant en de achterkant voor de broek. Ik heb ook een mouwtje van stof genaaid over de delen van de bretels die mijn huid zullen raken. Twee shirts kunnen een beetje te warm worden, dus ik heb ervoor gekozen om de kleine stoffen hoes te gebruiken.
Stap 7: Programmeren
En hier is de code. Er zijn een paar delen die goed zijn becommentarieerd, maar de overgrote meerderheid is dat niet. Als je vragen hebt over verschillende onderdelen, kun je me het regelnummer geven (met #include als regelnummer één) of me een kopie geven van de regel(s) en de functie waarin het zich bevindt (zoals loop() of compMovePaddle()) en ik zal mijn best doen om het je uit te leggen, en dan een opmerking aan de code toe te voegen waarin het wordt uitgelegd. #include #define PIN 6 // zegt wat de invoerpinnen zijn voor het spel int buttonPin = 40; // dicteert de score, bewaard in een bianaire array omdat het gemakkelijker is int playerScore [5] = {0, 0, 0, 0, 0}; int compScore[5] = {0, 0, 0, 0, 0}; // dicteert de richting van de bal int bvd=0;//0 is omlaag, 1 is omhoog int bhd=0;//0 is rechts, 1 is links // dicteert de positie van de ballen int bvp = 8; int pk = 6; // controleert of de bal zich in de snelle modus bevindt boolean fast = false; // controleert of het een score is. booleaans cIsPoint = false; boolean pIsPoint = false; // peddelposities int cPaddle = 0; int pPaddle = 0; lange vorigeMillis = 0; lange vorigeMillisForComp = 0; // stel de vertragingstijden in voor snel en langzaam bewegende bal de "Int" in normInt en fastInt is voor interval int normInt = 50; int snelInt = 10; // gebruikt om te controleren op een overwinning. 1 is spelerwinst, -1 voor computerwinst en 0 is nog niets gebeurd int win = 0; //om van een bug af te komen. gebruikt in de addOne-instructie en nergens anders. int die = 0; //Ding weergegeven voor start, -1 is een 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}; // als je wint 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}; // als je verliest int youLose = {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}; // stelt de ledstrip in Adafruit_NeoPixel-strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // opzetten, draait geen pin 40 voor invoer, begint de strip, geeft het //-bericht weer en laat het zien. void setup () { pinMode (buttonPin, INPUT); strip.begin(); for (int i = 0; pongPlay>0; i++){ strip.setPixelColor(pongPlay, strip. Color(0, 0, 255)); } strip.show(); vertraging (5000); while (digitalRead (buttonPin) == LAAG) { // Het is een valstrik! (totdat de knop wordt ingedrukt.) } } void loop () { clearScreen (); // tekent de paddles om de score weer te geven voor (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)); } } // tekent de bal in zijn startpositie strip.setPixelColor(98, strip. Color(255, 255, 255)); strip.show(); // beslist of de bal omhoog of omlaag gaat while(pIsPoint == false && cIsPoint == false){ clearScreen(); unsigned long currentMillis = millis(); // wijst de paddle-positie van de speler toe pPaddle=checkPaddlePos(); // controleert de volgende positie checkNext(); // de bal verplaatsen if (fast == false) {if(currentMillis - previousMillis > normInt) { previousMillis = currentMillis; moveBall(); } }else if(fast == true){ if(currentMillis - previousMillis > fastInt){ previousMillis = currentMillis; moveBall(); } } //teken de bal 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)); } //computer peddelbeweging compMovePaddle(); //draw is de peddels drawPaddles(); // zet eigenlijk alles op.strip.show(); //controleren om te zien of een punt is gescoord if (pIsPoint == true){ which = 0; bhd=0; Voeg een toe(); pauze; }else if(cIsPoint == true){ welke = 1; bhd=1; Voeg een toe(); pauze; } } if (win == 1){ clearScreen(); for (int i = 0; youWin>0; i++){ strip.setPixelColor(youWin, strip. Color(255, 0, 0)); strip.show(); } vertraging (5000); for (int i = 0; i < 5; i++){ playerScore = 0; compScore = 0; } winnen = 0; }else if (win == -1){ clearScreen(); for (int i = 0; youLose>0; i++){ strip.setPixelColor(youLose, strip. Color (0, 255, 0)); strip.show(); } vertraging (5000); for (int i = 0; i < 5; i++){ playerScore = 0; compScore = 0; } winnen = 0; } pIsPoint = onwaar; cIsPoint = onwaar; bvp = 8; pk = 6; bvd=willekeurig(0, 2);//0 is omlaag, 1 is snel omhoog=false; } //De AI voor het spel 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++; } } } // verplaatst de bal ongeldig moveBall(){ if (bhd == 0){ bhp--; }else if(bhd == 1){ bhp++; } if (bvd == 0){ bvp--; }else if(bvd == 1){ bvp++; } } // voegt er een toe aan de array. Als welke een 0 is, wordt dit toegevoegd aan de score van de speler. Als het 1 is, voegt het toe aan de computers void addOne(){ if (which == 0){//if het is de score van de speler //Voeg er een toe. Dit is de simpelste manier die ik ken. for (int i=0; i < 5; i++){//loop if (playerScore == 0){//als die waarde nul is playerScore=1;//make it 1 break; //ga dan weg }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; pauze; }anders { compScore=0; } } } //Controleert of iemand heeft gewonnen. 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; } } //controleert de ballen volgende positie void checkNext(){ //checks om te zien of er een punt is gescoord if (bhp == 13){ pIsPoint = true; }else if(bhp == 0){ cIsPoint = true; } // als er een punt is gescoord, sla dan de rest van deze dingen over if (pIsPoint == false || cIsPoint == false){ // controleert de bal verticaal if (bvp+bvd==15){ bvd = 0; }else if(bvp+bvd==0){ bvd = 1; } // controleert de bal horizontaal if (bhp+bhd==13){// eerst aan de computerkant if (bvp >= 10-cPaddle && bvp <= 10-cPaddle+4){ if(bhd==1) { bhd=0; }else if(bhd==0){ bhd=1; } snel = onwaar; }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; } snel = onwaar; } }else if(bhp+bhd==1){//dan aan de kant van de speler if (bvp >= pPaddle && bvp <= pPaddle+4){//raakt het de peddel op een normale plek? //Stuiter de bal! if(bhd==1){ bhd=0; }else if(bhd==0){ bhd=1; } }else if(bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle){//raakt het de peddel op de hoek if(bvp != 0 && bvp !=14){//is het niet hoog of laag? //Stuiter de bal! if (bvd == 0){ bvd=1; }else if(bvd == 1){ bvd=0; } bhd=1; snel = waar; }else if (bvp == 0 || bvp == 14){//is het hoog of laag? //Stuiter de bal! bhd=0; fast = true;//stel de waarde in om de bal later snel te laten bewegen } } } } } int checkPaddlePos(){ // leest de pot en beslist over de peddelpositie dienovereenkomstig if (analogRead(A15)<93){ return 0; }els if(analogRead(A15)<186){ return 1; }els if(analogRead(A15)<279){ return 2; }els if(analogRead(A15)<372){ return 3; }els if(analogRead(A15)<465){ return 4; }els if(analogRead(A15)<558){ return 5; }els if(analogRead(A15)<652){ return 6; }els if(analogRead(A15)<745){ return 7; }els if(analogRead(A15)<837){ return 8; }els if(analogRead(A15)<=931){ return 9; }els if(analogRead(A15)<=2014){ return 10; } } void drawPaddles(){ //teken de paddles op de juiste plek en geeft de score weer op de paddle for(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(); }
Stap 8: Afgewerkt product
En daar ga je, het afgewerkte shirt!
Aanbevolen:
Hoe u uw IPad Mini-scherm, LCD-scherm en behuizing vervangt: 12 stappen
Hoe u uw IPad Mini-scherm, LCD-scherm en behuizing vervangt: Wanneer uw scherm op uw iPad mini kapot gaat, kan dit op elke reparatieplaats een kostbare reparatie zijn. Waarom niet wat geld besparen en tegelijkertijd een geweldige nieuwe vaardigheid leren? Deze instructies begeleiden u vanaf het begin van de reparatie tot het einde van de reparatie
Arduino flipperkast die zichzelf speelt! 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Arduino flipperkast die zichzelf speelt!: "Een flipperkast die zichzelf speelt, dat haalt toch al het plezier eruit?" Ik hoor je vragen. Misschien als je niet van autonome robots houdt. Ik ben echter heel erg bezig met het bouwen van robots die coole dingen kunnen doen, en deze
Hoe een 4x3” TFT-scherm met een Arduino te interfacen: 4 stappen
Een 4x3" TFT-scherm koppelen met een Arduino: FocusLCDs.com stuurde me een gratis voorbeeld van een 4x3" TFT LCD (P/N: E43RG34827LW2M300-R) om uit te proberen. Dit is een actieve kleurenmatrix TFT (Thin Film Transistor) LCD (liquid crystal display) die amorf silicium TFT als schakelapparaat gebruikt. Dit model is k
Hoe maak je een groen scherm video vanuit een app: 5 stappen
Hoe maak je een groen scherm video van een app: In deze instructable laat ik je zien hoe je een groen scherm maakt en gebruikt voor het maken van foto's en video's. Er zijn verschillende groene scherm-apps die je kunt gebruiken om het juiste effect te krijgen. Benodigde materialen: Video-opnameapparaat (kan iPod, iPad, o
De GorillaTape Gorillapod! (flexibel statief onder de $ 10): 4 stappen
De GorillaTape Gorillapod! (flexibel statief onder de $ 10): EENVOUDIGE en SNELLE instructies voor het bouwen van een flexibel statief dat zware camera's zoals DSLR's kan ondersteunen. Als je klaar bent, zal het net zo sterk zijn als de $ 70 merknaam Gorillapods, maar kost je minder dan $ 10 … (minder dan $ 4 als je