1.2 Mục tiêu đề tài : − Biết cách thiết kế hệ thống trên phần mềm SolidWork.− Vẽ được các bộ phận 2D trên phần mềm AutoCad.− Tính toán được các phương trình động học của robot.− Lựa chọn
Tổng quan về phần mềm và cơ sở lý thuyết
Ngôn ngữ C# trong lập trình giao diện điều khiển
C# hay còn được gọi với một cái tên khác là C Sharp, phát triển bởi tập đoàn Microsoft và ra mắt vào năm 2000.
Có thể nói, C# là ngôn ngữ lập trình khá đơn giản, nằm trong nhóm những ngôn ngữ hiện đại và có tính chất hướng đối tượng.
Nó kế thừa những ưu điểm nổi bật của hai ngôn ngữ lập trình mạnh nhất hiện nay, C++ và Java Bên cạnh đó, C# cũng được giới chuyên gia nhận định có sự cân bằng giữa C++, Visual Basic, Java và cả Delphi. Đối với những ứng dụng tạo ra từ NET framework, mã nguồn chương trình sẽ biên dịch sang Microsoft Intermediate Language (ngôn ngữ trung gian MSIL) Sau đó, nó cần thông qua Common Language Runtime (CLR) để chương trình có thể chạy được trên hệ điều hành.
Nhờ có sự hỗ trợ của NET framework mà công việc tạo ra chương trình cho Windows Form, WPF hay phát triển game, cũng như các ứng dụng web và mobile đã trở nên dễ dàng, nhanh chóng hơn rất nhiều.
Windowns Forms là thuật ngữ mô tả một ứng dụng được viết dùng NET FrameWorrk và có giao diện người dùng Windows Forms (màn hình windows).
Mỗi màn hình windows cung cấp một giao diện giúp người dùng giao tiếp với ứng dụng Giao diện này được gọi là giao diện đồ họa (GUI) của ứng dụng.
Là các ứng dụng windows chạy trên máy tính - mã lệnh thực thi ngay trên máy tính: Microsoft Word, Excel, Access, Calculator, Yahoo, Mail, là các ứng dụng Windows
Phần mềm lập trình ARDUINO IDE
Arduino IDE là một phần mềm với một mã nguồn mở, được sử dụng chủ yếu để viết và biên dịch mã vào module Arduino Nó bao gồm phần cứng và phần mềm Phần cứng chứa đến 300,000 board mạch được thiết kế sẵn với các cảm biến, linh kiện Phần mềm giúp bạn có thể sử dụng các cảm biến, linh kiện ấy của Arduino một cách linh hoạt phù hợp với mục đích sử dụng Đây là một phần mềm Arduino chính thống, giúp cho việc biên dịch mã trở nên dễ dàng, ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thể làm được.
2.2.2 Arduino IDE hoạt động như thế nào?
Trong quá trình người dùng viết mã và biên dịch, IDE sẽ tạo ra một file Hex cho mã File Hex là một file thập phân Hex được Arduino hiểu và sẽ được tải vào bo mạch thông qua cáp USB Mỗi bo mạch Arduino đều có một bộ nạp khởi động (Bootloader) có nhiệm vụ đọc dữ liệu trong file Hex và ghi dữ liệu này vào bộ nhớ Flash của vi điều khiển trên bo mạch.
Arduino đều được tích hợp một bộ vi điều khiển, bộ vi điều khiển sẽ nhận file Hex và chạy theo mã được viết.
2.2.3 Lý do nên sử dụng Arduino IDE
Phần mềm lập trình mã nguồn mở miễn phí IDE trong Arduino IDE là phần có nghĩa là mã nguồn mở Nghĩa là phần mềm này miễn phí cả về phần tải về lẫn phần bản quyền.
Người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung được nhà phát hành cho phép mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng.
Arduino IDE là phần mềm nguồn mở với khả năng bảo mật thông tin tuyệt vời Nhóm phát hành liên tục vá các lỗi bảo mật và cập nhật nhanh chóng, đảm bảo thông tin người dùng được an toàn Điều này giúp ngăn ngừa mất hoặc rò rỉ dữ liệu.
Sử dụng ngôn ngữ C/C++ thân thiện với các lập trình viên, Arduino IDE được biết đến rộng rãi với khả năng nhận dạng mọi đoạn mã C/C++ Đặc điểm này tạo điều kiện thuận lợi cho các lập trình viên trong quá trình thiết kế chương trình cho bo mạch Arduino.
Arduino có một module quản lý bo mạch, nơi người dùng có thể chọn bo mạch mà họ muốn làm việc cùng và có thể thay đổi bo mạch thông qua Menu Quá trình sửa đổi lựa chọn cũng liên tục tự động cập nhật để các dữ liệu có sẵn trong bo mạch và dữ liệu sửa đổi đồng nhất với nhau Bên cạnh đó, Arduino IDE cũng giúp bạn tìm ra lỗi từ code mà bạn viết, qua đó giúp bạn sửa lỗi kịp thời tránh tình trạng bo mạch Arduino làm việc với code lỗi quá lâu dẫn đến hư hỏng hoặc tốc độ xử lý bị giảm sút.
2.2.4 Thư viện hỗ trợ phong phú
Arduino IDE tích hợp với hơn 700 thư viện, được viết và chia sẻ bởi nhà phát hành Arduino Software và thành viên trong cộng đồng Arduino Mọi người có thể tận dụng chúng cho dự án của riêng mình mà không cần phải bỏ ra bất kỳ chi phí nào.
Giao diện đơn giản, dễ sử dụng Arduino IDE có một giao diện đơn giản, dễ sử dụng giúp người dùng thuận tiện hơn trong thao tác Dưới đây là một số tính năng chúng ta thường sử dụng:
Nút kiểm tra chương trình (Verify): giúp dò lỗi phần code định truyền xuống bo mạch Arduino.
Nút tải đoạn code vào bo mạch Arduino (Upload): giúp nhập đoạn code vào bo mạch Arduino.
Vùng lập trình: người dùng sẽ viết chương trình tại khu vực này.
Thanh Menu: gồm những thẻ chức năng nằm trên cùng như File, Edit, Sketch, Tools,Help.
Tổng quan về phần mềm Matlab
2.3.1 Giới thiệu phần mềm Matlab
Matlab viết tắt của Matrix Laboratory, là một môi trường phần mềm trong toán học tính toán Phần mềm được phát triển vào cuối những năm 70 bởi CleveMoler (Stanford) với mục đích giúp sinh viên thực hiện các tính toán số mà không cần phải học một ngôn ngữ lập trình bậc thấp.
Được phát triển bởi MathWorks, MATLAB được biết là một ngôn ngữ lập trình bậc cao chuyên xử lý các phép tính kỹ thuật, đặc biệt là các bài toán liên quan đến ma trận hoặc vector Giao diện thân thiện của phần mềm kết hợp nhuần nhuyễn giữa tính toán, đồ họa và lập trình, tạo điều kiện thuận lợi cho việc biểu diễn các bài toán và nghiệm dưới dạng các ký hiệu toán học dễ hiểu.
Matlab là một hệ tương tác, có các thành phần dữ liệu cơ bản là một mảng mà không cần khai báo trước số chiều Phần mềm đã trải qua nhiều năm phát triển với sự đóng góp của nhiều chuyên gia Trong trường đại học, nó là một công cụ chuẩn cho các khoa học về toán, kỹ thuật và khoa học từ mở đầu đến nâng cao Trong công nghiệp, matlab là một công cụ hữu ích cho việc nghiên cứu, phát triển và phân tích các sản phẩm chất lượng cao.
Ngôn ngữ matlab: là một ngôn ngữ lập trình bậc cao (scritp) với các lệnh điều khiển, chức năng, cấu trúc dữ liệu, đầu vào/đầu ra và khả năng lập trình.
Môi trường làm việc Matlab: giúp sử dụng các hàm và tệp trong Matlab bao gồm các công cụ quản lý biến và xuất nhập dữ liệu trong môi trường làm việc Ngoài ra, nó cũng có các công cụ để phát triển, quản lý, gỡ lỗi và lập hồ sơ các tệp m và các ứng dụng matlab.
Xử lý đồ họa: một công cụ giúp bạn xem dữ liệu của mình ở định dạng biểu đồ.
Ngoài ra, có thể xây dựng giao diện đồ họa.
Thư viện hàm số học bao gồm các thuật toán tính toán đa dạng, từ căn bản như tổng, sin, cos và phép tính số học, đến các hàm phức tạp như ma trận đảo ngược, giá trị riêng, vectơ riêng của ma trận, hàm Bessel và phép biến đổi Fourier nhanh.
Matlab API: là một thư viện cho phép bạn viết phần mềm c và fortran và tương tác với matlab bao gồm các công cụ để gọi các quy trình lặp matlab (liên kết động) Sử dụng matlab như một công cụ máy tính để đọc và ghi m tệp.
Hình 2-2 Giao diện phần mềm Matlab
Matlab là một ngôn ngữ lập trình cao cấp để tính toán số và phát triển ứng dụng.
Cung cấp một môi trường tương tác để điều tra, thiết kế và giải quyết các vấn đề.
Nó cung cấp một thư viện lớn các hàm toán học để giải các hàm số tuyến tính, thống kê, phân tích Fourier; lọc, tối ưu hóa, tích phân và phương trình vi phân bình thường.
Matlab cung cấp các biểu đồ tích hợp để trực quan hóa dữ liệu và các công cụ để tạo biểu đồ tùy chỉnh.
Cung cấp các công cụ phát triển để tăng khả năng bảo trì chất lượng mã và tối đa hóa hiệu suất.
Cung cấp các công cụ để xây dựng ứng dụng bằng giao diện đồ họa tùy chỉnh.
Các chức năng để tích hợp các thuật toán dựa trên Matlab với các ứng dụng bên ngoài và các ngôn ngữ khác như c, java, net và microsoft excel.
Tính ứng dụng của matlab khá rộng rãi, được sử dụng như công cụ tính toán trong lĩnh vực khoa học và kỹ thuật: công nghệ, toán học, hóa học, vật lý…
Matlab được sử dụng hầu hết trong các việc như:
- Xử lý tín hiệu và truyền thông.
- Xử lý chất lượng hình ảnh, video.
- Ứng dụng tính toán tài chính, sinh học.
- Ứng dụng trong kiểm tra, tính toán và đo lường.
Tạo giao diện điều khiển trên matlab bằng tool Design app
App Designer là một công cụ phát triển ứng dụng đồ họa trong MATLAB, cho phép bạn tạo giao diện người dùng (GUI) tương tác cho các ứng dụng MATLAB của mình một cách dễ dàng Với App Designer, bạn có thể tạo ra các ứng dụng GUI phong phú và linh hoạt mà không cần viết mã phức tạp.
Dưới đây là một số đặc điểm và tính năng chính của App Designer:
− Môi trường kéo và thả: App Designer cung cấp một môi trường làm việc trực quan và dễ sử dụng, cho phép bạn kéo và thả các thành phần như nút, hộp văn bản, biểu đồ và hình ảnh vào giao diện người dùng của ứng dụng của bạn Bằng cách sử dụng các công cụ nhanh chóng và dễ dùng này, bạn có thể xây dựng giao diện người dùng theo ý muốn của mình.
− Editor mã: App Designer kết hợp một trình soạn thảo mã tích hợp, cho phép bạn tùy chỉnh hành vi và xử lý sự kiện của các thành phần trong ứng dụng Bạn có thể viết mã MATLAB để xử lý sự kiện như nhấn nút, thay đổi giá trị trong hộp văn bản, hoặc tương tác với dữ liệu.
− Giao diện dễ thao tác: Với App Designer, bạn có thể tạo ra giao diện người dùng tương tác với các thành phần như nút bấm, ô đầu vào và biểu đồ Bạn có thể thay đổi thuộc tính của các thành phần này, ví dụ như màu sắc, kích thước và vị trí, để tạo ra giao diện phù hợp với nhu cầu của ứng dụng.
Nhà thiết kế ứng dụng App Designer hỗ trợ bạn tương tác với dữ liệu và thực hiện các phép tính trong ứng dụng của mình Bạn có thể sử dụng biểu đồ, bảng và biểu thức toán học để hiển thị và xử lý dữ liệu theo đúng ý muốn.
− Tích hợp dễ dàng: App Designer tích hợp một cách mượt mà với các công cụ và tính năng khác trong MATLAB Bạn có thể sử dụng các hàm và công cụ MATLAB mạnh mẽ để thực hiện tính toán và phân tích dữ liệu trong ứng dụng của mình.
− App Designer là một công cụ mạnh mẽ để tạo ra các ứng dụng GUI tương tác trongMATLAB một cách nhanh chóng và dễ dàng Với khả năng kéo và thả và tích hợp các công cụ MATLAB, bạn có thể tạo ra các ứng dụng GUI phong phú và tùy chỉnh theo ý muốn của mình để phục vụ các nhu cầu phân tích dữ liệu và tính toán của bạn.
Hình 2-4 Giao diện Design App
Tổng quan về phần mềm SolidWork
SOLIDWORKS là phần mềm thiết kế 3D trên Windows của Dassault Systèmes, Pháp Dù dễ sử dụng và trực quan, SOLIDWORKS vẫn là phần mềm thiết kế 3D mạnh mẽ, cung cấp tính năng tối ưu cho việc thiết kế chi tiết khối 3D, lắp ráp chi tiết tạo thành bộ phận máy móc sản xuất.
Hình 2-5 Sản phẩm thiết kế của SOLIDWORKS
Hiện nay, SOLIDWORKS là một trong những phần mềm CAD phổ biến nhất.
Trong thực tế, SOLIDWORKS đang được sử dụng bởi hơn 2 triệu kỹ sư và hơn 200.000 doanh nghiệp và tập đoàn trên toàn thế giới Với nhiều tính năng nổi trội, SOLIDWORKS không chỉ được sử dụng trong lĩnh vực cơ khí mà nó còn được mở rộng ra nhiều ngành nghề và lĩnh vực khác như: Điện, xây dựng, khoa học ứng dụng,
Trải qua thời gian dài phát triển với nhiều phiên bản ra đời, SOLIDWORKS đã có nhiều bước tiến vượt trội về tính năng, hiệu suất để đáp ứng các nhu cầu thiết kế 3D chuyên nghiệp cho các ngành kỹ thuật, công nghiệp
2.5.2 Lịch sử hình thành và phát triển của phần mềm SOLIDWORKS
SOLIDWORKS được phát triển bởi Jon Hirschtick, tốt nghiệp đại học MIT Vào tháng 12/1993, tổng công ty SOLIDWORKS được thành lập Hirschtick tuyển dụng một đội ngũ kỹ sư với để xây dựng phần mềm CAD 3D mà dễ sử dụng, giá cả phải chăng, và chạy trên Windows Và sau đó được Dassault Systèmes mua vào năm 1997 với giá $ 310.000.000
Năm 1995, SOLIDWORKS ra mắt sản phẩm đầu tiên là SOLIDWORKS 95 Đến nay, sau 26 phiên bản, DS SOLIDWORKS Corp đã bán hơn 1,5 triệu giấy phép trên toàn thế giới Bertrand Sicot hiện là CEO điều hành của công ty Được giới thiệu tại Việt Nam với phiên bản 2003, SOLIDWORKS tập trung thiết kế mô hình 3D dựa trên phương pháp thành phần - tham số để tạo mô hình và lắp ráp.
Năm 2021, SOLIDWORKS 3D đã trở thành giải pháp nền tảng cho lĩnh vực thiết kế, với hơn 500 giải pháp đối tác hỗ trợ một loạt các ngành công nghiệp Nó đáp ứng nhu cầu thiết kế và chế tạo tại hơn 80 quốc gia trên toàn thế giới, đóng góp đáng kể vào sự phát triển của ngành công nghiệp nói chung.
2.5.3 Chức năng phần mềm SOLIDWORKS
Phần mềm thiết kế hỗ trợ máy tính (CAD) là một tính năng trong SOLIDWORKS, giúp người dùng làm quen với phần mềm và thiết kế nhanh chóng nhờ giao diện trực quan và sự sắp xếp hợp lý các thanh công cụ.
CAE (Computer - Aided Engineering) có nhiệm vụ mô phỏng hoạt động để cải thiện thiết kế sản phẩm hoặc hỗ trợ trong việc giải quyết các vấn đề kỹ thuật CAE bao gồm các chức năng mô phỏng, xác nhận, tối ưu hóa sản phẩm, quy trình và công cụ sản xuất Nhờ tích hợp bộ phần mềm phân tích Cosmos chạy trong môi trường của SOLIDWORKS mà người dùng có thể phân tích một số phần phức tạp như:
− Phân tích sự va chạm của các chi tiết
− Phân tích thuỷ khí động học
− Phân tích động lực học
− Phân tích quá trình rót kim loại lỏng vào khuôn
Hình 2-6 Mô phỏng trong SOLIDWORKS
CAM (Computer - Aided Manufacturing) hay còn gọi là chức năng SOLIDWORKS CAM là một trong những CNC hỗ trợ trong lĩnh vực gia công phay, cho phép tích hợp các quy trình thiết kế và sản xuất theo một hệ thống để đánh giá thiết kế, giúp các chương trình gia công được tạo lập dễ dàng, tiết kiệm chi phí và thời gian.
Khả năng thiết kế mô hình 3D hoàn hảo : Đây là một trong những tính năng nổi bật của phần mềm SOLIDWORKS.
SOLIDWORKS vượt trội hơn hẳn bởi tính trực quan, phương pháp xây dựng mô hình 3D nhanh chóng Khả năng sử dụng dữ liệu bản vẽ, phác thảo 2D chuyển đổi thành mô hình hình học 3D Bên cạnh đó, SOLIDWORKS có khả năng dựng mô hình 3D từ ảnh chụp, điều này hỗ trợ rất lớn cho việc sáng tạo và phát triển sản phẩm
Tính năng lắp ráp các chi tiết :
Hầu hết các phần mềm CAD/CAM nào cũng có tính năng này Sau khi thiết kế, các chi tiết 3D sẽ có thể được lắp ráp để thành một bộ phận máy hoặc một khối hoàn chỉnh Tính năng này có thể giúp bạn dễ dàng chỉnh sửa, tự do sáng tạo và phát triển những sản phẩm mới
Hình 2-7 Khả năng thiết kế mô hình 3D hoàn hảo của SolidWork
Xuất bản vẽ trên phần mềm SOLIDWORKS :
SOLIDWORKS cho phép bạn tạo dễ dàng các hình chiếu vuông góc của các chi tiết hoặc cụm lắp với tỷ lệ và vị trí tùy chỉnh mà không làm thay đổi kích thước Khả năng tạo bản vẽ chính xác này giúp quá trình sản xuất trở nên dễ dàng và nhanh chóng hơn.
SOLIDCAM là một phần mềm tích hợp sẵn trên giao diện SOLIDWORKS để hỗ trợ gia công SOLIDCAM trước đây là một phần mềm độc lập nhưng nay đã được tích hợp vào SOLIDWORKS, giúp người dùng có thể dễ dàng sử dụng các tính năng gia công ngay trong môi trường thiết kế của SOLIDWORKS SOLIDCAM được đánh giá là có giao diện thân thiện và dễ thao tác.
Phân tích động lực học trên SOLIDWORKS : Để kiểm tra và cải thiện chất lượng bản thiết kế, SOLIDWORKS Simulation cung cấp các công cụ mô phỏng hỗ trợ Các sản phẩm được kiểm tra về độ bền, về hệ số an toàn và được phân tích động học đầy đủ, được mô phỏng tính toán như thật để hạn chế phế phẩm trong quá trình sản xuất
Tầm quan trọng của SOLIDWORKS
Với các chức năng và tính năng vô cùng hữu ích thì phần mềm SOLIDWORKS vô cùng quan trọng trong việc hỗ trợ các kỹ sư thiết kế bản vẽ:
Phần mềm thiết kế 2D bằng AutoCad
2.6.1 Phần mềm AutoCAD là gì?
AutoCAD (viết tắt của Automatic Computer Aided Design) là một ứng dụng phần mềm được phát triển bởi Autodesk cho phép thiết kế và soạn thảo với sự hỗ trợ máy tính (CAD) Phần mềm này được sử dụng để tạo bản vẽ 2D và 3D, cho phép người dùng khái niệm hoá các ý tưởng, tạo ra các thiết kế và bản vẽ theo mức độ chính xác kỹ thuật cần thiết Thậm chí, AutoCAD có thể thực hiện tính toán và mô phỏng thiết kế nhanh chóng trên một loạt các ngành công nghiệp.
AutoCAD là một sản phẩm chủ lực của Autodesk, đi đầu trong ngành công nghiệp CAD Phiên bản AutoCAD đầu tiên đã được trình diễn tại Comdex năm 1982, và được phát hành vào tháng 12 cùng năm Bản phát hành đã chứng tỏ sự rung chuyển mạnh mẽ đối với ngành công nghiệp CAD AutoCAD cũng là một trong những gói CAD đầu tiên chạy trên PC và có sẵn cho khách hàng trên toàn thế giới.
2.6.2 Nguồn gốc của phần mềm AutoCAD :
Một trong những thông tin không thể bỏ qua về AutoCAD chính là nguồn gốc ra đời của phần mềm này AutoCAD là sản phẩm của Autodesk được thành lập vào năm 1982 bởi John Walker cùng 15 người đồng sáng lập khác Họ xác định AutoCAD sẽ là sản phẩm chủ lực, đồng thời, cho ra mắt AutoCAD tại triển lãm thương mại COMDEX ở Las Vegas với tư cách là chương trình CAD đầu tiên trên thế giới chạy trên PC
Hình 2-10 Trong gần 40 năm phát triển, AutoCAD sở hữu 31 phiên bản đã được cho ra mắt từ lần phát hành đầu tiên vào năm 1982.
AutoCAD đã trở thành ứng dụng thiết kế được sử dụng phổ biến nhất trên toàn thế giới chỉ 4 năm sau khi ra mắt vào tháng 3 năm 1986 Trải qua nhiều năm, AutoCAD vẫn giữ vững vị thế này.
Trong suốt quá trình phát triển gần 40 năm của AutoCAD, Autodesk đã liên tục nâng cấp và phát hành 31 phiên bản kể từ lần ra mắt đầu tiên vào năm 1982 Để mở rộng phạm vi sử dụng, Autodesk cũng không ngừng cải tiến, tích hợp thêm nhiều tính năng và chương trình mới, đáp ứng nhu cầu đa dạng của các ngành nghề khác nhau.
Cụ thể, phần mềm hỗ trợ APIs để tùy chỉnh và tự động hóa, cho phép tạo ra các sản phẩm chuyên ngành như AutoCAD Architecture, AutoCAD Electrical, AutoCAD Civil 3D,… Trong năm năm qua, Autodesk cũng đã tạo ra các ứng dụng di động và ứng dụng đám mây, bao gồm AutoCAD 360 , Fusion 360 và A360 Viewer Các chương trình này kết hợp các công cụ thiết kế và tài liệu cùng với khả năng chia sẻ và cộng tác qua Internet.
2.6.3 Ứng dụng phần mềm AutoCAD vào đời sống :
Ban đầu, phần mềm AutoCAD được tạo ra cho các kỹ sư cơ khí, nhưng nhanh chóng được mở rộng khả năng ứng dụng để phục vụ một số lĩnh vực khác Trên thực tế, sự thành công của phần mềm AutoCAD phần lớn dựa vào sự ủng hộ và chấp nhận của các chuyên gia thiết kế, bao gồm: kiến trúc sư, quản lý dự án, hoạ sĩ hoạt hình hay kỹ sư
Sau đây là 2 lĩnh vực mà phần mềm AutoCAD được sử dụng nhiều nhất :
Hình 2-11 AutoCAD được sử dụng chủ yếu trong lĩnh vực xây dựng.
AutoCAD được sử dụng chủ yếu trong lĩnh vực xây dựng Autodesk Building Design Suite, hiện là Autodesk AEC Collection cung cấp một gói các phần mềm thiết kế xây dựng 3D kết hợp Công cụ mô hình thông tin xây dựng (BIM) và các công cụ CAD để giúp các kỹ sư xây dựng thiết kế, trực quan hóa, mô phỏng và xây dựng hiệu quả hơn.
Việc triển khai Building Information Modeling (BIM) mang lại nhiều lợi ích thiết thực cho các bên liên quan BIM cho phép các đơn vị, đội nhóm phân tích thiết kế kỹ lưỡng hơn, từ đó nâng cao độ chính xác trong ra quyết định Các phân tích về năng lượng công trình cũng hiệu quả hơn, góp phần thiết kế nên các công trình thân thiện với môi trường Ngoài ra, BIM còn giúp tiết kiệm đáng kể vật liệu xây dựng, tối ưu chi phí và tài nguyên.
Hình 2-12 AutoCAD được sử dụng hiệu quả trong lĩnh vực Kỹ thuật Cơ khí
AutoCAD giúp thực thi hiệu quả, giảm thiểu lỗi tối đa các bản vẽ của thành phần kỹ thuật, thiết kế cơ sở hạ tầng và phân tích các hệ thống HVAC đóng vai trò chính trong hầu hết các lĩnh vực kỹ thuật, các ngành kỹ thuật, cơ khí, hệ thống và kỹ thuật điện
AutoCAD cũng là một trong những phần mềm thiết kế cung cấp cho các chuyên gia ngành kỹ thuật cơ khí các công cụ soạn thảo độc đáo có thể được sử dụng để đưa các ý tưởng kỹ thuật của họ vào thực tế với độ chính xác mà họ yêu cầu.
Từ đó, AutoCAD trở thành phần mềm để thiết kế các thành phần cơ khí, phân tích các hệ thống điện và đường ống và giải quyết các vấn đề thiết kế có thể phát sinh.
Trên đây là những thông tin tổng hợp về phần mềm AutoCAD từ Xây dựng Hòa Bình gửi đến các độc giả trong bài viết này Bài viết cung cấp những thông tin chính xác và hữu ích nhất về phần mềm thiết kế này, giúp bạn đọc hiểu rõ hơn về AutoCAD và các ứng dụng của nó trong ngành xây dựng, thiết kế.
Đặt trục cho robot 3 bậc tự do
Hình 2-13 Đặt trục cho robot ba bậc tự do
Bảng thông số cho mô hình :
Bảng 2-1 Bảng thông số mô hình
L1 = 105 mm Chiều dài của khâu 1
L2 = 162 mm Chiều dài của khâu 2
L3 = 130 mm Chiều dài của khâu 3
D1 = 52mm Khoảng cách giữa trục {1} và trục {2}
Quy tắc đặt hệ trục tọa độ trong robot : 1 Hệ trục thứ {i} sẽ gắn với khâu thứ {i}.
2 Trục z i là trục của khớp thứ i.
3 Trục x i là đường vuông góc chung và cắt cả z i và z i 1
4 Trục y i được suy ra từ quy tắc bàn tay phải.
5 Hệ trục {0} sẽ là hệ trục 1 khi biến khớp 1 có giá trị bằng 0.
6 Hệ trục N được chọn tùy ý sao cho càng nhiều thông số khâu và khớp bằng 0 càng tốt.
Bảng DH rút ra được như sau : Bảng DH :
Bảng 2-2 Bảng DH cho robot i i 1 a i 1 d i i
Tọa độ điểm đầu cuối so với hệ trục 3 :
i : Góc giữa z i và z i 1 quanh trục X i a i
: Khoảng cách giữa z i và z i 1 quanh trục X i di : Khoảng cách giữa Xi-1 và Xi quanh trục Zi
i : Gốc giữa Xi-1 và Xi quanh trục Zi
Tính toán động học thuận
2.8.1 Động học thuận : Động học thuận (Forward Kinematics) là một khái niệm trong robot học và động học Nó liên quan đến việc xác định vị trí và định hướng của bộ phận cuối cùng của robot (có thể là bàn tay, công cụ hoặc đầu robot) dựa trên các thông số của các khớp hoặc liên kết trong robot.
Trong động học thuận của hệ thống robot, các phương pháp hình học và ma trận biến đổi được sử dụng để tính toán vị trí và định hướng của các khớp và liên kết dựa trên thông số hình học và hệ tọa độ của chúng Các thông số khớp, chẳng hạn như góc quay, độ dài và bán kính, đóng vai trò quan trọng trong việc xác định đường đi từ các khớp đến đầu ra hoặc công cụ của robot.
Kết quả của động học thuận là một ma trận biến đổi (thường được gọi là ma trận đồng nhất) mô tả vị trí và định hướng của bộ phận cuối cùng của robot trong không gian toạ độ toàn cục hoặc không gian công việc của robot. Động học thuận là một khái niệm quan trọng trong robot học, đặc biệt trong việc điều khiển robot và lập trình robot để thực hiện các tác vụ cụ thể Nó cho phép xác định vị trí và định hướng của bộ phận cuối cùng của robot dựa trên các thông số của các khớp hoặc liên kết, từ đó giúp định rõ quỹ đạo và vận động của robot.
2.8.2 Tính toán động học thuận : Ở bài toán này, nhóm sinh viên sẽ đặt trục và tính toán động học thuận cho robot theo phương pháp được đề ra ở cuốn sách “Introduction to ROBOTICS Mechanical and Control
” của tác giả John Craig, phương trình tổng quát được đề ra như sau :
Ma trận chuyển đội hệ trục 0 và 1 :
Ma trận chuyển đổi hệ trục 0 và 2 :
Ma trận chuyển đổi hệ trục 0 và 3 :
Vị trí điểm cuối của robot :
Tính toán động học nghịch
Mục đích của bài toán động học nghịch là tìm các biến khớp của tay máy khi biết vị trí khâu tác động cuối của tay máy.
Có 2 phương pháp để giải bài toán động học nghịch là phương pháp hình học và phương pháp đại số Ở bài toán này nhóm sử dụng phương pháp đại số để tính toán ra các góc khớp khi đã biết vị trí điểm đầu cuối của robot: Ở phương trình (1.7) sau khi giải bài toán động học thuận ta tìm được điểm đầu cuối của robot 3 bậc tự do so với điểm tọa độ thứ {0}:
Ta nhân lần lượt sin 1 ,cos 1 cho phương trình x và y ta thu được kết quả : Ở đây ta đặt sin x s x và cos x c x
, x = 1,2,3 tương ứng với các góc .
Lấy xs 1 yc 1 ta được :
Ta nhân 2 vế phương trình cho 2 2
Thay (1.13) và (1.14) vào (1.11) ta được :
Rút gọn phương trình (1.17) ta thu được
Ta nhân lần lượt sin 1 ,cos 1 cho phương trình y và x ta thu được kết quả : Ở đây ta đặt sin x s x và cos x c x
, x = 1,2,3 tương ứng với các góc .
Lấy xc 1 ys 1 ta được :
Bình phương và cộng 2 vế lại :
Nhân 2 vế phương trình cho 2 2 2 2
2 2 2 2 2 2 uL vL u v L L c s uL vL uL vL uL vL
Thay (1.33) và (1.34) vào (1.32) ta được :
Từ (1.28) và (1.29) ta suy ra được :
Vậy ta kết luận được góc 3 :
Không gian làm việc
2.10.1 Xác định không gian làm việc của robot
Không gian làm việc của robot là vùng chứa các điểm, vị trí mà cơ cấu cuối của robot có thể đạt tới Việc xác định được không gian làm việc của robot, ta có thể đáp ứng được các yêu cầu, nhiệm vụ làm việc trong thực tế của robot, cũng như nâng cấp và cải tiến robot sau này Để xác định không gian làm việc của robot, nhóm đã sử dụng kết quả động học thuận và dựa vào các bộ nghiệm của động học nghịch để xây dựng chương trình vẽ không gian làm việc trên phần mềm Matlab Hình dưới thể hiện kết quả không gian làm việc sau khi chạy chương trình.
Hình 2-14 Không gian làm việc của robot
Giới hạn các góc quay :
Bảng 2-3 Giới hạn hoạt động của robot
Kí hiệu Khoảng hoạt động
Quy hoạch quỹ đạo
2.11.1 Lý thuyết về quy hoạch quỹ đạo :
Quy hoạch quỹ đạo là một phần nhỏ của một vấn đề tổng thể như là dẫn đường (navigation) hay quy hoạch chuyển động (Motion planning) Hệ thống cấp bậc điển hình cho quy hoạch chuyển động như sau [2]:
Task planning – Thiết kế một vài mục tiêu (Ví dụ như nhặt đồ vật trước mặt bạn lên, gắp vật, thả vật, hàn, …)
Path planning – Đưa ra đường dẫn khả thi từ điểm đầu đến điểm cuối Một đường dẫn luôn bao gồm tập hợp của các điểm tham chiếu.
Trajectory planning – Đưa ra lịch trình theo thời gian làm sao để di chuyển theo đường dẫn mà có tính ràng buộc ví dụ như vị trí, vận tốc, gia tốc
Trajectory following – Khi kế hoạch đã được lên thì cần một hệ thống đều khiển để cho kế hoạch có thể di chuyển đấy đủ và chính xác nhất.
Hình 2-15 Quy hoạch chuyển động (Motion planning) Ở đây ta chỉ đi sâu vào phân tích về Quy hoạch quỹ đạo (Trajectory Planning).
Quy hoạch quỹ đạo ở không gian làm việc là các điểm tham chiếu và nội suy nằm trên trục tọa độ Descartes (vị trí và hướng) của một vị trí cụ thể trên cánh tay robot (thường là khâu cuối – end effector)
Quy hoạch quỹ đạo trong không gian khớp là hệ thống các điểm tham chiếu và nội suy trực tiếp tại các vị trí khớp Các quỹ đạo này được biểu diễn trong những không gian khác nhau, cụ thể là trong không gian khớp và không gian tọa độ của hệ thống cơ học, như thể hiện ở Hình 2-16.
Hình 2-16 Quy hoạch quỹ đạo cho robot Đối với mỗi không gian khác nhau sẽ có những ưu nhược điểm riêng, ưu nhược điểm của mỗi không gian sẽ được mô tả trong Bảng 3
Bảng 2-4 Ưu nhược điểm của các không gian sử dụng quy hoạch
Không gian khớp Ưu điểm Chuyển động có thể dự đoán
Có khả năng tránh chướng ngại vật và va chạm tốt hơn
Tốc độ thực hiện nhanh hơn
Chuyển động của cơ cấu truyền động trơn tru và dễ xác định hơn
Nhược điểm Thực hiện chậm hơn.
Chuyện động của cơ cấu truyền động không trơn tru và khó xác định hơn.
Các điểm trung gian không được đảm bảo tuân theo các giới hạn chung hoặc va chạm.
Các kiểu quy hoạch quỹ đạo :
Quỹ đạo vận tốc hình thang là quỹ đạo có gia tốc là hằng số, vận tốc có hình thang. Điều này dẫn đến cấu hình vị trí đường cong s.
Hình 2-17 Vận tốc hình thang
Ta có thể nội suy giữa 2 điểm dùng đa thức có các bậc khác nhau nhưng ta thường sử dùng 2 loại sau:
− Cubic (đa thức bậc 3): Yêu cầu 4 điều kiện biên: vị trí và vận tốc
− Quintic (đa thức bậc 5): Yêu cầu 6 điều kiện biên: Vị trí, vận tốc và gia tốcTương tự như vậy thì quỹ đạo có các bậc cao hơn có thể sử dụng để nối các vi phân bậc cao hơn của vị trí tại điểm waypoint.
Hình 2-18 Quy hoạch đa thức Ở bài báo cáo này chúng em sử dụng quy hoạch quỹ đạo sử dụng đa thức bậc 3.
2.11.4 Quy hoạch quỹ đạo robot 3 bậc dùng đa thức bậc 3
Ta có các điều kiện ràng buộc : Tại điểm bắt đầu :
dt Đa thức bậc ba :
Từ các điều kiện ràng buộc ta có :
Các phương trình ràng buộc được trình bày ở dạng ma trận :
Do đó các tham số của đa thức bậc bac có thể được tính bằng công thức sau:
Các nghiệm có thể tính được theo các công thức sau :
2.11.5 Quy hoạch quỹ đạo theo đường thẳng
Ta cần quy hoạch quỹ đạo di chuyển từ điểm A đến điểm B theo đa thức bậc 3 với thời gian là tf, sau đó sẽ di chuyển từ điểm B về điểm A theo đa thức bậc 3 với thời gian.
Thực hiện 5 lần theo trình tự như mô tả, kết thúc tại điểm A sau khi quy hoạch xong Để quy hoạch quỹ đạo từ điểm đến, thực hiện theo lưu đồ thuật toán sau:
Hình 2-19 Lưu đồ giải thuật từ điểm đến điểm
Từ sơ đồ giải thuật Hình 4-5 và cơ sở lý thuyết đa thức bậc ba, ta thực hiện mô phỏng và thực thi mô hình quỹ đạo theo đường thẳng.
2.11.6 Quy hoạch quỹ đạo theo hình tam giác
Ta cần quy hoạch quỹ đạo di chuyển từ điểm A đến điểm B, điểm B đến C, điểm C về A theo đa thức bậc 3 với thời gian là tf Ta sẽ thực hiện đi thực hiện lại 5 lần và dừng tại vị trí điểm A khi đã quy hoạch xong. Để thực hiện quy hoạch quỹ đạo từ điểm đến điểm ta sẽ thực hiện theo lưu đồ giải thuật như sau :
Hình 2-20 Sơ đồ giải thuật quy hoạch quỹ đạo tam giác
Từ sơ đồ giải thuật Hình 4-6 và cơ sở lý thuyết đa thức bậc ba, ta thực hiện mô phỏng và thực thi mô hình quỹ đạo theo hình tam giác.
Thi công và kiểm chứng mô phỏng
Thiết bị lựa chọn
Bảng 3-1 Bảng các thiết bị được sử dụng trong mô hình
STT Tên linh kiện Thông số Số lượng
1 Động cơ bước Nema 17 Planetary Gear Step Motor 57/11
2 Động cơ bước Nema 17 42 x 40 mm 2
3 Pulley GT2 16 răng Bước răng 2mm, trục 5mm 2
4 Pulley GT2 20 răng Bước răng 2mm, trục 8mm 1
5 Pulley GT2 60 răng Bước răng 2mm, trục 8mm 3
10 Ròng rọc 11 Limit switch 5E4 10T125 loại có bánh xe 16 x 28 x 10mm 3
12 Trụ đồng Hex-M3 Cái cái 15mm 12
13 Trụ nhựa Hex-M3 Cái cái 40mm
19 Máng đi dây diện 25 x 25 mm
22 Mạch Điều Khiển Động Cơ Bước A4988 3
23 Mica Theo bản vẽ SLL
3.1.1 Động cơ bước Nema 17 Planetary Gear Step Motor 57/11 Động cơ bước giảm tốc Size 42mm Nema 17 Planetary Gear Step Motor 57/11 là động cơ bước được tích hợp hộp số giảm tốc tỉ số 57/11 giúp tăng lực kéo và độ chính xác của động cơ, thích hợp cho các ứng dụng Robot cần chịu tải lớn và có độ chính xác cao như cánh tay Robot, robot Scara, , động cơ có chất lượng tốt, hộp số hoàn toàn bằng kim loại cho độ bền và độ ổn định cao.
Bảng 3-2 Thông số động cơ bước Nema 17 Planetary Gear Step Motor 57/11
Model: 42mm (Nema 17) Planetary Gear Step Motor 57/11 Động cơ bước giảm tốc Nema 17 tỉ số 57/11
Tỉ số giảm tốc qua hộp số: 57/11 (trước hộp số quay 57 vòng khi đó sau hộp số trục quay 11 vòng). Điện áp cấp tối đa: 24VDC
Hộp số: Kim loại Độ dài hộp số: 28.5mm Kích thước: 42 x 42 x 97 mm Momen xoắn: 30kgf.cm
Hình 3-1 Động cơ bước Nema 17 Planetary Gear
Bảng 3-3 Thông số động cơ bước Nema 17
Góc bước: 1.8°/step 1.8°/step Đường kính trục 5mm
Dây nối dài 1m, đầu dây chuẩn XH2.54 Tương thích với đầu ra động cơ bước trên mạch RAMPS 1.5 hoặc CNC shield V3 Ít tỏa nhiệt, chuyển động êm
Công suất phù hợp cho máy in 3D và laser nhỏ- Dây nối dài 1m, đầu dây chuẩn XH2.54.
Tương thích với đầu ra động cơ bước trên mạch RAMPS 1.5 hoặc CNC shield V3Trục ra động cơ được vát phẳng giúp siết puli không bị trượt
Hình 3-2 Động cơ bước Nema 17
Pulley GT2 16 răng trục 5mm
Hình 3-3 Pulley GT2 16 răng trục 5mm
Pulley GT2 20 răng trục 8mm
⬥Pulley GT2 20 răng trục 8mm
Hình 3-4 Pulley GT2 20 răng trục 8mm
3.1.4 Pulley GT2 60 răng trục 8mm
Hình 3-5 Pulley GT2 60 răng trục 8mm
Hình 3-6 Vòng đai GT2 dài 400mm
Bảng 3-4 Thông số kĩ thuật vòng bi KFL08 Đường kính trục lỗ 8mm
Vòng Bi Trục 8mm 8x22x7mm là vòng bi (bạc đạn) trục 8mm Sử dụng chung với thanh trục hoặc motor trục 8mm.
Bảng 3-5 Thông số kĩ thuật bạc đạn
Vật liệu Hợp kim Đường kính ngoài 22mm Đường kính lỗ 8mm
Bảng 3-6 Thông số kĩ thuật mặt bích
Trục nối động cơ 8mm
Bảng 3-7 Thông số kĩ thuật ròng rọc
Sản phẩm Ròng rọc GT2
Vật liệu Nhôm Đường kính ngoài puley 18mm Đường kính trong (trục) 5mm Đường kính đỉnh răng 12.2mm
Hình 3-10 Ròng rọc GT2 trục 5mm
3.1.9 Công tắc hành trình 5E4 10T125 loại có bánh xe
Bảng 3-8 Thông số kĩ thuật công tắc hành trình 5E4 10T125 loại có bánh xe
3.1.10 Trụ đồng Hex-M3 cái cái 15mm
Hình 3-12 Trụ đồng Hex-M3 15mm
3.1.11 Trụ nhựa Hex-M3 cái cái 40mm
Hình 3-13 Trụ nhựa Hex-M3 40mm
Hình 3-14 Ống soắn ruột gà
Bảng 3-9 Thông số kĩ thuật Arduino Uno R3
Sản phẩm Atmega328 họ 8bit Điện áp hoạt động 5VDC (chỉ được cấp qua cổng USB)
Tần số hoạt đọng 16MHz
Dòng tiêu thụ Khoảng 30mA Điện áp khuyên dùng 7-12VDC Điện áp giới hạn 6-20VDC
Số chân Digital I/O 14 (6 chân hardware)
Số chân Analog 6 ( độ phân giải 10 bit)
Dòng tối đa trên mỗi chân I/O 30mA
Bộ nhớ flash 32KB (Atmega328) với 0.5KB dùng bởi bootloader
Bảng 3-10 Thông số kĩ thuật Arduino Shield CNC V3
Tương thích GRBL (mã nguồn mở chạy trên Arduino UNO R3 để điều khiển CNC mini)
Hỗ trợ lên tới 4 trục (trục X, Y, Z và một trục thứ tư tùy chọn) Hỗ trợ tới 2 Endstop (cảm biến đầu cuối) cho mỗi trục
Tính năng điều khiển spindle Tính năng điều khiển dung dịch làm mát khi máy hoạt động
Sử dụng các mô đun điều khiển động cơ bước, giúp tiết kiệm chi phí khi thay thế, nâng cấp
Thiết lập độ phân giải bước động cơ bằng jump đơn giả Thiết kế nhỏ gọn, các đầu nối tiêu chuẩn thông dụng Điện áp nguồn cấp đa dạng từ 12V tới 36V.
Tương thích với module A4988 và DRV8825 Tương thích với module Uno R3
3.1.15 Mạch điều khiển động cơ bước A4988
Bảng 3-11 Thông số kĩ thuật mạch điều khiển động cơ bước A4988
Cú 5 chế độ Full bước, ẵ bước, ẳ bước, 1/8 bước, 1/16 bước Điều chỉnh dòng ra bằng triết áp, nằm bên trên Current Limit = Vref x 2.5
Tự động ngắt điện khi quá nhiệt
Bảng 3-12 Thông số kĩ thuật hộp dây điện:
Sản phẩm Hộp nhựa đựng mạch điện tử màu trắng
3.1.17 Ốc vít: Ốc vít để cố định các chi tiết cơ khí
Hình 3-19 Ốc, tán lục giác các loại
Hình 3-20 Dây điện các loại
Máng nhựa đi dây điện giúp mô hình trở nên gọn gàng.
Hình 3-21 Máng nhựa đi dây điện
Mô phỏng với robot thực từ SolidWork
3.2.1 Chuyển robot từ SolidWork sang Matlab thông qua Simscape Multibody Link :
Hình 3-22 Chuyển robot từ SolidWork sang Matlab thông qua Simscape Multibody Link :
Ta chuyển robot từ cơ khí được thiết kế từ SolidWork vào trong Matlab nhờ công cụ SimScape Multibody Link.
Ta đóng gói robot lại thành một khối SubSystem :
Hình 3-23 Đóng gói robot lại thành một khối SubSystem
Đưa đầu vào là góc khớp, bắt đầu với các góc 0 (vị trí về nhà), mô phỏng để xác định kết quả chuyển động cơ học của robot.
Hình 3-24 mô phỏng để xem kết quả mà robot bằng cơ khí
Vị trí home của robot hoàn toàn chính xác, các góc khớp được đua vào làm cho vị trí robot đúng so với tính toán.
Ta mô phỏng thêm để kiểm chứng lại cho chính xác :
Hình 3-25 Góc khớp thứ 2 là góc 90 độ để kiểm chứng
Ta đưa vào góc khớp thứ 2 là góc 90 độ để kiểm chứng.
Hình 3-26 Robot cơ khí quay góc khớp thứ 2 là góc 90 độ
Trục Z được đặt từ phải sang trái nên áp dụng quy tắc bàn tay phải ta có thể biết được link 2 sẽ được quay lên trên một góc 90 độ Việc này cũng chính xác so với việc đặt trục theo phương pháp John Jcrag.
Xây dựng giao diện điều khiển bằng matlab và mô phỏng
Các câu lệnh phổ biến:
− Msgbox(“Text cần hiển thị”): Dùng để hiển thị ra pop-up window thông báo câu lệnh cho người dùng.
− …=str2num(get(handles.Tag,'string')): Dùng để lấy dữ liệu từ người ngoài nhập vào (kiểu string).
− …=str2num(get(handles.Tag,'value')): Dùng để lấy dữ liệu từ người ngoài nhập vào (kiểu value).
− set(handles.KetQua,'String',num2str(kq)): Dùng để xuất ra lại kết quả mong muốn ra thành kiểu string.
− Axes(handles.axes): Lệnh này được sử dụng khi ta xài nhiều Axes (hình ảnh) để ta mong muốn hiển thị trên axes nào thì chúng ta sẽ sử dụng lệnh này.
− Giao diện chính: bao gồm tên logo, tên đề tài, tên giảng viên hướng dẫn và nhóm sinh viên thực hiện Các nút nhấn chuyển sang giao diện: Kinematics (Kiểm chứng động học), Exit (Đóng cửa sổ giao diện).
Hình 3-27 Giao diện điều khiển mô phỏng trên Design App - Matlab
Chèn hình ảnh: Trong giao diện guide, ta chọn phần Image trong phần công cụ của phần mềm sau đó nhấn chọn Brow để mở file ảnh được lưu trong máy Lưu ý nên để ảnh ở cùng một file với giao diện điều khiển :
Hình 3-28 Chọn vào image trên toolbox
Hình 3-29 Chạy chương trình điều khiển
Chèn chữ: ta kéo thả Label bên thanh công cụ “Component Library” ra giao diện thiết kế, ghi nội dung bằng cách nhân đúp chuột vào thành label để thay đổi nội dung, định dạng lại ô chữ ở các mục khác trong bảng Inspector :
Hình 3-30 Chèn chữ vào trong label
Tạo nút nhấn: để tạo nút nhấn link sang các giao diện khác, ta chỉ cần kéo thả button bên thanh công cụ ra giao diện thiết kế, vào viewcallback/callback để tạo ra chương trình chức năng cho nút nhấn Tại đây ta chỉ cần gõ vào tên của giao diện cần link như hình dưới đây ; function GOTOButtonPushed(app, event) closereq; run 'app1.mlapp';
Hàm “Closereq” dùng để đóng ứng dụng lại và hàm “run” dùng để mở một giao diện khác mà ta đã tạo bằng desgin app.
Giao diện kiểm chứng động học: Ở phận giao diện này nhóm có menubar để tạo ra sự chuyển tab một cách uyển chuyển và chuyên nghiệp, ta vào phần ‘COMPONENTLIBRARY và kéo xuống phần ‘FIGURE TOOLS’ để kéo thả vào trong phần giao diện mà ta muốn thiết kế:
Hình 3-31 Chọn vào Menu Bar trên toolbox Ở giao diện chính bao gồm tính toán động học thuận, động học nghịch cho Robot đồng thời sẽ có thêm các ‘’edit fied’’ và các thanh ‘Slider’ dùng để thay đổi các góc của robot Ở đây nhóm có thiết kế thêm phần “UIAxes” dùng để thể hiện trạng thái của robot khi ta thay đổi các góc theta.
Hình 3-32 Giao diện chính điều khiển Ở phần động học thuận, ta chỉ cần kéo các ‘Slider’ thì trạng thái robot sẽ lập tức thay đổi theo mà không cần thông qua một nút nhận nào để thiết lập trạng thái Đồng thời khi ta nhấn “Switch On” thì file “Simulink” cũng sẽ bắt đầu mô phỏng và robot được ta chuyển vào SimScape cũng chạy theo để mô phỏng các góc mà ta đặt trên giao diện Để làm được việc này, ta cần sử dụng câu lệnh : set_param('awe/t1','Value','0'); set_param('awe/t2','Value','0'); set_param('awe/t3','Value','0'); set_param('awe/c','Commented',"on"); set_param('awe',"StartTime",'0','StopTime','inf'); set_param('awe',"SimulationCommand",'start');
Ta dùng câu lệnh “set_param” để gọi file “Simulink” và bắt đầu mô phỏng
Khi nhập tọa độ x, y, z và nhấn "Computed", kết quả của ba góc theta sẽ được hiển thị và robot sẽ tự động di chuyển đến vị trí mong muốn trên "UIAxes".
Exit để thoát chương trình và Go Home để về lại giao diện chính.
Ta khởi động giao diện điều khiển được thiết kế bằng “design app” của matlab Ở giao diện chính sẽ hiện thị các thông tin cơ bản của người thiết kế
Ta nhấn nút “EXIT” thì sẽ thoát khỏi app và dừng chương trình.
Nếu ta nhấn nút “GO TO” thì sẽ chuyển đến giao diện chính để thực hiện công việc điều khiển :
Hình 3-34 Chuyển trang chương trình
Giao diện điều khiển sẽ hiện lên và tắt đi giao diện chính :
Hình 3-35 Giao diện điều khiển chính Để thực hiện công việc mô phỏng, ta cần kéo Switch “ON - OFF”, lúc này, robot từ simulink sẽ được chạy và thiết lập ở vị trí home khi các góc theta đều tiến về 0 Công việc tiếp theo, ta chỉ cần mô phỏng động học thuận và ngược.
Hình 3-36 Khởi động chương trình mô phỏng
Sau khi gạt switch home thì trên biểu đồ thể hiện vị trí home của robot giống với robot được gọi ra từ simulink, ở phần vị trí điểm đầu cuối của robot thể hiện vị trí home của robot, các góc theta và các thanh Slider đề về không, “editField text ” thể hiện vị trí của các thanh theta cũng tiến về không.
Tiến hành mô phỏng động học thuận cho robot :
1 Mô phỏng với góc theta 1, 2, 3 lần lượt là : 0, 90 và -90 độ ta thu được :
Hình 3-37 Mô phỏng động học thuận trường hợp 1
Theo quy tắc bàn tay phải thì góc 2 hướng lên trên vì cùng chiều dương và góc 3 hướng xuống dưới vì góc âm ngược chiều dương Vị trí robot được thể hiện ở các ô
“Position x”, “Position y” và “Positon z” tượng trương cho các vị trí của robot trên các trục tham chiếu như được đặt ở phần cơ sở lý thuyết.
2 Mô phỏng với góc theta 1, 2, 3 lần lượt là : 90, 0 và -90 độ ta thu được :
Hình 3-38 Mô phỏng động học thuận trường hợp 2
Tương tự như trên do trục Z của robot hướng lên nên robot sẽ quay góc theta 1, 1 góc 90 độ về bên tay trái theo quy tắc bàn tay phải Vị trí cũng được thể trên các ô “Position x”,
3 Mô phỏng ở 1 một góc bất kì ngẫu nhiên theta 1,2,3 lần lượt là -3.578,73.45 và -97.52 :
Hình 3-39 Mô phỏng động học thuận trường hợp 3
Sau khi mô phỏng với trường hợp này ta cũng thu được các vị trí tương ứng với góc khớp của robot Ta sẽ kiểm chứng động học nghịch bằng các vị trí ở trên.
Tiến hành mô phỏng động học nghịch cho robot :
Trường hợp 1 : Mô phỏng động học nghịch robot với vị trí và 235, 52 và 162 tương ứng với trường hợp 1 khi ta mô phỏng động học thuận :
Hình 3-40 Mô phỏng động học nghịch trường hợp 1
Xây dựng giao diện điều khiển trên mô hình thực với Window Forms App
Để có thể tạo ra một giao diện, ta click chọn Window Forms App và ngôn ngữ là c#.net:
Hình 3-46 Window Forms App Ở phần giao diện chủ đạo nhóm có thiết kế thêm phần đăng nhập với 2 ô textbox là1 nút nhấn dùng để đăng nhập, nếu ta không nhập mật khẩu hoặc tài khoản thì sẽ có một
Message Box hiện ra thông báo để ta nhập vào và không cho phép để trống hoặc nếu ta nhập sai tài khoản hoặc mật khẩu thì cũng sẽ có một Message Box hiện ra để cảnh báo. Ở trường hợp ta không nhập mật khẩu hoặc tài khoản :
Hình 3-47 Giao diện đăng nhập thiếu tài khoản và mật khẩu Ở trường hợp ta nhập sai mật khẩu và tài khoản :
Hình 3-48 Giao diện khi nhập sai tài khoản hoặc mật khẩu
Việc này giúp cho người dùng dễ kiểm soát chương trình điều khiển một cách linh hoạt.
Về phần ảnh bìa, để có thể chèn được ảnh bìa vào bên trong thanh “ToolBox” và tìm kiếm “PictureBox”.
Hình 3-49 Chọn PictireBox trên thanh toolbox
Sau đó ta chọn tỉ lệ ảnh cho phù hợp với khung hình bằng cách sửa đổi ở phần Properties :
Hình 3-50 Thay đổi thuộc tính của PictureBox
Để hiện thị ảnh trong giao diện, sử dụng "SizeMode" đặt thành "StretchImage" để tự động điều chỉnh tỷ lệ ảnh Chọn kích thước bằng cách kéo trực tiếp trên "PictureBox" Đổi tên các gói để dễ lập trình Để hiển thị ảnh, vào phần chương trình và sử dụng câu lệnh.
Hình 3-51 Xuất ảnh lên PictureBox
Khi vừa khởi động thì ảnh sẽ được hiện thị ra ngoài màn hình Ta chỉ cần dán đường dẫn của ảnh vào phần Bitmap.
Sau khi ta đăng nhập vào được thì giao diện sẽ được chuyển hướng đến giao diện chính bằng câu lệnh : this.Hide();
Form2 frm2 = new Form2(); popup popup = new popup(); frm2.ShowDialog();
Hình 3-52 Giao diện điều khiển chính Để có thể sử dụng được giao diện kết nối với máy tính thông qua truyền thông UART ta cần phải kết nối với máy tính bằng gói Serial Port.
Hình 3-53 Cổng kết nối SerialPort
Sau đó để lấy được các cổng com đang kết nối với máy tính và hiện ra combo box ta cần lấy “Combo Box”.
Hình 3-54 Chọn ComboBox trên thanh Toolbox Để lấy được các port đang giao tiếp với máy tính và xuất lên “ComboBox” ta thực hiện các lệnh : comboBoxPort.DataSource = SerialPort.GetPortNames(); Để có thể kết nối được với cổng com ta chọn, ta cần thêm một nút nhấn “connect”.
Câu lệnh để ta có thể thiết lập port cần kết nối : serialPort.PortName = comboBoxPort.Text; serialPort.Open();
Tương tự với “Com Port” , “Baudrate” cũng được thiết lập tương tự.
Baudrate là một thuật ngữ được sử dụng trong viễn thông và kỹ thuật truyền dẫn để chỉ tốc độ truyền dữ liệu trên một kênh liên lạc Nó đo lường số lượng các ký tự (bits) được truyền qua kênh trong một thời gian nhất định, thường được đo bằng đơn vị "baud"
(baud là số lượng tín hiệu truyền dẫn sử dụng mỗi giây).
Tuy nhiên, đôi khi thuật ngữ "baudrate" cũng được sử dụng để chỉ tốc độ truyền dữ liệu tổng thể, bao gồm cả bit dữ liệu và các bit kiểm tra/tiền tố Ví dụ, trong các giao thức truyền thông như RS-232, "baudrate" thường được sử dụng để chỉ tốc độ truyền dữ liệu tổng thể, bao gồm cả các bit kiểm tra và bit dừng.
Tóm lại, baudrate là tốc độ truyền dữ liệu trên kênh truyền dẫn, được đo bằng đơn vị "baud" và có thể chỉ tốc độ truyền dữ liệu tổng thể hoặc chỉ tốc độ truyền dữ liệu bit dữ liệu tùy thuộc vào ngữ cảnh sử dụng.
Ta cần tạo một chuỗi, sau đó thêm chuỗi đó vào “Combo Box” để chọn được baudrate. string[] bauds = { "1200", "2400", "4800", "9600", "115200" }; comboBoxBaud.Items.AddRange(bauds); Đồng thời khi kết nối ta thể hiện lên label dòng chữ “Đang kết nối” hoặc “Chưa kết nối” để thể hiện trạng thái hiện tại.
Ta gộp chung các khối lại với nhau : Phần kết nối, động học thuận và động học nghịch Để dễ kiểm soát ta dùng “Group Box”.
Hình 3-55 Chọn GroupBox trên thanh toolbox
Về phần động học thuận, để sử dụng các thanh “Trackbar” ta cũng vào phần ToolBox để chọn :
Hình 3-56 Chọn TrackBar trên thanh toolbox
Sau đó ta điều chỉnh font, kích cỡ, màu sắc ở phần property :
Hình 3-57 Thay đổi thuộc tính thanh TrackBar Để “Textbox” có thể thay đổi theo khi ta kéo thanh trackbar thì ta phải cài đặt thuộc tính
Hình 3-58 Phải cài đặt thuộc tính “Mouse Move” thanh trackbar
To display the theta angles while altering them, we need to modify the "textbox." For forward kinematics, we need to add a function: private double[] ForwardKinematics(double T1, double T2, double T3) { double Theta1 = T1 * pi / 180; double Theta2 = T2 * pi / 180; double Theta3 = T3 * pi / 180; double Px = Math.Cos(Theta1) * (l1 + l2 * Math.Cos(Theta2) + l3 * Math.Cos(Theta2 + Theta3)) - d1 * Math.Sin(Theta1); }
Px = Math.Round(Px, 2); double Py = Math.Sin(Theta1) * (l1 + l2 * Math.Cos(Theta2) + l3 * Math.Cos(Theta2 + Theta3)) + d1 * Math.Cos(Theta1);
Py = Math.Round(Py, 2); double Pz = l3 * Math.Sin(Theta2 + Theta3) + l2 * Math.Sin(Theta2);
Pz = Math.Round(Pz, 2); double[] vitri = { Px, Py, Pz }; return vitri;
} Ở hàm này, ta tạo ra một hàm con và trả về các giá trị về vị trí khi ta thay đổi các góc khớp và hiển thị ra các “textbox”
Theta1_temp = (double)trackBarThe1.Value;
Theta2_temp = (double)trackBarthe2.Value;
Theta3_temp = (double)trackBarthe3.Value; textBoxthe3.Text = Theta3_temp.ToString(); double[] vitri = ForwardKinematics(Theta1_temp, Theta2_temp, Theta3_temp); double Px = vitri[0]; double Py = vitri[1]; double Pz = vitri[2]; textBoxXFor.Text = Px.ToString(); textBoxyFor.Text = Py.ToString(); textBoxzFor.Text = Pz.ToString(); Để gửi dữ liệu sang cổng serial cho vi điều khiển ta cần hàm “Serial.Write()” Ở đây dữ liệu được gửi có dạng : “PulseTheta1+a+PulseTheta2+b+PulseTheta3+c+s” Ta cần lấy dữ liệu từ các “trackbar” đang được thay đổi và chuyển về dạng “Integer32” sau đó hiện thị lên các “textBox” Sau đó, ta lưu lại vào biến “theta_temp” Ta gán giá trị đọc được vào biến “Theta” sau đó cần tìm góc quay thêm so với góc đã tồn tại lúc trước, các giá trị trước đó sau khi kết thúc ta, ta so sánh giá trị đọc được với giá trị trước đó, nếu có sự thay đổi thì ta sẽ lấy góc hiện tại trừ đi góc trước đó, góc cung cấp “Theta_supply” sẽ là hiệu của 2 góc đó Xung cung cấp sẽ là góc “Theta_supply”, nhân với xung của 1 vòng là 200 và tỉ số truyền của puly sẽ là 3.75 do puly ở trục động cơ và puly to Puly ở trục động cơ là 16 răng và puly to dùng để truyền động là 60 răng nên sẽ có tỉ số truyền như vậy Ta có giảm bước của động cơ đi 16 lần.
P gear ratio step o down P ulseSupply per r u d
trackBarThe1.Value = Convert.ToInt32(textBoxthe1.Text); trackBarthe2.Value = Convert.ToInt32(textBoxthe2.Text); trackBarthe3.Value = Convert.ToInt32(textBoxthe3.Text);
Theta1_temp = Convert.ToInt32(textBoxthe1.Text);
Theta2_temp = Convert.ToInt32(textBoxthe2.Text);
Theta3_temp = Convert.ToInt32(textBoxthe3.Text);
Theta3 = Theta3_temp; if (Theta1_past != Theta1) {
Theta1_supply = Theta1 - Theta1_past;
Theta1_supply = 0; if (Theta2_past != Theta2) {
Theta2_supply = Theta2 - Theta2_past;
Theta2_supply = 0; if(Theta3_past != Theta3) {
Theta3_supply = Theta3 - Theta3_past;
Theta3_supply = 0; pulse_t1 = (Int32)(Theta1_supply * 200 * 3.75 * 16 / 360); pulse_t2 = (Int32)(Theta2_supply * 200 * 3 * (59/11) * 16 / 360); pulse_t3 = (Int32)(Theta3_supply * 200 * 3.75 * 16 / 360);
Console.WriteLine(Theta3_supply); serialPort.Write(pulse_t1.ToString() + "A" + pulse_t2.ToString() + "B" + pulse_t3.ToString() + "C"+ "s"); Để có thể thay đổi ta cần kết nối với cổng serial, nếu chưa kết nối thì sẽ hiện lên một
“Message Box” thông báo để chúng ta có thể kết nối và sử dụng.
Hình 3-59 Khi cổng Serial chưa được kết nối
Ta cần thực hiện các câu lệnh để có thể hiện ra thông báo : if (!serialPort.IsOpen)
MessageBox.Show("Cổng serial chưa được kết nối", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Nếu cổng “serial” không được mở thì ta sẽ hiện ra một thông báo yêu cầu kết nối với cổng COM
Tương tự như vậy, khi ta “Set home” cho robot, ta reset tất cả các biến có trong bài và gửi một kí tự “r” xuống arduino. double l1 = 105; double l2 = 162; double l3 = 130; double d1 = 52;
The variable Theta3_past is initialized to 0 The values of Theta1, Theta2, and Theta3, converted to integers, are set as the values of the track bars trackBarThe1, trackBarthe2, and trackBarthe3, respectively The position is obtained through the ForwardKinematics function using the temporary values Theta1_temp, Theta2_temp, and Theta3_temp The text boxes textBoxthe1, textBoxthe2, and textBoxthe3 display the values of Theta1, Theta2, and Theta3 in text format Finally, a command is sent through the serial port.
Thiết kế thi công và kết quả thực nghiệm
Thiết kế cơ khí
Về phần cơ khí, nhóm thiết kế trên phần mềm AutoCad và mô phỏng 3D trên phần mềm SolidWork để xem hình dáng của cánh tay robot Việc thiết kế bằng cả 2 phần mềm giúp nhóm sinh viên có thể kiểm soát được độ chính xác của bản thiết kế một cách chi tiết nhất.
Hình 4-1 Bản vẽ SolidWork phần đế Đây là bản vẽ tổng quan 3D của phần đế Sau đây sẽ là phần chi tiết tất cả các thành phần cấu tạo nên phần đế của robot :
Hình 4-2 Bản vẽ AutoCad phần đế
Tổng thể về phần đế và kích thước từng lỗ được nhóm trình bày kĩ trong file AutoCad
Ta sẽ thiết kế đến khâu 1 :
Hình 4-3 Bản vẽ SolidWork phần link 1
Bản vẽ khâu 1 của cánh tay robot trong AutoCad :
Hình 4-4 Bản vẽ AutoCad phần link 1
Bản vẽ khâu thứ 2 cho robot :
Hình 4-5 Bản vẽ SolidWork phần link 2
Thiết kế link thứ 2 trên AutoCad chi tiết các thành phần:
Hình 4-6 Bản vẽ AutoCad phần link 2
Thông số 3D của khâu cuối của robot thiết kế trên phần mềm SolidWorks :
Hình 4-7 Bản vẽ SolidWork phần link 3
Thiết kế cơ khí của robot trên phần mềm AutoCad :
Hình 4-8 Bản vẽ AutoCad phần link 3
Sau khi thiết kế ta lắp ghép các link lại thành robot hoàn chỉnh :
Hình 4-9 Robot hoàn thiện trên SolidWork
Thi công cánh tay robot
Sau khi có được bản vẽ được lên một cách chi tiết, ta thực hiện thi công robot, vật liệu chính được xử dụng trong báo cáo là Mica.
Hình 4-10 Cánh tay robot khi nhìn từ phải
Hình 4-11 Cánh tay robot khi nhìn từ trên xuống
Hình 4-12 Cánh tay robot khi nhìn từ trong ra
Hình 4-13 Cánh tay robot khi nhìn từ trước vào
Các hình ảnh robot thi công được hoàn thiện với các rãnh nẹp điện và các ống ruột gà được quấn một cách cẩn thận, phần đề được cố định trên một tấm gỗ có kích thước40x60, do diện tích khá to nên nhưỡng vật dụng chứa trên đấy nhìn rất gọn gàng.
Thiết kế mạch điện cho cánh tay robot
Hình 4-14 Bản vẽ mạch điện sử dụng cho robot Ở phần điều khiển, có một module phục vụ để điều khiển cho động cơ Step là moduleShield CNC V3, như vậy ta chỉ cần cắm board này vào vi xử lý trung tâm là arduino uno và nối dây như trên hình để có thể điều khiển được động cơ.
Thực nghiệm kiểm chứng robot
4.4.1 Kiểm chứng động học thuận : Đầu tiên, ta tiến hành Set Home cho robot, lúc này cá góc của robot đều về 0 độ so với trục tọa độ Tọa độ điểm đầu cuối cũng tương đương với khi tính toán và mô phỏng.
Hình 4-15 Set Home khi điều khiển robot Đối với khi ta set vị trí ban đầu của robot bằng nút nhấn “Home” trên giao diện điều khiển của robot thì các góc của thanh “Track Bar” đều về không, các góc khớp đều bằng không và điểm đầu cuối là tọa độ của điểm cuối cùng trên khâu 3 của robot so với tọa độ đã được đặt ở phần cơ sở lý thuyết Dưới đây là hình ảnh ở vị trí home của robot, các góc đều bằng 0.
Hình 4-16 Vị trí robot khi sethome
Như hình ảnh minh họa, các vị trí cần đạt được đã được đánh dấu Để mô phỏng động học của robot, tiến hành kéo các thanh "Track Bar" để di chuyển điểm cuối trên cánh tay robot đến các vị trí đã xác định.
Trường hợp 1 : Ta điều khiển robot đến vị trí được đánh dấu bên tay phải Sau đó ta rút ra được các góc khớp theta và cần lưu lại vị trí điểm đầu cuối để kiểm nghiệm động học nghịch.
Hình 4-17 Trường hợp 1 động học thuận robot
Sau khi gửi dữ liệu bằng nút “Send Forward” ta nhận được vị trí thực tế của robot :
Hình 4-18 Vị trí robot ở trường hợp 1
Cánh tay robot đã đi đúng vị trí với các góc quay như vậy Cũng đã tính toán được vị trí của điểm đầu cuối robot.
Ta thử thêm 2 trường hợp để có thể đưa ra nhận xét chính xác nhất.
Trường hợp 2: với điểm được đánh dấu : chính giữa, ta cũng thực hiện giống như trên và đã tìm kiếm được các góc theta phù hợp với vị trí này:
Hình 4-19 Trường hợp 2 động học thuận robot
Sau khi gửi dữ liệu bằng nút “Send Forward” ta nhận được vị trí thực tế của robot ở trường hợp này
Hình 4-20 Vị trí robot ở trường hợp 2
Cũng như trường hợp trước, cánh tay điều khiển rất chính xác và trơn tru, Trường hợp 3 :ta cũng đưa robot đi đến điểm được đánh dấu cuối cùng trên mặt phẳng :
Hình 4-21 Trường hợp 3 động học thuận robot
Sau khi gửi dữ liệu bằng nút “Send Forward” ta nhận được vị trí thực tế của robot ở trường hợp thứ ba này:
Hình 4-22 Vị trí robot ở trường hợp 3
4.4.2 Kiểm chứng động học nghịch cho robot :
Trường hợp 1 : Ta sử dụng, các vị trí giống ở trường hợp 1 động học thuận để có thể đưa điểm đầu cuối đến điểm trùng khớp như động học thuận :
Hình 4-23 Trường hợp 1 và bộ nghiệm 1 động học nghịch robot
Ta tính ra được các góc khớp dựa trên bộ nghiệm thứ 1, sau đó gửi qua serial cho robot điều khiển.
Ngoài ra, ta cũng có thể tính toán được bộ nghiệm thứ 2.
Hình 4-24 Trường hợp 2 và bộ nghiệm 2 động học nghịch robot
Sau đó ta gửi dữ liệu của bộ nghiệm 1 xuống cho robot và kiểm chứng :
Hình 4-25 Vị trí robot ở trường hợp 1
Sau khi gửi dữ liệu thì vị trí hoàn toàn đúng, điểm cuối trên cánh tay robot di chuyển được đến điểm được đánh dấu trên mặt phẳng.
Trường hợp 2 của động học nghịch : Ta đưa cánh tay robot điểm vị trí được đánh dấu trên mặt phẳng như ở trưởng hợp 2 của kiểm chứng động học thuận :
Hình 4-26 Trường hợp 2 và bộ nghiệm 1 động học nghịch robot
Ta tính toán bằng bộ nghiệm một ra được các góc hoàn toàn trùng hợp so với ở trường hợp động học thuận.
Ta tính toán bằng bộ nghiệm thứ 2 :
Hình 4-27 Trường hợp 2 và bộ nghiệm 2 động học nghịch robot
Sau đó ta gửi dữ liệu được tính toán bằng động học nghịch qua cổng serial cho arduino để điều khiển robot đến vị trí ở trường hợp 2 :
Hình 4-28 Vị trí robot ở trường hợp 2
Hình 4-29 Vị trí robot ở trường hợp 2
Vị trí hoàn toàn khớp so với động học thuận Điểm cuối trên trên robot đến được điểm được đánh dấu số 2.
Ta thử thêm một trường hợp cuối để đưa ra kết luận :
Hình 4-30 Trường hợp 3 và bộ nghiệm 1 động học nghịch robot
Bộ nghiệm thứ 2 của vị trí này :
Hình 4-31 Trường hợp 3 và bộ nghiệm 2 động học nghịch robot
Sau đó ta tiến hành gửi dữ liệu này cho robot để có thể kiểm tra được sự chính xác trên mô hình :
Hình 4-32 Vị trí robot ở trường hợp 3
Điểm cuối của robot cũng dừng lại ở vị trí đánh dấu thứ ba, tương tự như các trường hợp đã nêu.
Tổng hợp các trường hợp được kiểm chứng :
Bảng 4-1 Các vị trí kiểm nghiệm động học nghịch