Sisällysluettelo:

Pongin joustava näyttö paidassa: 8 vaihetta (kuvilla)
Pongin joustava näyttö paidassa: 8 vaihetta (kuvilla)

Video: Pongin joustava näyttö paidassa: 8 vaihetta (kuvilla)

Video: Pongin joustava näyttö paidassa: 8 vaihetta (kuvilla)
Video: Bruce Lee Ping Pong (Full Version) 2024, Joulukuu
Anonim
Pongin joustava näyttö paidassa
Pongin joustava näyttö paidassa
Pongin joustava näyttö paidassa
Pongin joustava näyttö paidassa
Pongin joustava näyttö paidassa
Pongin joustava näyttö paidassa

Tämä on minun Halloween -pukuni vuodelle 2013. Se on ollut työn alla noin vuoden ja sen luominen on kestänyt muutamia tunteja. Näyttö on 14 x 15 pikseliä, joten melko pieni resoluutio, mutta se voi silti tehdä hauskoja asioita. Se on fyysisesti joustava kaikkiin suuntiin, vaikka sitä ei voi taittaa vahingoittumatta. Siinä on ohjain, joka koostuu yhdestä painikkeesta ja liukupannusta, yhdistettynä pro mega -laitteeseen USB -liitännän kautta. Pitääkseen sen hengissä pitkään, se käyttää kahta hirvittävää 2200 mAh: n akkua, jotka on kytketty sarjaan tarvittavan jännitteen saamiseksi, ja sitten 5 voltin säädintä, jotta se olisi käyttökelpoinen. Kaikki elektroniikka on sijoitettu taskuihin paidan sisäpuolella, jotta ne voidaan poistaa ja paita voidaan pestä. Se pelaa toimivaa pongipeliä. Se korostaa ensin sanoja "PONG PLAY" kauniilla sinisellä kirjaimella käyttäen Tom Thumb -fontin muokattua versiota (löytyy osoitteesta https://robey.lag.net/2010/01/23/tiny-monospace-font).html). Viiden sekunnin kuluttua voidaan antaa mahdollisuus painaa painiketta siirtyäksesi eteenpäin tai olla painamatta painiketta ja jättää täysin hyvä kokemus taakse. Kun joku päättää painaa painiketta, peli alkaa. Punainen mela oikealla on tietokoneen mela ja oikea mela oikealla on pelaajameli, jota liikutellaan potin avulla ylös ja alas. Pallo pomppii ympäri, kun molemmat osapuolet yrittävät saada pisteen. Pelaaja voi lyödä palloa melon reunalla nopeuttaakseen sitä (mukava ominaisuus), kun tietokone ei voi tehdä tätä, ja sen sijaan jää jumiin ja liikkuu hieman palloa hitaammin. Kun piste on pisteytetty, pikseli muuttuu valkoiseksi pisteytyspuolen mela. Se lasketaan binäärinä alhaalta. jossa vihreä tai punainen on nolla ja valkoinen on 1. 21 on voittopiste (tai häviö riippuen siitä, kuka saa 21 pistettä), joten kun pelaajan mela lukee 10101, "YOU WIN" -teksti näytetään. Jälleen muutetussa Tom Thumbissa. Sama tapahtuu, mutta "YOU LOSE" näkyy sen sijaan. Voiton tai tappion jälkeen peli käynnistyy uudelleen heti Pong Play -pelin jälkeen. Käynnistä kokonaan uudelleen "Magic Box" -laitteen uudelleenkäynnistyspainike, joka tunnetaan myös nimellä "box-with-all-the-elektroniikka" paitsi näyttö.

Vaihe 1: Materiaalit ja työkalut

Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut

Asiat, jotka on merkitty *: lla, ovat valinnaisia, mutta suositeltavia. Joten ei missään erityisessä järjestyksessä… Materiaalit: 4 jaardia Adafruit-neopikseliä 60 pikseliä metrissä 1 T-paita * 1 pari ripustimia 1/2 jaardia kangasta riittää Joustava kudos on edullinen) 1 USB B -naarasliitin, jossa on katkaisukortti 1 päälle/pois -kytkin (vaihtokytkin) 1 nollauskytkin (kytkin tai hetkellinen) 1 liukupotentiometri *1 liukupotin nuppi 1 suuritehoinen liitinpari *1 projektikotelo 1 5V 3+ amp: n jännitesäädin hieman muovia juotosta lankaa lankaa lankaa *jotakin kuumaa liimaa *jotakin joustavaa jonkin aikaa (ehkä hieman enemmän kuin "jotkut") jonkin verran sinnikkyyttä (tarvitset todennäköisesti melko vähän tätä itse asiassa) jonkin verran kutisteputkea tai sähköteippiä jotain superliimaa ja rautaa pohjalla Työkalut *Auttavat kädet Normaali käsi s (tai joku, jolla on pääsy niihin) Juotosrauda *Kuuma liimapistooli Dremel tai hiekkapaperi Talttalangan kuorintalanka Leikkuuterät Nitojapistoolin ruuvinväännin Sahatapit Ompelukoneen kangassakset

