You are on page 1of 76

BÞ CÔNG TH¯¡NG

TR¯âNG Đ¾I HàC CÔNG NGHIÞP TP.HCM


KHOA CÔNG NGHÞ ĐIÞN Tþ
ö÷

Đà ÁN TÞT NGHIÞP
ĐÄ TÀI: XÂY DĀNG Hà TâA Đâ ÀO CHO
ROBOT DI ĐâNG

GVHD: ThS. NGUYàN THANH ĐNG


SVTH: LÊ HOÀI THANH (14022731)
TRÀN HOÀNG HUY (14057581)

TP.HCM, tháng 6 năm2018


BÞ CÔNG TH¯¡NG
TR¯âNG Đ¾I HàC CÔNG NGHIÞP TP.HCM
KHOA CÔNG NGHÞ ĐIÞN Tþ
ö÷

Đà ÁN TÞT NGHIÞP

ĐÄ TÀI: XÂY DĀNG Hà TâA Đâ ÀO CHO


ROBOT DI ĐâNG

GVHD: ThS. NGUYàN THANH ĐNG


SVTH: LÊ HOÀI THANH (14022731)
TRÀN HOÀNG HUY (14057581)

TP.HCM, tháng 6 năm 2018


TR¯àNG ĐH CÔNG NGHIàP TP.HCM CÞNG HÒA Xà HÞI CHĂ NGHĨA VIÞT NAM
KHOA CN ĐIÞN Tþ Đßc lÁp - Tự do - H¿nh phúc

Tp. Hồ Chí Minh, ngày tháng năm 20

PHI¾U ĐNG KÝ KHÓA LUÀN TÞT NGHIÞP


(Đá án tßt nghißp/Báo cáo tßt nghißp)
Bã môn: Đián Tử Máy Tính
Tên đÅ tài: Xây Dāng Há Tãa Đã Ào Cho Robot Di Đãng
Chuyên ngành: Đián Tử Máy Tính
Sinh viên:
1. Hã và tên: TrÁn Hoàng Huy Mã sinh viên: 14057581
Email: hoanghuy.gg96@gmail.com .................... Sá đián tho¿i:
01683338590 ...........................................................................
2. Hã và tên: Lê Hoài Thanh Mã sinh viên: 14022731
Email: thanhbp96@gmail.com ............................ Sá đián tho¿i:
0969285155 .............................................................................
GiÁng viên h°ßng dẫn:
1. Hã và tên: Nguyßn Thanh Đăng ...................... Hãc vá/Hãc hàm: Th¿c sĩ
Đ¢n vá công tác: Bß Môn Máy Tính
Ngày nhận đÅ tài: .......................................... Ngày hoàn thành (dā kiÃn):
(Sinh viên phÁi nãp phiÃu này kèm theo phÁn Mô tÁ và Kà ho¿ch thāc hián đÅ tài vÅ cho
Bô môn chủ quÁn xét duyát)

BÞ MÔN CHĂ QUÀN GIÀNG VIÊN H¯àNG SINH VIÊN ĐNG KÝ


(Ký và ghi rõ hã tên) D¾N (Ký và ghi rõ hã tên)
(Ký và ghi rõ hã tên)

Ts. Nguyßn Minh Ngãc. Ths. Nguyßn Thanh Đăng. Lê Hoài Thanh
TrÁn Hoàng Huy
Sinh viên thực Chữ ký xác nhận
STT Các nội dung, công việc thực hiện Sản phẩm Thời gian
hiện của GVHD

1 - Tìm kiếm và đọc tài liệu Lê Hoài Thanh

…../…../20…

2 - Thiết kế và thi công phần cứng cho Robot và hệ tọa đọ gắn Lê Hoài Thanh
robot và hệ tọa độ. trên robot
…../…../20…

3 - Lập trình cho phần cứng bằng Firmware nạp cho robot Lê Hoài Thanh
arduino
…../…../20…

4 - Lập trình giao diện trên C# Phần mềm hiển thị đồ thị Lê Hoài Thanh
di chuyển của robot
…../…../20…
5 - Giao tiếp App và phần cứng Hệ tọa độ ảo Lê Hoài Thanh

…../…../20…
6 - Kiểm tra và chạy thử Đánh giá kết quả. Lê Hoài Thanh

…../…../20…
LâI CÀM ¡N
----- ö÷ -----
Chúng em xin chân thành cảm ơn các thầy cô khoa Công Nghệ Điện Tử- Bộ
Môn Điện Tử Máy Tính, trường Đại Học Công Nghiệp Tp. Hồ Chí Minh đã tận
tình giúp đỡ và tạo mọi điều kiện cho em thực hiện đồ án Tốt nghiệp này.
Chúng em xin đặc biệt gửi lời cảm ơn sâu sắc đến giáo viên hướng dẫn Th.S
Nguyễn Thanh Đăng đã giúp đỡ tận tình trong quá trình chọn đề tài cũng như hỗ
trợ chúng em trong suốt quá trình thực hiện đồ án.
Trong quá trình nghiên cứu và thực hiện đồ án, tuy đã rất cố gắng nhưng
chúng em không thể tránh khỏi sự sai sót, chúng em rất mong nhận được những
hướng dẫn, ý kiến đóng góp của quý thầy cô và bạn bè.
Chúng em xin chân thành cảm ơn!
NHÀN XÉT CĂA GIÁO VIÊN H¯àNG D¾N
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
TP.HCM, Ngày … Tháng… Năm 2018
Giáo viên hướng dẫn
NHÀN XÉT CĂA GIÁO VIÊN PHÀN BIÞN 1
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
TP.HCM, Ngày … Tháng … Năm 2018
Giáo viên phản biện 1
NHÀN XÉT CĂA GIÁO VIÊN PHÀN BIÞN 2
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
TP.HCM, Ngày … Tháng … Năm 2018
Giáo viên phản biện 2
MĀC LĀC
Ch°¢ng 1. Mâ ĐÀU .......................................................................................................1
1.1.Đặt v¿n đÅ ..............................................................................................................1
1.2.Đái t°ợng nghiên cứu ............................................................................................2
Ch°¢ng 2. C¡ Sâ LÝ THUYÂT ....................................................................................3
2.1.Gißi thiáu chung vÅ há tháng ................................................................................3
2.2. Tßng quan vÅ robot di đãng, há tháng dẫn đ°áng và các ph°¢ng pháp xác đánh
tãa đã. ..........................................................................................................................4
2.3. Tßng quan vÅ board m¿ch Arduino Mega và board m¿ch Arduino Nano .........14
2.4.Các module sử dụng trong há tháng. ...................................................................33
Ch°¢ng 3. ThiÃt kà và thi công .....................................................................................42
3.1.ThiÃt kà phÁn cứng Robot ...................................................................................42
3.2.ThiÃt kà m¿ch điÅu khiÇn cho Robot ...................................................................43
3.3.Lập trình cho Robot và bã đãc tãa đã .................................................................45
3.4.Lập trình giao dián điÅu khiÇn vßi C# .................................................................47
Ch°¢ng 4. KiÇm thử và đánh giá...................................................................................49
4.1.Mãt sá hình Ánh vÅ kÃt quÁ kiÇm thử ..................................................................49
4.1.KÃt quÁ kiÇm thử: ................................................................................................51
Ch°¢ng 5. KÃt luận và h°ßng phát triÇn đÅ tài .............................................................52
5.1. KÃt luận...............................................................................................................52
5.2 H°ßng phát triÇn đÅ tài ........................................................................................52
Tài liáu tham khÁo .........................................................................................................53
Phụ lục ...........................................................................................................................54
Danh sách các bißu đá, đá thß, s¢ đá, hình Ánh
Hknh 1. Tßng quan há tháng Há Tãa Đã Ào ...................................................................3
Hknh 2. Robot di đãng có bánh xe vi sai c¢ bÁn..............................................................6
Hình 3. Robot di đãng .....................................................................................................9
Hknh 4. Ph°¢ng pháp đo 3 góc tam giác .......................................................................13
Hknh 5. Ph°¢ng pháp đánh vá sử dụng bÁn đồ ...............................................................14
Hknh 6. S¢ đồ chân của chip ATmega 2560 ..................................................................18
Hknh 7. S¢ đồ khái chip ATmega 2560 .........................................................................19
BÁng 1. Chức năng các Port và Pins của chip Atmega 2560 ........................................23
Hknh 8. S¢ đồ chân s¢ l°ợc của Arduino Mega 2560 ...................................................25
Hknh 9. S¢ đồ chân chip ATmega 328p ........................................................................28
Hknh 10. S¢ đồ khái chip ATmega 328p .......................................................................29
BÁng 2. Chức năng các Port và Pins của chip Atmega 328p ........................................31
Hknh 11. S¢ đồ ra chân của board Arduino Nano .........................................................32
BÁng 3. Chân I/O trên board Arduino Nano .................................................................32
Hknh 12. S¢ đồ chân IC LM2596 ..................................................................................34
Hình 13. IC LM2596 .....................................................................................................34
BÁng 4. Các tham sá của IC LM2596 ...........................................................................35
Hknh 14. S¢ đồ nguyên lý module LM2596 ..................................................................35
Hình 15. Module LM2596 .............................................................................................36
BÁng 5. Các chân và chức năng của IC L298................................................................37
Hknh 16. S¢ đồ chân của IC L298 .................................................................................38
Hknh 17. S¢ đồ khái L298 ............................................................................................38
BÁng 6. Chân và các chức năng cùa chip SPCP168A ...................................................39
Hknh 18 S¢ đồ chân SPCP168A ....................................................................................40
Hình 19. Trục X và trục Y của chip SPCP168A ...........................................................40
Hình 20. Các chân của Module HC05 ...........................................................................41
Hknh 21. S¢ đồ phÁn cứng robot di đãng ......................................................................42
Hknh 22. S¢ đồ nguyên lý m¿ch điÅu khiÇn cho Robot .................................................43
Hình 23. Há tãa đã Áo ....................................................................................................44
Hình 24. Bã đãc tãa đã đ°ợc nái vßi m¿ch điÅu khiÇn .................................................44
Hình 25. Giao dián điÅu khiÇn viÃt bằng C# .................................................................47
Hknh 26. L°u đồ giÁi thuật giao dián điÅu khiÇn ...........................................................48
Hình 27. Robot vßi bã đãc tãa đã đã đ°ợc hoàn thành .................................................49
Hknh 28. Robot đang đ°ợc vận hành .............................................................................49
Hình 29. Chuãt máy tính đ°ợc c¿p nguồn.....................................................................50
Hình 30. Tãa đã và đ°áng đi hiÇn thá lên phÁn mÅm điÅu khiÇn ..................................50
Tóm tắt đề tài
ĐÅ tài <Xây dāng há tãa đã Áo cho Robot di đãng= đ°ợc thāc hián bãi 2
sinh viên Lê Hoài Thanh và TrÁn Hoàng Huy. Sau thái gian thāc hián 3 tháng
nhóm thāc hián đã hoàn thành đ°ợc: ThiÃt kà và thi công phÁn cứng cho Robot
di đãng, xây dāng há tãa đã Áo cho Robot dāa trên há tãa của chuãt máy tính,
nhóm đã đãc đ°ợc há tãa đã Oxy của chuãt quang và áp dụng lên cho Robot di
đãng, từ há tãa đã này nhóm xây dāng phÁn mÅm điÅu khiÇn, sử dụng sóng
Bluetooth đÇ truyÅn dÿ liáu vÅ và vÁ đồ thá trên máy tính. KÃt quÁ đã đ¿t đ°ợc
theo yêu cÁu đÅ ra.

Nhóm thāc hián


Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Ch°¢ng 1. Mä ĐÀU
1.1.Đặt v¿n đề
Hián nay, công nghá robot là mãt trong nhÿng lĩnh vāc đ°ợc quan tâm hàng
đÁu của xã hãi. ĐÇ h°ßng đÃn sā hián đ¿i hoá, robot đ°ợc con ng°ái sÁn xu¿t đÇ
há trợ chúng ta trong nhiÅu lĩnh vāc của cuãc sáng. Robot cũng đã t¿o ra mãt cuãc
cách m¿ng lßn nh° Internet tr°ßc đây, nó đ°ợc ứng dụng rãng rãi trong công
nghiáp, y tÃ, quác phòng , hàng không và vũ trụ. Trong đó, robot di đãng đ°ợc
xem nh° mãt trợ thủ đắc lāc cho con ng°ái, và đặc biát vßi cuãc cách m¿ng công
nghiáp lÁn thứ 4 vào kỷ nguyên này có thÇ sÁ mã ra mãt thái đ¿i cāc thánh của
robot di đãng.

Nói đÃn robot di đãng,há tháng điÅu khiÇn đóng vai trò thiÃt yÃu cho sā di
chuyÇn của robot, đã có r¿t nhiÅu nghiên cứu vÅ sā di chuyÇn của lo¿i robot này
nhằm phát triÇn nhÿng ph°¢ng pháp giúp đánh vá cũng nh° điÅu khiÇn đÇ có thÇ
phát triÇn thêm nhiÅu ứng dụng cho robot di đãng. Trên thà gißi hián đã có nhiÅu
ph°¢ng pháp xác đánh t¿o đã cho robot di đãng, điÇn hknh nh°:

Há tháng dead-reckoning: có giá thành rÁ nh°ng đã sai lách tăng theo thái
gian.

Há tháng dẫn đ°áng cãt móc chủ dãng: sử dụng đánh vá GPS đÇ xác đánh
điÇm di chuyÇn của robot, tuy đ°ợc sử dụng nhiÅu nh¿t, nh°ng chß chính xác ã
môi tr°áng ngoài trái, há tháng này có sai sá lßn, không thÇ dùng trong môi tr°áng
yêu cÁu đã chi tiÃt cao.

Há tháng đánh vá sử dụng bÁn đồ: sử dụng nhiÅu cÁm biÃn đÇ dẫn đ°áng cho
robot đãng, há tháng có giá thành cao và phức t¿p.

Từ nhÿng h¿n chà của há tháng dẫn đ°áng trên , nhóm nghiên cứu quyÃt đánh
bắt tay vào thāc hián đÅ tài <Thiết kế và thi công bộ định vị cho robot di động=
đÇ có thÇ t¿o ra mãt há to¿ đã Áo giúp viác điÅu khiÇn, dẫn đ°áng cho robot mãt
cách hiáu quÁ h¢n.

1
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

1.2.Đßi t°ÿng nghiên cứu


• Tìm hiÇu các ph°¢ng pháp xác đánh tãa đã.
• Tìm hiÇu Vi điÅu khiÇn ATmega2560.
• Tìm hiÇu Vi điÅu khiÇn ATmega 328p.
• Tìm hiÇu vÅ cách điÅu khiÇn đãng c¢.
• Tìm hiÇu nguyên lý ho¿t đãng của chuãt máy tính.
• Tìm hiÇu môi tr°áng lập trình Arduino IDE.
• Tìm hiÇu các chuẩn giao tiÃp Serial, I2C.

2
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Ch°¢ng 2. C¡ Sä LÝ THUY¾T
2.1.Giái thißu chung về hß thßng

Hknh 1. Tổng quan hß thßng Hß Táa Đß Ào


Há tháng Há T¿o Đã Ào bao gồm 2 khái chính:

➢ Khái điÅu khiÇn Robot và Đãc tãa đã:

• Arduino Mega điÅu khiÇn Robot di chuyÇn bằng cách giao tiÃp vßi
m¿ch cÁu H đÇ điÅu khiÇn 2 đãng c¢ DC.

• Bã đãc tãa đã vßi linh kián chính là chip SPCP168A sÁ đãc tãa đã và
gửi vÅ cho Arduino Mega qua UART.

➢ Khái điÅu h°ßng cho Bã đãc tãa đã:

• Arduino Nano sÁ đãc góc quay từ module la bàn sá GY511 vßi giao
thức I2C. Arduino Nano sÁ dùng góc quay đó đÇ điÅu chßnh góc quay
của đãng c¢ b°ßc sao cho há tãa đã xOy của chip SPCP168A không
bá lách.

3
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

2.2. Tổng quan về robot di đßng, hß thßng d¿n đ°ãng và các ph°¢ng
pháp xác đßnh táa đß.
2.2.1. Robot di động
a. Sơ lược về Robot di động

Robot di đãng dùng đÇ chß chung cho lo¿i robot có thÇ di chuyÇn xung quanh
môi tr°áng bằng các c¢ c¿u nh° di chuyÇn bằng chân, di chuyÇn bằng bánh xe,
bánh xích, đám khí,...thông qua sā điÅu khiÇn của máy tính hoặc thông qua các vi
m¿ch lập trknh. Robot di đãng có thÇ thāc hián nhiÅu tác vụ ã các đáa điÇm khác
nhau, không cá đánh ã mãt vá trí trong lúc vận hành. So vßi robot cá đánh, lo¿i
robot này có tính phức t¿p cao h¢n, đòi hßi mãt sā đÁu t° lßn h¢n. Trong khi robot
cá đánh thāc hián các công viác đ¢n giÁn, có thÇ lặp đi lặp l¿i mãt hành đãng,
công viác nh¿t đánh và chß yêu cÁu mãt không gian cá đánh đÇ làm viác thì robot
di đãng l¿i thāc hián các công viác có tính phức t¿p cao h¢n, các công viác này
th°áng thāc hián trong mãt không gian mã, thay đßi liên tục và có thÇ r¿t phức
t¿p. Robot di đãng phÁi có khÁ năng đánh vá, thu thập thông tin mãt cách đÁy đủ
vÅ môi tr°áng xung quanh sau đó mßi quyÃt đánh hành đãng sÁ đ°ợc thāc thi tiÃp
theo.
ĐÇ có thÇ thāc hián các yêu cÁu phức t¿p trên, Robot di đãng đ°ợc tích hợp
các cÁm biÃn – thứ đ°ợc coi nh° là các giác quan cho robot di dãng – giúp chúng
có thÇ di chuyÇn, đánh vá hay thu thập thông tin, dÿ liáu. Ngoài ra, robot phÁi đ°ợc
kÃt nái vßi há tháng cung c¿p đián năng đÇ có thÇ vận hành các bã phận c¢ khí,
bã phận điÅu khiÇn cũng nh° các khái cÁm biÃn. Tuỳ theo yêu cÁu công viác mà
robot di đãng có thÇ đ°ợc kÃt nái vßi há tháng máy tính điÅu khiÇn, ngoài ra còn
có thÇ mang theo các thiÃt bá khác nh° camera, micro, cÁm biÃn và các c¢ c¿u c¢
khí đÇ thāc hián công viác.
Mãt đặc điÇm quan trãng khác của robot di đãng là có tính tā đãng t°¢ng
đái, có nghĩa là có thÇ thāc hián mãt sá công viác mà không có sā can thiáp của
con ng°ái. ĐiÅu này thÇ hián rõ trên các robot tā hành đ°ợc phát triÇn và chà t¿o
gÁn đây trong lĩnh vāc quác phòng và hàng không vũ trụ .
4
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

C¿u t¿o của robot di đãng r¿t đa d¿ng từ mức đ¢n giÁn cho đÃn mức đã phức
t¿p cao, nhkn chung các robot di đãng đÅu có các bã phận c¢ bÁn nh° bã phận
chuyÇn đãng, nguồn và vß bãc. Robot di đãng nÃu phân lo¿i theo môi tr°áng làm
viác thì gồm 3 lo¿i: Trên không, mặt đ¿t, d°ßi n°ßc, vßi mái môi tr°áng thk đòi
hßi robot phÁi có kÃt c¿u khác nhau, đái vßi robot trên không thì bã phận giúp
robot chuyÇn đãng có thÇ là cánh qu¿t, vßi robot d°ßi n°ßc thì có thÇ là chân vát,
vßi rbot trên c¿n thì là bánh xe, bánh xích,....

Hián có r¿t nhiÅu công ty chuyên vÅ sÁn xu¿t robot trên thà gißi, hÁu hÃt các
công ty này có xu¿t xứ từ Mỹ nh° iRobot, Kuka robotics, Ekso Bionics. VÅ phía
châu Á có các công ty đÃn từ Nhật nh° Honda Robotics, Panasonic hay Foxconn
Technology group đÃn từ Đài Loan. Hián t¿i sá sáng chà cao nh¿t thuãc vÅ công
ty Honda vßi 499 sáng chÃ, tiÃp đÃn là Samsung vßi 177 sáng chÃ, iRobot của Mỹ
đứng thứ ba vßi 122 sáng chÃ. Vßi Viát Nam nói riêng, chúng ta có TOSY
Robotics là mãt công ty chuyên vÅ nhÿng sÁn phẩm robot và đồ ch¢i công nghá
cao, đã có nhiÅu đăng ký sáng chà liên quan đÃn robot t¿i nhiÅu quác gia trên thÃ
gißi, có 21 sáng chà và kiÇu dáng công nghiáp đ°ợc TOSY Robotics đăng ký t¿i
các n°ßc nh° Mỹ, Trung Quác, Hàn Quác, Canada và EU. Các sÁn phẩm của
TOSY đã đ°ợc xu¿t khẩu đi h¢n 60 quác gia trên thà gißi.

Robot di đãng đã và đang đ°ợc các n°ßc phát triÇn nhằm phục vụ cho viác
tā đãng hoá sẳn xu¿t, vận chuyÇn t¿i các nhà máy công nghiáp và các ngành khác
nh° Y tÃ, An ninh quác phòng. Trong t°¢ng lai xa, chúng sÁ trã thành nhÿng công
cụ đắc lāc há trợ cho cuãc sáng hián đ¿i.

5
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

b. Phương trình động lực học tổng quát của Robot di động
Robot di đãng có bánh xe có khÁ năng chuyÇn đãng đãc lập mà không cÁn
trknh điÅu khiÇn của con ng°ái bên ngoài. Robot đ°ợc trang bá cho chuyÇn đãng
gồm: Đãng c¢ DC và đ°ợc điÅu khiÇn bãi mãt bã xử lý.

Hknh 2. Robot di đßng có bánh xe vi sai c¢ bÁn


Robot di đãng (WMR _wheeled mobile robot) vßi bánh xe dẫn đãng lắp vào
trục chủ đãng đ°ợc mô tÁ trên hình 3. WMR có thÇ chuyÇn đãng thẳng và quay
trên nÅn phẳng nhá hai c¢ c¿u ch¿p hành đãc lập. Mô men xoắn từ các c¢ c¿u
ch¿p hành truyÅn đãng đÃn hai bánh xe làm chúng quay quanh trục vßi tác đã trái
và phÁi.

GiÁ sử khái l°ợng robot đặt t¿i tâm C. Lo¿i robot này có thÇ xem nh° há
tháng vßi n biÃn c¿u hình trong há to¿ đã tßng quát có m ràng buãc khác nhau.
Ph°¢ng trknh đãng lāc hãc biÇu dißn nh° sau.
.. . . .
M (q) q + Vm (q, q) q + F ( q) +  d = B(q) − AT (q) (2.1)

Trong đó:

- M(q) ∈ Rnxn là ma trận quán tính đái xứng xác đánh d°¢ng.
.
Vm (q q) nxm
- là ma trận liên quan đÃn lāc h°ßng tâm và coriolis.
.

- F (q)   là lāc ma sát giÿa bánh xe robot và bÅ mặt tiÃp xúc.


nx1

6
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

-   là nhißu bao gồm nhißu ngoài và các thành phÁn bên trong robot
n

 d = ( d x , , d y , d )
T

không có c¿u trúc và không thÇ mô hình hóa, bá chặn .

- B(q) 
nxr
là ma trận biÃn đßi đÁu vào.

-    là monent điÅu khiÇn.


nxr

- A(q)  là ma trận ràng buãc vßi giÁ sử rằng robot chuyÇn đãng sao cho
nxm

bánh xe quay tr¢n và không tr°ợt so vßi bÅ mặt nÅn.

-   là tích sá lāc ràng buãc Lagrange.


nx1

Vá trí của robot trong há quy chiÃu Cartesian quán tính {O,X,Y} thì hoàn
q =  xc , yc ,c 
T

toàn đ°ợc cụ thÇ hóa đ°ợc bãi vector Trong đó xc, yc là tãa đã của
trãng tâm của, robot và  là ph°¢ng của há quy chiÃu  c c  so vßi há quy chiÃu
c, x , y

quán tính. Mái liên há giÿa vận tác giÿa hai tãa đã cá đánh và di đãng:

q = S (q) v(t) (2.2)

Mô hknh đãng lāc hãc của WMR sau khi biÃn đßi tãa đã đ°ợc biÇu diÇn nh°
sau:

.
M vc + Vm vc + F +  d =  (2.3)

Rrong đó Vc = [v c , c ] vßi vc là vận tác dài của robot t¿i tâm C có ph°¢ng
theo trục dãc của robot, c là vận tác góc so vßi trục thẳng đứng đi qua tâm C.

M = S T MS , V m = S T (MS+ Vm S),  d = S T d ,  = S T B

ùcos  − d sin  ù
Trong đó ma trận S (q ) = úú sin  d cos  úú ,
úû 0 1 úû

7
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

ù •
ù
ú md  2 cos ú
ù m 0 md sin  ù
ú • ú
M (q) = úú 0 −md sin  úú , Vm (q. q ) = ú md  2sin  ú ,
.
m
úû md sin  −md cos  I úû ú 0 ú
ú ú
ûú ûú
ùcos cos ù ù − sin  ù
ù ù
A(q) = úú cos  úú

B(q) = ú sin  sin  úú ,  = ú r ú, (2.4)
r
úû L − L úû û l û úû − d úû
q = (x, y, )T

. .
• • •
 = −m( y c sin  + xc cos  )

Đ°ợc xác đánh từ điÅu kián ràng buãc của WMR


. . .
yc cos  − xc sin  − d  = 0
(2.5)

Ph°¢ng trknh đãng hãc chuyÇn đãng của trãng tâm C d°ßi d¿ng vận tác dài
và vận tác góc quay là:

ùcos  − d sin  ù
ùv ù ùv1 ù
S (q) = úsin  d cos  úú , v = ú ú = ú ú ,
ú (2.6)
úû0 úû û û ûv2 û
1

ù. ù
ú xc ú ùcos  − d sin  ù
ú . ú = úsin  d cos  ú ùv1 ù , (2.7)
ú yc ú ú ú úv ú
ú . ú úû0 1 úû û 2 û
ûú c ûú

Trong đó |v1|≤Vmax và |v2| ≤Wmax , Vmax và Wmax là các vận tác dà và


góc lßn nh¿t của robot di đãng. Há (2.7) là ph°¢ng trknh đãng hãc của robot.

Sử dụng công thức Lagrange đ°ợc sử dụng đÇ tkm ph°¢ng trknh đãng lāc
hãc của WMR. Vì robot chß chuyÇn đãng trong mặt phẳng ngang, trong tr°áng
hợp này G(q)=0, nên há tháng không thÇ thay đßi vá trí theo chiÅu Z nên thà năng
của há, U trã thành hằng sá. Năng l°ợng đãng năng KE đ°ợc cho nh° sau :
ni
1 1 T 1• •
k = mi vi vi + i I ii , K E = õ k Ei = q T M(q) q
i
E
T

2 2 i =1 2 (1.8)

8
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Ph°¢ng trknh đãng lāc hãc của robot tā hành trong hình 1 có thÇ đ°ợc thÇ
hián trong d¿ng ma trận trong (2.4) của robot di đãng sÁ đ¢n giÁn h¢n nÃu chúng
ta lo¿i đ°ợc bßt thành phÁn d trong há. ĐÇ làm đ°ợc viác này hãc viên đã chãn
thiÃt kà há robot tā hành trục nái hai bánh ã giÿa xe sao cho trãng tâm của robot
nằm chính giÿa trục nái hai bánh truyÅn đãng, khi đó giá trá d=0. S¢ đồ hình hãc
của robot đ°ợc vÁ l¿i đ¢n giÁn nh° hknh:

Hknh 3. Robot di đßng

Vect¢ vá trí của robot trên bÅ mặt là q = (x, y, ) x và y là các tãa đã của điÇm
T

C (t¿i điÇm giÿa của trục nái 2 bánh) và  là góc đánh h°ßng của robot trong há
quy chiÃu quán tính.

(2.4) đ°ợc viÃt l¿i khi d = 0 nh° sau:


ùm 0 0ù ù0ù
M (q) = úú 0 m 0 ú , Vm (q. q ) = úú0 úú ,
ú .

úû 0 0 I úû úû 0 úû
(1.9)
ùcos  cos  ù ù − sin  ù
ù ù
A( q) = úú cos  úú

B(q) = ú sin  sin  úú ,  = ú r ú,
r
úû L − L úû û l û úû 0 úû

Lúc này (2.1) công thức đãng lāc hãc Euler-Lagrange của robot tā hành đ°ợc
viÃt l¿i.

ù ù
x
ö m 0 0ö ú ú ùcos  cos  ù ù sin  ù
÷ ÷ú ú 1 ú ú ù 1 ù ú ú
÷ 0 m 0 ÷ ú y ú = r ú sin  cos  ú ú ú + ú − cos  ú  (2.10)
÷ 0 0 I ÷ú ú
ø ø ú ú ûú L L ûú û 2 û ûú 0 ûú
û û

9
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Trong đó :
 1 và  2 lÁn l°ợt là moment của đãng c¢ trái và đãng c¢ phÁi.

m và I là khái l°ợng và moment t°¢ng ứng của robot.

r là bán kính của bánh xe và L là khoÁng cách từ bánh xe đÃn tâm C của
robot. Ràng buãc non-holonomic trong điÅu kián không tr°ợt (1.5), khi đó đ°ợc
viÃt l¿i:

x sin  − y cos  = 0 (2.11)

1 1
Đặt  l = (1 +  2 ) và  a = (1 +  2 )
r r

từ (1.10) ta có:
l 
x= cos  + sin 
m m
a 
y= cos  − sin  (2.12)
m m
a
=
I

Trong đó  l , a là moment tánh tiÃn và moment quay t°¢ng ứng. Mái liên há
giÿa vận tác giÿa hai tãa đã cá đánh và di đãng:

ùcos  0ù
S (q) = úúsin  0 úú ,
úû 0 1 úû

ù ù
ùvù v
q = S (q) ú ú + S (q ) ú ú
û û ú ú
đ¿o hàm công thức (2.2) ta có : û û (2.13)

ta đ°ợc :

x = −v  sin  + v cos 

y = v  cos  + v sin  (2.14)


 =

So sánh (2.12) và (2.13) ta có:

10
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

l 
cos  + sin  = −v  sin  + v cos 
m m
l 
cos  − sin  = v  cos  + v sin  (2.15)
m m
a
=
I

Nhân dòng đÁu vßi cosθ và dòng thứ hai vßi sinθ rồi cãng l¿i ta có:
l a
v= , =
m I (2.16)

Trong đó v và ω là vận tác dài và vận tác góc của robot. Mặt khác của d¿ng
thông th°áng thk đ°ợc viÃt dāa trên ph°¢ng trknh (2.13):

x = v cos 

y = v sin  (2.17)
 =

Đây là ph°¢ng trknh đãng hãc (2.17) và đãng lāc hãc (2.16) của robot di
đãng. Nhÿng ph°¢ng trknh này áp dụng cho d¿ng robot di đãng c¢ bÁn vßi c¢ chÃ
di chuyÇn bằng bánh xe. Vßi mái lo¿i Robot di đãng riêng thì có mãt ph°¢ng trknh
đãng lāc hãc riêng vì nhÿng thông sá của đãng c¢, vi điÅu khiÇn sÁ dẫn đÃn sā
thay đßi của momen lāc, vận tác di chuyÇn, vận tác dài, vận tác quay, …

2.2.2 Hệ thống dẫn đường


a. Giới thiệu về hệ thống dẫn đường
Đái vßi Robot di đãng, há tháng dẫn đ°áng đ°ợc xem nh° là mắt của robot,
chúng giúp robot có thÇ di chuyÇn theo đúng quỹ đ¿o đã nhận đ°ợc từ máy tính.
Thông qua há tháng này, to¿ đã của Robot cũng có thÇ đ°ợc xác đánh và truyÅn
vÅ cho máy tính hoặc bã điÅu khiÇn trung tâm trên robot đÇ có quyÃt đánh lánh
đ°ợc thāc thi tiÃp theo.

b. Sự tương tác giữa hệ thống dẫn đường và robot di động


Há tháng dẫn đ°áng mang l¿i mãt lã trình, quỹ đ¿o rõ ràng cho bã điÅu khiÇn
trên robot di đãng. Há tháng này có nguyên lí hoặc đãng c¢ bÁn nh° sau:

- Nhận tín hiáu điÅu khiÇn từ máy tính.

11
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

- TruyÅn dÿ liáu này qua bã điÅu khiÇn của Robot bằng sóng wifi, bluetooth,...
robot xử lý lánh và đi theo quỹ đ¿o đã đánh ra.

c. Những lợi ích mà hệ thống dẫn đường mang lại cho Robot di động
• Đánh vá đ°ợc vá trí robot trong mãt há to¿ đã Áo.

• CÁi thián tính ßn đánh trong di chuyÇn so vßi viác điÅu khiÇn bằng tín hiáu
Analog thông qua các thiÃt bá nh° Joystick, keyboard .

• Có thÇ áp dụng vào thāc tà đÇ há trợ cho viác chà t¿o nhÿng robot tā hành
thu thập dÿ liáu.

• Phát triÇn thành nhiÅu ứng dụng khác nhau trên robot nh° tích hợp đánh vá
toàn cÁu, kÃt hợp vßi các lo¿i cÁm biÃn âm thanh, hồng ngo¿i,...t¿o ra mãt
há tháng dẫn đ°áng cao c¿p h¢n, ßn đánh h¢n.

2.2.3 Các phương pháp xác định tọa độ


Robot di đãng thông minh bám quỹ đ¿o phÁi có thuật toán điÅu khiÇn bám
theo quỹ đ¿o tham chiÃu vßi sai sá bám nhß nh¿t, đÇ đ°ợc điÅu này ta phÁi t¿o ra
quỹ đ¿o tham chiÃu và xác đánh vá trí chính xác của robot là r¿t quan trãng. Đã có
nhiÅu nghiên cứu trên thà gißi vßi các thuật toán và ph°¢ng pháp khác nhau đÇ
xác đánh vá trí và đ°áng đi cho robot trong các môi tr°áng chuyÇn đãng. Hián nay
có nhiÅu ph°¢ng pháp đÇ xác đánh tãa đã cho robot nh° sau:

a. Phương pháp dead-reckoning.


