1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án nghiên cứu, thiết kế và chế tạo robot chơi đàn piano

125 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu, Thiết Kế Và Chế Tạo Robot Chơi Đàn Piano
Tác giả Nguyễn Trọng Quý, Lê Anh Kiện, Cao Lâm Sơn
Người hướng dẫn TS. Trịnh Đức Cường
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Cơ Khí
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 125
Dung lượng 9,38 MB

Cấu trúc

  • 1.1 Đặt vấn đề (21)
  • 1.2 Mục đích thực hiện đề tài (0)
  • 1.3 Đối tượng nghiên cứu (22)
  • 1.4 Phương pháp nghiên cứu (22)
  • 1.5 Cấu trúc bài báo cáo (23)
  • 2.1 Giới thiệu (24)
    • 2.1.1 Robot piano là gì ? (24)
    • 2.1.2 Sự hình thành của robot chơi đàn piano (24)
  • 2.2 Đặc tính của robot chơi đàn piano (0)
  • 2.3 Cấu tạo của robot chơi đàn piano (27)
  • 2.4 Các nghiên cứu liên quan đến đề tài (29)
    • 2.4.1 Các nghiên cứu trong nước (29)
    • 2.4.2 Các nghiên cứu ngoài nước (30)
  • 3.1 Yêu cầu của đề tài (34)
  • 3.2 Phương án và giải pháp thực hiện (34)
    • 3.3.2 Lựa chọn phương án tương tác với khán giả khi biễu diễn (42)
  • 3.4 Cơ sở lý thuyết (0)
    • 3.4.1 Phần đầu robot (43)
    • 3.4.2 Phần bàn tay robot (45)
  • 4.1 Thiết kế bàn tay robot (49)
    • 4.1.1 Tính toán, thiết kế ngón tay robot (49)
    • 4.1.2 Tính toán và lựa chọn động cơ (58)
  • 4.2 Thiết kế đầu robot tương tác (59)
    • 4.2.1 Thông số ban đầu (59)
    • 4.2.2 Thiết kế bộ truyền động khớp cổ (62)
    • 4.2.3 Lựa chọn vật liệu cho các chi tiết thiết kế (66)
    • 4.2.4 Tính toán bền của bộ truyền động khớp cổ (67)
  • 4.3 Thành phần cơ khí và điện (0)
    • 4.3.1 Thành phần cơ khí cấu thành khung tay và khớp cổ robot (0)
    • 4.3.2 Các thành phần điện khung tay và khớp cổ robot (75)
  • 5.1 Động học của robot (78)
    • 5.1.1 Phân tích hình học Stewart platform (78)
    • 5.1.2 Phân tích bài toán động học nghịch (79)
  • 5.2 Bài toán giải mã tệp tin âm nhạc MIDI (84)
    • 5.2.1 Mục tiêu (84)
    • 5.2.2 Đặc điểm tệp tin âm nhạc MIDI (85)
    • 5.2.3 Ý tưởng thuật toán và lưu đồ (0)
  • 5.3 Bài toán tìm quãng đường di chuyển bàn tay và phím nhấn (0)
    • 5.3.1 Mục tiêu (0)
    • 5.3.2 Ý tưởng thuật toán (0)
    • 5.3.3 Lưu đồ thuật toán (94)
  • 5.4 Số xung vi điều cần phát để con trượt di chuyển 1mm (95)
  • 5.5 Bài toán làm mịn tín hiệu cấp xung động cơ servo (0)
  • 5.6 Bài toán gia tốc không đổi cho động cơ bước (97)
  • 6.1 Sơ đồ khối tổng quát hệ thống (101)
    • 6.2.1 Phương thức giao tiếp I2C (102)
  • 6.3 Thiết kế mạch điều khiển solenoid (106)
  • 7.1 Kết quả mô hình robot chơi đàn piano (111)
  • 7.2 Kết quả thực nghiệm bài toán giải mã tệp tin midi (114)
  • 7.3 Kết quả thực nghiệm thuật toán quãng đường di chuyển bàn tay và phím nhấn (117)
  • 7.4 Kết quả thiết kế mạch điều khiển solenoid (119)
  • 7.5 Kết quả chạy thực nghiệm trên phím đàn (120)

Nội dung

Phương pháp nghiên cứu

Là sự kết hợp giữa lý thuyết và thực nghiệm robot

- Tham khảo các nghiên cứu về nghiên cứu robot chơi đàn piano liên quan, sau đó chọn

- Tìm hiểu các nghiên cứu liên quan về bộ thao tác song song có sáu bộ truyền động,

Bằng cách áp dụng bài toán động học và kết hợp với nhiều phần mềm khác nhau, chúng tôi đã tính toán kích thước thực tế cho từng bộ phận của robot Điều này giúp tối ưu hóa không gian điều khiển và hoạt động của robot.

- Sử dụng các thông số về kích thước đã tính toán để thiết kế cơ khí cho robot để đảm bảo độ cứng vững và ổn định cho robot

Nghiên cứu về các bài toán quy hoạch quỹ đạo cho robot từ các tác giả có uy tín giúp xây dựng bài toán điều khiển robot phù hợp với thiết kế riêng của từng loại robot.

- Xây dựng điều khiển robot trên nhiều thiết bị khác nhau

Gia công robot theo thiết kế và tiến hành thử nghiệm là bước quan trọng để kiểm chứng các tính toán từ nghiên cứu lý thuyết Quá trình này bao gồm việc điều khiển robot hoạt động nhằm xác nhận tính chính xác và hiệu quả của các lý thuyết đã được nghiên cứu.

Cấu trúc bài báo cáo

Cấu trúc bài báo cáo cáo bao gồm 8 chương:

Chương 2: Tổng quan nghiên cứu đề tài

Chương 3: Cơ sở lý thuyết về robot chơi đàn piano

Chương 4: Phương hướng và các giải pháp về robot chơi đàn piano

Chương 5: Thiết kế robot chơi đàn piano

Chương 6: Các bài toán thiết kế robot

Chương 7: Thiết kế điều khiển

Chương 8: Kết quả thực nghiệm

Giới thiệu

Robot piano là gì ?

Robot piano là một thiết bị tự động có khả năng biểu diễn các bài hát trên đàn piano Nó được lập trình để đọc và phân tích nốt nhạc, sau đó nhấn các phím đàn để phát ra âm thanh Hiện nay, robot piano có thể hoạt động bằng cơ chế cơ học, điện tử hoặc kết hợp cả hai Ngoài việc trình diễn nhạc, robot piano còn hỗ trợ dạy học và giúp các nghệ sĩ, nhà soạn nhạc sáng tạo ra những tác phẩm mới.

Robot chơi đàn piano là một ứng dụng độc đáo của công nghệ robot trong âm nhạc Thiết bị này có khả năng tự động trình diễn các bản nhạc trên đàn piano mà không cần sự can thiệp từ con người, mang đến trải nghiệm âm nhạc mới lạ và hấp dẫn.

Sự hình thành của robot chơi đàn piano

Sự hình thành sơ khai của robot chơi đàn bắt đầu từ những năm 1800 với "The Musician", một sáng chế của nhà phát minh Pierre Jaquet-Droz Robot này có khả năng chơi piano thông qua các bộ phận cơ học và cơ chế đặc biệt, đánh dấu một bước đột phá công nghệ trong lĩnh vực âm nhạc Cùng thời điểm, "The Maillardet's Automaton" do Henri Maillardet phát triển cũng xuất hiện, cho phép tự động nhấn các phím piano để tạo ra âm thanh Hiện nay, các robot này được trưng bày tại những bảo tàng nổi tiếng như Bảo tàng Franklin ở Philadelphia và Bảo tàng Quốc gia của Scotland.

Hình 2 1: The Musician của Pierre Jaquet-Droz(Nguồn: Internet )

"The Musician" (Người chơi nhạc) của Pierre Jaquet-Droz là một trong ba tác phẩm nổi bật trong bộ sưu tập "Les Automates" Được chế tác vào thế kỷ 18, đây là một robot tự động có khả năng chơi các nhạc cụ như piano và hòa giọng Với cơ chế phức tạp, "The Musician" có thể di chuyển các ngón tay trên bàn phím piano, tạo ra âm thanh chính xác tương ứng với các nút được nhấn.

Tác phẩm "The Musician" của Pierre Jaquet-Droz là một kiệt tác nghệ thuật độc đáo, thể hiện sự kết hợp hoàn hảo giữa công nghệ tự động và tài năng điêu khắc tinh xảo Nó không chỉ là biểu tượng cho sự sáng tạo của Jaquet-Droz mà còn là minh chứng cho những tiến bộ vượt bậc trong lĩnh vực tự động hóa và công nghệ trong thời kỳ lịch sử đó.

Hình 2 2: Cơ cấu truyền động cơ học(Nguồn: Internet)

2.2 Đặc tính của robot chơi đàn piano

Robot chơi đàn piano được thiết kế với độ chính xác cao, cho phép tái tạo âm thanh chính xác và chơi nhạc đúng tempo Yếu tố chính xác này là rất quan trọng để tránh tình trạng rơ lắc và đảm bảo việc đánh phím không bị lệch Tùy thuộc vào thiết bị điện tử hoặc cơ khí, các phương pháp gia công khác nhau được áp dụng để đảm bảo lực đánh xuống phím đàn vừa phải, không quá mạnh cũng không quá yếu, nhằm bảo vệ cây đàn và tạo ra âm thanh tốt nhất.

Robot chơi đàn piano cần có khả năng linh hoạt trong di chuyển và chạm vào các phím, với độ linh hoạt phụ thuộc vào thiết kế và cấu tạo Điều này yêu cầu cơ cấu chuyển động và cảm biến để điều chỉnh độ cao, hướng di chuyển và lực chạm Một số robot có khả năng di chuyển các ngón tay riêng lẻ, giúp tái tạo âm thanh chính xác Chúng cũng có khả năng điều chỉnh tốc độ và cường độ chơi nhạc, tạo sự linh hoạt trong biểu diễn Tuy nhiên, độ linh hoạt của các robot này có thể khác nhau, với một số phiên bản chỉ tập trung vào chức năng cơ bản của việc chơi đàn piano.

Robot cần được thiết kế với tính ổn định cao trong quá trình chơi nhạc, đảm bảo khả năng duy trì vị trí và cân bằng tốt để không làm mất âm thanh hoặc ảnh hưởng đến chất lượng bản nhạc Cấu trúc chắc chắn và ổn định của robot là cần thiết để chịu được tải trọng và chuyển động khi đánh đàn Các bộ phận chuyển động và bàn tay robot cần được gắn kết vững chắc, tránh tình trạng lệch lạc hay lung lay trong quá trình hoạt động.

Lập trình hệ thống điều khiển robot cần được thực hiện một cách chính xác để đảm bảo chuyển động mượt mà và ổn định Các thuật toán và phương pháp điều khiển phải được điều chỉnh để robot di chuyển đồng bộ với âm thanh từ đàn piano Cơ cấu di chuyển và bàn tay của robot cần hoạt động trơn tru, với sự xem xét kỹ lưỡng về mô men xoắn, ma sát và độ bền của các bộ phận nhằm đảm bảo tính ổn định trong quá trình hoạt động.

Robot chơi đàn piano có khả năng tương tác với con người và khán giả bằng cách nhận diện tín hiệu âm thanh và chuyển động Chúng có thể đáp ứng cử chỉ và cảm xúc của người chơi, tạo ra trải nghiệm thú vị và đáng nhớ Tính tương tác này giúp robot thu hút sự chú ý và mang lại niềm vui, kết nối mọi người qua âm nhạc.

Một số robot chơi đàn piano hiện nay có khả năng học tập và cải thiện kỹ năng âm nhạc thông qua trí tuệ nhân tạo và thuật toán học máy Chúng có thể phân tích và nhận diện các mẫu âm thanh, từ đó điều chỉnh động tác chơi piano để tạo ra âm thanh tối ưu nhất.

2.3 Cấu tạo của robot chơi đàn piano

Cấu tạo của một robot chơi đàn piano có thể đa dạng tùy thuộc vào thiết kế cụ thể và công nghệ sử dụng

Robot chơi đàn piano được thiết kế với một khung chắc chắn để hỗ trợ cơ cấu chuyển động và các thành phần khác Cơ cấu chuyển động bao gồm bàn tay, ngón tay và các khớp, cho phép robot di chuyển và chạm vào các phím piano Hệ thống này có thể được điều khiển bằng động cơ, bộ truyền động hoặc hệ thống khí nén Ngoài ra, robot thường được trang bị một cây đàn piano truyền thống với bàn phím đầy đủ.

Hệ thống điều khiển của robot được lập trình bằng phần mềm và các thuật toán điều khiển, cho phép robot thực hiện các động tác chơi nhạc một cách chính xác Hệ thống này có khả năng tạo ra các nốt nhạc, động tác và các yếu tố khác của bản nhạc, đồng thời xử lý dữ liệu từ các cảm biến để điều chỉnh các động tác chơi piano một cách linh hoạt và tương ứng.

Hệ thống âm thanh là yếu tố quan trọng giúp robot chơi đàn piano tạo ra âm thanh chính xác khi chạm vào các phím Nó có thể bao gồm loa hoặc các thiết bị tái tạo âm thanh khác để phát lại âm thanh của đàn piano Ngoài ra, robot có thể được thiết kế để chơi trên nhiều loại đàn piano khác nhau.

Piano cơ truyền thống là loại đàn piano phổ biến, được trang bị bàn phím cơ và dây đàn Robot chơi đàn có khả năng được lập trình để tương tác với các phím của piano, sử dụng bàn tay cơ để biểu diễn âm nhạc trên đàn piano cơ.

Robot có thể được thiết kế để chơi piano điện tử, sử dụng cảm biến và mạch điện thay vì cơ chế truyền thống Điều này cho phép robot tương tác với các phím piano điện tử và tạo ra âm thanh tương ứng một cách chính xác.

Piano tự động, hay còn gọi là pianola hoặc player piano, là những nhạc cụ đã được phát triển từ lâu Các robot chơi đàn có khả năng lập trình để tương tác và biểu diễn trên những cây đàn piano tự động này, nhờ vào các cơ chế đặc biệt điều khiển bàn phím và pedal.

Cấu tạo của robot chơi đàn piano

Cấu tạo của một robot chơi đàn piano có thể đa dạng tùy thuộc vào thiết kế cụ thể và công nghệ sử dụng

