Differences

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

Link to this comparison view

pm:prj2024:azamfir:ioana.patrascu [2024/05/25 23:17]
ioana.patrascu [Jurnal]
pm:prj2024:azamfir:ioana.patrascu [2024/05/27 16:36] (current)
ioana.patrascu [Download]
Line 61: Line 61:
   * **Arduino** pentru Arduino Nano   * **Arduino** pentru Arduino Nano
   * **LiquidCrystal** pentru a putea cotrola display-ul, folosind o plăcuță Arduino   * **LiquidCrystal** pentru a putea cotrola display-ul, folosind o plăcuță Arduino
-  * **Adafruit_Sensor** și **Adafruit_ADXL345_U**+  * **Adafruit_Sensor** și **Adafruit_ADXL345_U** ​pentru accelerometru
  
 <code cpp> <code cpp>
Line 73: Line 73:
  
 Pentru a folosi display-ul și accelerometrul,​ trebuie să le configurăm mai întâi (folosind I2C pentru amândouă). Acest lucru se face mai simplu folosind LiquidCrystal pentru display (**lcd**) și Adafruit_ADXL345_Unified() pentru accelerometru (**accelerometer**). Setăm și backlight-ul display-ului. Pentru a folosi display-ul și accelerometrul,​ trebuie să le configurăm mai întâi (folosind I2C pentru amândouă). Acest lucru se face mai simplu folosind LiquidCrystal pentru display (**lcd**) și Adafruit_ADXL345_Unified() pentru accelerometru (**accelerometer**). Setăm și backlight-ul display-ului.
 +
  
 <code cpp> <code cpp>
Line 111: Line 112:
   accelerometer.setRange(ADXL345_RANGE_2_G);​   accelerometer.setRange(ADXL345_RANGE_2_G);​
   ​   ​
-  // set up the LCD's number of columns and rows:+  // setam numarul de linii si coloane ale LCD-ului
   pinMode(LCD_Backlight,​ OUTPUT);   pinMode(LCD_Backlight,​ OUTPUT);
   lcd.begin(16,​ 2);   lcd.begin(16,​ 2);
 +  ​
 +  // setam contrast pentru textul de pe display
   analogWrite(LCD_Backlight,​ 128);   analogWrite(LCD_Backlight,​ 128);
   ​   ​
-  // Print a message to the LCD+  // afisam un mesaj de inceput
   lcd.print("​Let'​s play D&​D!"​);​   lcd.print("​Let'​s play D&​D!"​);​
 +  ​
 +  // configuram pinii butoanelor
   pinMode(selectPin,​ INPUT);   pinMode(selectPin,​ INPUT);
   pinMode(startShakePin,​ INPUT);   pinMode(startShakePin,​ INPUT);
Line 139: Line 144:
 void loop() { void loop() {
   randomSeed(millis());​   randomSeed(millis());​
 +  ​
 +  // informatiile date de accelerometru sunt salvate in event
   sensors_event_t event;   sensors_event_t event;
   accelerometer.getEvent(&​event);​   accelerometer.getEvent(&​event);​
  
 +  // setam cursorul de pe display la linia 0, coloana 1
   lcd.setCursor(0,​ 1);   lcd.setCursor(0,​ 1);
 +   
 +  // determinam daca accelerometrul mai este agitat
   prev_x = X_out;   prev_x = X_out;
   prev_y = Y_out;   prev_y = Y_out;
   prev_z = Z_out;   prev_z = Z_out;
- +  ​X_out = event.acceleration.x;​ // valoarea inregistrata de accelerometru pe axa 
-  ​X_out = event.acceleration.x;​ // X-axis value +  Y_out = event.acceleration.y;​ // valoarea inregistrata de accelerometru pe axa 
-  Y_out = event.acceleration.y;​ // Y-axis value +  Z_out = event.acceleration.z;​ // valoarea inregistrata de accelerometru pe axa Z
-  Z_out = event.acceleration.z;​ // Z-axis value +
   shaking = (abs(X_out - prev_x) >= 1 || abs(Y_out - prev_y) >= 1 || abs(Z_out - prev_z) >= 1);   shaking = (abs(X_out - prev_x) >= 1 || abs(Y_out - prev_y) >= 1 || abs(Z_out - prev_z) >= 1);
  
 +  // functionalitate propriu-zisa
   if(!diceSelected) {   if(!diceSelected) {
     lcd.print("​Select dice: D");     lcd.print("​Select dice: D");
Line 212: Line 220:
 ===== Concluzii ===== ===== Concluzii =====
  
 +Până acum am mai lucrat la un astfel de proiect doar în cadrul laboratoarelor de la DEEA, ED sau PM, sub supraveghere și folosind componente oferite de facultate. A fost o experiență interesantă,​ care mi-a arătat câte erori și probleme pot să apară într-un proiect de acest tip și cât de ușor ar putea fi rezolvate dacă ai avea mai multă experiență în domeniu.
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Toate fișierele ​vizibile deja în această documentație ​se regăsesc în arhiva ​de mai jos.
-O arhivă (sau mai multe dacă este cazul) cu fişierele ​obţinute ​în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +
- +
-Fişierele ​se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul ​în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​note>​+
  
 +{{:​pm:​prj2024:​azamfir:​d_d_dice.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
Line 247: Line 253:
  
 **25-26 mai** **25-26 mai**
-  * finalizare documentație:​ rezultate și concluzii+  * finalizare documentație:​ rezultate, concluzii ​și alte informații suplimentare
  
 **Probleme întâmpinate:​** **Probleme întâmpinate:​**
Line 258: Line 264:
  
 __**Resurse Software:​**__ __**Resurse Software:​**__
-// +  * [[https://www.youtube.com/​watch?​v=g_6OJDyUw1w|Arduino Display Integration Video Tutorial]] 
-TBA//+  * [[https://www.youtube.com/watch?​v=vOZEwe_o20Y|Arduino Accelerometer using the ADXL345]]
  
 __**Resurse Hardware:​**__ __**Resurse Hardware:​**__
pm/prj2024/azamfir/ioana.patrascu.1716668248.txt.gz · Last modified: 2024/05/25 23:17 by ioana.patrascu
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