Differences

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

Link to this comparison view

pm:prj2022:avaduva:pianoplayer [2022/05/22 13:16]
sergiu.spiridon [Software Design]
pm:prj2022:avaduva:pianoplayer [2022/05/27 22:28] (current)
sergiu.spiridon [Bibliografie/Resurse]
Line 12: Line 12:
  
 <note tip> <note tip>
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.+Proiectul reprezinta un robot care poate juca popularul joc Piano Tiles.
  
-Exemplu ​de schemă bloc: http://​www.robs-projects.com/​mp3proj/​newplayer.html+Robotul va citi valori ​de segmente din ecran si in functie de culoarea pe care o citeste pe fiecare segment 
 +va simula sau nu o atingere a ecranului touchscreen.
 </​note>​ </​note>​
  
Line 48: Line 49:
  
 Voi atasa in continuare o imagine cu schema proiectului in ThinkerCad: Voi atasa in continuare o imagine cu schema proiectului in ThinkerCad:
 +
 {{:​pm:​prj2022:​avaduva:​thinker_cad_full_sergiu.png?​800|}} {{:​pm:​prj2022:​avaduva:​thinker_cad_full_sergiu.png?​800|}}
 +
 +Schematic:
 +
 +{{:​pm:​prj2022:​avaduva:​schematic_sergiu.png?​800|}}
  
 In proiectul fizic se vor inlocui multimeter-urile cu fire care au un material conductiv la capat, care vor fi pozitionate pe ecranul telefonului,​ In proiectul fizic se vor inlocui multimeter-urile cu fire care au un material conductiv la capat, care vor fi pozitionate pe ecranul telefonului,​
Line 61: Line 67:
 Codul initial, testal in ThinkerCad, arata astfel: Codul initial, testal in ThinkerCad, arata astfel:
  
-''​Code Text''​+<​code>​ 
 +  
 +int photo0 = A0; 
 +int photo1 = A1; 
 +int photo2 = A2; 
 +int photo3 = A3; 
 + 
 +int relay0 = 10; 
 +int relay1 = 11; 
 +int relay2 = 12; 
 +int relay3 = 13; 
 + 
 +int delay_close_1 = 50; 
 +int delay_close_2 = 50; 
 + 
 +int delay_far = 100; 
 + 
 +void setup() { 
 +  // put your setup code here, to run once: 
 +  Serial.begin(9600);​ 
 +  pinMode(photo0,​ INPUT); 
 +  pinMode(photo1,​ INPUT); 
 +  pinMode(photo2,​ INPUT); 
 +  pinMode(photo3,​ INPUT); 
 +   
 +  pinMode(relay0,​ OUTPUT); 
 +  pinMode(relay1,​ OUTPUT); 
 +  pinMode(relay2,​ OUTPUT); 
 +  pinMode(relay3,​ OUTPUT); 
 + 
 +   
 +
 + 
 +void loop() { 
 +   
 +  if (analogRead(photo0) < 700) { 
 +    delay(delay_far);​ 
 +    digitalWrite(relay0,​ HIGH); 
 +    delay(delay_close_1);​ 
 +    digitalWrite(relay0,​ LOW); 
 +    delay(delay_close_2);​ 
 +  } else if (analogRead(photo1) < 700) { 
 +    digitalWrite(relay1,​ HIGH); 
 +    delay(delay_close_1);​ 
 +    digitalWrite(relay1,​ LOW); 
 +    delay(delay_close_2);​ 
 +  } else if (analogRead(photo2) < 700) { 
 +    delay(delay_far);​ 
 +    digitalWrite(relay2,​ HIGH); 
 +    delay(delay_close_1);​ 
 +    digitalWrite(relay2,​ LOW); 
 +    delay(delay_close_2);​ 
 +  } else if (analogRead(photo3) < 700) { 
 +    digitalWrite(relay3,​ HIGH); 
 +    delay(delay_close_1);​ 
 +    digitalWrite(relay3,​ LOW); 
 +    delay(delay_code_2);​ 
 +  } 
 +
 +</​code>​ 
 +Photorezistorii sunt atasati catre porturile A0, A1, A2, A3 si trimit pe acestea valori semnificand intensitatea 
 +luminoasa citita. Atunci cand eranul afiseaza culoarea negru (o clapa), valoarea returnata de LDR este mai mica de 700. 
 + 
 +O valoare mai mica de 700 rezulta in comutarea unui releu la HIGH si apoi la LOW pentru a simula atingere. 
 + 
 +Pe ecran, monedele atasate de relay-urile 1 si 3 o sa fie mai departe de senzori, deci au un delay inainte de a face atingerea. 
 +<​note>​ 
 +In cod trebuie adaugate delayuri custom pentru a lua in considerare distanta dintre LDR-uri (punctul de citire) si 
 +monedele de pe ecran (punctul de atingere al ecranului). 
 +</​note>​
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+In final, am reusit sa fac un robot care poate diferentia intre casutele negre si cele albastre de pe ecran, si care poate 
 +simula actiunea de '​touch'​ pe casutele negre.
 </​note>​ </​note>​
 +{{:​pm:​prj2022:​avaduva:​poza_rez_1_sergiu.jpeg?​300|}}
  
 +{{:​pm:​prj2022:​avaduva:​poza_rez_2_sergiu.jpeg?​500|}}
 ===== Concluzii ===== ===== Concluzii =====
  
Line 87: Line 165:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+https://​create.arduino.cc/​projecthub/​susheel_06/​piano-tile-robot-a06ae6?​ref=part&​ref_id=8233&​offset=5622 
 + 
 +https://​www.youtube.com/​watch?​v=8hlQ0MiowN8 
 + 
 +https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf
 </​note>​ </​note>​
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2022/avaduva/pianoplayer.1653214617.txt.gz · Last modified: 2022/05/22 13:16 by sergiu.spiridon
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