Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Carte de visite du jeu Tic Tac Toe

Composants et fournitures

Microchip Technology ATmega328
× 1
Bande LED, NeoPixel Digital RGB
× 1
Commutateur tactile, actionné par le haut
× 1
JLCPCB PCB personnalisé
× 1
Arduino UNO
× 1

Outils et machines nécessaires

Fer à souder (générique)
Fil à souder, sans plomb
Flux de soudure, soudure
10 pc. Kit de fils de liaison, 5 cm de long

Applications et services en ligne

Arduino IDE

À propos de ce projet

Bonjour

Dans ce tutoriel, je vais vous montrer comment faire une carte de visite/de visite. Pas seulement une carte de visite. Il s'agit d'un PCB mais comme une carte de visite normale. Vous pouvez voir le nom, le logo, les icônes des réseaux sociaux et un code QR d'EDISON SCIENCE CORNER. Le code QR vous dirigera vers ma chaîne youtube. Mais de l'autre côté, vous pouvez voir un circuit. Ceci est un tic tac toe circuit de jeu. Tic tac toe est un jeu à deux joueurs. Également connu sous le nom de Jeu X O . deux joueurs qui à tour de rôle marquent les espaces dans une grille de trois par trois avec X ou O. Le joueur qui réussit à placer trois de ses marques dans une rangée horizontale, verticale ou diagonale est le gagnant. La plupart du temps, le jeu sera nul. ici, j'ai remplacé X et O par des couleurs et j'ai également changé le traditionnel 3*3 en 4*4. Donc un total de 16 leds et 16 interrupteurs, chaque interrupteur représente la led correspondante. Le joueur 1 est de couleur verte et le joueur 2 rouge. Ça y est je pense que tu as compris.

Voyons maintenant comment faire cela.

Étape 1 :Conception et impression du PCB

Voici donc le circuit de jeu que je l'ai conçu en utilisant easyeda . ici j'utilise atmega328 comme le cœur de ce projet. Ensuite, j'ai converti le circuit en PCB. J'ai conçu le PCB avec une dimension de 89mm*50mm car c'est la taille standard des cartes de visite. J'ai utilisé l'outil d'insertion d'image d'easyeda pour faire le design. c'est juste de l'art que vous pouvez faire avec vos idées. Après avoir conçu le PCB, j'ai téléchargé le fichier Gerber. Ensuite, je suis allé sur jlcpcb.com. J'ai choisi JLCPCB car ils n'offrent que 2$ pour 5 PCB. Pour commander des PCB Cliquez simplement sur commander maintenant et sélectionnez votre fichier Gerber. après le téléchargement, j'ai choisi la couleur noire de 0,8 mm d'épaisseur et j'ai passé la commande. après 2 semaines, j'ai reçu le PCB. Le PCB n'a que 0,8 mm d'épaisseur mais la qualité est parfaite comme je m'y attendais.

Étape 2 : composants nécessaires

ATMEGA328P-AU* 1

0805 condensateur 22pf *2

0805 condensateur 100nF* 2

CMS WS2812B-B*16

0805 LED CMS* 2

0805 résistances 1K* 3

0805 résistances10K 1

16MHZ*1

micro USBFemelle*1

télécharger la nomenclature d'ici

Étape 3 :Soudage

après avoir récupéré tous les composants, j'ai commencé à souder

J'ai commencé par le port micro USB. Ensuite, j'ai soudé tous les autres composants. Après avoir soudé le circuit de commande, j'ai commencé à souder les LED néopixels et après avoir terminé, j'ai soudé les commutateurs correspondants. Après 1 heure, j'ai terminé toutes les soudures et maintenant notre PCB ressemble à ceci.

Étape 4 :Programmation

après avoir terminé la soudure, j'ai connecté le câble USB et l'ai testé. Il est maintenant temps de télécharger le code. J'ai connecté les broches spi à un FAI Arduino et téléchargé le croquis

TÉLÉCHARGER LE CODE D'ICI

Étape 5 :JOUEZ ET PROFITEZ

C'est ainsi que j'ai réalisé une carte de visite avec un PCB de jeu de tic tac toe 4*4. Vous pouvez télécharger le circuit, le code, les gerbers à partir des liens. J'espère que vous avez apprécié et appris quelque chose de mon tutoriel.

Code

  • code
