Table des matières:

Pong jouant à l'écran flexible sur une chemise : 8 étapes (avec photos)
Pong jouant à l'écran flexible sur une chemise : 8 étapes (avec photos)

Vidéo: Pong jouant à l'écran flexible sur une chemise : 8 étapes (avec photos)

Vidéo: Pong jouant à l'écran flexible sur une chemise : 8 étapes (avec photos)
Vidéo: Ne JAMAIS partir SANS SA COPINE 🫢 #humour #blague #drole #couplegoals #internationalcouple #shorts 2024, Décembre
Anonim
Pong jouant un écran flexible sur une chemise
Pong jouant un écran flexible sur une chemise
Pong jouant un écran flexible sur une chemise
Pong jouant un écran flexible sur une chemise
Pong jouant un écran flexible sur une chemise
Pong jouant un écran flexible sur une chemise

C'est mon costume d'Halloween pour l'année 2013. Il est en préparation depuis environ un an et sa création a pris pas mal d'heures de travail. L'écran mesure 14 x 15 pixels, donc une résolution assez faible, mais il peut quand même faire des choses amusantes. Il est physiquement flexible dans toutes les directions, bien qu'il ne puisse pas être plié sans dommage. Il dispose d'un contrôleur composé d'un seul bouton et d'un pot coulissant, connecté à un méga pro via USB. Pour le maintenir en vie longtemps, il utilise deux monstrueuses batteries de 2200 mAh câblées en série pour obtenir la tension nécessaire, puis un régulateur de 5 volts pour le rendre utilisable. Tous les appareils électroniques sont placés dans des poches à l'intérieur de la chemise afin qu'ils puissent être retirés et que la chemise puisse être lavée. Il joue un jeu fonctionnel de pong. Il orne d'abord les mots "PONG PLAY" dans de jolis caractères bleus en utilisant une version modifiée de la police Tom Thumb (disponible sur https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Après cinq secondes, il est possible d'appuyer sur le bouton pour continuer ou de ne pas appuyer sur le bouton et de laisser une expérience parfaitement satisfaisante. Quand on choisit d'appuyer sur le bouton, le jeu commence. Une palette rouge sur la droite est la palette de l'ordinateur et la palette verte sur la droite est la palette du joueur, qui est contrôlée par le pot coulissant pour se déplacer de haut en bas. Le ballon rebondit alors que chaque camp essaie de marquer un point. Le joueur peut frapper la balle avec le bord de sa raquette pour l'accélérer (une fonctionnalité intéressante) alors que l'ordinateur ne peut pas le faire, et finit par être bloqué en se déplaçant légèrement plus lentement que la balle. Lorsqu'un point est marqué, un pixel devient blanc sur la palette des côtés de score. Il compte en binaire à partir du bas. où vert ou rouge est zéro et blanc est 1. 21 est le score à gagner (ou à perdre selon qui obtient 21 points) et donc lorsque la palette du joueur indique 10101, le texte « VOUS GAGNEZ » s'affiche. Encore une fois dans Tom Thumb modifié. La même chose se produit mais avec « VOUS PERDEZ » affiché à la place. Après une victoire ou une défaite, le jeu reprend au point juste après Pong Play. Pour redémarrer entièrement, le bouton de redémarrage de la "Magic Box", également connu sous le nom de la-boîte-avec-tout-l'électronique-sauf-l'écran, est enfoncé.

Étape 1: Matériaux et outils

Matériaux et outils
Matériaux et outils
Matériaux et outils
Matériaux et outils

Les choses marquées d'un * sont facultatives mais recommandées. le tissage extensible est préférable) Câble USB A mâle vers USB B mâle de 6 pieds 1 connecteur USB A femelle 3 connecteurs femelles JST à 2 broches 4 fils mâles JST à 2 broches chargeur de batterie 2 batteries 6600 mAh 1 bouton de style arcade 1 arduino pro-mega 1 en-tête FTDI 1 connecteur USB B femelle avec carte de dérivation 1 interrupteur marche/arrêt (à bascule) 1 interrupteur de réinitialisation (à bascule ou momentané) 1 potentiomètre coulissant * 1 bouton de potentiomètre 1 paire de connecteurs à haute intensité * 1 boîtier de projet 1 régulateur de tension 5V 3+ amp un petit un peu de plastique un peu de soudure du fil du fil * un peu de colle chaude * un peu d'élastique un certain temps (peut-être un peu plus que "certains") un peu de persévérance (vous aurez probablement besoin d'un peu de ça en fait) un peu de gaine thermorétractable ou de ruban électrique un peu de super colle du fer sur le support Outils *Helping Hands Main normale s (ou quelqu'un qui y a accès) Fer à souder *Pistolet à colle chaude Dremel ou papier abrasif Ciseau à dénuder Coupe-fils Pistolet à agrafes Tournevis Scie Épingles Machine à coudre Ciseaux à tissu

Étape 2: Coupez la bande LED en bandes plus petites

Couper la bande LED en bandes plus petites
Couper la bande LED en bandes plus petites
Couper la bande LED en bandes plus petites
Couper la bande LED en bandes plus petites
Couper la bande LED en bandes plus petites
Couper la bande LED en bandes plus petites

Utilisez votre ustensile de coupe préféré et coupez la bande en 14 segments, chacun de 15 pixels de long. Coupez uniquement entre les traces de cuivre, étiquetées comme "DO" "DIN" "+5V" et "GND". S'il est déjà soudé sur le cuivre, il suffit de le couper. Essayez de ne pas trop couper dans le cuivre exposé, mais si vous l'entaillez un peu, c'est très bien. Une fois que les 14 bandes ont été coupées, coupez un peu de caoutchouc à chaque extrémité pour le dégager du chemin pour souder les bandes.

Étape 3: souder l'écran ensemble

Souder l'écran ensemble
Souder l'écran ensemble
Souder l'écran ensemble
Souder l'écran ensemble
Souder l'écran ensemble
Souder l'écran ensemble

Prenez le fil et coupez-le en segments d'environ 3,5 pouces (9 cm). Dans mon cas, j'ai trois couleurs différentes pour faciliter le maintien de la ligne droite lors de la soudure, mais une couleur fonctionnerait très bien. Vous aurez besoin d'environ 40 de ces petits gars, mais coupez-en quelques autres au cas où. Une fois que vous avez fini de couper le fil, dénudez et étamez les extrémités (si vous avez de l'expérience en soudure, vous pouvez passer au paragraphe suivant), c'est-à-dire après avoir retiré le petit morceau de plastique, mettez de la soudure aux extrémités de chaque fil. Ne chauffez pas la soudure et essayez de vous déplacer vers le fil, chauffez avec votre fer à souder par le bas du cuivre et placez la soudure sur le dessus. Soyez patient et attendez que le fil chaud fasse fondre la soudure. Il est tentant de serrer le fer à souder sur la soudure pour le faire démarrer (mon impatience et je sais exactement ce que vous ressentez) mais la soudure ne collera pas aussi bien. Faites de même pour les traces de cuivre exposées à chaque extrémité des sections de bande. S'il y a déjà de la soudure, ne vous inquiétez pas. Pour la bande, vous voudrez peut-être construire un petit monticule pour le rendre plus facile plus tard. Lorsque vous travaillez avec la bande, faites-le rapidement et essayez de ne pas passer trop de temps à appliquer de la chaleur sur la bande. Ne faites que ce que vous devez faire pour faire fondre la soudure sur la trace. Soudez un fil sur chaque trace à l'extrémité de la première bande (la première bande étant celle avec les fils et le connecteur, soudez-la à l'extrémité exposée). Si vous regardez la bande, vous verrez des petites flèches allant jusqu'à l'extrémité où vous avez soudé le fil. Prenez une autre bande pour que les flèches pointent dans le sens opposé, et soudez le fil venant de la trace GND à la trace GND de l'autre, le +5V au +5V et ainsi de suite. Répétez cette opération en vous assurant que les flèches changent de direction après chaque section afin que si vous deviez les suivre, elles zigzaguaient de haut en bas et qu'elles puissent être étirées sur une longue bande à la fin. Une fois les 14 bandes soudées, disposez-les et alignez-les de manière à ce que les LED forment une grille. Ensuite, gardez-les ensemble en utilisant une méthode qui peut être retirée plus tard sans endommager la bande. J'ai utilisé du scotch. Il est suffisamment collant pour garder le tout ensemble, mais pas au point de laisser un résidu. Je ne recommande rien à permanent, comme des agrafes ou du ruban adhésif. Une fois que tout a été scotché, soudez un fil de la bande du bas +5V à celle juste à côté. Répétez jusqu'à ce que tout le fond ait les robinets d'alimentation traversant tout le long. C'est ainsi que l'écran ne s'assombrit pas au fur et à mesure que la ligne de LED progresse.