Robot chơi đàn piano thường có khung chắc chắn để giữ các cơ cấu chuyển động và thành phần khác Cơ cấu chuyển động bao gồm bàn tay, ngón tay và các khớp, cho phép robot di chuyển và chạm vào các phím piano Cơ cấu này được điều khiển bằng động cơ, bộ truyền động hoặc hệ thống khí nén Robot được trang bị một cây đàn piano truyền thống với bàn phím đặc trưng.

Hệ thống điều khiển của robot được lập trình bằng phần mềm và các thuật toán điều khiển, cho phép thực hiện các động tác chơi nhạc Nó có khả năng tạo ra các nốt nhạc, động tác và các yếu tố khác trong một bản nhạc Hệ thống này còn có thể xử lý dữ liệu từ cảm biến để điều chỉnh các động tác chơi piano một cách chính xác.

Robot chơi đàn piano cần một hệ thống âm thanh chính xác để phát ra âm thanh khi chạm vào các phím Hệ thống này có thể bao gồm loa và các thiết bị tái tạo âm thanh khác nhằm mô phỏng âm thanh của đàn piano Ngoài ra, robot có thể được thiết kế để chơi trên nhiều loại đàn piano khác nhau.

Đàn piano cơ truyền thống là loại đàn piano phổ biến với bàn phím cơ và dây đàn Robot chơi đàn có khả năng được lập trình để tương tác với các phím piano, sử dụng bàn tay cơ để biểu diễn âm nhạc trên đàn piano cơ.

Robot có thể được thiết kế để chơi trên piano điện tử, sử dụng cảm biến và mạch điện thay vì cơ chế truyền thống Điều này cho phép robot tương tác với các phím piano điện tử và tạo ra âm thanh tương ứng.

Piano tự động, hay còn gọi là pianola hoặc player piano, đã được phát triển từ lâu Những chiếc đàn piano này cho phép robot được lập trình để tương tác và chơi nhạc, nhờ vào các cơ chế đặc biệt điều khiển bàn phím và pedal.

Robot chơi đàn piano có thể được thiết kế để tương thích với nhiều loại đàn khác nhau, tùy thuộc vào mục đích sử dụng Việc lập trình và cấu trúc robot cần phải phù hợp với từng loại đàn piano cụ thể, đảm bảo khả năng tương tác chính xác và nhạy bén với các phím và cơ chế của đàn.

Giao diện và kết nối: Robot chơi đàn piano có thể được trang bị giao diện người-máy để tương tác với người dùng

Robot chơi đàn piano cần một giao diện vật lý hoặc điện tử để tương tác hiệu quả với đàn Giao diện này có thể bao gồm cơ chế hoặc bàn tay đặc biệt để chạm vào các phím, hoặc cảm biến và mạch điện cho đàn điện tử Việc thiết kế giao diện cần đảm bảo tính chính xác và đáng tin cậy trong quá trình chơi đàn.

Robot chơi đàn piano có khả năng điều khiển qua nhiều giao thức và kết nối khác nhau, bao gồm kết nối có dây như USB và MIDI, cũng như kết nối không dây như Bluetooth và Wi-Fi Những kết nối này cho phép truyền tải dữ liệu điều khiển và tín hiệu âm nhạc giữa robot và đàn piano, với nguồn điều khiển có thể là từ máy tính hoặc thiết bị điều khiển khác.

Robot piano có khả năng kết nối với hệ thống điều khiển thông qua phần mềm hoặc giao thức tương ứng, cho phép lập trình và điều khiển robot thực hiện các chức năng cụ thể Điều này cũng giúp điều chỉnh các thông số âm nhạc và cấu hình khác một cách linh hoạt.

Giao diện người dùng cho robot chơi đàn piano có thể bao gồm màn hình cảm ứng hoặc các nút điều khiển, cho phép người dùng tương tác dễ dàng Người dùng có thể thay đổi chế độ chơi, chọn bài hát, điều chỉnh âm lượng và nhiều tùy chọn khác thông qua giao diện này.

Giao diện và kết nối của robot chơi đàn piano có thể được tùy chỉnh và điều chỉnh dựa trên thiết kế cụ thể và yêu cầu, nhằm đáp ứng nhu cầu và tính linh hoạt của hệ thống.

Các nghiên cứu liên quan đến đề tài

Các nghiên cứu trong nước

Robot chơi đàn piano tại Việt Nam đang trong giai đoạn phát triển, nhưng ứng dụng của chúng vẫn còn hạn chế.

Việt Nam đang nổi lên như một trung tâm công nghệ và nghiên cứu phát triển robot, với sự tham gia của nhiều tổ chức, trường đại học và doanh nghiệp trong việc nghiên cứu và phát triển các loại robot cho nhiều lĩnh vực khác nhau.

Thầy Đào Quang Khanh, giám đốc Trung tâm nghiên cứu ứng dụng tự động hóa ARACAT, là một giáo viên chuyên ngành tự động hóa với niềm đam mê chơi đàn organ Sự yêu thích âm nhạc của thầy đã dẫn đến những ý tưởng sáng tạo trong lĩnh vực tự động hóa Các đồng nghiệp trong trường thường gọi thầy là “robot playing organ” vì tài năng và sự kết hợp giữa công nghệ và nghệ thuật của thầy.

Chú robot được thiết kế với hai bàn tay gắn trên hệ thống điều khiển vị trí dọc theo phím đàn, với các ngón tay làm bằng nhựa Nó được trang bị thêm một chiếc đàn organ, bộ điều khiển kết nối và máy tính Khi được lập trình, chú robot có khả năng chơi bất kỳ bài hát nào và có thể kết hợp với các nhạc công khác cùng nhiều loại nhạc cụ như đàn guitar và kèn.

Hình 2 3: Thầy Đào Quang Khanh (phải) bên chú robot đang được hoàn thiện chờ ngày chính thức ra mắt - (Ảnh: Thu Hiền)

Trong tương lai, sự phát triển và ứng dụng robot chơi đàn piano tại Việt Nam có thể gia tăng, tuy nhiên, điều này còn phụ thuộc vào sự quan tâm và đầu tư từ các tổ chức nghiên cứu và công ty công nghệ trong nước.

Các nghiên cứu ngoài nước

Ngành robot chơi đàn piano đang phát triển mạnh mẽ ở nước ngoài, với sự quan tâm lớn từ các quốc gia trong việc khai thác tiềm năng công nghệ robot trong âm nhạc Nhiều nghiên cứu và dự án đang được triển khai, tạo ra những tiến bộ đáng kể giúp robot có khả năng chơi nhạc chuyên nghiệp và tương tác hiệu quả với con người.

Dưới đây là một số nghiên cứu và dự án liên quan đến robot chơi đàn piano được thực hiện tại các nước ngoài:

Hoa Kỳ dẫn đầu trong nghiên cứu và phát triển robot chơi đàn piano với sản phẩm Arpeggio, do Nick Morris, chủ sở hữu Majestic Piano Works ở California, sáng tạo ra Arpeggio, được gọi là 'Piano SuperDroid', có khả năng tự động căn chỉnh 88 ngón tay và chân trên bàn đạp, cho phép nó chơi với hơn 1.000 cấp độ biểu cảm và 256 vị trí bàn đạp Thiết bị này tái tạo chính xác các màn trình diễn piano của con người, thể hiện đầy đủ độ động và sắc thái của nghệ sĩ piano đẳng cấp thế giới, nhờ vào công nghệ tiên tiến của Wayne Stahnke.

Hình 2 4: Arpeggio Piano SuperDroid (Nguồn: TeoTronica)

Nhiều trường đại học và tổ chức nghiên cứu, như UC Riverside và Georgia Tech, đang thúc đẩy phát triển robot chơi đàn piano Robot này sử dụng bộ nhớ RAM hoạt động bằng khí, giảm thiểu sự phụ thuộc vào điện tử cứng Các nhà nghiên cứu tại UC Riverside đã phát triển bộ nhớ máy tính khí nén giúp robot mềm chơi đàn piano Thay vì sử dụng các bộ khuếch đại và mạch điện thông thường, bộ nhớ "hoạt động bằng khí" sử dụng van microfluidic để điều khiển luồng không khí, với áp suất trong van đại diện cho giá trị nhị phân Bộ nhớ này có cấu trúc phức tạp đủ để hoạt động như chip RAM 8-bit, cho phép robot chơi bài "Mary Had a Little Lamb" với tốc độ chậm nhưng ổn định.

Sự thiếu áp suất dương trong robot khí nén mang lại tính an toàn cao, loại bỏ nguy cơ bộ nhớ nổ trong quá trình sử dụng Để nâng cao tính phức tạp và tốc độ, robot cần phiên bản mềm của bộ xử lý và các thành phần khác, từ đó giảm thiểu sự phụ thuộc vào điện tử cứng Mục tiêu là phát triển bộ nhớ khí nén nhằm giảm thiểu sự cần thiết của chip trong robot mềm, mở ra tương lai cho robot linh hoạt hoàn toàn, an toàn và không gây thương tích trong các va chạm.

Hình 2 5: Robot sử dụng bộ nhớ RAM hoạt động bằng khí để chơi đàn piano (Nguồn:

Nhật Bản là quốc gia tiên phong trong lĩnh vực robot và âm nhạc, với nhiều dự án nghiên cứu tại các trường đại học như Đại học Tokyo và các công ty công nghệ như Yamaha Họ đang phát triển robot chơi đàn piano có khả năng tương tác và biểu diễn âm nhạc chuyên nghiệp Một ví dụ tiêu biểu là robot RIBA-II của Đại học Tokyo, được thiết kế để hỗ trợ con người trong các hoạt động hàng ngày, bao gồm cả việc chơi piano, với khả năng chạm vào các phím và tạo ra âm thanh.

Châu Âu đang chứng kiến sự phát triển mạnh mẽ trong lĩnh vực robot chơi đàn piano, với nhiều dự án nghiên cứu và phát triển tại các quốc gia như Anh, Ý và Đức Sự hợp tác giữa các trường đại học, viện nghiên cứu và công ty công nghệ đóng vai trò quan trọng trong việc thúc đẩy tiến bộ của công nghệ này.

RoboPiano là một robot đàn piano tự động được phát triển bởi đại học Hertfordshire, Anh, có khả năng chơi những bản nhạc phức tạp Robot này sử dụng cảm biến và thuật toán tiên tiến để nhận diện các nốt nhạc và điều chỉnh động tác chơi piano một cách chính xác.

Hình 2 6: Robot Teotronico chơi đàn piano (Nguồn: Teotronico)

Teotronico, một dự án robot chơi đàn piano của Công ty Teotronico (Ý), là một sản phẩm công nghệ tiên tiến và phức tạp Robot này không chỉ có khả năng chơi piano mà còn có thể thể hiện nhiều loại nhạc cụ khác Với việc áp dụng cảm biến và hệ thống điều khiển tinh vi, Teotronico tái tạo âm thanh một cách chính xác và biểu diễn các bài nhạc một cách ấn tượng.

CHƯƠNG 3: PHƯƠNG HƯỚNG VÀ CÁC GIẢI PHÁP VỀ ROBOT CHƠI ĐÀN

Yêu cầu của đề tài

Đề tài này nhằm mục đích kết hợp giải trí và giáo dục, do đó, một robot chơi đàn piano cần đáp ứng các yếu tố quan trọng do người yêu cầu đưa ra.

- Đảm bảo có khả năng mô phỏng quá trình chơi các bản nhạc piano khi được đề ra

- Không gây quá nhiều tiếng ồn trong quá trình hoạt động

- Có khả năng tương tác với khán giả khi biễu diễn

- Sản phẩm có khả năng tháo lắp để đem đi nhiều nơi khác nhau để phục vụ nhu cầu biểu diễn và giáo dục ở nhiều nơi khác nhau

- Sản phẩm đảm bảo mang tính sáng tạo cao.

Phương án và giải pháp thực hiện

Lựa chọn phương án tương tác với khán giả khi biễu diễn

Nhóm đã xem xét nhiều yếu tố khi lựa chọn phương án tương tác với khán giả trong quá trình biểu diễn Ban đầu, họ chọn phương án 3, nhưng sau khi nghiên cứu các đồ án và bản thực nghiệm, nhóm nhận thấy sản phẩm không đạt hiệu quả mong muốn và tốn nhiều thời gian chỉnh sửa với nhiều lỗi nhỏ Thêm vào đó, phương án 3 đòi hỏi chi phí cao để gia công chính xác các chi tiết cơ cấu bánh răng Do ngân sách hạn chế và mong muốn thử nghiệm phương án mới, nhóm quyết định chuyển sang phương án 2 để phát triển đầu robot tương tác với khán giả Ưu điểm nổi bật của phương án 2 so với các phương án khác là

- Đảm bảo được tính sáng tạo cao, đem đến sự hứng thú cho khán giả khi tương tác với robot trong quá trình biểu diễn

- Không đem lại cảm giác đơ cứng khi hoạt động nhằm tránh việc gây nhàm chán

Góc độ quay khớp cổ linh hoạt cho phép tạo ra nhiều góc nhìn khác nhau, từ đó tăng cường khả năng tương tác chân thật với khán giả.

- Vì các chi tiết không cần gia công quá chính xác nên cũng có thể giảm được giá thành gia công và thử nghiệm

Việc lắp đặt khớp cổ và khuôn mặt robot theo phương án 2 có thể gặp sai lệch, nhưng trong quá trình hoạt động, mức độ sai lệch này thường không đáng kể và khó bị phát hiện.

Cách khắc phục nhược điểm phương án 2:

Mô hình chuyển động của Stewart Platform có độ phức tạp cao, đòi hỏi quá trình mô phỏng và lập trình tốn nhiều thời gian và kỹ năng Nhóm đã dành nhiều thời gian để nghiên cứu và bắt đầu thử nghiệm sớm nhằm phát hiện và khắc phục các lỗi sai.

Quá trình thiết kế robot chơi đàn piano được thực hiện thông qua các phần mềm chuyên dụng và máy móc hiện có Nhóm thiết kế thử nghiệm nhiều bản khác nhau và tham khảo ý kiến từ giảng viên hướng dẫn để phát triển bản thiết kế tối ưu nhất, nhằm nâng cao khả năng tương tác với khán giả.

Cơ sở lý thuyết

Phần đầu robot

Robot song song được thiết kế với cấu trúc hiệu suất cao, mang lại độ ổn định, độ cứng và độ chính xác vượt trội Với ba hoặc nhiều khớp quay hoạt động song song, robot này đã chứng tỏ khả năng trong các ứng dụng như mô phỏng chuyến bay và thiên văn học Sự phổ biến của chúng trong ngành công nghiệp tự động hóa ngày càng tăng nhờ vào khả năng di chuyển linh hoạt và đồng thời, giúp nâng cao tốc độ, độ chính xác và khả năng tải trọng.

Sau những tiến bộ ban đầu của các nền tảng Stewart trong quy trình công nghiệp, công ty Redifon đã phát triển các biến thể của chúng, đặc biệt khi Lufthansa German Airlines yêu cầu sản xuất một máy mô phỏng chuyến bay cho đội máy bay Boeing 727 Mô hình máy mô phỏng này được thiết kế với ba trục, cho phép tái tạo chính xác hành vi của máy bay Từ khi bắt đầu hoạt động vào năm 1949, Redifon đã liên tục sản xuất máy mô phỏng chuyến bay, đào tạo viên và phát triển các kỹ thuật mới.

Hình 3 11: Stewart Platfrom được ứng dụng trong thiên văn học (Nguồn: Internet)

Robot song nổi tiếng nhất là bệ di động điều khiển bằng sáu bộ truyền động tuyến tính, thường được sử dụng trong các ứng dụng mô phỏng chuyến bay Bệ này còn được biết đến với tên gọi Stewart platform hoặc Gough – Stewart platform, được đặt theo tên các kỹ sư đã thiết kế và phát triển nó.

Hình 3 12: Stewart Platfrom được sử dụng công mô phỏng bay (Nguồn: Internet)

Some popular types of parallel robots include the Stewart Platform, Delta Robot, and Gantry Robot Each of these robots features unique structures and applications tailored to specific uses.

Phần bàn tay robot

Ngón tay được thiết kế theo nguyên lý bản lề, sử dụng cơ cấu thanh phẳng toàn khớp thấp Cơ cấu này bao gồm khớp động nối giữa các khâu, trong đó khớp tịnh tiến loại 5 hay khớp bản lề đóng vai trò quan trọng.

Cơ cấu thanh phẳng toàn khớp thấp được sử dụng nhiều trong thực tế kỹ thuật

Cơ cấu culit trong máy bào

Cơ cấu tay quay – con trượt trong động cơ đốt trong, máy ép trục khuỷu, … Ưu điểm:

- Thành phần tiếp xúc là mặt nên áp suất tiếp xúc nhỏ, bền mòn và khả năng truyền lực cao

- Chế tạo đơn giản và công nghệ gia công khớp thấp tương đối hoàn hảo, chế tạo và lắp

- Việc thiết kế các cơ cấu này theo những điều kiện cho trước rất khó, khó thực hiện chính xác bất kỳ qui luật chuyển động cho trước nào

Hình 3 13: Cơ cấu 4 khâu bản lề.[2]

Khâu cố định gọi là giá: khâu 4

Khâu đối diện với khâu cố định được gọi là thanh truyền, có chuyển động song phẳng, cụ thể là khâu 2 Hai khâu còn lại được phân loại thành tay quay nếu có khả năng quay một vòng hoàn chỉnh, hoặc cần lắc nếu không thể quay trọn vẹn.

Bàn tay robot được thiết kế đứng yên khi đánh phím đàn, giúp đảm bảo tính ổn định và định vị chính xác, giảm thiểu sai số trong quá trình hoạt động Thiết kế này cho phép thực hiện các bài nhạc phức tạp với tốc độ nhanh mà không thiếu hợp âm, nhờ vào khả năng sử dụng nhiều ngón tay Hơn nữa, việc giữ bàn tay robot cố định giúp giảm chi phí sản xuất và bảo trì, đồng thời đơn giản hóa thiết kế so với các hệ thống bàn tay di chuyển phức tạp, tăng tính khả thi cho các ứng dụng rộng rãi hơn.

Hình 3 14: Robot Teotronico chơi piano với 19 ngón tay cố định (Nguồn: Teotronico)

Robot chơi đàn piano với bàn tay đứng yên gặp phải một số hạn chế, bao gồm thiếu khả năng di chuyển và linh hoạt của các ngón tay Điều này dẫn đến việc không thể đánh đầy đủ các hợp âm và chỉ thực hiện được một số bài nhất định, từ đó làm giảm sự biểu đạt và đa dạng trong việc chơi nhạc.

Bàn tay robot được thiết kế dựa trên cơ cấu tịnh tiến, cho phép tạo ra chuyển động thẳng mà không xoay quanh trục nào, mang lại sự đơn giản và đáng tin cậy trong các ứng dụng máy móc Cơ cấu trượt của bàn tay robot bao gồm thanh trượt cố định trên khung và các con trượt di chuyển, giúp bàn tay có khả năng di chuyển trong một phạm vi nhất định Nhờ vào thiết kế này, robot có thể đánh đàn piano, di chuyển linh hoạt để chạm vào các phím khác nhau, từ đó tạo ra âm nhạc phức tạp và đa dạng hơn.

Hình 3 15: Người máy nhân hình Wabot-II chơi piano [3]

Robot chơi đàn có bàn tay chuyển động mang lại nhiều lợi ích nhưng cũng tồn tại nhược điểm cần xem xét Cấu trúc phức tạp hơn so với robot có bàn tay đứng yên dẫn đến yêu cầu về quy mô, thiết kế và lắp ráp cao hơn, từ đó phát sinh chi phí và thời gian trong quá trình sản xuất Bên cạnh đó, bàn tay chuyển động có nguy cơ gặp sự cố hoặc hỏng hóc cao hơn, đòi hỏi bảo trì thường xuyên cho các bộ phận như trục, ổ bi, và đai Việc điều khiển chuyển động của bàn tay robot cũng yêu cầu kiến thức lập trình và quản lý hệ thống phức tạp, khiến chi phí cho robot chơi đàn piano có bàn tay chuyển động thường cao hơn so với loại bàn tay đứng yên.

CHƯƠNG 4: THIẾT KẾ ROBOT CHƠI ĐÀN PIANO

Thiết kế bàn tay robot

Tính toán, thiết kế ngón tay robot

Dựa vào kích thước tiêu chuẩn của phím đàn từ nhà sản xuất, chúng ta có thể xác định các kích thước cần thiết để thiết kế ngón tay thông qua cơ cấu 4 khâu bản lề Tuy nhiên, do việc tìm kiếm kích thước phù hợp cho từng khâu trong cơ cấu 4 khâu bản lề gặp khó khăn, nên việc lựa chọn một số kích thước nhất định dựa trên kích thước phím đàn tiêu chuẩn là cần thiết.

Hình 4 1: Kích thước tiêu chuẩn của phím đàn

Chúng tôi đã sử dụng phần mềm Geogebra để mô phỏng động học với các kích thước đã được xác định trước, từ đó xác định không gian hoạt động và suy ra quỹ đạo di chuyển của đầu công tác.

Hình 4 2: Không gian hoạt động của đầu ngón tay mô phỏng trên phần mềm Geogebra

Phần màu đen như trên hình 4.2 là không gian hoạt động của đầu công tác khi cả hai

Solenoid hoạt động ngẫu nhiên và không đồng thời, do đó cần mô phỏng lại trình tự hoạt động của nó để xác định hành trình của đầu công tác Mỗi hành trình của đầu công tác khoảng 20mm, điều này là đủ để nhấn phím đàn.

Đàn piano có nhiều cấu trúc và thiết kế khác nhau, với lực nhấn phím thường dao động từ 45-60 gram tùy thuộc vào từng loại đàn Điều này dẫn đến sự khác biệt trong lực cần thiết để nhấn một phím đàn.

Phân tích lực trên ngón tay

Ta cho lực nhấn của phím đàn lớn nhất là: 60 (g)

=>> F Y K = 0.6 (N) Áp dụng momen lực tại điểm H ta có:

M H = − d DH x cos(2) x F Y D − d DH x sin(2) x F X D + d HK x cos(2) x F Y K = 0 (N)

Lực cần tác dụng tại vị trí của Solenoid: 1.54 (N)

Hình 4 4: Hành trình ngón tay đánh nốt đen

Lực nhấn F solenoid lệch không quá nhiều so với với lực F Y D

Ta cho lực nhấn của phím đàn lớn nhất là: 60 (g)

=>> F X K = 0.6 (N) Áp dụng momen lực tại điểm H ta có:

40 x cos(2) = 1.5 (N) Lực cần tác dụng tại vị trí của Solenoid:

Với thông số tính và hành trình tìm được trên phần mềm Geogebra

Với thông số tính được ta chọn Solenoid JF – 0730B 24V (loại nhỏ nhất)

Hình 4 5: Solenoid được đùng để chơi đàn

Bảng 4 1: Thông số kỹ thuật Solenoid

Kích thước 30 x 14 x 17 mm Điện áp định mức DC 24V

Loại Kéo đẩy Đường kính trục 6.3mm Đường kính lỗ lắp 2.5mm

Lực và hành trình 5 N / 10mm

Bảng 4 2: Khối lượng chi tiết qua các vật liệu khác nhau

Vật liệu nhôm có khối lượng gần gấp đôi so với nhựa PETG, điều này có thể ảnh hưởng đến lực nhấn của solenoid và khả năng hoạt động của lò xo trả về Nhựa PETG dễ dàng gia công hơn thông qua phương pháp in 3D, trong khi nhôm yêu cầu công nghệ CNC từ ba trục trở lên Do đó, về mặt kinh tế và hiệu quả, in nhựa PETG là phương án tối ưu hơn cho việc sản xuất.

Hình 4 6: Hành trình ngón tay di chuyển từ nốt trắng đến nốt đen

• Thiết kế vị trí đặt ngón tay

Để đảm bảo an toàn khi chơi đàn, bề rộng tối đa của ngón tay nên được thiết kế là 20 mm, trong khi bề rộng của mỗi phím đàn là 22 mm, giúp tạo khoảng cách tối thiểu 2 mm giữa các ngón liền kề Việc này không chỉ tránh được sự cố mà còn bảo vệ các ngón tay khỏi hư hỏng Hơn nữa, cần phải tính toán và bố trí các ngón tay một cách tối ưu để có thể chơi đầy đủ các hợp âm, từ đó tạo ra nhiều bài nhạc hay hơn.

Việc tính toán và thiết kế vị trí đặt ngón tay trên đàn piano dựa vào hợp âm trưởng và hợp âm thứ là rất quan trọng Mục tiêu là tối ưu hóa hành trình di chuyển của ngón tay, nhằm đảm bảo có thể chơi tất cả các hợp âm trưởng và hợp âm thứ trong một tác phẩm Điều này giúp người chơi nâng cao hiệu suất và sự linh hoạt khi biểu diễn.

Hình 4 7 Hợp âm trưởng và hợp âm thứ trong hợp âm chơi đàn piano (Nguồn: Internet)

• Vị trí hợp âm trưởng:

• Vị trí hợp âm thứ:

Sau khi phân tích thông số vị trí các hợp âm, ta thu được thông số thiết kế vị trí ngón tay như sau

Tính toán bắt đầu từ tâm ngón tay đầu tiên với vị trí x = 0 và chiều dương hướng sang phải, ta xác định được thông số tâm của các ngón tay.

• Ngón 0: Vị trí đặt tâm tại điểm x = 0 mm

• Ngón 1: Vị trí đặt tâm tại điểm x = 38 mm

• Ngón 2: Vị trí đặt tâm tại điểm x = 71 mm

• Ngón 3: Vị trí đặt tâm tại điểm x = 84 mm

• Ngón 4: Vị trí đặt tâm tại điểm x = 107 mm

• Ngón 5: Vị trí đặt tâm tại điểm x = 153 mm

Hình 4 8: Thiết kế vị trí ngón tay trên phần mềm inventor.

Tính toán và lựa chọn động cơ

Dựa vào tính toán trên phần mềm Inventor, khối lượng mà động cơ cần kéo được xác định là 0.961 kg Do đó, chúng tôi đã chọn khối lượng 1 kg, lớn hơn so với kết quả tính toán của phần mềm.

Hình 4 10:Hệ số ma sát (Nguồn: internet)

Trọng lực của bàn tay là 1 kg = 10 (N)

Lực cần thiết để kéo bàn tay từ trạng thái nghỉ:

𝐹 𝑚𝑠 = 𝜇 x N Trong đó: 𝐹 𝑚𝑠 : Lực ma sát (N)

𝜇: hệ số ma sát tĩnh

Do sử dụng con trượt và ray trượt, nên hệ số ma sát tính 𝜇 = 0.2

𝐹 𝑚𝑠 = 4𝜇 x N = 4 x 0.2 x 10 = 8 (N) (vì sử dụng 4 con trượt) Momen để kéo động cơ của một vật

𝑀 = 𝐹 𝑚𝑎𝑥 x r Trong đó: M: momen của động cơ cần để kéo vật (Nm) r: khoảng cách từ trục động cơ đến vị trí đặt lực (m)

Vì sử dụng puly có đường kính 24.8 mm nên r = 12.4

Để tính mô men xoắn, ta sử dụng công thức 𝑀 = 𝐹 𝑚𝑎𝑥 x r, với kết quả là 99.2 Nmm, tương đương 0.0992 Nm Dựa vào các thông số tính toán và sự phổ biến của động cơ, cùng với yếu tố kinh tế, chúng tôi quyết định chọn động cơ bước 57HS21A.

Hình 4 11: Động cơ bước 57HS21A

Thông số của động cơ bước dưới đây

Bảng 4 3: Thông số động cơ step 57HS21A

Số dây 4 dây Đường kính trục 8 mm

Thiết kế đầu robot tương tác

Thông số ban đầu

thiết kế bộ chuyển động mắt bằng servo của Nilheim Machatronics để thiết kế nên đầu tương tác robot phù hợp nhất cho robot chơi đàn piano.[4]

Hình 4 12: Mô hình lắp ghép chuyển động hai mắt của Nilheim Machatronics

Nhóm đã hoàn thiện mô hình nguyên prototype bằng cách cải thiện các chi tiết còn yếu và bổ sung thêm những yếu tố cần thiết để tăng cường sự tương tác cảm xúc với khán giả trong quá trình biểu diễn của robot chơi đàn piano.

Bệ đỡ chân mày và chân mày của robot đóng vai trò quan trọng trong việc tăng cường cảm xúc của robot Việc chỉ tương tác bằng mắt có thể không mang lại cảm giác chân thật, nhưng các chân mày co duỗi giúp thể hiện rõ hơn các trạng thái vui buồn, từ đó làm cho robot trở nên gần gũi và có tính cảm xúc hơn trong quá trình giao tiếp với khán giả.

Miệng robot được thiết kế để mô phỏng chuyển động lên xuống, phản ánh cảm xúc vui và buồn của con người Sự kết hợp giữa miệng, mắt và chân mày giúp tạo ra cảm giác chân thật và sống động cho robot.

Lớp vỏ ngoài của đầu robot được thiết kế để bảo vệ các cơ cấu cơ khí bên trong, giúp điều khiển chuyển động của mắt và chân mày Đồng thời, lớp vỏ này cũng có thể được trang trí để tăng tính thẩm mỹ và sự hấp dẫn cho đầu robot tương tác.

Hình 4 13: Mô phỏng chân mày cho đầu tương tác robot

Hình 4 14: Mô phỏng vỏ ngoài cho đầu tương tác robot

Hình 4 15: Tính toán khối lượng đầu của đầu công tác robot trên phần mềm Inventor

Sau quá trình lắp ghép robot trên phần mềm mô phỏng, khối lượng đầu robot tương tác đã được tính toán ≈ 0.545 kg

Trọng lượng lắp ghép đầu robot thực tế là ≈ 0.57 kg

Thiết kế bộ truyền động khớp cổ

Trọng lượng đầu robot được tính toán qua phần mềm mô phỏng là khoảng 0.545 kg, trong khi trọng lượng thực tế của đầu robot sau khi lắp ghép và cân là khoảng 0.57 kg.

Góc cổ chuyển động quay tuyến tính qua lại quay quanh trục x là -12 đến +12

Góc cổ chuyển động quay tuyến tính qua lại quay quanh trục y là -12 đến +12

Góc cổ chuyển động quay tuyến tính qua lại quay quanh trục z là -10 đến +10

Dựa trên các thông số kỹ thuật yêu cầu, việc chọn bộ truyền tuyến tính cần đảm bảo đáp ứng phạm vi hoạt động đã được xác định từ đầu.

Hình 4 16: Các mô hình dựa trên Stewart Platform

Nhóm đã lựa chọn mô hình tổng hợp giữa loại 6-6 và loại 6-3 từ các mô hình dựa trên Stewart Platform để phát triển và chế tạo, nhằm mô phỏng chuyển động cho khớp cổ robot.

Nhưng trong thực tế khi chế tạo dựa trên Stewart Platform, mô hình thuần túy như loại 6-

Mô hình 6-6 rất ít được sử dụng, nhưng có thể tạo ra sự pha trộn giữa loại 6-6 và 6-3 Phân tích sâu từ các mô hình thực tế cho thấy rằng một Stewart Platform 6-6 thuần túy với khoảng cách các trục 60 độ giữa các khớp không ổn định do thiếu sự cân bằng lực, dẫn đến mặt phẳng xoay trên cùng không đồng bộ với trục của nó.

Mô hình tổng hợp giữa loại 6-6 và loại 6-3 đã được phát triển nhằm cân bằng lực và ổn định hệ robot trong quá trình chuyển động Mặc dù mô hình này hạn chế góc quay hơn so với hai loại mô hình thuần túy, nhưng nó lại rất phù hợp cho đầu tương tác robot, nơi chỉ cần một góc quay nhỏ để tạo hiệu ứng tương tác với khán giả và đảm bảo độ ổn định cao trong hoạt động.

Hình 4 17: Tọa độ điểm đặt trục x, y, z trên mô hình nền tảng Stewart

Với tải trọng khoảng 0.57 kg, lực tải yêu cầu không quá cao so với khả năng của nhiều động cơ thông dụng, đồng thời góc quay của đầu cũng không lớn.

Dựa vào hình 4.17, các điểm B1, B2, B3, B4, B5, B6 được xác định là vị trí đặt tâm động cơ để hỗ trợ bệ đầu tương tác robot Việc sử dụng thanh truyền kết hợp với vòng bi mắt trâu giúp kết nối động cơ với mặt phẳng x’ Oy’ của bệ đầu Các điểm đặt này được lựa chọn và tính toán dựa trên nguyên lý của Stewart Platform.

Để vận hành khớp cổ với khối lượng tải khoảng 0.57 kg, động cơ servo MG90s là lựa chọn phù hợp Động cơ MG90s sở hữu các thông số kỹ thuật tối ưu cho nhu cầu này.

- Điện áp hoạt động: 4.8 ~ 6VDC

- Mô men xoắn: 1.8 kg/cm (ở điện áp 4.8V), 2.2 kg/cm (ở điện áp 6V)

- Tốc độ làm việc: 0.1 giây/60 độ (ở điện áp 4.8V), 0.08 giây/60 độ (ở điện áp 6V)

- Độ dài dây nối: 175mm

Với khả năng tải moment xoắn được công bố là M = 1.8 kg/cm tại điện áp 4.8V, động cơ servo hoạt động với nguồn điện 5V, do đó moment xoắn thực tế đạt được là M = 1.8 x 5.

4.8 = 1.875 kg/cm Mỗi cánh tay servo là = 11.166 mm = 1.116 cm

Với thông số cánh tay servo và moment lực đã được tính toán, ta có thể xác định được moment xoắn cực đại mà servo MG90s có thể đạt được ở mỗi đầu cánh tay servo khi hoạt động ở điện áp 5V trong điều kiện lý tưởng.

Động cơ servo MG90s có khả năng tải khoảng 1.68 kg/cm, cho thấy nó đủ công suất để di chuyển khớp cổ Chúng tôi đã tiến hành thử nghiệm động cơ MG90s trong việc điều khiển chuyển động của khớp cổ thông qua một mô hình thực tế.

Thông qua quá trình thử nghiệm mô hình thực tế chuyển động đầu tương tác robot cho thấy động cơ servo MG90s hoạt động ổn định và tốt

Nhóm nghiên cứu đã tiến hành lắp ghép thử nghiệm và mô phỏng chuyển động khớp cổ của đầu robot tương tác Kết quả mô phỏng cho thấy robot hoạt động ổn định, không gặp hiện tượng rung lắc hay đứng yên trong quá trình hoạt động.

Lựa chọn vật liệu cho các chi tiết thiết kế

Trong quá trình lựa chọn vật liệu cho tấm nền và tấm đáy của Stewart Platform, nhóm đã cân nhắc nhiều yếu tố như trọng lượng nhẹ, chi phí thấp, độ bền, khả năng sản xuất dễ dàng, tính phổ biến tại địa phương và khả năng trang trí Kết quả, ba loại vật liệu được chọn là gỗ, nhựa in 3D PETG và nhôm, vì chúng phù hợp nhất và dễ gia công tại địa phương.

Quá trình thiết kế và tính toán cho thấy trọng lượng đóng vai trò quan trọng trong ứng dụng của Stewart Platform Việc giảm trọng lượng của các tấm nền không chỉ giúp giảm trọng lượng tổng thể của hệ thống mà còn ảnh hưởng đến khả năng chịu tải của động cơ.

Bảng 4 4: Khối lượng của một số chi tiết qua các vật liệu khác nhau

Chi tiết Gỗ Nhựa in 3d PETG Nhôm

Từ Bảng 4.4, xét về yếu tố khối lượng ta thấy vật chỉ có hai vật liệu phù hợp nhất là gỗ và nhựa in 3d PETG

Khi lựa chọn giữa gỗ và nhựa in 3D PETG, gỗ có giá thành rẻ hơn 2.5 lần so với nhựa cho cùng một khối lượng Tuy nhiên, đối với các chi tiết nhỏ và gia công phức tạp, chi phí gia công gỗ có thể cao hơn so với nhựa PETG Về mặt thẩm mỹ, nhựa PETG có bề mặt bóng và dễ dàng trang trí, cùng khả năng thay đổi màu sắc, giúp tăng tính thẩm mỹ cho sản phẩm Đối với độ bền, nếu sản phẩm không yêu cầu tính bền cao, yếu tố này sẽ không ảnh hưởng nhiều đến việc lựa chọn giữa gỗ và nhựa in 3D PETG.

Nhựa in 3D PETG là lựa chọn tối ưu nhờ vào trọng lượng nhẹ, chi phí vật liệu hợp lý và khả năng gia công dễ dàng với các máy in.

Tính toán bền của bộ truyền động khớp cổ

Mô hình Stewart Platform sử dụng 12 vòng bi mắt trâu để đảm bảo chuyển động trơn tru tại mỗi điểm chuyển động Những vòng bi này kết nối các thanh truyền từ động cơ servo MG90s đến mặt phẳng đỡ đầu công tác của robot, giúp tối ưu hóa hiệu suất hoạt động của hệ thống.

Mô hình tiêu chuẩn cho động cơ servo và vòng bi mắt trâu được tạo ra thông qua thiết kế trên phần mềm Inventor, nhằm đạt kết quả thực tế nhất Các lắp ghép tổng quát của mô hình đã được hoàn thành và gán các vật liệu tương ứng Tuy nhiên, các mô phỏng chỉ cung cấp ước tính về vật liệu gần giống với thực tế do nhà cung cấp chưa xác định rõ vật liệu sử dụng.

Sau khi xác định các vật liệu cho từng chi tiết, các điều kiện mô phỏng như ràng buộc vị trí, bề mặt và lực áp dụng sẽ được thiết lập Lực áp dụng ước tính sẽ được đặt lên bề mặt đỡ đầu của robot, với phân phối tải trọng không đồng đều do đầu tương tác có xu hướng nghiêng về phía trước Từ các tính toán, mô men xoắn cực đại của mỗi động cơ servo MG90s là M max ≈ 1.68 kg/cm, cho thấy mỗi động cơ có thể chịu tải trọng 1.68 kg tại vị trí cánh tay công tác Sau khi đo, đầu robot nặng khoảng 0.57 kg, và khi áp dụng lực tương đương khối lượng này lên một phía của mặt công tác, mô phỏng sẽ được thực hiện như đã nêu.

Hình 4 19: Tính toán chuyển vị của mặt trên bệ đỡ cổ

Quá trình mô phỏng bằng phần mềm cho thấy rằng các tính toán về độ chuyển vị, mô men xoắn và hệ số an toàn không dẫn đến hiện tượng đứt gãy của các trục.

Từ quá trình mô phỏng trên ta lựa chọn được kích thước, thông số trục và vòng bi mắt trâu như sau:

Bảng 4 5: Bảng tra kích thước bi mắt trâu ren trong M3

✓ Vòng bi mắt trâu ren trong M3

4.3 Thành phần cơ khí và điện

4.3.1 Thành phần cơ khí cấu thành khung tay và khớp cổ robot

Sản phẩm có thiết kế dễ dàng tháo lắp và di chuyển, cùng với kết cấu nhôm nhẹ, giúp người dùng thuận tiện trong việc sử dụng và cố định.

Bề mặt nhôm định hình nhẵn bóng không chỉ mang lại tính thẩm mỹ cao mà còn có khả năng chống trầy xước và chịu lực tốt, từ đó nâng cao tuổi thọ và độ bền của sản phẩm.

Có thể kết hợp nhôm định hình với nhiều thiết bị cơ khí khác nhau như ray trượt, ốc T cố định và ke góc nhôm định hình, mang lại sự linh hoạt trong việc ứng dụng nhôm định hình cho các nhu cầu đa dạng.

Hình 4 20: Kích thước nhôm định hình 30x30 (Nguồn: Internet)

• Các chi tiết liên kết – cố định

In nhựa 3D là quá trình sản xuất chi tiết hoặc khối từ nhựa thông qua máy in 3D, dựa trên dữ liệu thiết kế 3D đã được tạo ra trước đó Máy in 3D sẽ xây dựng từng lớp để hình thành một hoặc nhiều chi tiết từ dữ liệu thiết kế ban đầu Ưu điểm của việc in 3D bằng nhựa bao gồm khả năng tạo ra các sản phẩm phức tạp, tiết kiệm thời gian và chi phí sản xuất, cũng như dễ dàng tùy chỉnh theo nhu cầu.

Công nghệ in 3D mang lại độ chính xác cao, cho phép sản xuất các sản phẩm phức tạp với khả năng sử dụng và hoạt động ổn định.

- Tính chất linh hoạt: In 3D cho phép sản xuất ra các chi tiết có kích thước, hình dáng, khối lượng khác nhau

Sản phẩm in 3D giúp tiết kiệm thời gian và chi phí, vì chúng thường được sản xuất nhanh hơn và với chi phí thấp hơn so với các phương pháp sản xuất truyền thống.

Trong quá trình in nhựa 3D, không cần sử dụng các công cụ đặc biệt hay đồ gá phức tạp như trong sản xuất truyền thống Chỉ cần các loại đồ mài đơn giản để gia tăng độ chính xác và thẩm mỹ cho sản phẩm.

- Ít chất thải: Quá trình tạo ra sản phẩm của in 3D nó tạo ra sản phẩm với rất ít chất thải

Sản phẩm in 3D đóng vai trò như một bản thử nghiệm trước khi tiến hành sản xuất hàng loạt, giúp xác định và giảm thiểu lỗi trong quá trình sản xuất Việc này cho phép các nhà sản xuất phát hiện các vấn đề tiềm ẩn và điều chỉnh thiết kế trước khi đưa sản phẩm ra thị trường.

Máy in 3D mang lại lợi thế cạnh tranh vượt trội cho doanh nghiệp nhờ tính đa dụng, giúp giảm đáng kể chi phí phát triển sản phẩm trong thời gian ngắn Điều này cho phép doanh nghiệp đáp ứng hiệu quả nhu cầu đa dạng của khách hàng về sản xuất các sản phẩm và chi tiết in 3D.

Phương pháp gia công chi tiết in 3D bằng nhựa rất phù hợp cho việc chế tạo robot piano nhờ vào những ưu điểm vượt trội Các chi tiết của robot piano thường có kích thước nhỏ và thiết kế phức tạp, trong khi yêu cầu về khả năng chịu lực và chịu tải không quá cao.

• Thanh trượt ray tuyến tính

Thanh trượt ray là thiết bị thiết yếu trong việc dẫn hướng chuyển động của các chi tiết máy và thiết bị công nghiệp, giúp tối ưu hóa quá trình hoạt động của máy móc, mang lại sự dễ dàng, thuận tiện và chính xác hơn trong công việc.

Thành phần cơ khí và điện

Các thành phần điện khung tay và khớp cổ robot

• Driver điều khiển động cơ bước DM542

- Điện áp sử dụng: 20 ~ 50 VDC

- Dòng điện ngõ ra tối ra: Max 4.2A

- Các tùy chỉnh vi bước: 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128; or 1/5, 1/10, 1/20, 1/25, 1/40, 1/50, 1/100, 1/125

- Các tùy chỉnh dòng điện: 1.0A, 1.46A, 1.91A, 2.37A, 2.84A, 3.31A, 3.76A, 4.20A

- Giảm độ nóng motor bằng công nghệ implementation of 3-state current control

- Xung điều khiển: PULSE/DIRECTION & CW/CCW

- Tích hợp công nghệ tự động căn chỉnh phù hợp với động cơ

- Tần số xung tối đa: 300 KHz

- Tương thích mức tín hiệu TTL 5VDC và tích hợp Opto cách ly giao tiếp với mạch điều khiển

- Sử dụng cho động cơ 2 Phase và 4 Phase

- Bảo vệ Ngắn mạch, Quá áp, dòng, nhiệt độ tích hợp

- Kích thước: 118.1 X 75.4 X 33 mm; Trọng lượng: 283.5 g

Giao thức giao tiếp giữa Raspberry Pi và ESP32 cho phép truyền thông hiệu quả thông qua các tín hiệu số Raspberry Pi 4 không chỉ điều khiển ESP32 mà còn thực hiện các thuật toán điều khiển để tạo ra các tín hiệu điều khiển khác, nâng cao khả năng tương tác và điều khiển trong các ứng dụng điện tử.

- Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC & 1.5GHz

- Có 3 lựa chọn RAM: 8GB LPDDR4-2400 SDRAM

- Wifi chuẩn 2.4 GHz và 5.0 GHz IEEE 802.11ac Bluetooth 5.0, BLE

- cổng USB 3.0 và 2 cổng USB 2.0

- Chuẩn 40 chân GPIO, tương thích với các phiên bản trước

- Hỗ trợ 2 cổng ra màn hình chuẩn Micro HDMI với độ phân giải lên tới 4K

- Khe cắm Micro-SD cho hệ điều hành và lưu trữ

- Nguồn điện DC 5V – 3A DC chuẩn USB-C

- 5V DC via GPIO header (minimum 3A*)

Hình 4 27: Raspberry pi4 model B 8GB (Nguồn: Internet)

• PCA9685 Điều Khiển Động Cơ Servo 12Bit PWM 16 Kênh

Mô-đun PCA9685 là bộ điều khiển servo 16 kênh, nhận tín hiệu từ ESP32 để tạo xung PWM, giúp điều khiển chính xác vị trí và góc quay của các servo trong phần đầu robot Điều này cho phép điều chỉnh các yếu tố cơ học như khớp cổ, mắt và lông mày, tạo ra biểu cảm cho phần đầu robot.

- Điện áp sử dụng: 2.3 ~ 5.5VDC

- Số kênh PWM: 16 kênh, tần số: 40~1000Hz

- Độ phân giải PWM: 12bit

- Giao tiếp: I2C (chấp nhận mức Logic TTL 3 ~ 5VDC)

- Tương thích Arduino, Raspberry Pi

- PCF8574 Module Mở Rộng IO Giao Tiếp I2C

• PCF8574 Module Mở Rộng IO Giao Tiếp I2C

Module PCF8574 là giải pháp mở rộng số lượng chân I/O cho vi điều khiển qua giao tiếp I2C, cung cấp 8 chân I/O để đọc và ghi tín hiệu Khi vi điều khiển gửi dữ liệu qua I2C, module sẽ điều khiển các chân I/O để thực hiện các chức năng cần thiết Điều này đặc biệt hữu ích cho các vi điều khiển có số lượng chân I/O hạn chế, như Raspberry Pi, giúp mở rộng khả năng kết nối với nhiều thiết bị khác Module PCF8574 được sử dụng rộng rãi trong các ứng dụng nhúng và dự án điện tử.

- Đầu vào: 2 chân I2C SCL & SDA

- Kết nối song song 8 board liên tiếp: 64 chân tín hiệu I/O

CHƯƠNG 5: CÁC BÀI TOÁN THIẾT KẾ ROBOT

Động học của robot

Phân tích hình học Stewart platform

Stewart platform là một hệ thống cơ khí song song, bao gồm hai mặt phẳng chính: mặt phẳng nền (Base platform - B) và mặt phẳng chuyển động (Moving platform - P) Hệ thống này được hỗ trợ bởi 6 cặp chân di chuyển, cho phép di chuyển linh hoạt trong không gian Mỗi chân di chuyển có khả năng hoạt động theo ba hướng: dọc theo trục x (trước và sau), trục y (trái và phải), và trục z (lên và xuống).

Mỗi chân di chuyển của nền tảng Stewart được kết nối với mặt phẳng di động và mặt phẳng cố định Để phân tích hình học của nền tảng này, cần xác định vị trí và các thông số của các chân di chuyển.

Vị trí của các chân di chuyển trên mặt phẳng di động được xác định bởi ba thông số (x’, y’, z’) trong hệ tọa độ của mặt phẳng đó.

Vị trí của các chân di chuyển trên mặt phẳng cố định được xác định bởi ba thông số (x, y, z) trong hệ tọa độ của mặt phẳng đó.

Chiều dài chân di chuyển được tính từ điểm gắn trên mặt phẳng di động đến điểm gắn trên mặt phẳng nền cố định, xác định qua tích của vector thanh truyền servo và thanh truyền hai đầu khớp mắt trâu Để mô tả hình học của mặt phẳng nền và mặt phẳng chuyển động, cần sử dụng bốn giá trị cụ thể.

- rB: Bán kính vòng tròn tạo bởi các khớp nối trên mặt phẳng nền

- rP: Bán kính vòng tròn tạo bởi các khớp nối trên tấm chuyển động

- αB: Góc tạo bởi cặp khớp nối đối xứng trên mặt phẳng nền

- αP: Góc tạo bởi cặp khớp nối đối xứng trên tấm chuyển động.

Phân tích bài toán động học nghịch

Giả sử, tọa độ đầu cuối của Stewart Platform trong không gian được biểu diễn ở dạng vector như sau

Q = [x, y, z, φ, θ, Ψ] mô tả các chuyển động của một đối tượng trong không gian Trong đó, chuyển động dài bao gồm chuyển động dọc (x), ngang (y) và thẳng đứng (z) theo hệ quy chiếu quán tính Các chuyển động góc được thể hiện qua các góc Euler: φ (roll) xoay quanh trục x, θ (pitch) xoay quanh trục y và Ψ (yaw) xoay quanh trục z.

Hệ tọa độ chân dẫn động của robot song song là tập hợp các biến về góc xoay Viết dưới dạng vector trong không gian khớp: α = [ α 1 α 2 α 3 α 4 α 5 α 6 ]

Trong hệ thống Stewart platform, các góc xoay α 1, α 2, α 3, α 4, α 5, α 6 tương ứng với các khớp servo, đóng vai trò quan trọng trong việc điều chỉnh hướng và vị trí của các thanh truyền Những góc này không chỉ thay đổi độ dài hiệu quả của các thanh mà còn kiểm soát vị trí của nền tảng di động Bài toán động học ngược đặt ra nhiệm vụ xác định các góc xoay α i dựa trên tọa độ đầu cuối Q đã cho.

Từ 3 góc chuyển vị: chuyển động dọc (x), nằm ngang (y) và thẳng đứng (z) ta có thể xác định hướng của mặt phẳng di động đối với mặt phẳng nền cố định Đầu tiên ta xem xét chuyển động xoay một góc Ψ(yaw) xoay quanh trục z

P = i’x’ + j’y’ + k’z’ = ix + jy + kz x = OA – BC = x’cos ψ – y’sin ψ y = AB + PC = x’sin ψ + y’cos ψ z = z’

Hình 5 2: Chuyển động xoay một góc 𝛹 (yaw) xoay quanh trục z

Qua đó ta xác định được ma trận xoay R z (Ψ):

Tiếp theo ta xem xét chuyển động xoay một góc θ (pitch) xoay quanh trục y Và φ(roll) xoay quanh trục x:

Ma trận xoay giữa mặt phẳng di động và mặt phẳng nền cố định được xác định sau khi thực hiện ba góc Euler: φ (roll) quanh trục x, θ (pitch) quanh trục y và Ψ (yaw) quanh trục z.

= ( cos Ψ cos θ − sin Ψ cos φ + cos Ψ sin θ sin φ sin Ψ sin φ + cos Ψ sin θ cos φ sin Ψ cos θ cos Ψ cos φ + sin Ψ sin θ sin φ − cos Ψ sin φ + sin Ψ sin θ cos φ

−sin θ cos θ sin φ cos θ cos φ

(5.1) Tiếp theo thông qua vị trí x, y, z từ vector q ta cần tìm ra độ dài 6 chân di chuyển của Stewart Platform Xét trong Stewart Platform cho chân thứ i, ta có:

Hình 5 3: Hình biểu diễn vector cho chân di chuyển thứ i

Ta thấy được giá trị vector qi có thể tìm được qua phương trình: q i = T + P RB pi (5.2)

Vector T đại diện cho độ dịch chuyển của mặt phẳng di động so với mặt phẳng nền cố định, trong khi vector P RB pi thể hiện vị trí của vector pi so với vị trí ban đầu của nó.

Qua đó ta xác định được vector chiều dài chân li thông qua qi: li =T + P RB pi - bi (5.3)

Áp dụng phương trình li cho 6 chân từ i1 đến i6, ta có thể xác định độ dài của từng chân để mặt phẳng di động đạt được vị trí mong muốn Thay vì sử dụng servo điện, có thể xem xét các giải pháp thay thế để tối ưu hóa hiệu suất.

Hình 5 4: Tổ hợp chân servo trong tọa độ Oxyz

- a là chiều dài của thanh truyền cánh tay servo

- s là chiều dài thanh truyền khớp mắt trâu

- β = góc của mặt phẳng cánh tay servo so với trục x Lưu ý hệ trục Oxyz là cố định đối với 6 cánh tay và trục x nằm trong mặt phẳng x, y khi đó z = 0

- li là giá trị chiều dài chân di chuyển được xác định từ công thức ll = T + P RB pi - bi

- Ai là các điểm khớp giữa cánh tay servo với thanh truyền khớp mắt trâu

- Bi là điểm gốc, là vị trí tâm xoay của servo

- Pi là vị trí đầu cuối của thanh truyền khớp mắt trâu được gắn trên mặt phẳng di động

Giá trị chiều dài dịch chuyển của 6 khớp trên Stewart platform có thể được xác định qua công thức ll = T + P RB pi – bi Các cánh tay servo được bố trí đối xứng với nhau, thể hiện sự phản chiếu qua một điểm nằm giữa.

5) Vì vậy đối với các chân lẻ (1,3,5) ta có:

Hình 5 5: Biểu diễn tính đối xứng của các cánh tay servo kề nhau y a = a cos α sin β + y b (5.5) z a = a sin α + z b (5.6)

Và đối với các chân chẵn (2,4,6) ta có: x a = a cos(π − α) cos(π + β) + x b y a = a cos(π − α) sin(π + β) + y b z a = a sin(π − α) + z b

Tuy nhiên ta có công thức các góc lượng giác: sin(π − α) = sin α , cos(π − α) = − cos α sin(π + β) = − sin β , cos(π + β) = − cos β

Từ (5.4), (5.5), (5.6) ta xác định được chiều dài các vector ai, li và si như sau: a 2 = (x a − x b ) 2 + (y a − y b ) 2 + (z a − z b ) 2

= (x p 2 + y p 2 + z p 2 ) + (x a 2 + y a 2 + z a 2 ) − 2(x p x a + y p y a + z p z a ) (5.9) Thay (6.7), (6.8) vào phương trình (6.9), ta có: l 2 − (s 2 − a 2 ) = 2(x b 2 + y b 2 + z b 2 ) + 2x a (x p − x b ) + 2y a (y p − y b ) + 2z a (z p − z b ) − 2(x p x b + y p y b + z p z b ) (5.10)

Thay các giá trị xa, ya, za từ phương trình (6.4), (6.5), (6.6) vào phương trình (6.10): l 2 − (s 2 − a 2 ) = 2(x b 2 + y b 2 + z b 2 ) + 2(a cos α cos β + x b )(x p − x b ) +

Là phương trình có dạng:

Qua hệ quả của công thức lượng giác:

Ta có được: a sin u + b cos u = c sin(u + v)

Khi đó ta có: c = √a 2 + b 2 và tan v = b a

Thay phương trình trên vào (6.11) ta có được:

Qua đó ta xác định được: sin(α + δ) = L

Để tính toán độ dài các chân di chuyển và các góc liên kết của cánh tay đòn servo, cần xác định vị trí và hướng xoay của mặt phẳng di động so với mặt phẳng nền cố định.

Bài toán giải mã tệp tin âm nhạc MIDI

Mục tiêu

Mục tiêu của tôi là phát triển một thuật toán phân tích tệp tin âm nhạc MIDI nhằm điều khiển bàn tay robot dựa trên thông số âm nhạc Thuật toán này sẽ trích xuất các thông số quan trọng từ tệp tin MIDI, bao gồm nút nhấn, thời gian nhấn và thời gian nhả phím đàn, để sử dụng trong việc điều khiển chính xác bàn tay robot.

Hình 5 6: Cấu trúng tệp tin âm nhạc MIDI đơn giản

Mục tiêu chính là đảm bảo bàn tay robot di chuyển chính xác để ấn các phím đàn piano dựa trên thông tin từ tệp tin MIDI Thuật toán sẽ phân tích các thông số như nút nhấn và thời gian nhấn, từ đó xác định vị trí và thời điểm cần thiết để bàn tay robot thực hiện các động tác ấn phím.

Mục tiêu của hệ thống là phát triển một robot tự động có khả năng chơi nhạc piano dựa trên tệp âm nhạc MIDI, cho phép tái tạo các bản nhạc một cách chính xác Hệ thống này có thể được ứng dụng trong giảng dạy âm nhạc, biểu diễn nghệ thuật và nghiên cứu âm nhạc.

Thông qua việc phân tích tệp tin MIDI và điều khiển bàn tay robot chơi đàn piano, tôi mong muốn phát triển một thuật toán cho khả năng chơi nhạc tự động với độ chính xác cao Điều này không chỉ mang đến trải nghiệm âm nhạc tuyệt vời mà còn giúp người dùng thưởng thức âm nhạc một cách mới mẻ và tiện lợi.

Đặc điểm tệp tin âm nhạc MIDI

Tệp tin MIDI (Musical Instrument Digital Interface) là định dạng tiêu chuẩn lưu trữ thông tin âm nhạc và điều khiển thiết bị âm nhạc điện tử Định dạng này không chứa âm thanh thực tế mà chỉ lưu trữ dữ liệu MIDI, bao gồm thông tin về nút nhấn, thời gian nhấn và thời gian nhả phím đàn.

Các đặc điểm chính của tệp tin MIDI bao gồm:

Một tệp tin MIDI có thể bao gồm nhiều track, với mỗi track tương ứng với một nút trên bàn phím đàn piano Tin nhắn MIDI chứa các trạng thái và dữ liệu, trong đó trạng thái MIDI chỉ ra loại tin nhắn và thiết bị được điều khiển, như nhấn hoặc nhả nút, thay đổi âm lượng, v.v Mỗi trạng thái MIDI được xác định bằng một giá trị số duy nhất.

Dữ liệu MIDI cung cấp thông tin chi tiết về các sự kiện âm nhạc, bao gồm số lượng nút nhấn được nhấn hoặc nhả, giá trị của nút và thời gian diễn ra sự kiện Các thông tin này có thể được biểu diễn dưới dạng giá trị số hoặc mã hóa đặc biệt.

Đơn vị thời gian MIDI (MIDI Time Division) là yếu tố quan trọng xác định cách đo thời gian trong tệp tin MIDI, có thể được biểu thị dưới dạng tỷ lệ thời gian (ticks per beat) hoặc số ticks mỗi giây Thời gian MIDI ảnh hưởng trực tiếp đến độ chính xác và độ phân giải của thông tin thời gian trong tệp tin, từ đó quyết định chất lượng âm thanh và khả năng đồng bộ của các bản nhạc.

Trong quá trình phân tích tệp tin âm nhạc MIDI, cần xử lý các tin nhắn MIDI để trích xuất thông tin về nút nhấn, thời gian nhấn và thời gian nhả phím đàn Bằng cách phân tích trạng thái và dữ liệu MIDI, ta có thể thu thập các thông số cần thiết để điều khiển bàn tay robot chơi đàn piano.

Trong tệp tin MIDI, dữ liệu được mã hóa dưới dạng các sự kiện MIDI, cung cấp thông tin chi tiết về hoạt động âm nhạc như nút nhấn, thời gian nhấn và thời gian nhả phím Một số thành phần dữ liệu MIDI quan trọng bao gồm các thông số này.

Sự kiện Note On và Note Off là hai yếu tố quan trọng trong việc xác định thời điểm nhấn và nhả phím đàn piano Note On chứa thông tin về phím đàn, vận tốc và thời gian bắt đầu, trong khi Note Off cung cấp thông tin về phím và thời điểm kết thúc.

Sự kiện Control Change trong MIDI được sử dụng để điều chỉnh các tham số âm nhạc như âm lượng, pedal và điều chỉnh tông Mỗi sự kiện này bao gồm một số trạng thái MIDI, giúp xác định loại điều khiển và giá trị tương ứng.

Sự kiện Program Change là một công cụ quan trọng trong âm nhạc, cho phép người dùng thay đổi chương trình âm thanh cho một track cụ thể Ví dụ, bạn có thể dễ dàng chuyển đổi từ âm thanh của piano sang âm thanh của guitar, tạo ra sự đa dạng và phong phú cho bản nhạc của mình.

Tempo trong âm nhạc được định nghĩa bởi số nhịp mỗi phút (BPM), cung cấp thông tin quan trọng về nhịp độ của bài hát Thông tin này không chỉ giúp xác định thời gian giữa các sự kiện trong tệp tin MIDI mà còn ảnh hưởng đến cảm xúc và phong cách của bản nhạc.

Tệp tin MIDI chứa các sự kiện thời gian quan trọng như Set Time Signature và Set Key Signature, giúp xác định cấu trúc nhạc của bài hát và hỗ trợ đồng bộ hóa các sự kiện khác.

Ngoài ra, còn có các sự kiện đặc biệt như Channel Pressure (áp lực kênh), Polyphonic Key Pressure (áp lực phím đa âm) và System Exclusive (sự kiện đặc biệt hệ thống) được áp dụng cho những mục đích cụ thể.

Trong tệp tin MIDI, các phím đàn được đại diện bằng giá trị số gọi là MIDI note number, thể hiện vị trí của chúng trên bàn phím piano theo hệ thống tiêu chuẩn Để xác định giá trị tương ứng của các phím trong tệp tin MIDI, có thể áp dụng quy tắc nhất định.

- Phím đàn C4 (phím trung tâm trên bàn phím piano) có giá trị MIDI note number là 60

- Từ C4, mỗi phím tăng lên 1 đơn vị sẽ tương ứng với tăng 1 giá trị MIDI note number

- Phím trên C4 có giá trị MIDI note number tăng dần theo thứ tự 61, 62, 63, v.v

- Phím dưới C4 có giá trị MIDI note number giảm dần theo thứ tự 59, 58, 57, v.v

Các phím trắng từ C4 đến C5 (1 octave) có giá trị MIDI note number từ 60 đến 71 Các phím đen từ C#4 đến F#4 có giá trị MIDI note number tương ứng là 61, 63, 65, 66,

Hình 5 7: Cấu trúng tệp tin âm nhạc MIDI đơn giản tay trái

Trong thuật toán của tôi, chỉ sử dụng để lọc thông tin về nút ấn, thời gian ấn, thời gian thả, và thông tin tay trái hoặc phải Điều này giúp đơn giản hóa quá trình xử lý dữ liệu liên quan đến nút đàn, cũng như thời điểm bắt đầu và kết thúc của các nút nhấn được mã hóa trong các sự kiện.

Thông tin về vận tốc (velocity) trong sự kiện Note On cho biết mức độ mạnh hoặc yếu của nút nhấn, giúp xác định cường độ âm thanh và sự nhấn nhá của nút đàn.

Bài toán tìm quãng đường di chuyển bàn tay và phím nhấn

Lưu đồ thuật toán

Hình 5 11: Lưu đồ thuật toán tìm quãng đường ngắn nhất và ngón tay cần đánh

Thuật toán bắt đầu bằng việc nhập các giá trị đầu vào cho x, y, z, x1, y1, z1 và a_point Sau đó, nó kiểm tra sự hiện diện của các giá trị này trong danh sách nốt nhạc Nếu có, thuật toán tiến hành tính toán quãng đường di chuyển và vị trí ngón tay cần đánh Cuối cùng, kết quả về quãng đường di chuyển, vị trí ngón tay và vị trí bàn tay cuối cùng được xuất ra.

Số xung vi điều cần phát để con trượt di chuyển 1mm

Động cơ bước 57HS21A có góc bước 1.8 độ, được điều khiển bởi driver DM542 với vi bước được chọn là 1.

Hình 5 12: Driver điều khiển động cơ bước và thông số điều chỉnh

Và puly được chọn là puly GT2 với bước răng là 2mm, số răng là 40 răng

Số xung vi điều khiển cần phát cho diver để động cơ quay một vòng được tính như sau: ppr = α microstep (5.12) Trong đó:

- ppr – pulse per round: số xung trên 1 vòng quay (xung)

-  : góc quay 1 vòng của động cơ ( o )

- microstep: vi bước của driver điều khiển động cơ

- d: khoảng cách khi puly quay được một vòng (mm)

-  : bước răng của puly (mm)

Từ công thức (6.12) và (6.14) suy ra: ppm ppr

- ppm – pulse per millimeter: số xung trên mi-li-mét (xung/mm)

- ppr – pulse per round: số xung trên vòng (xung)

- d: khoảng cách khi puly quay được một vòng (mm)

5.5 Bài toán làm mịn tín hiệu cấp xung động cơ servo

Mục đích của bài toán là cải thiện sự mượt mà trong chuyển động của động cơ servo thông qua việc áp dụng thuật toán làm mịn tín hiệu cấp xung cho động cơ servo.

Giải pháp cho vấn đề này là áp dụng một thuật toán đơn giản để thay đổi giá trị cấp xung, nhằm làm mịn tín hiệu đầu vào từ module PCA9685 Thuật toán bao gồm các bước cụ thể để đảm bảo tín hiệu đầu ra ổn định và chính xác.

Bước đầu tiên là nhận giá trị xung đầu vào từ module PCA9685 và lưu trữ nó trong biến Next_value, trong khi giá trị xung hiện tại của servo được lưu trong biến Prev_value.

• Bước 2: Áp dụng thuật toán làm mịn tín hiệu cấp xung:

Smooth_value = (Next_value * 0.04) + (Prev_value * 0.96)

Trong thuật toán làm mịn tín hiệu cấp xung, hệ số 0.04 và 0.96 được sử dụng để cân bằng giá trị hiện tại và giá trị trước đó Các hệ số này có thể điều chỉnh để thay đổi độ mịn của tín hiệu đầu ra Giá trị Smooth_value thay đổi dựa trên độ chênh lệch giữa hai giá trị Next_value và Prev_value.

Để điều khiển động cơ servo, bước 3 là lấy giá trị Smooth_value từ bài toán đã nêu Quá trình này sẽ lặp đi lặp lại liên tục, cập nhật biến Prev_value cho đến khi Next_value bằng Prev_value Khi đó, giá trị Smooth_value sẽ không thay đổi và được tính theo công thức Smooth_value = (Next_value.

Bằng cách áp dụng thuật toán làm mịn tín hiệu cấp xung cho động cơ servo, chúng tôi đã đạt được kết quả tích cực, giúp giảm thiểu tình trạng chuyển động đột ngột và không ổn định Điều này mang lại trải nghiệm điều khiển mượt mà và hiệu quả hơn.

Hình 5 13: Biểu đồ so sánh sự biến thiên của xung theo thời gian

Hình 5.13 minh họa sự khác biệt giữa việc cấp xung trực tiếp và việc áp dụng thuật toán làm mịn tín hiệu xung cho động cơ servo Việc cấp xung trực tiếp để điều khiển servo đến vị trí mong muốn có thể gây ra sự thay đổi đột ngột, dẫn đến nguy cơ hư hỏng cho động cơ và các thiết bị gắn trên cánh tay servo do lực quán tính lớn.

Việc sử dụng bài toán làm mịn tín hiệu cấp xung là rất quan trọng trong việc điều khiển động cơ servo Quá trình này cho phép tín hiệu thay đổi dần theo thời gian, giúp động cơ đạt được vị trí mong muốn một cách mượt mà Kết quả là, người dùng sẽ có trải nghiệm điều khiển tốt hơn và hiệu suất hoạt động của động cơ được cải thiện.

5.6 Bài toán gia tốc không đổi cho động cơ bước

Mục tiêu nghiên cứu này là áp dụng thuật toán gia tốc không đổi để tối ưu hóa điều khiển động cơ bước, nhằm giảm thiểu hiện tượng rung lắc khi động cơ di chuyển hoặc dừng đột ngột Chúng tôi tập trung phân tích bài toán để xác định thời gian trì hoãn và vận tốc di chuyển của động cơ, từ đó giúp các bộ phận gắn trên tấm trượt hoạt động mượt mà hơn và tránh rung lắc đột ngột Việc này sẽ mang lại lợi ích lớn về độ bền cho các thiết bị và cơ cấu mà động cơ bước điều khiển.

𝜔 là vận tốc góc xoay

𝜃 là góc xoay của động cơ bước Do động cơ bước điều khiển theo cơ chế cấp xung nên

𝜃 sẽ là góc xoay của một bước động cơ

𝑡 = 𝑡 𝑑𝑒𝑙𝑎𝑦 là thời gian động cơ xoay một bước 𝜃 và đây là khoảng thời gian giữa một xung

Tiếp theo ta cần xét đến gia tốc góc của động cơ:

𝑡 𝑑𝑒𝑙𝑎𝑦 Qua công thức trên ta có thể thấy được gia tốc 𝛼 là sự thay đổi của 𝜔 theo thời gian trễ là tdelay. Δ𝜔 = 𝛼 𝑡 𝑑𝑒𝑙𝑎𝑦 (5.17)

Mục tiêu của chúng ta là xác định sự thay đổi vận tốc góc qua các lần cấp xung cho động cơ Để đạt được điều này, chúng ta sẽ cung cấp một giá trị gia tốc không đổi cùng với thời gian trễ đầu tiên, từ đó tính toán vận tốc góc 𝜔 đầu tiên theo công thức 5.16 Tiếp theo, chúng ta có thể xác định vận tốc góc ở các lần cấp xung thứ 2, 3, 4, … dựa trên công thức 5.17.

Tiếp theo ta cần biết được sự thay đổi của vận tốc góc 𝜔 2 so với vận tốc góc 𝜔 1 : Δ𝜔 = 𝜔 2 − 𝜔 1 = 𝜃 2

Giả sử giá trị thời gian trì hoãn lần đầu tiên 𝑡 𝑑𝑒𝑙𝑎𝑦1 đã được xác định, ta có thể tính toán thời gian trì hoãn cho lần cấp xung tiếp theo 𝑡 𝑑𝑒𝑙𝑎𝑦2 bằng công thức 5.18 Đồng thời, 𝜃2 sẽ bằng 𝜃1 vì góc xoay một bước của động cơ là giống nhau ở các lần.

Và đối với việc ta sử dụng vi bước 1/8 cho động cơ thì độ dài cung của một bước sẽ được tính:

- ppr – pulse per round: số xung trên 1 vòng quay (xung)

Hình 5 14: Biểu đồ mô phỏng giá trị thời gian trì hoãn của động cơ khi cấp xung

Bằng cách sử dụng công thức (5.21), chúng ta có thể xác định thời gian trì hoãn cho lần cấp xung kế tiếp sau khi cung cấp giá trị gia tốc góc không đổi và thời gian trì hoãn ban đầu Điều này cho phép lập trình động cơ di chuyển tăng tốc qua các lần cấp xung, đồng thời điều chỉnh giá trị gia tốc góc để đảm bảo chuyển động mượt mà hơn Tương tự, khi áp dụng phương trình giảm tốc, chúng ta chỉ cần thay đổi gia tốc góc từ dương sang âm, giúp động cơ giảm tốc một cách mượt mà hơn.

Hình 5 15: Biểu đồ mô phỏng giá trị thời gian trì hoãn của động cơ khi cấp xung

Bằng cách áp dụng bài toán gia tốc không đổi, việc tính toán thời gian trễ cấp xung cho động cơ bước đã cải thiện đáng kể sự mượt mà trong chuyển động của động cơ.

CHƯƠNG 6: THIẾT KẾ ĐIỀU KHIỂN 6.1 Sơ đồ khối tổng quát hệ thống

Hình 6 1: Sơ đồ khối tổng quan hệ thống

Hệ thống điều khiển được phân tích qua sơ đồ khối, bắt đầu bằng việc cấp nguồn cho Raspberry Pi và các bộ phận điều khiển như driver động cơ và solenoid.

Bài toán gia tốc không đổi cho động cơ bước

Mục tiêu của nghiên cứu này là áp dụng thuật toán gia tốc không đổi để tối ưu hóa điều khiển động cơ bước, nhằm giảm thiểu hiện tượng rung lắc khi động cơ di chuyển hoặc dừng đột ngột Chúng tôi tập trung phân tích bài toán, xác định thời gian trì hoãn và vận tốc di chuyển của động cơ, với hy vọng giúp các bộ phận gắn trên tấm trượt hoạt động mượt mà hơn Việc này không chỉ giảm rung lắc đột ngột mà còn nâng cao độ bền cho các thiết bị và cơ cấu mà động cơ bước điều khiển.

𝜔 là vận tốc góc xoay

𝜃 là góc xoay của động cơ bước Do động cơ bước điều khiển theo cơ chế cấp xung nên

𝜃 sẽ là góc xoay của một bước động cơ

𝑡 = 𝑡 𝑑𝑒𝑙𝑎𝑦 là thời gian động cơ xoay một bước 𝜃 và đây là khoảng thời gian giữa một xung

Tiếp theo ta cần xét đến gia tốc góc của động cơ:

𝑡 𝑑𝑒𝑙𝑎𝑦 Qua công thức trên ta có thể thấy được gia tốc 𝛼 là sự thay đổi của 𝜔 theo thời gian trễ là tdelay. Δ𝜔 = 𝛼 𝑡 𝑑𝑒𝑙𝑎𝑦 (5.17)

Mục tiêu cuối cùng của chúng ta là xác định sự thay đổi vận tốc góc qua các lần cấp xung cho động cơ Để thực hiện điều này, chúng ta sẽ cung cấp một giá trị gia tốc không đổi và thời gian trễ đầu tiên, từ đó tính toán vận tốc góc 𝜔 đầu tiên theo công thức 5.16 Tiếp theo, vận tốc góc ở các lần cấp xung thứ 2, 3, 4, sẽ được xác định theo công thức 5.17.

Tiếp theo ta cần biết được sự thay đổi của vận tốc góc 𝜔 2 so với vận tốc góc 𝜔 1 : Δ𝜔 = 𝜔 2 − 𝜔 1 = 𝜃 2

Giả sử giá trị thời gian trì hoãn lần đầu tiên 𝑡 𝑑𝑒𝑙𝑎𝑦1 đã được xác định, ta có thể tính toán thời gian trì hoãn cho lần cấp xung tiếp theo 𝑡 𝑑𝑒𝑙𝑎𝑦2 bằng công thức 5.18 Đồng thời, giá trị 𝜃 2 sẽ bằng 𝜃 1, vì góc xoay của động cơ trong các lần cấp xung là giống nhau.

Và đối với việc ta sử dụng vi bước 1/8 cho động cơ thì độ dài cung của một bước sẽ được tính:

- ppr – pulse per round: số xung trên 1 vòng quay (xung)

Hình 5 14: Biểu đồ mô phỏng giá trị thời gian trì hoãn của động cơ khi cấp xung

Bằng cách sử dụng công thức (5.21), chúng ta có thể xác định thời gian trì hoãn cho lần cấp xung kế tiếp sau khi cung cấp giá trị gia tốc góc không đổi và thời gian trì hoãn lần đầu Điều này cho phép lập trình động cơ di chuyển với gia tốc qua các lần cấp xung, đồng thời điều chỉnh giá trị gia tốc góc để đảm bảo chuyển động mượt mà hơn Tương tự, khi áp dụng phương trình tính toán cho động cơ giảm tốc, chúng ta chỉ cần thay đổi giá trị gia tốc góc từ dương thành âm, giúp động cơ giảm tốc một cách mượt mà và hiệu quả hơn.

Hình 5 15: Biểu đồ mô phỏng giá trị thời gian trì hoãn của động cơ khi cấp xung

Bằng cách áp dụng bài toán gia tốc không đổi để tính toán thời gian trễ cấp xung cho động cơ bước, chúng tôi đã cải thiện đáng kể độ mượt mà trong chuyển động của động cơ này.

Sơ đồ khối tổng quát hệ thống

Phương thức giao tiếp I2C

The SPI (Serial Peripheral Interface) communication method is a synchronous protocol used by Raspberry Pi and ESP32 for data transmission between two devices In this project, the Raspberry Pi effectively communicates with the ESP32 to facilitate seamless data exchange.

Pi được cấu hình làm thiết bị Master, trong khi ESP32 hoạt động như thiết bị Slave trong giao tiếp SPI

SPI sử dụng một đường truyền điều khiển (SPI bus) và bao gồm các tín hiệu chính như:

- MOSI (Master Out Slave In): Tín hiệu truyền dữ liệu từ thiết bị Master (Raspberry Pi) tới thiết bị Slave (ESP32)

- MISO (Master In Slave Out): Tín hiệu truyền dữ liệu từ thiết bị Slave (ESP32) tới thiết bị Master (Raspberry Pi)

- SCLK (Serial Clock): Tín hiệu xung đồng bộ được tạo bởi thiết bị Master để đồng bộ việc truyền dữ liệu giữa các thiết bị

- SS/CS (Slave Select/Chip Select): Tín hiệu được sử dụng để chọn thiết bị Slave cần truyền dữ liệu

Hình 6 2: Sơ đồ nối dây giao tiếp SPI giữa Raspberry pi 4 và module ESP32 điều khiển đầu robot Đặc điểm:

SPI cho phép truyền dữ liệu theo chuỗi bit một cách tuần tự, mang lại tốc độ truyền nhanh chóng và hiệu quả.

SPI hoạt động ở các chế độ truyền dữ liệu đa dạng, bao gồm chế độ 3-wire, trong đó MISO và MOSI sử dụng chung một đường truyền dữ liệu, và chế độ 4-wire, nơi MISO và MOSI được tách biệt.

SPI hỗ trợ truyền dữ liệu full-duplex, cho phép thiết bị Master và Slave truyền và nhận dữ liệu đồng thời.

- SPI cho phép tốc độ truyền dữ liệu cao và có thể đạt được tốc độ truyền lên đến vài chục MHz Ưu điểm:

- Tốc độ truyền dữ liệu cao: SPI cho phép truyền dữ liệu nhanh chóng và đồng bộ giữa

- Khả năng truyền dữ liệu full-duplex: Thiết bị Master và Slave có thể truyền và nhận dữ liệu đồng thời, giúp tối ưu hiệu suất giao tiếp

Số lượng chân kết nối cần thiết cho SPI khá lớn, bao gồm các chân MOSI, MISO, SCLK và SS/CS cho mỗi thiết bị được kết nối.

Khả năng kết nối thiết bị của SPI trên Raspberry Pi có thể bị hạn chế, vì mặc dù SPI cho phép một thiết bị Master kết nối với nhiều thiết bị Slave, số lượng thiết bị Slave tối đa phụ thuộc vào số chân SS/CS có sẵn trên Raspberry Pi.

Trong dự án điều khiển robot piano, chúng tôi áp dụng giao tiếp SPI để Raspberry Pi truyền dữ liệu đến ESP32, bao gồm một mảng giá trị Giao thức SPI sẽ phân tích và chuyển đổi các giá trị này thành tín hiệu điều khiển cho phần đầu của robot, như mắt, miệng và cổ Việc sử dụng SPI mang lại khả năng truyền dữ liệu nhanh chóng, đồng bộ và chính xác giữa các thiết bị, từ đó đảm bảo hoạt động ổn định và hiệu quả cho robot piano.

I2C (Inter-Integrated Circuit) là một giao thức giao tiếp quan trọng trong hệ thống điện tử, cho phép kết nối hiệu quả các thành phần như vi điều khiển, cảm biến và bộ nhớ Được phát triển bởi công ty Philips (nay là NXP Semiconductors), I2C đã trở thành tiêu chuẩn phổ biến trong các ứng dụng điện tử nhờ vào tính linh hoạt và khả năng truyền dữ liệu đơn giản giữa các thiết bị.

Giao thức I2C sử dụng hai dây tín hiệu chính: SDA (Dây Dữ Liệu Serial) và SCL (Dây Đồng Hồ Serial) Dây SDA có nhiệm vụ truyền tải dữ liệu giữa các thiết bị, trong khi dây SCL đảm nhận vai trò đồng bộ hóa quá trình truyền dữ liệu.

Mỗi thiết bị trong mạng I2C đều có một địa chỉ duy nhất, giúp Raspberry Pi (Master) có khả năng giao tiếp với nhiều thiết bị Slave khác nhau trên cùng một bus I2C.

- Giao tiếp I2C là giao tiếp hai chiều, cho phép truyền và nhận dữ liệu giữa Master và Slave

I2C hỗ trợ nhiều tốc độ truyền dữ liệu đa dạng, bao gồm tốc độ chậm cho bộ nhớ, tốc độ nhanh cho kết nối cảm biến và tốc độ cao cho việc truyền dữ liệu video.

I2C cho phép nhiều thiết bị chia sẻ chung bus, với mỗi thiết bị được kết nối thông qua một resistor kéo lên dây SDA và SCL, đảm bảo trạng thái mặc định là cao Thiết bị chỉ chuyển sang trạng thái Slave khi được Master kích hoạt.

Hình 6 3: Sơ đồ nối dây giao tiếp I2C giữa Raspberry pi 4 và 4 module PCF8574 điều khiển solenoid Ưu điểm:

- I2C sử dụng ít dây tín hiệu so hơn với các giao thức khác như SPI hoặc UART, giúp tiết kiệm tài nguyên phần cứng

- Có thể kết nối nhiều thiết bị với một số dây tín hiệu ít hơn, giảm độ phức tạp và chi phí

- Thiết lập địa chỉ duy nhất cho mỗi thiết bị, cho phép giao tiếp với nhiều thiết bị Slave trên cùng một bus

- Tốc độ truyền dữ liệu linh hoạt, phù hợp với nhiều ứng dụng từ chậm đến nhanh

Hình 6 4: Sơ đồ nối dây giao tiếp I2C giữa ESP32 và module PCA9685 điều khiển solenoid

- Khoảng cách truyền tín hiệu giới hạn hơn so với một số giao thức khác, do tín hiệu I2C có thể bị ảnh hưởng bởi nhiễu điện từ

- Tốc độ truyền dữ liệu không cao như giao thức SPI

- Số lượng thiết bị kết nối trong mạng I2C có giới hạn, do địa chỉ I2C chỉ có 7 bit, giới hạn số lượng địa chỉ có thể sử dụng là 128

Trong dự án điều khiển robot piano, chúng tôi áp dụng giao tiếp I2C để Raspberry Pi truyền dữ liệu đến PCF8574, từ đó phát ra tín hiệu điều khiển cho các solenoid gắn trên ngón tay robot Việc sử dụng giao tiếp I2C không chỉ giúp chúng tôi linh hoạt trong việc kết nối mà còn tiết kiệm tài nguyên cho các thiết bị điện tử trong dự án.

Thiết kế mạch điều khiển solenoid

Để kích hoạt solenoid 24V, việc sử dụng transistor là cần thiết do không đủ khả năng cung cấp điện trực tiếp Transistor hoạt động như một công tắc khuếch đại dòng điện, cho phép dòng điện chạy từ chân collector (C) đến chân emitter (E) khi có nguồn điện cấp vào đầu base Điều này tạo ra một đường dòng điện hoàn chỉnh, giúp kích hoạt solenoid hiệu quả.

❖ Điều kiện và yêu cầu:

Dòng điện đầu vào (base current) cần đủ để đảm bảo transistor khuếch đại hoạt động ở chế độ bật (active mode)

Dòng điện đầu ra (collector current) phải đủ lớn để điều khiển tải điện (load) được kết nối với chân collector

Chọn transistor TIP120 NPN với cấu hình Darlington để tạo công tắc khuếch đại dòng điện, giúp đạt độ khuếch đại cao và khả năng chịu dòng lớn Kết nối chân emitter (E) với mát và chân collector (C) với tải điện, đồng thời sử dụng diot để bảo vệ transistor khỏi xung điện áp cao Cấp nguồn cho chân base (B) qua module PCF8574 và sử dụng điện trở để giới hạn dòng điện base Sơ đồ kết nối đơn giản có thể được thực hiện theo hướng dẫn trên.

Sơ đồ kết nối đơn giản với transistor được sử dụng để điều khiển solenoid và khuếch đại dòng điện Khi áp dụng sơ đồ này cho 12 solenoid trên mỗi bàn tay, ta có thể xây dựng sơ đồ nguyên lý tương ứng.

Hình 6 6: Sơ đồ nguyên lý thiết kế mạch điều khiển các solenoid cho một bàn tay

❖ Tính toán giá trị linh kiện:

Ta có bảng thông số của transistor TIP120 từ nhà sản xuất như sau:

Hình 6 7: Datasheet transistor TIP120 NPN

Giá trị điện trở: Lựa chọn giá trị điện trở để đảm bảo dòng điện base đủ để kích hoạt transistor

Dòng điện tải (collector current) cần được kiểm soát để không vượt quá giới hạn tối đa mà transistor có thể chịu Với solenoid 24V 300mA, chúng ta áp dụng định luật Kirchhoff 2 cho sơ đồ như trong Hình 6.5.

Khi BJT hoạt động ở chế độ khuếch đại:

Từ kết quả tính toán ta chọn điện trở 8.3 kOhm cho mạch điện cần thiết kế

❖ Vẽ và kiểm và kiểm tra mạch:

Sử dụng phần mềm thiết kế mạch ALTINUM để thiết kế mạch điện và xác nhận tính đúng đắn của thiết kế

Hình 6 8: Thiết kế mạch lớp dưới bằng ALTINUM

Hình 6 9: Thiết kế mạch lớp trên bằng ALTINUM

Hình 6 10: Mạch 3D sau khi thiết kế bằng ALTINUM

Sau khi hoàn thành và in mạch, cần cung cấp điện và đo ghi lại các giá trị dòng điện và điện áp tại các điểm quan trọng trong mạch, bao gồm dòng điện base, điện áp base-emitter, dòng điện collector và điện áp collector-emitter Việc này đảm bảo chất lượng in mạch và hoạt động bình thường của mạch trước khi đưa vào sử dụng, giúp tránh hư hỏng các linh kiện điện tử khác.

CHƯƠNG 7: KẾT QUẢ THỰC NGHIỆM

Kết quả mô hình robot chơi đàn piano

Mô hình đã được tạo thành sau quá trình thiết kế và thực nghiệm:

Hình 7 1 Mô hình tay đánh đàn robot

Hình 7 2 Mô hình tổng thể robot

Hình 7 3 Kết quả thuật toán điều khiển khớp cổ xoay quanh trục x góc 9 độ

Hình 7 4: Thử nghiệm điều khiển khớp cổ xoay quanh trục x góc 9 độ (ngửa đầu)

Hình 7 5: Kết quả thuật toán điều khiển khớp cổ xoay quanh trục Y góc 9 độ

Hình 7 6: Thử nghiệm điều khiển khớp cổ xoay quanh trục y góc 9 độ (nghiêng trái)

Hình 7 7: Kết quả thuật toán điều khiển khớp cổ xoay quanh trục z góc 9 độ

Kết quả thực nghiệm bài toán giải mã tệp tin midi

Sau khi chạy thuật toán giải mã tệp tin midi, chúng ta đã áp dụng thành công để xác định các nốt cần nhấn, thời gian nhấn và thời gian thả của chúng Thuật toán cũng tìm ra giá trị của các phím đàn tiếp theo cần nhấn và đưa tất cả dữ liệu này vào thuật toán di chuyển cánh tay cho từng bàn tay khi chơi đàn piano.

Hình 7.9 minh họa dữ liệu của một tệp tin MIDI đơn giản Để hiểu rõ hơn về kết quả của thuật toán, chúng ta sẽ xem xét một ví dụ cụ thể, trong đó có một danh sách các sự kiện diễn ra trong Track tay phải với các thông tin như hình.

Ví dụ cụ thể 4 sự kiện đầu tiên bao gồm các dữ liệu đầu vào như sau:

Right hand: note_on=True noteq velocityP timeH0

Right hand: note_on=True noteq velocity=0 timeq9

Right hand: note_on=True notex velocityP timer0

Right hand: note_on=True notex velocity=0 time99

Thuật toán đã thực hiện việc phân tích và xác định các nốt cần nhấn, thời gian nhấn, cũng như thời gian thả các nốt tiếp theo, nhằm đạt được mục tiêu yêu cầu ban đầu.

Hình 7 10: Kết quả thuật toán giải mã tệp tin midi Track 0 (Tay phải)

Dựa trên đầu vào trên, kết quả thuật toán là như sau:

Sau khi lọc dữ liệu, thuật toán xác định rằng tay phải cần nhấn nốt 71 vào thời điểm 480ms so với thời gian bắt đầu bản nhạc, và thả nốt này vào thời điểm 719ms Tiếp theo, nốt cần nhấn sẽ là nốt 78.

Thuật toán đã cung cấp thông tin chi tiết cần thiết để xác định quãng đường di chuyển cho bàn tay robot, giúp nó đánh đúng nốt nhạc theo tệp tin midi Kết quả này có thể áp dụng cho bất kỳ bộ đầu vào tương tự nào, đảm bảo tính chính xác và hiệu suất cao trong việc điều khiển robot chơi nhạc tự động trên đàn piano.

Hình 7 11: Kết quả thuật toán giải mã tệp tin midi Track 1 (Tay trái)

Sau khi thử nghiệm thuật toán với các tệp tin midi đơn giản, chúng tôi đã đánh giá hiệu suất và tính chính xác, và kết quả cho thấy thuật toán hoạt động hiệu quả trong việc phân tích và lọc dữ liệu cần thiết từ các tệp tin midi Điều này giúp cung cấp thông tin cho thuật toán tìm quãng đường di chuyển cho bàn tay robot Tuy nhiên, cần tiếp tục nghiên cứu và đánh giá khi áp dụng thuật toán trên các bộ dữ liệu lớn hoặc trong các tình huống phức tạp để cải thiện tính ứng dụng và hiệu quả của nó.

Kết quả thực nghiệm thuật toán quãng đường di chuyển bàn tay và phím nhấn

Thuật toán của chúng ta đã thành công trong việc xác định quãng đường di chuyển ngắn nhất và vị trí các ngón tay cần nhấn trên đàn piano, dựa trên các nốt nhạc đã được chơi và những nốt nhạc tiếp theo cần được thực hiện.

Hình 7.12 minh họa kết quả chạy thuật toán theo vị trí đã cho Trong ví dụ này, chúng ta có danh sách nốt nhạc 45, 47, 48, với vị trí bàn tay hiện tại là 147 đơn vị so với gốc tọa độ Các nốt nhạc tiếp theo cần đánh là 35 và 36 Thuật toán đã tính toán quãng đường di chuyển ngắn nhất cho bàn tay robot và xác định vị trí các ngón tay cần nhấn.

Dựa trên đầu vào trên, kết quả thuật toán là như sau:

Sau khi thực hiện tính toán, thuật toán đã xác định quãng đường di chuyển ngắn nhất từ vị trí xuất phát đến các nốt nhạc 45, 47 và 48, cho thấy bàn tay cần di chuyển tổng cộng 276 đơn vị.

Thuật toán đã xác định vị trí các ngón tay cần nhấn để chơi đúng nốt nhạc 45, 47, 48 trên đàn piano Cụ thể, nốt 45 được đánh bằng ngón tay thứ 2, nốt 47 bằng ngón tay thứ 3, và nốt 48 bằng ngón tay thứ 4 Kết quả này cho phép tìm ra quãng đường di chuyển ngắn nhất và đảm bảo tính chính xác trong việc điều khiển robot chơi nhạc tự động trên đàn piano Các kết quả này có thể áp dụng cho mọi bộ đầu vào tương tự, nâng cao hiệu suất trong việc chơi nhạc.

Hình 7 13: Kết quả in ra màn hình từ thuật toán di chuyển tay phải sau khi đọc giá trị từ tệp tin midi

Sau khi thử nghiệm thuật toán với các tệp tin MIDI đơn giản, chúng tôi đánh giá hiệu suất và tính chính xác, cho thấy thuật toán hoạt động hiệu quả trong việc xác định quãng đường di chuyển ngắn nhất và vị trí ngón tay cần nhấn Tuy nhiên, cần tiếp tục nghiên cứu và đánh giá để cải thiện tính ứng dụng và hiệu quả của thuật toán khi áp dụng trên các bộ dữ liệu lớn hoặc trong các tình huống phức tạp.

Hình 7 14: Kết quả in ra màn hình từ thuật toán di chuyển tay trái sau khi đọc giá trị từ tệp tin midi.

Kết quả thiết kế mạch điều khiển solenoid

Sau khi cấp điện, cần đo và ghi lại các giá trị dòng điện và điện áp tại các điểm quan trọng trong mạch như dòng điện base, điện áp base-emitter, dòng điện collector và điện áp collector-emitter Việc này đảm bảo chất lượng in mạch tốt và mạch hoạt động bình thường trước khi hàn các linh kiện điện tử Điện trở phụ giữa chân Base (B) và chân tín hiệu của PCF8574 có vai trò giới hạn dòng điện vào Transistor TIP120.

Với mạch thiết kế này, solenoid 24V có thể được kích hoạt thông qua tín hiệu từ mạch PCF8574 Kết quả thử nghiệm cho thấy mạch điện hoạt động nhanh, ổn định và duy trì nhiệt độ ổn định.

Kết quả chạy thực nghiệm trên phím đàn

Bảng sau đây là thống kê các thông số sau khi cho robot chạy thực nghiệm trên phím đàn thật, ta được kết quả như sau

Bảng 7 1: Thống kê kết quả chơi đàn chạy thực nghiệm

Số phím đàn đánh được

Số phím đàn đánh lỗi

Kết quả thực nghiệm cho thấy tỉ lệ đánh trúng các vị trí phím đàn cao đạt ≥ 97% Đối với những bài nhạc dễ, chậm và thông dụng, tỉ lệ đánh trúng phím đàn gần như hoàn hảo, đạt khoảng 100%.

Dựa trên kết quả từ quá trình thực nghiệm, chúng ta có thể đánh giá những ưu điểm và nhược điểm cơ bản của cơ cấu, từ đó rút ra những nhận định quan trọng về hiệu quả và hạn chế của nó.

✓ Cơ cấu di chuyển qua lại của bàn tay hoạt động ổn định, quá trình di chuyển qua lại không gây quá nhiều tiếng ồn

✓ Cơ cấu ngón tay đánh đàn hoạt động ổn định và đánh đúng vị trí thiết kế ban đầu của ngón tay

✓ Ngón nhấn tạo đủ lực nhấn lên phím đàn

✓ Âm thanh bài nhạc được tạo ra đúng theo tài liệu Midi cho sẵn

✓ Có thể hoạt động đồng thời hai bàn tay đánh đàn cùng một lúc để có thể triễn khai đồng thời hợp âm chính và hợp âm phụ

✓ Âm thanh từ hoạt động từ solenoid đã được giảm thiểu trong quá trình hoạt động

✓ Tay bấm phím đàn vẫn chưa được thanh thoát như bàn tay người

✓ Các phím nhấn vẫn chưa có độ luyến vừa phải

Khi chơi một số bài nhạc, việc sử dụng hai bàn tay quá gần nhau có thể gây ra va chạm, ảnh hưởng đến hiệu suất đánh đàn.

Một số hợp âm khó mà nghệ sĩ sáng tạo khi chơi đàn có thể không khớp với vị trí ngón tay theo thiết kế ban đầu, dẫn đến việc thuật toán không thể xác định vị trí phù hợp cho tổ hợp đó.

Dựa trên quá trình đánh giá những ưu điểm và khuyết điểm, nhóm đã đề xuất một số giải pháp nhằm khắc phục nhược điểm và phát huy tối đa ưu điểm.

✓ Lựa chọn bài nhạc phù hợp hơn với những hợp âm mà bàn tay đã được thiết kế có khả năng thỏa mãn.

✓ Tạo độ luyến cho các ngón tay bằng quá trình đệm đàn bằng chân.

✓ Trang trí thêm đèn led, tô màu, … để tăng tính thẩm mỹ cho các ngón tay.

Tìm kiếm các hợp âm dễ dàng giúp bạn linh hoạt thay đổi vị trí ngón tay, từ đó phù hợp hơn với các hợp âm trong bài nhạc.

Thử nghiệm trên nhiều thể loại nhạc khác nhau để xem khả năng linh hoạt của robot piano trong thực nghiệm

KẾT LUẬN – HƯỚNG PHÁT TRIỂN

Nhóm nghiên cứu đã phát triển robot ấn tượng thông qua các giải pháp sáng tạo và ứng dụng công nghệ Họ tập trung vào hai lĩnh vực chính: tạo hình và mô phỏng chuyển động cho khuôn mặt robot, cũng như thiết kế, lập trình và phân tích khả năng chơi đàn trên phím thật.

Robot piano của nhóm không chỉ chơi nhạc một cách chính xác mà còn thể hiện cảm xúc và tương tác với khán giả Nhờ vào khuôn mặt linh hoạt, robot có thể biểu đạt nhiều cảm xúc qua biểu cảm khuôn mặt Hơn nữa, hệ thống điều khiển thông minh giúp robot chơi nhiều bài nhạc và thích nghi với yêu cầu của khán giả.

Ngoài ra vẫn có một số nội dung mà nhóm vẫn chưa hoàn thành tốt:

- Thiết kế miệng robot hoàn chỉnh

- Tích hợp hệ thống phân tích hình ảnh trên đầu công tác robot để có thể nhận diện người dùng và tương tác

- Đánh tất cả các bài nhạc và thể loại nhạc mà người dùng đặt ra

Mặc dù còn một số hạn chế trong nội dung, sự tiến bộ công nghệ và phát triển ngành công nghiệp robot hứa hẹn sẽ đưa robot chơi đàn piano trở thành một phần quan trọng trong các buổi biểu diễn âm nhạc và cuộc sống hàng ngày Nhóm nghiên cứu hy vọng rằng những nỗ lực của họ sẽ nâng cao trải nghiệm âm nhạc và tạo ra sự kết nối đặc biệt giữa con người và công nghệ robot.

Để tối ưu hóa hiệu suất của robot khi chơi nhạc, cần chú trọng vào vị trí đặt tay và tốc độ nhấn phím, nhằm phù hợp với khả năng đánh đàn của thiết bị.

- Thiết kế tối ưu robot và đồng thời tích hợp AI để robot có thể tương tác với người dùng một cách thân thiện hơn và thông minh hơn

- Phối hợp màu sắc tô vẽ trang trí và thời trang một cách tốt hơn để tăng tính thẩm mỹ cho robot

- Hoàn thành cơ cấu miệng một cách hoàn chỉnh để tăng khả năng giao tiếp của robot

[1] J R D.-P a M A G.-C Flabio Dario Mirelez-Delgado, Stewart-Gough Platform: Design and Construction with a Digital PID Controller Implementation, November 2020

T T Q Trường, Nguyên lý máy, TP Hồ Chí Minh 2012

Design and Control of Humanoid Robot for Medical Purposes, January 2020

Open-Source Robotics, 3D Printing and Engineering Projects Available: http://www.nilheim.co.uk/latest-projects-and-blog/simplified-3d-printed-animatronic- dual-eye-mechanism

T R Peterson, "Design and Implementation of Stewart Platform Robot for Bobotics Course Laboratory," pp.5-6, March 2020

J R D.-P a M A G.-C Flabio Dario Mirelez-Delgado, Stewart-Gough Platform: Design and Construction with a Digital PID Controller Implementation, pp 12-13, November 2020

T R Peterson, "Design and Implementation of Stewart Platform Robot for Bobotics Course Laboratory," pp.21-22, March 2020

J R D.-P a M A G.-C Flabio Dario Mirelez-Delgado, Stewart-Gough Platform: Design and Construction with a Digital PID Controller Implementation, pp 19-20, November 2020

PSG TS Trịnh Chất - Lê Văn Uyển (2006) Tính toán thiết kế hệ dẫn động cơ khí, tập

1, Nhà xuất bản Giáo Dục Việt Nam

GIẤY XÁC NHẬN CHUYỂN GIAO CÔNG NGHỆ

Ngày đăng: 14/11/2023, 16:09

w