Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:agrigore:ledsnake [2021/04/26 10:28]
ioana_rusalda.savu created
pm:prj2021:agrigore:ledsnake [2021/06/22 16:54] (current)
ioana_rusalda.savu
Line 3: Line 3:
  
 ===== Introducere ===== ===== Introducere =====
 +  * Proiectul consta in implementarea jocului Snake folosind o mtrice de Led-uri si butoane.
 +  * Snake consta in manevrarea unui punct, un pătrat sau un obiect pe un plan mărginit. Pe măsură ce înaintează,​ lasă o urmă în spate, asemănătoare unui șarpe în mișcare.
 +  * Sarpele continuă să se lungească pe măsură ce se mișcă.
 +  * Jucătorul pierde atunci când șarpele intră în marginea ecranului, o urmă, un alt obstacol sau el însuși.
 +  ​
  
  
 ===== Descriere generala ===== ===== Descriere generala =====
 +  * Lungimea sarpelui este reprezentata de numarul de led-uri aprinse intr-un anumit moment de timp.
 +  * Miscarea sarpelui este controlata cu ajutorul butoanelor
  
 +=== Componente ===
 +^Nume                  ^Numar ^Link ^
 +| Arduino Uno           | 1     | [[https://​www.optimusdigital.ro/​en/​compatibile-with-arduino-uno/​1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html?​search_query=0104110000016997&​results=1|click]] |
 +| Breadboard ​           | 1     | [[https://​www.optimusdigital.ro/​en/​breadboards/​8-breadboard-hq-830-points.html?​search_query=0104110000001382&​results=1|click]] |
 +| LED-uri albastre | 64     | [[https://​ardushop.ro/​ro/​electronica/​299-led-3mm.html#/​14-culoare-albastru]] |
 +| Butoane | 4     | [[https://​ardushop.ro/​ro/​home/​97-buton-mic-push-button-trough-hole.html?​search_query=push+button&​results=23]]|
 +| Shift Register | 2     | [[https://​ardushop.ro/​ro/​electronica/​141-ic-shift-register-sn74hc595n-74hc595.html?​search_query=shift+register&​results=13]] |
 +| Rezistenț2 220Ohm ​          | 8     | [[https://​ardushop.ro/​ro/​electronica/​211-rezistenta-14w-1-buc.html?​search_query=rezistence+220&​results=63#/​83-valoare_rezistenta-220r]] |
 +| Placă de prototipare ​         | 1     | [[https://​ardushop.ro/​ro/​electronica/​61-placa-de-prototipare-cablaj-pcb-5x7-cm.html?​gclid=Cj0KCQjw78yFBhCZARIsAOxgSx2QNVqeQVtwOUlGU2amDJFs0vOFTNK5OT1oa2EVEjDP72ZRImTmB6AaAtNFEALw_wcB]] |
 +| Fire                  | 42    | [[https://​ardushop.ro/​ro/​home/​1832-10-x-fire-dupont-mama-tata-10cm.html?​search_query=fire+tata+tata&​results=272]] |
  
 === Schema bloc === === Schema bloc ===
 +{{ :​pm:​prj2021:​agrigore:​schemablockpm.png?​650 |}}
  
-=== Componente ​===+===== Hardware Design ​===== 
 + {{ :​pm:​prj2021:​agrigore:​schemaelectrica.jpg?​600 |}}
  
 +==== Conexiuni ====
 +
 +Putem grupa implementarea în trei tipuri de conexiuni:
 +
 +   ​*conexiune Shift Register - Matrice de leduri
 +   ​*conexiune Shift Register - Arduino
 +   ​*conexiune Butoane - Arduino
 +
 +==== Shift Register - Matrice ====
 +
 +Matricea a fost realizată prin lipirea a 64 de leduri albastre pe 8 linii și 8 coloane. ​
 +   * Pentru o linie am lipit catodurile fiecărui Led corespunzător acesteia și în final cu o rezistență de 220 Ohm.
 +   * Pentru o coloană am lipit toate anodurile Led-urilor corespunzătoare.
 +La capetele liniilor/​coloanelor se găsesc barete de pini pentru conectarea firelor.
 +{{:​pm:​prj2021:​agrigore:​matrice1.jpeg?​300 |}}   {{ :​pm:​prj2021:​agrigore:​matrice2.jpeg?​300|}}
 +{{:​pm:​prj2021:​agrigore:​matriceconex2.jpeg?​300 |}}   {{ :​pm:​prj2021:​agrigore:​matriceconex.jpeg?​300|}}
 +{{ :​pm:​prj2021:​agrigore:​lipit.jpeg?​300|}}
 +
 +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:  ​
 +  * Latch (ST_CP) ​ - pin 11
 +  * Clock (SH_CP) - pin 12
 +  * Data (DS) - pin 9
 +  * Vcc - 5V
 +  * Gnd - GND
 +  * OE - GND
 +{{ :​pm:​prj2021:​agrigore:​shiftregister.jpg?​300 |}}
 +{{ :​pm:​prj2021:​agrigore:​shift_register.jpeg?​300 |}}
 +
 +==== Butoane - Arduino ====
 +  * Buton UP - pin 2
 +  * Buton DOWN - pin 5
 +  * Buton LEFT - pin 4
 +  * Buton RIGHT - pin 3
 +{{ :​pm:​prj2021:​agrigore:​butoane.jpeg?​300 |}}
  
-===== Hardware Design ===== 
-  * TBD 
 ===== Software Design ===== ===== 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:
 +  * Vector care reține combinațiile pentru selectarea fiecărui rând
 +  * Vector care reține combinațiile pentru selectarea fiecărei coloane
 +  * Vector care reține starea fiecărui led (1- aprins, 2 - stins)
 +  * Listă simplu înlănțuita care stochează poziția fiecărui led ce alcătuiește șarpele
 +  * 2 pointeri care rețin capul si coada șarpelui
 +
 +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/​|]]
 +**
 +{{ :​pm:​prj2021:​agrigore:​config.jpg?​600 |}}
 +
 +
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
-  * TBD+{{ :​pm:​prj2021:​agrigore:​proiect.jpeg?​500 |}} 
 +{{:​pm:​prj2021:​agrigore:​s1.jpg?​400|}}  
 +{{ :​pm:​prj2021:​agrigore:​s3.jpg?​400 |}} 
 +=== Video === 
 + 
 +video: [[https://​www.youtube.com/​watch?​v=Bek0bh3-BxM&​ab_channel=IoanaSavu|]] 
 + 
 ===== Concluzii ===== ===== Concluzii =====
-  * TBD+  * Proiectul funcționează conform așteptărilor 
 +  * Poate fi îmbunătățit adăuănd noi feature-uri. 
 ===== Download ===== ===== Download =====
-  * TBD+{{:​pm:​prj2021:​agrigore:​snakepm.rar|}} 
  
 ===== Jurnal ===== ===== Jurnal =====
 +  * 26.04 - alegere temă
 +  * 03.05 - realizare schemă electrică în tinkercad
 +  * 16.05 - implementare miscare șarpe
 +  * 24.05 - finalizare implementare joc
 +  * 25.05 - realizare matrice leduri
 +  * 26.05 - testare + debug impelentare
 +  * 28.05 - finalizare proiect + reparat matrice
 +  * 30.05 - documentatie
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +  * [[https://​www.arduino.cc/​reference/​en/​language/​functions/​advanced-io/​shiftout/​|]]
 +  * [[https://​www.youtube.com/​watch?​v=U3ccR3xbJSQ&​ab_channel=EASYTECHEASYTECH|]]
 +  * [[https://​www.youtube.com/​watch?​v=NykONuPWycc&​ab_channel=element14presentselement14presentsVerified|]]
 +  * [[https://​www.youtube.com/​watch?​v=ZDtRWmBMCmw&​ab_channel=ElectronoobsElectronoobs|]]
 +  * [[pm:​prj2021:​agrigore:​ledsnake|LEDSnake]] ​
pm/prj2021/agrigore/ledsnake.1619422129.txt.gz · Last modified: 2021/04/26 10:28 by ioana_rusalda.savu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0