INHOUDSOPGAWE:

Arduino slagskip spel: 3 stappe
Arduino slagskip spel: 3 stappe

Video: Arduino slagskip spel: 3 stappe

Video: Arduino slagskip spel: 3 stappe
Video: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, Julie
Anonim
Arduino slagskip spel
Arduino slagskip spel

Ek onthou hoe ek as kind 'n papier- en potloodweergawe van die Battleship Game gespeel het. Trouens, dit bestaan al sedert die Eerste Wêreldoorlog. Ek het ook in die vroeë 1960's 'n 'elektroniese' variant gehad met die naam 'Sonar Sub Hunt' met ligte en geluide en verborge myne. Volgens vandag se standaarde vir videospeletjies is Battleship redelik vervelig, maar ek het gedink ek sou in elk geval een maak net om te sien wat die kleinkinders daaroor dink. Soms kan retro cool wees.

Daar is stukkies van hierdie projek wat elders nuttig sou wees, selfs as u nie belangstel om die Battleship -spel te maak nie. Dit het 'n eenvoudige 4-bis 1602 LCD-koppelvlak wat 'n roetine bevat vir die opstel van 'n spesifieke karakterlokasie. Daar is ook 'n koppelvlak vir die dekodering van 'n 4x4 -skakelaarmatriks. Hierdie twee koppelvlakke is beskikbaar as afsonderlike lêers, sodat dit maklik vervoerbaar is. Die spel het ook verskillende roetine-effekroetines en 'n eenvoudige een-transistor klankversterkerkring.

Stap 1: Hardeware

Hardeware
Hardeware
Hardeware
Hardeware

Die skema wat hier aangebied word, is vir 'n enkele speler, dus moet twee eenhede gemaak word. Die eenhede kommunikeer met behulp van 'n 3-draads koppelvlak wat die UART TX- en RX-lyne en 'n gronddraad insluit. Ek het gekies om 'n standaard 1/8 duim -stereo -koptelefoonaansluiting en 'n standaardkabel met manlike proppe aan beide kante te gebruik. Die RX van een boks gaan na die TX van die ander boks en omgekeerd. U kan dit doen deur die drade te ruil wat aan die koptelefoonaansluiting in die boks gesoldeer is, of dit op die printplaat te ruil wanneer u dit bou.

Die klassieke spel is as 'n matriks uiteengesit, maar ek het besluit om 'n eenvoudige implementering te doen met 'n 1602 LCD vir die skerm. Die eerste reël toon die skip se ligging van die speler en die skote van die teenstander. Die tweede reël toon die speler se skote en enige treffers op die skepe van die teenstander. Dit bied 16 moontlike plekke vir skepe. Die aantal skepe word in die sagteware bepaal en ek het willekeurig 5 gekies.

Die 16 skeepsposisies pas goed by die skakelaarsvereistes, want dit bied 'n 4x4 -matriks. Daar is 4x4 matriks skakelaars beskikbaar, maar ek het gekies om individuele skakelaars in 'n enkele lyn te gebruik om by die lineêre vertoning te pas. Ek het die skakelaars egter as 'n 4x4 -matriks bedraad, sodat slegs agt Arduino -penne nodig is. Raadpleeg die skakelingsbedradingsdiagram en die skema vir die korrekte verbindings.

Die LCD-skerm is bedraad vir 'n 4-bis-koppelvlak. Ek het ook 'n eksterne LED op pen D13 bygevoeg om aan te dui watter speler 'n skoot moet neem. Aanvanklik besluit die spelers wie die eerste skoot neem, en dan beheer die sagteware outomaties die heen en weer van die spel.

Ek wou eenvoudige klankeffekte byvoeg vir die skoot, die ontploffings, die spel gereed en die wenner/verloorder. Ek het probeer om 'n eenvoudige piezo -zoemer te gebruik, maar het uiteindelik 'n klein luidspreker gekry. Die stroom wat die luidspreker benodig, oorskry wat die Arduino kan hanteer, sodat 'n eenvoudige transistorversterker bygevoeg is. Die klank is nog steeds nie wonderlik nie, maar dit is beter as met die gonser. My luidspreker is 4 ohm, maar as u 'n 8-ohm-een het, verander dan die weerstand in die skematiese van 39 ohm na 33 ohm. As u 'n piëzo -zoemer gebruik, moet u dit direk vanaf die Arduino -pen kan dryf terwyl die ander kant van die zoemer aan die grond gekoppel is.

'N Eksterne reset -skakelaar is ook ingesluit en word direk tussen die grond en die "reset" -pen op die Arduino bedraad. Dit bied die middele om die spel weer te begin.

Stap 2: sagteware

Die sagteware het die insluit -lêer vir my LCD -koppelvlak en ek het ook 'n insluitende lêer vir die 4x4 -skakelaarmatriksskandering geskep. Die inisialisering vra die speler om die plekke vir sy skepe te kies en gaan dan na 'Gereed'. As albei spelers gereed is, begin een van hulle die spel deur op 'n skakelaar te druk.

Die skietplek word via die UART na die ander speler oorgedra en die toepaslike resultaat word teruggestuur na die speler wat die skoot afgevuur het. Soos vroeër genoem, bepaal die sagteware sodra die eerste skoot geneem is wie die volgende skoot neem. Voordat 'n skoot oorgedra word, word dit gekontroleer met die liggings van die vorige skote. As die plek reeds gebruik is, word die skoot nie oorgedra nie. Die “My_Shot” LED bepaal wie se beurt dit is. Daar word ook 'n skootgeluid gegenereer vir 'n geldige keuse en 'n ontploffingsgeluid as 'n skip getref word. Die klankeffekte is afgelei van voorbeelde wat aanlyn gevind is, met aanpassings wat by die spel pas.

Sodra die skepe van 'n teenstander getref is, word 'n boodskap op elke LCD vertoon - een as die wenner en een as die verloorder. Die boodskap spesifiseer ook dat die spel weer begin kan word deur op die reset -knoppie te druk. Daar is ook afsonderlike byklanke vir die wenner en die verloorder.

Stap 3: Skermskote

Skermskote
Skermskote
Skermskote
Skermskote
Skermskote
Skermskote
Skermskote
Skermskote

Hier is 'n paar skermkiekies uit die spel. Dit is dit vir hierdie pos. Kyk na my ander instruksies en ook my webwerf by: www.boomerrules.wordpress.com

Aanbeveel: