Inhoudsopgave:
Video: Arduino slagschipspel - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Ik herinner me dat ik als kind een versie van het slagschipspel op papier en met potlood speelde. In feite bestaat het al sinds ongeveer de Eerste Wereldoorlog. Ik had begin jaren zestig ook een "elektronische" variant genaamd "Sonar Sub Hunt" met lichten en geluiden en verborgen mijnen. Volgens de huidige normen voor videogames is Battleship behoorlijk saai, maar ik dacht dat ik er toch een zou maken om te zien wat de kleinkinderen ervan vonden. Soms kan retro tenslotte cool zijn.
Er zijn stukjes en beetjes van dit project die elders nuttig zouden zijn, zelfs als je niet geïnteresseerd bent in het maken van de Battleship-game. Het heeft een eenvoudige 4-bit 1602 LCD-interface die een routine bevat voor het instellen van een specifieke tekenlocatie. Er is ook een interface voor het decoderen van een 4x4 schakelmatrix. Deze twee interfaces zijn beschikbaar als afzonderlijke meegeleverde bestanden, zodat ze gemakkelijk kunnen worden getransporteerd. De game heeft ook verschillende geluidseffectroutines en een eenvoudig audioversterkercircuit met één transistor.
Stap 1: Hardware
Het hier gepresenteerde schema is voor een enkele speler, dus er zouden twee eenheden moeten worden gemaakt. De units communiceren via een 3-draads interface die de UART TX- en RX-lijnen en een aardingsdraad omvat. Ik koos ervoor om een standaard 1/8 inch stereo hoofdtelefoonaansluiting en een standaard kabel met mannelijke stekkers aan beide uiteinden te gebruiken. De RX van de ene doos gaat naar de TX van de andere doos en vice versa. U kunt dat doen door de draden die aan de koptelefoonaansluiting in de doos zijn gesoldeerd om te wisselen of ze op de printplaat te verwisselen wanneer u deze bouwt.
Het klassieke spel was ingedeeld als een matrix, maar ik besloot een eenvoudige implementatie te doen met een 1602 LCD voor het display. De eerste regel toont de scheepslocaties van de speler en de schoten van de tegenstander. De tweede regel toont de schoten van de speler en eventuele treffers op de schepen van de tegenstander. Dat levert 16 mogelijke locaties voor schepen op. Het aantal schepen is ingesteld in de software en ik heb er willekeurig 5 gekozen.
De 16 scheepslocaties sluiten mooi aan bij de switch-eisen omdat er een 4x4 matrix mogelijk is. Er zijn 4x4 matrix-schakelpads beschikbaar, maar ik heb ervoor gekozen om afzonderlijke schakelaars in een enkele regel te gebruiken om bij het lineaire display te passen. Ik heb de schakelaars echter als een 4x4-matrix aangesloten, zodat er slechts acht Arduino-pinnen nodig zijn. Raadpleeg het schakelschema en het schema voor de juiste aansluitingen.
Het LCD-scherm is bedraad voor een 4-bits interface. Ik heb ook een externe LED op pin D13 toegevoegd om aan te geven welke speler een opname moet maken. In eerste instantie beslissen de spelers wie het eerste schot neemt en vervolgens regelt de software automatisch het heen en weer van het spel.
Ik wilde eenvoudige geluidseffecten toevoegen voor het schot, de explosies, het spel klaar en de winnaar/verliezer. Ik probeerde een eenvoudige piëzo-zoemer te gebruiken, maar kreeg in plaats daarvan een kleine luidspreker. De stroom die de luidspreker nodig heeft, overtreft wat de Arduino aankan, dus werd een eenvoudige transistorversterker toegevoegd. Het geluid is nog steeds niet geweldig, maar het is beter dan met de zoemer. Mijn luidspreker is 4 ohm, maar als je een 8-ohm hebt, verander dan de weerstand in het schema van 39 ohm naar 33 ohm. Als u een piëzo-zoemer gebruikt, moet u deze rechtstreeks vanaf de Arduino-pin kunnen aansturen met de andere kant van de zoemer verbonden met aarde.
Een externe reset-schakelaar is ook inbegrepen en is rechtstreeks bedraad tussen aarde en de "reset" -pin op de Arduino. Dat biedt de middelen om het spel opnieuw te starten.
Stap 2: Software
De software heeft het include-bestand voor mijn LCD-interface en ik heb ook een include-bestand gemaakt voor het scannen van de 4x4 switch-matrix. De initialisatie vraagt de speler om de locaties voor zijn schepen te selecteren en gaat dan naar een "Klaar"-status. Als beide spelers klaar zijn, begint een van hen het spel door op een schakelaar te drukken.
De schotlocatie wordt via de UART naar de andere speler verzonden en het juiste resultaat wordt teruggestuurd naar de speler die het schot heeft gelost. Zoals eerder vermeld, bepaalt de software wie de volgende opname maakt zodra de eerste opname is gemaakt. Voordat een opname wordt verzonden, wordt deze vergeleken met de locaties van de vorige opnames. Als die locatie al is gebruikt, wordt de opname niet verzonden. De “My_Shot” LED bepaalt wie aan de beurt is. Er wordt ook een schotgeluid gegenereerd voor een geldige selectie en een explosiegeluid als een schip wordt geraakt. De geluidseffecten zijn afgeleid van voorbeelden die online zijn gevonden met aanpassingen die bij het spel passen.
Zodra alle schepen van een tegenstander zijn geraakt, wordt op elk LCD-scherm een bericht weergegeven: één als winnaar en één als verliezer. Het bericht geeft ook aan dat het spel opnieuw kan worden gestart door op de reset-knop te drukken. Er zijn ook aparte geluidseffecten voor de winnaar en de verliezer.
Stap 3: Schermafbeeldingen
Hier zijn enkele screenshots van het spel. Dat was het voor dit bericht. Bekijk mijn andere Instructables en ook mijn website op: www.boomerrules.wordpress.com
Aanbevolen:
Hoe maak je RADAR met behulp van Arduino voor Science Project - Beste Arduino-projecten: 5 stappen
Hoe maak je RADAR met behulp van Arduino voor Science Project | Beste Arduino-projecten: Hallo vrienden, in deze instructable laat ik je zien hoe je een geweldig radarsysteem kunt maken dat is gebouwd met behulp van Arduino nano. Dit project is ideaal voor wetenschappelijke projecten en je kunt dit gemakkelijk doen met heel minder investeringen en kansen als het winnen van een prijs geweldig is om
Arduino als ISP -- Hex-bestand branden in AVR -- Zekering in AVR -- Arduino als programmeur: 10 stappen
Arduino als ISP || Hex-bestand branden in AVR || Zekering in AVR || Arduino als programmeur:…………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's…….. Dit artikel gaat helemaal over arduino als isp. Als u een hex-bestand wilt uploaden of als u uw zekering in AVR wilt plaatsen, hoeft u geen programmeur te kopen, u kunt dit doen
Arduino tekst-naar-spraak-converter met LM386 - Pratend Arduino-project - Talkie Arduino-bibliotheek: 5 stappen
Arduino tekst-naar-spraak-converter met LM386 | Pratend Arduino-project | Talkie Arduino-bibliotheek: Hallo allemaal, in veel projecten hebben we arduino nodig om zoiets als een pratende klok te spreken of wat gegevens te vertellen, dus in deze instructables zullen we tekst omzetten in spraak met behulp van Arduino
Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen
Pratende Arduino | Een MP3 afspelen met Arduino zonder enige module | Mp3-bestand van Arduino afspelen met PCM: in deze instructie leren we hoe we een mp3-bestand met arduino kunnen spelen zonder een audiomodule te gebruiken, hier gaan we de PCM-bibliotheek voor Arduino gebruiken die 16 bit PCM van 8 kHz-frequentie speelt, dus laten we dit doen
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmeren -- Arduino Neno: 6 stappen (met afbeeldingen)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmeren || Arduino Neno:…………………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's……. Dit project gaat over hoe je een kleinste en goedkoopste arduino ooit kunt aansluiten. De kleinste en goedkoopste arduino is arduino pro mini. Het lijkt op arduino