Differences

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

Link to this comparison view

pm:prj2021:agrigore:ledsnake [2021/05/30 14:34]
ioana_rusalda.savu
pm:prj2021:agrigore:ledsnake [2021/06/22 16:54] (current)
ioana_rusalda.savu
Line 21: Line 21:
 | Butoane | 4     | [[https://​ardushop.ro/​ro/​home/​97-buton-mic-push-button-trough-hole.html?​search_query=push+button&​results=23]]| | 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]] | | 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]] | | Fire                  | 42    | [[https://​ardushop.ro/​ro/​home/​1832-10-x-fire-dupont-mama-tata-10cm.html?​search_query=fire+tata+tata&​results=272]] |
  
Line 27: Line 29:
  
 ===== Hardware Design ===== ===== 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 |}} 
 ===== 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 =====
 +{{ :​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 =====
 +  * Proiectul funcționează conform așteptărilor
 +  * Poate fi îmbunătățit adăuănd noi feature-uri.
  
 ===== Download ===== ===== Download =====
 +{{:​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.1622374489.txt.gz · Last modified: 2021/05/30 14:34 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