CHƯƠNG 4. THI CÔNG HỆ THỐNG 4.1 GIỚI THIỆU 4.1 GIỚI THIỆU
Sau khi tính tốn, thiết kế, đưa ra những phương án cụ thể, chúng ta bắt đầu thi cơng hệ thống. Nhóm quyết định sử dụng các module lắp ráp thành một hệ thống trên tiêu chí thẩm mỹ, gọn gàng, dễ sử dụng. Đảm bảo các yêu cầu về an toàn sử dụng cho người sử dụng. Ngồi ra nhóm sử dụng mi-ca để hồn thiện vỏ hộp đặt cảm biến khoảng cách và thêm các đầu cắm giúp sản phẩm trở nên cứng cáp và dễ dàng tháo lắp.
Về phần mềm, nhóm sử dụng cơng cụ lập trình cho Arduino là Arduino IDE rất phổ biến và dễ sử dụng.
4.2 THI CÔNG VÀ ĐĨNG GĨI HỆ THỐNG 4.2.1 Thi cơng và kiểm tra khối nguồn 4.2.1 Thi công và kiểm tra khối nguồn
Sử dụng acquy nên nhóm tiến hành lắp cơng tắt để bật tắt nguồn 24VDC nhằm trường hợp cần ngắt nguồn khẩn cấp. Dưới đây là hình ảnh acquy đã được lắp đặt cơng tắt và đầu cắm.
Hình 4. 1 Nguồn acquy và cơng tắc
Sử dụng module giảm áp LM2596 để giảm áp đầu vào từ 24VDC thành 5VDC cung cấp cho các module cịn lại, nhóm tiến hành lắp module LM2596 ở trong hộp
điều khiển với đầu vào được mắc song song với nguồn 24VDC của acquy để đảm bảo được cấp nguồn liên tục.
Sau khi đã thi cơng xong khối nguồn, nhóm tiến hành đo điện áp của khối nguồn đảm bảo đầu vào 24VDC cung cấp qua mạch cầu H BTS7960 để điều khiển đông cơ và nguồn 5VDC cung cấp cho các bo mạch cịn lại.
4.2.2 Thi cơng bộ xử lý tín hiệu điều khiển MPU – 6050
Sau khi nghiên cứu, bàn bạc và đảm bảo đúng yêu cầu sơ đồ nguyên lý của bộ xử lý tín hiệu điều khiển MPU – 6050 cùng với đảm bảo các tiêu chí nhỏ gọn, thẩm mỹ, nhóm quyết định sử dụng tai nghe headphone dùng để thi cơng bộ xử lý tín hiệu điều khiển MPU – 6050. Về yếu tố thẩm mỹ, khi đeo tai nghe chứa bộ điều khiển MPU – 6050 , giúp cho những bệnh nhân hay người khuyết tật dễ dàng sử dụng xe lăn và vượt qua được sự tự ti về bản thân, nó giống như người sử dụng đang nghe một bài nhạc bằng headphone.
Hình 4. 2 hình ảnh tai nghe
Sự yêu cầu về vị trí đặt cảm biến gia tốc MPU – 6050 phải cố định, giúp cho việc lấy tín hiệu từ cử chỉ đầu một cách chính xác nhất theo đúng hướng mà đã lập trình.
Hình 4. 3 Vị trí lắp đặt cảm biến MPU-6050
Sử dụng nguồn pin sạc Li-ion 3.7V 1200mAh nhỏ gọn và bộ sạc tăng áp 5V cho pin để cung cấp nguồn cho các bo mạch.
Hình 4. 4 Vị trí lắp đặt pin
Để đáp ứng các u cầu nêu ở trên thì nhóm quyết định sử dụng vi điều khiển Arduino Pro mini nhỏ gọn, cùng với module Bluetooth HC-05 được cài đặt ở chế độ master.
Hình 4. 6 Vị trí và kết nối các thiết bị
Tiến hành đóng gói bộ xử lý tín hiệu điều khiển MPU – 6050
Hình 4. 7 Đóng gói thiết bị điều khiển
4.2.3 Thi cơng bộ điều khiển động cơ
Dựa vào sơ đồ nguyên lý của bộ điều khiển động cơ, nhóm tiến hành thi công lắ ráp các module thành hộp điều khiển động cơ. Sau khi tính tốn kích thước các module, nhóm dùng hộp nhựa đen PVC có kích thước 160x90x57mm để làm hộp chứa các module vì có sẵn, giá thành rẻ, chắc chắn.
Hình 4. 8 Hộp đựng bộ điều khiển động cơ
Sau đó, nhóm dùng vít cố định các module và sử dụng dây cắm nối các dây tín hiệu và cấp nguồn cho các module.
Hình 4. 9 Hình ảnh các module bên trong hộp điều khiển động cơ
Hộp điều khiển động cơ bao gồm đầy đủ các module điều khiển động cơ, bluetooth, các vi điều khiển được cố định chặt trong hộp. Các jack cắm nguồn đầu vào và jack cắm động cơ được nối ra ngoài để dễ dàng, tiện lợi kết nối với các động cơ.
Phía sau hộp là jack cắm của cảm biến khoảng cách phát hiện vật cản VL53L0X để dễ dàng tháo ráp khi có nhu cầu, khơng làm ảnh hưởng đến bộ điều khiển.
Hình 4. 11 hình ảnh đầu nối với hộp cảm biến và servo
4.2.4 Thi công khối cảm biến khoảng cách phát hiện vật cản VL53L0X
Dựa vào sơ đồ nguyên lý, để phát hiện vật cản chính xác và tiến hành các bước để tránh cho xe đâm vào vật cản gây nguy hiểm, vị trí đặt các hộp cảm biến khoảng cách, động cơ servo nó địi hỏi servo và cảm biến hoạt động chính xác nhất. Nhóm quyết định lắp các cảm biến khoảng cách phát hiện vật cản VL53L0X trên xe như hình sau:
Hình 4. 12 Vị trí đặt 2 cảm biến khoảng cách và servo trước
Nhóm sử dụng mica đen để lắp ráp hộp chứa servo và cảm biến khoảng cách, hộp cứng cáp, thẩm mỹ với kích thước nhỏ gọn.
4.3 LẬP TRÌNH HỆ THỐNG
4.3.1 Lưu đồ giải thuật
Trong phạm vi đề tài này, hệ thống gồm 2 khối chính là khối xử lý tín hiệu cảm biến MPU-6050 và khối xử lý điều khiển động cơ. Khối xử lý tín hiệu cảm biến có
chức năng đọc, xử lý, tính tốn giá trị cảm biến để gửi lệnh điều khiển tới khối xử lý điều khiển động cơ thông qua kết nối Bluetooth.
Hình 4. 13 Lưu đồ giải thuật hệ thống điều khiển xe lăn điện qua cảm biến gia tốc
a. Lưu đồ xử lý tín hiệu cảm biến MPU-6050
Khi cảm biến đọc giá trị của Accelerometer và Gyroscope thì sẽ cho ra kết qua là các giá trị thô, không ổn định nên sẽ được lọc và làm mịn thông qua bộ lọc Kalman. Tất cả các thay đổi của giá trị các trục của cảm biến đều được xử lý và tính đốn phù hợp để gửi tín hiệu điều khiển tương ứng đến bộ xử lý điều khiển động cơ thông qua kết nối Bluetooth.
Hình 4. 14 Lưu đồ chương trình xử lý tính hiệu cảm biến MPU-6050
b. Lưu đồ xử lý điều khiển động cơ.
Khi nhận được các lệnh điệu khiển từ Bluetooth gửi về kết hợp với giá trị cảm biến khoảng cách mà cho phép xe thực hiện các hành động như tiến, lùi, quay, phải, quay trái hoặc dừng.
Ngồi ra, để cảm biến có thể qt được khơng gian xung quanh trước hoặc sau xe thì giải pháp nhóm lựa chọn là gắn cảm biến trên một servo. Khi cảm biến phát hiện vật cản thì cho servo dừng, lúc này xe khơng thể di chuyển về phía trước hoặc sau tùy vào các cảm biến đặt ở trước hoặc sau. Khi xe di chuyển khỏi vật cản thì các hướng di chuyển được cho phép.
Các lưu đồ giải thuật chương trình con sử dụng để điều khiển động cơ và servo.
Hình 4. 17 Lưu đồ chương trình con đọc giá trị cảm biến
Hình 4. 18 Lưu đồ chương trình con đọc giá trị cảm biến phía trước
Chương trình con đọc giá trị 2 cảm biến phía trước thực hiện chức năng đọc và so sánh giá trị để gửi hoặc xuất tín hiệu điều khiển qua board Arduino2 hoặc gửi lệnh điều khiển để thực hiện xử lý tín hiệu.
Hình 4. 19 Lưu đồ chương trình con đọc giá trị cảm biến sau
Chương trình con đọc giá trị cảm biến sau thực hiện chức năng đọc và so sánh giá trị để gửi tín hiệu qua board Arduino 1 và thực hiện xử lý tín hiệu cảm biến.
Hình 4. 21 Lưu đồ chương trình con xử lý khi có tín hiệu cảm biến phía sau
Hai chương trình con cử lý khi có tín hiệu cảm biến thực hiện chức năng đọc tín hiệu cho phép của cảm biến khoảng cách để thực hiện chức năng cho phép xe chạy trước hoặc sau tùy vào tín hiệu nhận được. Khi tín hiệu nhận được là tín hiệu của cảm biến phía trước thì sẽ cấm xe chạy tới và chó phép các hướng cịn lại, ngược lại khi tín hiệu nhận được là tín hiệu của cảm biến phía sau thì sẽ cấm xe chạy về phía sau và cho phép các hướng cịn lại.
Hình 4. 22 Chương trình con điều khiển động cơ
Chương trình con điều khiển động cơ thực hiện chức năng cho xe tiến, lùi, quay phải, quay trái tùy vào tín hiệu nhận được từ bluetooth và các cảm biến.
Hình 4. 23 Chương trình con chạy servo
Chương trình con chạy servo có chức năng đọc giá trị cảm biến và kiểm tra tín hiệu nhận được để thực hiện chức năng chạy servo hoặc dừng servo.
Hình 4. 24 Chương trình con delay_ms
Chương trình con DELAY_MS có chức năng vừa kiểm tra tín hiệu cảm biến vừa thực hiện chức năng delay nhằm cho hoạt động của cảm biến không bị chậm và servo chạy hoặc dừng đúng chức năng.
4.3.2 Phần mềm lập trình cho vi điều khiển Arduino IDE
Arduino IDE (The Arduino Integrated Development Environment) là một ứng dụng đa nền tảng (dành cho Windows, macOS, Linux) được viết theo ngơn ngữ lập trình C và C ++. Nó được sử dụng để viết và tải các chương trình lên các bảng tương
thích với Arduino, nhưng cũng với sự trợ giúp của các bên thứ 3. Mã nguồn cho IDE được phát hành theo Giấy phép Công cộng GNU, phiên bản 2. Arduino IDE hỗ trợ các ngôn ngữ C và C ++ bằng cách sử dụng các quy tắc đặc biệt về cấu trúc mã. Arduino IDE cung cấp một thư viện phần mềm từ dự án Wires, cung cấp nhiều thủ tục đầu vào và đầu ra phổ biến. Mã do người dùng viết chỉ yêu cầu hai hàm cơ bản, để bắt đầu phác thảo và vịng lặp chương trình chính, được biên dịch và liên kết với một chương trình chính thành một chương trình điều hành theo chu kỳ thực thi với chuỗi công cụ GNU, cũng được bao gồm trong bản phân phối IDE.
Giao diện của phần mềm Arduino IDE có nhiều phần, tuy nhiên chúng ta chú ý đến những phần quan trọng như được nêu ra trong hình trên. Chức năng của từng phần như sau:
Hình 4. 25 Giao diện Arduino IDE
Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là menu File, ngồi những tính năng như mở một file mới hay lưu một file, phần menu này có một mục đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập trình có thể tham khảo, giảm bớt thời gian lập trình
Hình 4. 27 Tín hiệu thơ
4.4 LẬP TRÌNH MƠ PHỎNG 4.4.1 Lưu đồ 4.4.1 Lưu đồ
Hình 4. 26 Lưu đồ kiểm tra giá trị cảm biến để gửi tín hiệu điều khiển
4.4.2 Xử lý tín hiệu
Sử dụng chức năng Serial Plotter trong phần mềm lập trình Arduino để đọc các giá trị dữ liệu cảm biến dưới dạng sơ đồ dạng sóng để dễ dàng xác định được ngưỡng điều khiển cho cảm biến.
Trong đó: : GyroX : GyroY
Hình 4. 29 Tín hiệu cài đặt giá trị offset Hình 4. 28 Tín hiệu gật liên tục Hình 4. 28 Tín hiệu gật liên tục
Từ đồ thị biểu diễn tín hiệu của con quay hồi chuyển (Hình 4.27) chưa qua bộ lọc Kalman cho thấy rằng tín hiệu nhận được rất nhiễu ở cả 2 trục của nó.
Trong đó: : GyroX : GyroY
Hình 4.28 biểu diễn dạng sóng của con quay khi cảm biến bị lật liên tục. Từ đồ thị này cho thấy rằng, khi con quay bị lật liên tục với tốc độ nhanh thì giá trị đạt ở ngưỡng cực đại là ±250 vì phạm vi giới hạn thang đo được chọn là ±250 tương ứng với độ nhạy là 131 LSB/g. Từ đó, có thể sử dụng giá trị đo được của con quay hồi chuyển là GyroY để so sánh điều khiển trạng thái gật liên tục của người sử dụng.
Trong đó: : angelX : angelY : angleZ
Hình 4.29 mơ tả tín hiệu khi vi điều khiển đang tính tốn giá trị bù (offset) của cảm biến. Khi q trình tính tốn xong ta được kết quả như hình 4.30. Q trình tính tốn này mất khoảng 3s để cảm biến ổn định. Sở dĩ ta thấy các tín hiệu ổn định khơng bị nhiễu vì nó đã được xử lý qua bộ lọc Kalman.
Trong đó: : angelX : angelY : angleZ
Hình 4. 30 Tín hiệu các giá trị offset đã được thiết lập
Trong đó: : angelX : angelY : angleZ
Hình 4.31 mơ tả tín hiệu khi thiết bị đặt nằm tương ứng với trục x hướng xuống dưới góc chúc tăng tương ứng với tín hiệu angleY. Từ biểu đồ tín hiệu này, ta có thể lấy giá trị của angleY để so sánh điều khiển khi thiết bị được đặt nằm.
Trong đó: : angelX : angelY : angleZ Hình 4. 32 Tín hiệu tiến Trong đó: : angelX : angelY : angleZ
Hai hình 4.32 và hình 4.33 mơ tả tín hiệu cúi đầu và ngửa đầu tương ứng với góc chúc (angleY). Từ biểu đồ này, ta có thể sử dụng giá trị angleY để so sánh điều khiển khi cúi đầu và ngửa đầu. Các tín hiệu này sẽ về giá trị ban đầu khi cảm biến nghiêng về vị trí ban đầu.
Trong đó: : angelX : angelY : angleZ
Hình 4. 34 Tín hiệu lùi khi quay đầu trái
Trong đó: : angelX : angelY : angleZ
Hai tín hiệu hình 4.34 và hình 4.35 là tín hiệu của góc quay (angleZ). Cũng giống như angleX và angleY nó cũng trả về giá trị ban đầu khi cảm biến trở lại vị trí ban đầu. Tuy nhiên, biểu đồ tín hiệu trên chỉ trong phịng thí nghiệm. Trên thực tế để sử dụng trục này rất khó vì nó khơng thể trở về giá trị ban đầu khi điều khiển xe do góc này ln thay đổi vì chuyển động của đầu đối với các trục khác và chính nó. Khi chạy thử nghiệm trên xe để điều khiển thì góc này vẫn giữ giá trị khi quay rồi trở lại vị trí ban đầu. Bằng cách tính tốn và giới hạn, nhóm đã chọn tín hiệu này để xử lý cho phép đi lùi bằng cách quay đầu tuy nhiên vẫn còn sai số trong một số trường hợp nhất định.
Trong đó: : angelX : angelY : angleZ
Trong đó: : angelX : angelY : angleZ
Hình 4. 37 Tín hiệu sang phải
Cũng như angleY hình 4.36 và hình 4.37 mơ tả tín hiệu của góc nghiêng (angleX). Các giá trị của tín hiệu này trả về giá trị ban đầu khi cảm biến trở vè vị trí ban đầu. Nhờ vào sự thay đổi giá trị của tín hiệu này để so sánh điều khiển khi nghiêng đầu qua trái hoặc nghiêng đầu qua phải.
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 4.5.1 Viết tài liệu hướng dẫn sử dụng 4.5.1 Viết tài liệu hướng dẫn sử dụng
Bước 1: Cấp nguồn cho bộ điều khiển động cơ bằng cách bật công tắt ở acquy
qua vị trí ON.
Bước 2: Cấp nguồn cho tai nghe điều khiển bằng cách gạt công tắt qua vị trí ON.
Bước 3: Đeo tai nghe lên và thực hiện việc điều khiển xe lăn bằng các cử chỉ
Bảng 4. 1 Hướng dẫn sử dụng xe lăn
Cử chỉ của đầu Hướng xe chạy
Gật đầu tới trước khoảng hơn 10 độ rồi về vị trí ban đầu
Đi thẳng
Ngửa đầu ra sau khoảng hơn 10 độ giữ ở vị trí này Đi lùi Nghiêng đầu qua trái giữ ở vị trí này Rẽ trái Nghiêng đầu qua phải giữ ở vị trí này Rẽ phải Quay đầu ra sau theo cả 2 hướng trái hoặc phải giữ ở
vị trí này
Đi lùi
Lưu ý:
Khi bật công tắc xe vẫn chưa sử dụng được các lệnh tiến, lùi. Để điều khiển được thực hiện bằng cách nghiêng đầu qua trái hoặc phải mới cho phép sử dụng được các lệnh điều khiển tiến hoặc lùi. Sau đó, các lệnh điều khiển được sử dụng bình