Innholdsfortegnelse:
- Trinn 1: Materialer og verktøy
- Trinn 2: Skjær LED -stripen inn i mindre strimler
- Trinn 3: Lodding av skjermen sammen
- Trinn 4: Lodding av kjerneelektronikken
- Trinn 5: Kontroller
- Trinn 6: Skjorte
- Trinn 7: Programmering
- Trinn 8: Ferdig produkt
Video: Pong spiller fleksibel skjerm på en skjorte: 8 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Dette er min Halloween -kostyme for 2013. Den har vært i verk i omtrent et år og har tatt ganske mange mannstimer å lage. Skjermen er 14 x 15 piksler, så ganske lav oppløsning, men den kan fortsatt gjøre noen morsomme ting. Den er fysisk fleksibel i alle retninger, selv om den ikke kan brettes uten skader. Den har en kontroller som består av en enkelt knapp og lysbildepotte, koblet til en pro mega via USB. For å holde den i live lenge bruker den to monstrøse 2200 mAh -batterier i serie for å få nødvendig spenning, og deretter en 5 Volt -regulator for å gjøre den brukbar. All elektronikk er plassert i lommer på innsiden av skjorten, slik at de kan tas av og skjorte kan vaskes. Den spiller et funksjonelt spill pong. Den pryder først en med ordene "PONG PLAY" i nydelig blå skrift med en modifisert versjon av Tom Thumb-skriften (finnes på https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Etter fem sekunder kan du velge å trykke på knappen for å gå videre, eller å ikke trykke på knappen og etterlate en helt god opplevelse. Når man velger å trykke på knappen, begynner spillet. En rød padle til høyre er datamaskinpadelen og den grønne padlen til høyre er spillerpadelen, som styres av glidepotten for å bevege seg opp og ned. Ballen spretter rundt mens hver side prøver å ta et poeng. Spilleren kan slå ballen med kanten av padlen for å øke hastigheten (en fin funksjon) mens datamaskinen ikke kan gjøre dette, og i stedet ender med å bli sittende fast med å bevege seg litt saktere enn ballen. Når et poeng er scoret, endres en piksel til hvitt på sidene. Det teller i binært fra bunnen. hvor grønt eller rødt er null og hvitt er 1. 21 er poengsummen for å vinne (eller tape avhengig av hvem som får 21 poeng), og når spillerpaddelen leser 10101, vises "DU VINNER" -teksten. Nok en gang i modifisert Tom Thumb. Det samme skjer, men med "YOU LOSE" vises i stedet. Etter en seier eller tap starter spillet på nytt til poenget rett etter Pong Play. For å starte helt på nytt trykkes på omstartsknappen på "Magic Box", også kjent som boksen-med-alt-elektronikk-unntatt-skjermen.
Trinn 1: Materialer og verktøy
Ting merket med en * er valgfritt, men anbefaler Og så i ingen spesiell rekkefølge … Materialer: 4 Yards of Adafruit Neopixle 60 pixel per meter stripe 1 T-skjorte * 1 par seler 1/2 yard stoff vil være mer enn nok (Ikke elastisk vev er å foretrekke) 6 fot USB A hann til USB B hann kabel 1 USB A hunnkontakt 3 2-pins JST hunnkontakter 4 2-pins JST hannledninger batterilader 2 6600 mAh batterier 1 Arcade style Button 1 arduino pro-mega 1 FTDI header 1 USB B hunnkontakt med utbruddskort 1 av/på -bryter (vippebryter) 1 tilbakestillingsbryter (vippebryter eller øyeblikkelig) 1 skyvepotensiometer *1 skyvepottknapp 1 høyforsterkerkontaktpar *1 prosjektkasse 1 5V 3+ amp spenningsregulator en liten litt plast litt loddetinn litt tråd noen tråder *litt varmt lim *litt elastikk en gang (kanskje litt mer enn "litt") litt utholdenhet (du trenger sannsynligvis ganske mye av dette faktisk) litt varmekrympeslange eller elektrisk tape litt superlim litt jern på underlagsverktøy *Helping Hands Normal Hand s (eller noen som har tilgang til dem) Loddejern *Varmlimpistol Dremel eller Sandpapir Meiseltrådstrimler Wire Cutters Stiftpistol Skrutrekker Sagnåler Symaskin Stoffsaks
Trinn 2: Skjær LED -stripen inn i mindre strimler
Bruk det foretrukne skjæreredskapet og kutt strimmelen i 14 segmenter, hver 15 piksler lang. Klipp bare mellom kobbersporene, merket med noe som "DO" "DIN" "+5V" og "GND". Hvis det allerede er loddet over kobberet, er det bare skåret gjennom. Prøv å ikke kutte for mye i det eksponerte kobberet, men hvis du kutter det litt, er det helt greit. Når alle 14 av strimlene er kuttet, klipper du litt av gummien av hver ende for å fjerne den for å lodde strimlene.
Trinn 3: Lodding av skjermen sammen
Ta ledningen og skjær den i omtrent 9,5 cm lange segmenter. I mitt tilfelle har jeg tre forskjellige farger for å gjøre det lettere å holde rett ved lodding, men en farge ville fungere helt fint. Du trenger omtrent 40 av disse små gutta, men kutt et par til for sikkerhets skyld. Når du er ferdig med å kutte tråden, striper du og tenner endene (Hvis du har loddeerfaring kan du hoppe til neste avsnitt), det vil si at når du har fjernet den lille plasten, legger du litt loddetinn på endene av hver ledning. Ikke varm loddetinnet, og prøv å flytte til ledningen, varm opp med loddejernet fra bunnen av kobberet og legg loddetoppen på toppen. Vær tålmodig og vent til den varme ledningen smelter loddetinnet. Det er fristende å tøffe loddejernet til loddetinnet for å få det i gang (utålmodigheten min og jeg vet nøyaktig hvordan du føler det), men loddetinn vil ikke feste seg like godt. Gjør det samme for de eksponerte kobbersporene i hver ende av stripeseksjonene. Hvis det allerede har loddetinn, ikke bekymre deg for det. For stripen kan det være lurt å bygge opp en liten haug for å gjøre det lettere senere. Når du arbeider med stripen, gjør det raskt, og prøv å ikke bruke for mye tid på å varme på stripen. Bare gjør det du trenger å gjøre for å smelte loddetinnet på sporet. Lodd en ledning på hvert spor til enden av den første stripen (Den første stripen er den med ledningene og kontakten, lodd den til den eksponerte enden). Hvis du ser på stripen, vil du se små piler på den som går opp til enden der du loddet tråden. Ta en ny stripe slik at pilene peker i motsatt retning, og lodd ledningen som kommer fra GND -sporet til GND -sporet til den andre, +5V til +5V og så videre. Gjenta dette og sørg for at pilene bytter retning etter hver seksjon, slik at hvis du skulle følge dem, ville den sikksakk opp og ned, og at den kunne strekkes ut til på en lang stripe til slutt. Når alle 14 strimlene er loddet, legger du dem ut og stiller dem opp slik at lysdiodene danner et rutenett. Hold dem deretter sammen ved hjelp av en metode som kan fjernes senere uten å skade stripen. Jeg brukte tape. Det er klebrig nok til å holde alt sammen, men ikke så klebrig at det blir igjen en rest. Jeg anbefaler ikke noe permanent, som stifter eller tape. Når alt er teipet sammen loddes en ledning fra stripen på bunnen +5V til den som ligger like ved. Gjenta til hele bunnen har tappekranene helt over. Dette er slik at skjermen ikke dempes etter hvert som LED -linjen utvikler seg.
Trinn 4: Lodding av kjerneelektronikken
Lodd USB B breakout -kortet (BOB) til USB B -kontakten. Lodd de riktige ledningene til USB A -kontakten. Jeg anbefaler å se på pin-out av kontakten som finnes på dette nettstedet, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Ikke bekymre deg for hvor du skal lodde de andre endene av ledningene på USB A -kontakten akkurat nå; som vil bli dekket i kontrollertrinnet. Klipp datakontakten fra stripen, hunkontakten, ikke hannkontakten (hunnkontakten er hentet fra den andre enden). Lodd de mannlige JST -kontaktene til batteriets ender, slik at rødt blir rødt og svart går til svart. Smelt varmekrympeslangen over de eksponerte ledningene (gled over før lodding) slik at de ikke kortsluttes eller bruker noe annet som elektrisk tape eller varmt lim. Lodd noen ledninger til alle kvinnelige JST -kontakter. Sørg for å ha en hannende plugget inn slik at pinnene ikke forskyves. Vær forsiktig med polariteten og sørg for at ledningene samsvarer med hankontaktene. Loddetråder til en høyspenningskontakten (men ikke paret), nok en gang, og sørg for at alle farger stemmer overens og at de er plugget sammen for å forhindre at pinner forskyves. Lodd den kvinnelige nettkontakten/ledningen slik at de er koblet i serie, ikke parallelt, for å få den forbi terskelspenningen for effektregulatoren. Så lodd den positive ledningen til den negative ledningen til den andre enheten, så nå har vi en usoldet positiv ledning og en negativ usoldet ledning, og de to loddede ledningene er loddet til forskjellige kontakter. Ta den negative ledningen og lagre den for å bli loddet til den negative ledningen andre steder. Ta nå den positive ledningen og lodd den til bryteren Hvis det er tre eller flere pinner (eller mer enn en måte å være "på"), loddes den til den midterste pinnen. Vær oppmerksom på at "Midtnålen" ikke fysisk er i midten. Måten å identifisere den på er å finne pinnen som, når bryteren er på i en hvilken som helst tilstand, alltid vil være koblet til en annen pinne. Hvis ingen pin er som denne, har du en veldig spesiell bryter; Bare koble den til en hvilken som helst pinne og sørg for at den neste ledningen som er loddet til bryteren vil være koblet til den ledningen i minst én på -tilstand. Nå loddes den positive inntakskabelen på spenningsregulatoren til motsatt ende av bryteren, som diskutert ovenfor. Lodd den postive spenningen ut til den positive enden av den ikke-loddede høystrømkontakten. Ta den negative inntakstråden og lodd den til den negative enden av strømstrømkontakten. Vi skal nå lodde strømmen parallelt med Arduino og Power stripen. Ta nå spenningsregulatorens utgangskabler og lodd to ledninger på både de positive og negative endene, slik at de kommer ut i en Y -form. Lodd en to -pinners kontakt til de positive og negative ledningene til led -stripenheten. Det spiller ingen rolle hvilken type kontakt du bruker, det kan være JST eller i mitt tilfelle noen strøm-/lydkabel eller noe (jeg er ikke sikker, og jeg beklager at jeg ikke har noen bilder). Lodd en av de positive strømledningene til den positive enden av den motsatte kontakten for lyslisten og en av de negative ledningene til den andre pinnen på kontakten. Gjør det samme, men for en mannlig JST -kontakt/ledning. Husk hele tiden å isolere loddeskjøtene for å unngå shorts. La oss nå se hva du skal gjøre med USB B -kontakten. Lodd den positive ledningen til et 5v hull på Arduino Pro Mega. Ta jordledningen og lodd den til et GND -hull. Ta D+ og lodd den til den digitale pinnen (eller i dette tilfellet, hull) 40. Lodder D- til analog pinne 15. Lodd dataenden på hunkontakten som passer med LED-stripe-hankontakten til datapinne 6 og jordet ledning til en GND -pinne. Maskering eller scotch tape fungerer utmerket for å holde ledningene mot brettet, slik at de ikke faller ut når det vendes for å loddes. Ta nå en kort knapp og lodd en ledning fra den ene enden til VCC -pinnen (eller en hvilken som helst spenningsutgangspinne) og den andre enden til RESET -pinnen.
Trinn 5: Kontroller
Først er det å velge riktig form til å begynne med. Alt avhenger av hvordan du vil at kontrolleren skal være strukturert. Jeg ville ha mer av en flat kontroller, så jeg fikk et stykke 3 1/2 "x 3/4" planke. ordne delene på en måte som virker passende og behagelig å jobbe med. Bruk en fransk kurve, kompass, trekant og rett kant for å tegne på hvor alle brikkene skal gå. Klipp ut de grunnleggende omrissene ved hjelp av skjæreverktøyet du velger. En forbudsag ville være best, men jeg brukte en håndteringssag, som fungerte helt fint. Slip ned kantene for å få en jevn overgang, og slip deretter ned hjørnene for å gjøre det mer behagelig. Bor hullet for bryteren, og sand, meisel og/eller Dremel ut en del på bunnen som får den til å passe. Prøv å ikke gjøre noe med toppen og bare pusse ut det du trenger for å kunne passe den inn ved å vri, fiske eller hva som helst for å få den til å gå inn. Når den er i, fest den med plastmutteren og fest den bytte om. Bor ut området for potensiometerknappen for å passe gjennom og meisel ut et område slik at det kan synke inn og passe helt gjennom. Bor ut noen hull slik at en skrue kan holde den inne. Bøy i de små bitene på USB A -kontakten som får den generelle bredden til å øke litt (se på bildene). Meisel ut en del for kontakten, og kontroller gradvis at kontakten passer. Super lim kontakten inn i sporet. Ta et lite stykke plast og kutt det i en form som passer over kontakten (se på bildene), og stift det deretter til treverket. Klipp av eventuelle biter som kan komme i veien. Skru inn potensiometeret og fest knotten. Lodd den positive ledningen til en av endene på potensiometeret (ikke den variable delen) og den negative ledningen til den motsatte enden. Lodd D-pinnen til den variable pinnen på gryten. Lodd en ledning fra pinnen på potten med den positive ledningen til en av pinnene på knappen. Loddetinn D+ til den andre pinnen på knappen. Trim reservetråden og isoler bitene som trenger det.
Trinn 6: Skjorte
Finn en behagelig skjorte som slipper lyset gjennom. Jeg valgte denne grunnleggende hvite T-skjorten. Det spiller ingen rolle farge eller stil så lenge lyset kan sees skinne gjennom fra innsiden. Imidlertid anbefaler jeg ikke grafikk på forsiden. Legg ut alt på skjorten for å hjelpe deg med å bestemme hvor du vil ha den, og bruk et slettbart markeringsverktøy for å tegne den på. Jeg (det vil si noen mennesker jeg kjenner) har en blyant beregnet for å markere tekstiler som lett vaskes ut. Mål størrelsen på batteriene, kontrollhylsteret og skjermen og klipp ut papirstykker som passer. Fest deretter papiret til et stykke ikke-elastisk stoff. En vev fungerer bra for dette. Skjær deretter ut rektangelet og la det stå rundt en tomme for en søm hele veien. Stryk deretter brettene inn i stoffet ved å bruke papirlappen som en guide. Nå kan papiret fjernes. På den delen av lommen som skal være toppen, bretter du den over seg selv tre ganger. Stryk og fest den for å holde den på plass. Sy en synes hele veien langs midten av brettet. Ta nå hjørnet og brett det slik at de usydde kantene vinkelrett på hverandre er parallelle og sy et syn langs den strøkne bretten nærmest hjørnet (bildene hjelper virkelig). Gjør dette også for det andre hjørnet. Hvis det er mulig at du vil ha en vippebryter som kommer ut av en lomme, kan du sy et knapphull i bunnen av lommen der bryteren berører. Sy deretter et knapphull og kutt ut den midterste delen. Jeg kan egentlig ikke gi detaljerte instruksjoner fordi jeg hadde et kult verktøy for å lage knapphull. Bare vær sikker på at du lager hullene før lommen sys på. Ta noen pinner og stikk dem gjennom skjorten i hjørnene på merkene til lommen. Ta lommen og legg hvert hjørne til en pinne (på innsiden av skjorten), og la en kvart tomme for sømmen, og fest den til skjorten. Etter at lommen er festet. fjern pinnene som ikke holder lommen inne, og sy lommen til skjorten. Gjenta for alle lommene. For den store lommen som holder skjermen, la det være et hull for ledningene nederst på lommen. For å sette hull i skjorten, merk stedet og ta et strykejern på baksiden (med den blankere delen på stoffet) og stryk det på. Deretter lager du et knapphull for et lite hull (som det jeg brukte for vippebryteren). For et større hull, merker du omrisset og bruker en sikksakksting langs linjen (eller kurven eller hva-du) og skjærer ut den midtre delen. Hvis du vil, kan du bruke seler for å holde vekten på lommene, de to klippene holder på lommene på forsiden og den bakre klipsen på buksene. Jeg har også sydd en liten stoffhylse over delene av selene som skal berøre huden min. To skjorter kan bli litt for varme, så jeg valgte bort og brukte den lille stoffhylsen.
Trinn 7: Programmering
Og her er koden. Det er noen få deler som er godt kommentert, men de aller fleste er ikke det. Hvis du har spørsmål om forskjellige deler, kan du enten gi meg linjenummeret (med #include som linje nummer ett) eller gi meg en kopi av linjen (e) og funksjonen den ligger i (som loop () eller compMovePaddle ()) og jeg vil gjøre mitt beste for å forklare det for deg, og deretter legge til en kommentar i koden som forklarer det. #include #define PIN 6 // sier hvilke er inngangspinnene for spillet int buttonPin = 40; // dikterer poengsummen, lagret i en bianary -matrise fordi den er esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // dikterer ballens retning int bvd = 0; // 0 er nede, 1 er opp int bhd = 0; // 0 er høyre, 1 er venstre // dikterer kulenes posisjon int bvp = 8; int bhp = 6; // sjekker om ballen er i hurtigmodus boolsk fast = false; // sjekker om det er en poengsum. boolsk cIsPoint = false; boolsk pIsPoint = false; // padle posisjoner int cPaddle = 0; int pPaddle = 0; long previousMillis = 0; long previousMillisForComp = 0; // angi forsinkelsestidene for ballen med rask og langsom bevegelse, "Int" i normInt og fastInt er for intervall int normInt = 50; int fastInt = 10; // pleide å se etter en seier. 1 er spiller seier, -1 i datamaskin seier, og 0 er ingenting har skjedd ennå int vinne = 0; // for å bli kvitt en feil. brukt i addOne -setningen og ingen andre steder. int som = 0; // Ting som vises før start, -1 er en 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}; // hvis du vinner 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}; // hvis du mister 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}; // setter opp led stripen Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // setter opp, slår ingen pinne 40 for input, begynner stripen, viser // -meldingen og viser den. ugyldig oppsett () {pinMode (buttonPin, INPUT); strip.begin (); for (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); forsinkelse (5000); while (digitalRead (buttonPin) == LOW) {// Det er en felle! (til knappen trykkes.)}} void loop () {clearScreen (); // tegner padlene for å vise poengsummen for (int i = 0; i <5; i ++) {if (playerScore == 1) {strip.setPixelColor (204-i, strip. Color (255, 255, 255)); } annet hvis ((playerScore == 0)) {strip.setPixelColor (204-i, strip. Color (0, 255, 0)); } if (compScore == 1) {strip.setPixelColor (5+i, strip. Color (255, 255, 255)); } annet hvis ((compScore == 0)) {strip.setPixelColor (5+i, strip. Color (255, 0, 0)); }}} // trekker ballen i startposisjonen strip.setPixelColor (98, strip. Color (255, 255, 255)); strip.show (); // bestemmer om ballen skal opp eller ned mens (pIsPoint == false && cIsPoint == false) {clearScreen (); usignert langstrømMillis = millis (); // tildeler spillerens padleposisjon pPaddle = checkPaddlePos (); // sjekker neste posisjon checkNext (); // flytte ballen hvis (fast == false) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} annet hvis (fast == true) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }}} // tegne ballen hvis (bhp%2! = 0) {strip.setPixelColor (bhp*15+14-bvp, strip. Color (255, 255, 255)); } annet hvis (bhp%2 == 0) {strip.setPixelColor (bhp*15+bvp, strip. Color (255, 255, 255)); } // datamaskin padle bevegelse compMovePaddle (); // draw's the paddles drawPaddles (); // faktisk satt alt opp.strip.show (); // sjekke om et poeng er blitt scoret hvis (pIsPoint == true) {which = 0; bhd = 0; addOne (); gå i stykker; } annet hvis (cIsPoint == true) {which = 1; bhd = 1; addOne (); gå i stykker; }} if (win == 1) {clearScreen (); for (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } forsinkelse (5000); for (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } seier = 0; } annet if (win == -1) {clearScreen (); for (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } forsinkelse (5000); for (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } seier = 0; } pIsPoint = false; cIsPoint = false; bvp = 8; bhp = 6; bvd = tilfeldig (0, 2); // 0 er nede, 1 er opp raskt = usant; } // AI for spillet void compMovePaddle () {unsigned long currentMillis = millis (); if (currentMillis - previousMillisForComp> 51) {previousMillisForComp = currentMillis; hvis (bvp> = 13 && 10-cPaddle 0) {cPaddle--; } annet hvis (bvp = 0 && cPaddle <10) {cPaddle ++; } annet hvis (bvp-3> 10-cPaddle && 10-cPaddle> = 0 && cPaddle> 0) {cPaddle--; } annet hvis (bvp <10-cPaddle && 10-cPaddle <= 10) {cPaddle ++; }}}} // flytter ballen ugyldig moveBall () {if (bhd == 0) {bhp--; } annet hvis (bhd == 1) {bhp ++; } hvis (bvd == 0) {bvp--; } annet hvis (bvd == 1) {bvp ++; }}} // legger til en i matrisen. Hvis hvilken er 0, øker det spillerens poengsum. Hvis det er 1, legger det til datamaskinene void addOne () {if (which == 0) {// hvis det er spillerens poengsum // Legg til en. Dette er den enkleste måten jeg vet hvordan. for (int i = 0; i <5; i ++) {// loop hvis (playerScore == 0) {// hvis den verdien er en null playerScore = 1; // gjør det til 1 pause; // så gå bort} annet {// hvis det er 1 spillerScore = 0; // gjør det til null og sløyfe}}} annet hvis (hvilket == 1) {for (int i = 0; i <5; i ++) {if (compScore == 0) {compScore = compScore +1; gå i stykker; } annet {compScore = 0; }}}} // Sjekker om noen vant. hvis (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } annet hvis (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }}} // sjekker ballene neste posisjon void checkNext () {// kontroller for å se om et poeng har blitt scoret hvis (bhp == 13) {pIsPoint = true; } annet hvis (bhp == 0) {cIsPoint = true; } // hvis et poeng har blitt scoret enn å hoppe over resten av disse tingene hvis (pIsPoint == false || cIsPoint == false) {// sjekker ballen vertikalt hvis (bvp+bvd == 15) {bvd = 0; } annet hvis (bvp+bvd == 0) {bvd = 1; } // sjekker ballen horisontalt hvis (bhp+bhd == 13) {// først på datasiden hvis (bvp> = 10-cPaddle && bvp <= 10-cPaddle+4) {if (bhd == 1) {bhd = 0; } annet hvis (bhd == 0) {bhd = 1; } rask = usann; } annet hvis (bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5) {if (bvp! = 0 && bvp! = 14) {if (bvd == 0) {bvd = 1; } annet hvis (bvd == 1) {bvd = 0; } bhd = 1; } annet hvis (bvp == 0 || bvp == 14) {bhd = 1; } rask = usann; }} annet hvis (bhp+bhd == 1) {// så på spillersiden hvis (bvp> = pPaddle && bvp <= pPaddle+4) {// treffer det padlen på et normalt sted? // spretter ballen! hvis (bhd == 1) {bhd = 0; } annet hvis (bhd == 0) {bhd = 1; }} annet hvis (bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle) {// treffer det padlen på hjørnet hvis (bvp! = 0 && bvp! = 14) {// er det ikke høyt eller lavt? // Spretter ballen! hvis (bvd == 0) {bvd = 1; } annet hvis (bvd == 1) {bvd = 0; } bhd = 1; rask = sann; } annet hvis (bvp == 0 || bvp == 14) {// er det høyt eller lavt? // spretter ballen! bhd = 0; fast = true; // angi verdien for senere å få ballen til å bevege seg raskt}}}}} int checkPaddlePos () {// leser potten og bestemmer padelposisjonen i henhold til om (analogRead (A15) <93) {return 0; } annet hvis (analogRead (A15) <186) {return 1; } annet hvis (analogRead (A15) <279) {retur 2; } annet hvis (analogRead (A15) <372) {return 3; } annet hvis (analogRead (A15) <465) {return 4; } annet hvis (analogRead (A15) <558) {return 5; } annet hvis (analogRead (A15) <652) {return 6; } annet hvis (analogRead (A15) <745) {return 7; } annet hvis (analogRead (A15) <837) {return 8; } annet hvis (analogRead (A15) <= 931) {return 9; } annet hvis (analogRead (A15) <= 2014) {return 10; }} void drawPaddles () {// draw er padlene på riktig sted og viser poengsummen på padlen for (int i = 0; i <5; i ++) {if (playerScore == 1) {stripe. setPixelColor (pPaddle+i, strip. Color (255, 255, 255)); } annet hvis ((playerScore == 0)) {strip.setPixelColor (pPaddle+i, strip. Color (255, 0, 0)); } if (compScore == 1) {strip.setPixelColor (199+cPaddle-i, strip. Color (255, 255, 255)); } annet hvis ((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 (); }
Trinn 8: Ferdig produkt
Og så går du, den ferdige skjorten!
Anbefalt:
Hvordan sy lysdioder i en t-skjorte: 9 trinn (med bilder)
Hvordan sy lysdioder i en T-skjorte: Jeg underviste dette prosjektet som et verksted på ITP Camp denne uken. Jeg lagde en video slik at elevene mine kunne se hva jeg gjorde (alt er online!) Siden det ble fint tenkte jeg at jeg ville dele det her også! Dette er et sybart kretsprosjekt
Light-Up BB8 T-skjorte: 6 trinn (med bilder)
Light-Up BB8 T-skjorte: Den nye Star Wars-filmen er kanskje ikke til alles smak, men det betyr ikke at vi ikke kan ha det gøy med å feire vår favoritt Star Wars-droid dekket av Porgs! Vi fant denne søte BB- 8 skjorte på vårt lokale Target og ønsket umiddelbart å legge til en LED til
Arduino DIY 6x6 Matrix T-skjorte: 8 trinn (med bilder)
Arduino DIY 6x6 Matrix T-skjorte: Velkommen til mine første instrukser! Jeg vil vise deg hvordan jeg har laget min egen LED-matrise-T-skjorte for omtrent 50 € og hvordan du viser flotte animasjoner og bilder på den ved hjelp av den fantastiske LED-matrisekontrollprogramvaren av Tyler Jones. Først gjorde jeg en 6x8 pixel m
Pi-hulls skjerm ESP8266 med OLED-skjerm: 4 trinn
Pi-hole Monitor ESP8266 Med OLED-skjerm: Pi-hole Monitor er en Wemos D1 Mini (ESP8266) med en SSD1306 OLED-skjerm som administreres via et webgrensesnitt og sitter på ditt lokale nettverk og vil vise statistikk fra Pi-hole-serveren. Funksjoner: Vis Pi-Hole StatisticsTotal BlockedTot
Stranger Things LED T-skjorte: 8 trinn (med bilder)
Stranger Things LED T-skjorte: Materialer du trenger: 1x Vanlig hvit T-skjorte Matt svart stoffmaling (Amazon) 26x adresserbare RGB-lysdioder (Polulu) loddetinn og elektrisk ledning Krympeslange (Maplin) 1x Arduino Uno 1x USB batteripakke 1x USB-A-kabel 1x nål & Hvit trær