Étape 4: Souder le Core Electronics

Souder l'électronique de base
Souder l'électronique de base
Souder l'électronique de base
Souder l'électronique de base
Souder l'électronique de base
Souder l'électronique de base

Soudez la carte de dérivation USB B (BOB) au connecteur USB B. Soudez les fils appropriés au connecteur USB A. Je conseille de regarder le brochage du connecteur tel que trouvé sur ce site Web, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Ne vous inquiétez pas de l'endroit où souder les autres extrémités des fils sur le connecteur USB A pour le moment; qui sera couvert dans l'étape du contrôleur. Coupez le connecteur de données de la bande, le connecteur femelle, pas le connecteur mâle (le connecteur femelle est obtenu de l'autre extrémité). Soudez les connecteurs JST mâles aux extrémités de la batterie pour que le rouge passe au rouge et que le noir passe au noir. Faites fondre le tube thermorétractable sur les fils exposés (faites-le glisser avant de souder) afin qu'ils ne soient pas court-circuités ou qu'ils n'utilisent pas autre chose comme du ruban isolant ou de la colle chaude. Soudez quelques fils à tous les connecteurs JST femelles. Assurez-vous d'avoir une extrémité mâle branchée afin que les broches ne se déplacent pas. Faites attention à la polarité et assurez-vous que les fils correspondent aux connecteurs mâles. Soudez les fils à l'un des connecteurs haute tension (mais pas à la paire), encore une fois, en vous assurant que toutes les couleurs correspondent et qu'elles sont branchées ensemble pour éviter tout déplacement des broches. Soudez simplement l'ensemble connecteur/fil femelle de manière à ce qu'ils soient câblés en série et non en parallèle, pour qu'il dépasse la tension de seuil du régulateur de puissance. Donc, soudez le fil positif au fil négatif de l'autre assemblage. Nous avons donc maintenant un fil positif non soudé et un fil négatif non soudé et les deux fils soudés sont soudés à des connecteurs différents. Prenez le fil négatif et conservez-le pour qu'il soit soudé au fil négatif ailleurs. Maintenant, prenez le fil positif et soudez-le à l'interrupteur S'il y a trois broches ou plus (ou plus d'une façon d'être « on »), soudez-le à la broche du milieu. Notez que la « broche du milieu » peut ne pas être physiquement au milieu. La façon de l'identifier est de trouver la broche qui, lorsque l'interrupteur est allumé dans n'importe quel état, sera toujours connectée à une autre broche. Si aucune broche n'est comme celle-ci, vous avez un commutateur très spécial; connectez-le simplement à n'importe quelle broche et assurez-vous que le prochain fil soudé au commutateur sera connecté à ce fil dans au moins un état allumé. Soudez maintenant le fil d'admission positif du régulateur de tension à l'extrémité opposée de l'interrupteur, comme indiqué ci-dessus. Soudez la tension positive à l'extrémité positive du connecteur à courant élevé non soudé. Prenez le fil d'admission négatif et soudez-le à l'extrémité négative du connecteur à courant élevé. Nous allons maintenant souder l'alimentation en parallèle à l'Arduino et à la barrette d'alimentation. Maintenant, prenez les fils de sortie du régulateur de tension et soudez deux morceaux de fil aux extrémités positive et négative afin qu'ils sortent en forme de Y. Soudez un connecteur à deux broches aux fils positif et négatif de l'ensemble de bande LED. Peu importe le type de connecteur que vous utilisez, il peut s'agir de JST ou dans mon cas d'un câble d'alimentation/audio ou autre (je ne suis pas sûr et je m'excuse de ne pas avoir de photos). Soudez l'un des fils d'alimentation positifs à l'extrémité positive du connecteur opposé pour la bande lumineuse et l'un des fils négatifs à l'autre broche du connecteur. Faites de même mais pour un ensemble connecteur/fil JST mâle. Pendant tout ce temps, n'oubliez pas d'isoler les joints de soudure pour éviter les courts-circuits. Maintenant sur quoi faire avec le connecteur USB B. Soudez le fil positif à un trou 5v sur l'Arduino Pro Mega. Prenez le fil de terre et soudez-le à un trou GND. Prenez le D+ et soudez-le à la broche numérique (ou dans ce cas, le trou) 40. Soudez D- à la broche analogique 15. Soudez l'extrémité de données du connecteur femelle qui s'accouple avec le connecteur mâle de la bande LED à la broche de données 6 et le fil de terre à une broche GND. Le masquage ou le scotch fonctionnent très bien pour maintenir les fils sur la carte afin qu'ils ne tombent pas lorsqu'elle est retournée pour être soudée. Maintenant, prenez un bouton momentané et soudez un fil d'une extrémité à la broche VCC (ou n'importe quelle broche de sortie de tension) et l'autre extrémité à la broche RESET.

Étape 5: Contrôleur

Manette
Manette
Manette
Manette
Manette
Manette

La première consiste à choisir la bonne forme pour commencer. Tout dépend de la façon dont vous voulez que le contrôleur soit structuré. Je voulais plus d'un contrôleur plat, alors j'ai eu un morceau de planche de 3 1/2" par 3/4". arrangez les pièces d'une manière qui semble appropriée et confortable à travailler. Utilisez une courbe française, une boussole, un triangle et une règle pour dessiner où toutes les pièces doivent aller. Découpez le contour de base à l'aide de l'outil de coupe de votre choix. Une scie à chantourner serait préférable, mais j'ai utilisé une scie à chantourner, qui a très bien fonctionné. Poncez les bords pour une transition en douceur, puis poncez les coins pour le rendre plus confortable. Percez le trou pour l'interrupteur, puis poncez, burinez et/ou dremel n'importe quelle partie sur le fond qui le fera s'adapter. Essayez de ne rien faire avec le dessus et ne poncez que ce dont vous avez besoin pour pouvoir l'insérer en le tournant, en l'inclinant ou autre pour le faire rentrer. Une fois qu'il est en place, fixez-le avec l'écrou en plastique et fixez le changer. Percez la zone pour que le bouton du potentiomètre passe à travers et ciselez une zone pour qu'il puisse s'enfoncer et s'adapter complètement. Percez quelques trous pour qu'une vis puisse le maintenir. Pliez les petits morceaux du connecteur USB A qui augmentent un peu sa largeur générale (regardez les photos). Ciseler une partie pour le connecteur, en vérifiant progressivement pour s'assurer que le connecteur s'adapte. Super collez le connecteur dans son emplacement. Prenez un petit morceau de plastique et coupez-le en une forme qui s'adaptera au connecteur (regardez les photos), puis agrafez-le au bois. Coupez tous les morceaux qui pourraient gêner. Vissez le potentiomètre et fixez le bouton. Soudez le fil positif à l'une des extrémités du potentiomètre (pas la partie variable) et le fil négatif à l'extrémité opposée. Soudez la broche D à la broche variable sur le pot. Soudez un fil de la broche sur le pot avec le fil positif à l'une des broches sur le bouton. Soudez D+ à l'autre broche du bouton. Coupez le fil de rechange et isolez les pièces qui en ont besoin.

