Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
The project is basically meant to make fun with technology. A Piano is played without pressing any key(as in case of actual one) but just by waving hand. Construction & working: In order to work out this task, I have used MATLAB. A physical structure is made (fig.1). The top face of it has eight holes. A webcam is placed beneath it. The dimensions are so adjusted that the view angle of webcam can cover up all holes. The images are taken by webcam continuously and processed in MATLAB. An video input object vid is created. vid=
import java.awt.Robot; import java.awt.event.*; SimKey=Robot; A infinite loop is created to repeat steps continuously.
ct= regionprops(mainimg, 'centroid'); centroids = cat(1, ct.Centroid); centroids=round(centroids); toggle = [0 0 0 0 0 0 0 0]; pause(10); while(1) trigger(vid); a1=getdata(vid,1); bwimg1=im2bw(a1,.8); if(bwimg1(centroids(1,2),centroids(1,1))==0 && toggle(1)==0) %disp('first'); SimKey.keyPress(KeyEvent.VK_Q); toggle(1)=1-toggle(1); elseif(bwimg1(centroids(1,2),centroids(1,1))==1 && toggle(1)==1) SimKey.keyRelease(KeyEvent.VK_Q); toggle(1)=1-toggle(1); end if(bwimg1(centroids(2,2),centroids(2,1))==0 && toggle(2)==0) %disp('second'); SimKey.keyPress(KeyEvent.VK_W); toggle(2)=1-toggle(2); elseif(bwimg1(centroids(2,2),centroids(2,1))==1 && toggle(2)==1) SimKey.keyRelease(KeyEvent.VK_W); toggle(2)=1-toggle(2); end if(bwimg1(centroids(3,2),centroids(3,1))==0 && toggle(3)==0) %disp('third'); SimKey.keyPress(KeyEvent.VK_E); toggle(3)=1-toggle(3); elseif(bwimg1(centroids(3,2),centroids(3,1))==1 && toggle(3)==1) SimKey.keyRelease(KeyEvent.VK_E); toggle(3)=1-toggle(3); end
if(bwimg1(centroids(4,2),centroids(4,1))==0 && toggle(4)==0) %disp('fourth'); SimKey.keyPress(KeyEvent.VK_R); toggle(4)=1-toggle(4); elseif(bwimg1(centroids(4,2),centroids(4,1))==1 && toggle(4)==1) SimKey.keyRelease(KeyEvent.VK_R); toggle(4)=1-toggle(4); end if(bwimg1(centroids(5,2),centroids(5,1))==0 && toggle(5)==0) %disp('fifth'); SimKey.keyPress(KeyEvent.VK_T); toggle(5)=1-toggle(5); elseif(bwimg1(centroids(5,2),centroids(5,1))==1 && toggle(5)==1) SimKey.keyRelease(KeyEvent.VK_T); toggle(5)=1-toggle(5); end if(bwimg1(centroids(6,2),centroids(6,1))==0 && toggle(6)==0) %disp('sixth'); SimKey.keyPress(KeyEvent.VK_Y); toggle(6)=1-toggle(6); elseif(bwimg1(centroids(6,2),centroids(6,1))==1 && toggle(6)==1) SimKey.keyRelease(KeyEvent.VK_Y); toggle(6)=1-toggle(6); end if(bwimg1(centroids(7,2),centroids(7,1))==0 && toggle(7)==0) %disp('seventh'); SimKey.keyPress(KeyEvent.VK_U); toggle(7)=1-toggle(7); elseif(bwimg1(centroids(7,2),centroids(7,1))==1 && toggle(7)==1) SimKey.keyRelease(KeyEvent.VK_U); toggle(7)=1-toggle(7); end
if(bwimg1(centroids(8,2),centroids(8,1))==0 && toggle(8)==0) % disp('eighth'); SimKey.keyPress(KeyEvent.VK_I); toggle(8)=1-toggle(8); elseif(bwimg1(centroids(8,2),centroids(8,1))==1 && toggle(8)==1) SimKey.keyRelease(KeyEvent.VK_I); toggle(8)=1-toggle(8); end end stop(vid);
--------------------------------Enjoying Playing Presented by: Rahul Kumar Btech. 2nd year Electrical Engg.