codeC/C++
//edison science corner#include #include #define LED_PIN 5#define NUM_LEDS 16#define LED_TYPE WS2812B#define COLOR_ORDER GBR#define BRIGHTNESS 30CRGB leds[NUM_LEDS];int player=1;int n,i,e=0,j=0;char a[16]={'1','2','3','4','5','6','7', '8','9','10','11','12','13','14','15','16'};char key;int w=0;const byte ROWS =4; //quatre lignesconst octet COLS =4; //quatre colonnes//définit les cymbales sur les boutons du clavierschar hexaKeys[ROWS][COLS] ={ {'1','2','3','A'}, {'4','5' ,'6','B'}, {'7','8','9','C'}, {'*','0','#','D'}};byte rowPins[ LIGNES] ={A0,A1,A2,A3} ; // se connecte aux brochages de ligne de l'octet de clavier colPins[COLS] ={A4,A5,2,3} ; // se connecte au brochage des colonnes du clavierKeypad customKeypad =Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); void setup(){ Serial.begin(9600); LEDS.addLeds(leds, NUM_LEDS); FastLED.setBrightness(LUMINOSITÉ); for(int m=0;m<3;m++) { leds[0].setRGB(0, 255, 0); leds[1].setRGB(0, 255, 0); leds[2].setRGB(0, 255, 0); leds[3].setRGB(0, 255, 0); leds[4].setRGB(0, 255, 0); leds[5].setRGB(0, 255, 0); leds[6].setRGB(0, 255,0 ); leds[7].setRGB(0, 255, 0); leds[8].setRGB(0, 255, 0); leds[9].setRGB(0, 255, 0); leds[10].setRGB(0, 255, 0); leds[11].setRGB(0, 255, 0); leds[12].setRGB(0, 255, 0); leds[13].setRGB(0, 255, 0); leds[14].setRGB(0, 255, 0); leds[15].setRGB(0, 255, 0); FastLED.show(); retard (500); leds[0].setRGB(0, 0, 225); leds[1].setRGB(0, 0, 225); leds[2].setRGB(0, 0, 225); leds[3].setRGB(0, 0, 225); leds[4].setRGB(0, 0, 225); leds[5].setRGB(0, 0, 225); leds[6].setRGB(0, 0, 225); leds[7].setRGB(0, 0, 225); leds[8].setRGB(0, 0, 225); leds[9].setRGB(0, 0, 225); leds[10].setRGB(0, 0, 225); leds[11].setRGB(0, 0, 225); leds[12].setRGB(0, 0, 225); leds[13].setRGB(0, 0, 225); leds[14].setRGB(0, 0, 225); leds[15].setRGB(0, 0, 225); FastLED.show(); retard (500); } FastLED.clear(); FastLED.show();} void loop(){ key =customKeypad.getKey(); if (clé &&player==1) { Serial.println("\nP1"); Serial.println(clé); n=numéro(clé); Serial.println(n); leds[n].setRGB(0, 255, 0); FastLED.show(); a[n]='X'; Serial.println(a[n]); w=vérifier(a,n); if(w==1) { Serial.println("Le joueur 1 gagne !"); while(1) { leds[0].setRGB(0, 255, 0); leds[1].setRGB(0, 255, 0); leds[2].setRGB(0, 255, 0); leds[3].setRGB(0, 255, 0); leds[4].setRGB(0, 255, 0); leds[5].setRGB(0, 255, 0); leds[6].setRGB(0, 255,0 ); leds[7].setRGB(0, 255, 0); leds[8].setRGB(0, 255, 0); leds[9].setRGB(0, 255, 0); leds[10].setRGB(0, 255, 0); leds[11].setRGB(0, 255, 0); leds[12].setRGB(0, 255, 0); leds[13].setRGB(0, 255, 0); leds[14].setRGB(0, 255, 0); leds[15].setRGB(0, 255, 0); FastLED.show(); retard (500); FastLED.clear(); FastLED.show(); retard (500); } } joueur++; retard(1000); } délai(20); key =customKeypad.getKey(); if (clé &&player==2) { Serial.println("\nP2"); Serial.println(clé); n=numéro(clé); Serial.println(n); leds[n].setRGB(0, 0, 225); FastLED.show(); a[n]='0'; Serial.println(a[n]); w=vérifier(a,n); if(w==2) { Serial.println("Le joueur 2 gagne !"); while(1) { leds[0].setRGB(0, 0, 225); leds[1].setRGB(0, 0, 225); leds[2].setRGB(0, 0, 225); leds[3].setRGB(0, 0, 225); leds[4].setRGB(0, 0, 225); leds[5].setRGB(0, 0, 225); leds[6].setRGB(0, 0, 225); leds[7].setRGB(0, 0, 225); leds[8].setRGB(0, 0, 225); leds[9].setRGB(0, 0, 225); leds[10].setRGB(0, 0, 225); leds[11].setRGB(0, 0, 225); leds[12].setRGB(0, 0, 225); leds[13].setRGB(0, 0, 225); leds[14].setRGB(0, 0, 225); leds[15].setRGB(0, 0, 225); FastLED.show(); retard (500); FastLED.clear(); FastLED.show(); retard (500); } } e++; joueur--; retard(1000); } if(e==8) { Serial.println("Game Draw"); while(1) { leds[0].setRGB(255, 0, 0); leds[1].setRGB(255, 0, 0); leds[2].setRGB(255, 0, 0); leds[3].setRGB(255, 0, 0); leds[4].setRGB(255, 0, 0); leds[5].setRGB(255, 0, 0); leds[6].setRGB(255, 0, 0); leds[7].setRGB(255, 0, 0); leds[8].setRGB(255, 0, 0); leds[9].setRGB(255, 0, 0); leds[10].setRGB(255, 0, 0); leds[11].setRGB(255, 0, 0); leds[12].setRGB(255, 0, 0); leds[13].setRGB(255, 0, 0); leds[14].setRGB(255, 0, 0); leds[15].setRGB(255, 0, 0); FastLED.show(); retard(1000); FastLED.clear(); FastLED.show(); retard (500); } } delay(20);}int number(char keyn){ if(keyn =='1') return 0; if(keyn =='2') renvoie 1 ; if(keyn =='3') renvoie 2; if(key =='A') return 3; if(keyn =='4') renvoie 4; if(keyn =='5') renvoie 5; if(keyn =='6') renvoie 6; if(keyn =='B') renvoie 7 ; if(keyn =='7') renvoie 8; if(keyn =='8') renvoie 9; if(keyn =='9') renvoie 10 ; if(keyn =='C') renvoie 11 ; if(key =='*') return 12; if(keyn =='0') renvoie 13 ; if(keyn =='#') return 14; if(keyn =='D') return 15;}int check(char a[16],int n){ if(a[0]=='X' &&a[1]=='X' &&a[ 2]=='X' &&a[3]=='X') return 1; if(a[0]=='0' &&a[1]=='0' &&a[2]=='0' &&a[3]=='0') return 2; if(a[0]=='X' &&a[4]=='X' &&a[8]=='X' &&a[12]=='X') renvoie 1; if(a[0]=='0' &&a[4]=='0' &&a[8]=='0' &&a[12]=='0') return 2; if(a[0]=='X' &&a[5]=='X' &&a[10]=='X' &&a[15]=='X') renvoie 1; if(a[0]=='0' &&a[5]=='0' &&a[10]=='0' &&a[15]=='0') return 2; if(a[1]=='X' &&a[5]=='X' &&a[9]=='X' &&a[13]=='X') renvoie 1; if(a[1]=='0' &&a[5]=='0' &&a[9]=='0' &&a[13]=='0') return 2; if(a[2]=='X' &&a[6]=='X' &&a[10]=='X' &&a[14]=='X') renvoie 1; if(a[2]=='0' &&a[6]=='0' &&a[10]=='0' &&a[14]=='0') renvoie 2; if(a[3]=='X' &&a[7]=='X' &&a[11]=='X' &&a[15]=='X') renvoie 1; if(a[3]=='0' &&a[7]=='0' &&a[11]=='0' &&a[15]=='0') renvoie 2; if(a[3]=='X' &&a[6]=='X' &&a[9]=='X' &&a[12]=='X') renvoie 1; if(a[3]=='0' &&a[6]=='0' &&a[9]=='0' &&a[12]=='0') return 2; if(a[4]=='X' &&a[5]=='X' &&a[6]=='X' &&a[7]=='X') renvoie 1; if(a[4]=='0' &&a[5]=='0' &&a[6]=='0' &&a[7]=='0') renvoie 2; if(a[8]=='X' &&a[9]=='X' &&a[10]=='X' &&a[11]=='X') renvoie 1; if(a[8]=='0' &&a[9]=='0' &&a[10]=='0' &&a[11]=='0') return 2; if(a[12]=='X' &&a[13]=='X' &&a[14]=='X' &&a[15]=='X') renvoie 1; if(a[12]=='0' &&a[13]=='0' &&a[14]=='0' &&a[15]=='0') return 2;}

Schémas


Processus de fabrication

  1. Jeu de gyroscope Arduino avec MPU-6050
  2. Capteur de température multiple
  3. Jeu de roulette DIY 37 LED
  4. Contrôleur de jeu Arduino
  5. Arduino Due TIC TAC TOE avec écran tactile
  6. MotionSense
  7. Sécurité incendie des imprimantes 3D
  8. Jeu Pixel Chaser
  9. CoroFence - Détecteur thermique🖖