Vaihe 2: Leikkaa LED -nauha pienemmiksi nauhoiksi

Leikkaa LED -nauha pienemmiksi nauhoiksi
Leikkaa LED -nauha pienemmiksi nauhoiksi
Leikkaa LED -nauha pienemmiksi nauhoiksi
Leikkaa LED -nauha pienemmiksi nauhoiksi
Leikkaa LED -nauha pienemmiksi nauhoiksi
Leikkaa LED -nauha pienemmiksi nauhoiksi

Käytä haluamaasi leikkuuvälinettä ja leikkaa nauha 14 osaan, joista jokainen on 15 pikseliä pitkä. Jos se on jo juotettu kuparin päälle, ne leikataan juuri läpi. Yritä olla leikkaamatta liikaa paljastettuun kupariin, mutta jos lyöt sitä hieman, se on hienoa. Kun kaikki 14 nauhaa on leikattu, leikkaa hieman kumia kummastakin päästä, jotta se ei pääse nauhojen juottamiseen.

Vaihe 3: Näytön juottaminen yhteen

Näytön juottaminen yhteen
Näytön juottaminen yhteen
Näytön juottaminen yhteen
Näytön juottaminen yhteen
Näytön juottaminen yhteen
Näytön juottaminen yhteen

Ota lanka ja leikkaa se noin 9 cm: n lohkoiksi. Minun tapauksessani minulla on kolme eri väriä helpottamaan suoraa juottamista, mutta yksi väri toimisi hienosti. Tarvitset noin 40 näistä pienistä kavereista, mutta leikkaa pari lisää. Kun olet lopettanut langan leikkaamisen, irrota ja tinaa päät (jos sinulla on juotoskokemusta, voit siirtyä seuraavaan kappaleeseen). Älä kuumenna juotosta ja yritä siirtyä lankaan, kuumenna juottimella kuparin pohjasta ja aseta juote päälle. Ole kärsivällinen ja odota, että kuuma lanka sulaa juotteen. On houkuttelevaa sitoa juotosrauta juotokseen aloittaakseen sen (kärsimättömyyteni ja tiedän tarkalleen miltä sinusta tuntuu), mutta juote ei tartu yhtä hyvin. Tee sama paljaille kuparijälille nauhaosien molemmissa päissä. Jos siinä on jo juotetta, älä huolehdi siitä. Nauhalle kannattaa rakentaa pieni kumpu helpottaakseen myöhemmin. Kun työskentelet nauhan kanssa, tee se nopeasti ja yritä olla käyttämättä paljon aikaa lämmön levittämiseen nauhalle. Tee vain se, mitä sinun on tehtävä sulattaaksesi juote jälkeen. Juotos lanka jokaiseen jälkeen ensimmäisen nauhan loppuun (Ensimmäinen nauha, jossa on johdot ja liitin, juota se paljastettuun päähän). Jos katsot nauhaa, näet siinä pieniä nuolia, jotka nousevat loppuun, johon juotit langan. Ota toinen liuska niin, että nuolet osoittavat vastakkaiseen suuntaan, ja juota GND -jäljestä tuleva lanka toisen GND -jälkeen, +5 V +5 V ja niin edelleen. Toista tämä varmistaen, että nuolet vaihtavat suuntaa jokaisen osan jälkeen, jotta jos seuraat niitä, se siksakitsee ylös ja alas ja että se voidaan venyttää pitkälle nauhalle lopulta. Kun kaikki 14 nauhaa on juotettu, aseta ne ja aseta ne sitten riviin niin, että LED -valot muodostavat ruudukon. Pidä ne sitten yhdessä menetelmällä, joka voidaan poistaa myöhemmin vahingoittamatta nauhaa. Käytin teippiä. Se on riittävän tahmea pitää kaiken yhdessä, mutta ei niin tahmeaa, että jää jälkiä. En suosittele mitään pysyvälle, kuten niittejä tai teippiä. Kun kaikki on teipattu yhteen, juota lanka alareunassa olevasta nauhasta +5V välittömästi vieressä olevaan. Toista, kunnes koko pohjassa on virtahanat koko ajan. Näin näyttö ei himmenny LED -valojen edetessä.

