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

Bouw een Touchscreen Boter-Kaas-en-Eieren Spel op Arduino Due

Onderdelen en Benodigdheden

Onderdeel Aantal
Arduino Due 1
2,8" TFT LCD met Touchscreen (ILI9341) 1
Jumper Wires 1 set

Apps en Online Services

  • Arduino IDE

Benodigde Bibliotheken

  • Adafruit GFX Library
  • Adafruit ILI9341 Library
  • URTouch Library

Over dit Project

Deze implementatie van Boter-Kaas-en-Eieren (Tic-Tac-Toe) is gebaseerd op het werk van nickthegreek82. Het project bevat twee versies: een standaard AI en een onverslaanbare minimax AI.

Aansluitschema

Touchscreen → Arduino Due

Touch Pin Arduino Due Pin
T_IRQ22
T_DO24
T_DIN26
T_CS28
T_CLK30

Display → Arduino Due

Display Pin Arduino Due Pin
SDO (MISO)A.25
LED3.3V
SCKA.27
SDI (MOSI)A.26
DC9
RESET8
CS10
GNDGND
VCC3.3V

Ontwikkelgeschiedenis

  • 22-08-2017: AI verbeterd & code geoptimaliseerd
  • 26-08-2017: Verdere optimalisaties
  • 27-08-2017: Uitdaging: kun jij winnen van de CPU?
  • 13-03-2018: Betere AI implementatie (credits: klauscam)

Code Versie 1: Standaard AI

Deze versie gebruikt een regelgebaseerde AI die probeert te winnen, blokkeert, en anders willekeurige zetten doet.

// Belangrijkste functies:
void playerMove() { /* Touch detectie → bordpositie bepalen → X tekenen */ }
void arduinoMove() { 
  // 1. Eerste zet: hoek kiezen
  // 2. Tweede zet: centrum als vrij
  // 3. Check of CPU kan winnen (2 op rij)
  // 4. Check of speler kan winnen → blokkeren
  // 5. Fork-mogelijkheden checken
  // 6. Willekeurige vrije plek
}
void checkWinner() { /* 8 win-combinaties checken, winlijn tekenen */ }

Volledige code is te lang voor hier – zie origineel of GitHub.

Code Versie 2: Onverslaanbare Minimax AI (TicTacToe_new)

Deze versie implementeert de Minimax algoritme met alpha-beta pruning voor perfecte spelsterkte. De computer kan niet verliezen – maximaal gelijkspel.

Kernalgoritme


int minimax(int board[9], int player, int depth) {
  int winner = win(board);
  if(winner != 0) return winner * player; // Terminal node
  
  int move = -1, score = -2;
  for(int i = 0; i < 9; ++i) {
    if(board[i] == 0) {
      board[i] = player;
      int thisScore = (depth < difficulty) ? -minimax(board, -player, depth+1) : 0;
      if(thisScore > score) { score = thisScore; move = i; }
      board[i] = 0;
    }
  }
  return (move == -1) ? 0 : score;
}

void computerMove(int board[9]) {
  int move = -1, score = -2;
  for(int i = 0; i < 9; ++i) {
    if(board[i] == 0) {
      board[i] = 1; // CPU = 1
      int tempScore = -minimax(board, -1, 0);
      board[i] = 0;
      if(tempScore > score) { score = tempScore; move = i; }
    }
  }
  board[move] = 1; drawCpuMove(move);
}

Spelverloop

  1. Startscherm → "Gamestart" knop
  2. Kies wie begint: JIJ (mens) of CPU
  3. 3x3 grid tekenen op touchscreen
  4. Afwisselend zetten tot winst/gelijkspel/bord vol
  5. Resultaat tonen: "HUMAN WINS", "CPU WINS" of "DRAW"
  6. "Again?" knop voor herstart

Grafische Elementen

  • X (speler) = Blauw bitmap
  • O (CPU) = Rood bitmap (cirkel)
  • Winlijn = Witte lijn door winnende combinatie
  • Log/debug output in rechter kolom

Schema

Bouw een Touchscreen Boter-Kaas-en-Eieren Spel op Arduino Due

Productieproces

  1. Aangepaste 4×4 Boter-Kaas-Eieren Visitekaartje PCB – Ontwerp, Bouw en Code Handleiding
  2. K30 CO2-sensor: Real-time binnenluchtkwaliteitmonitoring met Arduino
  3. Communicatie voor doofblinden vergemakkelijken met 1Sheeld en Arduino
  4. Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
  5. Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
  6. Een DFRobot Capacitieve Vingerafdruksensor integreren met Arduino of ESP8266
  7. Interactief Nextion HMI-weerstation met Arduino Mega en sensoren
  8. Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
  9. Accurate zonnestralingsmeting met Arduino UNO en Ethernet Shield
  10. Compact Arduino Radarsysteem met HC-SR04 Ultrasonische Sensor & 1.8" Display
  11. Maak Muzikale Tonen met Arduino: Stapsgewijze Handleiding