Professional Documents
Culture Documents
BTL 12
BTL 12
HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
---------------o0o---------------
Robot dò mê cung
Họ và tên MSSV
Trần Nhân Quyền 2011948
Đoàn Quốc Huy
LỜI CẢM ƠN
i
Bài tập lớn GVHD: Bùi Quốc Bảo
Dự án được ra đời dựa trên một ý tưởng trong quá trình tham gia cuộc thi Robot dò mê cung,
sản phẩm được tạo ra với chức năng tăng năng suất khám phá cho các nhà khoa học cũng như
nâng cao đời sống của xã hội. Với trình độ kỹ thuật ngày càng tiên tiến, đòi hỏi sự khám phá
cũng ngày càng phát triển, nhất là không gian ngoài vũ trụ, chúng ta chỉ có thể đưa những con
robot ra ngoài không gian với mục tiêu chính là khám phá các vùng đất mới. Để làm được
điều đó thì bước đầu tiên chúng ta phải xem xét đến khả năng tìm đường và vượt chướng ngại
vật. Hay đối với những khu rừng âm u, chưa được khám phá thì cần những con robot có sức
bền cũng như khả năng dò đường, quét máp, tránh vật cản, … Để có được những bước đó
chúng ta phải xây dựng được con Robot có khả năng tìm đường, và đó cũng là ý tưởng của
nhóm để phát triển Robot dò mê cung hay robot dò đường.
ii
Bài tập lớn GVHD: Bùi Quốc Bảo
MỤC LỤC
1. GIỚI THIỆU..................................................................................................................................1
2. LÝ THUYẾT..................................................................................................................................1
8. PHỤ LỤC.......................................................................................................................................4
iii
Bài tập lớn GVHD: Bùi Quốc Bảo
iv
Bài tập lớn GVHD: Bùi Quốc Bảo
v
Bài tập lớn GVHD: Bùi Quốc Bảo
1. GIỚI THIỆU
(Mô tả tổng quan về lĩnh vực liên quan đến đề tài và những mục tiêu cần nghiên cứu.
Từ đó giới thiệu nhiệm vụ cần đặt ra cho đề tài.)
Trong cuộc sống ngày càng phát triển nhất là thời buổi công nghệ 4.0, việc áp dụng
các ứng dụng về khoa học kỹ thuật ngày càng cao. Đồng thời xã hội ngày càng phát triển, con
người càng lấn sân khám phá các vùng đất mới, ví dụ như Sứ Mệnh Khám Phá Sao Hỏa Của
Robot Thám Hiểm Tự Hành The Curiosity của NASA. Đơn giản đó là con Robot có khả năng
tự hành, di chuyển và chụp ảnh, cộng thêm với nó có khả năng gửi tín hiệu về Trái Đất những
hình ảnh nó khám phá được.
Đề tài Robot dò mê cung được nhóm lấy cảm hứng từ khả năng tự hành, tìm kiếm
đường đi của Robot Thám Hiểm Tự Hành The Curiosity.
Mục tiêu cần nghiên cứu chính là thiết kế và thuật toán dò đường bằng sóng hồng
ngoại từ cảm biến hồng ngoại, khả năng xử lý thuật toán nhanh nhất của vi điều khiển. Nhiệm
vụ chính nhóm đặt ra là làm cho Robot dò được đường ra trong một mê cung chứa nhiều vật
cản, đồng thời có khả năng phân tích và ghi nhớ đường đi.
(Mô tả các nhiệm vụ của đề tài bao gồm yêu cầu, kết quả cần đạt và giới hạn đề tài.
Trong từng nội dung sinh viên cũng cần trình bày thêm cách tiếp cận cũng như ý tưởng thực
hiện.)
Cách tiếp cận chính là dựa vào các bài giảng cũng như các giải thuật đã có trên mạng cộng
thêm các thực nghiệm thực tế để tìm ra được hướng giải quyết cho Robot khi gặp các trường
hợp lỗi cần phải khắc phục.
Giới hạn đề tài: Dò được mê cung trong một mô hình nhỏ, tầm một căn phòng được xếp
thành mê cung và nhỏ gọn để vừa với khoảng cách giữa hai tường.
Nội dung: tìm hiểu lý thuyết về các chân GPIO, các giao tiếp trong vi điều
khiển UART, I2C, SPI, …, các ngắt, … của vi điều khiển và các linh kiện cần
thiết cho dự án ví dụ mạch chuyển tín hiệu, mạch phân áp, ….
1
Bài tập lớn GVHD: Bùi Quốc Bảo
(Nếu đề tài chỉ có 1 sinh viên làm thì không cần làm phần này)
2
Bài tập lớn GVHD: Bùi Quốc Bảo
Sinh viên mô tả cách thức phân chia công việc đồ án trong nhóm, chi tiết công việc
cho mỗi sinh viên, thời hạn, và quy định riêng trong nhóm đồ án, thời gian họp nhóm.
Người thực
STT Công việc Chi tiết công việc Thời hạn
hiện
Tìm hiểu các chân và
chức năng của từng chân
Tìm hiểu lý thuyết GPIO của vi điều khiển,
Đoàn Quốc 01/10/2022 –
1 về các chân của vi các chức năng có thể có
Huy 15/10/2022
điều khiển. của GPIO (một chân có
thể có chức năng INT
hay TIMER)
Tìm hiểu cách hoạt động
Tìm hiểu nguyên
và cách hiệu chỉnh tốc
lý, lý thuyết về Trần Nhân 01/10/2022 –
2 độ động cơ dựa vào sự
mạch điều khiển Quyền 15/10/2022
thay đổi điện áp của
động cơ L298N
mạch điều khiển L298N
Tìm hiểu cách đọc giá
trị cũng như bộ thu và
Tìm hiểu về cảm
chuyển giá trị để vi điều
biến hồng ngoại
khiển có thể hiểu được
SHARP Đoàn Quốc 01/10/2022 –
3 giá trị đó.
GP2YA02YKF0F, Huy 15/10/2022
Tìm hiểu cách sử dụng
kit phát triển
phần mềm
STM32F103C8T6.
STM32CubeIDE hay
STM32CubeMX.
Tìm hiểu các giải thuật
Thiết kế bộ điều
bám tường, thuật toán
khiển phù hợp với
Pledge, thuật toán Trần Nhân 01/10/2022 –
4 cách sử dụng các
Trémaux, từ đó tìm ra Quyền 15/10/2022
giải thuật dò mê
giải thuật phù hợp cho
cung.
dự án.
5 Tìm kiếm linh kiện Chi tiết các giá trị của Đoàn Quốc 18/10/2022 –
phù hợp với dự án từng linh kiện dựa trên Huy 01/11/2022
3
Bài tập lớn GVHD: Bùi Quốc Bảo
2. LÝ THUYẾT
(Tùy theo nội dung nghiên cứu mà sinh viên chọn tiêu đề cho phù hợp)
Đối với nội dung tìm hiểu lý thuyết, sinh viên cần trình bày:
4
Bài tập lớn GVHD: Bùi Quốc Bảo
Chúng ta sẽ thay đổi cực tính để động cơ quay theo một trong hai hướng phụ thuộc vào mức
logic.
Các đầu vào: Bốn đầu vào được cấp cho bốn bộ khuếch đại công suất của L298N.
Sử dụng các nút nhấn để khi nào nút nhấn nào được nhấn thì động cơ tương ứng sẽ
bắt đầu quay. Hai đầu vào sẽ điều khiển tương ứng 2 động cơ. Thay vì nút nhấn,
chúng ta có thể sử dụng chuyển đổi logic trong phần mềm proteus một cách dễ
dàng.
Các bit kích hoạt được sử dụng để chọn bộ khuếch đại hoạt động. ENA sẽ chọn hai
bộ khuếch đại A1, A2 và ENB sẽ chọn hai bộ khuếch đại B1, B2. Khi hoạt động
như mạch bridge, ENA chọn bridge A và ENB chọn bridge B. Để điều khiển cả
hai động cơ bằng cách sử dụng mạch H-bridge, cả hai bit cho phép đều được đặt ở
mức logic cao.
5
Bài tập lớn GVHD: Bùi Quốc Bảo
Các đầu ra: Có bốn đầu ra. Đầu ra cho động cơ A ở chân out1, out2 và tương tự
động cơ B ở chân out3, out4. L298N không có tích hợp diode bảo vệ, chúng tôi đã
sử dụng diode bên ngoài để bảo vệ vi mạch bị hỏng.
IC đang sử dụng hai điện áp khác nhau. Ở phía đầu vào, 5v được cấp vào chân 9
(Vss), các nút nhấn và các bit kích hoạt. Ở đầu ra, chân 4 (Vs) cấp điện áp cho
động cơ có thể lên đến 46V. Ở đây chúng tôi không sử dụng chân cảm biến dòng
điện, vì vậy đã kết nối các chân 1 & 15 xuống mass. Tốc độ động cơ sẽ thấp nếu
có điện áp thấp ở phía đầu ra.
2. Mạch giảm áp
a. Schematic
Bộ chuyển đổi Buck được đưa vào ứng dụng trong các mạch nguồn xung với yêu cầu điện áp
ra DC luôn thấp hơn so với điện áp vào DC. Điện áp ở đầu vào DC có thể lấy trực tiếp từ
nguồn AC thông qua cầu diode và tụ lọc hoặc có thể thông qua bất kỳ nguồn cung cấp DC
nào cũng được.
Buck hoạt động theo nguyên lý băm xung, đó chính là dùng các khóa mạch thực hiện việc
chuyển mạch điện tử là Mosfet hoặc có thể dùng BJT nhằm nối tải với nguồn trong một
khoảng thời gian nhất định theo chu kỳ T nhất định của mạch. Lúc này, điện áp ở đầu ra sẽ
6
Bài tập lớn GVHD: Bùi Quốc Bảo
thay đổi theo chu kỳ T và thời gian thực hiện việc đóng cắt của khóa chuyển mạch trong
mạch Buck.
Trong mạch Buck cơ bản sẽ bao gồm 4 linh kiện điện tử là diode, khóa chuyển mạch điện tử,
cuộn dây và tụ điện.
Khi linh kiện điện tử bán dẫn đi qua cuộn cảm hay cuộn dây điện và thực hiện việc nạp cho tụ
điện nó sẽ duy trì dòng qua tải. Dòng qua cuộn dây và dòng điện nạp vào tụ điện không tăng
đột ngột và chúng tăng từ từ, khi đó điện áp ở đầu ra trên tải cũng từ từ tăng lên, lúc này
diode sẽ không dẫn điện bởi nó bị phân cực ngược.
Khi linh kiện bán dẫn tắt dòng qua tải được lấy từ cuộn dây hay cuộn cảm của mạch và 1
phần nhỏ của tụ điện, lúc này diode sẽ dẫn ngay lập tức và dòng qua tải chính là dòng điện đi
qua diode và nó phải đảm bảo thực hiện nhiệm vụ bảo vệ linh kiện bán dẫn khỏi bị hỏng do
điện áp ngược khi cắt dòng đặt lên nó. Linh kiện bán dẫn có thể chết ngay lập tức khi điện áp
ngược do cuộn cảm sinh ra, và cộng thêm vào đó là nguồn điện tăng.
7
Bài tập lớn GVHD: Bùi Quốc Bảo
8
Bài tập lớn GVHD: Bùi Quốc Bảo
Cảm biến GP2Y0A02YK0F sản xuất bởi hãng SHARP, được sử dụng để đo khoảng cách
bằng tia hồng ngoại với dạng tín hiệu trả về là Analog tương ứng theo khoảng cách nên có thể
biết chính xác khoảng cách đến vật thể cần đo, cảm biến có thể đo được trong khoảng 20 ~
150cm.
Cảm biến khoảng cách hồng ngoại Analog SHARP GP2Y0A02YK0F có độ ổn định cao,
chống nhiễu tốt, kích thước nhỏ gọn, phù hợp với vô số ứng dụng khác nhau: robot dò đường,
đo khoảng cách, tránh vật cản, ...
Thông số kỹ thuật:
Model: GP2Y0A02YK0F.
Điện áp sử dụng: 4.5 ~ 5.5VDC.
Dòng sử dụng trung bình: 33 mA (note: this sensor draws current in large, short
bursts, and the manufacturer recommends putting a 10 µF capacitor or larger
across power and ground close to the sensor to stabilize the power supply line).
Khoảng cách đo: 20 ~ 150cm.
Dạng tín hiệu trả về: analog voltage.
Output voltage differential over distance range: 2.05 V (typical).
Update period: 38 ± 10 ms.
Size: 44.5 mm × 18.9 mm × 21.6 mm (1.75″ × 0.75″ × 0.85″).
Weight: 5 g (0.18 oz).
6. Thuật toán dò mê cung
Dự án này nhóm đưa đến 3 thuật toán có tính phổ biến và thông dụng nhất.
Thuật toán bám tường
Thuật toán bám theo tường (wall follower) là một quy tắc nổi tiếng nhất để vượt qua mê
cung, còn được gọi là quy tắc tay trái hoặc quy tắc tay phải. Nếu mê cung chỉ liên thông đơn
9
Bài tập lớn GVHD: Bùi Quốc Bảo
giản nghĩa là tất cả các bức tường của nó được kết nối với nhau hoặc kết nối với đường bao
quanh mê cung, thì bằng cách dò một tay lên một bức tường của mê cung thì người đi đảm
bảo không bị lạc và tìm được lối ra nếu có một lối ra trên đường bao; hoặc nếu không có lối
ra thì sẽ quay trở lại lối vào và sẽ đi qua tất cả các đường của mê cung ít nhất 1 lần.
Đây là một khía cạnh khác cho thấy lý do vì sao việc bám theo tường là một topo. Nếu các
bức tường được kết nối, thì có thể được kéo giãn biến dạng thành một vòng lặp hoặc vòng
tròn. Do đó, bức tường buộc người đi theo xung quanh một vòng tròn từ điểm đầu đến cuối.
Nếu mê cung có các tường rời nhau, đồng thời lối vào lối ra của mê cung nằm trên tường bao
của mê cung, thì thuật toán bám tường vẫn có thể tìm được đường ra. Tuy nhiên, nếu điểm
vào nằm bên trong mê cung và tách rời khỏi lối ra, thì bám theo tường sẽ chỉ có thể đi thành 1
vòng cục bộ và không tìm được lối ra. Đối với trường hợp này, thuật toán Pledge (được đặt
theo tên của Jon Pledge ở Exeter) có thể giải quyết được vấn đề.
Giải thuật Pledge được thiết kế để vượt qua vật cản, bằng cách chọn một hướng đi bất kỳ.
Khi gặp vật cản, thì chuyển sang di chuyển bám theo tường dọc theo vật cản, kết hợp với đếm
góc quay. Sau khi bám tường và quay mà trở về lại đúng hướng đi ban đầu đồng thời tổng
góc đã quay bằng '0' (zero) thì tức là đã vượt qua khỏi vật cản, thì không cần bám tường nữa
và tiếp tục di chuyển theo hướng ban đầu đã chọn.
Chỉ thoát khỏi bám theo tường khi thỏa mãn cả hai điều kiện: "hướng hiện tại trùng với
hướng ban đầu" và "tổng số góc đã quay bằng '0'". Điều này là cần thiết để giúp di chuyển
vòng qua vật cản phức tạp ví dụ như vật cản hình chữ "G" như trong hình. Ở vị trí +360o,
robot có hướng di chuyển cùng hướng ban đầu, nếu bỏ bám tường bên phải mà tiếp tục di
chuyển thẳng thì sẽ đi vào 1 vòng lặp mà không thoát ra được. Thay vào đó, nếu tiếp tục bám
vào tường phải và thực hiện quay cho đến khi tổng góc quay là '0' thì sẽ thoát ra khỏi vật cản.
10
Bài tập lớn GVHD: Bùi Quốc Bảo
Thuật toán Trémaux được Charles Pierre Trémaux phát minh, sử dụng các dấu hiệu để ghi
nhớ đường đi, ví dụ đánh dấu trên mặt sàn, là một phương pháp hiệu quả để tìm lối ra của
một mê cung. Thuật toán có thể giải tất cả các mê cung có đường đi rõ ràng.
Một đường trong mê cung sẽ được ghi nhớ bằng cách đánh dấu bởi một trong 3 trạng thái:
chưa qua, đã qua 1 lần hoặc qua 2 lần. Một đường được chọn để đi sẽ luôn được đánh dấu
bằng 1 vạch dưới sàn (từ ngã giao này đến ngã giao kia). Tại điểm bắt đầu có thể chọn một
hướng bất kỳ (nếu có nhiều hơn một hướng). Khi đến một ngã giao, nếu các đường rẽ đều
chưa qua, thì chọn ngẫu nhiên 1 đường để đi và đánh dấu đường ấy 1 vạch. Khi gặp một ngã
giao mà đường trước mặt theo hướng đi hiện tại đã có 1 dấu, và đường đang đi hiện tại chỉ
mới đánh dấu 1 lần, thì quay trở lại và đánh dấu đường ấy 2 vạch. Nếu đến 1 ngã giao mà
không rơi vào 2 trường hợp trên, thì chọn đường đi có ít vạch nhất, và nhớ đánh dấu đường
ấy luôn. Khi đến đích, thì những con đường chỉ đánh dấu 1 vạch là đường dẫn trở về điểm
xuất phát.
Nếu không có ngã ra, thì phương pháp này sẽ dẫn người đi trở về lại điểm xuất phát, và khi
ấy tất cả con đường sẽ đánh dấu 2 vạch, mỗi vạch tương ứng với 1 hướng đi. Kết quả được
gọi là vạch đôi 2 chiều.
11
Bài tập lớn GVHD: Bùi Quốc Bảo
Về cơ bản, thuật toán này được phát hiện từ thế kỷ 19 đã được sử dụng khoảng hàng trăm
năm sau như một phương pháp tìm kiếm ưu tiên chiều sâu.
Lấp kín đường cụt (dead-end filling) là một thuật toán để giải mê cung bằng cách lấp kín
tất cả các ngã cụt, chỉ để lại một đường chính xác không bị lấp. Nó có thể được sử dụng
để giải các mê cung trên giấy hoặc với một chương trình máy tính, nhưng nó không hữu
dụng nếu mê cung chưa biết bởi vì phương pháp này phải biết trước toàn bộ bộ mê cung.
Các bước của phương pháp lấp kín đường cụt là:
https://www.youtube.com/watch?v=yqZDYcpCGAI
12
Bài tập lớn GVHD: Bùi Quốc Bảo
o Nêu rõ ưu điểm và khuyết điểm của từng phương pháp, từ đó lựa chọn phương
pháp phù hợp
o Ghi chú: cần phân tích ít nhất 2 phương pháp, rồi chọn giải pháp tối ưu
Vẽ sơ đồ khối tổng quát và giải thích (nếu mạch đơn giản thì lược bỏ phần này)
o Phải giải thích rõ nhiệm vụ, chức năng từng khối
Vẽ sơ đồ khối chi tiết và giải thích
o Phải giải thích rõ nhiệm vụ, chức năng từng khối
Tính toán và vẽ sơ đồ mạch chi tiết
o Thiết kế, vẽ sơ đồ mạch chi tiết và tính toán từng khối đã nêu trong phần trên
13
Bài tập lớn GVHD: Bùi Quốc Bảo
Nếu những bảng số liệu và kết quả mô phỏng quá nhiều, sinh viên có thể trình bày đưa vào
phần Phụ Lục.
Ví dụ về hình minh họa: (dùng chức năng Insert Caption để tạo liên kết cho Danh sách hình
minh họa)
Ví dụ về Bảng số liệu
14
Bài tập lớn GVHD: Bùi Quốc Bảo
Đánh giá về kết quả làm việc nhóm (Nếu chỉ có 1 sinh viên làm đề tài thì không
trình bày phần này)
Sinh viên trình bày kết quả công việc của từng thành viên, các ý kiến trong khi thiết kế,
thời hạn hoàn thành thiết kế của các thành viên. Mục tiêu chung của đề tài có đạt được
không? Có thành viên nào không tích cực?
Sinh viên tóm tắt những điều rút ra được từ kết quả đề tài, những kinh nghiệm có
được sau khi thực hiện đề tài. Ưu và khuyết điểm của kết quả nghiên cứu đề tài cũng được
trình bày trong mục này. Sinh viên cần so sánh với mục tiêu đặt ra trong chương 1.
Sinh viên trình bày hướng phát triển và khả năng ứng dụng của đề tài
Trong mục này, sinh viên liệt kê những tài liệu đã tham khảo khi thực hiện đề tài luận
văn. Những nội dung trình bày ở mục trên có tham khảo tài liệu thì sinh viên cần ghi chú
bằng chỉ số (ví dụ [1], [2]). Chỉ số này cần tương ứng danh mục tài liệu tham khảo. Sinh viên
xem thêm hướng dẫn cách viết trích dẫn kiểu IEEE.
Ví dụ:
[1] Tống Văn On, “Thiết kế mạch số với VHDL & Verilog”, Nhà xuất bản Lao động Xã
Hội, 2007.
[2] Altera Corp., “SDRAM Controller for Altera’s DE2/ DE1 boards”, www.altera.com
8. PHỤ LỤC
15
Bài tập lớn GVHD: Bùi Quốc Bảo
Những kết quả nghiên cứu bổ sung mà trong phần Kết quả luận văn chưa trình bày
hết.
Phần mã nguồn chương trình, sinh viên cũng có thể trình bày trong mục này. Để ngắn
gọn, sinh viên chỉ đưa những mã nguồn chính vào phần Phụ lục.
Sơ đồ toàn mạch chi tiết
16