Inhaltsverzeichnis:

Pong spielen flexibler Bildschirm auf einem Shirt - Gunook
Pong spielen flexibler Bildschirm auf einem Shirt - Gunook

Video: Pong spielen flexibler Bildschirm auf einem Shirt - Gunook

Video: Pong spielen flexibler Bildschirm auf einem Shirt - Gunook
Video: Wir spielen PONG & SCHÄTZEN Zucker | Wer wird LAST BEAN STANDING? 2024, November
Anonim
Pong spielen flexibler Bildschirm auf einem Hemd
Pong spielen flexibler Bildschirm auf einem Hemd
Pong, das einen flexiblen Bildschirm auf einem Hemd spielt
Pong, das einen flexiblen Bildschirm auf einem Hemd spielt
Pong spielen flexibler Bildschirm auf einem Hemd
Pong spielen flexibler Bildschirm auf einem Hemd

Dies ist mein Halloween-Kostüm für das Jahr 2013. Es ist seit ungefähr einem Jahr in Arbeit und hat einige Arbeitsstunden in Anspruch genommen. Der Bildschirm ist 14 x 15 Pixel groß, also eine ziemlich niedrige Auflösung, aber er kann immer noch einige lustige Dinge tun. Es ist in alle Richtungen physikalisch flexibel, kann jedoch nicht ohne Beschädigung gefaltet werden. Es verfügt über einen Controller, der aus einem einzigen Knopf und einem Schieberegler besteht, der über USB mit einem Pro Mega verbunden ist. Um es lange am Leben zu erhalten, verwendet es zwei monströse 2200-mAh-Batterien, die in Reihe geschaltet sind, um die erforderliche Spannung zu erhalten, und dann einen 5-Volt-Regler, um ihn nutzbar zu machen. Die gesamte Elektronik ist in Taschen auf der Innenseite des Hemdes untergebracht, damit sie entfernt und das Hemd gewaschen werden kann. Es spielt ein funktionelles Pongspiel. Es ziert zunächst die Worte "PONG PLAY" in schöner blauer Schrift unter Verwendung einer modifizierten Version der Tom Thumb-Schriftart (zu finden unter https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Nach fünf Sekunden kann die Option gegeben werden, die Taste zu drücken, um weiterzumachen, oder die Taste nicht zu drücken und ein perfektes Erlebnis zu hinterlassen. Wenn man den Knopf drückt, beginnt das Spiel. Ein rotes Paddel rechts ist das Computerpaddel und das grüne Paddle rechts ist das Spielerpaddel, das durch den Schieberegler gesteuert wird, um sich nach oben und unten zu bewegen. Der Ball springt herum, während jede Seite versucht, einen Punkt zu erzielen. Der Spieler kann den Ball mit der Kante seines Schlägers schlagen, um ihn zu beschleunigen (ein nettes Feature), während der Computer dies nicht kann und stattdessen stecken bleibt und sich etwas langsamer als der Ball bewegt. Wenn ein Punkt erzielt wird, ändert sich ein Pixel auf dem Scoring-Seitenpaddel zu weiß. Es zählt binär von unten. wobei Grün oder Rot Null und Weiß 1 ist. 21 ist die Punktzahl zu gewinnen (oder zu verlieren, je nachdem wer 21 Punkte bekommt) und wenn das Spielerpaddel 10101 liest, wird der Text "DU GEWINN" angezeigt. Noch einmal in modifiziertem Tom Thumb. Dasselbe passiert, aber stattdessen wird "YOU LOSE" angezeigt. Nach einem Sieg oder einer Niederlage wird das Spiel bis zum Punkt direkt nach dem Pong Play neu gestartet. Um komplett neu zu starten, wird der Neustart-Knopf auf der "Magic Box", auch bekannt als die-Box-mit-aller-Elektronik-außer-dem-Bildschirm, gedrückt.

Schritt 1: Materialien und Werkzeuge

Materialien und Werkzeuge
Materialien und Werkzeuge
Materialien und Werkzeuge
Materialien und Werkzeuge

Mit einem * gekennzeichnete Dinge sind optional, werden aber empfohlen. Daher in keiner bestimmten Reihenfolge … Materialien: 4 Yards Adafruit Neopixle 60 Pixel pro Meterstreifen 1 T-Shirt * 1 Paar Hosenträger 1/2 Meter Stoff ist mehr als genug (Nicht dehnbare Webart wird bevorzugt) 6 Fuß USB A Stecker auf USB B Stecker Kabel 1 USB A Buchse 3 2 Pin JST Buchsen 4 2 Pin JST Stecker Kabel Ladegerät 2 6600 mAh Akkus 1 Arcade Style Taste 1 Arduino Pro-Mega 1 FTDI Header 1 USB B-Buchse mit Breakout-Board 1 Ein-/Aus-Schalter (Kippschalter) 1 Reset-Schalter (Kippschalter oder Momentan) 1 Schiebepotentiometer *1 Schiebepotentiometer 1 High-Amp-Steckerpaar *1 Projektkoffer 1 5V 3+ Ampere Spannungsregler a small etwas Plastik etwas Lötzinn etwas Draht etwas Faden *etwas Heißkleber *etwas Gummiband für einige Zeit (vielleicht ein bisschen mehr als "etwas") etwas Ausdauer (du wirst wahrscheinlich ziemlich viel davon brauchen) etwas Schrumpfschlauch oder Isolierband etwas Sekundenkleber etwas Eisen auf der Unterlage Werkzeuge *Helping Hands Normal Hand s (oder jemand mit Zugang dazu) Lötkolben *Heißklebepistole Dremel oder Schleifpapier Meißel Abisolierzange Drahtschneider Heftpistole Schraubendreher Sägestifte Nähmaschine Stoffschere

Schritt 2: Schneiden Sie den LED-Streifen in kleinere Streifen

Schneiden Sie den LED-Streifen in kleinere Streifen
Schneiden Sie den LED-Streifen in kleinere Streifen
Schneiden Sie den LED-Streifen in kleinere Streifen
Schneiden Sie den LED-Streifen in kleinere Streifen
Schneiden Sie den LED-Streifen in kleinere Streifen
Schneiden Sie den LED-Streifen in kleinere Streifen

Verwenden Sie Ihr bevorzugtes Schneidegerät und schneiden Sie den Streifen in 14 Segmente von jeweils 15 Pixeln lang. Schneiden Sie nur zwischen den Kupferspuren, beschriftet etwa mit "DO", "DIN" "+5V" und "GND". Wenn es bereits über das Kupfer gelötet ist, schneiden sie es einfach durch. Versuchen Sie, nicht zu viel in das freiliegende Kupfer zu schneiden, aber wenn Sie es ein wenig einschneiden, ist das in Ordnung. Sobald alle 14 Streifen geschnitten wurden, schneiden Sie ein wenig des Gummis von jedem Ende ab, um es zum Löten der Streifen aus dem Weg zu räumen.

Schritt 3: Den Bildschirm zusammenlöten

Bildschirm zusammenlöten
Bildschirm zusammenlöten
Bildschirm zusammenlöten
Bildschirm zusammenlöten
Bildschirm zusammenlöten
Bildschirm zusammenlöten

Nehmen Sie den Draht und schneiden Sie ihn in etwa 9 cm große Segmente. In meinem Fall habe ich drei verschiedene Farben, um es beim Löten einfacher zu machen, aber eine Farbe würde gut funktionieren. Sie werden ungefähr 40 dieser kleinen Kerle brauchen, aber schneiden Sie für alle Fälle ein paar mehr ab. Sobald Sie mit dem Schneiden des Drahtes fertig sind, streifen und verzinnen Sie die Enden (Wenn Sie Löterfahrung haben, können Sie zum nächsten Absatz übergehen), dh nachdem Sie das kleine Stück Plastik entfernt haben, geben Sie etwas Lötmittel auf die Enden jedes Drahtes. Erhitzen Sie das Lot nicht und versuchen Sie, zum Draht zu gelangen, erhitzen Sie mit dem Lötkolben von der Unterseite des Kupfers und legen Sie das Lot auf die Oberseite. Seien Sie geduldig und warten Sie, bis der heiße Draht das Lot schmilzt. Es ist verlockend, den Lötkolben zum Löten zu zwingen, um es zu starten (meine Ungeduld und ich weiß genau, wie Sie sich fühlen), aber das Lötmittel wird nicht so gut haften. Machen Sie dasselbe für die freiliegenden Kupferspuren an jedem Ende der Streifenabschnitte. Wenn es bereits Lötmittel hat, machen Sie sich keine Sorgen. Für den Streifen möchten Sie vielleicht einen kleinen Hügel aufbauen, um es später einfacher zu machen. Wenn Sie mit dem Streifen arbeiten, tun Sie es schnell und versuchen Sie, nicht zu viel Zeit damit zu verbringen, den Streifen zu erhitzen. Tun Sie nur das, was Sie tun müssen, um das Lot auf die Spur zu schmelzen. Löten Sie einen Draht auf jeder Spur bis zum Ende des ersten Streifens (der erste Streifen ist der mit den Drähten und dem Stecker, löten Sie ihn an das freiliegende Ende). Wenn Sie sich den Streifen ansehen, sehen Sie kleine Pfeile, die bis zum Ende führen, an dem Sie den Draht gelötet haben. Nehmen Sie einen anderen Streifen, so dass die Pfeile in die entgegengesetzte Richtung zeigen, und löten Sie den Draht, der von der GND-Spur kommt, auf die GND-Spur der anderen, die +5V auf die +5V und so weiter. Wiederholen Sie dies und stellen Sie sicher, dass die Pfeile nach jedem Abschnitt die Richtung wechseln, damit sie, wenn Sie ihnen folgen, im Zickzack nach oben und unten verlaufen und am Ende zu einem langen Streifen gestreckt werden können. Sobald alle 14 Streifen gelötet sind, legen Sie sie aus und richten Sie sie so aus, dass die LEDs ein Raster bilden. Halten Sie sie dann mit einer Methode zusammen, die später ohne Beschädigung des Streifens entfernt werden kann. Ich habe Klebeband verwendet. Es ist klebrig genug, um alles zusammenzuhalten, aber nicht so klebrig, dass es Rückstände hinterlässt. Ich empfehle nichts dauerhaftes, wie Heftklammern oder Klebeband. Sobald alles zusammengeklebt ist, löten Sie einen Draht vom unteren Streifen +5V zum unmittelbar daneben. Wiederholen Sie dies, bis der gesamte Boden die Stromanschlüsse vollständig hat. Dies ist so, dass der Bildschirm nicht dunkler wird, wenn die LED-Reihe fortschreitet.

Schritt 4: Löten der Kernelektronik

Löten der Kernelektronik
Löten der Kernelektronik
Löten der Kernelektronik
Löten der Kernelektronik
Löten der Kernelektronik
Löten der Kernelektronik

Löten Sie die USB-B-Breakout-Platine (BOB) an den USB-B-Anschluss. Löten Sie die entsprechenden Drähte an den USB-A-Anschluss. Ich empfehle, sich die Pinbelegung des Steckers auf dieser Website anzusehen, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Machen Sie sich jetzt keine Sorgen darüber, wo Sie die anderen Enden der Drähte am USB-A-Anschluss löten sollen. das wird im Controller-Schritt behandelt. Schneiden Sie den Datenstecker von der Leiste ab, die Buchse, nicht den Stecker (Die Buchse wird vom anderen Ende erhalten). Löten Sie die männlichen JST-Anschlüsse an die Enden der Batterie, so dass Rot zu Rot und Schwarz zu Schwarz geht. Schmelzen Sie den Schrumpfschlauch über die freiliegenden Drähte (vor dem Löten geschoben), damit sie nicht kurzschließen oder etwas anderes wie Isolierband oder Heißkleber verwenden. Löten Sie einige Drähte an alle weiblichen JST-Anschlüsse. Stellen Sie sicher, dass ein männliches Ende eingesteckt ist, damit sich die Stifte nicht verschieben. Achten Sie auf die Polarität und stellen Sie sicher, dass die Drähte mit den Steckern übereinstimmen. Lötdrähte an einen der Hochspannungsstecker (aber nicht an das Paar) anlöten, noch einmal darauf achten, dass alle Farben übereinstimmen und dass sie zusammengesteckt sind, um ein Verschieben der Stifte zu verhindern. Löten Sie die Buchse nur Steckverbinder / Drahtbaugruppe so, dass sie in Reihe und nicht parallel verdrahtet sind, um die Schwellenspannung für den Leistungsregler zu überschreiten. Löten Sie also den positiven Draht an den negativen Draht der anderen Baugruppe, so dass wir jetzt einen ungelöteten positiven Draht und einen negativen ungelöteten Draht haben und die beiden gelöteten Drähte an verschiedene Anschlüsse gelötet sind. Nehmen Sie den negativen Draht und speichern Sie ihn, um an anderer Stelle an den negativen Draht gelötet zu werden. Nehmen Sie nun den positiven Draht und löten Sie ihn an den Schalter Wenn es drei oder mehr Pins gibt (oder mehr als eine Möglichkeit, "an" zu sein), löten Sie ihn an den mittleren Pin. Beachten Sie, dass sich der "mittlere Stift" möglicherweise nicht physisch in der Mitte befindet. Sie können ihn identifizieren, indem Sie den Pin finden, der, wenn der Schalter in jedem Zustand eingeschaltet ist, immer mit einem anderen Pin verbunden ist. Wenn kein Pin so ist, haben Sie einen ganz besonderen Schalter; Schließen Sie es einfach an einen beliebigen Pin an und stellen Sie sicher, dass der nächste an den Schalter gelötete Draht in mindestens einem eingeschalteten Zustand mit diesem Draht verbunden ist. Löten Sie nun den positiven Eingangsdraht des Spannungsreglers an das gegenüberliegende Ende des Schalters, wie oben beschrieben. Löten Sie die positive Spannung an das positive Ende des ungelöteten Hochstromsteckers. Nehmen Sie den negativen Ansaugdraht und löten Sie ihn an das negative Ende des Hochstromsteckers. Wir werden jetzt die Stromversorgung parallel zum Arduino und zur Steckdosenleiste löten. Nehmen Sie nun die Ausgangsdrähte des Spannungsreglers und löten Sie zwei Drahtstücke sowohl am positiven als auch am negativen Ende an, so dass sie in einer Y-Form herauskommen. Löten Sie einen zweipoligen Stecker an die positiven und negativen Drähte der LED-Streifenbaugruppe. Es spielt keine Rolle, welche Art von Stecker Sie verwenden, es kann JST oder in meinem Fall ein Strom- / Audiokabel oder so sein (ich bin mir nicht sicher und entschuldige mich, dass ich keine Bilder habe). Löten Sie einen der positiven Stromkabel an das positive Ende des gegenüberliegenden Steckers für den Lichtstreifen und einen der negativen Drähte an den anderen Stift des Steckers. Machen Sie dasselbe, aber für eine männliche JST-Stecker-/Drahtbaugruppe. Denken Sie immer daran, die Lötstellen zu isolieren, um Kurzschlüsse zu vermeiden. Nun zu dem, was mit dem USB-B-Anschluss zu tun ist. Löten Sie den positiven Draht an ein 5V-Loch auf dem Arduino Pro Mega. Nehmen Sie das Erdungskabel und löten Sie es an ein GND-Loch. Nehmen Sie den D+ und löten Sie ihn an den digitalen Pin (oder in diesem Fall das Loch) 40. Löten Sie D- an den analogen Pin 15. Löten Sie das Datenende der Buchse, das mit dem LED-Streifenstecker zusammenpasst, an Datenpin 6 und Massekabel an einen GND-Pin. Maskierungs- oder Klebeband eignen sich hervorragend, um die Drähte an der Platine zu halten, damit sie nicht herausfallen, wenn sie zum Löten umgedreht wird. Nehmen Sie nun einen Taster und löten Sie einen Draht von einem Ende zum VCC-Pin (oder einem beliebigen Spannungsausgangspin) und das andere Ende zum RESET-Pin.

Schritt 5: Controller

Regler
Regler
Regler
Regler
Regler
Regler

Zunächst ist die Wahl der richtigen Form für den Anfang. Es hängt alles davon ab, wie Sie den Controller strukturiert haben möchten. Ich wollte mehr von einem flachen Controller, also habe ich ein Stück 3 1/2 "x 3/4" Planke bekommen. Ordnen Sie die Teile so an, dass es passend und angenehm zu arbeiten scheint. Verwenden Sie eine französische Kurve, einen Kompass, ein Dreieck und eine gerade Kante, um zu zeichnen, wo alle Teile hingehen sollen. Schneiden Sie die Grundkontur mit dem Schneidewerkzeug Ihrer Wahl aus. Eine Bansäge wäre am besten, aber ich benutzte eine Kappsäge, die gut funktionierte. Schleifen Sie die Kanten ab, um einen reibungslosen Übergang zu gewährleisten, und schleifen Sie dann die Ecken ab, um es bequemer zu machen. Bohren Sie das Loch für den Schalter aus, dann schleifen, meißeln und / oder dremeln Sie alle Teile auf der Unterseite aus, die es passen. Versuchen Sie, nichts mit dem Oberteil zu machen und schleifen Sie nur das ab, was Sie brauchen, um es durch Drehen, Abwinkeln oder was auch immer hineinpassen zu können. Sobald es drin ist, befestigen Sie es mit der Plastikmutter und befestigen Sie die Schalter. Bohren Sie den Bereich für den Potentiometerknopf durch und meißeln Sie einen Bereich aus, damit er einsinken und vollständig durchpassen kann. Bohren Sie einige Löcher, damit eine Schraube es festhalten kann. Biegen Sie die kleinen Stücke des USB-A-Anschlusses ein, die die allgemeine Breite etwas vergrößern (siehe Bilder). Meißeln Sie einen Teil für den Stecker aus und prüfen Sie nach und nach, ob der Stecker passt. Kleben Sie den Stecker in den Schlitz. Nehmen Sie ein kleines Stück Plastik und schneiden Sie es in eine Form, die über den Stecker passt (siehe Bilder), und heften Sie es dann an das Holz. Schneiden Sie alle Stücke ab, die im Weg sein könnten. Potentiometer einschrauben und Drehknopf anbringen. Löten Sie den positiven Draht an eines der Enden des Potentiometers (nicht den variablen Teil) und den negativen Draht an das gegenüberliegende Ende. Löten Sie den D-Pin an den variablen Pin am Topf. Löten Sie einen Draht vom Stift am Topf mit dem positiven Draht an einen der Stifte am Knopf. Löten Sie D+ an den anderen Pin des Knopfes. Schneiden Sie den Ersatzdraht ab und isolieren Sie die Teile, die ihn benötigen.

Schritt 6: Hemd

Shirt
Shirt
Shirt
Shirt
Shirt
Shirt

Finden Sie ein bequemes Hemd, das das Licht durchlässt. Ich habe mich für dieses schlichte weiße T-Shirt entschieden. Farbe oder Stil spielen keine Rolle, solange das Licht von innen durchscheint. Allerdings empfehle ich keine Grafiken auf der Vorderseite. Legen Sie alles auf dem Hemd aus, um zu entscheiden, wo Sie es haben möchten, und verwenden Sie ein löschbares Markierungswerkzeug, um es darauf zu zeichnen. Ich (also einige Leute, die ich kenne) habe einen Bleistift zum Markieren von Stoffen, der sich leicht auswaschen lässt. Messen Sie die Größe der Batterien, des Controller-Gehäuses und des Bildschirms und schneiden Sie passende Papierstücke aus. Stecken Sie das Papier dann auf ein Stück nicht dehnbaren Stoffs. Dafür eignet sich ein Gewebe gut. Dann ein Rechteck ausschneiden und etwa einen Zentimeter für eine Naht rundum frei lassen. Dann mit dem Stück Papier als Führung die Falten in den Stoff bügeln. Jetzt kann das Papier entfernt werden. Auf dem Teil der Tasche, der die Oberseite sein wird, falten Sie sie dreimal über sich selbst. Bügeln und stecken Sie es fest, um es an Ort und Stelle zu halten. Nähen Sie einen Saum entlang der Mitte der Falte. Nehmen Sie nun die Ecke und falten Sie sie so, dass die nicht vernähten Kanten senkrecht zueinander sind, und nähen Sie einen Saum entlang der gebügelten Falte am nächsten zur Ecke (Die Bilder helfen wirklich). Tun Sie dies auch für die andere Ecke. Wenn Sie vielleicht einen Kippschalter haben, der aus einer Tasche kommt, nähen Sie ein Knopfloch an der Unterseite der Tasche, wo der Schalter berührt. Dann ein Knopfloch nähen und den Mittelteil ausschneiden. Ich kann nicht wirklich detaillierte Anweisungen geben, weil ich ein cooles Werkzeug hatte, um Knopflöcher zu machen. Achten Sie nur darauf, dass Sie die Löcher machen, bevor die Tasche angenäht wird. Nimm ein paar Stecknadeln und stecke sie an den Ecken der Markierungen für die Tasche durch das Hemd. Nehmen Sie die Tasche und stecken Sie jede Ecke an eine Nadel (auf der Innenseite des Hemdes), lassen Sie einen Viertel Zoll für die Naht und stecken Sie sie an das Hemd. Nachdem die Tasche gepinnt wurde. Entfernen Sie die Stifte, die die Tasche nicht halten, und nähen Sie die Tasche an das Hemd. Wiederholen Sie dies für alle Taschen. Für die große Tasche, die den Bildschirm hält, lassen Sie am Boden der Tasche eine Lücke für die Drähte. Um ein Loch in das Hemd zu bohren, markieren Sie die Stelle und nehmen Sie ein Bügeleisen auf der Unterlage (mit dem glänzenderen Teil auf dem Stoff) und bügeln Sie es auf. Dann für ein kleines Loch (wie das, was ich für den Kippschalter verwendet habe) ein Knopfloch machen. Für ein größeres Loch markieren Sie den Umriss und verwenden Sie einen Zickzackstich entlang der Linie (oder Kurve oder was auch immer) und schneiden Sie den mittleren Teil aus. Wenn Sie möchten, können Sie Hosenträger verwenden, um das Gewicht der Taschen zu halten, die beiden Clips halten die Taschen auf der Vorderseite und der Rücken wird an der Hose befestigt. Ich habe auch einen kleinen Stoffärmel über die Teile der Hosenträger genäht, die meine Haut berühren werden. Zwei Shirts können etwas zu heiß werden, also habe ich mich entschieden und den kleinen Stoffärmel verwendet.

Schritt 7: Programmierung

Programmierung
Programmierung

Und hier ist der Code. Es gibt ein paar Teile, die gut kommentiert sind, aber die überwiegende Mehrheit ist es nicht. Wenn Sie Fragen zu verschiedenen Teilen haben, können Sie mir entweder die Zeilennummer (mit #include als Zeilennummer eins) oder eine Kopie der Zeile(n) und der Funktion, in der sie sich befinden (wie loop() oder compMovePaddle()) und ich werde mein Bestes tun, um es Ihnen zu erklären, und fügen Sie dann einen Kommentar zum Code hinzu, der es erklärt. #include #define PIN 6 // sagt, was die Eingabepins für das Spiel sind Int buttonPin = 40; // diktiert die Punktzahl, die in einem bianären Array gehalten wird, weil sie esier ist int playerScore[5] = {0, 0, 0, 0, 0}; int compScore[5] = {0, 0, 0, 0, 0}; // diktiert die Richtung des Balls int bvd = 0; // 0 ist unten, 1 ist oben int bhd = 0; // 0 ist rechts, 1 ist links // diktiert die Ballposition int bvp = 8; int PS = 6; // prüft, ob sich der Ball im Fast-Modus befindet boolean fast = false; //überprüft, ob es sich um eine Punktzahl handelt. boolescher cIsPoint = false; boolescher pIsPoint = false; // Paddelpositionen Int cPaddle = 0; int pPaddle = 0; lange vorherige Millis = 0; long previousMillisForComp = 0; // Legen Sie die Verzögerungszeiten für sich schnell und langsam bewegende Kugeln fest Das "Int" in normInt und fastInt ist für das Intervall Int normInt = 50; int fastInt = 10; // Wird verwendet, um nach einem Gewinn zu suchen. 1 bedeutet Spielergewinn, -1 Computergewinn und 0 bedeutet, dass noch nichts passiert ist int win = 0; //um einen Fehler loszuwerden. in der addOne-Anweisung und nirgendwo sonst verwendet. int was = 0; //Ding, das vor dem Start angezeigt wird, -1 ist ein 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}; //wenn du gewinnst 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}; //wenn Sie verlieren 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}; // richtet den LED-Streifen ein Adafruit_NeoPixel-Streifen = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // Einrichten, dreht keinen Pin 40 für die Eingabe, beginnt den Streifen, zeigt die // Nachricht an und zeigt sie an. Void setup () { PinMode (buttonPin, INPUT); strip.begin(); for (int i = 0; pongPlay>0; i++) { strip.setPixelColor (pongPlay, strip. Color (0, 0, 255)); } Strip-Show(); Verzögerung (5000); Während (digitalRead (buttonPin) == LOW) {// Es ist eine Falle! (bis die Taste gedrückt wird.)}} Void Schleife () { ClearScreen (); // zeichnet die Paddles, um die Punktzahl anzuzeigen für (int i = 0; i < 5; i++) { if (playerScore = = 1) { strip.setPixelColor(204-i, strip. Color(255, 255, 255)); } Sonst if ((playerScore==0)){ strip.setPixelColor(204-i, strip. Color (0, 255, 0)); } if (compScore==1){strip.setPixelColor(5+i, strip. Color(255, 255, 255)); } Sonst if((compScore==0)){ strip.setPixelColor(5+i, strip. Color(255, 0, 0)); } } // zieht den Ball in seine Ausgangsposition strip.setPixelColor(98, strip. Color(255, 255, 255)); Strip-Show(); // entscheidet, ob der Ball nach oben oder nach unten geht, während (pIsPoint == false && cIsPoint == false) { clearScreen (); unsigned long currentMillis = millis(); // weist die Paddle-Position des Spielers zu pPaddle=checkPaddlePos(); //überprüft die nächste Position checkNext(); // den Ball bewegen if (schnell == false) { if (currentMillis - previousMillis> normInt){ previousMillis = currentMillis; moveBall(); } }sonst if(fast == true){ if(currentMillis - previousMillis > fastInt){ previousMillis = currentMillis; moveBall(); }} // den Ball zeichnen if (bhp%2 != 0) { strip.setPixelColor (bhp * 15 + 14-bvp, strip. Color (255, 255, 255)); } Sonst if (bhp%2 == 0) { strip.setPixelColor(bhp*15+bvp, strip. Color(255, 255, 255)); } // Computerpaddelbewegung compMovePaddle (); // zeichnen die Paddel drawPaddles (); //eigentlich alles aufstellen. Strip-Show(); // Überprüfen, ob ein Punkt erzielt wurde if (pIsPoint == true) {was = 0; bhd=0; füge eins hinzu(); brechen; }sonst if(cIsPoint == true){ was = 1; bhd=1; füge eins hinzu(); brechen; }} Wenn (gewinnen == 1) {clearScreen(); for (int i = 0; youWin>0; i++){ strip.setPixelColor(youWin, strip. Color(255, 0, 0)); Strip-Show(); } Verzögerung (5000); für (int i = 0; i < 5; i ++) {playerScore = 0; compScore = 0; } gewinnen = 0; } Sonst wenn (win == -1) { clearScreen (); for (int i = 0; youLose>0; i++){ strip.setPixelColor (youLose, strip. Color (0, 255, 0)); Strip-Show(); } Verzögerung (5000); für (int i = 0; i < 5; i ++) {playerScore = 0; compScore = 0; } gewinnen = 0; } pIsPoint = false; cIsPoint = false; bvp = 8; PS = 6; bvd=random(0, 2);//0 ist unten, 1 ist oben schnell=falsch; } //Die KI für das Spiel void compMovePaddle () { unsigned long currentMillis = millis (); if(currentMillis - previousMillisForComp > 51){ previousMillisForComp = currentMillis; if (bvp >= 13 && 10-cPaddle 0){ cPaddle--; }sonst if(bvp = 0 && cPaddle < 10){ cPaddle++; }sonst if(bvp-3 > 10-cPaddle && 10-cPaddle >= 0 && cPaddle > 0){ cPaddle--; }sonst if(bvp < 10-cPaddle && 10-cPaddle <= 10){ cPaddle++; } } } // bewegt den Ball Void moveBall () { if (bhd == 0) { bhp--; }sonst if(bhd == 1){ bhp++; } Wenn (bvd == 0) {bvp--; }sonst if(bvd == 1){ bvp++; } } // fügt eins zum Array hinzu. Wenn whichOne 0 ist, wird es zur Punktzahl des Spielers hinzugefügt. Wenn es 1 ist, wird es zu den Computern hinzugefügt void addOne () { if (which == 0) {//wenn es die Punktzahl des Spielers ist // Add one. Dies ist der einfachste Weg, den ich kenne. for (int i=0; i < 5; i++){//loop if (playerScore == 0){//wenn dieser Wert null ist playerScore=1;//mache 1 Pause; //dann geh weg }else {//if es ist 1 playerScore=0; // mach es zu Null und schleife } } }else if(which == 1){ for (int i=0; i < 5; i++) { if (compScore == 0){ compScore=compScore+1; brechen; }sonst { compScore=0; } } } //Überprüft, ob jemand gewonnen hat. if (compScore[0]==1 && compScore[2]==1 && compScore[4]==1){ win = -1; }sonst if (playerScore[0]==1 && playerScore[2]==1 && playerScore[4]==1){ win = 1; } } //überprüft die nächste Position der Kugeln void checkNext(){ //überprüft, ob ein Punkt erzielt wurde if (bhp == 13){ pIsPoint = true; }sonst if(bhp == 0){ cIsPoint = true; } //wenn ein Punkt erzielt wurde, dann überspringe den Rest if (pIsPoint == false || cIsPoint == false){ //überprüft den Ball vertikal if (bvp+bvd==15){ bvd = 0; } Sonst wenn (bvp + bvd = = 0) { bvd = 1; } //überprüft den Ball horizontal if (bhp+bhd==13){//zuerst auf der Computerseite if (bvp >= 10-cPaddle && bvp <= 10-cPaddle+4){ if(bhd==1) { bhd = 0; } Sonst wenn (bhd = = 0) { bhd = 1; } schnell = falsch; }sonst if(bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5){ if(bvp != 0 && bvp !=14){ if (bvd == 0){ bvd=1; } Sonst wenn (bvd == 1) { bvd = 0; } bhd=1; }sonst wenn (bvp == 0 || bvp == 14){ bhd=1; } schnell = falsch; } }else if(bhp+bhd==1){//then auf der Spielerseite if (bvp >= pPaddle && bvp <= pPaddle+4){//Trifft es das Paddel an einer normalen Stelle? //Prelle den Ball! wenn (bhd = = 1) { bhd = 0; } Sonst wenn (bhd = = 0) { bhd = 1; } }sonst if(bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle){//trifft es das Paddel an der Ecke if(bvp != 0 && bvp !=14){//ist es nicht hoch oder tief runter? //Prelle den Ball! wenn (bvd == 0) { bvd=1; } Sonst wenn (bvd == 1) { bvd = 0; } bhd=1; schnell = wahr; } Sonst wenn (bvp == 0 || bvp == 14){//ist es oben hoch oder unten niedrig? //Prelle den Ball! bhd=0; fast = true; // Setze den Wert, damit sich der Ball später schnell bewegt } } } } } Int checkPaddlePos () { // liest den Pot und entscheidet entsprechend über die Paddelposition if (analogRead (A15) <93) { return 0; } Sonst if (analogRead (A15) <186) { Return 1; } Sonst if (analogRead (A15) < 279) { Rückgabe 2; } Sonst if (analogRead (A15) < 372) { Rückgabe 3; } Sonst if (analogRead (A15) <465) { return 4; } Sonst if (analogRead (A15) <558) { return 5; } Sonst if (analogRead (A15) < 652) { return 6; } Sonst if (analogRead (A15) <745) { return 7; } Sonst if (analogRead (A15) <837) { return 8; } Sonst if (analogRead (A15) <= 931) { return 9; } Sonst if (analogRead (A15) <= 2014) { 10 zurückgeben; } } void drawPaddles () { // Zieht die Paddel an die richtige Stelle und zeigt die Punktzahl auf dem Paddel an für (int i = 0; i < 5; i++) { if (playerScore==1){ strip. setPixelColor(pPaddle+i, strip. Color(255, 255, 255)); } Sonst 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)); } Sonst if((compScore==0)){ strip.setPixelColor(199+cPaddle-i, strip. Color(0, 255, 0)); aufrechtzuerhalten. aufrechtzuerhalten. } Strip-Show(); }

Schritt 8: Fertiges Produkt

Fertiges Produkt
Fertiges Produkt
Fertiges Produkt
Fertiges Produkt

Und los gehts, das fertige Shirt!

Empfohlen: