GIỚI THIỆU CHUNG
Giới thiệu về Mobile Robot và ứng dụng
Robot di động (MR) là loại robot có khả năng di chuyển linh hoạt trong môi trường xung quanh mà không bị gắn cố định MR có thể hoạt động như robot tự hành (AMR), cho phép tự điều chỉnh hướng di chuyển mà không cần sự can thiệp từ thiết bị dẫn hướng vật lý Ngoài ra, MR cũng có thể sử dụng thiết bị dẫn hướng để di chuyển trên các tuyến đường đã được xác định trước (AGV) Môi trường hoạt động của MR rất đa dạng, bao gồm đất, nước, không khí, không gian vũ trụ, hoặc sự kết hợp của các yếu tố này Từ khi ra đời trong thời kỳ chiến tranh thế giới thứ hai, MR đã trở thành chủ đề nghiên cứu chính tại nhiều trường đại học về khoa học và kỹ thuật cho đến ngày nay.
Robot di động (MR) bao gồm các thành phần cơ bản như bộ điều khiển, phần mềm điều khiển, cảm biến và cơ cấu chấp hành Bộ điều khiển thường là vi xử lý hoặc vi điều khiển, giúp quản lý và điều phối hoạt động của robot.
Khiển nhúng, máy tính cá nhân và điện thoại thông minh đều có thể sử dụng phần mềm điều khiển cho MR, được phát triển bằng ngôn ngữ lập trình cấp thấp.
Các ngôn ngữ lập trình như Assembly, C, C++, C#, Java và Pascal thường được sử dụng trong việc phát triển các hệ thống robot Đồng thời, việc lựa chọn cảm biến sẽ phụ thuộc vào yêu cầu cụ thể của từng loại robot.
1.1.2 Ứng dụng của Mobile Robot
Công nghệ MR đang ngày càng được ưa chuộng trong các lĩnh vực thương mại và công nghiệp Tiềm năng ứng dụng của MR rất đa dạng, bao gồm việc sử dụng robot để vận chuyển nguyên vật liệu tại các nhà máy, kho bãi, sân bay, tòa nhà cao tầng và bệnh viện.
Robot hiện đại được ứng dụng rộng rãi trong nhiều lĩnh vực, từ giám sát và tuần tra an ninh trong nhà và ngoài trời, đến đánh giá môi trường và xử lý chất độc hại Các công nghệ này cũng được sử dụng trong thám hiểm dưới nước và khám phá không gian trên các hành tinh khác, cùng với các ứng dụng quân sự và an ninh quốc phòng Trong đời sống hàng ngày, robot còn hỗ trợ các công việc gia đình như hút bụi, lau nhà và làm vườn Một số ví dụ cụ thể bao gồm robot dọn dẹp vệ sinh bể bơi, robot thám hiểm trên sao Hỏa, robot vận chuyển hàng hóa, và robot chuyển đồ trong bệnh viện.
Hình 1.2 Một số ứng dụng của Mobile Robot
Trong những năm gần đây, sự phát triển của khoa học kỹ thuật đã tạo điều kiện cho việc ứng dụng các công nghệ hiện đại như thực tế ảo (VR) và truyền nhận dữ liệu qua mạng không dây cho robot tự hành (MR) Một trong những thành tựu đáng chú ý là vào năm 2013, NASA đã công bố khả năng điều khiển trực tiếp một MR trong các cuộc thám hiểm không gian Đồng thời, công nghệ VR được ứng dụng để mô phỏng quá trình thăm dò vũ trụ, giúp các nhà khoa học có cái nhìn tổng quát hơn về các vật thể trong không gian.
Công nghệ mạng không dây và thực tế ảo
1.2.1 Công nghệ mạng không dây
Mạng không dây (Wireless Network) là một hệ thống máy tính kết nối qua sóng điện từ, cho phép các thiết bị giao tiếp với nhau mà không cần dây cáp Bằng cách sử dụng các giao thức chuẩn, mạng không dây giúp các phần tử trong mạng tương tác và trao đổi dữ liệu một cách hiệu quả.
Mạng không dây được phân chia làm 4 nhóm: Wireless Personal Area Network (WPAN), Wireless Local Area Network (WLAN), Wireless Wide Area Network (WWAN), Wireless Metropolotan Area Network (WMAN)
WPAN (Mạng cá nhân) là mạng kết nối vô tuyến ngắn, thường từ vài mét đến vài chục mét, giữa các thiết bị ngoại vi như tai nghe, đồng hồ, máy in, bàn phím và chuột với máy tính cá nhân hoặc điện thoại di động Với phạm vi phủ sóng hạn chế, các công nghệ kết nối phổ biến trong WPAN bao gồm Bluetooth, Wibree và UWB Đây là mô hình mạng được ưa chuộng trong hệ thống mạng không dây.
Mạng WLAN, hay mạng cục bộ không dây, bao gồm các công nghệ có tầm phủ sóng khoảng vài trăm mét, nổi bật với công nghệ Wifi và các chuẩn 802.11 như a, b, g, n Các hệ thống mạng cục bộ thường có băng thông lớn, tốc độ truyền dữ liệu nhanh và chi phí triển khai thấp Với tầm phủ sóng trung bình trong bán kính 500m, mạng cục bộ thường được sử dụng trong nội bộ của công ty, doanh nghiệp, trường học hoặc phòng thí nghiệm.
WMAN (Mạng đô thị) là mạng dữ liệu băng thông rộng được thiết kế cho các khu vực trong thành phố và thị xã Về quy mô địa lý, mạng WMAN có diện tích lớn hơn so với mạng MAN, phục vụ nhu cầu kết nối và truyền tải dữ liệu hiệu quả trong các khu vực đô thị.
WLAN nhưng nhỏ hơn mạng WWAN Đại diện tiêu biểu cho nhóm này là công nghệ WiMAX, ngoài ra còn có công nghệ băng rộng BWMA 802.20
WWAN, hay còn gọi là mạng diện rộng, sử dụng các công nghệ như GSM, GPRS, UMTS, CDMA2000, HSDPA và LTE Mạng này được áp dụng cho các thiết bị kỹ thuật số như PDA, điện thoại di động và các thiết bị khác Với khả năng phủ sóng xa, WWAN có thể được triển khai trên diện rộng, kết nối giữa các thành phố, tiểu bang, hoặc thậm chí giữa các quốc gia trên toàn thế giới.
Mạng không dây, nhờ vào tính tiện lợi, di động và thiết kế thẩm mỹ, đã nhanh chóng trở thành công nghệ phổ biến trong gia đình, tổ chức và doanh nghiệp, loại bỏ sự phức tạp của việc sử dụng dây cáp kết nối.
1.2.2 Công nghệ thực tế ảo
Công nghệ thực tế ảo (VR) đã xuất hiện từ đầu thập kỷ 90, nhưng gần đây đã phát triển mạnh mẽ Thực tế ảo mô tả một môi trường giả lập do con người thiết kế thông qua phần mềm chuyên dụng, hiển thị trên màn hình máy tính hoặc kính VR, mang đến trải nghiệm như thật cho người dùng Để tăng cường trải nghiệm, các môi trường này thường được tích hợp thêm âm thanh và xúc giác.
Hệ thống VR tổng quát bao gồm năm thành phần chính: phần mềm, phần cứng, mạng liên kết, người dùng và các ứng dụng Trong đó, phần mềm, phần cứng và các ứng dụng là ba yếu tố quan trọng nhất, quyết định hiệu quả và trải nghiệm của người dùng trong môi trường thực tế ảo.
• Phần mềm luôn là linh hồn của VR với 2 chức năng chính là “mô hình hóa” (Modeling) và “mô phỏng” (Simulation) cho các đối tượng Ngoài ra, phần mềm
VR còn phải có khả năng mô phỏng động học, động lực học, mô phỏng khả năng tương tác của đối tượng
Phần cứng của hệ thống thực tế ảo (VR) bao gồm một máy tính mạnh mẽ, như PC hoặc Workstation với cấu hình đồ họa cao Ngoài ra, các thiết bị đầu vào như thiết bị theo dõi gắn trên đầu cũng là những thành phần quan trọng giúp nâng cao trải nghiệm VR.
(head – trackers), gang tay hữu tuyến (wire-gloves), …; và các thiết bị đầu ra như màn hình hiển thị đồ họa, bộ phận âm thanh (loa), …
Hệ thống thực tế ảo nổi bật với tính tương tác cao, đồ họa ba chiều sống động trong thời gian thực và cảm giác đắm chìm mạnh mẽ, đây là những đặc điểm quan trọng giúp nâng cao trải nghiệm người dùng.
Hình 1.3 Ba đặc tính cơ bản của hệ thống VR
Tương tác thời gian thực (Real-time Interactive) cho phép máy tính nhận diện tín hiệu từ người sử dụng và ngay lập tức điều chỉnh thế giới ảo Người dùng có thể thấy sự thay đổi trên màn hình theo ý muốn của mình, tạo nên sự hấp dẫn từ những mô phỏng sống động này.
Cảm giác đắm chìm (Immersion) trong thực tế ảo (VR) tạo ra khả năng tập trung cao độ vào thông tin từ người sử dụng Người dùng cảm thấy mình hòa nhập vào thế giới ảo, và VR còn nâng cao trải nghiệm này bằng cách kích thích các kênh cảm giác khác Họ không chỉ nhìn thấy và điều khiển các đối tượng đồ họa 3D mà còn có thể sờ và cảm nhận chúng như thật.
Tính tưởng tượng trong một thế giới ảo bao gồm hai khía cạnh quan trọng: sự du hành và động lực học của môi trường Sự du hành cho phép người dùng di chuyển tự do trong không gian ảo, giống như trong một môi trường thực tế Trong khi đó, động lực học của môi trường quy định cách thức tương tác giữa con người, vật thể và các yếu tố khác, tạo ra một hệ thống có trật tự để trao đổi năng lượng và thông tin.
Thực tại ảo hiện đang có nhiều ứng dụng quan trọng trong các lĩnh vực như nghiên cứu, giáo dục, thương mại và dịch vụ Đặc biệt, công nghệ này được áp dụng rộng rãi trong quân sự, y học, giáo dục và ngành công nghiệp game.
Mục tiêu và yêu cầu của đề tài
Mobile Robot (MR) là một lĩnh vực nghiên cứu quan trọng tại các trường đại học và phòng thí nghiệm Việc ứng dụng thực tế ảo vào MR đã được đề xuất từ những năm 1998, nhưng chủ yếu chỉ dừng lại ở việc tái tạo môi trường ảo để điều khiển robot Sự phát triển của mạng kết nối không dây đã giúp việc điều khiển robot từ xa trở nên thuận tiện hơn Mặc dù đã có một số công trình trên thế giới áp dụng công nghệ này cho MR, nhưng VR chủ yếu được sử dụng để tái tạo môi trường song song với môi trường thực, nhằm giảm sai số quỹ đạo di chuyển mà không hỗ trợ trực tiếp cho người điều khiển.
Nắm bắt xu hướng phát triển của công nghệ VR và mạng không dây, tác giả đề xuất giải pháp "Ứng dụng công nghệ mạng không dây và thực tế ảo để điều khiển từ xa Mobile Robot" Mục tiêu là cung cấp một phương pháp hiệu quả cho việc quan sát và điều khiển robot di động trên nền tảng MR nhúng, với các chức năng đa dạng và tiện ích.
− Sử dụng 1 điện thoại thông minh với màn hình cảm ứng để điều khiển chuyển động của MR
Sử dụng một điện thoại gắn trên khung kính thực tế ảo, kết hợp với cảm biến chuyển động bên trong điện thoại, giúp xác định cử chỉ và hướng nhìn của người dùng, từ đó điều chỉnh góc nhìn của camera.
Trang bị cảm biến IMU (Inertial Measurement Unit) cho xe MR giúp đo lường chuyển động khi lên và xuống dốc, từ đó tự động điều chỉnh góc camera gắn trên thân xe Điều này đảm bảo hình ảnh hiển thị qua kính thực tế ảo phản ánh chính xác hướng nhìn của người điều khiển.
Các thành phần được kết nối qua công nghệ Wifi theo chuẩn TCP/IP, mang lại tính linh hoạt cao trong việc điều khiển mà không bị giới hạn bởi dây dẫn Giải pháp này cho phép người điều khiển vừa điều chỉnh chuyển động, vừa quan sát môi trường xung quanh của MR thông qua camera gắn trên thiết bị.
Công nghệ VR trên thân MR mang đến cho người điều khiển trải nghiệm sống động, cho phép họ hòa mình vào môi trường mà MR đang di chuyển.
Đề tài “Ứng dụng công nghệ mạng không dây và thực tế ảo để điều khiển từ xa Mobile Robot” tập trung vào việc kết hợp công nghệ mạng không dây với thực tế ảo nhằm điều khiển robot di động từ xa, đáp ứng các yêu cầu chính về tính hiệu quả và ứng dụng thực tiễn trong các lĩnh vực khác nhau.
Để triển khai các ứng dụng công nghệ mạng không dây và thực tế ảo, việc xây dựng và lựa chọn thiết bị cấu hình hệ thống phần cứng MR là rất quan trọng Điều này đảm bảo hiệu suất tối ưu và khả năng tương thích với các công nghệ mới nhất trong lĩnh vực này.
Thiết kế phần mềm cho phép quan sát và điều khiển MR theo các chức năng đã đề xuất, bao gồm các ứng dụng dành cho cả MR và điện thoại thông minh.
▪ Bộ điều khiển trung tâm xử lý dữ liệu
▪ Bù góc tự động cho camera khi MR lên dốc hoặc xuống dốc
• Dành cho điện thoại thông minh
▪ Điều khiển góc quay camera gắn trên thân robot
▪ Hiển thị hình ảnh quan sát qua kính thực tế ảo
Bài viết này trình bày về việc điều khiển chuyển động của Robot di động (MR), bao gồm các nội dung chính như sau: Chương 2 sẽ giới thiệu cấu hình hệ thống MR và lựa chọn thiết bị phù hợp; Chương 3 mô tả quá trình ghép nối phần cứng các thành phần của MR, tạo điều kiện thuận lợi cho việc phát triển phần mềm điều khiển ở Chương 4; cuối cùng, Chương 5 sẽ trình bày về việc vận hành hệ thống và kết quả thực nghiệm.
Chương 1 đã trình bày khái quát về sự phát triển của MR và các công nghệ kết nối mạng không dây, công nghệ thực tế ảo Đồng thời đã đưa một cái nhìn tổng quan về tính ứng dụng của các công nghệ này vào mục đích quan sát và điều khiển MR, qua đó nêu bật được nội dung và các nhiệm vụ cần thực hiện của đề tài
CẤU HÌNH HỆ THỐNG VÀ LỰA CHỌN THIẾT BỊ
Đề xuất cấu hình hệ thống
Xuất phát từ những yêu cầu của đồ án ở chương 1 thì MR được xây dựng với cấu hình gồm các thành phần như sau:
- Một MR trang bị bộ xử lý trung tâm, động cơ, camera và các cảm biến và bộ xử lý phụ trợ
- Một điện thoại thông minh điều khiển chuyển động của MR
- Một điện thoại thông minh khác để điều khiển góc quay của camera gắn trên thân
MR, đồng thời có thể hiển thị hình ảnh phục vụ cho việc quan sát qua bộ kính thực tế ảo
Toàn bộ cấu hình của hệ thống được trình bày trong hình 2.1 dưới đây
Bộ Điều khiển Trung tâm
Bộ xử lý phụ trợ
Hình 2.1 Cấu hình hệ thống Mobile Robot
• Trái tim của hệ thống là nền tảng MR nhúng với bộ điều khiển trung tâm kết nối tới các thành phần thu nhận hình ảnh và chuyển động
Module trung tâm tiếp nhận dữ liệu từ người điều khiển qua kết nối không dây, xử lý thông tin và phát tín hiệu điều khiển cho các động cơ di chuyển cùng động cơ servo Đồng thời, nó cũng đảm bảo việc quản lý và điều phối các hoạt động của hệ thống.
Chương 2 Cấu hình hệ thống và lựa chọn thiết bị
Dữ liệu từ 10 trung chuyển được thu thập từ camera và truyền trực tiếp lên màn hình của người điều khiển qua giao thức HTTP Đồng thời, giá trị từ cảm biến IMU, đo chuyển động của robot, được thu thập từ một module xử lý phụ và gửi tới module xử lý trung tâm qua giao thức UART Điều này giúp tự động điều chỉnh góc quay của camera khi robot di chuyển lên hoặc xuống dốc, đảm bảo hình ảnh thu được luôn đúng hướng nhìn của người điều khiển.
Hai động cơ của robot được điều khiển tốc độ bằng xung PWM (Pulse Width Modulation), cho phép điều chỉnh tốc độ một cách riêng rẽ Điều này giúp robot MR có khả năng di chuyển linh hoạt, bao gồm tiến, lùi và rẽ.
Camera được sử dụng để thu nhận hình ảnh môi trường xung quanh MR, với hướng nhìn được điều khiển bởi hai động cơ servo thông qua xung PPM (Pulse Position Modulation) Một động cơ servo đảm nhiệm việc điều chỉnh góc quay trái - phải (yaw angle), trong khi động cơ servo còn lại điều khiển góc ngẩng lên - xuống (pitch angle) của camera.
Hai trong ba thành phần cho thấy góc quay của một đối tượng trong không gian 3 chiều Sự kết hợp này cho phép camera xoay linh hoạt, mang đến góc nhìn rộng hơn.
Điện thoại thông minh đầu tiên được sử dụng để điều khiển chuyển động của robot Vị trí các ngón tay trên màn hình cảm ứng đa điểm sẽ được xác định và gửi đến module xử lý trung tâm, từ đó điều chỉnh tốc độ và hướng di chuyển của robot.
Điện thoại thông minh thứ hai được tích hợp vào bộ khung kính thực tế ảo, cho phép nhận hình ảnh từ camera qua kết nối không dây Nó nhân đôi khung hình và bố trí chúng kề nhau trên màn hình, tương ứng với vị trí của hai mắt người dùng Các cảm biến bên trong điện thoại, bao gồm cảm biến gia tốc, con quay hồi chuyển và cảm biến từ kế, giúp ước lượng vị trí góc quay yaw và góc ngẩng pitch Thông tin này được truyền về module trung tâm, điều khiển hai động cơ servo để thay đổi hướng nhìn của camera theo hướng nhìn của người điều khiển.
Lựa chọn thiết bị
2.2.1 Nền tảng phần cứng của Mobile Robot a) Lựa chọn khung cơ khí cho Mobile Robot
Khung cơ khí được DFRobot sản xuất là nền tảng cho "Tank Mobile Robot", bao gồm khung kim loại và hệ thống bánh xe dẫn hướng như được thể hiện trong hình 2.2.
Hình 2.2 Nền tảng khung cơ khí của Tank Mobile Robot
Khung vỏ ngoài của thiết bị được làm từ hợp kim nhôm cao cấp, mang lại sự chắc chắn và bền đẹp Thiết kế với nhiều lỗ và rãnh kết nối cho phép người dùng dễ dàng tích hợp các thiết bị ngoại vi và board mạch điều khiển theo từng dự án phát triển, tạo sự linh hoạt tối ưu Hệ thống truyền động bánh xích dẫn hướng giúp thiết bị di chuyển vượt trội trên các địa hình khó khăn Đối với phần cứng trung tâm, board mạch “Romeo for Intel Edison” được lựa chọn nhờ cấu hình phù hợp và đầy đủ tiện ích, hỗ trợ phát triển ứng dụng điều khiển MR trên nền tảng mã nguồn mở Intel Edison với hệ điều hành Linux.
Chương 2 Cấu hình hệ thống và lựa chọn thiết bị
Hình 2.3 Board mạch Romeo for Intel Edison
− Được trang bị chip xử lý Intel Edison với dual-core bao gồm: Intel AtomTM 500Mhz và Intel QuarkTM 100Mhz, mang lại tốc độ xử lý nhanh chóng
− Điện áp đầu vào: từ 6 – 20V
− Số chân vào/ra số: 14
− Số chân vào/ra tương tự: 6
− Hỗ trợ cấp nguồn qua USB và qua nguồn cấp bên ngoài (pin, ắc quy, …)
− Hỗ trợ giao tiếp SPI, I2C, UART, cổng giao tiếp OTG, hỗ trợ xuất tín hiệu PWM và PPM, …
− Tích hợp sẵn Wifi với chuẩn Broadcom 43340 802.11 a/b/g/n dual band (2.4GHz và 5GHz)
− Tích hợp IC mạch cầu L298 để điều khiển động cơ DC c) Lựa chọn các thiết bị ngoại vi
Hệ truyền động của MR bao gồm hai động cơ DC, được thiết kế với vỏ ngoài bằng khung kim loại, hoạt động ở điện áp 6V và có khả năng đạt tốc độ tối đa lên đến 133cm/s, giúp MR di chuyển linh hoạt trên nhiều loại địa hình.
Việc điều khiển hướng quay của camera được thực hiện thông qua 2 động cơ servo hoạt động với dải điện áp từ 4.8 – 6V, có khả năng quay 180° (±90°)
Bộ phận thu nhận hình ảnh trong môi trường khi MR hoạt động sử dụng camera IP với độ phân giải 2MP, được lắp trên hệ thống xoay 2 bậc tự do DOF, được điều khiển bởi hai động cơ servo.
Chương 2 Cấu hình hệ thống và lựa chọn thiết bị
Camera IP sẽ được kết nối với board mạch điều khiển Intel Edison qua cổng USB OTG Đây là loại camera có khả năng số hóa, xử lý và mã hóa hình ảnh bên trong thiết bị, sau đó truyền tín hiệu số qua Internet đến máy tính hoặc thiết bị lưu trữ Dữ liệu được mã hóa, giúp bảo vệ nội dung khỏi việc bị đánh cắp.
2.2.2 Bộ kính thực tế ảo
Hình 2.7 Bộ kính thực tế ảo điển hình
Kính thực tế ảo (Virtual Reality Glasses) là công cụ quan trọng cho việc phát triển các ứng dụng công nghệ VR, giúp người dùng trải nghiệm không gian hình ảnh mô phỏng sống động do máy tính xử lý.
15 ứng dụng theo dõi môi trường giả lập qua hình ảnh trên màn hình điện thoại thông minh với tính năng VR Hình 2.7 bên dưới minh họa một bộ kính thực tế ảo tiêu biểu.
• Cấu tạo của kính thực tế ảo bao gồm một số thành phần sau
Hệ thống giá đỡ có khả năng điều chỉnh cự ly rất quan trọng, vì nó giúp điều chỉnh tiêu cự thấu kính phù hợp với khoảng cách giữa hai mắt mỗi người Mỗi người có độ rộng màn hình điện thoại khác nhau, do đó, việc điều chỉnh tiêu cự là cần thiết để đảm bảo trải nghiệm sử dụng tốt nhất.
Hệ thống thấu kính thường bao gồm hai thấu kính tương ứng với hai mắt của người quan sát, đóng vai trò quan trọng trong việc tạo ra hình ảnh rõ nét và không gian mô phỏng sống động Chất lượng thấu kính ảnh hưởng đến 95% trải nghiệm hình ảnh; nếu thấu kính kém, hình ảnh sẽ không trung thực, gây ra hiện tượng hoa mắt và mỏi mắt.
Hệ thống ốp mặt và đầu cho kính thực tại ảo được thiết kế nhẹ nhàng và tiện lợi, giúp người dùng có thể sử dụng lâu mà không gặp phải tình trạng mỏi cổ, đau đầu hay nóng da mặt Thiết kế thông minh của hệ thống ốp sẽ mang lại trải nghiệm thoải mái tối ưu cho người dùng.
• Nguyên tắc hoạt động của kính thực tế ảo
Hình 2.8 Hiển thị hình ảnh Side by Side
Các loại kính thực tế ảo hiện nay hoạt động dựa trên nguyên lý 3D side by side, chia màn hình thành hai khung hình riêng biệt cho mỗi mắt Khi đeo kính, hai khung hình này hội tụ qua hệ thống thấu kính, tạo ra hình ảnh chồng chéo và mang lại độ nổi khác nhau cho người sử dụng.
Chương 2 Cấu hình hệ thống và lựa chọn thiết bị
Trên thị trường hiện nay, có nhiều loại kính VR với chất lượng và giá cả đa dạng, đáp ứng nhu cầu sử dụng của người tiêu dùng Trong bài viết này, tác giả chọn loại kính VR phổ biến, tích hợp đầy đủ tính năng, phục vụ cho việc quan sát hình ảnh từ camera gắn trên xe MR.
2.2.3 Điện thoại thông minh Android
Dựa trên các yêu cầu và nhiệm vụ cụ thể cho điện thoại thông minh đã nêu trong phần cấu hình hệ thống MR, dự án lựa chọn hai điện thoại Android làm nền tảng triển khai ứng dụng phần mềm Cả hai điện thoại đều được trang bị module Wifi, cảm biến đo chuyển động và màn hình cảm ứng.
Lý do chọn điện thoại Android là do tính phổ biến và thị phần sử dụng lớn, đồng thời việc Debug (tìm kiếm và phát hiện lỗi trong lập trình) cũng dễ dàng hơn so với nền tảng iOS.
➢ Giới thiệu về các cảm biến đo chuyển động được tích hợp trong điện thoại
Các cảm biến hiện đại trên điện thoại thông minh, như cảm biến gia tốc, con quay hồi chuyển và từ kế, đều sử dụng công nghệ vi cơ điện MEMs (Micro Electro Mechanical Systems) với kích thước rất nhỏ.
• Cảm biến gia tốc (accelerometer)
KẾT NỐI PHẦN CỨNG
Điều chế độ rộng xung PWM (Pulse Width Modulation)
Phương pháp điều chế độ rộng xung PWM là kỹ thuật điều chỉnh điện áp ra tải thông qua việc thay đổi chuỗi xung vuông, từ đó ảnh hưởng đến điện áp đầu ra.
Chương 3 Kết nối phần cứng
Chế độ rộng xung PWM tạo ra xung với tần số cố định, trong khi thời gian xung cao trong một chu kỳ có thể điều chỉnh Các thông số quan trọng cần chú ý bao gồm:
- Tần số: là số lần lặp lại dao động trong một đơn vị thời gian, đơn vị là Hz
- Chu kỳ (Period): là khoảng thời gian tồn tại một dao động T = 1 / 𝑓 𝑠
- Thời gian xung ở mức cao (Pulse Width - độ rộng xung): 𝑇 𝑜𝑛
- Thời gian xung ở mức thấp: 𝑇 𝑜𝑓𝑓
- Duty Cycle = on 100% on 100% on off
Điện áp đầu ra trung bình được tính bằng công thức 𝑉 𝑇𝐵 = 𝑉 𝐻 × 𝐷𝑢𝑡𝑦 𝐶𝑦𝑐𝑙𝑒, trong đó 𝑉 𝐻 là điện áp cao Bằng cách điều chỉnh độ rộng xung, điện áp ra trung bình có thể thay đổi, từ đó điều khiển tốc độ quay của động cơ DC, cho phép nó hoạt động nhanh hoặc chậm theo yêu cầu.
Điều chế vị trí xung PPM (Pulse Position Modulation)
Điều khiển góc quay của động cơ Servo dựa trên nguyên lý điều chế vị trí xung PPM Xung PPM có nguồn gốc từ xung PWM, nhưng thời gian xung ở mức cao chỉ kéo dài từ 1ms đến 2ms.
Hình 3.6 Điều chế vị trí xung PPM
Thời gian xung ở mức cao quy định góc quay của động cơ servo Cụ thể, với thời gian xung 1ms, servo quay 0⁰; 1,5ms tương ứng với 90⁰; và 2ms là 180⁰ Do đó, bằng cách thay đổi thời gian xung từ 1ms đến 2ms, ta có thể điều khiển góc quay của servo từ 0⁰ đến 180⁰.
Giao tiếp với MPU6050 qua I2C
Hình 3.7 Kết nối trong truyền thông I2C
Giao tiếp I2C sử dụng hai đường kết nối chính là SCL (Serial Clock) và SDA (Serial Data), với SCL là đường truyền xung nhịp đồng hồ đồng bộ theo một hướng và SDA là đường truyền dữ liệu theo hai hướng Trong hệ thống I2C, nhiều thiết bị có thể kết nối mà không xảy ra nhầm lẫn, nhờ vào việc mỗi thiết bị được nhận dạng qua một địa chỉ duy nhất trong mối quan hệ chủ - tớ (master - slave) Trong đồ án này, board mạch Arduino Nano hoạt động như thiết bị chủ (master), trong khi cảm biến MPU6050 gắn trên module GY521 đóng vai trò là thiết bị tớ (slave).
• Cơ chế đọc dữ liệu tử MPU6050
Quá trính đọc dữ liệu từ MPU6050 được mô tả thông qua hình 3.5 sau đây:
Để đọc dữ liệu từ thanh ghi của MPU6050, vi điều khiển (master) cần gửi tín hiệu "Start", sau đó là địa chỉ I2C cùng với một bit "Write".
Chương 3 Kết nối phần cứng
Khi địa chỉ thanh ghi được đọc, vi điều khiển sẽ nhận tín hiệu “ACK” từ MPU6050 và gửi tín hiệu “Start” kèm theo địa chỉ và bit “Read” (R) Tiếp theo, MPU6050 phản hồi bằng tín hiệu “ACK” và truyền dữ liệu đến vi điều khiển Quá trình giao tiếp kết thúc khi vi điều khiển gửi tín hiệu không chấp nhận (NACK) và bit “Stop” Điều kiện để xác định NACK là khi đường dữ liệu SDA vẫn ở mức cao tại xung clock thứ 9.
Chương 3 đã trình bày rõ ràng về cách kết nối các thiết bị phần cứng để tạo thành một hệ thống MR hoàn chỉnh, đồng thời cung cấp phương hướng để điều khiển động cơ
DC, động cơ servo và giao tiếp với cảm biến MPU6050 là những yếu tố quan trọng, tạo nền tảng cho việc phát triển phần mềm điều khiển trong các chương tiếp theo.
THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN
Giải thuật xác định góc định hướng từ các cảm biến chuyển động
Để chuyển đổi các giá trị đo từ cảm biến MPU6050 sang các hệ quy chiếu khác, cần xác định mối quan hệ giữa các đại lượng Bài viết này sử dụng biến đổi góc Euler làm cơ sở toán học để phát triển thuật toán trích xuất góc định hướng từ cảm biến MPU6050.
Góc Euler, được định nghĩa bởi Leonhard Euler, là ba góc mô tả sự định hướng của vật thể trong hệ tọa độ 3 chiều cố định Chúng cũng thể hiện định hướng của khung tham chiếu di động trong vật lý hoặc cơ sở chung trong đại số tuyến tính 3 chiều Mọi định hướng đều có thể đạt được thông qua ba phép quay cơ bản quanh các trục của hệ tọa độ, từ đó xác định các góc Euler Hình 4.1 minh họa chuyển động quay của đối tượng trong không gian 3 chiều.
Hình 4.1 Góc quay roll pitch yaw trong không gian
− Roll là chuyển động diễn ra xung quanh trục dọc của đối tượng Góc roll (𝛼) là góc quay quanh trục X trên hệ tọa độ
Chương 4 Thiết kế phần mềm điều khiển
− Pitch là chuyển động diễn ra xung quanh trục ngang của đối tượng Góc pitch (𝜃) là góc quay quanh trục Y trên hệ tọa độ
− Yaw là chuyển động diễn ra xung quanh trục thẳng đứng Góc yaw (𝜓) là góc quay quanh trục Z trên hệ tọa độ
Phạm vi của góc 𝜓 và góc 𝛼 là 2π rad, trong khi góc 𝜃 có phạm vi là π rad Để xác định giá trị các thành phần trong các phép quay quanh trục tọa độ, ta sử dụng các ma trận xoay được định nghĩa rõ ràng.
4.1.1 Xác định góc quay quanh trục từ các cảm biến chuyển động a) Xác định góc roll (𝛼) và góc pitch (𝜃) từ phép đo cảm biến gia tốc (accelerometer)
Vector gia tốc thu được sau các phép quay quanh trục là:
Với g = 9.8 (m/𝑠 2 ) là giá trị gia tốc trọng trường
Tiến hành biến đổi như sau:
Trong đó px p py pz
G là các thành phần của vector gia tốc được đo bởi cảm biến gia tốc
Thay giá trị của các ma trận xoay nghịch đảo vào thu được: cos( ) 0 sin( ) 1 0 0 0
0 1 0 0 cos( ) sin( ) 0 sin( ) 0 cos( ) 0 sin( ) cos( ) px py pz
cos( ) sin( )sin( ) sin( ) cos( ) 0
0 cos( ) sin( ) 0 sin( ) cos( )sin( ) cos( ) cos( ) px py pz
Nhân 2 ma trận vế trái và đồng nhất hệ số với vế phải sẽ thu được công thức tính góc 𝛼 và góc 𝜃 từ cảm biến gia tốc như sau: cos( ) sin( ) 0 tan( ) py py pz pz
G (3.8) cos( ) sin( ) sin( ) cos( ) 0 px py pz
G G G tan( ) sin( ) cos( ) px py pz
G G (3.9) b) Xác định góc định hướng từ cảm biến con quay hồi chuyển (Gyroscope)
Con quay hồi chuyển Gyroscope đo tốc độ góc theo thời gian quanh các trục tọa độ X, Y, Z của thiết bị Để thu được góc định hướng từ Gyroscope, cần tích phân giá trị tốc độ góc theo thời gian, tức là nhân tốc độ góc với khoảng thời gian giữa giá trị cuối cùng và giá trị đầu ra hiện tại của cảm biến Ví dụ, với góc roll, giá trị góc quay quanh trục X ban đầu được ký hiệu là 𝛼 0𝑥 tại thời điểm.
𝑡 0 Sau đó, ta đo góc này tại thời điểm 𝑡 1 và thu được giá trị tức thời là 𝛼 1𝑥
Chương 4 Thiết kế phần mềm điều khiển
Tốc độ góc sẽ được tính như sau:
Việc xác định góc định hướng từ Gyroscope dễ dàng nhưng cần khởi tạo vị trí ban đầu với giá trị đã biết, thường sử dụng dữ liệu từ cảm biến gia tốc Để xác định góc yaw (𝜓), cảm ứng từ kế được sử dụng để đo vector ba chiều của từ trường trái đất, gồm các thành phần 𝐵 𝑥, 𝐵 𝑦, 𝐵 𝑧 La bàn là một ví dụ điển hình để đo hướng và xác định hướng Bắc của từ trường.
Hình 4.2 Mô tả vector từ trường trong không gian Vector từ trường sau khi thực hiện các phép quay được xác định: cos( )
Vector cường độ từ trường B có giá trị cường độ trường địa từ trên bề mặt trái đất dao động từ 22 𝜇T ở Nam Mỹ đến 67 𝜇T ở phía nam Australia.
+) 𝛾 là góc nghiêng của trường địa so với phương nằm ngang, giá trị của nó thay đổi theo vị trí địa lý Ví dụ ở Hà Nội thì B = 45.34 𝜇𝑇 và 𝛾 = -1°28’ W
Thực hiện biến đổi B p thu được:
Giá trị của các ma trận nghịch đảo đã được thay đổi, và phép nhân ma trận đã được thực hiện, cho kết quả như sau: cos( ) sin( ) sin( ) sin( ) cos( ) cos( ) cos( ) sin( ) cos( ) cos( ) sin( ) sin( ) sin( ) cos( ) sin( ) cos( ) cos( ) px py pz py py px py pz.
Suy ra: cos( ) sin( ) tan( ) cos( ) sin( )sin( ) sin( ) cos( ) py pz px py pz
4.1.2 Bộ lọc bù (Complementary Filter)
Phép đo góc dựa vào dữ liệu từ cảm biến gia tốc và cảm biến từ kế có độ nhạy cao với nhiễu trong thời gian ngắn, nhưng lại mang lại kết quả đáng tin cậy khi được áp dụng trong các tình huống thực tế.
Chương 4 Thiết kế phần mềm điều khiển
Trong thời gian dài, việc đo góc từ cảm biến con quay hồi chuyển có thể dẫn đến sai số do hiện tượng "trôi" giá trị Điều này xảy ra vì việc tích phân tốc độ góc theo thời gian sau mỗi lần lấy giá trị Để khắc phục tình trạng này, chúng ta sử dụng bộ lọc bù (Complementary Filter) để tổng hợp kết quả đo góc từ cảm biến gia tốc, cảm biến từ kế và con quay hồi chuyển, giúp loại bỏ nhiễu và hiện tượng "trôi", từ đó cải thiện độ chính xác trong đo đạc.
Cảm biến gia tốc không thể ước lượng góc yaw, vì vậy cảm biến từ kế được sử dụng để khắc phục vấn đề này Các góc định hướng roll, pitch, yaw ước lượng từ cảm biến gia tốc được ký hiệu là 𝛼 𝑎𝑐𝑐,𝑚𝑎𝑔, 𝜃 𝑎𝑐𝑐,𝑚𝑎𝑔 và 𝜓 𝑎𝑐𝑐,𝑚𝑎𝑔, trong khi các góc ước lượng từ cảm biến con quay hồi chuyển gyroscope lần lượt là 𝛼 𝑔𝑦𝑟𝑜, 𝜃 𝑔𝑦𝑟𝑜 và 𝜓 𝑔𝑦𝑟𝑜.
Các thành phần của bộ lọc bù được mô tả như hình 3.4 dưới đây
Góc định hướng tổng hợp
Hình 4.3 Cấu trúc cơ bản của bộ lọc bù
Ví dụ tính góc định hướng tổng hợp sau khi qua bộ lọc bù cho góc roll (𝛼):
+) 𝛼 (𝑡) là góc tính toán tổng hợp
+) 𝛼 𝑔𝑦𝑟𝑜 (𝑡) là góc đo từ con quay hồi chuyển
+) 𝛼 𝑎𝑐𝑐,𝑚𝑎𝑔 là góc tính toán từ cảm biến gia tốc, từ kế
+) 𝑎 là hệ số bộ lọc
Tính toán tương tự cho các góc tổng hợp pitch (𝜃) và yaw (𝜓)
Việc xác định hệ số bộ lọc 𝑎 thông qua việc xác định, lựa chọn hằng số thời gian
𝜏 và thời gian lấy mẫu 𝑇 𝑠
Thời gian lấy mẫu (𝑇𝑠) là khoảng thời gian giữa mỗi vòng lặp của chương trình Chẳng hạn, với tỷ lệ lấy mẫu 𝑓𝑠 = 100Hz, thời gian lấy mẫu sẽ được tính bằng công thức 𝑇𝑠 = 1/𝑓𝑠 = 0.01 giây.
+) Hằng số thời gian 𝜏 là khoảng thời gian tương đối của tín hiệu mà nó sẽ hoạt động.
Công cụ lập trình Android Studio
Hình 4.4 Minh họa công cụ lập trình Android Studio
Công nghệ được chọn để phát triển phần mềm điều khiển và quan sát hình ảnh trên nền tảng Android là Android Studio, một môi trường phát triển tích hợp (IDE) do Google cung cấp Android Studio chủ yếu bao gồm hai thành phần chính: các tệp mã nguồn trên class Activity, được viết bằng ngôn ngữ Java.
Chương 4 Thiết kế phần mềm điều khiển
38 giao diện ứng dụng với định dạng XML (eXtensible Markup Language) mà người lập trình có thể tùy biến chỉnh sửa theo ý mình
Xuất phát từ yêu cầu đặt ra của các phần mềm, thông qua công cụ lập trình
Android Studio là công cụ phát triển phần mềm mã nguồn mở, cho phép lập trình viên xây dựng ứng dụng trên hệ điều hành Android Nó không chỉ hỗ trợ việc viết mã mà còn cung cấp giao diện người dùng thân thiện, giúp người dùng dễ dàng tương tác khi khởi chạy các ứng dụng trên điện thoại.
Thiết kế các phần mềm điều khiển
4.3.1 Phần mềm điều khiển trung tâm
Kết nối Wifi và khởi tạo Server
Kết nối với điện thoại Android 2 Đ
Nhận bản tin S = f(W, G, Z, Y) từ điện thoại qua Wifi Đ
Nhận giá trị X từ Arduino Nano
Xử lý dữ liệu Điều khiển động cơ
Kết nối bị gián đoạn?
Hình 4.5 Lưu đồ thuật toán chương trình điều khiển trung tâm
Bộ xử lý trung tâm, hay còn gọi là board Intel Edison, đóng vai trò quan trọng trong hệ thống điều khiển xe MR Toàn bộ các module hoạt động trên một chương trình duy nhất, được lập trình để điều khiển module chuyển động và module servo camera Board Intel Edison nhận dữ liệu từ điện thoại Android qua Wifi, sử dụng giao thức TCP/IP và lập trình Socket trong mô hình “Server – Client” Server lắng nghe kết nối từ Client trên địa chỉ IP và cổng đã định sẵn, xử lý yêu cầu từ Client và trả kết quả lại Client chỉ gửi truy vấn và chờ nhận phản hồi từ Server.
Bộ điều khiển trung tâm hoạt động như một Server kết nối Wifi với địa chỉ IP và cổng Port xác định, thực hiện chương trình đã nạp Chương trình này kiểm tra trạng thái các thiết bị điều khiển (điện thoại Android) - Client, bằng cách so sánh địa chỉ IP và cổng Port Nếu thông tin khớp, dữ liệu từ điện thoại Android sẽ được gửi tới bộ điều khiển trung tâm, nơi Intel Edison tiếp nhận, phân tích và điều khiển các module tương ứng.
Dữ liệu trên điện thoại Android được gửi đi dưới dạng một bản tin đã được đóng gói thành chuỗi ký tự (string) Chiều dài của mỗi bản tin được quy định cụ thể.
Bảng 4.1 Khung bản tin truyền nhận
Bản tin được gửi tới bộ điều khiển trung tâm với thời gian trích mẫu 100ms, bao gồm các ký tự đặc trưng: ký tự ‘#’ làm byte khởi đầu, ‘/’ là byte phân cách, và ‘!’ là byte kết thúc Trong đó, W đại diện cho dữ liệu tốc độ động cơ, còn G là dữ liệu xác định hướng rẽ.
Dữ liệu MR, Y và Z liên quan đến góc quay của camera, trong đó MR là dữ liệu góc quay trái - phải (yaw), Y là dữ liệu góc quay lên - xuống (pitch) Tất cả các dữ liệu này đều có kích thước 4 byte.
Chương 4 Thiết kế phần mềm điều khiển
Chương trình sử dụng giá trị W và G kết hợp với việc đảo chiều động cơ để điều khiển chuyển động của robot Các chế độ điều khiển bao gồm: dừng, tiến, lùi, tiến rẽ phải, tiến rẽ trái, lùi rẽ trái, lùi rẽ phải, xoay tại chỗ theo chiều kim đồng hồ và xoay tại chỗ ngược chiều kim đồng hồ Giá trị W nằm trong khoảng [-255; 255] và giá trị G trong khoảng [-85; 85].
Bảng 4.2 mô tả các trạng thái di chuyển của xe MR, dựa trên giá trị tốc độ và chiều quay của hai động cơ DC, được xác định từ sự kết hợp giữa W và G.
Bảng 4.2 Các trạng thái di chuyển của MR
STT W G Tốc độ M1 Tốc độ M2
Chương trình điều khiển góc quay camera sử dụng các giá trị Y và Z để phát tín hiệu PPM, trong đó Z điều khiển góc quay của servo trên (0-180 độ) và Y điều khiển góc quay của servo dưới (trái-phải, -90 đến 90 độ) Để bù đắp cho sự thay đổi góc quay của camera khi xe MR di chuyển trên địa hình dốc, bộ điều khiển trung tâm còn nhận thêm giá trị X, đại diện cho góc pitch (quay lên xuống) từ board Arduino Nano qua giao tiếp UART Giá trị X được tính toán từ cảm biến MPU6050 và gửi đến bộ điều khiển trung tâm để đảm bảo sự chính xác trong việc điều khiển góc quay của camera.
Do đó thành phần điều khiển góc quay camera sẽ thực hiện 2 tính năng như sau:
Khi xe MR di chuyển trên địa hình phẳng, bộ điều khiển trung tâm chỉ cần sử dụng giá trị Z để thiết lập góc quay cho động cơ servo trên, vì lúc này MR đang ở trạng thái cân bằng với góc X bằng 0.
Khi xe MR di chuyển lên hoặc xuống dốc, bộ điều khiển trung tâm sử dụng giá trị Z kết hợp với giá trị X để thiết lập góc quay cho top servo.
− Lên dốc: góc X > 0 nên (Z – X) → góc quay top servo
− Xuống dốc: góc X