Étape 6: Chemise

La chemise
La chemise
La chemise
La chemise
La chemise
La chemise

Trouvez une chemise confortable qui laissera passer la lumière. J'ai choisi ce T-shirt blanc basique. Peu importe la couleur ou le style tant que la lumière peut être vue de l'intérieur. Cependant, je ne recommande pas les graphiques sur le devant. Disposez tout sur la chemise pour vous aider à décider où vous le voulez et utilisez un outil de marquage effaçable pour le dessiner. J'ai (c'est-à-dire certaines personnes que je connais) un crayon destiné à marquer les tissus qui se lave facilement. Mesurez la taille des piles, du boîtier du contrôleur et de l'écran et découpez des morceaux de papier correspondants. Épinglez ensuite le papier sur un morceau de tissu non extensible. Un tissage fonctionne bien pour cela. Ensuite, découpez un rectangle en laissant environ un quart de pouce pour une couture tout autour. Ensuite, en utilisant le morceau de papier comme guide, repassez les plis dans le tissu. Maintenant, le papier peut être retiré. Sur la partie de la poche qui sera le haut, pliez-la trois fois sur elle-même. Repassez et épinglez-le pour le maintenir en place. Cousez un look tout au long du milieu du pli. Maintenant, prenez le coin et pliez-le de manière à ce que les bords non cousus perpendiculaires les uns aux autres soient parallèles et cousez le long du pli repassé le plus proche du coin (les images aident vraiment). Faites de même pour l'autre coin. Si par hasard vous avez un interrupteur à bascule qui sort d'une poche, cousez une boutonnière à la base de la poche où l'interrupteur touche. Cousez ensuite une boutonnière et découpez la partie centrale. Je ne peux pas vraiment donner d'instructions détaillées car j'avais un outil sympa pour faire des boutonnières. Assurez-vous simplement de faire les trous avant de coudre la poche. Prenez quelques épingles et piquez-les à travers la chemise aux coins des marques pour la poche. Prenez la poche et placez chaque coin à une épingle (à l'intérieur de la chemise), en laissant un quart de pouce pour la couture, et épinglez-la à la chemise. Une fois la poche épinglée. retirez les épingles qui ne retiennent pas la poche et cousez la poche à la chemise. Répétez l'opération pour toutes les poches. Pour la grande poche tenant l'écran, laissez un espace pour les fils au fond de la poche. Pour faire un trou dans la chemise marquez l'endroit et prenez un fer à repasser sur l'envers (avec la partie la plus brillante sur le tissu) et repassez dessus. Ensuite, pour un petit trou (comme ce que j'ai utilisé pour l'interrupteur à bascule), faites une boutonnière. Pour un trou plus grand, marquez le contour et utilisez un point en zigzag le long de la ligne (ou courbe ou autre) et découpez la partie médiane. Si vous le souhaitez, vous pouvez utiliser des bretelles pour maintenir le poids des poches, les deux clips retenant les poches sur le devant et le dos se clipsant sur le pantalon. J'ai aussi une petite manche de tissu cousue sur les parties des bretelles qui toucheront ma peau. Deux chemises peuvent devenir un peu trop chaudes, j'ai donc opté pour la petite manche en tissu.

Étape 7: Programmation

La programmation
La programmation

Et voici le code. Il y a quelques parties qui sont bien commentées mais la grande majorité ne l'est pas. Si vous avez des questions sur différentes parties, vous pouvez soit me donner le numéro de ligne (avec #include comme ligne numéro un) ou me donner une copie de la ou des lignes et de la fonction dans laquelle elle réside (comme loop() ou compMovePaddle()) et je ferai de mon mieux pour vous l'expliquer, puis ajouter un commentaire au code l'expliquant. #include #define PIN 6 //indique quelles sont les broches d'entrée pour le jeu int buttonPin = 40; //dicte le score, conservé dans un tableau bianaire car il est plus simple int playerScore[5] = {0, 0, 0, 0, 0}; int compScore[5] = {0, 0, 0, 0, 0}; //dicte la direction de la balle int bvd=0;//0 est en bas, 1 est en haut int bhd=0;//0 est à droite, 1 est à gauche //dicte la position de la balle int bvp = 8; int bhp = 6; //vérifie si la balle est en mode rapide boolean fast = false; // vérifie s'il s'agit d'un score. booléen cIsPoint = false; booléen pIsPoint = false; //positions de palette int cPaddle = 0; int pPaddle = 0; long précédentMillis = 0; long précédentMillisForComp = 0; //définir les temps de retard pour les balles rapides et lentes, le "Int" dans normInt et fastInt est pour l'intervalle int normInt = 50; int fastInt = 10; // utilisé pour vérifier une victoire. 1 est la victoire du joueur, -1 dans la victoire de l'ordinateur, et 0 est que rien ne s'est encore produit int win = 0; //pour se débarrasser d'un bogue. utilisé dans l'instruction addOne et nulle part ailleurs. entier qui = 0; //Chose affichée avant le démarrage, -1 est un escape int pongPlay = {1, 2, 3, 4, 10, 11, 12, 13, 16, 18, 20, 27, 29, 33, 34, 41, 42, 61, 62, 63, 70, 71, 72, 76, 85, 86, 88, 91, 92, 94, 100, 101, 102, 103, 131, 132, 136, 139, 144, 145, 146, 147, 148, 161, 162, 166, 175, 183, 185, 192, 194, 195, 196, 197, 198, 199, 204, 205, 206, 207, 208, -1}; //si vous gagnez 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}; //si vous perdez 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}; // configure la bande led Bande Adafruit_NeoPixel = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); //configuration, ne tourne aucune broche 40 pour l'entrée, commence la bande, affiche le //message et le montre. void setup() { pinMode(buttonPin, INPUT); strip.begin(); for (int i = 0; pongPlay>0; i++){ strip.setPixelColor(pongPlay, strip. Color(0, 0, 255)); } strip.show(); retard (5000); while (digitalRead(buttonPin) == LOW){ //C'est un piège ! (jusqu'à ce que le bouton soit enfoncé.) } } void loop() { clearScreen(); //dessine les palettes pour montrer le score pour(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)); } } // dessine la balle dans sa position de départ strip.setPixelColor(98, strip. Color(255, 255, 255)); strip.show(); //décide si la balle monte ou descend while(pIsPoint == false && cIsPoint == false){ clearScreen(); non signé long currentMillis = millis(); //assigne la position de la raquette du joueur pPaddle=checkPaddlePos(); //vérifie la position suivante checkNext(); //déplacement de la balle if (fast == false){ if(currentMillis - previousMillis > normInt){ previousMillis = currentMillis; moveBall(); } } else if(fast == true){ if(currentMillis - previousMillis > fastInt){ previousMillis = currentMillis; moveBall(); } } //dessiner la balle 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)); } //mouvement de la palette de l'ordinateur compMovePaddle(); //dessiner les palettes drawPaddles(); // en fait tout mettre en place.strip.show(); //vérification pour voir si un point a été marqué if (pIsPoint == true){ which = 0; bhd=0; ajoute un(); Pause; } else if(cIsPoint == true){ which = 1; bhd=1; ajoute un(); Pause; } } if (win == 1){ clearScreen(); for (int i = 0; youWin>0; i++){ strip.setPixelColor(youWin, strip. Color(255, 0, 0)); strip.show(); } retard (5000); for (int i = 0; i < 5; i++){ playerScore = 0; compScore = 0; } gagner = 0; } else if (win == -1){ clearScreen(); for (int i = 0; youLose>0; i++){ strip.setPixelColor(youLose, strip. Color(0, 255, 0)); strip.show(); } retard (5000); for (int i = 0; i < 5; i++){ playerScore = 0; compScore = 0; } gagner = 0; } pIsPoint = faux; cIsPoint = faux; bvp = 8; ch = 6; bvd=random(0, 2);//0 est en panne, 1 est en hausse rapide=false; } //L'IA pour le jeu 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++; } } } // déplace la balle vide moveBall(){ if (bhd == 0){ bhp--; } else if(bhd == 1){ bhp++; } si (bvd == 0){ bvp--; }sinon if(bvd == 1){ bvp++; } } // en ajoute un au tableau. Si whichOne vaut 0, cela s'ajoute au score du joueur. Si c'est 1, il ajoute aux ordinateurs void addOne(){ if (which == 0){//si c'est le score du joueur //Ajouter un. C'est la façon la plus simple que je connais. for (int i=0; i < 5; i++){//loop if (playerScore == 0){//si cette valeur est zéro playerScore=1;//make it 1 break; //puis s'en aller }else {//si c'est 1 playerScore=0;//le mettre à zéro et boucler } } }else if(which == 1){ for (int i=0; i < 5; i++){ if (compScore == 0){ compScore=compScore+1; Pause; }autre { compScore=0; } } } //Vérifie si quelqu'un a gagné. 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; } } //vérifie la position suivante des balles void checkNext(){ //vérifie si un point a été marqué if (bhp == 13){ pIsPoint = true; } else if(bhp == 0){ cIsPoint = true; } //si un point a été marqué alors ignorer le reste if (pIsPoint == false || cIsPoint == false){ //vérifie la balle verticalement if (bvp+bvd==15){ bvd = 0; }sinon si(bvp+bvd==0){ bvd = 1; } //vérifie la balle horizontalement if (bhp+bhd==13){//d'abord côté ordinateur if (bvp >= 10-cPaddle && bvp <= 10-cPaddle+4){ if(bhd==1) { bhd=0; }sinon si(bhd==0){ bhd=1; } rapide = faux; }else if(bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5){ if(bvp != 0 && bvp !=14){ if (bvd == 0){ bvd=1; }sinon si(bvd == 1){ bvd=0; } bhd=1; }sinon si (bvp == 0 || bvp == 14){ bhd=1; } rapide = faux; } }else if(bhp+bhd==1){//then du côté du joueur if (bvp >= pPaddle && bvp <= pPaddle+4){//est-ce qu'il frappe la pagaie à un endroit normal ? //faire rebondir la balle! if(bhd==1){ bhd=0; }sinon si(bhd==0){ bhd=1; } } else if(bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle){//est-ce qu'il frappe la pagaie dans le coin if(bvp != 0 && bvp !=14){//est-ce ni haut ni bas ? //Faire rebondir la balle! si (bvd == 0){ bvd=1; }sinon if(bvd == 1){ bvd=0; } bhd=1; rapide = vrai; }else if (bvp == 0 || bvp == 14){//est-ce haut ou bas ? //faire rebondir la balle! bhd=0; fast = true;//définir la valeur pour que la balle se déplace plus tard } } } } } int checkPaddlePos(){ //lit le pot et décide de la position de la raquette en conséquence if (analogRead(A15)<93){ return 0; } else if(analogRead(A15)<186){ return 1; } else if(analogRead(A15)<279){ return 2; } else if(analogRead(A15)<372){ return 3; } else if(analogRead(A15)<465){ return 4; } else if(analogRead(A15)<558){ return 5; } else if(analogRead(A15)<652){ return 6; } else if(analogRead(A15)<745){ return 7; } else if(analogRead(A15)<837){ return 8; } else if(analogRead(A15)<=931){ return 9; } else if(analogRead(A15)<=2014){ return 10; } } void drawPaddles(){ // dessine les palettes au bon endroit et affiche le score sur la palette 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(); }

Étape 8: Produit fini

Produit fini
Produit fini
Produit fini
Produit fini

Et voilà, la chemise terminée !

Conseillé: