Snake Game ha estat molt popular des del començament dels telèfons mòbils. Inicialment venia amb telèfons mòbils en blanc i negre i aviat es va fer molt famosa. Després, amb l’avanç dels telèfons mòbils, aquest joc també ha canviat molt i ara hi ha disponibles moltes versions gràfiques i colorides d’aquest joc.
El joc de serps també s’ha convertit en un projecte de bricolatge molt popular per a l’aficionat a l’electrònica i els estudiants. Per tant, avui demostrarem Arduino Snake Game, amb totes les seves funcionalitats bàsiques, tot mantenint-lo senzill al mateix temps.
Components utilitzats:
- Arduino UNO
- Pantalla LED de matriu de punts de 8 x 8
- Registre de torns 74HC595
- LCD de 16x2
- POT 1K
- Botons de pressió
- Connexió de cables
- Taula de pa
- Font d'alimentació
Explicació de treball:
Aquest és un joc poc complicat de construir. Però en aquest tutorial us ho hem fet senzill. Per fer aquest projecte, hem utilitzat una pantalla de matriu de punts de color vermell de 8x8 per mostrar la serp i el seu punt alimentari, una pantalla LCD per mostrar els punts o la puntuació, 5 botons per donar indicacions i començar el joc i finalment un Arduino UNO per controlar tot el procés. A continuació es mostra el diagrama de pins de la pantalla de matriu de punts LED de 8x8 amb la seva imatge original:


Quan engegem el circuit, primer mostrem un missatge de benvinguda i, a continuació, un suggeriment "Premeu Start To Play" a la pantalla LCD. Després d'això, la pantalla LCD mostra la puntuació com a zero i la pantalla de matriu de punts mostra dos punts com a serp i un sol punt com a aliment.
Ara l'usuari ha de prémer el botó central per iniciar el joc i la serp comença a moure's en direcció ascendent per defecte. Després, l'usuari ha de donar direcció a la serp prement les tecles de direcció al voltant del botó central. Aquí hem utilitzat cinc tecles (botons polsadors), és a dir, tecla esquerra, tecla dreta, tecla amunt, tecla avall i tecla d'inici. Sempre que la serp arriba al punt del menjar o menja el menjar, la puntuació augmenta 5 punts cada vegada i la longitud de la serp augmenta un punt (LED) cada vegada, també la velocitat de la serp es fa més ràpida que abans. I cada vegada que una serp impactava contra qualsevol paret o arribava al final de la matriu LED, acabava el joc ("Game Over"). Aleshores, l'usuari ha de tornar a començar el joc prement la tecla d'inici.

Explicació del circuit:
El circuit d’aquest Projecte de joc de serps és poc complex. Aquí hem connectat la visualització de matriu de punts mitjançant Shift Register 74HC595. Aquí s’utilitzen dos registres de desplaçament, un per conduir les columnes i el segon per conduir les files. Pins de control tant dels registres, registre de desplaçament de columna i registre de desplaçament de fila (SH, ST),estan connectats directament al pin número 14 i 16 d’Arduino respectivament. I el pin DS del registre de desplaçament de columna i el registre de desplaçament de fila estan directament connectats al pin número 15 i 17 d’Arduino. El botó d'inici per iniciar el joc està connectat al pin número 3, el botó de direcció esquerre al pin 4, el botó de direcció dret al pin 6, el botó de direcció cap amunt al pin 2 i el botó de direcció cap avall al pin 5. A la nostra mostra la puntuació. Els pins RS i EN estan connectats directament als pins 13 i 12. Els pins RW estan directament connectats a terra. I els pins de dades d4-d7 estan connectats als pins 11, 10, 9, 8 d’Arduino. La resta de connexions es mostren al diagrama del circuit.

Explicació de la programació:
Per escriure aquest codi de joc de serp Arduino, primer incloem fitxers de capçalera i definim pins per a LCD. I després definiu alguns pins per als botons de direcció i els pins de dades per als registres de desplaçament.
#incloure
A continuació, inicialitzem totes les coses que hem utilitzat al programa. A la funció de configuració inicialitzem el LCD, donant direcció als pins de sortida d’entrada, tirem els bits i mostrem el missatge de benvinguda al LCD.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (inici, INPUT);……………
I llavors comencem el joc en funció de bucle .
void show_snake (int temp) {for (int n = 0; n
Aquí hem utilitzat la funció següent per llegir la direcció d’entrada des del polsador.
void button_button read) (if (! digitalRead (left)) {move_r = 0; move_c! = - 1? move_c = -1: move_c = 1; mentre (! digitalRead (esquerra));……………
Consulteu el joc complet del C Code of Snake a continuació.
