ĐĂNG KÍ NHẬN TIN TỰ ĐỘNG

Nhập địa chỉ E-mail vào ô phía trên để nhận tin mới liên tục từ Tự Tay Làm

Tự chế con robot chơi đàn piano

Đăng lúc: Thứ năm - 16/04/2015 10:26 - Người đăng bài viết: Ban Biên Tập
Chia sẻ lên Facebook Chia sẻ lên Twitter Chia sẻ lên Yahoo Chia sẻ lên Zing Me Chia sẻ lên Yume Chia sẻ lên Link hay Chia sẻ lên Google+
đàn piano

đàn piano

Đây là một con robot đơn giản có thể chơi đàn piano bằng một ngón tay và chơi những bài nhạc được điều khiển từ máy tính. Robot này được làm từ những bộ phận như hai động cơ servo, mạch điều khiển Arduino Uno, một lá nhôm tản nhiệt và hai thanh gỗ.
Các bước thực hiện:
Bước 1: Cắt hai thanh gỗ hoặc ống nhựa PVC
Đầu tiên, bạn cần phải cắt hai thanh gỗ hình trụ tròn (hoặc có thể thay thế bằng ống nhựa PVC). Khi xong, bạn chuẩn bị hai bệ bằng miếng gỗ cao khoảng 1cm rồi dùng súng bắn keo để kết dính hai thanh gỗ lên bệ gỗ.
Sau đó, bạn cắt một tấm gỗ mỏng (gỗ ván ép) rồi khoan ốc vít cố định tấm nhôm lên tấm gỗ và gắn động cơ servo giống như trong hình.

robot đàn piano
 
Bước 2: Dùng đũa để làm “ngón tay”
Để làm ngón tay bấm các phím trên đàn piano, bạn sử dụng những chiếc đũa bếp rối cắt ngắn theo kích thước mong muốn, và khoan những lỗ trên đũa phù hợp để kết nối chúng lại với nhau, cũng như gắn chúng vào động cơ servo.

robot đàn piano
 
Bước 3: Kết nối servo với mạch Arduino

robot đàn piano

Có thể bạn quan tâm: Tự làm con bọ robot chuyển động khi có tin nhắn

Bạn kết nối trực tiếp hai động cơ servo với mạch Arduino Uno 5vcc, gnd và chân 11, chân 13. Rồi chạy trên phần mềm điều khiển Arduino dòng lệnh sau đây:
#include servo.h
Servo servo1,servo2,servo3; //int potPin = 2; // select the input pin for the potentiometer int ledPin = 13; // select the pin for the LED
 
//Analog read pins const int buttonPin = 2;
 
void myServo(int curAngle,int newAngle,int angleInc,int incDelay,int servoNum) { if (curAngle < newAngle) { for(int angle=curAngle;angle < newAngle;angle += angleInc) { if (servoNum == 1) servo1.write(angle); if (servoNum == 2) servo2.write(angle); if (servoNum == 3) servo3.write(angle); delay(incDelay); } } else if (curAngle > newAngle) { for(int angle=curAngle;angle > newAngle;angle -= angleInc) { if (servoNum == 1) servo1.write(angle); if (servoNum == 2) servo2.write(angle); if (servoNum == 3) servo3.write(angle); delay(incDelay); } } }
 
void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT //pinMode(buttonPin,INPUT); servo1.attach(9); delay(10); servo1.write(110);
 
servo3.attach(11); delay(10); servo3.write(71); delay(5000); randomSeed(analogRead(0)); } void playKey(int slidePos) { servo3.write(slidePos); delay(300); servo1.write(85); delay(100); servo1.write(110); delay(300); } void loop() { //Serial.print(" delay val= ");Serial.print(val);Serial.print(" angle val= ");Serial.println(valPot2); digitalWrite(ledPin,HIGH); //myServo(90,5,1,1,3); /* playKey(165);//f delay(500); playKey(149);//g playKey(138);//a playKey(127);//b playKey(116);//c playKey(105);//d playKey(94);//e playKey(83);//f playKey(72);//g playKey(61);//a playKey(50);//b playKey(28);//c playKey(15);//d */ // cetk // playKey(71); playKey(60); playKey(83); playKey(170); delay(400); playKey(116); delay(2000); // avengers // playKey(72); playKey(94); playKey(83); playKey(50); playKey(15); playKey(28); playKey(72); playKey(94); playKey(83); delay(2000); //amazing grace playKey(160); playKey(116); playKey(94); playKey(94); playKey(105); playKey(116); playKey(138); playKey(149); delay(2000); //indiana jones playKey(138); playKey(127); playKey(116); playKey(83); delay(500); playKey(149); playKey(138); playKey(127); delay(500); playKey(116);//c playKey(105);//d playKey(94);//e playKey(50);//c playKey(105);//d playKey(94);//e playKey(83);//f playKey(72);//g playKey(61);//a delay(2000); //gilligan playKey(138);//f playKey(105);//g playKey(61);//a playKey(61);//f playKey(61);//g playKey(72);//a playKey(94);//f playKey(116);//g delay(500); playKey(138);//f playKey(105);//g playKey(61);//a playKey(61);//f playKey(61);//g playKey(72);//a delay(500); playKey(138);//f playKey(105);//g playKey(61);//a playKey(61);//f playKey(61);//g playKey(72);//a playKey(28);//a delay(500); playKey(72);//a playKey(83);//a delay(500); playKey(94);//a playKey(116);//a playKey(105);//a delay(2000); // somewhere over the rainbow
 
playKey(127); delay(300); playKey(50); delay(300); playKey(61);//f delay(300); playKey(83); playKey(72);//g playKey(61);//a playKey(50);//b delay(200); playKey(125);delay(300); playKey(72);delay(300); playKey(83); cli(); /*playKey(149);//g playKey(138);//a playKey(127);//b playKey(116);//c playKey(105);//d playKey(94);//e playKey(83);//f playKey(72);//g playKey(61);//a playKey(50);//b playKey(28);//c playKey(15);//d */ }

 
Sau khi chạy dòng lệnh xong, bạn hãy quan sát hoạt động của con robot và chỉnh sửa những chiếc đũa sao cho phù hợp với yêu cầu thiết kế.
Tác giả bài viết: Dr@gon
Nguồn tin: www.tutaylam.com
Từ khóa:

đàn piano, con robot

Đánh giá bài viết
Tổng số điểm của bài viết là: 10 trong 2 đánh giá
Click để đánh giá bài viết
 

Thăm dò ý kiến

Tham khảo ý kiến về website Sản phẩm tự chế

Không nên mở thêm website này.

Ý tưởng tốt, tôi thích website này.

Giao diện website đẹp, dễ tương tác.

Giao diện website màu mè, dễ bị phân tán.