T Ổ NG QUAN
Đặt vấn đề
Trong "Chiến lược phát triển khoa học và công nghệ Việt Nam", cơ điện tử được xác định là một trong những công nghệ trọng điểm cho sự phát triển kinh tế và xã hội Robot, sản phẩm tiêu biểu của ngành cơ điện tử, là những bộ máy hoạt động đồng nhất, được điều khiển phức tạp qua các thuật toán mã hóa trong vi điều khiển.
Có nhiều kiểu robot và chúng em chia chúng thành nhóm robot theo cách thức di chuyển:
• Bằng cánh quạt như robot máy bay- Flycam
• Robot đi bằng bánh xe
• Robot có cánh như côn trùng hay chim
• Robot không chân- di chuyển bằng cách trườn như giun, rắn
• Robot đi bằng chân như động vật
Mặc dù có nhiều loại robot khác nhau, nhưng robot di chuyển bốn hoặc sáu chân vẫn còn nhiều hạn chế trong ứng dụng học tập Gần đây, robot Vorbal với bốn chân và hai khớp mỗi chân đã được phát triển với mã nguồn mở, tuy nhiên, thiết kế của nó vẫn chưa đủ phức tạp để thách thức kiến thức về động học do tính đơn giản của nó.
Kh ả năng ứ ng d ụ ng
Robot đóng vai trò quan trọng trong việc nâng cao tri thức trong thiết kế và chế tạo, là công cụ hữu ích cho học tập và nghiên cứu Chúng tạo ra môi trường rộng rãi để áp dụng kiến thức, giúp hệ thống giáo dục phát triển theo kịp công nghệ, đặc biệt trong kỷ nguyên 4.0 hiện nay.
Tính ứng dụng của Hexapod nổi bật nhờ vào khả năng di chuyển linh hoạt trên các địa hình đa dạng Đây là một trong những phương tiện quan trọng trong lĩnh vực do thám không gian.
Tình hình nghiên cứu trong và ngoài nước
Hình 1-1 Robot Atlas https://www.bostondynamics.com/atl as
Evan Ackerman, “Martian-Inspired Tripod Walking Robot Generates Its Own Gaits”, https://spectrum.ieee.org
Hình 1-3 Quadruple Robot https://www.bostondynamics.com/atl as
Hình 1-4 Hexpod Robot https://www.trossenrobotics.com/phanto mx-ax-hexapod-mk1.aspx
Robot di chuyển bằng chân đã được nghiên cứu từ lâu, lấy cảm hứng từ dáng đi của con người và kiểu di chuyển của động vật bốn chân, sáu chân, đến tám chân Tất cả các loại robot này đều đạt được những thành công nhất định trong việc mô phỏng các hình thức di chuyển tự nhiên.
Robot Hexapod là một phương tiện cơ học di chuyển trên sáu chân, mang lại tính linh hoạt cao nhờ khả năng ổn định tĩnh trên ba hoặc nhiều chân Điều này cho phép robot tiếp tục hoạt động ngay cả khi một chân bị vô hiệu hóa Không phải tất cả chân đều cần thiết cho sự ổn định, giúp các chân khác có thể tiếp cận các vị trí mới hoặc điều khiển tải trọng Nhiều robot Hexapod được phát triển dựa trên cảm hứng từ động vật sáu chân, và hiện nay có nhiều nhóm nghiên cứu và phát triển trên toàn thế giới Tại Việt Nam, robot di chuyển bằng chân đang là đề tài nghiên cứu phổ biến trong các nhóm sinh viên, đồng thời cũng đã được ứng dụng trong các trường học để phục vụ cho việc học tập.
Robot Lego tại lớp học Mindstorm nâng cao của Câu lạc bộ Robotics (tạm dịch
Ngành học về robot và IoT tại trường ĐH Khoa học tự nhiên TP.HCM cung cấp những kiến thức tiên tiến, trong khi Robot Alpha 1E đã được giới thiệu trong chương trình Trại hè Công nghệ 2019 tại Học viện Sáng tạo Công nghệ TEKY Ngoài ra, robot Nao cũng được sử dụng trong các lab của trường ĐH Khoa học Tự Nhiên, góp phần nâng cao trải nghiệm học tập và nghiên cứu trong lĩnh vực công nghệ.
Hình 1-5 Robot Lego Hình 1-6 Robot Alpha 1E https://ubtrobot.com/pages/alpha [xem 10/07/2019]
Khi tìm kiếm "Hexapod ở Việt Nam" hoặc "robot 6 chân ở Việt Nam" trên Google, số lượng kết quả liên quan rất hạn chế, chủ yếu là các nghiên cứu của sinh viên cho các dự án nhỏ, đồ án môn học hoặc đồ án tốt nghiệp Một ví dụ điển hình là robot dò tìm bom mìn của nhóm sinh viên Trường Đại học Bách khoa Đà Nẵng, gồm Ngô Diên Bảo Triết, Lê Tự Duy Hoàng và Trần Văn Chính Mặc dù có một số kết quả về robot thương mại đơn giản phục vụ học tập, nhưng chúng thường là các mô hình cơ bản với hai hoặc ba DOF làm từ mica Ngoài ra, cũng có một số cá nhân nghiên cứu và chia sẻ kiến thức về hexapod trên các diễn đàn hoặc qua video trên Youtube.
Lý do ch ọn đề tài
Mảng robot di chuyển bằng chân là niềm đam mê chung của nhóm, phù hợp với ngành cơ điện tử, giúp sinh viên áp dụng kiến thức chuyên ngành Dự án này không chỉ mang lại cơ hội học hỏi mà còn là thách thức lớn do thiếu tài liệu liên quan tại Việt Nam Chúng em mong muốn vượt qua những khó khăn này để phát triển dự án độc đáo này.
Nhu cầu học tập và tìm hiểu công nghệ tại Việt Nam đang gia tăng, dẫn đến sự ra đời của nhiều lớp học về robot Để đáp ứng nhu cầu này, nhóm chúng tôi đã nghiên cứu và chế tạo robot 6 chân, nhằm tạo hứng thú và mở rộng sự lựa chọn cho các em trong quá trình học tập và nghiên cứu robot.
Mục tiêu và phương pháp nghiên cứu
Dự án nghiên cứu của chúng em tập trung vào việc mô phỏng và phát triển robot Hexapod hoàn chỉnh, có khả năng di chuyển giống như loài côn trùng chân khớp Chúng em sử dụng các phương trình động học và truyền động để thiết kế bộ khung và lựa chọn động cơ phù hợp Công nghệ in 3D với vật liệu nhựa PLA được áp dụng trong quá trình chế tạo robot Lập trình robot dựa trên các thuật toán điều khiển đã được nghiên cứu và điều khiển từ xa thông qua các module điều khiển Robot có khả năng quét không gian xung quanh, xác định vị trí và vẽ bản đồ gửi lên Web, cho phép người dùng giao tiếp trực tiếp trên bản đồ và chọn vị trí để robot tự động di chuyển, sử dụng tín hiệu digital từ công tắc hành trình dưới mỗi chân để xác định điểm đặt chân, hỗ trợ việc di chuyển trên địa hình đa kết cấu.
Phương pháp nghiên cứu bao gồm việc tìm kiếm tài liệu trên Internet và phân tích các thiết kế robot cử động linh hoạt đã được phát triển bởi các nhóm và cá nhân trong và ngoài nước Chúng tôi sẽ tập trung vào việc tính toán, lựa chọn và thực nghiệm các module và linh kiện dễ tìm Đồng thời, nghiên cứu và phát triển thuật toán trong mã code cũng là một phần quan trọng của quá trình này.
Nhóm đã thực hiện đề tài này trong hơn 10 tháng gồm bốn giai đoạn chính: Giai đoạn 1:
• Nghiên cứu, lựa chọn và kiểm nghiệm các module, linh kiện phù hợp, xây dựng code điều khiển, lắp ráp một mô hình đơn giản Mô phỏng trên Mathlab
• Thiết kế phần khung xương cho robot đảm bảo các chức năng di chuyển cơ bản
• Dựa trên các thuật toán điều khiển, động học, và code mẫu, điều khiển từng khớp, từng chân và kết hợp các chân
• Đánh giá khảnăng hoạt động, độ bền, của thiết kếcũ, thiết kế lại khung của robot bằng vật liệu nhựa
• Tính toán, thiết kế khung bằng nhựa PLA, mua và gia công các chi tiết, lắp ráp thành một con robot hoàn chỉnh
• Thiết kế lại toàn bộ phần khung, vỏ robot, đảm bảo sự linh hoạt cho robot, giảm khối lượng, đảm bảo tính thẩm mĩ
• Tính toán, chọn lại các module, nguồn phù hợp
• Hiệu chỉnh code, cải thiện khảnăng di chuyển linh hoạt và giống với tự nhiên hơn
• Thiết kế app điều khiển
• Tích hợp module LIDAR, camera
CƠ SỞ LÝ THUY Ế T
Gi ớ i thi ệ u chung
Để Hexapod hoạt động hiệu quả, cần có sự phối hợp của nhiều thuật toán để tạo ra bộ điều khiển hoàn chỉnh, với mục tiêu cuối cùng là xác định vị trí set-point cho từng servo Việc lựa chọn mô hình bước và tính toán quỹ đạo, cùng với việc cập nhật liên tục các ràng buộc vị trí chân, là rất quan trọng Tùy thuộc vào tốc độ, bộ điều khiển sẽ chọn các kiểu dáng di chuyển khác nhau, bao gồm giai đoạn đứng khi chân tiếp xúc mặt đất và giai đoạn xoay chân, trong đó quỹ đạo giữa hai vị trí đứng cần được tính toán chính xác Kích thước phần cứng như chiều dài chân, vị trí servo và chiều rộng cơ thể sẽ đặt ra một số ràng buộc nhất định cho vị trí chân Hơn nữa, vị trí của mỗi chân sẽ ảnh hưởng đến các chân còn lại trong không gian Sự tương đồng giữa robot Hexapod và côn trùng chân khớp cung cấp nhiều cảm hứng cho thiết kế và sinh trắc học của chúng.
Hình 2-1 Chân loài chân khớp trong thực tế
2.2.Bài toán động học nghịch trong robot Động học nghịch là sử dụng các phương trình động học để xác định các tham số góc của mỗi khớp để có được vị trí mong muốn cho mỗi bộ phận của robot [4] Tức là từ toạđộ P xác định trong không gian, với P là vị trí cuối cùng tại mỗi mũi chân của
Hexapod là một hệ thống robot có khả năng tính toán các góc Coxa, Femur và Tibia để điều khiển các servo Hệ thống này bao gồm ba khâu và ba khớp, với các thông số cần thiết được diễn tả rõ ràng trong cấu trúc bên dưới.
Hình 2-2 Hình biểu diễn các khâu và khớp trong không gian tọa độ XYZ
Các biến 𝛾, 𝛼, 𝛽 đại diện cho các góc hiện tại của các bộ phận cơ thể là Coxa, Femur và Tibia Mục tiêu của chúng em là xác định giá trị của các góc xoay Offset, tức là góc mà mỗi servo cần phải xoay thêm để đạt được góc xoay mong muốn, cùng với mã code tương ứng.
Hình 2-3 Hình biểu diễn góc Coxa khi nhìn dọc theo phương Y từ trên xuống
Hình 2-4 Hình biểu diễn góc Femur và Tibia khi nhìn dọc theo phương Z
Gọi toạ độ của P là (𝑥, 𝑦, 𝑧) trong không gian, gọi tắt Coxa Length, Femur Length và Tabia Length là 𝐶𝐿, 𝐹𝐿, 𝑇𝐿
Dựa vào kiến thức toán hình học, 𝑙 có thể được tính bằng công thức sau:
Ban đầu, chúng em đã thiết lập góc sẵn có trong Servo là 90 độ Các góc 𝛾′, 𝛼′, 𝛽′ là các góc mà nhóm muốn hướng đến Công thức liên hệ giữa các góc này và các góc Offset được trình bày như sau:
Xu hướng quay của hai góc 𝛼 và 𝛽 luôn ngược chiều, dẫn đến sự trái dấu trong phép tính Đặc biệt, đối với góc Coxa, mỗi chân nằm ở phần góc phần tư khác nhau trong hệ tọa độ, từ đó tạo ra sự khác biệt về kết quả giữa hai chân.
Dựa vào các kết quả trên, thông sốđiều khiển Servo có thểđược tính thông qua bộ chuyển đổi sang giá trị xung
Khi thân xoay hoặc tiến lên, thân chính đóng vai trò là gốc tọa độ cho các chân, trong khi các chân khác giữ nguyên vị trí Do đó, vị trí của các chân so với thân sẽ thay đổi, và tọa độ này có thể được tính toán bằng cách sử dụng phép toán ma trận xoay.
Điểm P có tọa độ (𝑥, 𝑦, 𝑧) được xác định trong không gian với tâm thân làm góc tọa độ Các ma trận biểu diễn phép quay quanh các trục x, y, z với góc lần lượt là 𝑅(𝑥, 𝛼), 𝑅(𝑦, 𝛽), 𝑅(𝑧, 𝛾).
Ma trận quay quanh trục 𝑥 [9] :
Ma trận quay quanh trục y [9] :
Ma trận quay quanh trục z [9] :
Chúng em thực hiện nhân các ma trận nhằm tạo ra ma trận tổng quát cho việc quay một điểm P trong không gian với các góc 𝛼, 𝛽 và 𝛾 Những góc này được xác định bởi hình chiếu của đoạn thẳng từ gốc tọa độ đến điểm P lên các mặt phẳng Oxy, Oyz, và Oxz, cũng như các trục Ox.
Oy, Oz, tính được góc tọa độ P’ mới (𝑥 ′ , 𝑦 ′ , 𝑧′)
Khi thân tịnh tiến, các tọa độ của chân sẽ di dời ngược lại với hướng tịnh tiến của thân Do đó, có thể tính toán đơn giản tọa độ mới P’(𝑥 ′ , 𝑦 ′ , 𝑧 ′ ) khi thân tịnh tiến theo các hướng 𝑥, 𝑦, 𝑧 tuần tự với các giá trị 𝑥1, 𝑦1, 𝑧1.
2.4.Điều khiển cách di chuyển của Robot
Robot di chuyển bằng cách điều khiển các cánh tay ba khớp (chân robot) theo một thứ tự mong muốn, tạo ra nhiều kiểu dáng đa dạng Dù thứ tự bước có khác nhau, các tọa độ của mỗi chân luôn tuân theo một quỹ đạo nhất định, được gọi là Gait Gait bao gồm hai pha: một khi chân nâng lên và một khi chân chạm đất.
Trong giai đoạn Swing, chân di chuyển từ vị trí ban đầu đến vị trí cuối cùng trong không khí, được thể hiện bằng đường nét đứt Ngược lại, trong giai đoạn Stance, mũi chân tiếp xúc với mặt đất khi chân di chuyển từ vị trí ban đầu, giúp robot di chuyển theo hướng ngược lại với mũi tên.
Tùy thuộc vào nhu cầu về tốc độ, độ ổn định, tiết kiệm năng lượng và điều kiện địa hình, chúng ta có thể lựa chọn các giải pháp khác nhau.
• Di chuyển liên tục: là kiểu di chuyển mà thân đồng thời tịnh tiến cùng với các chân
Có ba kiểu di chuyển phổ biến:
Với kiểu đi Tripod, sáu chân của robot được chia làm hai bộ (1), (2) thay phiên nhau bước
Kiểu wave chỉ có một chân ở trong pha Swing trong khi chân còn lại ở pha Stance, giúp tiết kiệm năng lượng mặc dù di chuyển chậm Phương pháp này thường được áp dụng khi dò địa hình gồ ghề.
Với kiểu ripple, hai chân trong pha Swing, còn lại trong pha Stance, trung hòa hai cách trên
Trong ngành chân khớp, kiểu di chuyển Tripod nổi bật hơn cả nhờ khả năng di chuyển nhanh, linh hoạt và tiết kiệm thời gian Báo cáo này không đề cập đến kiểu Wave (lan truyền từng chân) và Ripple (hai chân chéo), vì Tripod tạo ra mặt phẳng tiếp xúc ba điểm cân bằng, mang lại hiệu suất di chuyển tốt nhất cho Robot.
Điề u khi ể n thân robot
Khi thân xoay hoặc dịch chuyển, thân được coi là gốc tọa độ của các chân, trong khi các chân còn lại giữ nguyên vị trí Do đó, vị trí của các chân so với thân sẽ thay đổi, và tọa độ này có thể được tính toán bằng cách sử dụng phép toán ma trận xoay.
Điểm P có tọa độ (𝑥, 𝑦, 𝑧) được xác định trong không gian với tâm thân làm góc tọa độ Các ma trận biểu diễn phép quay quanh trục x, y, z với góc lần lượt là 𝑅(𝑥, 𝛼), 𝑅(𝑦, 𝛽), 𝑅(𝑧, 𝛾).
Ma trận quay quanh trục 𝑥 [9] :
Ma trận quay quanh trục y [9] :
Ma trận quay quanh trục z [9] :
Chúng em thực hiện nhân các ma trận để xây dựng ma trận tổng quát cho phép thân quay một góc bất kỳ trong không gian Các góc 𝛼, 𝛽 và 𝛾 được xác định bởi hình chiếu của đường thẳng từ gốc tọa độ đến điểm P lên các mặt phẳng Oxy, Oyz và Oxz, cùng với các trục Ox.
Oy, Oz, tính được góc tọa độ P’ mới (𝑥 ′ , 𝑦 ′ , 𝑧′)
Khi thân tịnh tiến, tọa độ của chân sẽ di dời ngược lại với hướng tịnh tiến của thân Do đó, có thể tính toán đơn giản tọa độ P’(𝑥′, 𝑦′, 𝑧′) khi thân tịnh tiến theo các hướng 𝑥, 𝑦, 𝑧 với các giá trị lần lượt là 𝑥1, 𝑦1, 𝑧1.
Điều khiển cách di chuyển của Robot
Robot di chuyển bằng cách điều khiển các cánh tay ba khớp (chân robot) theo một thứ tự nhất định, tạo ra nhiều kiểu dáng khác nhau và tăng tính đa dạng Dù có sự thay đổi trong thứ tự bước, các tọa độ của mỗi chân luôn tuân theo một quỹ đạo cố định, được gọi là Gait Gait bao gồm hai pha: một khi chân nâng lên và một khi chân chạm đất.
Trong giai đoạn Swing, chân di chuyển từ vị trí ban đầu đến vị trí cuối cùng trong không khí, được biểu thị bằng đường nét đứt Ngược lại, trong giai đoạn Stance, bộ phận mũi chân tiếp xúc với mặt đất khi chân di chuyển từ vị trí ban đầu, giúp robot di chuyển theo hướng ngược lại với mũi tên.
Tùy thuộc vào yêu cầu về tốc độ, tính ổn định, tiết kiệm năng lượng và điều kiện địa hình, chúng ta có nhiều lựa chọn khác nhau.
• Di chuyển liên tục: là kiểu di chuyển mà thân đồng thời tịnh tiến cùng với các chân
Có ba kiểu di chuyển phổ biến:
Với kiểu đi Tripod, sáu chân của robot được chia làm hai bộ (1), (2) thay phiên nhau bước
Trong kiểu wave, một chân sẽ ở trong pha Swing trong khi chân còn lại ở pha Stance Phương pháp này chậm nhưng tiết kiệm năng lượng, thường được áp dụng khi di chuyển trên địa hình gồ ghề.
Với kiểu ripple, hai chân trong pha Swing, còn lại trong pha Stance, trung hòa hai cách trên
Trong ngành chân khớp, kiểu di chuyển Tripod nổi bật hơn cả do khả năng di chuyển nhanh, linh hoạt và tiết kiệm thời gian Báo cáo này không đề cập đến hai kiểu di chuyển Wave (chậm) và Ripple (hai chân chéo), vì Tripod tạo ra mặt phẳng tiếp xúc ba điểm cân bằng, mang lại hiệu suất di chuyển tối ưu cho Robot.
Kiểu di chuyển không liên tục là phương pháp mà robot chỉ tiến lên khi tất cả sáu chân đã hoàn thành các vòng bước, thường được áp dụng trên địa hình dốc Trong quá trình này, thân robot chỉ di chuyển về phía trước khi có đủ chân chạm đất, đảm bảo độ cứng vững và tính bám cao nhất Đây là mục tiêu mà nhóm nghiên cứu hướng tới để phục vụ cho các ứng dụng vượt địa hình trong tương lai.
2.4.3 Điều khiển cho Hexapod quẹo phải trái Để Hexapod có thể xoay, dáng đi đã sử dụng phải được sửa lại Có một số phương pháp để điều khiển Hexapod xoay khá hữu hiệu Phương pháp đầu tiên là thay đổi chiều dài mỗi bước ở hai bên, làm cho một bên chân di chuyển chậm hơn (bước đi ngắn hơn) sẽ khiến cho Hexapod xoay dần về phía đấy Một phương pháp khác là giảm tần số xoay ở một bên thân để mất bớt một bước Đối với việc điều khiển
Hexapod có khả năng cua gấp và xoay quanh một điểm, thường kết hợp cả hai phương pháp để tối ưu hóa điều khiển Việc cho chân bước lùi giúp dễ dàng hơn trong việc điều khiển Một phương pháp khác để Hexapod xoay là giảm chiều dài bước và xoay chân xung quanh trung tâm cơ thể, tạo cảm giác như đang xoay Để thực hiện xoay, cần đảm bảo vận tốc góc quay của mỗi chân là bằng nhau và xoay quanh một điểm cố định (trung tâm cơ thể) Khi một chân di chuyển quá xa, có thể đưa chân trở về vị trí bằng cách sử dụng giai đoạn xoay chân và áp dụng hệ ma trận quay R.
2.5.Tính ổn định của Hexapod Độ ổn định của Hexapod được chia thành hai loại: ổn định tĩnh và ổn định động Để được coi là ổn định tĩnh, Hexapod cần ổn định trong toàn bộ chu kỳ di chuyển, không cần thêm bất kỳ lực nào để cân bằng robot Trong khi robot ổn định tĩnh, hình chiếu thẳng đứng tại toạn độ trọng tâm (COM) của nó nằm trong đa giác được hình thành từ các chân đang trong giai đoạn đẩy tiến Trong trường hợp COM được đặt ở biên hoặc bên ngoài đa giác, robot sẽ ngã xuống trừ khi nó ổn định về mặt động lực, tức là robot được cân bằng trong khi đi bộ do lực quán tính gây ra bởi chuyển động và không ổn định tĩnh khi dừng di chuyển
2.6.Giao tiếp Bluetooth với PS2
2.6.1 Giới thiệu về chuẩn giao tiếp SPI
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp đồng bộ tốc độ cao
Giao thức SPI, do hãng Motorola phát triển, cho phép truyền dữ liệu với tốc độ lên đến 10Mbps và hoạt động theo kiểu Master-Slave, trong đó một Master điều phối nhiều Slaves SPI là một giao thức song công (full duplex), cho phép quá trình truyền và nhận diễn ra đồng thời Giao thức này thường được gọi là "bốn dây" vì nó sử dụng bốn đường giao tiếp: SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Output Slave Input) và SS (Slave Select).
SCK đóng vai trò quan trọng trong giao tiếp SPI, vì đây là chuẩn truyền đồng bộ cần một đường giữ nhịp Mỗi xung nhịp trên chân SCK truyền tải 1 bit dữ liệu, giúp giảm thiểu lỗi trong quá trình truyền Nhờ đó, tốc độ truyền của SPI có thể đạt rất cao Xung nhịp chỉ được tạo ra bởi chip Master.
MISO– Master Input / Slave Output: nếu là chip Master thì đây là đường Input còn nếu là chip Slave thì MISO lại là Output [5]
MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường
Output còn nếu là chip Slave thì MOSI là Input [5]
SS – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip Slave đường
SS sẽở mức cao khi không làm việc [5]
Mỗi chip Master và Slave đều có một thanh ghi dữ liệu 8 bits Khi Master phát ra một xung nhịp trên đường SCK, một bit trong thanh ghi dữ liệu của Master sẽ được truyền đến Slave qua đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền về Master qua đường MISO Quá trình truyền dữ liệu này diễn ra đồng thời giữa hai chip, do đó được gọi là “song công”.
2.6.2 Giao tiếp giữa cần điều khiển PS2 với Vi điều khiển
Trong module PS2, các dây thực hiện chức năng điều khiển, trong đó PS2 đóng vai trò là Slaves và vi điều khiển là chip Master Các đầu vào và đầu ra tương ứng của PS2 được xác định rõ ràng.
• MISO: dây 1 Brown (dây Data)
• MOSI: dây 2 Orange (dây command)
• SS: dây 6 Yellow (dây chọn slave)
• SCK: dây 7 Blue (dây xung clock)
Một gói dữ liệu bao gồm 3byte header và thêm 2byte command bổ sung hoặc dữ liệu điều khiển
• 0x01: byte khởi đầu quá trình truyền nhận
Lệnh thăm dò chính 0x42 cho phép nhận tất cả các tín hiệu số hoặc analog từ các phím, tùy thuộc vào cấu hình điều khiển.
• 0x00: lệnh chỉ có chức năng đọc dữ liệu từ PS2
Sau đây là bảng data nhận được khi nhấn các phím PS2, một gói 5byte dữ liệu STT Tên phím
5 Tam giác 0xFF 0x41 0x5A 0xFF 0xF7 0x00
Bảng 2-1 Data của các phím nhấn PS2 Ở các bảng sau đây, mỗi vị trí trong 8bit có một nút, khi nhấn, bit ở vị trí đó về 0
Bảng 2-2 Gói dữ liệu các nút trong byte thứ 4
Bảng 2-3 Gói dữ liệu các nút trong byte thứ 5
Chế độ thiết bị 0x41 có mức cao (4) chỉ ra rằng chế độ đang hoạt động, với 0x4 là chế độ digital, 0x7 là analog và 0xF là cấu hình/thoát Mức thấp (1) thể hiện số lượng word 16bit theo sau header, mặc dù PlayStation không luôn chờ đợi tất cả các byte này; trong trường hợp các nút chỉ sử dụng 2 byte 4 và 5, chỉ có 1 word được sử dụng.
• 0x5A: Luôn là 0x5A, giá trị này xuất hiện ở một số nơi không có chức năng
Giao ti ế p Bluetooth v ớ i PS2
2.6.1 Giới thiệu về chuẩn giao tiếp SPI
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp đồng bộ tốc độ cao
Giao thức SPI, được phát triển bởi Motorola, cho phép truyền dữ liệu với tốc độ lên đến 10Mbps Đây là một kiểu truyền thông Master-Slave, trong đó một Master điều phối và nhiều Slaves được điều khiển bởi Master SPI hoạt động theo phương thức song công (full duplex), cho phép quá trình truyền và nhận dữ liệu diễn ra đồng thời Giao thức này thường được gọi là “bốn dây” vì nó sử dụng bốn đường giao tiếp: SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Output Slave Input) và SS (Slave Select).
Chân SCK giữ vai trò quan trọng trong giao tiếp SPI, vì đây là chuẩn truyền đồng bộ cần có một đường giữ nhịp Mỗi xung nhịp trên chân SCK truyền tải 1 bit dữ liệu, giúp giảm thiểu lỗi trong quá trình truyền Nhờ đó, tốc độ truyền của SPI có thể đạt mức rất cao Xung nhịp này chỉ được tạo ra bởi chip Master.
MISO– Master Input / Slave Output: nếu là chip Master thì đây là đường Input còn nếu là chip Slave thì MISO lại là Output [5]
MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường
Output còn nếu là chip Slave thì MOSI là Input [5]
SS – Slave Select: SS là đường chọn Slave cần giap tiếp, trên các chip Slave đường
SS sẽở mức cao khi không làm việc [5]
Mỗi chip Master hoặc Slave có một thanh ghi dữ liệu 8 bits Trong quá trình truyền dữ liệu, mỗi xung nhịp do Master tạo ra trên đường SCK sẽ truyền một bit từ thanh ghi dữ liệu của Master qua Slave trên đường MOSI, đồng thời một bit từ thanh ghi dữ liệu của chip Slave cũng được gửi về Master qua đường MISO Quá trình này diễn ra đồng thời giữa hai chip, do đó được gọi là "song công".
2.6.2 Giao tiếp giữa cần điều khiển PS2 với Vi điều khiển
Trong module PS2, các dây thực hiện chức năng điều khiển, với PS2 đóng vai trò là Slaves và vi điều khiển là chip Master Các đầu vào và đầu ra tương ứng của PS2 được xác định rõ ràng.
• MISO: dây 1 Brown (dây Data)
• MOSI: dây 2 Orange (dây command)
• SS: dây 6 Yellow (dây chọn slave)
• SCK: dây 7 Blue (dây xung clock)
Một gói dữ liệu bao gồm 3byte header và thêm 2byte command bổ sung hoặc dữ liệu điều khiển
• 0x01: byte khởi đầu quá trình truyền nhận
Lệnh 0x42 là lệnh thăm dò chính, cho phép nhận tất cả các tín hiệu số hoặc analog từ các phím, tùy thuộc vào cấu hình điều khiển.
• 0x00: lệnh chỉ có chức năng đọc dữ liệu từ PS2
Sau đây là bảng data nhận được khi nhấn các phím PS2, một gói 5byte dữ liệu STT Tên phím
5 Tam giác 0xFF 0x41 0x5A 0xFF 0xF7 0x00
Bảng 2-1 Data của các phím nhấn PS2 Ở các bảng sau đây, mỗi vị trí trong 8bit có một nút, khi nhấn, bit ở vị trí đó về 0
Bảng 2-2 Gói dữ liệu các nút trong byte thứ 4
Bảng 2-3 Gói dữ liệu các nút trong byte thứ 5
Chế độ thiết bị 0x41 chỉ ra mức cao (4) cho biết loại chế độ, với 0x4 là digital, 0x7 là analog và 0xF là cấu hình hoặc thoát Mức thấp (1) thể hiện số lượng word 16bit theo sau header, mặc dù PlayStation không luôn chờ đợi tất cả các byte này, ví dụ như trong trường hợp các nút chỉ có 2 byte 4 và 5, chỉ có 1 word được sử dụng.
• 0x5A: Luôn là 0x5A, giá trị này xuất hiện ở một số nơi không có chức năng
Để nhận tín hiệu analog từ hai joystick và các nút nhấn, cần cấu hình lại lệnh 0x44 nhằm chuyển đổi giữa tín hiệu analog và digital Chức năng này chỉ hoạt động khi cấu hình ở dạng F3, yêu cầu có 3 từ sau header, tương đương với 6 byte.
Bảng 2-4 Bảng config sang chế độ gửi tín hiệu analog
• 03: khoá điều khiển đểngười dùng không thể chuyển lại digital bằng nút
Theo mặc định, các giá trị analog của lực nhấn nút sẽ không được trả lại Để kích hoạt chúng, cần có lệnh 0x4F và 0x44, nhưng chỉ hoạt động khi cấu hình là F3.
Bảng 2-5 Bảng cofig sang chế độ gửi tín hiệu analog từ lực nhấn
FF FF 03: Dữ liệu 18bit bao gồm 2byte trạng thái nút nhấn và 4byte giá trị analog từ hai cần gạt, với mỗi cần gạt cung cấp hai giá trị analog theo hai phương.
X và Y có khoảng giá trị 0 – 255, trạng thái đứng yên ban đầu là 125), 12byte giá trị analog ứng với các lực nhấn ở 10 hai nút
Sau khi thoát khỏi cấu hình bằng hàm 0x43, khi dùng hàm 0x42, ta có thể nhận về18byte dữ liệu và nhận được tín hiệu analog.
LIDAR [11]
RPLIDAR A1 sử dụng công nghệ laser và phần cứng xử lý tầm nhìn tốc độ cao do Slamtec phát triển, cho phép đo khoảng cách với tốc độ hơn 8000 lần mỗi giây.
LIDAR sử dụng tia laser đa hướng 360 độ để quét môi trường xung quanh theo chiều kim đồng hồ, từ đó tạo ra bản đồ phác thảo chính xác của không gian thực.
Hình 2-10 Bản đồ trả về từ LIDAR
Tỷ lệ lấy điểm mẫu của LIDAR trực tiếp là yếu tố quyết định tốc độ và độ chính xác trong việc lập bản đồ của robot RPLIDAR đã cải tiến hệ thống thuật toán và thiết kế quang học, cho phép đạt tốc độ mẫu lên tới 8000 lần với tần số 10Hz.
RPLIDAR có chi phí thấp phù hợp cho ứng dụng SLAM robot trong nhà
Công nghệ in 3D là một bước tiến vượt bậc, cho phép tạo ra các vật thể từ mô hình 3D, mang lại lợi ích về tốc độ và chi phí trong quá trình tạo mẫu Hiện nay, công nghệ này đã trở nên dễ dàng và tiết kiệm hơn, nhờ vào các công cụ hỗ trợ và cộng đồng lớn mạnh, giúp sinh viên cũng như người dùng dễ dàng tiếp cận và áp dụng công nghệ in 3D trong các dự án của mình.
Hiện nay ở Việt Nam chúng ta dễ dàng tiếp cận với ba công nghệ in 3D chính: Công nghệ SLS, Công nghệ SLA, công nghệ FDM
Công nghệ FDM (Fused Deposition Modeling) là phương pháp in 3D nổi bật, sử dụng máy in để xây dựng mẫu bằng cách đùn nhựa nóng chảy Quá trình này diễn ra từng lớp, giúp hóa rắn và tạo nên cấu trúc chi tiết dạng khối.
Cura là phần mềm mã nguồn mở của Ultimaker, chuyên xuất Gcode cho máy in 3D và được nhiều người sử dụng Phần mềm này hỗ trợ tối ưu cho quá trình in 3D, cho phép người dùng tùy chỉnh thông số theo yêu cầu của từng chi tiết Sau khi thiết lập, các file sẽ được lưu dưới dạng Gcode, giúp máy in in ra chính xác các chi tiết mong muốn.
Hình 2-12 In 3D công nghệ FDM trên phần mềm Cura
Trong dự án này, chúng em sử dụng vật liệu PLA vì những ưu điểm của nó:
2.7.1.3 Đặc điểm của công nghệ in 3D FDM
Máy in 3D dùng công nghệ FDM xây dựng mẫu bằng cách đùn nhựa nóng chảy rồi hoá rắn từng lớp tạo nên cấu trúc chi tiết dạng khối
Do công nghệ in 3D FDM có đặc điểm in theo lớp, cơ tính của chi tiết sẽ khác nhau tùy theo phương tác động Vì vậy, việc chọn hướng in trước khi thiết kế là rất quan trọng để đảm bảo chất lượng sản phẩm.
• Dễ dàng thiết kế, gia công sản phẩm
• Sản phẩm in ra có độ nhám lớn
• Kích thước vật in được còn nhỏ
Hình 2-13 Mô phỏng quá trình in theo lớp
Với những đặc điểm va ưu điểm của công nghệ in 3D FDM và phần mềm
CURA, nhóm quyết định chọn phương pháp gia công bằng công nghệ in 3D FDM để tạo phần vỏ cho robot của nhóm
2.7.2.1 Bộđiều khiển board Arduino Mega 2560
Arduino Mega 2560 là một vi điều khiển mạnh mẽ dựa trên ATmega 2560, sở hữu 54 chân vào/ra số, trong đó có 15 chân hỗ trợ chức năng PWM, cùng với 16 chân vào analog, mang lại khả năng kết nối và điều khiển linh hoạt cho các dự án điện tử.
Arduino Mega được trang bị 4 chân UARTs, một dao động tinh thể 16 MHz, cổng USB, jack cắm điện, đầu ICSP và nút reset, cung cấp đầy đủ tính năng hỗ trợ cho các vi điều khiển Người dùng chỉ cần kết nối với máy tính qua cáp USB hoặc sử dụng bộ chuyển đổi AC-DC hoặc pin Bên cạnh đó, Arduino Mega tương thích với hầu hết các shield được thiết kế cho Arduino Duemilanove và Diecimila.
Lý do đề tài chọn vi điều khiển Mega2560 vì bộ nhớ flash của MEGA rất lớn gấp
Arduino MEGA cung cấp khả năng xử lý vượt trội với bộ nhớ 128kb, gấp 4 lần so với UNO, nhờ vào các vi điều khiển như ATmega1280 và ATmega328p Điều này cho phép phát triển các dự án phức tạp cần điều khiển nhiều động cơ và xử lý nhiều luồng dữ liệu song song, với 3 timer và 6 cổng interrupt Các ứng dụng tiêu biểu bao gồm máy in 3D và quadcopter, giúp người dùng dễ dàng thực hiện các ý tưởng sáng tạo.
Digital I/O Pins 54 (of which 15 provide PWM output)
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used by bootloader
Bảng 2-6 Tóm tắt thông số Arduino Mega 2560
Mạch điều khiển 32 RC Servo cho phép điều khiển dễ dàng thông qua phần mềm trên máy tính qua cổng USB, tay cầm không dây PS2 hoặc kết nối với Vi điều khiển qua giao tiếp UART Phần mềm hỗ trợ hầu hết các hệ điều hành phổ biến như Windows 7, Linux, MacOS và Android, giúp người dùng linh hoạt trong việc sử dụng và kết nối.
Để điều khiển 23 servo, cần một số lượng lớn chân PWM, và mạch 32 Servo giúp mở rộng không gian kết nối Vi điều khiển Mega 2560 không đủ chân PWM để đáp ứng yêu cầu này.
Board 32 Servo Controller sử dụng điện áp 5VDC, lưu ý rằng cấp điện áp vượt quá 5VDC có thể gây cháy mạch Điện áp ngõ ra cho RC Servo cũng là 5VDC.
Hỗ trợ giao tiếp USB (115200), tay cầm PS2, UART (4800, 9600,
Tần số điều khiển: 50Hz
Bảng 2-7 Bảng thông số mạch 32 servo controller
Mạch giảm áp UPEC 8,3V - 6V sử dụng hai module giảm áp Ubec Ternigy, đáp ứng nhu cầu cung cấp lượng Ample lớn cho tất cả servo digital JX5521 của Robot Kiến 25DOF Việc sử dụng mạch giảm áp thông thường thường yêu cầu mắc nhiều mạch song song, dẫn đến sự cồng kềnh và phức tạp, làm tăng tải trọng cho robot.
Chọn Ubec nhỏ gọn với công suất cao và đặt công tắc ở chế độ 6V là lựa chọn tối ưu, vì Servo hoạt động hiệu quả nhất ở mức điện áp này Ubec cung cấp đầu ra ổn định với 5V / 8A hoặc 6V / 8A, và có thể nhận đầu vào từ 6V đến 12.6V, tương ứng với 2-3 cell Li-po.
Dòng không hoạt động: 60mA