Vaihe 4: Ydinelektroniikan juottaminen

Core Electronicsin juottaminen
Core Electronicsin juottaminen
Core Electronicsin juottaminen
Core Electronicsin juottaminen
Core Electronicsin juottaminen
Core Electronicsin juottaminen

Juotos USB B -katkaisukortti (BOB) USB B -liitäntään. Juotos tarvittavat johdot USB A -liitäntään. Suosittelen katsomaan liittimen pin-outia tällä sivustolla osoitteessa https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Älä välitä siitä, minne juottaa johtojen toiset päät USB A -liittimeen juuri nyt; joka käsitellään ohjaimen vaiheessa. Leikkaa dataliitin nauhasta, naarasliitin, ei urosliitin (naarasliitin on saatu toisesta päästä). Juotos urospuoliset JST -liittimet akun päihin niin, että punainen muuttuu punaiseksi ja musta mustaksi. Sulata kutisteputki paljaiden johtojen päälle (liu'uta ennen juottamista), jotta ne eivät oikosulje tai käytä jotain muuta, kuten sähköteippiä tai kuumaa liimaa. Juotos johdot kaikkiin naaraspuolisiin JST -liittimiin. Varmista, että urospää on kytketty, jotta nastat eivät liiku ympäri. Varo napaisuutta ja varmista, että johdot vastaavat urosliittimiä. Juotosjohdot yhdeksi suurjänniteliittimeksi (mutta ei sen pariksi) jälleen varmistaen, että kaikki värit sopivat yhteen ja että ne on kytketty toisiinsa, jotta nastat eivät muutu. Juotos naaraspuolinen liitin/johdinkokoonpano niin, että ne on kytketty sarjaan, ei rinnakkain, jotta se ylittää tehonsäätimen kynnysjännitteen. Joten, juota positiivinen johto toisen kokoonpanon negatiiviseen johtoon, joten nyt meillä on yksi juottamaton positiivinen johto ja yksi negatiivinen juottamaton lanka ja kaksi juotettua johtoa on juotettu eri liittimiin. Ota negatiivijohto ja tallenna se juotettavaksi negatiiviseen johtoon muualla. Ota nyt positiivinen johto ja juota se kytkimelle Jos on kolme tai useampia tappeja (tai useampi kuin yksi tapa olla "päällä"), juota se keskitappiin. Huomaa, että "keskimmäinen tappi" ei välttämättä ole fyysisesti keskellä. Tapa tunnistaa se on löytää tappi, joka kytkettäessä missä tahansa tilassa aina yhdistetään toiseen nastaan. Jos mikään nasta ei ole tällainen, sinulla on erityinen kytkin; kytke se vain mihin tahansa nastaan ja varmista, että seuraava kytkimeen juotettu johto on kytketty kyseiseen johtoon vähintään yhdessä tilassa. Juotos nyt jännitesäätimen positiivinen tulojohto kytkimen vastakkaiseen päähän, kuten edellä on kuvattu. Juotosjännite juotetaan juottamattoman suurvirtaliittimen positiiviseen päähän. Ota negatiivinen tulojohto ja juota se suurvirran liittimen negatiiviseen päähän. Juotamme nyt virran rinnakkain Arduinon ja Power Stripin kanssa. Ota nyt jännitesäätimen lähtöjohdot ja juota kaksi johdinta sekä positiiviseen että negatiiviseen päähän, jotta ne tulevat Y -muotoon. Juotos kaksinapainen liitin led -nauhakokoonpanon positiivisiin ja negatiivisiin johtimiin. Ei ole väliä minkä tyyppistä liitintä käytät, se voi olla JST tai minun tapauksessani jokin virta-/äänikaapeli tai jotain (en ole varma ja pahoittelen, ettei minulla ole kuvia). Juotos yksi positiivisista virtajohdoista valonauhan vastakkaisen liittimen positiiviseen päähän ja yksi negatiivisista johtimista liittimen toiseen nastaan. Tee sama, mutta urospuolisen JST -liittimen/johdinkokoonpanon osalta. Muista kuitenkin eristää juotosliitokset oikosulkujen välttämiseksi. Nyt mitä tehdä USB B -liittimellä. Juotos positiivinen johto 5 V: n reikään Arduino Pro Mega -laitteessa. Ota maadoitusjohto ja juota se GND -reikään. Ota D+ ja juota se digitaaliseen nastaan (tai tässä tapauksessa reikään) 40. Juotin D- analogiseen nastaan 15. Juotos naarasliittimen datapää, joka sopii LED-nauhan urosliittimen kanssa datanastaan 6 ja maadoitusjohto GND -nastaan. Peite- tai teippi toimii loistavasti pitämällä johdot kiinni levyyn, jotta ne eivät putoa pois, kun se käännetään juotettavaksi. Ota nyt hetkellinen painike ja juota johto toisesta päästä VCC -nastaan (tai mihin tahansa jännitelähtötappiin) ja toisesta päästä RESET -nastaan.

Vaihe 5: Ohjain

Ohjain
Ohjain
Ohjain
Ohjain
Ohjain
Ohjain

Ensimmäinen on valita oikea muoto aloittaa. Kaikki riippuu siitä, miten haluat ohjaimen rakennetun. Halusin enemmän litteää ohjainta, joten sain kappaleen 3 1/2 "3/4" lankkua. järjestää osat tavalla, joka tuntuu sopivalta ja mukavalta työskennellä. Käytä ranskalaista käyrää, kompassia, kolmioa ja suoraa reunaa piirtääksesi mihin kaikki palat pitäisi viedä. Leikkaa ääriviivat haluamallasi leikkuutyökalulla. Kielosaha olisi paras, mutta käytin selviytymissahaa, joka toimi hyvin. Hio reunat alas, jotta ne siirtyvät sujuvasti, ja hio nurkat alas, jotta se olisi mukavampaa. Poraa kytkimen reikä ja hio, taltta ja/tai poista kaikki pohjassa olevat osat, jotka tekevät siitä sopivan. Yritä olla tekemättä mitään yläosan kanssa ja hio vain sitä, mitä tarvitset, jotta voit sovittaa sen kiertämällä, kulmalla tai millä tahansa muulla tavalla, jotta se pääsee sisään. Kun se on kiinnitetty muovimutterilla ja kiinnitä vaihtaa. Poraa potentiometrin nupin alue, jotta se mahtuu läpi, ja talttaa alue, jotta se voi upota ja mahtua kokonaan läpi. Poraa joitakin reikiä, jotta ruuvi voi pitää sen sisään. Taivuta USB A -liittimen pieniä paloja, jotka lisäävät sen yleistä leveyttä hieman (katso kuvia). Talttaa liittimen osa ja tarkista vähitellen, että liitin sopii. Super liimaa liitin paikkaansa. Ota pieni pala muovia ja leikkaa se muotoon, joka sopii liittimen päälle (katso kuvia), ja nitoa se sitten puuhun. Katkaise kaikki palat, jotka voivat olla esteenä. Kierrä potentiometri sisään ja kiinnitä nuppi. Juotos positiivinen johto potentiometrin toiseen päähän (ei muuttuvaan osaan) ja negatiivinen johto vastakkaiseen päähän. Juotos D-tappi kattilan muuttuvaan tappiin. Juotos lanka potin tapista positiivisella johdolla johonkin napin nastoista. Juotos D+ painikkeen toiseen tappiin. Leikkaa varalanka ja eristä tarvittavat osat.

Vaihe 6: Paita

Paita
Paita
Paita
Paita
Paita
Paita

Etsi mukava paita, joka päästää valon läpi. Valitsin tämän perusvalkoisen T-paidan. Värillä tai tyylillä ei ole väliä, kunhan valo näkyy sisäpuolelta. En kuitenkaan suosittele grafiikkaa etupuolella. Aseta kaikki paidan päälle, jotta voit päättää, mihin haluat sen, ja käytä pyyhittävää merkintätyökalua sen piirtämiseen. Minulla (eli joillakin tuntemillani ihmisillä) on kynä, joka on tarkoitettu kankaiden merkitsemiseen ja joka pesee helposti. Mittaa paristojen, ohjainkotelon ja näytön koko ja leikkaa sopivia paperia. Kiinnitä sitten paperi joustamattomaan kankaaseen. Kudos toimii tähän hyvin. Leikkaa sitten suorakulmio, joka jättää noin neljänneksen tuuman sauman ympärille. Käytä sitten paperinpalaa ohjaimena ja silitä taitokset kankaaseen. Nyt paperi voidaan poistaa. Taskun yläosassa oleva osa kääntää sen itsensä päälle kolme kertaa. Silitä ja kiinnitä se pitämään se paikallaan. Ompele ulkonäkö kokonaan taitoksen keskelle. Ota nyt kulma ja taita se siten, että toisiinsa nähden kohtisuorat ompelemattomat reunat ovat yhdensuuntaiset ja ompele ulkonäkö lähimpänä kulmaa olevaa silitettyä rypytystä pitkin (kuvat todella auttavat). Tee tämä myös toiselle kulmalle. Jos taskusta tulee vaihtokytkin, ompele napin reikä taskun pohjaan kohtaan, johon kytkin koskettaa. Ompele sitten napinläpi ja leikkaa keskiosa pois. En voi antaa yksityiskohtaisia ohjeita, koska minulla oli hieno työkalu napinreikien tekemiseen. Varmista vain, että teet reiät ennen taskun ompelemista. Ota nastat ja työnnä ne paidan läpi taskun merkintöjen kulmissa. Ota tasku ja aseta jokainen kulma tapille (paidan sisäpuolelle), jättäen neljäsosa tuumaa saumalle ja kiinnitä se paitaan. Taskun kiinnittämisen jälkeen. poista tapit, jotka eivät pidä taskua, ja ompele tasku paitaan. Toista kaikille taskuille. Jätä näyttöä pitävä suuri tasku taskujen alareunaan johtoja varten. Jos haluat tehdä reiän paitaan, merkitse paikka ja ota rauta taustaan (kiiltävä osa kankaaseen) ja silitä se. Tee sitten pieni reikä (kuten mitä käytin vaihtokytkimessä) napin reikä. Jos haluat suuremman reiän, merkitse ääriviivat ja käytä siksakompeleita viivaa (tai käyrää tai mitä sinulla on) pitkin ja leikkaa keskiosa pois. Jos haluat, voit käyttää housuja taskujen painon pitämiseen. Sain myös pienen hihan kangasta ommeltuina housujen osien päälle, jotka koskettavat ihoani. Kaksi paitaa voi tulla hieman liian kuumaksi, joten jätin ne pois ja käytin pientä kangashihaa.

Vaihe 7: Ohjelmointi

Ohjelmointi
Ohjelmointi

Ja tässä on koodi. Muutamia osia kommentoidaan hyvin, mutta suurin osa ei. Jos sinulla on kysymyksiä eri osista, voit joko antaa minulle rivinumeron (jossa #include on rivin numero yksi) tai antaa minulle kopion rivistä ja toiminnoista, jossa se sijaitsee (kuten silmukka () tai compMovePaddle ()) ja yritän parhaani mukaan selittää sen sinulle ja lisätä sen jälkeen selityksen koodiin kommentin. #include #define PIN 6 // kertoo, mitkä ovat pelin tulonapit int -painikePin = 40; // sanelee pistemäärän, joka säilytetään bianary -taulukossa, koska se on esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // sanelee pallon suunnan int bvd = 0; // 0 on alaspäin, 1 on ylös int bhd = 0; // 0 on oikea, 1 vasemmalle // sanelee pallon sijainnin int bvp = 8; int bhp = 6; // tarkistaa, onko pallo nopeassa tilassa boolean fast = false; // tarkistaa onko se pisteet. boolean cIsPoint = epätosi; boolen pIsPoint = epätosi; // mela -asennot int cPaddle = 0; int pPaddle = 0; pitkä edellinenMillis = 0; pitkä edellinenMillisForComp = 0; // aseta viiveajat nopeasti ja hitaasti liikkuvalle pallolle "Int" normIntissa ja fastInt on intervallille int normInt = 50; int fastInt = 10; // käytetään voiton tarkistamiseen. 1 on pelaajan voitto, -1 tietokoneen voitto ja 0 ei ole vielä tapahtunut int voitto = 0; // päästä eroon viasta. käytetään addOne -lauseessa eikä missään muualla. int joka = 0; // Asia, joka näytetään ennen aloitusta, -1 on pako 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}; // jos voitat itsessäsiVoit = {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}; // jos menetät itsesiLose = {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}; // asettaa led -nauhan Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // asetus, ei käännä nasta 40 syöttöä varten, aloittaa nauhan, näyttää // -viestin ja näyttää sen. void setup () {pinMode (buttonPin, INPUT); strip.begin (); for (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); viive (5000); while (digitalRead (buttonPin) == LOW) {// Se on ansa! (kunnes painiketta painetaan.)}} void loop () {clearScreen (); // piirtää melat näyttämään pisteet (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)); } jos (compScore == 1) {strip.setPixelColor (5+i, strip. Color (255, 255, 255)); } else if ((compScore == 0)) {strip.setPixelColor (5+i, strip. Color (255, 0, 0)); }} // piirtää pallon aloitusasentoonsa strip.setPixelColor (98, strip. Color (255, 255, 255)); strip.show (); // päättää, nouseeko vai laskeutuuko pallo samalla (pIsPoint == false && cIsPoint == false) {clearScreen (); allekirjoittamaton pitkävirtaMillis = millis (); // määrittää pelaajan mela -asennon pPaddle = checkPaddlePos (); // tarkistaa seuraavan sijainnin checkNext (); // pallon siirtäminen, jos (nopea == epätosi) {jos (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} else if (fast == true) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }} // piirtää pallo, jos (hv%2! = 0) {strip.setPixelColor (bhp*15+14-bvp, strip. Color (255, 255, 255)); } else if (hv%2 == 0) {strip.setPixelColor (bhp*15+bvp, strip. Color (255, 255, 255)); } // tietokoneen melaliike compMovePaddle (); // draw's the melat drawPaddles (); // oikeastaan laita kaikki ylös.strip.show (); // tarkistetaan onko piste pisteytetty jos (pIsPoint == true) {which = 0; bhd = 0; addOne (); tauko; } else if (cIsPoint == true) {joka = 1; bhd = 1; addOne (); tauko; }} jos (win == 1) {clearScreen (); for (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } viive (5000); for (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } voitto = 0; } else if (win == -1) {clearScreen (); for (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } viive (5000); for (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } voitto = 0; } pIsPoint = epätosi; cIsPoint = epätosi; bvp = 8; hv = 6; bvd = satunnainen (0, 2); // 0 on alas, 1 on nopeasti ylös = epätosi; } // Pelin tekoäly void compMovePaddle () {unsigned long currentMillis = millis (); if (currentMillis - previousMillisForComp> 51) {previousMillisForComp = nykyinenMillis; 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--; } muu jos (bvp <10-cPaddle && 10-cPaddle <= 10) {cPaddle ++; }}} // siirtää pallon void moveBall () {if (bhd == 0) {bhp--; } muu jos (bhd == 1) {bhp ++; } jos (bvd == 0) {bvp--; } muu jos (bvd == 1) {bvp ++; }} // lisää yhden taulukkoon. Jos kumpi on 0, se lisää pelaajan pisteitä. Jos se on 1, se lisää tietokoneisiin void addOne () {if (which == 0) {// jos se on pelaajan pisteet // Lisää yksi. Tämä on yksinkertaisin tapa, jolla tiedän. for (int i = 0; i <5; i ++) {// silmukka, jos (playerScore == 0) {// jos tämä arvo on nolla playerScore = 1; // tee siitä 1 tauko; // mene sitten pois} muu {// jos se on 1 pelaaja; i ++) {if (compScore == 0) {compScore = compScore +1; tauko; } muu {compScore = 0; }}} // Tarkistaa, onko kukaan voittanut. jos (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } muu jos (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }} // tarkistaa pallot seuraava asema void checkNext () {// tarkistaa onko pisteitä saatu jos (bhp == 13) {pIsPoint = true; } else if (bhp == 0) {cIsPoint = true; } // jos piste on saatu, ohita loput, jos (pIsPoint == false || cIsPoint == false) {// tarkistaa pallon pystysuunnassa, jos (bvp+bvd == 15) {bvd = 0; } muu jos (bvp+bvd == 0) {bvd = 1; } // tarkistaa pallon vaakasuoraan, jos (bhp+bhd == 13) {// ensin tietokoneen puolella, jos (bvp> = 10-cPaddle && bvp <= 10-cPaddle+4) {if (bhd == 1) {bhd = 0; } muu jos (bhd == 0) {bhd = 1; } nopea = epätosi; } muuten jos (bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5) {if (bvp! = 0 && bvp! = 14) {if (bvd == 0) {bvd = 1; } muu jos (bvd == 1) {bvd = 0; } bhd = 1; } muu jos (bvp == 0 || bvp == 14) {bhd = 1; } nopea = epätosi; }} muu jos (bhp+bhd == 1) {// sitten pelaajan puolella, jos (bvp> = pPaddle && bvp <= pPaddle+4) {// osuuko se melaan normaalissa paikassa? //pomputa palloa! jos (bhd == 1) {bhd = 0; } muu jos (bhd == 0) {bhd = 1; }} else if (bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle) {// osuuko se kulmaan, jos (bvp! = 0 && bvp! = 14) {// onko se ei ylös tai alas alhaalla? //Pomputa palloa! jos (bvd == 0) {bvd = 1; } muu jos (bvd == 1) {bvd = 0; } bhd = 1; nopea = totta; } muuten jos (bvp == 0 || bvp == 14) {// onko se korkealla vai alhaalla? //pomputa palloa! bhd = 0; fast = true; // aseta arvo myöhemmäksi, jotta pallo liikkuu nopeasti}}}}} int checkPaddlePos () {// lukee potin ja päättää päitsimen asennosta sen mukaisesti, jos (analoginenluku (A15) <93) {palauta 0; } else if (analoginenluku (A15) <186) {paluu 1; } else if (analoginenluku (A15) <279) {paluu 2; } else if (analoginenluku (A15) <372) {paluu 3; } else if (analoginenluku (A15) <465) {paluu 4; } else if (analoginenluku (A15) <558) {paluu 5; } else if (analoginenluku (A15) <652) {paluu 6; } else if (analoginenluku (A15) <745) {paluu 7; } else if (analoginenluku (A15) <837) {paluu 8; } else if (analoginenluku (A15) <= 931) {paluu 9; } else if (analogRead (A15) <= 2014) {return 10; }} void drawPaddles () {// draw on melat oikeassa paikassa ja näyttää pisteiden (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)); } jos (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 (); }

Vaihe 8: Valmis tuote

Valmis tuote
Valmis tuote
Valmis tuote
Valmis tuote

Ja siinä, valmis paita!

Suositeltava: