Tic-Tac-Toe Robot (4 / 7 stap)

Stap 4: De Code


ik heb mijn code bijgevoegd. Ik zal proberen uit te leggen het hier, zodat u kunt met uw robot gebruiken en indien nodig aan te passen. Deze code is geschreven voor de Arduino IDE versie 0022. Het zou moeten werken in latere versies, maar als u ondervindt problemen dan vasthouden aan 0022 voor dit project.

U zult een Micro-goochelaar (maakt niet uit welke versie) en de microM-bibliotheek die kan worden gedownload vanaf hier: https://sites.google.com/site/daguproducts/home/arduino-libraries

Desgewenst kunt u een andere Arduino board. U zult waarschijnlijk moeten een breadboard en jumper draden aansluiten een IR-ontvanger en de servo's. U kunt gebruik maken van Ken Shirriff multi-protocol IR bibliotheek die kan hier worden gevonden: http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html

Zoals je kunt zien heb ik mijn code opgesplitst in logische secties en leg ze in verschillende tabbladen. Dit maakt het veel gemakkelijker om uw code te bewerken.

[TicTacToe] dit eerste tabblad is uw belangrijkste code. Het heeft uw Setup -functie waar alle uw initialisatie wordt gedaan en de loop -functie, waar het spel wordt gespeeld. De loop -functie bestaat uit 3 delen.

  1. Modusselectie - het programma zoekt naar alle nieuwe IR-opdrachten en modi indien nodig wordt gewijzigd.
  2. Spelers bewegen - wanneer is het jouw beurt deze sectie kunt u uw verhuizing te maken.
  3. Robots bewegen - afhankelijk van het niveau van moeilijkheid, verschillende strategieën zijn die hier zijn geselecteerd.

Nadat een zet is het aangebracht wordt op de seriële monitor weergegeven. De robot controleert vervolgens als een meer beweegt kunnen worden gemaakt en iedereen heeft gewonnen.

[IOpins.h] dit tabblad is u bedradingsschema. Als u de naam wilt wijzigen is die pin een servo aangesloten ga dan gewoon het pin-nummer hier  Als de IR is ontvanger bevestigd aan de D4 niet voorkomt.

[Constants.h] dit tabblad bevat constanten die worden gebruikt binnen het programma. IR-ontvangers codes en vooraf ingestelde waarden voor de grijper en pins mechanisme servo's zijn die hier zijn gedefinieerd. Als u robot anders zijn naar de mijne zullen zal u wilt veranderen van deze waarden aan. Alle waarden zijn in µS voor gebruik met de opdracht writeMicroseconds() .

[Kalibreren] deze functie wordt gebruikt om te leren van de robot waar elke positie op het bord is. In eerste instantie alle posities zijn gelijk aan beide arm servo's wordt in de middenpositie. Als u de arm leren, worden nieuwe posities opgeslagen in de processors EEPROM dus dat zelfs als de stroom is uitgeschakeld op de robot zal niet vergeten wat je geleerd dat het.

[eepromFunctions] wanneer het programma eerst de EEPROM loopt wordt gelezen, zodat de robot de standpunten van de Raad van bestuur weet. Wanneer u de robot kalibreert worden de nieuwe posities naar de EEPROM geschreven, zodat wanneer de stroom is uitgeschakeld de robot niet de posities vergeten zal.

[DisplayGrid] het spel wordt weergegeven op de seriële monitor voor foutopsporing en verstrekken u voor toneelstuk Tic Tac Toe tegen de tovenaar van de Micro met behulp van slechts een afstandsbediening. De robot is alleen nodig om uw vrienden en familie te imponeren en maken het spel leuker om te spelen. 0 vertegenwoordigt een lege positie. De robots ballen worden aangeduid met een 1. Je ballen worden vertegenwoordigd door een 2.

[MoveArm] zoals de naam doet vermoeden, deze functie wordt de arm van de ene positie verplaatst op het bord naar de andere. mijn code breekt onderweg in kleine stappen zodat de arm langzaam en vloeiend beweegt. Grotere bewegingen zijn onderverdeeld in meer stappen zodat alle bewegingen met ongeveer dezelfde snelheid gebeuren.

[CheckForWin] nadat elk verplaatst het bestuur wordt gecontroleerd om te zien of er een winnaar. Alle rijen, kolommen en diagonalen worden gecontroleerd op 3 van de zelfde.

[ClearBoard] aan het eind van het spel aan robot verzamelt alle ballen en zet ze terug in hun parachute. De robot is afhankelijk van geheugen om te bepalen als de bal tot de speler of de robot behoort en de bal terug naar de juiste parachute. De pin-mechanisme verhoogt de ballen hoog genoeg is voor de grijper om ze te verzamelen en vervolgens verlaagt de ballen weer zodat de arm zich vrij kan bewegen.

[RandomMove] op het eenvoudigste niveau, alle van de bewegingen van de robots zijn willekeurig. Deze modus is bedoeld voor het onderwijzen van kinderen het spel voor de eerste keer. Een willekeurige beweging wordt ook gebruikt door de robot wanneer andere strategieën mislukken. Om te plezierig spel minder predicable (meer), wanneer het dat de robots schakelen om een spel te starten zal de robot beginnen met een willekeurige beweging.

[BlockPlayer] deze functie wordt gebruikt door de robot om te kijken van uw bewegingen en bepalen of u ongeveer om te winnen. Als de robot wordt gedetecteerd hebt u twee ballen in een lijn met de derde positie vrij dan het zal de bal in de vrije positie te blokkeren u plaats. Deze functie wordt niet gebruikt in de eenvoudigste niveau die is bestemd voor het onderwijzen van kinderen-hoe te spelen.

[MakeLine] deze functie is vergelijkbaar met [BlockPlayer], behalve dat het wordt gebruikt door de robot om 3 op een rij. Deze functie wordt niet gebruikt in de gemakkelijkste niveaus.

[SecondMove] als een spel van Tic Tac Toe hoeft niet veel beweegt, de tweede stap is vaak waar uw strategie zal meespelen. De robot gebruikt dit in het moeilijkste niveau om te proberen en jou verslaan. Ik geef toe, dit deel van de code zou kunnen worden verbeterd. Ik ben niet goed in strategie spelletjes.

Gerelateerde Artikelen

De Tic-Tac-Toe schild...

De Tic-Tac-Toe schild...

Dit is een zelfgemaakte shield voor Arduino. Ik kan spelen Tic-Tac-teen met de MCU met dit schild verbonden.Mensen blijven vragen me, "Hey, wat doe je altijd in uw werkbank?", of "Hey, tonen ons iets u hebt gemaakt." En voor de meeste
Tic Tac Toe reizen

Tic Tac Toe reizen

Tic tac toe is een ontzagwekkende reizen-spel dat kinderen en volwassenen tijdens de uren van een road trip bezet kunt houden. Met een beetje vilt en creativiteit was ik in staat om een ontzagwekkende herbruikbare reizen tic tac teen board dat als ee
Maken van... tic-tac-toe (Mario bros)

Maken van... tic-tac-toe (Mario bros)

onze dochters hou van mario en tic tac toe, dus ik heb ze samengevoegdStap 1: polymeerklei een foto zoeken op het Internet van mario en zijn vriendenStap 2: en maken het uit kleiStap 3: en bak in de oven voor 30 min 266 graden Fahrenheit en bak in de
Tic Tac Toe Machine

Tic Tac Toe Machine

dit is een eenvoudige machine die speelt tic tac toe. Het werd meestal vorm dood elektronica, zoals een printer en een DVD-reader gemaakt.Hoe het werkt: Eerst moeten we zetten onze mark, het is een zwart vierkant karton, dan door een knop te drukken
How to Win Tic Tac Toe: eenvoudige!

How to Win Tic Tac Toe: eenvoudige!

Hallo, ik ben InstructableUltimate en ik vandaag ik zal u tonen hoe te winnen van Tic Tac Toe in slechts een paar stappen, en dit is echt eenvoudig!Stap 1: Winnen gaat eerste Nou, is dat een eenvoudig winnen! Tot ziens en ik hoop dat dit je geholpen!
Leuke rustieke Tic Tac Toe

Leuke rustieke Tic Tac Toe

Liefde Tic Tac Toe?? Vind ik ook! Ik heb gespeeld sinds ik een kind was, dus nu ik ofwel winnen of het is een gelijkspel ;-DHet is een leuk spel om te spelen met de kinderen en maken van deze rustieke versie maakt het extra leuk! Het maken en het cad
Tic Tac Toe Game met behulp van Arduino

Tic Tac Toe Game met behulp van Arduino

Tic Tac Toe is een populaire twee papier spelerspel in welke eerste speler om te voltooien een rij, kolom of diagonaal van 'X' of ' o ' wint. Indien niemand de prestatie niet kon bereiken, dan is de wedstrijd wordt getekend.Stap 1: Onderdelen die ver
Hoe schrijf je een Tic-Tac-Toe programma in Java

Hoe schrijf je een Tic-Tac-Toe programma in Java

Inleiding:Tic-Tac-Toe is een zeer gemeenschappelijk spel dat is vrij eenvoudig te spelen. De regels van het spel zijn eenvoudig en bekende. Vanwege deze dingen is Tic-Tac-Toe vrij eenvoudig te code omhoog. In deze tutorial, zullen we worden kijken ho
Halloween tic tac toe (gerecycleerde stuff)

Halloween tic tac toe (gerecycleerde stuff)

Halloween Tic Tac teenDit recycle project is voor kinderen. Het resultaat van dit project is om te beginnen met het onderwijzen van sommige vroege recycling bewustzijn. Veel plezier!!Wat een geweldige manier om hergebruik van deze caps die afkomstig
Tic-tac-toe strategieën winnen

Tic-tac-toe strategieën winnen

Iedereen houdt van het eenvoudige spel van tic-tac-toe, maar het lijkt een willekeurig spel. Eigenlijk, zijn niet!Het lijkt erop dat veel geschillen kunnen worden opgelost door een eenvoudig spel...Nu u de volgende winnen kunt tic-tic-tac-toe-off van
Tic Tac Toe Maak in Java

Tic Tac Toe Maak in Java

dit Instructable leidt u stap voor stap, door het maken van Tic Tac Toe in Java! Dit is niet bedoeld als een overzicht van de Java-taal, maar meer van een begeleide voorbeeld. De eerste stap zal over enkele basisconcepten te maken van de rest van de
Arduino en Touchpad Tic Tac Toe

Arduino en Touchpad Tic Tac Toe

of, een oefening in input en output multiplexing, en werken met stukjes.  En een inzending voor de wedstrijd van de Arduino.Dit is een implementatie van een tic tac toe game met een 3 x 3 matrix met tweekleurig LED's voor een beeldscherm, een eenvoud
FPGA Tic Tac Toe

FPGA Tic Tac Toe

"Tic Tac Toe? Wat is dat? Ik heb nog nooit gehoord daarvan."-Niemand ooitDoor Ryan Frawley en Derek NguyenDeze gids zal u tonen hoe maak je een werkende Tic Tac Toe game in VHDL op een Nexys 2 FPGA-board. Deze tutorial werd gedaan voor een deel
Upcycled Tic-Tac-Toe

Upcycled Tic-Tac-Toe

Deze maand nam ik op de de "CENT-VATICAAN SALVAGE" uitdaging. In de challenge die ik belast ben met het transformeren van een gemeenschappelijk item gevonden op mijn lokale Habitat voor mensheid herstellen center in iets "cent-Vaticaan.&quo