You are on page 1of 56

MỤC LỤC

MỤC LỤC............................................................................................................... - 1 -
DANH MỤC CÁC BẢNG........................................................................................ - 3 -
DANH MỤC CÁC HÌNH ........................................................................................ - 4 -
PHẦN MỞ ĐẦU ....................................................................................................... - 5 -
CHƢƠNG 1: TỔNG QUAN ROBOT DÒ ĐƢỜNG ............................................ - 6 -
1.1 Tổng quan về ứng dụng vi điều khiển............................................................... - 6 -
1.2 Giới thiệu về robot dò đường ............................................................................ - 6 -
1.2.1 Giới thiệu .................................................................................................... - 6 -
1.2.2 Hoạt động.................................................................................................... - 7 -
1.3 Ứng dụng robot dò đường ................................................................................. - 9
- CHƢƠNG II: THIẾT KẾ VÀ TÌM HIỂU LINH KIỆN CỦA HỆ THỐNG ... -
10 - 2.1 Yêu cầu đề tài ................................................................................................ -
10 -
2.2 Giải pháp thiết kế .......................................................................................... - 10 -
2.2.1 Sơ đồ khối ................................................................................................. - 10 -
2.2.2 Phân tích chức năng các khối ................................................................... - 10 -
2.2.3 Nguyên lý hoạt động của hệ thống ........................................................... - 11 -
2.3 Lựa chọn linh kiện ........................................................................................ - 13 -
2.3.1 Khối điều khiển......................................................................................... - 13 -
2.3.2 Module điều khiển động cơ L293D .......................................................... - 18 -
2.3.3 Module cảm biến hông ngoại TCRT5000 ................................................ - 20 -
2.3.4 Động cơ giảm tốc DC ............................................................................... - 21 -
2.3.5 LED (Light Emitting Diode) .................................................................... - 21 -
2.3.6 Nguồn Adapter 12V2A............................................................................. - 22 -
CHƢƠNG III: PHÂN TÍCH THUẬT TOÁN PID VÀ ỨNG DỤNG TRONG
ROBOT DÒ ĐƢỜNG............................................................................................. - 23 -
3.1 Giới thiệu....................................................................................................... - 23 -
3.2 Định nghĩa thuật toán PID .......................................................................... - 23 -
3.3 Phƣơng pháp điều chế độ rộng xung (PWM)............................................. - 24 -
3.4 Giải thuật điều khiển vi tích phân tỉ lệ (PID) ............................................. - 25 -
3.5 Ứng dụng giải thuật trên robot dò đƣờng .................................................. - 26 -
3.5.1 Mô hình PID áp dụng cho robot dò đường............................................... - 26 -
Trang - 1 -
3.5.2 Giải thuật PID ........................................................................................... - 27 -

Trang - 2 -
3.5.3 Hiệu chỉnh thuật toán PID....................................................................... - 28 -
3.6 Giới thiệu phần mềm Arduino IDE............................................................. - 29 -
3.6.1 Giao diện................................................................................................... - 29 -
3.6.2 Vùng lệnh.................................................................................................. - 29 -
3.6.3 Vùng thông báo (debug) ........................................................................... - 30 -
3.6.4 Một số lưu ý .............................................................................................. - 30
- CHƢƠNG VI: THIẾT KẾ VÀ CHẾ TẠO ROBOT DÒ ĐƢỜNG.................... -
31 - 4.1 Thiết kế đƣờng đi cho robot ......................................................................... -
31 -
4.2 Chế tạo và hoàn thành sân đi cho robot...................................................... - 31 -
4.2.1 Tấm Formex.............................................................................................. - 31 -
4.2.2 Hệ thống đường line cho robot ................................................................. - 32 -
4.3 Hoàn thành Robot dò đƣờng........................................................................ - 33 -
4.4 Kết quả thực nghiệm trên mô hình robot ................................................... - 33 -
PHẦN KẾT LUẬN
TÀI LIỆU THAM KHẢO
PHỤ LỤC
NHẬN XÉT CỦA CÁN BỘ HƢỚNG DẪN

Trang - 3 -
DANH MỤC CÁC BẢNG
Bảng 2. 1 Đặc điểm kỹ thuật Arduino Uno R3.............................................. - 15 -

Trang - 4 -
DANH MỤC CÁC HÌNH
Hình 1.1 Sân chạy robot.................................................................................. - 7 -
Hình 1.2 Quang trở........................................................................................... - 8 -
Hình 1.3 Nguyên lý hoạt động của quang trở .................................................. - 8 -
Hình 1.4 Cách bố trí cảm biến ......................................................................... - 8 -
Hình 2.1 Sơ đồ khối robot dò đường.............................................................. - 10 -
Hình 2.2 Mạch cảm biến LED - quang trở..................................................... - 12 -
Hình 2.3 Mạch điều khiển motor sử dụng L298 ............................................ - 13 -
Hình 2.4 Arduino UNO R3 ............................................................................ - 15 -
Hình 2.5 Vi xử lý ATmega328 ...................................................................... - 17 -
Hình 2.6 Sơ đồ chân ATmega328.................................................................. - 17 -
Hình 2.7 Module L293D ................................................................................ - 18 -
Hình 2.8 Chân kết nối RC522 ........................................................................ - 20 -
Hình 2.9 Động cơ DC giảm tốc...................................................................... - 21 -
Hình 2.10 LED ............................................................................................... - 22 -
Hình 2.11 Nguồn adapter 12v2A ................................................................... - 22 -
Hình 3.1 Giản đồ thời gian của xung PWM................................................... - 24 -
Hình 3.2 Sơ đồ khối giải thuật PID................................................................ - 25 -
Hình 3.3 Sơ đồ khối ứng dụng giải thuật PID vào robot dò đường ............... - 27 -
Hình 3.4 Giao diện phần mềm Arduino IDE ................................................. - 29 -
Hình 3.5 Các nút lệnh trong Arduino IDE ..................................................... - 29 -
Hình 3.6 Vùng thông báo trong Arduino IDE ............................................... - 30 -
Hình 3.7 Chọn cổng kết nối cho Arduino Uno R3 ........................................ - 30 -
Hình 4.1 Mô phỏng đường đi trên phần nềm Paint 3D.................................. - 31 -
Hình 4.2 Tấm formex dùng làm tấm nền cho robot....................................... - 32 -
Hình 4.3 Băng keo dùng làm đường line ....................................................... - 32 -
Hình 4.4 Sân đi sau khi chế tạo...................................................................... - 33 -
Hình 4.5 Hoàn thiện robot dò đường ............................................................. - 33 -
Hình 4.6 Cảm biến hồng ngoại ...................................................................... - 34 -

Trang - 5 -
PHẦN MỞ ĐẦU
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của
chúng ta đã và đang ngày một thay đổi, văn minh và hiện đại hơn. Sự phát triển
của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật
như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp
phần cho hoạt động của con người đạt hiệu quả cao.
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành
và sử dụng được lại là một điều rất phức tạp. Các bộ vi điều khiển theo thời gian
cùng với sự phát triển của công nghệ bán dẫn đã tiến triển rất nhanh, từ các bộ vi
điều khiển 4 bit đơn giản đến các bộ vi điều khiển 32 bit, rồi sau này là 64 bit.
Điện tử đang trở thành một ngành khoa học đa nhiệm vụ. Điện tử đã đáp ứng
được những đòi hỏi không ngừng từ các lĩnh vực công – nông – lâm – ngư
nghiệp cho đến các nhu cầu cần thiết trong hoạt động đời sống hằng ngày.
Robot có vai trò rất quan trọng trong đời sống hiện nay đặc biệt là những
ứng dụng của nó trong công nghiệp, sản xuất kinh tế, quốc phòng…. Vì vậy em
chọn đề tài “Thiết kế hệ thống định vị cho robot tự hành bằng line ” để làm đồ
án tốt nghiệp.
Mặc dù đã rất cố gắng thiết kế và làm mạch nhưng do thời gian ngắn và
năng lực còn hạn chế nên mạch vẫn còn những sai sót. Em mong thầy (cô) giáo
góp ý để em sớm hoàn thành đồ án này.
Em xin chân thành cảm ơn!

Trang - 6 -
CHƯƠNG 1: TỔNG QUAN

1.1 Tổng quan về ứng dụng vi điều khiển


- Với sự phát triển kh ng ngừng của khoa học kỹ thuật, đặc biệt là sự phát
triển trong ngành điện tử đã đem đến rất nhiều ứng dụng trong c ng nghiệp và
trong sinh hoạt gia đình.
- Từ khi c ng nghệ chế tạp loại vi mạch lập trình phát triển đã đem đến
những phương thức kỹ thuật điều khiển hiện đại có nhiều ưu điểm hơn so với
việc sử dụng các mạch điều khiển lắp ráp bằng các linh kiện rời như kích thước
nhỏ, giá thành rẻ, độ làm việc tin cậy, công suất tiêu thụ nhỏ.
- Trong các ứng dụng dân dụng và công nghiệp, các bộ vi mạch vi điều
khiển được sử dụng rộng rãi và chúng đã phát huy được tính ưu việt của nó và
ngày càng được sử dụng rộng rãi hơn.
- Việc sử dụng các bộ vi điều khiển để điều khiển các công việc mang tính
lặp lại có chu kì là cần thiết để thay thế sự giám sát của con người, giảm được số
lượng nhân công trong các dây chuyền sản xuất, thay con người thực hiện các
công việc mang tính nguy hiểm, độc hại,...
1.2.1 Giới thiệu về robot tự hành và robot dò line
1.2.2 Giới thiệu
Robot tự hành là loại robot có khả năng di chuyển và thực hiện các tác vụ mà
không cần sự can thiệp của con người. Robot tự hành thường được trang bị các
cảm biến, máy tính và các bộ phận khác để giúp chúng tự động hóa việc di chuyển
và thực hiện các tác vụ.

Hình 1-1: Robot tự hành trong công nghiệp

Trang - 7 -
Ứng dụng :
Ngoài ra, robot tự hành cũng được sử dụng trong các ứng dụng dịch vụ, chẳng hạn
như trong lĩnh vực y tế hoặc giáo dục. Trong lĩnh vực y tế, robot tự hành có thể
được sử dụng để giúp bác sĩ hoặc y tá thực hiện các tác vụ như đưa thuốc cho bệnh
nhân hoặc giúp bệnh nhân di chuyển. Trong lĩnh vực giáo dục, robot tự hành có thể
được sử dụng để giúp giáo viên giảng dạy hoặc giúp trẻ em học tập.
Robot tự hành cũng được sử dụng trong các ứng dụng khắc phục thiên tai và tìm
kiếm cứu hộ. Ví dụ, robot tự hành có thể được sử dụng để tìm kiếm và cứu hộ các
nạn nhân trong các vụ tai nạn hoặc trong các vụ động đất, lụt lội hoặc cháy nổ.

Hình 1-2: Robot cứu hỏa


1.2 Giới hạn và thách thức :
Tuy nhiên, robot tự hành cũng đem lại một số thách thức. Một trong số đó là khả
năng xử lý thông tin của robot. Một robot tự hành cần phải có khả năng xử lý dữ
liệu nhanh chóng và chính xác để có thể đưa ra quyết định và thực hiện các tác vụ
một cách hiệu quả. Đồng thời, việc thiết kế các hệ thống điều khiển và điều hành
cũng là một thách thức đối với các nhà sản xuất robot tự hành.
Ngoài ra việc đảm bảo an toàn và đảm bảo tính an toàn cho robot tự hành cũng là
một thách thức lớn. Robot tự hành thường phải di chuyển trong môi trường đầy rủi
ro và có thể gặp phải các trở ngại bất ngờ, điều này có thể gây nguy hiểm cho robot
và những người xung quanh. Vì vậy, các nhà sản xuất robot tự hành phải thiết kế
các hệ thống an toàn như cảm biến và hệ thống dừng khẩn cấp để đảm bảo tính an
toàn cho robot và người sử dụng.
Một thách thức khác của robot tự hành là khả năng tương tác với con người. Robot
tự hành phải có khả năng tương tác và giao tiếp với con người một cách hiệu quả
để có thể thực hiện các tác vụ một cách hiệu quả. Việc thiết kế các giao diện người-
máy hiệu quả và dễ sử dụng là một thách thức lớn đối với các nhà sản xuất robot tự
hành.
Ngoài ra, việc đảm bảo tính bảo mật và riêng tư của thông tin được thu thập bởi
robot tự hành cũng là một thách thức đáng chú ý. Robot tự hành thường thu thập
nhiều dữ liệu về môi trường và con người xung quanh, và việc đảm bảo tính bảo
mật và riêng tư của thông tin này là rất quan trọng để tránh việc lạm dụng thông tin
hoặc xâm nhập vào đời sống riêng tư của con người.
Tuy nhiên, với sự phát triển của công nghệ, các nhà sản xuất robot tự hành đang cố
gắng giải quyết các thách thức này và đưa ra những giải pháp hiệu quả để phát
triển các ứng dụng robot tự hành rộng rãi hơn trong tương lai. Các công ty công
nghệ lớn như Google, Amazon và Tesla đang đầu tư mạnh vào nghiên cứu và phát

Trang - 8 -
triển robot tự hành với hy vọng tạo ra những bước đột phá đáng kể trong lĩnh vực
này.

Hình 1.3: Xe tự hành Tesla


Tóm lại, robot tự hành là một loại robot đang được phát triển với nhiều tiềm năng
và ứng dụng rộng rãi. Tuy nhiên, việc đảm bảo tính an toàn, tính hiệu quả và tính
bảo mật của robot tự hành vẫn là những thách thức đáng .
1.3 giới thiệu robot dò line :

Hình 1.4 : robot dò line


Robot dò line là một loại robot tự hành được thiết kế để di chuyển trên một bề mặt
phẳng và theo dõi một đường viền được đánh dấu trên bề mặt đó. Đây là một ứng
dụng phổ biến của robot tự hành và thường được sử dụng trong các lĩnh vực như
sản xuất công nghiệp, dịch vụ thực phẩm, giáo dục và giải trí.
Robot dò line thường được trang bị các cảm biến quang học để theo dõi đường
viền và xác định vị trí của robot trên bề mặt. Các cảm biến quang học này thường
được đặt ở đầu robot và giúp robot theo dõi đường viền bằng cách phát hiện sự
khác biệt giữa màu sắc của đường viền và màu sắc của bề mặt xung quanh.
Khi di chuyển trên đường viền, robot dò line thường sử dụng một số thuật toán
điều khiển để duy trì hướng di chuyển trên đường viền và giữ cho vận tốc di
chuyển ở mức độ ổn định. Nhiều robot dò line hiện nay đã được trang bị các hệ
thống điều khiển tự động thông minh để đảm bảo tính chính xác và hiệu quả của

Trang - 9 -
việc theo dõi đường viền .
1.4 Ứng Dụng robot dò line :
Robot dò line có nhiều ứng dụng trong các quá trình sản xuất công nghiệp. Chúng
thường được sử dụng để di chuyển và chuyển đổi vật phẩm từ một vị trí đến vị trí
khác trong quá trình sản xuất, giúp tiết kiệm thời gian và năng lượng. Robot dò
line cũng được sử dụng trong các quá trình kiểm tra chất lượng để đảm bảo rằng
các sản phẩm đạt chuẩn và không bị lỗi.
Robot dò line cũng có thể được sử dụng trong các ứng dụng dịch vụ thực phẩm
như nhà hàng và cửa hàng thực phẩm tự động. Chúng có thể được lập trình để di
chuyển trên các dòng sản phẩm thực phẩm và đảm bảo rằng sản phẩm đến được
với khách hàng đúng và đầy đủ.
Ngoài ra, robot dò line cũng có thể được sử dụng trong giáo dục và giải trí. Chúng
có thể được sử dụng trong các cuộc thi robot để đua trên đường viền và là một
công cụ học tập tuyệt vời để giúp học sinh, sinh viên học về lập trình và điều khiển
robot. Ngoài ra, robot dò line cũng có thể được sử dụng trong các phòng chơi trẻ
em và khu vui chơi giải trí, giúp trẻ em có thể tận hưởng thời gian vui chơi và học
tập cách điều khiển một robot.
Đây là một ứng dụng phổ biến của robot tự hành và thường được sử dụng trong các lĩnh
vực như sản xuất công nghiệp, dịch vụ thực phẩm, giáo dục và giải trí.
Robot dò line thường được trang bị các cảm biến quang học để theo dõi đường
viền và xác định vị trí của robot trên bề mặt. Các cảm biến quang học này thường
được đặt ở đầu robot và giúp robot theo dõi đường viền bằng cách phát hiện sự
khác biệt giữa màu sắc của đường viền và màu sắc của bề mặt xung quanh.
Khi di chuyển trên đường viền, robot dò line thường sử dụng một số thuật toán
điều khiển để duy trì hướng di chuyển trên đường viền và giữ cho vận tốc di
chuyển ở mức độ ổn định. Nhiều robot dò line hiện nay đã được trang bị các hệ
thống điều khiển tự động thông minh để đảm bảo tính chính xác và hiệu quả của
việc theo dõi đường viền.
Robot dò line có nhiều ứng dụng trong các quá trình sản xuất công nghiệp. Chúng
thường được sử dụng để di chuyển và chuyển đổi vật phẩm từ một vị trí đến vị trí
khác trong quá trình sản xuất, giúp tiết kiệm thời gian và năng lượng. Robot dò
line cũng được sử dụng trong các quá trình kiểm tra chất lượng để đảm bảo rằng
các sản phẩm đạt chuẩn và không bị lỗi.
Robot dò line cũng có thể được sử dụng trong các ứng dụng dịch vụ thực phẩm
như nhà hàng và cửa hàng thực phẩm tự động. Chúng có thể được lập trình để di
chuyển trên các dòng sản phẩm thực phẩm và đảm bảo rằng sản phẩm đến được
với khách hàng đúng và đầy đủ.
Ngoài ra, robot dò line cũng có thể được sử dụng trong giáo dục và giải trí. Chúng
có thể được sử dụng trong các cuộc thi robot để đua trên đường viền và là một
công cụ học tập tuyệt vời để giúp học sinh, sinh viên học về lập trình và điều khiển
robot. Ngoài ra, robot dò line cũng có thể được sử dụng trong các phòng chơi trẻ
em và khu vui chơi giải trí, giúp trẻ em có thể tận hưởng thời gian vui chơi và học
tập cách điều khiển một robot.
1.5 Kết luận :
Trong bài báo cáo này Robot dò line được thiết kế để tự động di chuyển trên
đường kẻ màu đen hoặc trắng được thiết kế sẵn. Ý tưởng đề xuất trong bài viết này
là bằng cách sử dụng các cảm biến để nhận diện và đi đúng theo vạch kẻ
của chúng với mục đích là đi đến vị trí đề ra ban đầu.
Trang - 10 -
Nó là một phương tiện robot hoạt động trên Bộ vi điều khiển Arduino
và sử dụng cảm biến hồng ngoại, cảm biến khoảng cách để phát hiện chướng ngại
vật. Dù đây chỉ là 1 ứng dụng rất nhỏ, nhưng đây chính là cơ sở để phát triển
những dự án lớn và tối tân hơn.
1.2.3 Hoạt động
Sản phẩm là một chiếc xe tự động có chức năng tự di chuyển đến điểm mong

Trang - 11 -
muốn trên sân. Với các chế độ 1,2.. chiếc xe có thể thực hiện được đa dạng trong
việc di chuyển và có nhiều hướng phát triển thêm sau này.

Hình 1.2 Quang trở


Khi có ánh sáng thì điện trở của quang trở sẽ giảm và ngược lại, điện trở
của nó thay đổi cỡ từ 5k (khi có ánh sáng) đến 100k (không có ánh sáng), ta sử
dụng 2 led phát làm nguồn sáng cho nó. Khi gặp vạch trắng, ánh sáng sẽ phản xạ
lên quang trở làm điện trở nó giảm xuống và khi gặp nền đen thì ánh sáng sẽ khó
phản xạ nên quang trở nhận ít ánh sáng nên trở nó tăng. Từ đó dựa vào 8 quang
trở, robot có thể phân biệt được vạch trắng (dưới sự hỗ trợ của opamp so sánh).

Hình 1.3 Nguyên lý hoạt động của quang trở


Qua opam so sánh tín hiệu nhận được được gửi về mạch xử lý trung tâm, ở
đây Arduino Uno R3 xử lý tính hiệu và đưa ra các điều khiển tùy vào người lập
trình.

1 2 3 4 5 6 7 8
Hình 1.4 Cách bố trí cảm biến
Trang - 12 -
Dựa vào nững nhận biết vạch của cảm biến mà từ đó xe có thể rẽ trái, rẽ phải.
 Để rẽ trái: cảm biến 5,6 có tính hiệu hoặc cảm biến 5,6,7 có tính hiệu.
Khi rẽ trái động cơ trái chạy chậm lại động cơ phải chạy nhanh hơn. Khi
rẽ trái ở ngã tư động cơ phải quay thuận,động cơ trái quay ngược.
 Để rẽ phải: cảm biến 3,4 có tính hiệu hoặc cảm biến 2,3,4 có tính hiệu.
Khi rẽ phải động cơ phải chạy chậm, động cơ trái chạy nhanh hơn. Khi rẽ
phải ở ngã tư động cơ trái quay thuận, động cơ phải quay ngược.
 Để chạy thẳng: hai cảm biến 4,5 có tính hiệu. Hai động cơ trái phải chạy
cùng tốc độ.
 Nhận biết số ngã tư 1 hoặc 8 cảm biến đồng thời có tính hiệu.

Trang - 13 -
CHƯƠNG II: THIẾT KẾ VÀ TÌM HIỂU LINH KIỆN CỦA HỆ THỐNG
2.1 Lựa chọn giải pháp
Sử dụng thuật toán PID áp dụng vào khối điều khiển Arduino UNO R3
thông qua bộ cảm biến dò đường để xuất tín hiệu cho Module L298 điều khiển 2
bánh xe đi đúng vạch.
2.2 Giải pháp thiết kế
2.2.1 Sơ đồ khối
Để thực hiện được thiết kế và chế tạo robot dò đường sử dụng thuật toán
PID em đưa ra sơ đồ thiết kế như sau:

Hình 2.1 Sơ đồ khối robot dò đường


2.2.2 Phân tích chức năng các khối
- Khối cấp nguồn: Khối cấp nguồn 5VDC có chức năng cấp nguồn 5V cho
các khối có thể hoạt động được.
Khối cấp nguồn 12VDC có chức năng cấp nguồn 12V cho khối điều khiển động
cơ có thể hoạt động được.

Trang - 14 -
- Khối cảm biến: Sử dụng module cảm biến dò đường để nhận tín hiệu từ bên
ngoài xong chuyển tín hiệu sang khối so sánh.
- Khối so sánh: Nhận tín hiệu từ khối cảm biến, so sánh và khếch đại tín hiệu
để đưa ra mức logic 0 tương ứng với trạng thái có vạch và mức logic 1
tương ứng với trạng thái không vạch rồi chuyển tín hiệu cho khối điều
khiển trung tâm xử lý.
- Khối điều khiển trung tâm: Sử dụng Arduino Uno R3, nhận tín hiệu từ khối
so sánh rồi t nh toán để xác định trạng thái robot đang di chuyển và xuất
ra tín hiệu xung chuyển qua khối điều khiển động cơ.
- Khối điều khiển động cơ: Sử dụng module L298 để nhận tín hiệu từ khối
điều khiển trung tâm rồi xử lý tín hiệu để điều hướng xe di chuyển đúng.
2.2.3 Nguyên lý hoạt động của hệ thống cảm biến
Chúng ta sẽ sử dụng thuật so sánh giải bài toán
Tín hiệu từ cảm biến được đưa qua mạch so sánh và khếch đại tín hiệu để đưa ra
mức logic “0” ứng với trạng thái có vạch và mức logic “1” ứng với trạng thái
không có vạch. Dựa vào tín hiệu từ khối cảm biến, khối điều khiển trung tâm sẽ
t nh toán để xác định trạng thái robot đang di chuyển và xuất ra tín hiệu xung
PWM để điều khiển các động cơ thông qua mạch điều khiển động cơ sử dụng IC
L298. Việc đó sẽ giúp robot tự di chuyển theo quỹ đạo xác định trước.
Điều này giúp cho robot có khả năng dò đường một cách chính xác và
hiệu quả.
Hiện nay, thị trường có rất nhiều loại cảm biến khác nhau. Chúng giúp cho robot
có khả năng dò đường một cách chính xác và hiệu quả như, cảm biến la bàn điện
từ, cảm biến tiếp xúc, cảm biến quang, bộ giải mã encoder, hệ thống định vị toàn
cầu GPS, camera quan sát kết hợp công nghệ xử lý ảnh… Trong phạm vi bài
báo này, tác giả sử dụng các cặp cảm biến quang được đặt cạnh nhau theo hàng
ngang dưới thân của robot, vì robot thực nghiệm di chuyển theo vạch kẻ màu
đen trên nền màu trắng.

Nguyên lý hoạt động của mạch cảm biến thu phát quang dựa trên sự hấp thụ
và phản xạ ánh sáng của các màu sắc khác nhau của nền và đường đi. Vạch màu
trắng có khả năng phản xạ ánh sáng tốt hơn vạch màu đen. Khi đó, quang trở sẽ
nhận được các tia sáng phản xạ có cường độ lớn làm cho giá trị điện trở giảm
khá nhiều, dẫn đến điện áp trên quang trở là Vmin sẽ thấp. Ngược lại, vạch màu
Trang - 15 -
đen có khả năng phản xạ ánh sáng kém hơn vạch màu trắng. Khi đó, quang trở
nhận được các tia sáng phản xạ có cường độ thấp làm cho giá trị điện trở của
quang trở giảm kh ng đáng kể, dẫn đến điện áp trên quang trở lúc này là V max sẽ
cao.

Hình 3.b thể hiện sơ đồ mạch nguyên lý của cảm biến. Điện áp trên biến trở V ref,
được tính theo công thức (1), dùng để so sánh với điện áp từ quang trở để
chuyển đổi thành các mức logic 0 tương ứng với 0V dc hoặc mức logic 1 tương
ứng với 5Vdc mà vi điều khiển có thể hiểu được.

a) Nguyên lý hoạt động (b)Sơ đồ mạch nguyên lý

Hình 2.2 Mạch cảm biến LED - quang trở


Khối điều khiển động cơ có nhiệm vụ chuyển đổi tín hiệu điều khiển từ khối
điều khiển trung tâm thành tín hiệu điện áp để thay đổi tốc độ và chiều quay của
động cơ. Trên thực tế, rất nhiều mạch điều khiển động cơ có thể đảm nhận cả hai
nhiệm vụ này như: mạch cầu H dùng BJT hoặc FET, mạch 1 FET + 1 relay, IC
298, IC TD18200… Tùy vào ứng dụng cụ thể, với các giá trị dòng áp theo yêu
cầu mà lựa chọn mạch điều khiển động cơ cho phù hợp. Trong bài báo này, tác
giả sử dụng IC L298 để thiết kế và chế tạo cho mạch điều khiển động cơ. IC này
được tích hợp 2 mạch cầu H, có thể hoạt động ở điện áp tối đa 46Vdc và dòng
điện định mức tổng cộng là 5A. Hơn nữa, L298 có khả năng đảo chiều quay và
thay đổi tốc độ quay của động cơ một cách dễ dàng bằng cách sử dụng phương
pháp PWM. Sơ đồ mạch nguyên lý của khối điều khiển động cơ được thiết kế
như hình 2.3.

Trang - 16 -
Hình 2.3 Mạch điều khiển motor sử dụng L298
2.3 Lựa chọn linh kiện
2.3.1 Khối điều khiển
2.3.1.1 Giới thiệu chung Arduino
Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càng
chứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của
người dùng trong cộng đồng nguồn mở (open- source). Tuy nhiên tại Việt Nam
Arduino vẫn còn chưa được biết đến nhiều.
Arduino cơ bản là một nền tảng mẫu mở về điện tử (open-source
electronic sprototyping platform) được tạo thành từ phần cứng lẫn phần mềm.
Về mặt kỹ thuật có thể coi Arduino là 1 bộ điều khiển logic có thể lập trình
được. Đơn giản hơn, Arduino là một thiết bị có thể tương tác với ngoại cảnh
thông qua các cảm biền và hành vi được lập trình sẵn. Với thiết bị này, việc lắp
ráp và điều khiển các thiết bị điện tử sẽ dễ dàng hơn bao giờ hết. Arduino được
phát triển nhằm đơn giản hóa việc thiết kế, lắp ráp linh kiện điện tử cũng như lập
trình trên vi xử lí và mọi người có thể tiếp cận dễ dàng hơn với thiết bị điện tử
mà không cần nhiều về kiến thức điện tử và thời gian. Sau đây là nhưng thế
mạnh của Arduino so với các nền tảng vi điều khiển khác:
- Chạy trên đa nền tảng: Việc lập trình Arduino có thể thể thực hiện trên
các hệ điều hành khác nhau như Windows, Mac Os, Linux trên Desktop,

Trang - 17 -
Android trên di động.
- Ngôn ngữ lập trình đơn giản dễ hiểu.
- Nền tảng mở: Arduino được phát triển dựa trên nguồn mở nên phần
mềm chạy trên Arduino được chia s dễ dàng và tích hợp vào các nền tảng khác
nhau.
- Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng
module nên việc mở rộng phần cứng cũng dễ dàng hơn.
- Đơn giản và nhanh: Rất dễ dàng lắp ráp, lập trình và sử dụng thiết bị.
- Dễ dàng chia s : Mọi người dễ dàng chia s mã nguồn với nhau mà
không lo lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng.
Arduino có rất nhiều module, mỗi module được phát triển cho một ứng
dụng. Về mặt chức năng, các bo mạch Arduino được chia thành hai loại, loại bo
mạch chính có chip Atmega và loại mở rộng thêm chức năng cho bo mạch
chính. Các bo mạch chính về cơ bản là giống nhau về chức năng, tuy nhiên về
mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, hay k ch thước có sự khác
nhau. Một số bo có trang bị thêm các t nh năng kết nối như Ethernet và
Bluetooth. Các bo mở rộng chủ yếu mở rộng thêm một số t nh năng cho bo
mạch chính. Ví dụ như t nh năng kết nối Ethernet, Wireless, điều khiển động cơ.
2.3.1.2 Bo mạch Arduino Uno R3
Sử dụng chip AVR Atmega328 của Atmel. Mạch arduino được lắp ráp từ
các linh kiện dễ tìm và hướng đến đối tượng người dùng đa dạng.
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là Atmega8,
Atmega168, Atmega328. Bộ não này có thể xử lí những tác vụ đơn giản như
điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một
trạm đo nhiệt độ, độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng
khác.
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp
nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V.
Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu không có sẵn nguồn
từ cổng USB. Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng

Trang - 18 -
Arduino
UNO.

Hình 2.4 Arduino UNO R3


Bảng 2. 1 Đặc điểm kỹ thuật Arduino Uno R3
Vi điều khiển Atmega328 (họ 8bit)
Điện áp hoạt động 5V – DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ 30mA
Điện áp vào khuyên dùng 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 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân
30 mA
I/O
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
32 KB (Atmega328) với 0.5KB dùng bởi
Bộ nhớ flash
bootloader
SRAM 2 KB (Atmega328)
EEPROM 1 KB (Atmega328)
Chức năng từng chân:
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi

Trang - 19 -
dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải
được nối với nhau.
5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
3.3V: 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 UNO, bạn nối cực
dương của nguồn với chân này và cực âm của nguồn với chân GND.
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể
được đo ở chân này. Và dĩ nhiên nó lu n là 5V. Mặc dù vậy kh ng được lấy
nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp
nguồn.
RESET: 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Ω.
Các cổng vào/ra: Arduino UNO có 14 chân digital dùng để đọc hoặc
xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa
trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt
ngay trong vi điều khiển Atmega328 (mặc định thì các điện trở này kh ng được
kết nối). Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận
(receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị
khác thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là
kết nối Serial không dây. Nếu không cần giao tiếp Serial, không nên sử dụng 2
chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM
với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm
analogWrite(). Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân
này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân
khác.
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài
các chức năng th ng thường, 4 chân này còn dùng để truyền phát dữ liệu bằng
giao thức SPI với các thiết bị khác.

Trang - 20 -
LED 13: trên Arduino UNO có 1 đèn led màu cam (k hiệu chữ L). Khi
bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số
13. Khi chân này được người dùng sử dụng, LED sẽ sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín
hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân
AREF trên board, có thể để đưa vào điện áp tham chiếu khi sử dụng các chân
analog. Tức là nếu cấp điện áp 2.5V vào chân này thì có thể dùng các chân
analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao
tiếp I2C/TWI với các thiết bị khác.
Atmega328 là một ch p vi điều khiển được sản xuất bời hãng Atmel thuộc
họ MegaAVR có sức mạnh hơn hẳn Atmega8. Atmega 328 là một bộ vi điều
khiển 8 bít dựa trên kiến trúc RISC bộ nhớ chương trình 32KB ISP flash có thể
ghi xóa hàng nghìn lần, 1KB EEPROM, một bộ nhớ RAM vô cùng lớn trong thế
giới vi xử lý 8 bít (2KB SRAM)

Hình 2.5 Vi xử lý ATmega328

Hình 2.6 Sơ đồ chân ATmega328


Các thông số chính của vi điều khiển Atmega328:
- Bộ vi xử lý.
- Giao diện SPI đồng bộ.

Trang - 21 -
- Kiến trúc: AVR 8bit.
- Xung nhịp lớn nhất: 20Mhz.
- Bộ nhớ chương trình (FLASH): 32KB.
- Bộ nhớ EEPROM: 1KB.
- Điện áp hoạt động rộng: 1.8V – 5.5V.
- Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit.
- Số kênh xung PWM: 6 kênh (1timer 2 kênh.

2.3.2 Module điều khiển động cơ L293D


IC L293D là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong.
Với điện áp làm tăng công suất đầu ra từ 5V – 47V , dòng lên đến 4A, L293 rất
thích hợp trong những ứng dụng công suất nhỏ như động cơ DC loại vừa .
2.3.2.1 Đặc điểm của module điều khiển động cơ L293D

Hình 2.7 Module L293D


Module điều khiển động cơ L293 là một shield mở rộng cho các board
arduino, dùng để điều khiển các loại động cơ DC, động cơ bước và động cơ
servo.
Module được thiết kế gọn gàng, đẹp mắt và tương th ch hoàn toàn với các
board Arduino: arduino uno r3, arduino leonardo, arduino mega2560, giúp bạn
có thể sử dụng và điều khiển một cách dễ dàng và nhanh chóng.
Module điều khiển động cơ L293 sử dụng 2 IC cầu H L293D hoàn chỉnh
với các chế độ bảo vệ và 1 IC logic 74HC595 để điều khiển các động cơ.
Module có thể điều khiển nhiều loại motor khác nhau như step motor,
servo motor, motor DC, với mức áp lên đến 36V, dòng tối đa 600mA cho mỗi
kênh điều khiển.
lại các dòng điện cảm ứng từ việc khởi động/ tắt động cơ.

Trang - 22 -
2.3.2.2 Thông số kỹ thuật của module điều khiển động cơ L293D
Điện áp làm việc : 9~24V ( nên dùng 12V cho ổn định)
Dòng kh ng tải: 10mA
2 jack cắm điều kiển 2 động cơ
4 ngõ ra điều kiển 4 động cơ độc lập
Mạch t ch hợp điện trở nối GND giúp cho mạch kh ng tự chạy khi nối
board
2.3.2.3 Chân kết nối của module điều khiển động cơ L293D
4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7,
10, 12 của L298. Đây là các chân nhận tín hiệu điều khiển.
2 jack cắm điều khiển 2 động cơ RC servo.
4 ngõ ra điều khiển đến 4 động cơ DC độc lập.
2 động cơ step motor loại đơn cực (unipolar) hoặc lưỡng cực (bipolar)
Mạch t ch hợp điện trở nối GND giúp cho kh ng tự chạy khi khởi động
board.
Các chân mà Module điều khiển động cơ L293 sử dụng là:
Chân điều khiển 2 RC servo được kết nối với chân số 9 và 10. Nguồn
cung cấp được lấy trực tiếp từ board Arduino
Motor 1 nối với chân 11
Motor 2 nối với chân 3
Motor 3 nối với chân 5
Motor 4 nối với chân 6
Chân 4, 7, 8, 12 dùng điều khiển motor th ng qua IC 74HC595
Cần lưu ý đến cách điều khiển chiều quay với L293D:
Khi ENA = 0: Động cơ kh ng quay với mọi đầu vào.
Khi ENA = 1:
INT1 = 1; INT2 = 0: Động cơ quay thuận.
INT1 = 0; INT2 = 1: Động cơ quay nghịch.
INT1 = INT2: Động cơ dùng ngay tức thì.

Trang - 23 -
2.3.3 Module cảm biến hông ngoại TCRT5000

Hình 2.8 Chân kết nối RC522


2.3.3.1 Giới thiệu module cảm biến hồng ngoại TCRT5000
Cảm biến dò line có thể dùng để phát hiện line trắng và đen. Mạch sử
dụng cảm biến hồng ngoại TCRT5000 với khoảng cách phát hiện từ 1~25mm
giúp dễ dàng trong quá trình cài đặt module lên thiết bị. Có thể dễ dàng điều
chỉnh độ nhạy của cảm biến qua biến trở được thiết kế sẵn trên board. Mạch
thích hợp dùng cho các thiết bị cần di chuyển theo line, thiết bị phát hiện màu
trắng, đen.
2.3.3.2 Thông số kỹ thuật của module cảm biến hồng ngoại TCRT5000
Nguồn cung cấp: 5V.
Mạch sử dụng chip so sánh LM393.
Dòng điện tiêu thụ: <10mA.
Dải nhiệt độ hoạt động: 0oC ~ 50oC.
Ngõ ra giao tiếp: 4 dây (VCC, GND, DO, AO).
Mức tín hiệu ngõ ra: TTL.
K ch thước: 3.2 x 1.4mm.

Trang - 24 -
2.3.4 Động cơ giảm tốc DC

Hình 2.9 Động cơ DC giảm tốc


2.3.4.1 Giới thiệu động cơ DC giảm tốc
Động cơ DC giảm tốc V1 là loại được lựa chọn và sử dụng nhiều nhất
hiện nay cho các thiết kế Robot đơn giản. Động cơ DC giảm tốc V1 có chất
lượng và giá thành vừa phải cùng với khả năng dễ lắp ráp của nó đem đến chi
phí tiết kiệm và sự tiện dụng cho người sử dụng, các bạn khi mua động cơ giàm
tốc V1 có thể mua thêm gá bắt động cơ vào thân Robot cũng như bánh xe tương
thích.
2.3.4.2 Thông số kỹ thuật của động cơ DC giảm tốc
Điện áp hoạt động: 3 – 9 VDC.
Dòng tiêu thụ: 110 – 140 mA.
Tốc độ không tải (vòng / Phút).
Tại 3VDC: 50 Vòng/Phút.
Tại 5VDC: 83 Vòng/Phút.
2.3.5 LED (Light Emitting Diode)
Là các điốt có khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại.
Cũng giống như điốt, LED được cấu tạo từ một bán dẫn loại P ghép với một bán
dẫn loại N. Tương tự như bóng đèn tròn dùng sợi đốt nhưng kh ng phải chiếu
sáng bằng sợi đốt, đèn LED được coi là loại đèn tiết kiệm điện năng nhất, tạo ra
hiệu suất ánh sáng tốt nhất, tỏa nhiệt t hơn.
Trang - 25 -
Hình 2.10 LED
2.3.6 Nguồn Adapter 12V2A

Hình 2.11 Nguồn adapter 12v2A


Là nguồn chuyển đổi từ AC 220V sang 12V DC.
Điện áp vào: AC100-240V (50-60HZ)
Điện áp ra: DC12V 2000mA
Loại Jack cắm: Loại tròn.
Có chức năng cung cấp nguồn cho toàn mạch hoạt động.

Trang - 26 -
Trang - 27 -
CHƯƠNG IV: THIẾT KẾ CƠ KHÍ

Đề xuất sơ đồ nguyên lý
Do robot chỉ cần bám theo đường cong bán kính lớn (R = 500mm), khả năng đổi hướng độ
ngột tại các vị trí line gãy khúc đồng thời kết cấu xe phải đơn giản, giá thành chế tạo phù
hợp. Vì thế sơ đồ nguyên lý loại 2 bánh sử dụng bánh đa hướng được đề xuất

Sơ đồ cấu trúc của xe

Sơ đồ phân bố linh kiện của xe


Các thiết bị trên xe :
STT Tên thiết bị Số lượng
1 Bánh xe dẫn động 2
2 Động cơ vàng 2
3 Board mạch tích hợp 1
4 Mạch 4 cảm biến 1
5 Hộp pin 1
6 Bánh xe dẫn hướng 1

Hình ảnh mô hình 3D xe :


Trang - 28 -
Mô hình 3D robot xe dò line
Lựa chọn bánh xe :

 Lựa chọn bánh chủ động

Từ giá trị vận tốc lớn nhất ở đầu bài là 1 (m/s), cũng như tham khảo những thiết kế của các đội thi
các cuộc thi mobile robot trên thế giới thì ta chọn đường kính bánh xe dẫn động là 80 mm.
Bánh xe được chọn để làm mô hình là V2 80mm khớp lục giác 12mm.

Bánh dẫn động


 Lựa chọn bánh bị động

Hai loại bánh bị động thường được sử dụng cho mobile robot là bánh mắt trâu và bánh caster. Tuy
nhiên đặc điểm của bánh caster là khoảng cách giữa trục quay và trục bánh gây ra hiện tượng
shopping-cart làm ảnh hưởng đến phương trình động học của xe. Để tránh hiện tượng này và tận
dụng được đặc điểm của sơ đồ nguyên lý, bánh mắt trâu được lựa chọn làm bánh bị động.

Trang - 29 -
Tính toán lựa chọn động cơ :
Để xe chuyển động, động cơ có vai trò cung cấp moment cho các bánh. Quá trình chuyển động này
chịu ảnh hưởng đáng kể của khối lượng xe và ma sát giữa bánh xe và mặt đường. Mô hình toán cho
một bánh xe được thể hiện

Hình 3.2 Mô hình toán của bánh xe

Moment bánh xe có thể tính gần đúng:


1 (3.1)
l= mR2
2
Cân bằng moment quanh tâm bánh xe, ta có:
t − FmsR = Iy (3.2)
 t = Iy + FmsR
Điều kiện để bánh xe không bị trượt khi động cơ quay, monent t phải thỏa điều kiện sau :
1
t ≤ Iy + u ( M + m) gR
2
t ≤ 1 mR2y + u (1 M + m) gR
2 2
Trong đó:
(kg.m2): moment quán tính của bánh xe. (N.m): moment.
(kg): khối lượng của bánh xe. (m/s2): gia tốc dài mong muốn.
(kg): khối lượng thân xe. (m/s2): gia tốc trọng trường.
(m): bán kính bánh xe. (W): công suất mỗi động cơ.
Fms (N): lực ma sát. (rad/s): vận tốc góc.
(rad/s2): gia tốc góc.
Ta dựa vào các thông số đầu vào có sẵn cũng như ước lượng, để có thể tính toán được các
thông số cần thiết của động cơ để thỏa mãn được các yêu cầu đặt ra.
Bảng 3.1 Các thông số đầu vào của xe
Vận tốc lớn nhất của xe 1 (m/s)
Thời gian tăng tốc mong muốn 1 (s)
Bán kính bánh xe 40 (mm)
Khối lượng bánh xe 0,025 (kg)

Trang - 30 -
Hệ số ma sát 0,8
Hệ số an toàn 2

Bảng 3.2 Các thông số yêu cầu của động cơ


Vận tốc lớn nhất 238,73 vg/ph
Moment cần thiết để xe chuyển động 41,02 Nmm
Moment trượt 321,79 Nmm
Công suất mỗi động cơ 2,05 (w)

Với thông số động cơ đã được tính như trên, động cơ GA25 V1 (𝜔 = 320 vòng/phút,
𝑃= 13,2W) được lựa chọn.
Tính toán lại vận tốc:
V = (320/60).0,08.π = 1,34 (m/s)
Với động cơ lựa chọn vẫn thỏa ta chọn động cơ phù hợp
4.3Kích thước thân xe
4.3.1 Chiều cao trọng tâm xe

Hình 3.3 Mô hình toán khi xe chuyển hướng


Trong đó:
T: trọng tâm xe. F lt: lực li tâm.
Fms: lực ma sát. P: trọng lực.
C: tâm quay khi xe lật. ℎ: chiều cao trọng tâm xe.
Để tránh lật, moment sinh ra do trọng lực quanh tâm quay C phải lớn hơn moment của lực
li tâm:

Trang - 31 -
m V2 b
R ℎ −m g 2 ≤ 0
gbR
ℎ≤
2v2
Trong đó:
Gia tốc trọng trường g =
9,81m/s2 Bề rộng xe : b=
0,17 m
Bán kính cong của đường đua R = 0,5m
Vận tốc dài tối đa v = 1m/s
Do đó: : ℎ ≤ 41,69cm
4.4 Các kích thước cơ sở của xe
Kích thước bao của xe phụ thuộc vào kích thước và việc sắp xếp các linh kiện điện, điện
tử, khoảng cách được mô phỏng giữa sensor và các bánh chủ động. Ngoài ra tỉ lệ kích thước
dài-rộng của xe nên được chọn theo tỉ số √5 nhằm giảm thiểu tối đa ảnh hưởng của các yếu
tố động lực học lên xe.

Ta tính toán khoảng cách giữa 2 bánh chủ động: Đặt bài toán xe đang chạy qua khúc
cong có bán kính R = 500mm, với vận tốc 1 m/s. Tìm khoảng cách nhỏ nhất giữa 2 bánh xe
chủ động để xe không bị lật.

Z
Y
F
X
𝐹⃗⃗𝑙⃗
l
𝑡
P
R=500
mm

Hình 3.4 Sơ đồ tính khoảng cách giữa hai tâm bánh xe dẫn động
Từ việc ước lượng được các kích thước của các thành phần trên xe, Ước lượng được
chiều cao xe là 80 mm. Ước lượng điểm G (trọng tâm xe) nằm ở vị trí cách mặt đất h = 30
mm.

b: là khoảng các giữa tâm 2 bánh xe dẫn động.


Trang - 32 -
Kết hợp với các kích thước phân bố linh kiện ta chọn b = 170 mm và chiều dài cơ sở của
xe là 190 mm.
4.6 Tính toán dung sai độ đồng trục hai động cơ
4.6.1 Sơ đồ và phương pháp kiểm tra độ đồng trục của 2 động cơ

Hình 3.10 Sơ đồ kiểm tra độ đồng trục của 2 động cơ

Phương pháp kiểm tra: Ta lồng hai trục chuẩn A và B vào hai lỗ, đầu đo rà liên tục trên một tiết
diện vuông góc với trục B. Ta sẽ đọc được khoảng cách lớn nhất và nhỏ nhất. Để đảm bảo chính
xác cần đo trên 2 tiết diện xa nhất có thể nhờ dịch chuyển tì chuẩn bằng vòng hãm C

Trang - 33 -
CHƯƠNG III: PHÂN TÍCH THUẬT TOÁN PID VÀ ỨNG
DỤNG TRONG ROBOT DÒ ĐƯỜNG
3.1 Giới thiệu
Thuật toán dò đường thường sử dụng trong thiết kế các robot dò đường là
đặt một dãy các cảm biến sắp xếp đều nhau ph a trước robot. Việc lệch đường đi
trong quá trình di chuyển sẽ được robot phát hiện thông qua các trạng thái của
cảm biến, cụ thể: nếu hai cảm biến ở giữa cảm nhận được đường đi thì robot
đang tiến thẳng về ph a trước, nếu các cảm biến bên phải cảm nhận được đường
đi thì robot di chuyển lệch về bên trái và ngược lại nếu các cảm biến bên trái
cảm nhận được đường đi thì robot đang di chuyển lệch sang phải. Thuật toán
này được ứng dụng khá thành công trong việc thiết kế robot dò đường.
3.2 Định nghĩa thuật toán PID
Bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral
Derivative) là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát
được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều
khiển PID là bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển
phản hồi.
Bộ điều khiển PID sẽ tính toán giá trị "sai số" là hiệu số giữa giá trị
đo thông số biến đổi và giá trị đặt mong muốn. Bộ điều khiển sẽ thực hiện giảm
tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào.
Trong trường hợp không có kiến thức cơ bản (mô hình toán học) về hệ
thống điều khiển thì bộ điều khiển PID là sẽ bộ điều khiển tốt nhất. Tuy nhiên,
để đạt được kết quả tốt nhất, các thông số PID sử dụng trong tính toán phải điều
chỉnh theo tính chất của hệ thống, trong khi kiểu điều khiển là giống nhau, các
thông số phải phụ thuộc vào đặc thù của hệ thống.
Giải thuật tính toán bộ điều khiển PID bao gồm 3 thông số riêng biệt, do
đó đ i khi nó còn được gọi là điều khiển ba khâu, các giá trị tỉ lệ, tích
phân và đạo hàm, viết tắt là P, I, và D. Giá trị tỉ lệ xác định tác động của sai số
hiện tại, giá trị tích phân xác định tác động của tổng các sai số quá khứ, và giá
Trang - 34 -
trị vi phân xác định tác động của tốc độ biến đổi sai số.

Trang - 35 -
Tổng chập của ba tác động này dùng để điều chỉnh quá trình thông qua
một phần tử điều khiển như vị trí của van điều khiển hay bộ nguồn của phần tử
gia nhiệt. Nhờ vậy, những giá trị này có thể làm sáng tỏ về quan hệ thời
gian: (P) phụ thuộc vào sai số hiện tại, (I) phụ thuộc vào t ch lũy các sai số quá
khứ, và (D) dự đoán các sai số tương lai, dựa vào tốc độ thay đổi hiện tại.
3.3 Phương pháp điều chế độ rộng xung (PWM)
Tốc độ quay của động cơ một chiều tỉ lệ thuận với điện áp đầu vào. Do
đó, cách đơn giản nhất để điều khiển tốc độ quay của rotor là thay đổi mức điện
áp đặt vào động cơ.
Nguyên tắc cơ bản để thay đổi tốc độ quay động cơ của phương pháp
PWM là giữ nguyên giá trị điện áp vào và thay đổi thời gian đặt điện áp vào
động cơ. Điều này có nghĩa, thời gian mức cao T on trong một chu kỳ của xung
ngõ vào động cơ càng lớn thì điện áp trung bình đặt vào động cơ càng cao,
ngược lại thời gian mức thấp T off trong một chu kỳ của xung ngõ vào động cơ
càng lớn điện áp trung bình đặt vào động cơ càng thấp (hình 3.1).
Đại lượng mô tả mối quan hệ giữa khoảng thời gian T on và Toff được gọi là độ
rộng xung (duty_cycle), được tính theo công thức:

(a) Giản đồ độ rộng xung (b) Giản đồ xung với theo duty_cycle
Hình 3.1 Giản đồ thời gian của xung PWM
Thí dụ: Trong hình 3.1 (b), nếu chu kỳ xung 1kHz; thời gian xung mức cao T on
là 0.3ms và thời gian xung mức thấp T off là 0.7ms. Biên độ xung là 12Vdc. Tốc
độ quay của rotor là 1500 vòng/phút. Theo công thức: duty_cycle = 30% và điện
áp trung bình đặt vào động cơ là 12 x 30% = 3.6Vdc. Tốc độ quay của rotor là

Trang - 36 -
1500 x 30% = 450 vòng/phút.
3.4 Giải thuật điều khiển vi tích phân tỉ lệ (PID)
Giải thuật điều khiển vi tích phân tỉ lệ hiệu chỉnh sai số giữa giá trị biến
đo được và giá trị mong muốn đạt đến bằng cách tính toán và xuất ra một "hành
động điều chỉnh" nhanh chóng để giữ cho lỗi ở mức nhỏ nhất có thể được. Bộ
điều khiển này bao gồm 3 thống số: Proportional (P), Integral (I) và Derivative
(D), được thể hiện qua sơ đồ khối và phương trình tổng quát như hình 3.2:

Hình 3.2 Sơ đồ khối giải thuật PID


Phương trình PID tổng quát:

- Hàm lỗi e(t) tại thời điểm t: độ lệch giữa giá trị mong muốn và
giá trị đo được:
e(t) = Vset - Vmo(t)
Trong đó:
Vset : Setpoint Value (giá trị điện áp mong muốn).
Vmo (t) : Measurable Output Value (giá trị điện áp đo được
tại thời điểm t).
Proportional P(t) (hàm tỉ lệ): điều khiển tỉ lệ với giá trị lỗi hiện tại.
P(t) = Kp.e(t)
Trong đó:
Kp: hằng số tỉ lệ, tham số dùng để tinh chỉnh.
Integral I(t) (hàm t ch phân): điều khiển tương ứng với mức lỗi được
t ch lũy theo thời gian.
Trang - 37 -
Trong đó:
Ki: hằng số điều chỉnh hàm t ch phân.
Derivative D(t) (hàm vi phân): điều khiển tương ứng với tốc độ
thay đổi của lỗi, hay độ dốc lỗi theo thời gian.

Trong đó:
Kd: hằng số điều chỉnh hàm vi phân.
3.5 Ứng dụng giải thuật trên robot dò đƣờng
3.5.1 Mô hình PID áp dụng cho robot dò đường
Giải thuật PID được tích hợp vào trong giải thuật điều khiển robot dò
đường để tính toán và xuất ra các giá trị PWM điều khiển 2 động cơ gắn với 2
bánh sau của robot dựa vào độ sai lệch giữa giá trị đo đạc ngõ vào và giá trị
mong muốn. Độ sai lệch, hay còn gọi là giá trị lỗi, được tính toán trong giải
thuật PID là độ lệch giữa trạng thái hiện tại của robot so với đường đi. Có nghĩa
là, độ sai lệch giữa giá trị hiện tại của bộ cảm biến so với giá trị của cảm biến
trong trường hợp robot chạy thẳng về ph a trước. Việc áp dụng giải thuật PID
trên robot dò đường sử dụng cảm biến quang được trình bày bằng một sơ đồ
khối như hình 3.3.

Trang - 38 -
Hình 3.3 Sơ đồ khối ứng dụng giải thuật PID vào robot dò đường
Trước khi đề cập ứng dụng giải thuật PID vào robot dò đường, tác giả đưa
ra các định nghĩa của các thuật ngữ liên quan.
Vị trí mục tiêu Vset: trung tâm của đường đi, vị trí mà ta muốn robot
hướng đến.
Vị trí thực tại Vmo(t): vị trí thực của robot, có thể lệch bên trái hoặc lệch
bên phải so với đường đi của robot.
Lỗi e(t): độ sai lệch giữa vị trí mục tiêu và vị trí thực của robot, có thể là
giá trị âm hoặc dương hoặc bằng 0, được tính theo công thức.
Hệ số Kp, Ki, Kd là các hằng số tương ứng được sử dụng để điều chỉnh
ảnh hưởng của các khâu tỉ lệ, khâu tích phân và khâu vi phân.
3.5.2 Giải thuật PID
Giải thuật PID là một chuỗi các phép toán để xác định các giá trị của khâu
điều khiển tỉ lệ, khâu điều khiển vi phân và khâu điều khiển t ch phân. Sau đó,
kết hợp các giá trị lại với nhau và xuất ra giá trị điều rộng xung PWM để điều
khiển 2 động cơ bánh sau của robot. Khâu điều khiển tỉ lệ t nh toán độ lệch của
robot, xác định được robot đang lệch phải hay lệch trái đường và xuất ra các giá
trị PWM để điều khiển hai động cơ giúp robot quay về vị trí mục tiêu.
Độ lệch : e(n) = Vmo(n) – Vset
Đáp ứng khâu tỉ lệ : P(n) = Kp . e(n)
Trong đó : n là số lần lấy mẫu

Trang - 39 -
Hằng số Kp càng lớn thì sự điều chỉnh càng lớn khi lỗi càng lớn.
Ngược lại, Kp càng nhỏ thì sẽ đáp ứng điều chỉnh nhỏ đối với lỗi.
Khâu điều khiển tích phân tính toán dựa trên sai số t ch lũy theo thời
gian. Robot càng lệch xa đường thì sai số t ch lũy càng lớn. Khâu này thể
hiện rằng trong quá khứ robot có bám đường đi tốt hay không.
Sai số tích lũy:
E(n)  e(n)

n1
Đáp ứng khâu t ch phân: I(n)= Ki . E(n) (11)
Trong đó : n là số lần lấy mẫu
Khâu vi phân tính toán dựa trên sai số hiện tại. Khâu này cho biết tốc
độ robot dao động qua lại của đường đi.
Tốc độ dao động: ∆e(n) = e(n) – e(n-1) (12)
Đáp ứng khâu vi phân: D(n) = Kd . ∆e(n) (13)
Cuối cùng, giá trị PWM để xuất ra điều khiển cho các động cơ điều
khiển hoạt động của robot sẽ là
PWM = P(n) + I(n) + D(n) = Kp . e(n) + Ki . I(n) + Kd . D(n)
 PWM = Kp . [Vmo(n) – Vset] + Ki .e(n)+ Kd . [e(n) – e(n-1)]
n1
3.5.3 Hiệu chỉnh thuật toán PID
Khi sử dụng giải thuật PID để điều khiển robot dò đường, kết quả ban đầu
cho thấy robot hoạt động không như mong đợi. Trường hợp này được lý giải là
do các giá trị của các hệ số Kp, Ki và Kd chưa phù hợp. Mỗi robot có một đặc
tính vật lý khác nhau do đó các hệ số này cũng phải thay đổi để phù hợp. Phần
tiếp theo, tác giả đề xuất các bước thực nghiệm đơn giản để xác định các hệ số
Kp, Ki và Kd.

Trang - 40 -
3.6 Giới thiệu phần mềm Arduino IDE
3.6.1 Giao diện

Hình 3.4 Giao diện phần mềm Arduino IDE


3.6.2 Vùng lệnh

Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Ph a dưới là
các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được
miêu tả như sau:

Hình 3.5 Các nút lệnh trong Arduino IDE

Trang - 41 -
3.6.3 Vùng thông báo (debug)

Hình 3.6 Vùng thông báo trong Arduino IDE


Những thông báo từ IDE sẽ được hiển thị tại đây. Để ý rằng góc dưới
cùng bên phải hiển thị loại board Arduino và cổng COM được sử dụng. Luôn
chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM, bạn sẽ không thể
upload được code của mình.

Chúng ta có thể tìm thấy một vài hướng dẫn khắc phục các lỗi thường gặp
khi lập trình Arduino tại Lỗi của Arduino? Và các lỗi thường gặp khi lập trình
Arduino

3.6.4 Một số lưu ý

Khi lập trình, cần chọn port (cổng kết nối khi gắn board vào) và board
(tên board mà bạn sử dụng). Giả sử, đang dùng mạch Arduino Uno, và khi gắn
board này vào máy tính bằng cáp USB nó được nhận là COM4 thì bạn chỉnh
như thế này là có thể lập trình được.

Hình 3.7 Chọn cổng kết nối cho Arduino Uno R3

Trang - 42 -
CHƢƠNG VI: THIẾT KẾ VÀ CHẾ TẠO ROBOT DÒ ĐƯỜNG
4.1 Thiết kế đò đường đi cho robot
Từ ý tưởng có sẵn sử dụng phần nềm Panit 3D để mô phỏng đường đi
giúp cho việc chế tạo đường đi của robot dò đường được dễ dàng hơn.

Hình 4.1 Mô phỏng đường đi trên phần nềm Paint 3D


4.2 Chế tạo và hoàn thành sân đi cho robot
4.2.1 Tấm Formex
Tấm formex ( hay còn gọi TẤM PVC FOAM, TẤM FORMEX, TẤM
FORM, TẤM FORMAT) được thay thế vật liệu gỗ trong quá trình thi công một
số ứng dụng như quảng cáo, trang trí, sản phẩm có đặc tính nhẹ có thể in ấn, in
pp bồi, bế, cắt tạo hình,chạm khắc lên một cách dễ dàng đồng thời có thể uốn
d o.
Sử dụng tấm formex để làm tấm nền cho robot dò đường.

Trang - 43 -
Hình 4.2 Tấm formex dùng làm tấm nền cho robot
4.2.2 Hệ thống đường line cho robot
Sử dụng băng keo cách nhiệt để làm đường line cho robot vì độ bám dính
tốt, sự đàn hồi của băng keo tốt, k ch thước phù hợp với k ch thước để làm
đường line cho robot.

Hình 4.3 Băng keo dùng làm đường line

Trang - 44 -
4.3 Hoàn thành Robot dò đƣờng

Hình 4.4 Sân đi sau khi chế tạo


4.4 Kết quả thực nghiệm trên mô hình robot
Việc thiết kế và chế tạo robot dò đường sử dụng thuật toán PID đã hoàn
thiện và đi vào sử dụng. Robot đã tự động nhận biết đường line để chạy với khả
năng hoạt động chính xác cao.

Hình 4.5 Hoàn thiện robot dò đường

Trang - 45 -
Phần tiếp theo là áp dụng phương pháp PWM kết hợp với giải thuật PID,
còn gọi là PWM vòng kín, vào việc thực nghiệm mô hình robot thật. Robot được
thiết kế và chế tạo sử dụng dãy 5 cặp cảm biến thu phát quang để dò đường, mỗi
cặp cảm biến cách nhau 25mm. Vì, đường đi là vạch đen được k trên nền trắng
và có bề rộng 30mm.

Hình 4.6 Cảm biến hồng ngoại

Trang - 46 -
PHẦN KẾT LUẬN
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Sau thời gian làm đề tài với sự hướng dẫn tận tình của cô ThS. Trần Thị
Trà Vinh, trong đề tài này em đã thực hiện được những vấn đề sau:
- Tổng quan về robot dò đường.
- Thuật toán PID sử dụng trong robot dò đường.
- Thiết kế và chế tạo robot dò đường sử dụng thuật toán PID.
Đồ án tốt nghiệp được thực hiện dưới sự cố gắng nỗ lực của bản thân và
sự chỉ bảo tận tình của giáo viên hướng dẫn, tuy nhiên những thiếu sót và khiếm
khuyết là không thể tránh khỏi. Em rất mong nhận được các ý kiến đóng góp của
thầy cô giáo trong hội đồng cùng toàn thể các bạn để đồ án của em được hoàn
thiện hơn.
Việc thiết kế robot dò đường sử dụng thuật toán PID đã hoàn thành và đã
đi vào hoạt động, đã tự dò vạch nhưng vẫn chưa phát huy được hết t nh năng.
Trong quá trình làm đồ án em có tìm hiểu thêm chức năng quét mã vạch trên các
sản phẩm nhưng do điều kiện chưa cho phép nên em chưa thể áp dụng vào đồ án
này. Nếu có điều kiện em sẽ tiếp tục phát triển hệ thống hơn nữa đáp ứng nhu
cầu ngày càng cao của con người. Em hy vọng có thể ứng dụng robot dò đường
này có thể ứng dụng ngay trong đời sống hàng ngày chứ kh ng đơn thuần chỉ là
trên mô hình

Trang - 47 -
Thiết kế và thi công robot dò đường sử dụng thuật toán PID

SVTH: Trần Tuấn Anh – CCVT15A002


Thiết kế và thi công robot dò đường sử dụng thuật toán PID

PHỤ LỤC
#include <AFMotor.h>

#include <PID_v1.h>

AF_DCMotor motor1(3);

AF_DCMotor motor2(4);

//float Kp=17,Ki=0,Kd=13;

double error=0,PID_value,Setpoint;

float previous_error=0, previous_I=0;

int sensor[5]={0, 0, 0, 0, 0};

//int initial_motor_speed=100;

float lech=0;

void read_sensor_values(void);

void calculate_pid(void);

void motor_control(void);

double Input, Output;

int initial_motor_speed,dem;

double Kp=27,Ki=0, Kd=7;

PID myPID(&error,&PID_value,&Setpoint, Kp, Ki, Kd, DIRECT);

void setup()

pinMode(A0,INPUT); //PWM Pin 1

pinMode(A1,INPUT); //PWM Pin 2

pinMode(A2,INPUT); //Left Motor Pin 1

pinMode(A3,INPUT); //Left Motor Pin 2

pinMode(A4,INPUT); //Right Motor Pin 1

SVTH: Trần Tuấn Anh – CCVT15A002


Thiết kế và thi công robot dò đường sử dụng thuật toán PID

Serial.begin(9600); // set up Serial library at 9600 bps

Serial.println("Motor test!");

// turn on motor

Setpoint=5;

motor1.setSpeed(255);

motor1.run(RELEASE);

motor2.setSpeed(255);

motor2.run(RELEASE);

myPID.SetMode(AUTOMATIC);

initial_motor_speed = 120;

void loop()

read_sensor_values();

calculate_pid();

motor_control();

// Serial.println(PID_value);

// Serial.println(lech);

void read_sensor_values()

SVTH: Trần Tuấn Anh – CCVT15A002


Thiết kế và thi công robot dò đường sử dụng thuật toán PID

sensor[0]=digitalRead(A0);

//sensor[0]=0;

sensor[1]=digitalRead(A1);

sensor[2]=digitalRead(A2);

sensor[3]=digitalRead(A3);

sensor[4]=digitalRead(A4);

//sensor[4]=0;

if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[3]==0)&&(se
nsor[4]==1))

lech=1;

error=1;

else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[3]==1)&&(se
nsor[4]==1))

lech=1;

error=2;

else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[3]==1)&&(se
nsor[4]==0))

SVTH: Trần Tuấn Anh – CCVT15A002


Thiết kế và thi công robot dò đường sử dụng thuật toán PID

lech=1;

error=3;

else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==1)&&(sensor[3]==1)&&(se
nsor[4]==0))

lech=1;

error=3,5;

else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==1)&&(sensor[3]==0)&&(se
nsor[4]==0))

error=5;

else
if((sensor[0]==0)&&(sensor[1]==1)&&(sensor[2]==1)&&(sensor[3]==0)&&(se
nsor[4]==0))

lech=2;

error=3,5;

else
if((sensor[0]==0)&&(sensor[1]==1)&&(sensor[2]==0)&&(sensor[3]==0)&&(se
nsor[4]==0))

lech=2;

SVTH: Trần Tuấn Anh – CCVT15A002


Thiết kế và thi công robot dò đường sử dụng thuật toán PID

error=3;

else
if((sensor[0]==1)&&(sensor[1]==1)&&(sensor[2]==0)&&(sensor[3]==0)&&(se
nsor[4]==0))

lech=2;

error=2;

else
if((sensor[0]==1)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[3]==0)&&(se
nsor[4]==0))

lech=2;

error=1;

else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[3]==0)&&(se
nsor[4]==0))

//dem++;

error=0;

void calculate_pid()

SVTH: Trần Tuấn Anh – CCVT15A002


Thiết kế và thi công robot dò đường sử dụng thuật toán PID

myPID.Compute();

void motor_control()

// Calculating the effective motor speed:

int left_motor_speed = initial_motor_speed-PID_value;

int right_motor_speed =

initial_motor_speed+PID_value;

if(left_motor_speed<0)left_motor_speed=0;

if(right_motor_speed<0)right_motor_speed=0;

if(left_motor_speed>255)left_motor_speed=255;

if(right_motor_speed>255)right_motor_speed=255;

// Serial.println(left_motor_speed);

// printf

// The motor speed should not exceed the max PWM value

Serial.println(dem);

// Serial.println(left_motor_speed);

// printf

// The motor speed should not exceed the max PWM valuez

if(lech==1){

motor1.setSpeed(left_motor_speed); //Left Motor Speed

motor2.setSpeed(right_motor_speed); //Right Motor Speed

else if(lech==2)
SVTH: Trần Tuấn Anh – CCVT15A002
Thiết kế và thi công robot dò đường sử dụng thuật toán PID

motor2.setSpeed(left_motor_speed); //Left Motor Speed

motor1.setSpeed(right_motor_speed); //Right Motor Speed

//following lines of code are to make the bot move forward

/*The pin numbers and high, low values might be different

depending on your connections */

motor1.run(FORWARD);

motor2.run(FORWARD);

SVTH: Trần Tuấn Anh – CCVT15A002


Thiết kế và thi công robot dò đường sử dụng thuật toán PID

NHẬN XÉT CỦA CÁN BỘ HƢỚNG DẪN


……………………………………………………………….…………………………
……..……………………………………………………………….……………………
…………..……………………………………………………………….………………
………………..……………………………………………………………….…………
……………………..……………………………………………………………….……
…………………………..……………………………………………………………….
………………………………..…………………………………………………………
…….………………………………..……………………………………………………
………….………………………………..………………………………………………
……………….………………………………..…………………………………………
…………………….………………………………..……………………………………
………………………….………………………………..………………………………
……………………………….……………………………….

Đà Nẵng, ngày .... tháng.....năm 2018

NGƢỜI HƢỚNG DẪN

ThS. Trần Thị Trà Vinh

SVTH: Trần Tuấn Anh – CCVT15A002

You might also like