Ph°¢ng pháp dead-reakoning dāa trên ph°¢ng trknh đ¢n giÁn và thāc hián
đ°ợc mãt cách dß dàng, sử dụng dÿ liáu từ bã mã hoá sá vòng quay(encorder)
bánh xe. Dead-reckoning dāa trên nguyên tắc là chuyÃn đái sß vòng quay bánh
xe thành đã dách tuyÃn tính t°¢ng ứng của robot. Nguyên tắc này chß đúng vßi giá
trá gißi h¿n. Dead-reckoning là ph°¢ng pháp xác đánh tãa đÇ dẫn đ°áng cho robot
di đãng đ°ợc sử dụng rãng rãi nh¿t. Ph°¢ng pháp này có °u điÇm cho đã chính
xác trong thái gian ngắn, tác đã l¿y mẫu r¿t cao và giá thành th¿p.

Nh°ợc điÇm của ph°¢ng pháp này là do ph°¢ng pháp dead-reckoning là cập
nhật thông tin vÅ h°ßng của chuyÃn đãng theo thái gian do đó dẫn tßi sā tích luỹ
sai sá khi thái gian chuyÇn đãng lâu. Sā tích luỹ sai sá theo h°ßng sÁ dẫn đÃn sai
sá vá trí lßn tăng tß lá vßi khoÁng cách chuyÃn đãng của robot. Lý do dẫn đÃn sā
không chính xác trong viác chuyÃn từ sá vòng quay bánh xe sang chuyÃn đãng
tuyÃn tính nh°: Đã chính xác của c¢ c¿u ch¿p hành và nhißu trong quá trình thu
thập các xung từ encorder… .
12
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

b. Phương pháp cột mốc chủ động.


Há tháng dẫn đ°áng cãt mác chủ đãng là há tháng dẫn đ°áng đ°ợc sử dụng
phá biÃn nh¿t trên tàu biÇn và máy bay. Há tháng này cung c¿p thông tin vá trí r¿t
chính xác vßi quá trình xử lý tái thiÃu. Há tháng cho phép tác đã l¿y mẫu và đã
tin cậy cao nh°ng đi kèm vßi nó là giá thành cao trong viác thiÃt lập và duy trì.
Cãt mác đ°ợc đặt t¿i các vá trí chính xác sÁ cho phép xác đánh to¿ đã chính xác
của vật thÃ. Có 2 ph°¢ng pháp đo dùng trong há tháng cãt mác chủ đãng, đó là
phép đo các c¿nh tam giác và phép đo các góc tam giác.

c. Phương pháp đo cạnh tam giác.


Ph°¢ng pháp đo các của c¿nh tam giác sÁ xác đánh vá trí vật thà dāa trên
khoÁng cách đo đ°ợc tßi cãt mßc biÃt tr°ßc. Trong các há tháng dẫn đ°áng sử
dụng ph°¢ng đo này thông th°áng có ít nh¿t là 3 tr¿m phát đặt t¿i các vá trí biÃt
tr°ßc ngoài môi tr°áng và 1 tr¿m nhận đặt trên robot . Hoặc ng°ợc l¿i có 1 tr¿m
phát đặt trên robot và các tr¿m nhận đặt ngoài môi tr°áng. Sử dụng thông tin vÅ
thái gian truyÅn của chùm tia há tháng sÁ tính toán khoÁng cách giÿa các tr¿m
phát cá đánh và tr¿m nhận đặt trên robot.

d. Phương pháp đo 3 góc tam giác

Hknh 4. Ph°¢ng pháp đo 3 góc tam giác


Trong phép đo này có ít nh¿t 3 tr¿m phát chủ đãng đặt t¿i các vá trí xác đánh
ngoài môi tr°áng nh° hknh 3. Mãt cÁm biÃn quay tròn trên robot, phép đo đ°ợc
thāc hián t¿i các góc λ1, λ2 và λ3. Từ các phép đo biÃt tr°ßc t¿i các trục x,y ta
tính đ°ợc góc θ t¿i vá trí của robot.

13
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Khi cÁn đo khoÁng cách xa thì cÁn các bã phát có công su¿t lßn t¿i điÇm phát
đà đÁm bÁo phát theo mãi h°ßng, đÇ th¿y đ°ợc nhÿng vùng cãt mác không thÃ
quan sát đ°ợc vật. Đây là h¿n chà của ph°¢ng pháp này, vk phát công su¿t lßn
theo mãi h°ßng chi phí tăng cao, kém ßn đánh và khó thāc hián.

e. Phương pháp xác định tọa độ cho robot bằng GPS.


Đã đ°ợc nhiÅu n°ßc áp dụng cho há tháng dẫn đ°áng bằng vá tinh cho quân
sā và phi quân sā, há tháng dẫn đ°áng bằng vá tinh vßi đã chính xác cao, dẫn
đ°áng cho robot di đãng là mãt trong sá các ứng dụng đó. Nh°ng vẫn có nhÿng
h¿n chà nh°: giá thành cao, sai sá lßn khi robot di chuyÇn trong ph¿m vi nhß.

f. Định vị dựa trên bản đồ.


Ph°¢ng pháp này ta xây bÁn đồ toàn cục và đ°ợc l°u trong bã nhß của robot.
Robot sử dụng các cÁm biÃn của nó đÇ đÇ t¿o ra mãt bÁn đồ môi tr°áng cục bã
xung quanh nó sau đó bÁn đồ này đ°ợc so sánh vßi bÁn đồ toàn cục đ°ợc l°u trÿ
tr°ßc trong bã nhß. Robot sÁ tính toán vá trí và h°ßng thāc tà của nó trong môi
tr°áng. BÁn đồ đ°ợc l°u trÿ tr°ßc có thÇ t¿o ra từ các ph°¢ng đặc tr°ng (hknh
tròn , thẳng, cong) hoặc đ°ợc xây dāng từ dÿ liáu cÁm biÃn tr°ßc đó.¯u nh°ợc
điÇm của ph°¢ng pháp này: Sử dụng thông tin từ môi tr°áng ngoài đÇ thu đ°ợc
vá trí của robot mà không làm thay đái môi tr°áng, bÁn đồ vá trí đ°ợc sử dụng đÇ
t¿o ra bÁn đồ cập nhật của môi tr°áng, BÁn đồ môi tr°áng r¿t quan trãng đái
vßicác nhiám vụ khác của robot di đãng nh° bám đ°áng hay tránh vật cÁn, vßicác
nhiám vụ khác của robot di đãng nh° bám đ°áng hay tránh vật cÁn, BÁn đồ vá trí
giúp robot nhận biÃt vi trí của nó.

Hknh 5. Ph°¢ng pháp đßnh vß sÿ dāng bÁn đá


2.3. Tổng quan về board m¿ch Arduino Mega và board m¿ch Arduino
Nano
2.3.1. Giới thiệu chung board mạch Arduino

14
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

➢ Arduino là mãt bo m¿ch vi xử lý đ°ợc dùng đÇ lập trknh t°¢ng tác vßi các
thiÃt bá phÁn cứng nh° cÁm biÃn, đãng c¢, đèn và nhiÅu lo¿i thiÃt bá khác. Arduino
có môi tr°áng phát triÇn ứng dụng cāc kỳ dß sử dụng, đi kèm là mãt ngôn ngÿ
lập trình có thÇ hãc mãt cách dß dàng, thuận tián cho ngay cÁ nhÿng ng°ái không
chuyên. Mãt đặc điÇm nßi bật nÿa là giá thành của Arduino khá r¿, cãng thêm sā
há trợ của tính ch¿t nguồn mã khiÃn Arduino ngày càng đ°ợc °a chuãng trong
lĩnh vāc Đián Tử nói chung và IoT nói riêng.

➢ Arduino sử dụng vi điÅu khiÇn AVR phát triÇn bãi hãng Atmel, đ°ợc sÁn
xu¿t dāa trên c¿u trúc AVR RISC, là mãt trong nhÿng dòng vi điÅu khiÇn đÁu tiên
dùng bã nhß flash đÇ l°u ch°¢ng trknh. Vi điÅu khiÇn AVR có công su¿t cao, tuy
nhiên l¿i ít tiêu tán năng l°ợng. Thông th°áng AVR có mãt sá nhÿng tính năng
đặc tr°ng sau:

+ Có thÇ sử dụng xung clock lên đÃn 16Mhz, xung lock nãi lên tßi 8Mhz.

+ Bã nhß Flash có thÇ lập trình l¿i nhiÅu lÁn, có dung l°ợng lßn, só SRAM
lßn , kèm theo bã nhß l°u trÿ lập trknh đ°ợc EEPROM.

+ NhiÅu ngõ vào ra 2 chiÅu (bi-directional I/O Ports)

+ Bã timer/counter 8 và 16 bits tích hợp PWM

+ Các bã chuyÇn đßi Analog-Digital phân giÁi 10bits, nhiÅu kênh

+ Chức năng Analog comparator

+ Giao thức truyÅn nái tiÃp USART, I2C, SPI

➢ Hián t¿i mãt sá dòng Arduino thông dụng nh° Arduino Uno R3, Arduino
Mega, Arduino Nano,... sử dụng các Vi diÅu khiÇn nh° ATmega328,
ATmega1280, ATmega 2560,...
➢ Vßi nhÿng tián ích trên, Arduino dÁn chiÃm đ°ợc thá phÁn lßn trong lĩnh
vāc đián tử ứng dụng, nhÿng sÁn phẩm mang tính tián ích cao đã ra đái, phục vụ
nhu cÁu con ng°ái trong đái sáng. ĐiÇn hình là 1 sá sÁn phẩm nh°:

15
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

+ Máy in 3D : Lo¿i máy in này giúp t¿o ra vật thÇ trāc tiÃp từ các file
CAD 3D. Công nghá này có ứng dụng trong nhiÅu lĩnh vāc đái sáng nh°
Y tÃ, nghá thuật, môi tr°áng,... Nhá vào Arduino, các lo¿i máy in 3D
nguồn mã Reprap đã ra đái đÇ đáp ứng nhÿng nhu cÁu trên.

+ Robot: Vßi khÁ năng xử lý t°¢ng đái tát, kích th°ßc nhß gãn, giá
thành hợp lý, Arduino đ°ợc ứng dụng làm bã não cho nhiÅu lo¿i robot
kích cỡ nhß, đặc biát là robot di đãng.

+UAV: Mãt trong nhÿng công nghá nßi tiÃng của thà kỷ XXI, đ°ợc ứng
dụng nhiÅu trong các lĩnh vāc đáa lý, thái tiÃt, quác phòng . Arduino phù
hợp vßi công nghá này do chúng có thÇ xử lý tát các lo¿i cÁm biÃn nh°
Gyro, accelerometer, GPS,...và khÁ năng truyÅn nhận tín hiáu từ xa.

2.3.2 Board mạch Arduino Mega


a. Những thông số và tính năng cơ cơ bản
Arduino Mega là mãt board m¿ch đ°ợc tích hợp vi điÅu khiÇn ATmega 2560,
vi điÅu khiÇn ATMega 2560 có nhÿng thông sá c¢ bÁn nh° sau:
• Là mãt vi điÅu khiÇn 8bits thuãc hã AVR.
• Vßi c¿u trúc RISC cÁi tiÃn:
- 32x8 thanh ghi ho¿t đãng c¢ bÁn.
- Vận hành tĩnh.
- Thông l°ợng lên đÃn 16 MIPS t¿i 16 MHz.
- 2 bã nhân chu kk tích hợp trên chip.
• Bã nhß l°u dÿ liáu và ch°¢ng trknh ‘‘không bay h¢i‘‘
- Bã nhß Self- Progammable Flash 256 KB tích hợp trong há tháng vßi
sức chứa đÃn 10000 chu kk ViÃt/Xóa.
- Khu vāc Boot Code vßi Lock Bits đãc lập đ°ợc lập trknh sẵn
- 4 KB EEPROM vßi sức chứa 100.000 chu kỳ ViÃt/Xóa.
- 8 KB SRAM tích hợp.
- Lên đÃn 64KB bã nhß ngoài tùy chãn.

16
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

- Programming Lock cho viác bÁo vá phÁn mÅm.


• Giao dián n¿p JTAG
• Ngo¿i vi:
- 2 bã Timer/Counter 8 bits vßi bã Prescaler riêng biát và chà đã So Sánh
(Compare).
- 4 bã Timer/Counter 16 bits vßi bã Prescaler riêng biát, chà đã So Sánh
(Compare) và Bắt giÿ (Capture).
- Bã đÃm thái gian thāc vßi bã phát xung riêng .
- 4 kênh PWM 8-bit.
- 12 kênh PWM vßi đã phân giÁi khÁ trknh.
- Module so ánh ngõ ra.
- 16 kênh ADC 10-bit.
- 4 ngõ Progammable USART.
- Giao thức Master/Slave SPI Serial.
- Giao thức 2-wired Serial đánh h°ßng theo Byte.
- Bã Watchdog Timer vßi bã phát xung riêng tích hợp trên chip khÁ trknh.
- Bã so sánh Analog tích hợp trên chip.
- Ngắt (Interrrupt) và đánh thức (Wake-up) dāa trên thay đßi của các
chân.
• Tính năng đặc biát của Vi điÅu khiÇn:
- Reset khi mã nguồn và bã phát hián tắt nguồn khÁ trknh.
- Bã phát xung đ°ợc hiáu chßnh
- Nguồn ngắt trong và ngắt ngoài
- 6 chà đã ngủ
• Input/Output và đóng gói:
- 86 đ°áng Input/Output khÁ trknh
- Đóng gói chuẩn 100 – Lead
• Nhiát đã ho¿t đãng:
- 40oC đÃn 85oC
17
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

• Phân c¿p tác đã:


- 0 - 8 MHz t¿i 2.7 - 5.5V
- 0 – 16 MHz t¿i 4.5 - 5.5 V

Hknh 6. S¢ đá chân căa chip ATmega 2560

18
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hknh 7. S¢ đá khßi chip ATmega 2560

19
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

b. Tính năng các port và chân của chip ATmega2560

1 VCC Chân c¿p nguồn

2 GND Chân nái đ¿t ( Ground )

3 Port A (PA7....PA0) Port A là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port A vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và source.
Khi là ngõ vào, nhÿng chân ã Port A thông
th°áng ã mức th¿p sÁ là nguồn c¿p dòng cho tÁi
nÃu đián trã kéo lên đ°ợc kích ho¿t. Port A sÁ ã
3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi Reset ho¿t
đãng, ngay cÁ khi xung clock không ho¿t đãng.

4 Port B (PB7....PB0) Port B là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port B vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và source.
Khi là ngõ vào, nhÿng chân ã Port B thông
th°áng ã mức th¿p sÁ là nguồn c¿p dòng cho tÁi
nÃu đián trã kéo lên đ°ợc kích ho¿t. Port B sÁ ã
3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi Reset ho¿t
đãng, ngay cÁ khi xung clock không ho¿t đãng.
Port B có khÁ năng truyÅn dẫn tát h¢n các Port
khác

5 Port C (PC7....PC0) Port C là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port C vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và source.
Khi là ngõ vào, nhÿng chân ã Port C thông
th°áng ã mức th¿p sÁ là nguồn c¿p dòng cho tÁi
nÃu đián trã kéo lên đ°ợc kích ho¿t. Port C sÁ ã
3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi Reset ho¿t
đãng, ngay cÁ khi xung clock không ho¿t đãng.

20
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

6 Port D (PD7....PD0) Port D là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port D vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và source.
Khi là ngõ vào, nhÿng chân ã port D thông
th°áng ã mức th¿p sÁ là nguồn c¿p dòng cho tÁi
nÃu đián trã kéo lên đ°ợc kích ho¿t. Port D sÁ ã
3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi Reset ho¿t
đãng, ngay cÁ khi xung clock không ho¿t đãng.

7 Port E (PE7....PE0) Port E là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port E vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và source.
Khi là ngõ vào, nhÿng chân ã Port E thông
th°áng ã mức th¿p sÁ là nguồn c¿p dòng cho tÁi
nÃu đián trã kéo lên đ°ợc kích ho¿t. Port E sÁ ã
3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi Reset ho¿t
đãng, ngay cÁ khi xung clock không ho¿t đãng.

8 Port F (PF7....PF0) Port F ho¿t đãng vßi vai trò ngõ vào Analog cho
bã chuyÇn đßi ADC.
Port F cũng ho¿t đãng nh° mãt port I/O 8 bits 2
chiÅu nÃu bã chuyÇn đßi ADC không đ°ợc sử
dụng. Các chân của port có thÇ cung c¿p đián trã
kéo lên. Ngõ ra Port F vßi đặc tính truyÅn đái
xứng vßi hai khÁ năng sink và source. Khi là ngõ
vào, nhÿng chân ã Port F thông th°áng ã mức
th¿p sÁ là nguồn c¿p dòng cho tÁi nÃu đián trã
kéo lên đ°ợc kích ho¿t. Port F sÁ ã 3 tr¿ng thái (
0, 1 và Tùy Đánh) khi Reset ho¿t đãng, ngay cÁ
khi xung clock không ho¿t đãng. NÃu giao thức
JTAG đ°ợc kích ho¿t, đián trã kéo lên ã các chân
PF7(TDI), PF5(TMS) và PF4(TCK) sÁ đ°ợc kích
ho¿t ngay khi reset xÁy ra.
Port F cũng phục vụ nhÿng chức năng của giao
thức JTAG.

21
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

9 Port G (PG5....PA0) Port G là mãt port I/O 6 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port G vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và source.
Khi là ngõ vào, nhÿng chân ã port G thông
th°áng ã mức th¿p sÁ là nguồn c¿p dòng cho tÁi
nÃu đián trã kéo lên đ°ợc kích ho¿t. Port G sÁ ã
3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi Reset ho¿t
đãng, ngay cÁ khi xung clock không ho¿t đãng.

10 Port H (PH7....PH0) Port H là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port H vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và source.
Khi là ngõ vào, nhÿng chân ã Port H thông
th°áng ã mức th¿p sÁ là nguồn c¿p dòng cho tÁi
nÃu đián trã kéo lên đ°ợc kích ho¿t. Port H sÁ ã
3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi Reset ho¿t
đãng, ngay cÁ khi xung clock không ho¿t đãng.

11 Port J ( PJ7....PJ0) Port J là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port J vßi đặc tính truyÅn
đái xứng vßi hai khÁ năng sink và source. Khi là
ngõ vào, nhÿng chân ã Port J thông th°áng ã
mức th¿p sÁ là nguồn c¿p dòng cho tÁi nÃu đián
trã kéo lên đ°ợc kích ho¿t. Port J sÁ ã 3 tr¿ng thái
( 0, 1 và Tùy Đánh) khi Reset ho¿t đãng, ngay cÁ
khi xung clock không ho¿t đãng.

12 Port K (PK7….PK0) Port K ho¿t đãng vßi vai trò ngõ vào Analog cho
bã chuyÇn đßi ADC.
Port K cũng ho¿t đãng nh° mãt port I/O 8 bits 2
chiÅu nÃu bã chuyÇn đßi ADC không đ°ợc sử
dụng. Các chân của port có thÇ cung c¿p đián trã
kéo lên. Ngõ ra Port K vßi đặc tính truyÅn đái
xứng vßi hai khÁ năng sink và source. Khi là ngõ
vào, nhÿng chân ã Port K thông th°áng ã mức
th¿p sÁ là nguồn c¿p dòng cho tÁi nÃu đián trã

22
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

kéo lên đ°ợc kích ho¿t. Port K sÁ ã 3 tr¿ng thái (


0, 1 và Tùy Đánh) khi Reset ho¿t đãng, ngay cÁ
khi xung clock không ho¿t đãng.

13 Port L (PL7…PL0) Port L cũng ho¿t đãng nh° mãt port I/O 8 bits 2
chiÅu nÃu bã chuyÇn đßi ADC không đ°ợc sử
dụng. Các chân của port có thÇ cung c¿p đián trã
kéo lên. Ngõ ra Port L vßi đặc tính truyÅn đái
xứng vßi hai khÁ năng sink và source. Khi là ngõ
vào, nhÿng chân ã Port L thông th°áng ã mức
th¿p sÁ là nguồn c¿p dòng cho tÁi nÃu đián trã
kéo lên đ°ợc kích ho¿t. Port L sÁ ã 3 tr¿ng thái (
0, 1 và Tùy Đánh) khi Reset ho¿t đãng, ngay cÁ
khi xung clock không ho¿t đãng.

14 RESET Ngõ vào Reset. Mãt đián áp mức th¿p vào chân
này lâu h¢n chiÅu dài xung tái thiÇu sÁ t¿o ra
reset, kÇ cÁ khi xung clock không ho¿t đãng,
chiÅu dài các xung ngắn h¢n sÁ không đủ đÇ t¿o
ra reset.

15 XTAL1 Ngõ vào của bã khuÃch đ¿i dao đãng nghách đÁo
và ngõ vào đÇ vận hành xung clock nãi.

16 XTAL2 Ngõ ra từ của bã khuÃch đ¿i dao đãng nghách


đÁo.

17 AVCC Là chân c¿p nguồn cho Port F và bã chuyÇn đßi


ADC. Nó nên đ°ợc kÃt nái vßi VCC ngay cÁ khi
bã ADC không ho¿t đãng. NÃu bã chuyÇn đßi
ADC đ°ợc sử dụng, nó nên đ°ợc kÃt nái vßi
VCC qua mãt bã lãc thông th¿p.

18 AREF Đây là chân tham chiÃu analog cho bã chuyÇn đßi


ADC.

BÁng 1. Chức nng các Port và Pins căa chip Atmega 2560
23
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

c. Arduino Mega 2560 và chức năng các chân I/O


• Arduino Mega 2560 bao gồm 54 chân I/O, trong sá đó có 14 chân có thÇ làm
ngõ ra PWM, 16 ngõ vào Analog, 4 cßng UART, mãt bã dao đãng 16MHz, 1
cßng I2C. Ngoài ra còn có 1 cßng USB type B, 1 jack nguồn, 1 bã header ICSP,
1 nút reset, 1 led tích hợp nái vßi pin 13.

• Nhÿng thông sá c¢ bÁn khác bao gồm:

- Đián áp ho¿t đãng : từ 5V

- Đián áp ngõ vào ( đÅ nghá ) : từ 7-12V

- Đián áp ngõ vào (gißi h¿n) : từ 6-20V

- Dòng đián DC của mái chân I/O : 40mA

- Dòng đián DC của chân 3.3V : 50mA

- Bã nhß Flash : 256KB ( trong đó 8KB sử dụng cho Bootloader)

- SRAM : 8KB

- EEPROM : 4KB

- Xung clock : 16MHz

• Board Arduino Mega 2560 có thÇ dùng nguồn từ cßng USB hoặc nguồn ngoài.
Nguồn ngoài có thÇ là AC-DC adapter hoặc nguồn Pin, vßi adapter có thÇ sử
dụng jack nguồn 2.1mm, vßi pin có thÇ sử dụng chân Vin và GND.

• Đián áp ho¿t đãng nằm trong ng°ỡng từ 6-20V. NÃu đián áp c¿p vào ít h¢n 7V,
chân 5V trên board có thÇ c¿p nguồn ra nhß h¢n 5V và board m¿ch sÁ không
ßn đánh. NÃu đián áp c¿p vào cao h¢n 12V bã ßn áp có thÇ bá nóng và gây h°
hßng cho board m¿ch.

• Board m¿ch Arduino Mega 2560 khác vßi nhÿng Board m¿ch Arduino tr°ßc
đây ã chá nó không dùng FTDI USB-to-Serial driver chip, thay vào đó nó dùng
Atmega8U2 đ°ợc lập trình nh° mãt bã chuyÇn USB-to-Serial.

• Board m¿ch Arduino Mega 2560 vßi chip Atmega2560 có bã nhß flash vßi
dung l°ợng 256KB (trong đó 8KB đÇ ch¿y bootloader) đÇ chứa code, SRAM
vßi dung l°ợng 8KB và EEPROM vßi dung l°ợng 4KB.

24
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

• 54 chân I/O trên Arduino Mega 2560 có thÇ dùng làm input hoặc output. Chúng
ho¿t đãng vßi đián áp 5V, mái chân có thÇ cung c¿p hoặc nhận vào tái đa 40mA
và có đián trã kéo lên 20-50 k Ω tích hợp sẵn ( mặc đánh là không kÃt nái )

• Mãt sá chân I/O của Arduino Mega 2560 có cắc chức năng đặc biát nh° sau:

- Chân Serial ( UART ): 0 (RX ) và 1( TX ) cho cßng Serial, 19 (RX1) và


18 (TX1) cho cßng Serial 1, 17 (RX2) và 16(TX2) cho cßng Serial 2, 15
(RX3) và 14(TX3) cho cßng Serial 3.

- Chân ngắt ngoài: 2 ( interrupt 0 ), 3 ( interrupt 1 ), 18 ( interrupt 5 ), 19 (


interrupt 4 ), 20 ( interrupt 3 ), 21 ( interrupt 2).

- Chân PWM: từ chân 0 đÃn chân 13.

- Chân SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53(SS)

- Chân LED: 13 , đây là led tích hợp sẵn trên Adrduino Mega.

- Chân I2C: 20(SDA) và 21(SCL).

Hình 8. S¢ đá chân s¢ l°ÿc căa Arduino Mega 2560

25
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

2.3.3 Board mạch Arduino Nano


a. Những thông số và tính năng cơ bản
Arduino Nano là mãt board m¿ch đ°ợc tích hợp vi điÅu khiÇn ATmega 328p,
vi điÅu khiÇn ATmega 328p có nhÿng thông sá c¢ bÁn nh° sau:
• Là mãt vi điÅu khiÇn hiáu su¿t cao, thuãc hã AVR 8bits công su¿t th¿p.
• Vßi c¿u trúc RISC cÁi tiÃn:
- 32x8 thanh ghi ho¿t đãng c¢ bÁn.
- Vận hành tĩnh hoàn toàn.
- Thông l°ợng lên đÃn 20 MIPS t¿i 20 MHz.
- 2 bã nhân chu kk tích hợp trên chip.
• Phân đo¿n bã nhß Non-volatile đã bÅn cao
- Bã nhß khÁ trknh tā đãng Flash 32KB tích hợp.
- 1 KB EEPROM.
- 2 KB SRAM tích hợp.
- Chu kỳ ViÃt/Xóa: 10.000 Flash/100.000 EEPROM.
- Thái h¿n l°u trÿ dÿ liáu: 20 năm t¿i 85oC/100 năm t¿i 25oC.
- Khu vāc Boot Code vßi Lock Bits đãc lập đ°ợc lập trknh sẵn.
- Programming Lock cho viác bÁo vá phÁn mÅm.
• Ngo¿i vi:
- 2 bã Timer/Counter 8 bits vßi bã Prescaler riêng biát và chà đã So
Sánh (Compare).
- 1 bã Timer/Counter 16 bits vßi bã Prescaler riêng biát, chà đã So Sánh
(Compare) và Bắt giÿ (Capture).
- Bã đÃm thái gian thāc vßi bã phát xung riêng .
- 6 kênh PWM .
- Module so ánh ngõ ra.
- 8 kênh ADC 10-bit.
- Cßng USART khÁ trknh.
- Giao thức Master/Slave SPI Serial.
26
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

- Giao thức 2-wired Serial đánh h°ßng theo Byte.


- Bã Watchdog Timer vßi bã phát xung riêng tích hợp trên chip khÁ
trình.
- Bã so sánh Analog tích hợp trên chip.
- Ngắt (Interrrupt) và đánh thức (Wake-up) dāa trên thay đßi của các
chân.
• Tính năng đặc biát của Vi điÅu khiÇn:
- Reset khi mã nguồn và bã phát hián tắt nguồn khÁ trknh.
- Bã phát xung đ°ợc hiáu chßnh
- Nguồn ngắt trong và ngắt ngoài
- 6 chà đã ngủ
• Input/Output và đóng gói:
- 23 đ°áng Input/Output khÁ trknh
- Đóng gói: 28-pin PDIP, 32-lead TQFP, 28-pad QFN/MFL và 32-pad
QFN/MFL.
• Đián áp ho¿t đãng:
- 1.8 đÃn 5.5V
• Nhiát đã ho¿t đãng:
- -40oC đÃn 85oC
• Phân c¿p tác đã:
- 0 - 4 MHz t¿i 1.8 - 5.5V
- 0 – 10 MHz t¿i 2.7 - 5.5 V
- 0 – 20MHz t¿i 4.5 – 5.5 V

27
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hknh 9. S¢ đá chân chip ATmega 328p

28
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hình 20. S¢ đá khßi chip ATmega 328p

29
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

a. Tính năng các port và chân của chip Atmega 328p

1 VCC Chân c¿p nguồn

2 GND Chân nái đ¿t ( Ground )

3 Port B (PB7:PB0) Port B là mãt port I/O 8 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port B vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và
source. Khi là ngõ vào, nhÿng chân ã Port B
thông th°áng ã mức th¿p sÁ là nguồn c¿p dòng
cho tÁi nÃu đián trã kéo lên đ°ợc kích ho¿t. Port
B sÁ ã 3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi
Reset ho¿t đãng, ngay cÁ khi xung clock không
ho¿t đãng.

4 Port C (PC5:PC0) Port B là mãt port I/O 7 bits 2 chiÅu vßi đián trã
kéo lên tích hợp. Ngõ ra Port B vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và
source. Khi là ngõ vào, nhÿng chân ã Port B
thông th°áng ã mức th¿p sÁ là nguồn c¿p dòng
cho tÁi nÃu đián trã kéo lên đ°ợc kích ho¿t. Port
B sÁ ã 3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi
Reset ho¿t đãng, ngay cÁ khi xung clock không
ho¿t đãng.

5 Pin PC6 NÃu thanh ghi RSTDISBL đ°ợc lập trình, PC6
đ°ợc dùng nh° mãt chân I/O. L°u ý rằng tính
năng của PC6 khác vßi các chân khác ã Port C.
NÃu thanh ghi RSTDISBL không đ°ợc lập
trknh, PC6 dùng nh° 1 ngõ vào Reset, mãt đián
áp mức th¿p vào chân này lâu h¢n chiÅu dài
xung tái thiÇu sÁ t¿o ra Reset, kÇ cÁ khi xung

30
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

clock không ho¿t đãng, chiÅu dài các xung ngắn


h¢n sÁ không đủ đÇ t¿o ra reset.

6 Port D (PD7....PD0) Port D là mãt port I/O 8 bits 2 chiÅu vßi đián
trã kéo lên tích hợp. Ngõ ra Port D vßi đặc tính
truyÅn đái xứng vßi hai khÁ năng sink và
source. Khi là ngõ vào, nhÿng chân ã port D
thông th°áng ã mức th¿p sÁ là nguồn c¿p dòng
cho tÁi nÃu đián trã kéo lên đ°ợc kích ho¿t. Port
D sÁ ã 3 tr¿ng thái ( 0, 1 và Tùy Đánh) khi
Reset ho¿t đãng, ngay cÁ khi xung clock không
ho¿t đãng.

16 AVCC Là chân c¿p nguồn cho Port F và bã chuyÇn đßi


ADC. Nó nên đ°ợc kÃt nái vßi VCC ngay cÁ khi
bã ADC không ho¿t đãng. NÃu bã chuyÇn đßi
ADC đ°ợc sử dụng, nó nên đ°ợc kÃt nái vßi
VCC qua mãt bã lãc thông th¿p.

17 AREF Đây là chân tham chiÃu analog cho bã chuyÇn


đßi ADC.

18 ADC7:6 ADC7:6 đ°ợc sử dụng làm ngõ vào analog cho


bã chuyÇn đßi ADC. Nhÿng chân này sÁ đ°ợc
c¿p nguồn từ nguồn c¿p tín hiáu analog và thāc
hián chức năng nh° nhÿng kênh chuyÇn đßi
ADC 10bits.

BÁng 2. Chức nng các Port và Pins căa chip Atmega 328p

31
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

b. Arduino Nano và chức năng các chân I/O

Hknh 11. S¢ đá ra chân căa board Arduino Nano


C.
Chân sá Tên Lo¿i Mô tÁ

1-2, 5-16 D0-D13 I/O I/O Digital port 0 đÃn 13

3, 28 RESET Input RESET ( tích cāc th¿p)

4, 29 GND Nguồn Ground

17 3V3 Output Ngõ ra 3V3

18 AREF Input Đián áp tham chiÃu ADC

19-26 A7-A0 Input Ngõ vào analog kênh 0 đÃn 7

27 +5V Input hoặc +5V ouput ( từ bã ßn áp của


output board m¿ch) hoặc +5V input (từ
nguồn ngoài).

30 VIN Nguồn Nguồn c¿p

BÁng 3. Chân I/O trên board Arduino Nano

32
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

2.4.Các module sÿ dāng trong hß thßng.


2.4.1. Module nguồn LM2596
ĐÇ cung c¿p mãt nguồn vßi đián áp ßn đánh cho các module trong há tháng
ta cÁn 1 bã h¿ áp vßi nhÿng đặc tính tái °u và có thÇ điÅu chßnh đÁu ra tùy ý
nh°ng vẫn đÁm bÁo dòng đián đÁu ra đÇ cung c¿p cho các module trong há
tháng. Nhóm đã chãn Module LM2596 làm giÁi pháp cho nguồn c¿p.

• LM2596 là mãt IC nguyên khái cung c¿p t¿t cÁ các chức năng tích cāc
của mãt bã ßn áp chuyÇn m¿ch b°ßc xuáng ( step-down hay buck ), vßi
khÁ năng cháu đ°ợc tÁi lên đÃn 3A, có đặc tính nắn dòng. ThiÃt bá này
có đián áp đÁu ra có thÇ điÅu chßnh đ°ợc bằng biÃn trã. Vßi yêu cÁu
phÁn cứng ít, bã ßn áp này dß sử dụng, đ°ợc tích hợp sẵn bã bù trừ tÁn
sá và bã dao đãng tÁn sá cá đánh.

• Các đặc tính của LM 2596:

- Đián áp ngõ ra điÅu chßnh đ°ợc.

- KhoÁng đián áp ngõ ra: Từ 1,2 V đÃn 37V sai sá 4%.

- Dòng đián đÁu ra cho tÁi lên đÃn 3A.

- Đián áp đÁu vào lên đÃn 40V.

- Chß yêu cÁu thêm 4 linh kián ngoài.

- Đặc tính nắn dòng tát.

- Bã dao đãng cá đánh vßi tÁn sá 150kHz.

- KhÁ năng tắt TTL.

- Chà đã chá công su¿t th¿p.

- Hiáu su¿t cao.

- Ngắt khi quá nhiát, bã bÁo vá h¿n dòng.

33
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

• S¢ đồ chân và hình Ánh thāc tÃ

Hình 13. S¢ đá chân IC LM2596


• Các tham sá của IC LM2596

Hình 13. IC LM2596

34
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

STT Tham sá Giá trá

1 Vin (Min) (V) 4.5

2 Vin (Max) (V) 40

3 Vout (Min) (V) 3.3

4 Vout (Max) (V) 37

5 Iout (Max) (A) 3

6 TÁn sá chuyÇn m¿ch (Min) (KHz) 110

7 TÁn sá chuyÇn m¿ch (Max) (KHz) 173

8 Iq (mA) 5

9 Chà đã điÅu khiÇn Đián áp

10 Nhiát đã ho¿t đãng ( oC) -40 đÃn 125

11 Chu kỳ nhiám vụ (Max) (%) 100

BÁng 4. Các tham sß căa IC LM2596


• Module LM2596

- S¢ đồ nguyên lý

Hknh 14. S¢ đá nguyên lý module LM2596

35
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

- Module LM2596

Hình 15. Module LM2596


2.4.2. Mạch cầu H điều khiển động cơ L298
ĐÇ robot di đãng này ho¿t đãng ta cÁn có mãt driver cho 2 đãng c¢ DC,
nhóm quyÃt đánh chãn m¿ch cÁu H vßi IC L298N làm driver cho Robot.

• L298 là mãt IC công su¿t, nó có 2 driver full-bridge ho¿t đãng ã đián áp


cao và dòng cao đ°ợc thiÃt kà đÇ đáp ứng mức logic TTL tiêu chuẩn và vận
hành các thiÃt bá tā cÁm nh° relay, solenoid, đãng c¢ DC và đãng c¢ b°ßc. 2
ngõ vào cho phép (Enable) đÇ cho phép hoặc không cho phép ho¿t đãng mãt
của tín hiáu ngõ vào. Cāc phát của mái transistor th¿p h¢n trên mái bridge
đ°ợc nái chung và sā t°¢ng ứng vßi các thiÃt bá bên ngoài có thÇ sử dụng đÇ
kÃt nái mãt biÃn trã bên ngoài. Mãt nguồn c¿p phụ đ°ợc tích hợp đÇ mức
logic ho¿t đãng ã đián áp th¿p.

36
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

• Các chân và chức năng của IC LM298


Chân Tên chân Chức năng

1;15 Sense A ĐiÅu khiÇn dòng của tÁi.


Send B

2;3 Out 1; Ngõ ra của cÁu A


Out 2

4 VS Nguồn c¿p của các ngõ ra cho đãng c¢

5;7 Input 1; Ngõ vào TTL của cÁu A


Input 2

6;11 Enable A; Ngõ vào TTL của Enable


Enable B

8 GND Nái đ¿t

9 VSS Nguồn c¿p cho khßi Logic

10;12 Input 3; Ngõ vào TTL của cÁu B


Input 4

13;14 Out 3; Ngõ ra của cÁu B


Out 4

BÁng 5. Các chân và chức nng căa IC L298

37
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hknh 16. S¢ đá chân căa IC L298

Hknh 17. S¢ đá khßi L298

38
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

2.4.3 Chip SPCP168A


CÁm biÃn SPCP168A SoC là mãt chip giá thành th¿p cho chuãt quang,
dùng đÇ lắp ráp mãt con chuãt máy tính không dùng các bã phận c¢ khí. Nó sử
dụng công nghá đánh vá quang hãc dāa trên viác tính toán sā thay đßi vá trí bãi
các Ánh quang hãc chụp bÅ mặt, và các phép toán xác đánh h°ßng và đã lßn của
sā duy chuyÇn. Chip này cung c¿p mãt giÁi pháp chuãt quang hoàn thián và gãn
nhẹ. Không có bã phận di đãng, không cÁn phÁi cân chßnh quang hãc, ít sử dụng
linh kián ngoài.

• Các chân của SPCP168A

BÁng 6. Chân và các chức nng cùa chip SPCP168A

39
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hknh 18 S¢ đá chân SPCP168A

Hình 19. Trāc X và trāc Y căa chip SPCP168A

40
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

2.4.4 Module Bluetooth HC-05


M¿ch thu phát Bluetooth HC-05 giúp dß dàng kÃt nái đÇ thāc hián các thí
nghiám, module đ°ợc thiÃt kà đÇ cho thÇ ho¿t đãng từ mức đián áp 3.3 ~
5VDC. Khi kÃt nái vßi máy tính, HC-05 đ°ợc sử dụng nh° 1 cßng COM Áo,
viác truyÅn nhận vßi COM Áo sÁ giáng nh° truyÅn nhận dÿ liáu trāc tiÃp vßi
UART trên module.Kkhi thay đßi Baudrate cho COM Áo không làm thay đßi
baudrate của UART, baudrate UART chß có thÇ thay đßi bằng AT command trên
module.

• Thông sá kỹ thuật

- Đián áp ho¿t đãng: 3.3 ~ 5VDC.

- Đián áp giao tiÃp: TTL t°¢ng thích 3.3VDC và 5VDC.

- Baudrate UART có thÇ chãn đ°ợc: 1200, 2400, 4800, 9600,


19200, 38400, 57600, 115200.

- DÁi tÁn sóng ho¿t đãng: Bluetooth 2.4GHz.

- Sử dụng CSR mainstream bluetooth chip, bluetooth V2.0


protocol standards.

- Dòng đián khi ho¿t đãng: khi Pairing 30 mA, sau khi pairing
ho¿t đãng truyÅn nhận bknh th°áng 8 mA.

- Kích th°ßc của module chính: 28 mm x 15 mm x 2.35 mm.

Hình 20. Các chân căa Module HC05

41
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Ch°¢ng 3. Thi¿t k¿ và thi công


Nãi dung chính của đÅ tài gồm:

• ThiÃt kà phÁn cứng: Thi công, lắp ráp Robot di đãng.

• ThiÃt kà m¿ch điÅu khiÇn cho Robot di đãng.

• Lập trknh cho Robot di đãng và xây dāng há tãa đã Áo Oxy.

• Lập trình giao dián điÅu khiÇn bằng C#.

3.1.Thi¿t k¿ phÁn cứng Robot


• S¢ đồ khái phÁn cứng của Robot

M¿ch điều Bß xÿ lý
khißn đßng c¢ trung tâm


đác Đßng c¢
Đßng c¢
táa đß DC
DC

Power

Hknh 21. S¢ đá phÁn cứng robot di đßng

42
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

• PhÁn cứng Robot bao gồm:

- M¿ch điÅu khiÇn: Arduino Mega 2560.

- M¿ch Driver: CÁu H L298N

• Nguyên lý ho¿t đãng:

- M¿ch điÅu khiÇn sÁ c¿p tín hiáu cho các chân input IN1,
IN2,IN3,IN4 của m¿ch cÁu H.

- M¿ch cÁu H đ°ợc c¿p nguồn 12V từ pin, nhận tín hiáu điÅu khiÇn
từ m¿ch điÅu khiÇn, xu¿t tín hiáu đó d°ßi d¿ng đián áp qua các chân
OUT1, OUT2, OUT3, OUT4.

- Các chân OUT1, OUT2 nái vßi đãng c¢ 1, OUT3, OUT4 nái vßi
đãng c¢ 2 đÇ vận hành 2 đãng c¢ này.

3.2.Thi¿t k¿ m¿ch điều khißn cho Robot

• S¢ đá nguyên lý

Hknh 22. S¢ đá nguyên lý m¿ch điều khißn cho Robot

43
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hình 23. Hß táa đß Áo

Hình 24. Bß đác táa đß đ°ÿc nßi vái m¿ch điều khißn

44
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

3.3.LÁp trình cho Robot và bß đác táa đß


• L°u đồ giÁi thuật

Begin

Khãi đãng há tháng

Robot di chuyÇn

Đãc tãa đã x và y gửi vÅ.

Đã nhận đủ X Sai
và Y

Gửi XY qua bã phát bluetooth

Khãi đãng bã đãc tãa đã

Đúng

45
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Khãi đãng module Bluetooth

Sai
Máy tính đã kÃt
nái vßi Bluetooth

Đúng

Đãc tãa đô

Gửi tãa đã qua bluetooth

End

Hình 24. Giải thuật đißu khißn cho Robot

GiÁi thích l°u đồ:

• Khai báo các chân Arduino sử dụng cho Driver L298, bã đãc tãa
đã, module Bluetooth.

• Khai báo các biÃn l°u tãa đã, Baudrate cho bluetooth.

• Khãi đãng bã đãc tãa đã, nÃu bã đãc tãa đã ho¿t đãng thì bắt đÁu
gửi tín hiáu cho đãng c¢.

• Arduino sÁ gửi tín hiáu điÅu khiÇn vào các chân IN1 IN2 IN3 IN4
của driver L298.

• NÃu L298 nhận đ°ợc tín hiáu, mãt mức đián áp sÁ gửi qua các chân
OUT1 OUT2 vào đãng c¢ thứ 1, OUT3 OUT4 vào đãng c¢ thứ 2.

• Khãi đãng module bluetooth.

• NÃu bluetooth đã kÃt nái vßi máy tính thì bắt đÁu đãc tãa đã.

• Gửi tãa đã cho máy tính qua bluetooth.

46
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

3.4.LÁp trình giao dißn điều khißn vái C#


• Giao dián há tãa đã Áo

Hình 25. Giao dißn điều khißn vi¿t bằng C#

47
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hknh 26. L°u đá giÁi thuÁt giao dißn điều khißn


GiÁi thích l°u đồ giÁi thuật:
• Bắt đÁu ch°¢ng trknh

• TiÃn hành kÃt nái COM: nÃu kÃt nái thành công ch°¢ng trknh sÁ bắt
đÁu nhận dÿ liáu từ cßng COM, nÃu kÃt nái th¿t b¿i ch°¢ng trknh báo
lái, yêu cÁu chãn đúng port COM.

• Khi kÃt nái thành công cßng COM, dÿ liáu đ°ợc gÿi đÃn.

• Xử lý chuái, nhận đ°ợc hai giá trá x và y, nÃu chuái nhận vÅ sai đánh
d¿ng ch°¢ng trknh báo lái và kÃt thúc.

• Vßi giá trá x y ch°¢ng trknh vÁ đ°ợc đồ thá

• Ch°¢ng trknh kÃt thúc khi ng°ái dùng đóng giao dián.

48
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Ch°¢ng 4. Kißm thÿ và đánh giá


Sau khi lắp ráp và thi công hoàn t¿t Robot di đãng và há tãa đã Áo nhóm đã tiÃn
hành n¿p ch°¢ng trknh và ch¿y thử Robot di đãng cùng vßi há tãa đã Áo.

4.1.Mßt sß hình Ánh về k¿t quÁ kißm thÿ

Hình 27. Robot vái bß đác táa đß đã đ°ÿc hoàn thành

Hình 28. Robot đang đ°ÿc vÁn hành

49
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Hình 29. Chußt máy tính đ°ÿc c¿p nguán

Hình 30. Táa đß và đ°ãng đi hißn thß lên phÁn mềm điều khißn

50
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

4.1.K¿t quÁ kißm thÿ:


- Robot vận hành ßn đánh.

- Máy tính đã kÃt nái đ°ợc vßi robot qua bluetooth.

- Bã đãc tãa đã đã đãc đ°ợc tãa đã và gửi vÅ máy tính.

- Đ°áng đi đã đ°ợc vÁ l¿i trên phÁn mÅm đúng tß lá.

51
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Ch°¢ng 5. K¿t luÁn và h°áng phát trißn đề tài


5.1. K¿t luÁn
- Robot và bã đãc tãa đã đã vận hành tát.

- KÃt nái bluetooth giÿa robot và máy tính ßn đánh.

- Tín hiáu gửi vÅ ßn đánh và chính xác.

- PhÁn mÅm ch¿y tát, nhận tín hiáu đúng vßi tín hiáu robot gửi vÅ và vÁ
đ°ợc đ°áng đi theo yêu cÁu của đÅ tài.

5.2 H°áng phát trißn đề tài


• ¯u điÇm:

Đây là đÅ tài r¿t mßi, ch°a có trên thāc tà hián nay, nhóm đã m¿nh
d¿n thāc hián theo yêu cÁu của giáo viên h°ßng dẫn, đÅ tài là tiÅn đÅ phát
triÇn há tháng dẫn đ°áng cho Robot di đãng r¿t đa năng, há tãa đã Áo trong
đÅ tài có thÇ đ°ợc ứng dụng cho nhiÅu thiÃt bá khác không chß riêng cho
Robot di đãng.

• Nh°ợc điÇm

Do thái gian thāc hián quá ngắn ( 3 tháng ) và đÅ tài ch°a có trên thāc
tà nhóm đã gặp r¿t nhiÅu khó khăn vÅ tài liáu tham khÁo nên đÅ tài chß dừng
l¿i ã mức đãc tãa đã xy và vÁ l¿i đ°áng đi của robot trên máy tính. Tuy
nhiên nÃu thái gian thāc hián dài h¢n và kinh phí tát h¢n đÅ tài có thÇ phát
triÇn thêm trên các đái t°ợng khác nh° : tàu thuyÅn, ô tô, robot hÁm mß, ….
Đây cũng chính là h°ßng phát triÇn cho các đÅ tài sau đÇ hoàn thián h¢n.

52
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Tài lißu tham khÁo


[1] Adams, M.D., Sensor Modelling, Design and Data Processing for
Autonomous Navigation. World Scientific Series in Robotics and Intelligent
Systems. Singapore, World Scientific Publishing Co. Ltd., 1999.

[2] Arkin, R.C., Behavior-Based Robotics. Cambridge MIT Press, MA,


1998.

[3] Bar-Shalom, Y., Li, X.-R., Estimation and Tracking: Principles,


Techniques, and Software. Norwood, MA, Artech House, 1993.

[4] Borenstein, J., Everet,t H.R., Feng, L., Navigating Mobile Robots,
Systems and Techniques. Natick, MA, A.K. Peters, Ltd., 1996.web :

[5] Borenstein, J., Everett, H.R., Feng, L., Where Am I? Sensors and
Methods for Mobile Robot Positioning. Ann Arbor, University of Michigan.
Available at http:// www-personal.engin.umich.edu/~johannb/position.htm.

[6] Breipohl, A.M., Probabilistic Systems Analysis: An Introduction to


Probabilistic Models, Decisions, and Applications of Random Processes.
New York, John Wiley & Sons, 1970.

[7] Bundy, A. (editor), Artificial Intelligence Techniques, a


Comprehensive Catalogue. New York, Springer-Verlag, 1997.

[8] Canudas de Wit, C., Siciliano, B., and Bastin G. (editors), Theory of
Robot Control. New York, Spinger-Verlag, 1996.

[9] – ATmega 328p datasheet – Features –trang 1

53
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

Phā lāc
- Code điÅu khiÇn của Arduino Mega 2560

#include <arduino.h>

#include <ps2.h>

#include <stdint.h>

#include <SoftwareSerial.h>

/***************** DONG CO **********************/

#define IN1 9

#define IN2 8

#define IN3 11

#define IN4 10

#define MAX_SPEED 255 //từ 0-255

#define MIN_SPEED 0

signed int tempX,tempY;

int i;

SoftwareSerial BT(15, 14);

PS2 mouse(7,6); // 7-xanh data (-), 6 vang clock (+)

void M_Dung()

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

54
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

void M1_Tien(int speed)

{ //speed: từ 0 - MAX_SPEED

speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đÁm báo giá trá


nằm trong mãt khoÁng từ 0 - MAX_SPEED

analogWrite(IN1, speed);

digitalWrite(IN2, LOW);

void M2_Tien(int speed)

{ //speed: từ 0 - MAX_SPEED

speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đÁm báo giá trá


nằm trong mãt khoÁng từ 0 - MAX_SPEED

digitalWrite(IN3, LOW);

analogWrite(IN4, speed );

void M1_Lui(int speed)

speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đÁm báo giá trá


nằm trong mãt khoÁng từ 0 - MAX_SPEED

digitalWrite(IN1, LOW);// chân này không có PWM

analogWrite(IN2, speed);

void M2_Lui(int speed)

{
55
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đÁm báo giátrá


nằm trong mãt khoÁng từ 0 - MAX_SPEED

analogWrite(IN4, speed);

digitalWrite(IN3, HIGH);// chân này không có PWM

/**********************ROBOT DI CHUYEN*******************/

void di_thang ()

M1_Tien(42);

M2_Tien(48);

/******************** BO DOC TOA DO ********************/

void di_lui()

M1_Lui(42);

M2_Lui(50);

int16_t mstat;

int16_t mx,my;

void mouse_init()

mouse.write(0xff); // reset

mouse.read(); // ack byte

56
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

mouse.read(); // blank */

mouse.read(); // blank */

mouse.write(0xf0); // remote mode

mouse.read(); // ack

delayMicroseconds(100);

void co_read ()

mouse.write(0xeb); // give me data!

mouse.read(); // ignore ack

mstat = mouse.read();

mx = mouse.read();

my = mouse.read();

if(mx==129)

tempX-=10;

else if(mx==127)

tempX+=10;

if(my==129)

tempY-=10;

else if(my==127)

tempY+=10;

/********* CODE SETUP VA CODE CHINH *************/

57
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

void setup()

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

mouse_init();

BT.begin(9600);

BT.println("Bluetooth Connected");

void loop()

di_thang();

delay(10);

co_read();

// BT.print ("\tX = ");

BT.print (tempX,DEC);

BT.print(" ");

// BT.print ("\tY= ");

58
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

BT.print (tempY,DEC);

BT.println();

• Code giao dián điÅu khiÇn

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace Form_Mouse
{
public partial class Form_Mouse : Form
{
SerialPort serialComPort = new SerialPort();
private string in_data;

public Form_Mouse()
{
InitializeComponent();
foreach (string portName in SerialPort.GetPortNames())//tim cong
COM co trong may va add no
{
ComboBox_COMPort.Items.Add(portName);
}
if (ComboBox_COMPort.Items.Count > 0)
ComboBox_COMPort.SelectedIndex =
ComboBox_COMPort.Items.Count - 1;

59
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

serialComPort.DataReceived += new
SerialDataReceivedEventHandler(serialComPort_DataReceived);
}

void serialComPort_DataReceived(object sender,


SerialDataReceivedEventArgs e)
{
in_data = serialComPort.ReadLine();
this.Invoke(new EventHandler(displaydata_event));
}

private void displaydata_event(object sender, EventArgs e)


{
// hiÇn thá các giá trá nhận đ°ợc
try
{
Display_X_Y.Items.Add(in_data);
Draw();
//timer.Enabled = true;
}
catch (Exception ex3)
{
MessageBox.Show(ex3.Message, "LàI ĐâC GIÁ TRà");
}
}

private void Button_Connect_Click(object sender, EventArgs e)


{
try
{
bool portError = false;
if (serialComPort.IsOpen)
serialComPort.Close();
else
{
serialComPort.PortName = ComboBox_COMPort.Text;
serialComPort.BaudRate = int.Parse("9600");
}
try
{
serialComPort.Open();
}
catch (IOException)
60
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

{
portError = true;
}
if (portError)
{
MessageBox.Show("KHÔNG THÆ KÂT NàI");
}
else
{
ComboBox_COMPort.Enabled = false;
Button_Connect.Enabled = false;
Button_DisConnect.Enabled = true;
}
}
catch (Exception ex1)
{
{
MessageBox.Show(ex1.Message, "LàI KÂT NàI");
}
}
}

private void Button_DisConnect_Click(object sender, EventArgs e)


{
if (serialComPort.IsOpen)
serialComPort.Close();

ComboBox_COMPort.Enabled = true;
Button_Connect.Enabled = true;
Button_DisConnect.Enabled = false;
}

private void button_Clear_Click(object sender, EventArgs e)


{
// xóa đồ thá và list box
PictureBox_DoThi.Refresh();
Display_X_Y.Refresh();
Display_X_Y.ResetText();
Display_X_Y.Items.Clear();
}

private void button_Draw_Click(object sender, EventArgs e)


{
61
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

this.Invoke(new EventHandler(displaydata_event));
Ler();
Draw();
}

private void Ler()


{
//hàm đãc giá trá từ file .txt
System.IO.StreamReader stRead = new
System.IO.StreamReader(@"savedata.txt");
while (!stRead.EndOfStream)
{
Display_X_Y.Items.Add(stRead.ReadLine());
}
}

private void Draw()


{
//hàm vÁ giá trá
try
{
Graphics graph = PictureBox_DoThi.CreateGraphics();
Point toaDo = new Point();
Point ptAnt = new Point(0, 100);

graph.SmoothingMode =
System.Drawing.Drawing2D.SmoothingMode.HighQuality;

for (int ContItems = 0; ContItems <= Display_X_Y.Items.Count -


1; ContItems++)
{
string str = Display_X_Y.Items[ContItems].ToString();
for (int ContChar = 0; ContChar < str.Length; ContChar++)
{
if
(Display_X_Y.Items[ContItems].ToString().Substring(ContChar, 1) == " ")
{
toaDo.X = Convert.ToInt32(str.Remove(ContChar,
str.Length - ContChar));
toaDo.Y = 100 - Convert.ToInt32(str.Remove(0,
ContChar));
ContChar = str.Length;
}
62
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

}
graph.DrawLine(new Pen(Color.Blue, 2), ptAnt.X + 310,
ptAnt.Y + 160, toaDo.X + 310, toaDo.Y + 160);//vÁ đ°áng nái

graph.FillEllipse(new SolidBrush(Color.Red), toaDo.X + 310,


toaDo.Y + 153, 6, 6);//vÁ ch¿m đß

graph.DrawLine(new Pen(Color.Black, 1), 0, 260, 620,


260);//vÁ trục X

graph.DrawLine(new Pen(Color.Black, 1), 310, 1, 310,


520);//vÁ trục Y

graph.DrawString("O",
new Font("Palatino Linotype", 10, FontStyle.Bold),
new SolidBrush(Color.Black), 310, 260);//ghi tâm O

graph.DrawString("Y",
new Font("Palatino Linotype", 10, FontStyle.Bold),
new SolidBrush(Color.Black), 310, 1); // ghi trục y

graph.DrawString("X",
new Font("Palatino Linotype", 10, FontStyle.Bold),
new SolidBrush(Color.Black), 600, 260); // ghi trục x

ptAnt = toaDo;
}
}
catch (Exception ex2)
{
MessageBox.Show(ex2.Message, "LàI VÀ HÌNH");
}
}

private void button_Save_Click(object sender, EventArgs e)


{
//Hàm l°u giá trá nhận đ°ợc
try
{
if (Display_X_Y.Items.Count > 0)
{
using (TextWriter tw = new StreamWriter("savedata.txt"))
{
63
Đồ án tốt nghiệp ĐH Công Nghiệp TP.HCM

foreach (string ab in Display_X_Y.Items)


{
tw.WriteLine(ab);
}
}
Process.Start("savedata.txt");
}
}
catch (Exception ex3)
{
MessageBox.Show(ex3.Message, "LàI L¯U FILE");
}
}

private void button_Close_Click(object sender, EventArgs e)


{
//thoát ch°¢ng trknh
Application.Exit();
}

private void Label_COMPort_Click(object sender, EventArgs e)


{

}
}
}

64

You might also like