Table of Contents

LEDSnake

Autor: SAVU Ioana-Rusalda

Introducere

Descriere generala

Componente

Schema bloc

Hardware Design

Conexiuni

Putem grupa implementarea în trei tipuri de conexiuni:

Shift Register - Matrice

Matricea a fost realizată prin lipirea a 64 de leduri albastre pe 8 linii și 8 coloane.

La capetele liniilor/coloanelor se găsesc barete de pini pentru conectarea firelor.

Pentru a avea mai mulți pini de ieșire decât cei oferiți de plăcuță am folosit 2 Shift Register. Unul controlează coloanele, celălalt liniile.

Shift Register - Arduino

Shift Register-ele folosesc aceleași semnale pentru clock, latch și data. Astfel pinii acestor au fost conectați. Pentru conexiunea cu arduino:

Butoane - Arduino

Software Design

Șarpele este reprezentat prin led-urile aprinse la un anumit momemnt de timp. Se începe de la un șarpe de lungime 2 (2 led-uri aprinse). Se va mai aprinde un led (ales random care va reprezenta punctele obținute de șarpe). În momentul în care șarpele ajunge la punct, își va mări lungimea, va crește numărul de led-uri consecutive aprinse.

Implementare

Structuri de date folosite:

Controlul șarpelui se realizează prin butoane. De fiecare dată cand un buton este apăsat se tratează întreruperea setându-se noua direcție de mers. Direcția este salvată cu ajutorul unei variabile de tip char (U - UP, D - DOWN, L - LEFT, R - RIGHT). În funcție de direcția de deplasare se actualizează poziția fiecărui led, modificând coordonatele X și Y (vezi funcția moveSnake()). De fiecare dată când se deplasează șarpele, ultimul led (coada este marcat stins) iar un nou bec este marcat aprins, transformându-se în noul cap. În loop se verifică vectorul de led-uri și se aprind cele marcate cu ajutorul configurațiilor row și col, folosind funcția shiftOut(dataPin, clockPin, bitOrder, value) https://www.arduino.cc/reference/en/language/functions/advanced-io/shiftout/

Rezultate obtinute

Video

video: https://www.youtube.com/watch?v=Bek0bh3-BxM&ab_channel=IoanaSavu

Concluzii

Download

snakepm.rar

Jurnal

Bibliografie/Resurse