Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Tech-TicTacToe

Componenten en benodigdheden

Arduino UNO
Arduino
× 1
MAX7219 LED-dot Matrix
× 1
Membraanschakelaartoetsenbord
× 1

Benodigde gereedschappen en machines

Hot lijmpistool (algemeen)

Apps en online services

Arduino IDE

Over dit project

Hallo Hackster-community.

Ik ben Simone Adobs en dit is mijn derde project dat ik op Hackster heb uitgebracht. Dit is mijn eerste project waarbij ik een structuur maak met karton, papier en een heet lijmpistool, dat Arduino en andere componenten bevat.

Dit is een korte video die je laat zien hoe de Tris werkt:

Hier kunt u het project vanuit alle weergaven zien:

Ik hoop dat je het leuk zult vinden, want ik heb er enkele uren aan besteed! Laten we nu beginnen met het project.

Hoe werkt de Tris?

Het antwoord is heel eenvoudig:als je op een cijfer op het toetsenbord klikt, zal Arduino het bijbehorende vierkantje aanzetten.

  • Kan ik van speler wisselen?

Wanneer je een vierkant aanzet, schakelt Arduino onmiddellijk over naar de beurt van de volgende speler.

  • Herkent Arduino wanneer ik win?

Wanneer een speler wint, schrijft Arduino op de LED Dot Matrix:

  • "1" als de winnaar speler 1 is;
  • "2" als de winnaar speler 2 is.

Kan ik Arduino opnieuw opstarten vanaf een knop als het spel is afgelopen?

Je kunt het spel opnieuw starten als je op de knop "0" op het toetsenbord klikt - Arduino herstart zichzelf.

Hoe herken ik een speler?

Je kunt een speler gemakkelijk herkennen omdat, hoewel de LED Dot Matrix alleen rood is, elke speler een specifiek patroon heeft dat wordt gevormd door 2x2 LED:

  • Speler 1 heeft dit patroon:"\"
  • Speler 2 heeft dit andere patroon:"/"

Voor vragen, suggesties, kritiek of code-uitleg, voel je vrij om hieronder te reageren. Als je dit project leuk vindt, laat dan een like achter en kijk ook eens naar mijn andere projecten!

Probeer een andere structuur te maken of mijn structuur te personaliseren en stuur me een foto ervan!

Een fijne dag verder!

Simone uit Italië <3

Code

  • Tech-Tris
Tech-TrisC/C++
#include #include #include #include #define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {} LedControl lc=LedControl(12,10,11,1);bool player1=true,q1=false,q2=false,q3=false,q4=false,q5=false,q6=false,q7 =false,q8=false,q9=false;int rij,col,rowPlays,colPlays,resultaat,speler,winnaar;char hexaKeys[4][3] ={{'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'}};int speelt[3][3 ] ={ {0,0,0}, {0,0,0}, {0,0,0}};byte rowPins[4] ={8, 7, 6, 5};byte colPins[3] ={4, 3, 2};Toetsenblok customKeypad =Toetsenbord( makeKeymap(hexaKeys), rowPins, colPins, 4, 3); void setup() { lc.shutdown(0,false); lc.setIntensity(0,0); lc.clearDisplay(0);}void loop() {int customKey =customKeypad.getKey(); schilderen (customKey); winnen (resultaat); if (winnaar==1) { lc.clearDisplay(0); while (winnaar==1) { char customKey =customKeypad.getKey(); if (customKey=='0') { Reset_AVR(); } lc.setLed(0,1,4,true); lc.setLed(0,2,5,true); lc.setLed(0,3,6,true); lc.setLed(0,4,7,true); lc.setLed(0,4,6,true); lc.setLed(0,4,5,true); lc.setLed(0,4,4,true); lc.setLed(0,4,3,true); lc.setLed(0,4,2,true); lc.setLed(0,4,1,true); lc.setLed(0,4,0,true); lc.setLed(0,5,0,true); lc.setLed(0,6,0,true); lc.setLed(0,3,0,true); lc.setLed(0,2,0,true); } } else if (winnaar==2) { lc.clearDisplay(0); while (winnaar==2) { char customKey =customKeypad.getKey(); if (customKey=='0') { Reset_AVR(); } lc.setLed(0,2,0,true); lc.setLed(0,3,0,true); lc.setLed(0,4,0,true); lc.setLed(0,5,0,true); lc.setLed(0,2,1,true); lc.setLed(0,2,2,true); lc.setLed(0,2,3,true); lc.setLed(0,2,4,true); lc.setLed(0,3,4,true); lc.setLed(0,4,4,true); lc.setLed(0,5,4,true); lc.setLed (0,5,5, waar); lc.setLed(0,5,6,true); lc.setLed(0,5,7,true); lc.setLed(0,4,7,true); lc.setLed(0,3,7,true); lc.setLed(0,2,7,true); } }}int round_player() { if (player1) { player1=false; resultaat=1; } else { player1=true; resultaat =2; } resultaat retourneren;} ongeldige winst (int speler) { if (plays[0][0]==player &&plays[0][1]==player &&plays[0][2]==speler) { winner=speler; } else if (speelt[1][0]==speler &&speelt[1][1]==speler &&speelt[1][2]==speler) { winnaar=speler; } else if (speelt[2][0]==speler &&speelt[2][1]==speler &&speelt[2][2]==speler) { winnaar=speler; } else if (speelt[0][0]==speler &&speelt[1][0]==speler &&speelt[2][0]==speler) { winnaar=speler; } else if (speelt[0][1]==speler &&speelt[1][1]==speler &&speelt[2][1]==speler) { winnaar=speler; } else if (speelt[0][2]==speler &&speelt[1][2]==speler &&speelt[2][2]==speler) { winnaar=speler; } else if (speelt[0][0]==speler &&speelt[1][1]==speler &&speelt[2][2]==speler) { winnaar=speler; } else if (speelt[0][2]==speler &&speelt[1][1]==speler &&speelt[2][0]==speler) { winnaar=speler; }}void switch_on_led(int col, int row, int colPlays, int rowPlays) { if (player1) { lc.setLed(0,col,row,true); lc.setLed(0,col+1,rij-1,true); } else { lc.setLed(0,col,row-1,true); lc.setLed(0,col+1,rij,true); } plays[rowPlays][colPlays]=round_player();}void painting(int bottone) { switch (bottone) { case 49:if (!q1){ switch_on_led(0,7,0,0); q1=waar; } pauze; geval 50:if (!q2) { switch_on_led(3,7,0,1); q2=waar; } pauze; geval 51:if (!q3) { switch_on_led(6,7,0,2); q3=waar; } pauze; geval 52:if (!q4) { switch_on_led(0,4,1,0); q4=waar; } pauze; geval 53:if (!q5) { switch_on_led(3,4,1,1); q5=waar; } pauze; geval 54:if (!q6) { switch_on_led(6,4,1,2); q6=waar; } pauze; geval 55:if (!q7) { switch_on_led(0,1,2,0); q7=waar; } pauze; geval 56:if (!q8) { switch_on_led(3,1,2,1); q8=waar; } pauze; geval 57:if (!q9) { switch_on_led(6,1,2,2); q9=waar; } pauze; geval 48:Reset_AVR(); pauze; }}

Schema's

tris_1Nd6QnEjNE.fzz

Productieproces

  1. Maak Monitor Ambilight met Arduino
  2. Arduino Pong Game - OLED-scherm
  3. Giant Animatronics Lego Minfig Operation Game
  4. Audiofrequentiedetector
  5. Arduino Tamagotchi Clone - Digital Pet
  6. Draadloze lichtschakelaarmanipulator
  7. Bewegingssensor-waterpistool
  8. Arduino Countdown Timer
  9. Bluetooth spraakgestuurde apparaten met OK Google
  10. Arduino-zonnebloem:een elektronische zonnedanser
  11. RC Porsche Car (Arduino Project)