Differences

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

Link to this comparison view

pm:prj2023:apredescu:pianotilesinator [2023/05/28 23:35]
denis.vlasceanu [Jurnal]
pm:prj2023:apredescu:pianotilesinator [2023/06/02 20:52] (current)
denis.vlasceanu [Introducere]
Line 10: Line 10:
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul presupune asamblarea unui robot format din 4 "brațe" mecanice. Cu ajutorul unor mini servo-motoare și a unor senzori de luminozitate,​ acesta va fi capabil de a interacționa cu jocul "Piano Tiles" rulat pe un dispozitiv cu touchscreen (telefon sau tabletă). Scopul lui este de a atinge un scor cât mai mare în "Piano Tiles" fără a fi nevoie de interacțiune umană.+Proiectul presupune asamblarea unui robot format din 4 "degete" mecanice. Cu ajutorul unor mini servo-motoare și a unor senzori de luminozitate,​ acesta va fi capabil de a interacționa cu jocul "Piano Tiles" rulat pe un dispozitiv cu touchscreen (telefon sau tabletă). Scopul lui este de a atinge un scor cât mai mare în "Piano Tiles" fără a fi nevoie de interacțiune umană.
  
 Cu ceva timp înainte găsisem pe YouTube videoclipuri arătând diverse idei de proiecte cu Arduino, iar printre acestea erau câteva implementări de robot jucător de Piano Tiles. Dintre acestea, eu am ales-o pe [[https://​www.youtube.com/​watch?​v=xXOSZ0u6Fyk&​t=1s&​ab_channel=Baltaz%C3%A1rRadics|cea care implică folosirea unor servo-motoare și a unor stylus-uri]],​ deoarece mi s-a părut cea mai interesantă. Cu ceva timp înainte găsisem pe YouTube videoclipuri arătând diverse idei de proiecte cu Arduino, iar printre acestea erau câteva implementări de robot jucător de Piano Tiles. Dintre acestea, eu am ales-o pe [[https://​www.youtube.com/​watch?​v=xXOSZ0u6Fyk&​t=1s&​ab_channel=Baltaz%C3%A1rRadics|cea care implică folosirea unor servo-motoare și a unor stylus-uri]],​ deoarece mi s-a părut cea mai interesantă.
Line 37: Line 37:
     * 8 fire dupont mamă-tată 20cm     * 8 fire dupont mamă-tată 20cm
     * rezistențe     * rezistențe
- 
-<note important>​ 
-Lista de componente **nu** este finală, deoarece mai pot fi adăugate componente. 
-</​note>​ 
  
 === Schema electrică === === Schema electrică ===
Line 58: Line 54:
  
 === Descriere firmware === === Descriere firmware ===
 +
 +- **Librăria inclusă** "​Servo.h"​ + **variabile globale**.
 +
 +- **Funcții custom**:
 +  * for (int i = 1; i <= 4; i++) {servoPress//​i//​};​
 +  * Fiecare dintre aceste 4 funcții îndeplinește aceeași acțiune: activează servomotorul corespunzător astfel încât să simuleze mișcarea de "​touch"​ pe un ecran.
 +
 +  void servoPress_i() {
 +    for (pos = 0; pos <= 30; pos += 5) {
 +      servo_i.write(pos);​
 +      delay(delay_var);​
 +    }
 +    for (pos = 30; pos >= 0; pos -= 5) {
 +      servo_i.write(pos);​
 +      delay(delay_var);​
 +    }
 +  }
 +
 +- **setup()**:​
 +  * inițializează interfața serială.
 +  * seteaza valorile initiale ale variabilelor globale (valoarile de delay a apăsării, valoarea de detectare a culorii "​negru"​).
 +  * atașează servomotoarele de pin-urile la care sunt conectate.
 +  * setează LED-urile pe modul LOW - astfel ele rămân stinse //by default//.
 +  * inițializează "​mâna"​ robotică prin apelarea funcțiilor "​servoPres//​i//"​ o singură dată.
 +
 +- **loop()**:
 +  * sunt afișate, pe interfața serială, valoarile instantanee ale fotorezistorilor.
 +  * independent,​ pentru fiecare "​deget"​ în parte, fotorezistorul corespunzător citește constant valoarea luminozității.
 +  * atunci când unul dintre fotorezistori detectează o valoare suficient de mică, atunci se întâmplă 2 lucruri: se aprinde LED-ul corespunzător pentru puțin timp, și se apelează funcția respectivă de apăsare "​servoPress//​i//"​
 +
 +  if (analogRead(sensorPin_i) <= darknessValue) {
 +      delay(decr_delay);​
 +      digitalWrite(ledPin_i,​ HIGH);
 +      servoPress_i();​
 +    } else {
 +      digitalWrite(ledPin_i,​ LOW);
 +  }
  
  
-//WIP// 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
pm/prj2023/apredescu/pianotilesinator.1685306121.txt.gz · Last modified: 2023/05/28 23:35 by denis.vlasceanu
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