Assignment of work
A piano robot, in general, is a robot that automatically controls the piano instrument keys. We will need to use a range of hardware tools, such as solenoids, to complete this project, as well as develop a specific Java software interface for it. New robot piano speed tests prove interesting records in the world. Since then, according to guinnessworldrecords.com on March 4, 2017 in Portugal, the record for the greatest number of piano notes played in one minute has just been broken by someone called “Domingos-Antonio Gomes” by hitting a single piano key with two fingers 824 times, in one minute, or 13.7 per second. However, we tested the speed of our robot piano, to repeat only two selenoids next to it. Setting the delay time to 38, which means 0.038 seconds to turn on the solenoid, then if we divide one second by 0.038 seconds it will be 26.31 times playing the piano keys in one second, if we calculate it for one minute it will be 1578 times playing the piano keys. This is a record for just two touches. Later we decided to do another test by decreasing the delay time to 32, but this time we used a for loop in the Arduino IDE. The result will be dividing one second by 0.032 seconds and that is 31.25 times by playing the piano keys one after the other in a single second, multiply it by 60 it will be 1875 times by pressing the piano keys in one minute.
"for more information on this project, view the PDF file! "
Devices and components
1 5 Vdc 10A relay module (assembled)
Arduino Mega 2560 Rev3
4-line to 16-line decoder
Breadboard 100x160
Solenoid JF-0530B
fan for cooling system
connecting wires for arduino
24V/10A power supply
Knowledge of how your computer and the Arduino IDE work
12V/10A power supply
Software and tools
Swing frame
Online Java Program
Jserialcomm Library
Project description
one of the music that our robot can play
1void setup() {
2 // put your setup code here, to run once:
3for ( int i=0; i<=53; i++){
4 pinMode(i,OUTPUT);}
5
6for ( int i=5; i<=50; i++){
7 digitalWrite(i,HIGH);}
8
9
10 digitalWrite(2,HIGH);
11 digitalWrite(3,HIGH);
12 digitalWrite(4,HIGH);
13
14 digitalWrite(50,HIGH);
15 digitalWrite(51,HIGH);
16 digitalWrite(52,HIGH);
17 digitalWrite(53,HIGH);
18}
19
20
21void loop() {
22
23int t= 360;
24
25
26
27digitalWrite(26,LOW);
28
29delay(t);
30
31digitalWrite(21,LOW);
32digitalWrite(26,HIGH);
33
34delay(t);
35digitalWrite(18,LOW);
36digitalWrite(21,HIGH);
37
38delay(t);
39digitalWrite(19,LOW);
40digitalWrite(45,LOW);
41digitalWrite(18,HIGH);
42
43delay(t);
44digitalWrite(21,LOW);
45digitalWrite(38,LOW);
46digitalWrite(19,HIGH);
47digitalWrite(45,HIGH);
48
49delay(t);
50digitalWrite(18,LOW);
51digitalWrite(33,LOW);
52digitalWrite(21,HIGH);
53digitalWrite(38,HIGH);
54delay(t);
55digitalWrite(21,LOW);
56digitalWrite(38,LOW);
57digitalWrite(18,HIGH);
58digitalWrite(33,HIGH);
59delay(t);
60digitalWrite(19,LOW);
61digitalWrite(45,LOW);
62digitalWrite(21,HIGH);
63digitalWrite(38,HIGH);
64delay(t);
65digitalWrite(21,LOW);
66digitalWrite(40,LOW);
67digitalWrite(19,HIGH);
68digitalWrite(45,HIGH);
69delay(t);
70digitalWrite(25,LOW);
71digitalWrite(37,LOW);
72digitalWrite(21,HIGH);
73digitalWrite(40,HIGH);
74
75
76
77delay(t);
78digitalWrite(23,LOW);
79digitalWrite(40,LOW);
80digitalWrite(25,HIGH);
81digitalWrite(37,HIGH);
82delay(t);
83digitalWrite(26,LOW);
84
85digitalWrite(45,LOW);
86
87digitalWrite(23,HIGH);
88digitalWrite(40,HIGH);
89delay(t);
90digitalWrite(38,LOW);
91digitalWrite(26,HIGH);
92digitalWrite(45,HIGH);
93delay(t);
94digitalWrite(33,LOW);
95digitalWrite(38,HIGH);
96//digitalWrite(26,HIGH);
97delay(t);
98digitalWrite(38,LOW);
99digitalWrite(33,HIGH);
100
101delay(t);
102digitalWrite(45,LOW);
103digitalWrite(38,HIGH);
104
105delay(t);
106//------------------
107
108digitalWrite(26,LOW);
109digitalWrite(45,HIGH);
110delay(t);
111
112digitalWrite(21,LOW);
113digitalWrite(26,HIGH);
114
115delay(t);
116digitalWrite(18,LOW);
117digitalWrite(21,HIGH);
118
119delay(t);
120digitalWrite(19,LOW);
121digitalWrite(45,LOW);
122digitalWrite(18,HIGH);
123
124delay(t);
125digitalWrite(21,LOW);
126digitalWrite(38,LOW);
127digitalWrite(19,HIGH);
128digitalWrite(45,HIGH);
129
130delay(t);
131digitalWrite(18,LOW);
132digitalWrite(33,LOW);
133digitalWrite(21,HIGH);
134digitalWrite(38,HIGH);
135delay(t);
136digitalWrite(21,LOW);
137digitalWrite(38,LOW);
138digitalWrite(18,HIGH);
139digitalWrite(38,HIGH);
140delay(t);
141digitalWrite(19,LOW);
142digitalWrite(42,LOW);
143digitalWrite(21,HIGH);
144digitalWrite(38,HIGH);
145delay(t);
146digitalWrite(21,LOW);
147digitalWrite(38,LOW);
148digitalWrite(19,HIGH);
149digitalWrite(42,HIGH);
150delay(t);
151digitalWrite(26,LOW);
152digitalWrite(33,LOW);
153digitalWrite(21,HIGH);
154digitalWrite(38,HIGH);
155delay(t);
156digitalWrite(27,LOW);
157digitalWrite(38,LOW);
158digitalWrite(26,HIGH);
159digitalWrite(33,HIGH);
160delay(t);
161digitalWrite(28,LOW);
162digitalWrite(40,LOW);
163digitalWrite(27,HIGH);
164digitalWrite(38,HIGH);
165delay(t);
166digitalWrite(37,LOW);
167digitalWrite(28,HIGH);
168digitalWrite(40,HIGH);
169
170delay(t);
171digitalWrite(33,LOW);
172digitalWrite(37,HIGH);
173delay(t);
174digitalWrite(37,LOW);
175digitalWrite(33,HIGH);
176delay(t);
177digitalWrite(40,LOW);
178digitalWrite(37,HIGH);
179delay(t);
180digitalWrite(28,LOW);
181digitalWrite(40,HIGH);
182delay(t);
183digitalWrite(25,LOW);
184digitalWrite(28,HIGH);
185delay(t);
186digitalWrite(22,LOW);
187digitalWrite(25,HIGH);
188delay(t);
189digitalWrite(19,LOW);
190digitalWrite(40,LOW);
191digitalWrite(22,HIGH);
192delay(t);
193digitalWrite(37,LOW);
194digitalWrite(19,HIGH);
195digitalWrite(40,HIGH);
196
197delay(t);
198digitalWrite(33,LOW);
199digitalWrite(37,HIGH);
200delay(t);
201digitalWrite(37,LOW);
202digitalWrite(33,HIGH);
203delay(t);
204digitalWrite(40,LOW);
205digitalWrite(37,HIGH);
206delay(t);
207digitalWrite(28,LOW);
208digitalWrite(40,HIGH);
209delay(t);
210digitalWrite(25,LOW);
211digitalWrite(28,HIGH);
212delay(t);
213digitalWrite(22,LOW);
214digitalWrite(25,HIGH);
215delay(t);
216digitalWrite(21,LOW);
217digitalWrite(45,LOW);
218digitalWrite(22,HIGH);
219delay(t);
220digitalWrite(38,LOW);
221digitalWrite(21,HIGH);
222digitalWrite(45,HIGH);
223delay(t);
224digitalWrite(33,LOW);
225digitalWrite(38,HIGH);
226delay(t);
227digitalWrite(38,LOW);
228digitalWrite(33,HIGH);
229delay(t);
230digitalWrite(45,LOW);
231digitalWrite(38,HIGH);
232delay(t);
233digitalWrite(33,LOW);
234digitalWrite(45,HIGH);
235delay(t);
236digitalWrite(29,LOW);
237digitalWrite(33,HIGH);
238delay(t);
239digitalWrite(23,LOW);
240digitalWrite(29,HIGH);
241delay(t);
242digitalWrite(25,LOW);
243digitalWrite(43,LOW);
244digitalWrite(23,HIGH);
245
246delay(t);
247digitalWrite(26,LOW);
248digitalWrite(40,LOW);
249digitalWrite(25,HIGH);
250digitalWrite(43,HIGH);
251
252delay(t);
253digitalWrite(23,LOW);
254digitalWrite(37,LOW);
255digitalWrite(26,HIGH);
256digitalWrite(40,HIGH);
257delay(t);
258digitalWrite(25,LOW);
259digitalWrite(23,HIGH);
260digitalWrite(37,HIGH);
261
262delay(t);
263
264digitalWrite(25,HIGH);
265
266
267digitalWrite(25,LOW);
268digitalWrite(50,LOW);digitalWrite(51,LOW);digitalWrite(52,LOW);digitalWrite(53,LOW);
269delay(t);
270digitalWrite(26,LOW);
271digitalWrite(43,LOW);
272digitalWrite(25,HIGH);
273digitalWrite(50,HIGH);digitalWrite(51,HIGH);digitalWrite(52,HIGH);digitalWrite(53,HIGH);
274delay(t);
275
276
277
278digitalWrite(26,LOW);
279digitalWrite(38,LOW);
280digitalWrite(43,HIGH);
281digitalWrite(26,HIGH);
282delay(t);
283digitalWrite(27,LOW);
284digitalWrite(26,HIGH);
285digitalWrite(38,HIGH);
286delay(t);
287digitalWrite(26,LOW);
288digitalWrite(45,LOW);
289digitalWrite(27,HIGH);
290delay(t);
291digitalWrite(38,LOW);
292digitalWrite(26,HIGH);
293digitalWrite(45,HIGH);
294delay(t);
295digitalWrite(33,LOW);
296digitalWrite(38,HIGH);
297delay(t);
298digitalWrite(38,LOW);
299digitalWrite(33,HIGH);
300delay(t);
301digitalWrite(45,LOW);
302digitalWrite(38,HIGH);
303delay(t);
304//----------------------------
305
306
307digitalWrite(21,LOW);
308digitalWrite(45,HIGH);
309delay(50);
310digitalWrite(21,HIGH);
311delay(t);
312digitalWrite(21,LOW);
313delay(t);
314digitalWrite(22,LOW);
315digitalWrite(21,HIGH);
316delay(t);
317digitalWrite(23,LOW);
318digitalWrite(47,LOW);
319digitalWrite(22,HIGH);
320
321delay(t);
322digitalWrite(40,LOW);
323digitalWrite(23,HIGH);
324digitalWrite(47,HIGH);
325delay(t);
326digitalWrite(35,LOW);
327digitalWrite(40,HIGH);
328delay(t);
329digitalWrite(23,LOW);
330digitalWrite(40,LOW);
331digitalWrite(35,HIGH);
332
333delay(t);
334digitalWrite(47,LOW);
335digitalWrite(23,HIGH);
336digitalWrite(40,HIGH);
337
338delay(t);
339digitalWrite(35,LOW);
340digitalWrite(47,HIGH);
341delay(t);
342digitalWrite(40,LOW);
343digitalWrite(23,LOW);
344digitalWrite(35,HIGH);
345delay(t);
346digitalWrite(19,LOW);
347digitalWrite(47,LOW);
348digitalWrite(40,HIGH);
349digitalWrite(23,HIGH);
350delay(t);
351digitalWrite(21,LOW);
352digitalWrite(35,LOW);
353digitalWrite(19,HIGH);
354digitalWrite(47,HIGH);
355delay(t);
356digitalWrite(25,LOW);
357digitalWrite(40,LOW);
358digitalWrite(21,HIGH);
359digitalWrite(35,HIGH);
360delay(t);
361digitalWrite(26,LOW);
362digitalWrite(42,LOW);
363digitalWrite(25,HIGH);
364digitalWrite(40,HIGH);
365delay(t);
366digitalWrite(35,LOW);
367digitalWrite(26,HIGH);
368digitalWrite(42,HIGH);
369delay(t);
370digitalWrite(30,LOW);
371digitalWrite(35,HIGH);
372
373delay(t);
374digitalWrite(35,LOW);
375digitalWrite(30,HIGH);
376delay(t);
377digitalWrite(42,LOW);
378digitalWrite(35,HIGH);
379
380delay(t);
381digitalWrite(26,LOW);
382digitalWrite(42,HIGH);
383delay(t);
384digitalWrite(23,LOW);
385digitalWrite(26,HIGH);
386delay(t);
387digitalWrite(26,LOW);
388digitalWrite(23,HIGH);
389delay(t);
390digitalWrite(28,LOW);
391digitalWrite(44,LOW);
392digitalWrite(26,HIGH);
393delay(t);
394digitalWrite(37,LOW);
395digitalWrite(28,HIGH);
396digitalWrite(44,HIGH);
397delay(t);
398digitalWrite(32,LOW);
399digitalWrite(37,HIGH);
400delay(t);
401digitalWrite(37,LOW);
402digitalWrite(32,HIGH);
403delay(t);
404digitalWrite(44,LOW);
405digitalWrite(37,HIGH);
406delay(t);
407digitalWrite(28,LOW);
408digitalWrite(44,HIGH);
409delay(t);
410digitalWrite(25,LOW);
411digitalWrite(28,HIGH);
412delay(t);
413digitalWrite(27,LOW);
414digitalWrite(25,HIGH);
415delay(t);
416digitalWrite(26,LOW);
417digitalWrite(50,LOW);digitalWrite(51,LOW);digitalWrite(52,LOW);digitalWrite(53,LOW);
418digitalWrite(27,HIGH);
419delay(t);
420digitalWrite(43,LOW);
421digitalWrite(26,HIGH);
422digitalWrite(50,HIGH);digitalWrite(51,HIGH);digitalWrite(52,HIGH);digitalWrite(53,HIGH);
423
424delay(t);
425digitalWrite(38,LOW);
426digitalWrite(43,HIGH);
427delay(t);
428digitalWrite(43,LOW);
429digitalWrite(38,HIGH);
430
431delay(t);
432digitalWrite(38,LOW);
433digitalWrite(43,HIGH);
434delay(t);
435digitalWrite(38,HIGH);
436
437delay(t);
438
439
440}
Downloadable files
robot-piano-report
it explains all the information about the project
Report-GP.pdf
a video of the piano robot
we got 2nd place in the “techfest” competition
video_2024-01-15_21-01-59.mp4
a video of the piano robot
video_2024-01-15_20-58-15.mp4
an image of the robot piano
COOLIN A.jpg
an image of the robot piano
IMG_20221216_144726.jpg
Note: Content and images are from: https://projecthub.arduino.cc/, with some modifications.
If you want it removed due to copyright reasons, please leave a comment. Thank you.
I want to share this article more widely so that everyone knows about Arduino and your project.