TỔNG QUAN
Đặt vấn đề
Hiện nay, sự phát triển của khoa học và công nghệ đã dẫn đến sự ra đời của nhiều thiết bị hỗ trợ cho người khiếm thị, giúp họ vượt qua khó khăn trong việc di chuyển và sinh hoạt hàng ngày Tại Việt Nam, những thiết bị như Mắt Thần của Tiến Sĩ Nguyễn Bá Hải và vòng đeo tay hỗ trợ người mù đã được phát triển, thể hiện sự quan tâm của cộng đồng đối với người khiếm thị Những công nghệ này không chỉ giúp người khiếm thị dễ dàng hơn trong việc di chuyển mà còn nâng cao chất lượng cuộc sống của họ.
Nhóm chúng tôi thực hiện đề tài “Đai đeo hỗ trợ người khiếm thị” nhằm giúp đỡ người khiếm thị trong việc di chuyển an toàn Sử dụng cảm biến hồng ngoại GP2Y0A710K0F, thiết bị có khả năng phát hiện vật cản và cầu thang trong khoảng cách an toàn, cho phép người dùng tránh né các chướng ngại vật Qua đó, thiết bị sẽ thông báo bằng âm thanh, giúp người khiếm thị tìm được hướng đi an toàn hơn.
Mục tiêu của đề tài là xây dựng mô hình hoàn chỉnh kết hợp cảm biến hồng ngoại GP2Y0A710K0F và động cơ Servo MG90S để phát hiện vật cản trong phạm vi tối thiểu 1.2m và nhận diện cầu thang Bên cạnh đó, mô hình sử dụng module DF Player Mini Mp3 để phát thông báo qua loa hoặc tai nghe, giúp người sử dụng có thể chọn hướng di chuyển an toàn hơn.
NỘI DUNG 1: Tìm hiểu các đề tài đã có trước đó
NỘI DUNG 2: Tìm hiểu cách xác định góc từ đó xác định được các khoảng cách từ 1 điểm cố định đến 1 điểm bất kì
NỘI DUNG 3: Tìm hiểu các linh kiện sử dụng trong hệ thống
NỘI DUNG 4: Thiết kệ hệ thống điều khiển
NỘI DUNG 5: Thi công lắp ráp mô hình
NỘI DUNG 6: Viết chương trình hoàn chỉnh cho mô hình
NỘI DUNG 7: Thực nghiệm để quan sát kết quả
NỘI DUNG 8: Điều chỉnh các thông số cho tối ưu hệ thống
NỘI DUNG 9: Hoàn thiện chương trình
NỘI DUNG 10: Nhận xét, đánh giá kết quả và hoàn thiện mô hình
NỘI DUNG 11:Hoàn thành luận văn
Phạm vi giới hạn của cảm biến GP2Y0A710K0F từ 1m đến 5,5m Dưới 1m thì cảm biến hoạt động không chính xác
Sử dụng Board Arduino Nano thay vì phải thiết kế một mạch điều khiển hoàn chỉnh để tiết kiệm thời gian
Thời gian sử dụng còn ngắn do sử dụng pin 18650 dung lượng thấp
Chương này giới thiệu về đề tài, lí do chọn đề tài, mục tiêu, nội dung nghiên cứu, giới hạn của đề tài
Chương 2: Cơ sở lý thuyết
Chương này trình bày về cơ sơ lý thuyết của đề tài, tổng quan về vi điều khiển
Chương 3: Thiết kế và tính toán
Chương này tập trung vào việc thiết kế sơ đồ khối và tìm hiểu các linh kiện cần thiết cho hệ thống Nó cũng bao gồm tính toán các thông số sử dụng trong mạch và thiết kế sơ đồ nguyên lý, nhằm đảm bảo hiệu suất hoạt động tối ưu cho hệ thống.
Chương 4: Thi công hệ thống
Chương này trình bày các bước thi công của hệ thống từ phần cứng, phần mềm, các kết quả đạt được sau khi thi công
Chương 5: Kết quả, nhận xét và đánh giá
Chương này trình bày kết quả thực hiện, nhận xét và đưa đánh giá chung về hệ thống dựa trên các mục tiêu ban đầu đã đặt ra
Chương 6: Kết luận và hướng phát triển
Chương này trình bày kết luận về đề tài đã thực hiện, nêu ra các hướng phát triển cho đề tài trong tương lai.
CƠ SỞ LÝ THUYẾT
Giới thiệu chuẩn truyền nhận dữ liệu – Giao tiếp UART
Giao tiếp UART trong chế độ bất đồng bộ sử dụng một dây kết nối cho mỗi chiều truyền dữ liệu, do đó việc tuân thủ các tiêu chuẩn truyền là rất quan trọng để đảm bảo quá trình truyền nhận dữ liệu thành công Dưới đây là những khái niệm quan trọng liên quan đến chế độ truyền thông này.
Tốc độ Baud là một yếu tố quan trọng trong việc truyền và nhận dữ liệu bất đồng bộ, yêu cầu các thiết bị phải đồng nhất về thời gian truyền cho mỗi bit Tốc độ này được xác định bằng số bit được truyền trong một giây; ví dụ, với tốc độ Baud 9600 bit/giây, thời gian cho mỗi bit sẽ khoảng 104.167 micro giây.
Khung truyền (frame) trong truyền thông nối tiếp, đặc biệt là nối tiếp bất đồng bộ, đóng vai trò quan trọng trong việc đảm bảo tính chính xác của dữ liệu Để truyền dữ liệu thành công, cần tuân thủ các quy định về số bit trong mỗi lần truyền, bao gồm bit Start, bit Stop và các bit kiểm tra như Parity Tốc độ Baud cũng là một yếu tố quan trọng Quá trình truyền bắt đầu bằng việc gửi một START bit, tiếp theo là các bit dữ liệu, và kết thúc bằng một STOP bit.
Hình 2.1 Khung truyễn dữ liệu trong chế độ bất động bộ
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Start bit là bit đầu tiên trong khung truyền, có nhiệm vụ thông báo cho thiết bị rằng một gói dữ liệu sắp được gửi đến Đây là bit bắt buộc trong quá trình truyền dữ liệu.
Dữ liệu là thông tin quan trọng cần được gửi và nhận trong quá trình truyền thông Số lượng bit của dữ liệu không nhất thiết phải là 8, mà có thể là 5, 6, 7, 8 hoặc 9 bit Trong truyền thông nối tiếp USART, bit có ảnh hưởng nhỏ nhất sẽ được truyền trước, trong khi bit có ảnh hưởng lớn nhất sẽ được truyền sau cùng.
Parity bit: Là bit dùng kiểm tra dữ liệu truyền đúng không (một cách tương đối)
Có 2 loại parity là parity chẵn và parity lẻ Parity chẵn nghĩa là số lượng bit 1 trong dữ liệu bao gồm bit parity luôn là số chẵn Ngược lại, tổng số lượng các bit 1 trong parity lẻ luôn là lẻ Ví dụ, nếu dữ liệu của bạn là 10111011 nhị phân, có tất cả 6 bit 1 trong dữ liệu này, nếu parity chẵn được dùng, bit parity sẽ mang giá trị 0 để đảm bảo tổng các bit 1 là số chẵn (6 bit 1) Nếu parity lẻ được yêu cầu thì giá trị của parity bit là 1 Parity bit không phải là bit bắt buộc và vì thế chúng ta có thể loại bit này khỏi khung truyền
Stop bits là các bit quan trọng thông báo cho thiết bị nhận rằng một gói dữ liệu đã được gửi xong Sau khi nhận stop bits, thiết bị sẽ kiểm tra khung truyền để xác minh tính chính xác của dữ liệu Việc sử dụng stop bits là bắt buộc trong khung truyền để đảm bảo quá trình truyền dữ liệu diễn ra chính xác.
Khung truyền phổ biến nhất là ( Start bit + 8 bit dữ liệu + stop bit).
Phương pháp tính
Đề tài nghiên cứu sử dụng servo quay tuần tự kết hợp với cảm biến hồng ngoại GP2Y0A710K0F nhằm xác định sự hiện diện của vật cản tại bất kỳ góc nào của servo Do đó, cần phát triển một phương pháp tính toán riêng để đáp ứng các yêu cầu này.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Nhóm đã phát triển một phương pháp tính toán cụ thể, cho phép servo cảm biến khoảng cách phát hiện sự tồn tại của vật cản tại bất kỳ góc nào.
Khi có vật cản, hệ thống sẽ phát ra âm thanh để thông báo cho người sử dụng biết về sự hiện diện của vật cản phía trước, giúp họ có thể lựa chọn hướng đi khác Đầu tiên, nhóm sẽ xác định chiều cao ban đầu của người sử dụng với thông số h2 = ?
Với: h1: Khoảng cách từ đai đeo xuống đất (mm) h2: Khoảng cách từ đai đeo lên đầu (mm)
S: Khoảng cách cảm biến đo được (mm) α: Góc cố định ban đầu (độ) α = 50 h1 = ?
Hình 2.2 Thiết lập chiều cao của người sử dụng
Để xác định khoảng cách h1 từ đai đeo xuống đất tại góc α bằng 50 độ, ta sử dụng phương trình lượng giác h1 = cos(50) * S, trong đó S là khoảng cách mà cảm biến đọc được tại góc 50 độ.
Theo thực nghiệm đo đạt trên thực tế thì: h2 = (2/3) * h1 ( 2.2)
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Với: h1: Khoảng cách từ đai đeo xuống đất (mm) h2: Khoảng cách từ đai đeo lên đầu (mm)
L: Khoảng cách cần cảnh báo khi có vật cản (mm) Góc min: Góc nhỏ nhất cần để đo khoảng cách (độ) Góc max: Góc lớn nhất cần để đo khoảng cách (độ)
Hình 2.3 Xác định góc min, góc max
Nhóm sẽ xác định lại góc min và góc max, tương ứng với 2 góc nhỏ nhất và lớn nhất cần thiết để đo khoảng cách, dựa trên phương trình toán học đã được tìm ra từ h1 và h2.
Góc max = 180 – ( arctan( 1200 / h2)) (2.4) Hai phương trình trên nhóm sử dụng khoảng cách an toàn (L) bằng 1200 mm
Để điều khiển servo quay lên và xuống theo góc tương ứng, cần xử lý các giá trị góc tối thiểu và tối đa, sử dụng số độ (i) tăng hoặc giảm giữa hai góc quay liên tiếp là 2.
- Nếu A là số chẵn thì góc quay tuần tự là [góc min; góc max]
- Ngược lại, nếu A là số lẻ thì góc quay tuần tự là [góc min; góc max - 1]
Sử dụng vòng lặp để điều khiển servo quay từ góc tối thiểu đến góc tối đa đã tính, với bước nhảy mỗi lần quay là 2 độ, sau đó thực hiện quay ngược lại cho servo.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
L: Khoảng cách cần cảnh báo khi có vật cản (mm)
Góc min: Góc nhỏ nhất cần để đo khoảng cách (độ)
Góc max: Góc lớn nhất cần để đo khoảng cách (độ) i: Số độ tăng/giảm giữa 2 góc quay liên tiếp (độ)
Si: Giá trị khoảng cách được tính tương ứng với L và góc đang quay (mm)
Hình 2.4 Điều khiển servo quay tuần tự
Dựa vào hình 2.4, để xác định được khoảng cách Si tại góc quay tương ứng với
L = 1200 mm, nhóm dựa vào công thức sau :
Dựa vào phương pháp xác định khoảng cách S trên nhóm, chúng ta sẽ tính toán khoảng cách S cho các góc nằm trong đoạn [góc min, góc max] và lưu trữ các giá trị của S vào một mảng cố định.
Vùng quét của cảm biến i = 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Để phát hiện vật cản phía trước, cần chú ý rằng khi góc quay tăng cao, khoảng cách đo được sẽ giảm dần Với khoảng cách S cố định theo công thức (2.6), trong một chu kỳ quét, nếu khoảng cách đo được nhỏ hơn hoặc bằng khoảng cách cố định cộng với một sai số (delta) tương ứng với góc quay và tần suất phát hiện khoảng 8 lần, thì có thể xác định có vật cản trong khoảng L như trong hình 2.5.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
L: Khoảng cách đến cầu thang (mm)
Góc min: Góc nhỏ nhất cần để đo khoảng cách (độ)
Góc max: Góc lớn nhất cần để đo khoảng cách (độ) i: Số độ tăng/giảm giữa 2 góc quay liên tiếp (độ)
Si: Giá trị khoảng cách mà cảm biến đo được tương ứng với góc đang quay (mm)
Để phát hiện cầu thang hướng lên, đặc điểm quan trọng là góc quay càng cao thì khoảng cách đo được càng tăng Ngược lại, khi góc quay từ thấp đến cao, khoảng cách sẽ giảm Kích thước thực tế của mỗi bậc thang thường là khoảng 300 mm.
Trong một chu kỳ quét với khoảng cách đo 150 mm, nếu phát hiện nhiều điểm bất thường liên tiếp (khoảng cách đo nhỏ hơn hoặc lớn hơn so với giá trị cố định đã lưu) với tần số 6 lần, sẽ tính sai số (delta) bằng cách lấy khoảng cách từ điểm bất thường cuối trừ đi khoảng cách ở điểm phát hiện bất thường đầu tiên Nếu delta nằm trong khoảng 200 đến 350 mm, sẽ xác định có cầu thang hướng lên ở phía trước.
Khi quan sát cầu thang hướng xuống từ góc quay thấp, khoảng cách đo được ghi nhận lớn bất thường, khoảng 600mm, so với khoảng cách mẫu Trong một chu kỳ, nếu khoảng cách đo được tương ứng với góc quay nhỏ hơn hoặc bằng 60 độ và tần số phát hiện khoảng 2 - 3 lần cho thấy khoảng cách đo được lớn hơn khoảng cách mẫu, thì có thể xác định rằng phía trước có cầu thang hướng xuống, như minh họa trong hình 2.7.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.7 Cách phát hiện cầu thang hướng xuống
Phương pháp điều chế xung PWM
PWM, hay Điều chế độ rộng xung, là phương pháp điều chỉnh điện áp ra tải bằng cách thay đổi độ rộng của xung vuông, dẫn đến sự biến đổi điện áp đầu ra.
Các xung PWM khi thay đổi có cùng tần số và khác độ rộng xung( Duty Cycle)
L: Khoảng cách đến cầu thang (mm)
Góc min: Góc nhỏ nhất cần để đo khoảng cách (độ)
Góc max: Góc lớn nhất cần để đo khoảng cách (độ) i: Số độ tăng/giảm giữa 2 góc quay liên tiếp (độ)
Si: Giá trị khoảng cách mà cảm biến đo được tương ứng với góc đang quay (mm)
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.8 Ví dụ về điều chế độ rộng xung
2.3.2 Ứng dụng và cách tạo xung PWM a Ứng dụng của xung PWM trong điều khiển
Xung PWM (Pulse Width Modulation) được sử dụng phổ biến trong việc điều khiển động cơ, điều chỉnh áp suất và ổn định hoạt động của động cơ Phương pháp này cho phép kiểm soát tốc độ động cơ một cách hiệu quả và chính xác Để tạo ra xung PWM, cần sử dụng các kỹ thuật điều chế độ rộng xung nhằm điều chỉnh điện áp và tần số theo yêu cầu của ứng dụng.
Có 2 cách để tạo được xung PWM đó là dùng phần cứng và phần mềm
Phần cứng có thể dùng cách so sánh các xung vuông hay tạo trực tiếp từ các IC cơ bản như 555, LM556,…
Phần mềm được phát triển dựa trên các chip lập trình, mang lại độ chính xác cao hơn so với việc sử dụng phần cứng Do đó, việc tạo tín hiệu PWM thường được thực hiện thông qua phần mềm.
Giới thiệu phần cứng
2.4.1 Mạch xử lý trung tâm- Vi điều khiển a Tổng quan về vi điều khiển
Vi điều khiển là một máy tính nhỏ gọn được tích hợp trên một chíp, thường được sử dụng để giao tiếp và điều khiển các thiết bị điện tử Nó bao gồm một vi xử lý với hiệu suất đủ dùng và giá thành thấp, khác với các bộ vi xử lý đa năng trong máy tính Vi điều khiển kết hợp với các khối ngoại vi như bộ nhớ, các module vào/ra, và các module chuyển đổi tín hiệu số sang tương tự và ngược lại.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT tính thì các module thường được xây dựng bởi các chíp và mạch ngoài Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng Nó xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v b Lựa chọn vi điều khiển phù hợp với yêu cầu của đề tài
Yêu cầu của đề tài là:
• Mạch điều khiển nhỏ, gọn
• Mạch hoạt động ổn định không bị nhiễu
• Dễ lập trình, sửa lỗi
Nhóm nghiên cứu đã quyết định sử dụng board Arduino Nano làm mạch xử lý trung tâm cho mô hình, nhằm tiết kiệm thời gian và chi phí, đồng thời tạo sự tiện lợi trong quá trình thực hiện, thay vì thiết kế một mạch xử lý mới.
Arduino Nano là một mạch vi xử lý phát triển dựa trên vi điều khiển ATmega328P, giúp xây dựng các ứng dụng tương tác với môi trường và thiết bị ngoại vi như cảm biến, mạch điện tử, và động cơ Với mã nguồn mở, Arduino Nano có khả năng hoạt động độc lập hoặc kết nối với phần mềm trên máy tính thông qua môi trường phát triển tích hợp (IDE), cho phép người dùng lập trình bằng ngôn ngữ C hoặc C++.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Bảng 2.1 Thông số cơ bản của Arduino Nano
Vi điều khiển ATmega328 (họ 8bit) Điện áp hoạt động 5V – DC
Tần số hoạt động 16 MHz
Dòng tiêu thụ 30mA Điện áp vào khuyên dùg 7-12V – DC Điện áp vào giới hạn 6-20V – DC
Số chân Digital I/O 14 (6 chân PWM)
Số chân Analog 8 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 2KB dùng bởi bootloader
Giao tiếp với máy tính Cổng Mini USB
Trong đề tài, nhóm cần sử dụng bộ nhớ EEPROM để lưu trữ dữ liệu đã cài đặt, nhằm tránh việc cài đặt lặp lại Do đó, nhóm quyết định sử dụng bộ nhớ EEPROM trên Arduino để thực hiện chức năng lưu trữ này.
Bộ nhớ EEPROM là công nghệ tiên tiến nhất trong các loại ROM, nổi bật với khả năng xóa và lập trình dễ dàng mà không cần sử dụng hệ thống chuyên dụng.
Bộ nhớ EEPROM của Arduino có dung lượng 1KB, cho phép lưu trữ dữ liệu cài đặt mà không bị mất khi nhấn RESET Dữ liệu chỉ được lưu trữ lại khi nạp lại mã cho hệ thống.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Bảng 2.2 Sơ đồ chân của Arduino Nano
GND (Ground) Cực âm của nguồn điện cấp cho Arduino Nano
Cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
Cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
Vin (Voltage Input) Để cấp nguồn ngoài cho Arduino Nano
Việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ
D0RX và D1TX: dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial
Cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → (2^8-1) tương ứng với 0V → 5V) bằng hàm analogWrite()
Chân giao tiếp SPI D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK)
Trên Arduino Nano có 1 đèn led (kí hiệu chữ L) Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13
Cung cấp độ phân giải tín hiệu 10bit (0 → 2 10 -1) để đọc giá trị điện áp trong khoảng 0V → 5V
Dùng để đưa vào điện áp tham chiếu khi sử dụng các chân analog
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Trên thị trường hiện nay, có nhiều loại cảm biến đo khoảng cách, bao gồm các cảm biến hồng ngoại như GP2Y0A710K0F, GP2Y0A21YK0F, E3F-DS30C4, E18-D80NK và các cảm biến siêu âm như SRF05, SRF04.
Hình 2.10 Cảm biến khoảng cách GP2Y0A710K0F
Theo yêu cầu của đề tài là:
- Mong muốn đo được khoảng cách xa và chính xác
- Ít bị ảnh hưởng bởi môi trường xung quanh
- Từ những yêu cầu trên nhóm sẽ chọn module GP2Y0A710K0F để thực hiện chức năng đo khoảng cách
Bảng 2.3 Các thông số cơ bản của cảm biến khoảng cách GP2Y0A710K0F Điện áp 4.5V – 5.5V
Dải nhiệt độ -10 độ C 60 độ C
Những lưu ý khi sử dụng cảm biến GP2Y0A710K0F
Cảm biến GP2Y0A710K0F là cảm biến hồng ngoại có bước sóng phát ra (wavelength) là λ = 870 ± 70nm
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Biểu đồ thời gian của cảm biến như sau:
Hình 2.11 Biểu đồ thời gian
Từ biểu đồ thời gian trên nhóm nhận thấy rằng tổng thời gian để cảm biến phát hiện vật cản và đọc giá trí trả về là 21,5 ± 3,7 ms
Dựa theo datasheet thì nhóm nhận thấy đường đặc tuyến hồng ngoại của cảm biến có những thông số cơ bản sau:
Bảng 2.4 Bảng đường đặc tuyến hồng ngoại của cảm biến GP2Y0A710K0F
Tên Ký hiệu Ghi chú MIN Type Max Đơn vị
Dòng trung bình Icc L0cm 30 50 mA Điện áp ngõ ra Vo L0cm 2,3 2,5 2,9 V Điện áp ngõ ra chênh lệch ΔVO1 Điện áp chênh lệch giữa L0cm và L 0cm
0.5 0.7 0.9 V Điện áp chênh lệch giữa( L0cm->
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.12 Ví dụ về đường đặc tuyến của điện áp ngõ ra
Khi sử dụng cảm biến, cần che chắn khỏi ánh sáng mặt trời và đèn hóa học (đèn chứa khí trơ) để đảm bảo độ chính xác trong việc đo khoảng cách.
2.4.3 Module phát âm thanh DFPlayer Mini
Để hỗ trợ người khiếm thị xác định hướng đi và phát hiện vật cản, cần thiết phải có hệ thống âm thanh hiệu quả Hệ thống này sẽ sử dụng một Module lưu trữ các đoạn âm thanh hướng dẫn, giúp thông báo kịp thời để người dùng có thể dừng lại hoặc chuyển hướng an toàn Đặc biệt, âm thanh phát ra cần phải rõ ràng, không bị rè hay nhiễu, và có âm lượng đủ lớn để sử dụng trong cả hai trường hợp đeo tai nghe hoặc loa ngoài.
Hiện nay, có nhiều loại module phù hợp cho việc lưu trữ và phát âm thanh đơn giản, như Module WTV020, Module GM4536 và Module DFPlayer Mini Mp3 Tuy nhiên, do yêu cầu của đề tài đơn giản, nhóm quyết định sử dụng Module DFPlayer Mini Mp3 để thực hiện nhiệm vụ này.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.13 Module DFPlayer Mini Mp3
Tốc độ lấy mẫu (Khz): 8 / 11.025 / 12 / 16 / 22.05 / 24 / 32 / 44.1 / 48 với ngõ ra
Hỗ trợ đầy đủ FAT16, FAT32, thẻ TF hỗ trợ tối đa 32Gb
Có thể điều khiển qua các chân IO hay chuẩn nối tiếp
Các file âm thanh có thể sắp xếp theo thư mục (tối đa 100 mục), mỗi mục chứa tối đa 255 bài hát Âm thanh có thể chỉnh 6 mức
Ưu điểm Nhỏ, gọn có bộ nhớ phù hợp với yêu cầu đề tài
Hỗ trợ đầy đủ đa dạng các loại thẻ nhớ
Có thể nối trực tiếp với loa công suất nhỏ (3W) hoặc thông qua các mạch khuếch đại khác
Những lưu ý khi sử dụng module DFPlayer Mini Mp3 là:
Trước khi sử dụng, bạn cần lưu file âm thanh vào thẻ nhớ Nhằm tạo sự tiện lợi và rõ ràng, nhóm sẽ sử dụng phần mềm online Sound of Text, cho phép chuyển đổi văn bản (text) thành âm thanh (.mp3) và phát ra bằng giọng đọc của Google.
Truy cập vào trang web sau:
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Việc sử dụng phần mềm này được tiến hành thành các bước như sau:
Hình 2.15 Giao diện Sound of text
Bước 1: Chọn văn bản muốn chuyển đổi Ví dụ “ phía trước khoảng 1.2m có vật cản
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Bước 2: Chọn ngôn ngữ cần chuyển đổi Ví dụ “ Vietnamese”
Để chuyển đổi văn bản sang file âm thanh tiếng Việt, hãy nhấn “Submit”, sau đó tải file về máy và lưu vào thư mục mong muốn.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Bước 4 : Đổi tên file và tên folder
- Sau khi download về máy thì file sẽ có dạng như sau:
Hình 2.19 File sau khi download
- Để module DFPlayer nhận dạng được file thì cần đổi tên theo quy tắc sau:
Hình 2.20 File sau khi đổi tên
Để module DFPlayer giao tiếp hiệu quả với Arduino, các thư mục và tệp tin lưu trữ trên thẻ nhớ cần được chuyển đổi sang dạng tín hiệu số (mã nhị phân) Chẳng hạn, khi gửi thư mục “01” và tệp “001” về Arduino, mã nhị phân tương ứng sẽ là “7E”.
7E: Bit START cho biết bắt đầu một dãy tín hiệu chuẩn bị được truyền đi
06: Bit dữ liệu (không bao gồm bit Parity)
00: Bit phản hồi (0x01: muốn nhận, 0x00: chỉ truyền)
01: Byte [DH] ( Byte cao của file âm thanh) ( tên folder)
01: Byte [DL] ( Byte thấp của file âm thanh) ( tên file )
EF - Bit End báo cho thiết bị nhận rằng dữ liệu đã được gửi xong
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.4.4 Module khuếch đại âm thanh PAM8403
Hệ thống chỉ phục vụ một người, do đó không cần mạch khuếch đại âm thanh quá lớn, giúp tránh ảnh hưởng đến người xung quanh khi âm thanh chỉ dẫn phát ra Nhóm quyết định sử dụng mạch PAM8403 vì nó có nhiều ưu điểm nổi bật.
Nhỏ, gọn, dễ sử dụng
Giới thiệu
Mô hình thực nghiệm mà nhóm thực hiện yêu cầu thiết kế và thi công phải đảm bảo đáp ứng các tiêu chí cụ thể.
Cảnh báo người sử dụng có vật cản trong phạm vi tối thiểu là 1.2m
Mô hình phải đạt được sự ổn định và tính chính xác cao
Kết cấu phải gọn nhẹ, dễ tháo lắp, thay đổi các cấu hình tùy vào mục đích sử dụng, ít xảy ra sự cố
Phù hợp điều kiện kinh tế.
Tính toán và thiết kế hệ thống
3.2.1 Thiết kế sơ đồ khối hệ thống
Sơ đồ khối của hệ thống được thiết kế như sau:
Hình 3.1 Sơ đồ khối của hệ thống
Khối nguồn: Cung cấp điện áp 5V, tạo ra dòng điện ổn định cung cấp cho toàn
KHỐI ÂM THANH KHỐI ĐIỀU KHIỂN
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Khối cảm biến sử dụng cảm biến GP2Y0A710K0F để xác định khoảng cách giữa người dùng và vật cản, sau đó truyền tín hiệu về khối điều khiển để xử lý thông tin.
Khối điều khiển: Điều khiển khối động cơ và xử lý tín hiệu nhận từ khối cảm biến để điều khiển khối âm thanh thông báo cho người dùng
Khối động cơ: Nhận tín hiệu từ khối điều khiển để hoạt động (động cơ Servo quay theo một khoảng góc quay được lập trình từ khối điều khiển)
Khối âm thanh nhận tín hiệu từ khối điều khiển và phát ra âm thanh cảnh báo qua loa hoặc tai nghe, giúp người sử dụng nhận biết và tránh vật cản khi di chuyển.
3.2.2 Tính toán và thiết kế mạch a Thiết kế khối nguồn Khối nguồn cung cấp nguồn cho các khối điều khiển, khối động cơ, khối cảm biến vì vậy thiết kế khối nguồn rất quan trọng vì nếu khối nguồn cấp nguồn thiếu hoặc không ổn định sẽ dẫn đến hệ thống hoạt động sai và gây hư hỏng mạch Vì vậy cần giải quyết như sau:
Khối điều khiển sử dụng Arduino Nano để thực hiện nhiệm vụ điều khiển, vì vậy nguồn cấp được cung cấp trực tiếp qua cổng Mini USB, giúp Arduino hoạt động hiệu quả.
Nguồn cấp cho khối động cơ servo hoạt động trong khoảng 4,2V-6V, trong khi nguồn cho khối cảm biến cần đạt từ 4,5V-5,5V theo datasheet Đối với khối âm thanh, module DFPlayer yêu cầu nguồn 3,2V-5VDC, và module PAM8403 cần nguồn từ 2,5V-5,5V Dựa trên các yêu cầu nguồn này, nhóm đã quyết định sử dụng mạch sạc dự phòng Xiaomi 4cell.
Hình 3.2 Mạch sạc dự phòng xiaomi 4 cell
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Là mạch sử dụng 1 hoặc nhiều cell pin nối song song (dùng pin Lion hoặc pin Lithium) nâng áp lên 5V rồi sau đó cấp nguồn cho hệ thống
Một mạch sạc bao gồm:
Mạch sạc cho pin dự phòng với dòng sạc 1A
Mạch bảo vệ pin đóng vai trò quan trọng trong việc ngăn chặn tình trạng pin bị xả cạn khi hết năng lượng Việc xả cạn pin là nguyên nhân chính dẫn đến hư hỏng pin Khi điện áp của pin giảm xuống dưới 2.6V, mạch bảo vệ sẽ tự động ngắt kết nối, giúp bảo vệ pin khỏi hư hại.
Mạch tăng áp 3.7V lên 5V với dòng tối đa lên đến 1.5A (thực tế) giúp sạc nhanh nhiều thiết bị.
Việc tích hợp ba mạch trên một board mạch duy nhất không chỉ đảm bảo an toàn tối đa cho pin sạc mà còn mang lại sự tiện lợi trong quá trình sử dụng Hơn nữa, board mạch được trang bị vi điều khiển để theo dõi mức pin còn lại, tự động ngắt mạch khi điện thoại đã được sạc đầy.
Tính toán nguồn dòng cấp cho các khối trong mạch:
Theo datasheet, dòng điện cần thiết cho board Arduino Nano là 500mA cho chân 5V và 50mA cho chân 3,3V Cảm biến GP2Y0A710K0F yêu cầu 30mA để hoạt động bình thường, trong khi module DFPlayer Mini Mp3 cần duy trì 20mA ở chế độ nghỉ.
Arduino sẽ nhận nguồn từ cổng Mini USB qua mạch sạc, và hệ thống sẽ được cấp nguồn bằng 4 pin lithium 18650 được kết nối song song, với tổng dòng điện khoảng 600 ± 50 mA.
Pin có kích thước nhỏ gọn, dòng xả lớn, tuổi thọ cao, có thể sạc lại
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Bảng 3.1 Thông số cơ bản của pin lipo Điện áp 3.7VDC
Khối điều khiển có trọng lượng 34 gram và đóng vai trò quan trọng trong việc điều khiển các khối cảm biến, động cơ và âm thanh Là bộ phận xử lý trung tâm, việc lựa chọn khối điều khiển cần phải cẩn trọng để đảm bảo phù hợp với yêu cầu của đề tài và nhiệm vụ của nó Sau khi nghiên cứu, nhóm nhận thấy các board Arduino như Arduino Uno R3, Arduino Mega và Arduino Nano đều đáp ứng được yêu cầu, nhưng quyết định chọn Board Arduino Nano do những ưu điểm nổi bật của nó.
Tương tự như board Arduino Uno R3 ( chỉ khác là Arduino có 8 chân Analog).
Kích thước nhỏ, gọn hơn gần 2 lần so với Arduino Uno (1.85cm x 4.3cm).
Giá thành rẻ chỉ khoảng 65.000VND – 70.000VND.
Thông số chính của Arduino Nano:
- Vi điều khiển : ATmega328 (họ 8bit)
- Điện áp hoạt động: 5V – DC
- Tần số hoạt động: 16 MHz
- Điện áp vào giới hạn: 6-20V – DC
- Số chân Digital I/O: 14 (6 chân PWM)
- Số chân Analog: 8 (độ phân giải 10bit)
- Dòng tối đa trên mỗi chân I/O: 40 mA
- Dòng ra tối đa (5V): 500 mA
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Hiện nay, có nhiều loại module được sử dụng để đo khoảng cách hoặc xác định sự hiện diện của vật cản trong phạm vi của cảm biến.
Sau khi tìm hiểu nhóm đã chọn được loại cảm biến có thể sử dụng được trong đề tài này là module GP2Y0A710K0F
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Thông số cơ bản của cảm biến GP2Y0A710K0F Điện áp : 4.5V – 5.5V
Dòng điện : 30mA Tín hiệu ra : Analog Khoảng cách : 100cm – 550cm Dải nhiệt độ : -10 độ C 60 độ C
Sử dụng ánh sáng hồng ngoại để phát hiện vật cản mang lại độ chính xác cao và giảm thiểu nhiễu Nhóm sẽ dựa vào các thông số cơ bản để áp dụng cảm biến hiệu quả.
GP2Y0A710K0F cho đề tài này vì những ưu điểm sau:
- Được tích hợp 1 bộ PSD (Position Sensitive Detector), IRED (Infrared Emitting Diode) và mạch xử lý tín hiệu
- Vẫn có thể hoạt đông bình thường trong môi trường khắc nhiệt ( -10 độ C đến 60 độ C)
- Không bị nhiễu bởi các tác nhân của môi trường hay các bề mặt xù xì, nghiên
- Chỉ đo được khoảng cách từ 1m trở lên, dưới 1m sẽ trả về giá trị tối thiểu (1002 mm)
- Khi cấp điện áp quá thấp có thể dẫn đến cảm biến đo và trả về giá trị không chính xác
Bảng 3.2 Sơ đồ chân của cảm biến GP2Y0A710K0F
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.7 Sơ đồ kết nối khối cảm biến
Nhóm đã sử dụng chân A0 của Arduino Nano để giao tiếp với chân V0 của cảm biến GP2Y0A710, cho phép A0 nhận tín hiệu từ cảm biến và thông báo cho khối điều khiển về sự hiện diện của vật cản phía trước trong thời gian 21,5 ± 3,7 ms Để đáp ứng yêu cầu của đề tài, nhóm đã chọn Module âm thanh DFPlayer Mini MP3 nhờ vào những ưu điểm đã được nêu trong chương 2.
Hình 3.8 Module âm thanh DFPlayer Mini MP3
Tốc độ lấy mẫu (Khz): 8 / 11.025 / 12 / 16 / 22.05 / 24 / 32 / 44.1 / 48 với ngõ ra 24bit
Hỗ trợ đầy đủ FAT16, FAT32, thẻ TF hỗ trợ tối đa 32 Gb
Có thể điều khiển qua các chân IO hay chuẩn nối tiếp
Các file âm thanh có thể sắp xếp theo thư mục (tối đa 100 mục), mỗi mục chứa
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Bảng 3.3 Sơ đồ chân của module âm thanh DFPlayer Mini Mp3 STT Ký hiệu Chức năng Chú thích
1 VCC Điện áp ngõ vào DC3.2~5.0V
2 RX Chân giao tiếp UART
3 TX Chân giao tiếp UART
4 DAC_R Chân audio bên phải Dùng để nối tới earphone và amplifier
5 DAC_L Chân audio bên trái Dùng để nối tới earphone và amplifier
6 SPK2 Speaker- Nối trực tiếp tới loa công suất nhỏ (tối đa 3W)
8 SPK1 Speaker+ Nối trực tiếp tới loa công suất nhỏ (tối đa 3W)
9 IO1 Chân Trigger 1 Nhấn thả để quay lại (nhấn giữ để giảm âm lượng )
11 IO2 Chân Trigger 2 Nhấn thả để chuyển tiếp
(nhấn giữ để tăng âm lượng )
14 USB+ USB+ DP Chân USB +
15 USB- USB- DM Chân USB -
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Nhóm quyết định sử dụng mạch PAM8403 để làm mạch khuếch đại âm thanh ra loa 3W khi không dùng tai nghe:
Hình 3.10 Sơ đồ nguyên lý của mạch PAM8403
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
Bảng 3.4 Thông số chính của mạch PAM8403
GND Ngõ vào nối đất
GND Ngõ vào nguồn GND
- OUT_R Ngõ ra (-) loa phải
+ OUT_ R Ngõ ra (+) loa phải
- OUT_L Ngõ ra (-) loa trái
+ OUT_L Ngõ ra (+) loa trái
Hình 3.11 Sơ đồ kết nối khối âm thanh
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ Để giao tiếp với module DFPlayer cần sử dụng 2 chân RX, TX để làm nhiệm vụ truyền và nhận dữ liệu giữa module âm thanh và Arduino (chân D11, D10) Ngoài ra nhóm đã gắn thêm 2 điện trở 1K vào 2 chân RX, TX của module để giúp giảm nhiễu cho mạch
Trong dự án, nhóm quyết định sử dụng một loa phải, vì nhận thấy rằng công suất của loa này đủ cho nhu cầu của một người sử dụng Ngoài ra, nhóm còn tích hợp tai nghe vào mạch để người dùng có thêm lựa chọn, giúp tránh ảnh hưởng đến những người xung quanh Cách kết nối được thực hiện bằng cách nối hai chân ngõ ra audio của module âm thanh (DAC_R, DAC_L) với chân số 1 (R1) và 5 (L1) của jack audio, trong khi hai chân còn lại (R2) và 4 (L2) được kết nối với ngõ vào audio R_in, L_in của mạch khuếch đại, đảm bảo rằng khi sử dụng tai nghe thì loa sẽ không hoạt động và ngược lại.
Hình 3.12 Sơ đồ chân của jack female audio e Thiết kế khối động cơ
THI CÔNG HỆ THỐNG
Giới thiệu
Sau khi đã tính toán và thiết kế đai đeo, bắt đầu vào phần thi công đai đeo
Quá trình thi công để được một hệ thống hoàn chỉnh gồm các bước:
- Vẽ sơ đồ mạch in
- Kiểm tra và chỉnh sửa mạch
- Làm mô hình đai đeo
- Lắp ráp các mạch lại với nhau, hoàn thiện sản phẩm.
Thi công hệ thống
Sơ đồ thiết kế mạch PCB đi dây 1 mặt của hệ thống như sau:
Hình 4.1 Mạch PCB của mạch điện
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4.2 Mạch in của mạch điện
Sau khi in mạch ra board đồng, cần kiểm tra xem các đường dây có bị hở hay không Khi khoan lỗ để hàn chân linh kiện, việc chọn mũi khoan phù hợp với kích thước chân linh kiện là rất quan trọng, giúp linh kiện lắp vào mạch chắc chắn và việc hàn trở nên dễ dàng hơn.
Sơ đồ bố trí linh kiện để quan sát và gắn linh kiện cho đúng chiều:
Hình 4.3 Hình 3D mặt trên sơ đồ bố trí linh kiện
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4.4 Hình 3D mặt dưới sơ đồ bố trí linh kiện
Danh sách các linh kiện theo mẫu như được mô tả trong Bảng 4.1
Bảng 4.1 Danh sách các linh kiện
STT Tên linh kiện Giá trị Chú thích
1 3.5mm Audio Socket Jack cắm tai nghe
2 Điện trở 10KOhm, 1KOhm Chân cắm
2pins, 3pins, 4pins Đầu cắm dây bus, loại đực
4 Female Header 2.54mm 40pins Rào cái, để gắn Arduino
Nano và DF Player mini
5 Arduino Nano ATmega328P Chân cắm
6 Module DF Player Mini Chân cắm
CHƯƠNG 4 THI CÔNG HỆ THỐNG
4.2.2 Lắp ráp và kiểm tra
Quá trình lắp ráp các linh kiện vào mạch, bao gồm mạch nguồn và mạch PCB đã được thiết kế, diễn ra một cách chính xác và ổn định nhờ vào thiết kế đơn giản của mạch Việc vẽ mạch và kiểm tra chi tiết cũng được thực hiện một cách hiệu quả.
Hình 4.5 Mặt trên mạch thi công thực tế
Hình 4.6 Mặt dưới mạch thi công thực tế
CHƯƠNG 4 THI CÔNG HỆ THỐNG a Lắp ráp module nguồn
Lắp ráp và hàn các linh kiện của module nguồn, sau đó tiến hành đo và kiểm tra nguồn vào Kết quả đo cho thấy nguồn vào của Arduino Nano qua cổng mini USB và nguồn ra ở chân 5V đều đạt yêu cầu.
Hình 4.7 Lắp ráp mạch nguồn cấp cho hệ thống qua cổng mini usb b Lắp ráp các linh kiện còn lại
Hình 4.8 Lắp ráp các linh kiện vào mạch
Mạch sử dụng dây bus để kết nối các linh kiện khác nên khá chắc chắn
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Đóng gói và thi công mô hình
Trong phần này, chúng tôi sẽ trình bày về thiết kế mô hình đai đeo với tính thẩm mỹ cao và dễ dàng thao tác cho người sử dụng Dưới đây là hình ảnh mô hình cùng với cách bố trí cảm biến, motor và mạch điện đã được thiết kế một cách hợp lý.
Mô hình được thiết kế dạng hình hộp chữ nhật có kích thước 13 x 10.5 x 9.5 cm
Cảm biến khoảng cách được lắp trên trục của động cơ servo, cho phép quét góc từ 0 đến 180 độ, tương ứng với chuyển động của động cơ Vị trí lắp đặt của cảm biến nằm phía trên module nguồn trong mô hình, giúp tối ưu hóa khả năng quét và thu thập dữ liệu.
Hình 4.9 Kích thước mô hình
Mặt bên trái của mô hình được gắn 1 loa 3W để phát âm thanh khi không gắn tai nghe như hình sau:
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Mặt bên phải của mô hình được trang bị một nút nhấn để bật/tắt đai đeo, một nút nhấn cho phép người dùng cài đặt góc quay của servo, và một jack audio để kết nối tai nghe khi cần thiết.
Hình 4.11 Mặt bên phải của mô hình
Mặt bên dưới của mô hình có cổng micro usb dùng để sạc khi đai đeo hết pin, có đèn để kiểm tra tình trạng pin:
Hình 4.12 Mặt bên dưới của mô hình
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Mô hình hoàn chỉnh của đai đeo:
Hình 4.13 Hình ảnh mô hình
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Lập trình hệ thống
Lưu đồ giải thuật khối xử lý bắt đầu bằng việc khai báo các biến, chân kết nối và khởi tạo cảm biến, module âm thanh, servo Khi có nguồn điện, mạch sẽ tự động thực hiện chương trình con điều khiển quét tuần tự nếu không nhấn nút setup Nếu nhấn nút setup, chương trình con setup đai đeo sẽ được thực hiện trước khi chuyển sang chương trình con điều khiển quét tuần tự Cuối cùng, quá trình xử lý sẽ kết thúc khi ngắt nguồn điện.
Hình 4.14 Lưu đồ giải thuật khối xử lý
Quy trình thực hiện chương trình con setup đai đeo như sau:
Sau khi nhấn nút để thiết lập đai đeo, hệ thống sẽ phát ra âm thanh thông báo người dùng cần đứng yên ở vị trí bằng phẳng để thực hiện việc đo khoảng cách từ đai đeo xuống mặt đất.
Khai báo biến, khởi tạo hệ thống
Có nhấn nút setup? S Đ Điều khiển quét tuần tự
Kết thúc Setup đai đeo
CHƯƠNG 4 THI CÔNG HỆ THỐNG ở 1 góc cố định Ở đề tài này khoảng cách cảnh báo tối thiểu là 1.2m, và cũng tương tự áp dụng hàm arctan sẽ xác định được góc min và góc max cần quay Bước cuối cùng là ghi dữ liệu góc min, góc max vào bộ nhớ EEPROM của arduino để sử dụng sau và kết thúc quá trình setup đai đeo
Hình 4.15 Lưu đồ giải thuật chương trình con setup đai đeo
Quy trình thực hiện chương trình con đo khoảng cách_mm:
Sau khi khởi tạo các biến, servo MG90S được sử dụng kết hợp với cảm biến để quét khoảng cách trong phạm vi góc quay từ 0 đến 180 độ, cho phép điều khiển servo đến vị trí đã được lập trình.
Khai báo biến góc max =0, góc min
Chiều dài từ đai đeo xuống đất theo công thức lượng giác
Xác định được góc max, min theo lượng giác
Ghi dữ liệu vào bộ nhớ EEPROM Đo khoảng cách_mm Phát âm thanh thông báo người dùng
CHƯƠNG 4 THI CÔNG HỆ THỐNG gian delay giữa mỗi lần servo quay và cảm biến đo là 50ms Giá trị khoảng cách đo được sẽ được trả về cho hàm đo khoảng cách để xử lý các lệnh có liên quan và kết thúc quá trình đo
Hình 4.16 Lưu đồ giải thuật chương trình con đo khoảng cách mm
Lưu đồ giải thuật chương trình con điều khiển quét tuần tự:
Bắt đầu bằng việc khai báo các biến và đọc dữ liệu góc quay min và max từ ô nhớ thứ 0 và 1 của EEFROM Tiếp theo, thực hiện vòng lặp for từ góc min đến góc max với biến tăng i bằng 2 Động cơ servo sẽ quay từ góc min lên, và giá trị khoảng cách đo được sẽ được lưu vào mảng kc_up[] với 150 phần tử Biến delta được sử dụng để lưu hiệu số khoảng cách giữa hai góc quay liền kề.
Trong 1 chu kì, nếu khoảng cách đo được Kc_up[] ngày càng giảm, nếu phát hiện khoảng cách đo được hiện tại nhỏ hơn hoặc bằng khoảng cách cố định 1 khoảng sai số (delta) ứng với góc quay tương ứng mà tần số phát hiện khoảng 8 lần thì điều khiển thông báo có vật cản trước mặt
Khai báo biến Điều khiển Servo đến vị trị góc cần đo Đo khoảng cách
Kết thúc Trả về giá trị khoảng cách
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Trong 1 chu kì, nếu khoảng cách đo Kc_up[] được ngày càng tăng, nếu phát hiện khoảng cách giữa 2 góc quay liên tiếp nằm trong khoảng 150 đến 300mm với 1 khoảng sai số (delta) mà tần số phát hiện khoảng 6 lần thì điều khiển thông báo phía trước có cầu thang hướng lên
Khi góc quay nhỏ hơn 60 độ và khoảng cách đo được lớn hơn 2.6m với hai lần phát hiện trong một chu kỳ, hệ thống sẽ phát âm thanh cảnh báo phía trước có cầu thang hướng xuống Đồng thời, vòng lặp for sẽ được thực hiện từ góc tối đa đến góc tối thiểu với biến giảm j bằng 2, và khoảng cách đo được sẽ được lưu vào mảng kc_dw[].
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4.17 Lưu đồ giải thuật chương trình con điều khiển quét tuần tự Đọc dữ liệu từ bộ nhớ EEPROM
Khai báo biến, solan = 0, solan_ct_len = 0, solan_ct_xuong = 0 i = góc min i = góc min? Đ Đọc giá trị khoảng cách từ cảm biến
Kc_dw[j] ở trong khoảng kc cảnh báo?
Trong đoạn từ 10 đến 35 cm?
Phát âm thanh thông báo có vật cản
Delta = Kc_dw[j+2] - Kc_dw[j]
Gán giá trị đọc được cho mảng kc_dw[j]
Reset các giá trị còn lại
Phát âm thanh thông báo có cầu thang hướng lên
Phát âm thanh thông báo có cầu thang hướng xuống j = j - 2
CHƯƠNG 4 THI CÔNG HỆ THỐNG
4.4.2 Phần mềm lập trình cho vi điều khiển a Giới thiệu phần mềm lập trình
Arduino IDE là một môi trường phát triển tích hợp mã nguồn mở, giúp người dùng dễ dàng viết và tải mã code lên bo mạch Được xây dựng bằng Java và dựa trên ngôn ngữ lập trình Processing, phần mềm này tương thích với tất cả các bo mạch Arduino.
Arduino IDE là một môi trường phát triển tích hợp đa nền tảng, cho phép người dùng viết, biên dịch và tải code lên các bo mạch Arduino như Uno, Nano, Mega và Pro Mini Phần mềm hỗ trợ ngôn ngữ lập trình C và C++, phù hợp với lập trình viên quen thuộc với hai ngôn ngữ này Với các tính năng như làm nổi bật cú pháp và thụt đầu dòng tự động, Arduino IDE trở thành lựa chọn hiện đại cho lập trình Thư viện code mẫu phong phú và sự phát triển ngày càng nhiều của OpenSource cho Arduino giúp việc lập trình trở nên dễ dàng hơn.
Để tải phần mềm lập trình Arduino IDE, bạn hãy truy cập vào [trang web Arduino](https://www.arduino.cc/en/Main/Software) và chọn phiên bản phù hợp với hệ điều hành của mình, ví dụ như phiên bản dành cho Windows Sau đó, bạn chỉ cần nhấn vào "Windows Installer" để tiến hành cài đặt phần mềm cho Windows.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4.20 Cách download phần mềm
Hình 4.21 Giao diện chính của phần mềm
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Bảng 4.2 Chức năng của các biêu tượng trên thanh công cụ:
Biên dịch chương trình đang soạn thảo để kiểm tra các lỗi lập trình Biên dịch và upload chương trình đang soạn thảo
Mở một trang soạn thảo mới
Mở các chương trình đã lưu
Lưu chương trình đang soạn
Mở cửa sổ Serial Monitor để gửi và nhận dữ liệu giữa máy tính và board Arduino
Sau khi viết xong chương trình và biên dịch không có lỗi nào, cắm cáp USB 2 đầu Type A-B để kết nối arduino và máy tính
Để thiết lập Arduino Nano, hãy vào thanh công cụ và chọn menu Tools -> Board, sau đó chọn Arduino Nano Tiếp theo, vào menu Tools -> Processor và chọn ATmega328P Đảm bảo rằng cả Board và Processor được chọn đúng theo loại board Arduino mà bạn đang sử dụng.
Để kết nối Arduino với máy tính, hãy vào menu Tools -> Serial Port và chọn cổng COM tương ứng, ví dụ như COM6 Đảm bảo kiểm tra cổng COM của Arduino IDE ở góc dưới cùng bên phải của cửa sổ làm việc để xác nhận kết nối chính xác.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4.22 Chọn board arduino và cổng COM
Bấm biểu tượng hoặc tổ hợp phím Ctrl+U để tải chương trình lên mạch Arduino Bạn sẽ thấy IDE xác nhận đã lập trình thành công như hình dưới
Hình 4.23 Upload chương trình thành công lên board arduino b Viết chương trình hệ thống Chương trình được viết như sau:
SoftwareSerial mySerial(10, 11); // Tạo đối tượng RX, TX của Nano const byte sensorPin = A0; // Chân A0 để đọc giá trị cảm biến
CHƯƠNG 4 THI CÔNG HỆ THỐNG
The code initializes a SharpDistSensor object with a specified sensor pin and medium filter window size It declares several variables, including a byte for position, a constant byte for button setup, and boolean flags for setup and EEPROM status Additionally, it defines byte variables for minimum and maximum angles, as well as two variables for stopping conditions The setup function is prepared to configure the sensor and other parameters.
Viết tài liệu hướng dẫn
4.5.1 Viết tài liệu hướng dẫn sử dụng
Bước 1: Hệ thống sử dụng nguồn 5VDC cấp trực tiếp vào arduino qua cổng mini
USB, bật công tắc nguồn ở vị trí ON thì mạch hoạt động
Hình 4.24 Công tắc nguồn và nút nhấn setup
Bước 2: Khi chưa nhất nút nhất setup thì mạch sẽ tự đọc giá trị đã lưu vào bộ nhớ
Để cài đặt lại thông số chiều cao của người dùng trong EEPROM, người dùng cần nhấn và giữ nút nhấn Sau khi quá trình cài đặt hoàn tất, Arduino sẽ lưu thông số mới và mạch sẽ hoạt động trở lại bình thường.
Để ngừng hoạt động của đai đeo, bạn chỉ cần nhấn công tắc nguồn để tắt mạch Khi bật lại, đai đeo sẽ hoạt động theo các thông số đã được cài đặt trước đó.
Một số lưu ý để sử dụng tốt mô hình:
- Kiểm tra nguồn pin trước khi sử dụng
- Có 4 đèn báo trạng thái pin, sạc đầy khi pin yếu
- Đeo đai chắc chắn, vừa với vòng eo của bản thân
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4.25 Quy trình thao tác
Tắt nguồn khi không sử dụng
Bật công tắc nguồn Bắt đầu
Nhấn giữ nút bên phía tay phải nếu muốn cài đặt lại thông số
KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Kết quả
Sau một thời gian nghiên cứu và thi công, nhóm đã hoàn thành đề tài chế tạo đai đeo cho người khiếm thị, mặc dù gặp nhiều khó khăn Qua quá trình này, nhóm không chỉ hoàn thành mục tiêu mà còn tích lũy được nhiều kiến thức mới hữu ích.
5.1.1 Những vấn đề nghiên cứu
Nghiên cứu về board Aduino Nano.
Nghiên cứu về cách truyền nhận dữ liệu trên UART.
Nghiên cứu về cách tạo xung PWM.
Nghiên cứu về module GP2Y0A710K0F.
Nghiên cứu về module DFPlayer Mini Mp3.
Nghiên cứu về động cơ Servo MG90S.
Nghiên cứu thiết kế mạch nguồn.
5.1.2 Những vấn đề hoàn thành
Tìm hiểu được cách truyền nhận dữ liệu của UART.
Lập trình được trên Arduino Nano.
Tìm hiểu được cách tạo xung PWM để động cơ Servo quay tuần tự.
Sử dụng module GP2Y0A710K0F để đo khoảng cách.
Cách sử dụng module DFPlayer Mini Mp3 để lưu từng đoạn âm thanh và phát ra theo yêu cầu.
Thiết kế và thi công hoàn thành đai đeo cho người khiếm thị.
Thiết kế và thi công hoàn thành được vỏ hộp cho đai đeo.
CHƯƠNG 5 KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
Hình 5.1 Hình ảnh sản phẩm
Nhận xét
Trong quá trình thiết kế và thi công đề tài, nhóm đã gặp phải khó khăn trong việc lựa chọn linh kiện Tuy nhiên, sau khi tiến hành nghiên cứu và tìm hiểu kỹ lưỡng, các vấn đề liên quan đã được giải quyết hiệu quả.
Khó khăn lớn nhất trong nghiên cứu đề tài là xác định và thông báo cho người sử dụng về sự tồn tại của vật cản sau khi thu thập khoảng cách từ cảm biến Đặc biệt, việc phát hiện cầu thang lên hoặc xuống là một thách thức lớn mà nhóm nghiên cứu gặp phải trong quá trình tìm kiếm giải pháp.
Sau thời gian dài nghiên cứu và thi công, dự án đã hoàn thành đúng tiến độ với hệ thống hoạt động tương đối ổn định Tuy nhiên, các yêu cầu đặt ra vẫn chưa đạt 100%, với hơn 75% được đáp ứng, nhưng vẫn còn thiếu ổn định do nhiều lúc cảnh báo không kịp thời để đáp ứng nhu cầu thực tế.
Đánh giá
Hệ thống đai đeo là công cụ quan trọng cho người khiếm thị, giúp họ di chuyển dễ dàng và nhận biết các vật cản phía trước Việc sử dụng hệ thống này không chỉ nâng cao sự độc lập mà còn đảm bảo an toàn cho người khiếm thị trong cuộc sống hàng ngày.