This shows you the differences between two versions of the page.
pm:prj2024:azamfir:ioana.patrascu [2024/05/27 03:32] ioana.patrascu [Software Design] |
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 114: | Line 115: | ||
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); | ||
| | ||
// afisam un mesaj de inceput | // 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 | X_out = event.acceleration.x; // valoarea inregistrata de accelerometru pe axa X | ||
Y_out = event.acceleration.y; // valoarea inregistrata de accelerometru pe axa Y | Y_out = event.acceleration.y; // valoarea inregistrata de accelerometru pe axa Y | ||
Z_out = event.acceleration.z; // valoarea inregistrata de accelerometru pe axa Z | Z_out = event.acceleration.z; // valoarea inregistrata de accelerometru pe axa Z | ||
- | |||
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 215: | Line 223: | ||
===== 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 ===== | ||