Taula de continguts:

Joc del cuirassat Arduino: 3 passos
Joc del cuirassat Arduino: 3 passos

Vídeo: Joc del cuirassat Arduino: 3 passos

Vídeo: Joc del cuirassat Arduino: 3 passos
Vídeo: Эсминец Alvaro De Bazan ПМС(перки, модки, сигналы) #shorts #wows #worldofwarships 2024, Juliol
Anonim
Joc de cuirassats Arduino
Joc de cuirassats Arduino

Recordo que de petit havia jugat a una versió en paper i a llapis del Battleship Game. De fet, existeix des de la Primera Guerra Mundial. També a principis dels anys 60 tenia una variant "electrònica" anomenada "Sonar Sub Hunt" que tenia llums i sons i mines amagades. Segons els estàndards actuals de videojocs, Battleship és bastant avorrit, però vaig pensar que en faria un de totes maneres només per veure què en pensaven els néts. Al cap i a la fi, de vegades el retro pot ser genial.

Hi ha fragments d’aquest projecte que serien útils en altres llocs encara que no us interessi crear el joc Battleship. Té una interfície LCD 1602 de 4 bits senzilla que inclou una rutina per establir una ubicació de caràcter específica. També hi ha una interfície per descodificar una matriu de commutadors 4x4. Aquestes dues interfícies estan disponibles, ja que inclouen fitxers independents perquè siguin fàcilment transportables. El joc també té diverses rutines d’efectes de so i un circuit amplificador d’àudio senzill d’un transistor.

Pas 1: maquinari

Maquinari
Maquinari
Maquinari
Maquinari

L'esquema que es presenta aquí és per a un sol jugador, de manera que caldria fer dues unitats. Les unitats es comuniquen mitjançant una interfície de 3 fils que inclou les línies UART TX i RX i un cable de terra. Vaig optar per utilitzar un connector per a auriculars estèreo de 1/8 de polzada i un cable estàndard amb endolls masculins als dos extrems. El RX d’una caixa va al TX de l’altra caixa i viceversa. Podeu fer-ho canviant els cables soldats a la presa per a auriculars dins de la caixa o canviant-los a la placa de circuit quan el construïu.

El joc clàssic es va dissenyar com a matriu, però vaig decidir fer una implementació senzilla amb una pantalla LCD 1602 per a la pantalla. La primera línia mostra la ubicació del vaixell del jugador i els tirs de l’adversari. La segona línia mostra els tirs del jugador i qualsevol cop a les naus de l’adversari. Això proporciona 16 ubicacions possibles per als vaixells. El nombre de vaixells està definit al programari i vaig triar arbitràriament 5.

Les 16 ubicacions del vaixell s’adapten molt bé als requisits de commutació perquè permet una matriu 4x4. Hi ha coixinets de commutació de matriu 4x4 disponibles, però he escollit utilitzar commutadors individuals en una sola línia per coincidir amb la pantalla lineal. Tanmateix, he connectat els interruptors com una matriu 4x4 de manera que només es necessiten vuit pins Arduino. Consulteu el diagrama de cablejat del commutador i l’esquema per obtenir les connexions adequades.

La pantalla LCD està connectada a una interfície de 4 bits. També he afegit un LED extern al pin D13 per indicar quin jugador hauria de fer un tret. Inicialment, els jugadors decideixen qui fa el primer tret i després el programari controla automàticament l’anada i la tornada del joc.

Volia afegir efectes de so simples per al tret, les explosions, el joc a punt i el guanyador / perdedor. Vaig provar d'utilitzar un senzill zumbador piezoelèctric, però vaig acabar amb un petit altaveu. El corrent requerit per l'altaveu supera el que pot gestionar l'Arduino, de manera que es va afegir un simple amplificador de transistor. El so encara no és fantàstic, però és millor que amb el brunzidor. El meu altaveu és de 4 ohms, però si en teniu un de 8 ohms, canvieu la resistència de l'esquema de 39 ohms a 33 ohms. Si utilitzeu un brunzidor piezoelèctric, hauríeu de ser capaç de conduir-lo directament des del pin Arduino amb l'altre costat del brunzidor connectat a terra.

També s’inclou un commutador de restabliment extern que es connecta directament entre terra i el pin de “reset” de l’Arduino. Això proporciona els mitjans per reiniciar el joc.

Pas 2: programari

El programari té el fitxer d’inclusió per a la meva interfície LCD i també he creat un fitxer d’inclusió per a l’escaneig de la matriu del commutador 4x4. La inicialització demana al jugador que seleccioni les ubicacions de les seves naus i després es posi a l'estat "Llest". Quan els dos jugadors estan preparats, un d’ells comença el joc prement un interruptor.

La ubicació del tir es transmet a través de la UART a l’altre jugador i el resultat adequat es torna a transmetre al jugador que va disparar. Com es va esmentar anteriorment, un cop realitzada la primera fotografia, el programari controla qui fa la següent foto. Abans de transmetre un tret, es controla amb les ubicacions dels plans anteriors. Si aquesta ubicació ja s'ha utilitzat, la captura no es transmetrà. El LED "My_Shot" determina de quin torn és. També es genera un so de tret per a una selecció vàlida i un so d’explosió si es colpeja un vaixell. Els efectes sonors es deriven d’exemples trobats en línia amb modificacions per adaptar-se al joc.

Un cop tots els vaixells d’un oponent han estat colpejats, es mostra un missatge a cada pantalla LCD: un com a guanyador i un com a perdedor. El missatge també especifica que es pot reiniciar el joc prement el botó de reinici. També hi ha efectes de so separats per al guanyador i el perdedor.

Pas 3: captures de pantalla

Captures de pantalla
Captures de pantalla
Captures de pantalla
Captures de pantalla
Captures de pantalla
Captures de pantalla
Captures de pantalla
Captures de pantalla

Aquí teniu algunes captures de pantalla del joc. Això és tot per a aquesta publicació. Consulteu els meus altres instructables i també el meu lloc web a: www.boomerrules.wordpress.com

Recomanat: