You are on page 1of 70

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH




BÁO CÁO ĐỒ ÁN
ROBOT CHUYỂN HÀNG TRONG NHÀ XƯỞNG

Sinh viên thực hiện : NGUYỄN VĂN HÒA (Tr ởn nh m)


: Tự Độn Hóa K13
N nh h c : CN T Tự Độn H
h h c : 2020 - 2024
Hình thức đ o tạo : Đại h c
Gi n viên h n n : TH.S PHẠM HỮU CHIẾN

Quảng Ninh, tháng 11, năm 2023


BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH


BÁO CÁO ĐỒ ÁN

RÔBỐT CHUYỂN HÀNG TRONG NHÀ XƯỞNG

Sinh viên thực hiện : NGUYỄN VĂN HÒA (Tr ởn nh m)


CAO VŨ ÂM
TRẦN TIẾN ĐỨC
NGÔ THANH TÚ
ƯƠNG HÁNH INH
: Tự Độn Hóa K13
N nh h c : CN T Tự Độn H
h h c : 2020 - 2024
Hình thức đ o tạo : Đại h c
Gi n viên h n n : TH.S PHẠM HỮU CHIẾN

Quảng Ninh, tháng 11, năm 2023


BẢN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Sinh viên thực hiện : ......................................... .Lớp:.....................................................


Chuyên Ngành : ......................................... Khoa : .................................................
Giảng viên hướng dẫn: ..................................... Học hàm, học vị : .................................
Đơn vị công tác :.............................................................................................................
NỘI DUNG NHẬN XÉT
1. Tính cấp thiết, ý nghĩ khoa học và thực tiễn của đề tài : ............................................
........................................................................................................................................
2. Bố cục và trình bày đồ án : .........................................................................................
........................................................................................................................................
3. Kết quả đạt được : .......................................................................................................
........................................................................................................................................

4. Các vấn đề cần làm rõ hay bổ sung, chỉnh sửa( nếu có ): ........................................
........................................................................................................................................

5. Ý kiến khác: ................................................................................................................


........................................................................................................................................

6. Kết luận chung: ...........................................................................................................


........................................................................................................................................

7. Điểm đánh giá:............................................................................................................

Quảng Ninh, ngày…..tháng….năm 2023


GIẢNG VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ tên )
Lời Mở Đầu
Các ngành kỹ thuật điện tử, công nghệ thông tin, kỹ thuật điều khiển và tự
động hóa có những bước tiến vượt bậc và mang lại những hiệu quả đáng kể trong
công nghiệp. Trong đó tự động hóa đang ngày càng phát triển mạnh mẽ và góp phần
không nhỏ đáp nhu cầu phát triển. Ví dụ như băng truyền, băng tải, bơm nước... Tất cả
đều vận dụng tự đông hóa để nâng cấp cải tiến và nó đã giúp con người tiết kiệm được
sức lao động. Các công nghệ tiên tiến đều được điều khiển và tinh chỉnh tự động hóa
bằng nhiều ứng dụng khác nhau với mục tiêu chung là giúp con người thuận tiện trong
khi thao tác.

Ngày nay kĩ thuật lập trình phần cứng có sự phát triển mạnh mẽ và được ứng
dụng nhiều trong sản xuất công nghiệp, tự động hóa. Vi điều khiển và điều khiển PLC
càng thông dụng và hoàn thiện hơn, nhưng sự ra đời của Arduno đã mở ra hướng đi
mới cho vi điều khiển. Sự xuất hiện của Arduno đã hỗ trợ con người rất nhiều trong
lập trình và thiết kế nhất là đối với những người bắt đầu tìm tòi về vi điều khiển mà
không có quá nhiều kiến thức, hiểu biết sâu sắc về vật lý và điện tử. Sử dụng ngôn
ngữ lập trình C trên nền Java. Phần cứng của thiết bị được tích hợp nhiều chức năng
cơ bản và là mã nguồn mở. Vì vậy Arduno dần phổ biến và đang phát triển mạnh mẽ.
Dựa trên cơ sở những kiến thức đã học, chúng em quyết định thực hiện đề tài : Robot
chuyển hàng trong nhà xưởng sử dụng Arduino với mục đích được hiểu biết thêm về
chức năng và cấu tạo của Arduno. Đồng thời rèn luyện khả năng tư duy, liên kết ý
tưởng, kỹ năng làm việc nhóm của mỗi thành viên. Trong quá trình làm đồ án, chúng
em chắc chắn không tránh khỏi những thiếu sót và hạn chế vì thế chúng em rất mong
có được sự góp ý và nhắc nhở của thầy giáo về đề tài của mình.

Em xin chân thành cảm ơn thầy giáo Thạc sĩ Phạm Hữu Chiến đã tận tình giúp
đỡ và hướng dẫn chúng em trong quá trình tìm hiểu, thiết kế đề tài này.
MỤC LỤC

CHƯƠNG 1. GIỚI THIỆU CHUNG .................................................................. 1


1.1 Giới thiệu đề tài ......................................................................................... 1
1.2 Tổng quan về xe tự hành ........................................................................... 2
1.2.1 Giới thiệu xe tự hành .......................................................................... 2
1.2.2 Phân loại xe tự hành ........................................................................... 3
1.3 Lựa chọn phương án xây dựng .................................................................. 7
1.4 Nhiệm vụ và phương hướng đề tài ............................................................ 7
1.4.1 Nhiệm vụ ............................................................................................ 7
1.4.2 Phương hướng xây dựng đề tài .......................................................... 8
CHƯƠNG 2 TỔNG QUAN THIẾT BỊ VÀ PHẦN MỀM SỬ DỤNG .............. 9
2.1 Giới thiệu chung về Arduino ..................................................................... 9
2.1.1 Arduino Uno ..................................................................................... 13
2.1.2 Arduino Mega 2560.......................................................................... 17
2.2 Mạch cầu H L298N ................................................................................. 26
2.3 Module giảm áp LM 2596 ....................................................................... 30
2.4 Bộ nguồn ................................................................................................. 31
2.5 Cảm biến hồng ngoại ............................................................................... 34
2.5.1 Cảm biến vật cản hồng ngoại LM393 .............................................. 36
2.5.2 Cảm biến hồng ngoại QTR-5RC ...................................................... 38
2.6 Module RFID RC522 .............................................................................. 39
2.8 Giới thiệu phầm mềm Arduino IDE ........................................................ 45
2.8.1 Phần mềm Arduino IDE là gì ........................................................... 45
2.8.2 Arduino IDE hoạt động như thế nào ................................................ 45
2.8.3 Cách tải Arduino IDE ....................................................................... 45
2.8.4 Các chức năng của Arduino IDE ...................................................... 46
Chương 3 Thiết kế hệ thống điều khiển và thuật toán di chuyển của robot ...... 53
3.1 Sơ đồ khối chung của hệ thống ............................................................... 53
3.2 Thiết kế bộ điều khiển PID...................................................................... 54
3.3 Thuật toán điều khiển robot..................................................................... 58
Chương 4 Mô hình và kết luận .......................................................................... 59
4.1 Giới thiệu mô hình ................................................................................... 59
4.2 Kết luận ................................................................................................... 61
4.2.1 Những nhiệm vụ đã thực hiện .......................................................... 61
4.2.2 Những nhiệm vụ chưa thực hiện được ............................................. 61
4.3 Hướng phát triển của đề tài ..................................................................... 61
DANH MỤC HÌNH ẢNH
Hình 1. 1 Xe tự hành di chuyển trong nhà máy .................................................. 1
Hình 1. 2 Một trong những mẫu xe đầu tiên ....................................................... 3
Hình 1. 3 Mô hình xe kéo .................................................................................... 4
Hình 1. 4 Mô hình xe chở .................................................................................... 5
Hình 1. 5 Mô hình xe đẩy .................................................................................... 5
Hình 1. 6 Mô hình xe nâng .................................................................................. 6

Hình 2. 1 Board mạch Arduino Uno. .................................................................. 9


Hình 2. 2 Xe điều khiển sử dụng Arduino ........................................................ 11
Hình 2. 3 Hệ thống cánh tay robot. ................................................................... 12
Hình 2. 4 Board mạch Arduino Uno ................................................................. 13
Hình 2. 5 Sơ đồ chân I/O của Arduino Uno ...................................................... 15
Hình 2. 6 Board mạch Arduino Mega 2560 ...................................................... 17
Hình 2. 7 Cấu tạo của Arduino Mega ................................................................ 19
Hình 2. 8 Mạch cầu H L298N ........................................................................... 26
Hình 2. 9 Sơ đồ nguyên lý mạch cầu H ............................................................. 27
Hình 2. 10 Các chân kết nối của mạch cầu H L298N ....................................... 29
Hình 2. 11 Module LM 2596 ............................................................................. 30
Hình 2. 12 Sơ đồ đấu nối mạch sạc cho 4 cell pin 18650 ................................. 31
Hình 2. 13 Mạch sạc cân bằng và bảo vệ pin 4s ............................................... 32
Hình 2. 14 Pin 18650 ......................................................................................... 33
Hình 2. 15 Nguyên lý hoạt động của mắt thu phát hồng ngoại ......................... 34
Hình 2. 16 Ảnh hưởng của đối tượng tới việc phát hiện của cảm biến ............. 35
Hình 2. 17 Module cảm biến hồng ngoại LM393 ............................................. 36
Hình 2. 18 Sơ đồ nguyên lý cảm biến vật cản hồng ngoại ................................ 36
Hình 2. 19 Module cảm biến hồng ngoại QTR-5RC ........................................ 38
Hình 2. 20 Nguyên lý hoạt động của RFID ....................................................... 39
Hình 2. 21 Module RFID RC522 và thẻ RFID ................................................. 40
Hình 2. 22 Sơ đồ chân Module RFID RC522 ................................................... 41
Hình 2. 23 Module Wifi ESP8266 .................................................................... 42
Hình 2. 24 NodeMCU ESP8266 ....................................................................... 43
Hình 2. 25 Sơ đồ chân NodeMCU ESP8266 .................................................... 44
Hình 2. 26 Giao diện phần mềm Arduino IDE.................................................. 46

Hình 3. 1 Sơ đồ khối hệ thống điều khiển ......................................................... 53


Hình 3. 2 Sơ đồ khối giải thuật PID. ................................................................. 54
Hình 3. 3 Sơ đồ khối sử dụng PID điều khiển động cơ ..................................... 55
Hình 3. 4 Kết quả mô phỏng trên matlab .......................................................... 56
Hình 3. 5 Chương trình PID điều khiển tốc độ động cơ. .................................. 57
Hình 3. 6 Lưu đồ thuật toán của robot giao và trả hang .................................... 58

Hình 4. 1 Mô hình robot tự hành ....................................................................... 59


Hình 4. 2 Mặt bên của robot .............................................................................. 60
Đồ án Tự động hóa

CHƯƠNG 1. GIỚI THIỆU CHUNG


1.1 Gi i thiệu đề tài
Cùng với sự mở rộng của các nhà máy được tự động hóa và cơ khí hóa, các vấn
đề về việc vận chuyển, bốc dỡ và tích trữ hàng hóa trở nên ngày càng quan trọng hơn.
Theo xu hướng gia tăng sự tự động hóa trong các lĩnh vực sản xuất, các hệ thống vận
chuyển bên trong các nhà máy dưới dạng “hệ thống máy dẫn đường tự động” ngày
càng chiếm một vị trí quan trọng trong toàn bộ lĩnh vực xử lý vật liệu. Xe được sử
dụng để thực hiện các nhiệm vụ:
- Cung cấp và chuyên chở ở các khu vực sản xuất và kho. Khu vực này bao
gồm nhiều ứng dụng khác nhau trong toàn bộ luồng vật liệu từ khi nhập hàng hóa, qua
kho và vùng sản xuất đến khi chuyển đi.
- Ứng dụng tích hợp sản xuất của xe tự hành chở hàng như một bệ nền lắp ráp.
Ứng dụng này dựa trên cơ sở ý tưởng rằng quy trình sản xuất có thể được cấu trúc
theo cách linh hoạt hơn với hệ thống vận chuyển này.
- Cung ứng và chuyên chở trong các khu vực đặc biệt, như ở bệnh viện và di
chuyển tài liệu trong các văn phòng, trong các khu sản xuất diện tích lớn.
Trong tất cả các ứng dụng trên, người ta thấy rằng xe tự hành làm cho kế hoạch
sản xuất linh hoạt hơn, giảm thiểu nhu cầu nhân lực, hữu ích cho việc phát triển công
nghệ 4.0.

Hình 1. 1 Xe tự hành di chuyển trong nhà máy

GV: Phạm Hữu Chiến 1 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

1.2 Tổng quan về xe tự hành

1.2.1 Gi i thiệu xe tự hành


Khái niệm xe tự hành (Automated Guided Vehicle) là một khái niệm chung chỉ
tất cả các hệ thống có khả năng vận chuyển mà không cần người lái. Trong công
nghiệp AGV được hiểu là các xe chuyên chở tự động được áp dụng trong các lĩnh
vực:

- Cung cấp sắp xếp linh kiện tại khu vực kho và sản xuất.

- Vận chuyển hàng giữa các trạm sản xuất, trong khu vực sản xuất.

- Phân phối, cung ứng sản phẩm, đặc biệt trong bán buôn.

- Cung cấp, sắp xếp trong các lĩnh vực đặc biệt như bệnh viên, siêu thị, văn
phòng.

- Qua tất cả các ứng dụng trên, đã thể hiện rất rõ hiệu quả của như: Giúp giảm
thiệt hại trong kiểm kê, sắp xếp sản xuất linh hoạt hơn, giảm thiểu nguồn nhân lực
v.v…

Ngoài ra, xe tự hành còn giúp giảm chi phí chế tạo, tăng hiệu quả sản xuất.
Chúng có thể chế tạo để chuyển hàng, kéo hàng, nâng hàng cấp phát cho một số vị trí
làm việc nhất định.

Lịch sử phát triển của xe tự hành

Hệ thống xe dẫn hướng tự động (AGVS) đã tồn tại từ năm 1953 bởi Barrett
Electronics of Northbrook, bang Illinois – USA, nay là Savant Automation of Walker,
bang Michigan – USA. Một nhà phát minh với một giấc mơ sáng chế ra một phương
pháp tự động hoá con người trên chiếc xe tải kéo mà đã được sử dụng trong các nhà
máy trong nhiều năm.

Lúc đầu chỉ là một chiếc xe kéo nhỏ chạy theo một đường dẫn. Hệ thống
hướng dẫn đầu tiên được tạo ra khi xuất hiện các cảm biến dò theo một từ trường.
AGV tồn tại ở mức này giữa năm bảy mươi. Công nghệ lúc này đã điều khiển các hệ
thống để mở rộng khả năng và tính linh hoạt. Xe không chỉ còn được dùng để kéo rơ
moóc trong kho, mà còn được sử dụng trong quá trình sản xuất, làm việc, và các hệ
thống lắp ráp ô tô.

GV: Phạm Hữu Chiến 2 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 1. 2 Một trong những mẫu xe đầu tiên

Qua nhiều năm, khi công nghệ trở nên tinh vi hơn, thì ngày nay các xe chủ yếu
được định vị bởi hệ thống Lazer LGV (Lazer Guided Vehicle). Trong quá trình tự
hành, LGV được lập trình để giao tiếp với các robot khác nhằm đảm bảo sản phẩm
được chuyển qua các trạm, kho nơi mà sau đó chúng được giữ lại hoặc chuyển đến
một vị trí khác. Ngày nay, LGV đóng vai trò quan trọng trong thiết kế các nhà máy và
nhà kho, đưa hàng hóa đến đúng địa điểm một cách an toàn.

1.2.2 Phân loại xe tự hành


 Phân loại theo chức năng
 Xe kéo (Towing Vehicle)

Xe kéo xuất hiện đầu tiên và bay giờ vẫn còn thịnh hành. Loại này có thể kéo
được nhiều loại toa hàng khác nhau và chở được từ 8000 đến 60000 pounds.

Ưu điểm của hệ thống xe kéo:

- Khả năng chuyên chở lớn.

- Có thể dự đoán và lên kế hoạch về tính hiệu quả của việc chuyên chở cũng
như đảm bảo an toàn.

- Tăng tính an toàn.

GV: Phạm Hữu Chiến 3 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 1. 3 Mô hình xe kéo

 Xe chở (Unit Load Vehicle)

Xe chở được trang bị các tầng khay chứa có thể là các nâng, hạ chuyền động
bằng băng tải ,đai hoăc xích. Loại này có ưu điểm:

- Tải trọng được phân phối và di chuyển theo yêu cầu.

- Thời gian đấp ứng nhanh gọn.

- Giảm hư hại sản phẩm.

- Đường đi linh hoạt.

- Giảm thiểu các tắc nghẽn giao thông chuyên chở.

- Lập kế hoạch hiệu quả.

GV: Phạm Hữu Chiến 4 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 1. 4 Mô hình xe chở

 Xe đẩy (Cart Vehicle)

Xe đẩy được cho là có tính linh hoạt cao và rẻ tiền. Chúng được sử dụng để
chuyên chở vật liệu và các hệ thống lắp ráp.

Hình 1. 5 Mô hình xe đẩy

 Xe nâng (Fork Vehicle)

Có khả năng nâng các tải trọng đặt trên sàn hoặc trên các bục cao hay các khối
hàng đặt trên giá.

GV: Phạm Hữu Chiến 5 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 1. 6 Mô hình xe nâng

 Phân loại theo dạng đường đi


 Loại chạy không theo đường dẫn (Free path navigation)

Có thể di chuyển đến các vị trí bất kỳ trong không gian hoạt động. Đây là loại
xe AGV có tính linh hoạt cao được định vị vị trí nhờ các cảm biến con quay hồi
chuyển (Gyroscop sensor) để xác định hướng di chuyển, cảm biến laser để xác định vị
trí các vật thể xung quanh trong quá trình di chuyển, hệ thống định vị cục bộ (Local
navigation Location) để xác định tọa độ tức thời,… Việc thiết kế loại xe này đòi hỏi
công nghệ cao và phức tạp hơn so với các loại xe khác.

 Loại chạy theo đường dẫn (Fixed path navigation)

Xe AGV thuộc loại này được thiết kế chạy theo các đường dẫn định sẵn gồm
các loại đường dẫn như sau:

- Đường dẫn từ: Là loại đường dẫn có cấu tạo là dây từ (Magnetic wire) chôn
ngầm dưới nền sàn. Khi di chuyển, nhờ có các cảm biến cảm ứng từ mà xe có thể di
chuyển theo đường dây dẫn. Loại đường dẫn này không nằm bên trên mặt sàn nên có
mỹ quan tốt, không ảnh hưởng đến các công việc vận hành khác. Tuy nhiên khi sử
dụng phải tiêu tốn năng lượng cho việc tạo từ tính trong dây, đồng thời đường dẫn là
cố định và không thể thay đổi được.

GV: Phạm Hữu Chiến 6 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

- Đường ray dẫn: Xe tự hành được chạy trên các ray định trước trên mặt sàn.
Loại này chỉ sử dụng đối với những hệ thống chuyên dụng. Nó cho phép thiết kế xe
đơn giản hơn và có thể di chuyển với tốc độ cao nhưng tính linh hoạt thấp.

- Đường băng kẻ trên sàn: Xe AGV di chuyển theo các đường băng kẻ sẵn trên
sàn nhờ các loại cảm biến nhận dạng vạch kẻ. Loại này có tính linh hoạt cao vì trong
quá trình sử dụng người ta có thể thay đổi đường đi một cách dễ dàng nhờ kẻ lại các
vạch dẫn. Tuy nhiên khi sử dụng, các vạch dẫn có thể bị bẩn hay hư hại gây khó khăn
cho việc điều khiển chính xác xe.

- Điều hướng bằng Laser: LGV (Laser Guided Vehicle), đây là một trong
những hệ thống điều hướng phổ biến nhất, nó được dùng cho các phương tiện dẫn
đường bằng laser. Công nghệ điều hướng laser guided được sử dụng rộng rãi trong xe
nâng tự động, được sử dụng trong các ứng dụng nhà kho. Công nghệ điều hướng laser
guided điều khiển một hệ thống robot đến vị trí mục tiêu bằng laser. Nó được thực
hiện bằng cách chiếu ánh sáng laser, xử lý hình ảnh giao tiếp để cải thiện độ chính xác
của sự điều hướng. Điều hướng laser bao gồm các lĩnh vực robot, thị giác máy tính,
giao diện người dùng, trò chơi video, giao tiếp và công nghệ nhà thông minh.

+Ưu điểm: dễ dàng cài đặt, định vị chính xác, không tốn chi phí bảo trì cài đặt.

+Nhược điểm: LGV có giá tương đối cao, dễ sửa đổi chương trình theo dõi
AGV nhưng chỉ có các kỹ sư của nhà cung cấp mới có thể thực hiện.

- Điều hướng GPS, RTLS: các vệ tinh, beacon được dùng để xác định vị trí
AGV (thích nghi với môi trường ngoài trời, độ chính xác thấp và không thể sử dụng
bên trong).

1.3 Lựa ch n h ơn án xây ựng


- Xe tự hành dẫn hướng bằng cảm biến hồng ngoại đi theo đường line đen

- Các bộ phận dẫn động và điều khiển: Động cơ, mạch điều khiển, cảm biến…

- Khay chứa tải: Được thiết kế tùy theo loại xe và yêu cầu sử dụng.

- Nguồn năng lượng: Ắc quy, điện một chiều.

- Các hệ thống định vị và truyền thông: Cảm biến quét thẻ từ, cảm biến siêu
âm…

1.4 Nhiệm vụ v h ơn h n đề tài

1.4.1 Nhiệm vụ
Xe tự hành trong đề tài nghiên cứu là xe chở, vận chuyển hàng hóa trong công
nghiệp . Đặc biệt hướng tới các hàng hóa trong ngành công nghiệp thương mại, có

GV: Phạm Hữu Chiến 7 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

kích thước vài tải trọng đòi hỏi thay đổi liên tục. Trong khuôn khổ của một đồ án với
kinh phí và khả năng hạn hẹp, nên để đề tài có tính khả thi cao, nhóm chúng em đã đề
ra các nhiệm vụ trong việc thiết kế và chế tạo xe tự hành như sau:

Chế tạo kết cấu kết cấu cơ khí cho xe là loại xe chở hàng hóa có kích thước
khác nhau và đa dạng về hình dáng với tải trọng tối đa là 3kg (bao gồm tải trọng của
xe). Đảm bảo được được độ vững chắc của xe và hàng hóa trong quá trình di chuyển,
tạo sự ổn định và thuận lợi cho phần điều khiển.

Thiết kế được mạch điện tử cho xe hoạt động ổn định, có nhiều cổng vào ra,
thực hiện các chức năng như: điều khiển các động cơ của xe, kết nối với cảm biến, …

Lập trình điều khiển cho xe di chuyển đến đúng vị trí và thực hiện đúng thao
tác yêu với tốc độ ổn định 30m/phút. Sai lệch dừng lớn nhất là 10mm và sai lệch góc
nhỏ hơn 3 độ. Thiết kế cho hệ thống AGV có khả năng phát hiện được vật cản trong
quá trình di chuyển đồng thời đưa ra cảnh báo và định hướng di chuyển.

Tìm hiểu và thiết kế cơ khí cho xe. Sử dụng năng lượng là nguồn điện một
chiều.

1.4.2 Ph ơn h ng xây dựn đề tài


Từ những nhiệm vụ ở trên, nhóm chúng em đã thảo luận và đưa ra được những
phương hướng cụ thể để bắt tay vào thực hiện đề tài như sau:

Tìm kiếm tài liệu về xe tự hành thông qua nhiều nguồn khác nhau như: tài liệu
trên mạng internet, các bài giảng của các thầy cô giáo trong trường cũng như giáo
trình của một số trường đại học khác, các đồ án hoặc công trình nghiên cứu về
AGV…

Khảo sát các mô hình thực tế đang có trên thị trường như trong các siêu thị,
trong các nhà máy sản xuất ở trong và ngoài nước…

Chế tạo mô hình xe tự hành AGV hoạt động dựa theo sản phẩm thực tế.

Tiếp theo là lập trình điều khiển cho xe dựa vào những phần mềm có sẵn, nhằm
đáp ứng được với các mục tiêu được đề ra. Trong quá trình vận hành nếu xảy ra sai sót
thì tiến hành sửa chữa, điều chỉnh sao cho hệ thống xe hoạt động chính xác, ổn định.
Cuối cùng đưa ra đánh giá nhận xét và đề xuất hướng phát triển của đề tài.

GV: Phạm Hữu Chiến 8 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

CHƯƠNG 2 TỔNG QUAN THIẾT BỊ VÀ PHẦN MỀM SỬ


DỤNG
2.1 Gi i thiệu chung về Arduino

Hình 2. 1 Board mạch Arduino Uno.

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác
với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board
mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8 bit, hoặc ARM
Atmel 32 bit. Những Model hiện đại được trang bị gồm 1 cổng giao tiếp USB, 6 chân
đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều Board mở rộng khác
nhau.

Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố gắng mang đến
một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới
chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các
cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những người yêu thích mới bắt
đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Đi cùng với
nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường
và cho phép người dung viết các chương trình cho Arduino bằng ngôn ngữ C hoặc C++.

Arduino cơ bản là một nền tảng tạo mẫu mở về điện tử (open-source electronics
prototyping 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à một bộ điều khiển logic có thể lập trình được. Đơn giản hơn, Arduino là một thiết

GV: Phạm Hữu Chiến 9 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

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. Một
điều không hề dễ dàng cho những ai đam mê công nghệ và điều khiển học là những người
ngoại đạo và không có nhiều thời gian để tìm hiểu sâu hơn về kỹ thuật và cơ điện tử.

Hiện tại có rất nhiều loại vi điều khiển và đa số được lập trình bằng ngôn ngữ C/C++
hoặc Assembly nên rất khó khăn cho những người có ít kiến thức chuyên sâu về điện tử và
lập trình. Nó là trở ngại cho mọi người muốn tạo riêng cho mình một món đồ mang tính
công nghệ. Do đó đó là lý do 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ực hiện trên các hệ
điều hành khác nhau như Window, Mac Os, Linux trên Desktop, 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ễ làm 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à mình đang 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 như Ethenet 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 Internet, Wireless, điều
khiển động cơ.

Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến
phức tạp. Trong đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của
Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp. Sau đây là danh
sách một số ứng dụng nổi bật của arduino như trong công nghệ in 3D, robot dò đường
theo hướng có nguồn nhiệt, tạo một thiết bị nhấp nháy theo âm thanh và đèn laser hay
thiết bị cảnh báo có người vào nhà… Arduino đã và đang được sử dụng rộng rãi trên
thế giới, và ngàng càng chứng minh được sức mạnh của chúng thông qua vô số ứng

GV: Phạm Hữu Chiến 10 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

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.

Ứng dụng của Arduino trong thực tế:

Hình 2. 2 Xe điều khiển sử dụng Arduino

GV: Phạm Hữu Chiến 11 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 2. 3 Hệ thống cánh tay robot.

GV: Phạm Hữu Chiến 12 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.1.1 Arduino Uno

Hình 2. 4 Board mạch Arduino Uno

Arduino là một board mạch vi điều khiển dựa trên chip Atmega 328. Nó có 14
chân ra vào bằng tín hiệu số, trong đó có 6 chân có thể sử dụng để điều chỉnh độ rộng
xung. Có 6 chân đầu vào tín hiệu tương tự cho phép chúng ta kết nối với các bộ cảm
biến bên ngoài để thu thập dữ liệu, sử dụng một giao động thạch anh tần số giao động
16Mhz, có một cổng kết nối bằng chuẩn USB để chúng ta nạp chương trình vào bo
mạch và một chân cấp nguồn cho mạch, một ICSP header, một nút reset. Nó chứa tất
cả mọi thứ cần thiết để dược hỗ trợ các vi điều khiển, nguồn cung cấp cho Arduino có
thể là từ máy tính thông qua cổng USB hoặc là từ bộ nguồn chuyên dụng được biến
đổi từ xoay chiều sang một chiều hoặc là nguồn lấy từ pin.

Arduino có thể được mỗ trợ thông qua kết nối USB hoặc với một nguồn cung
cấp điện bên ngoài. Các nguồn năng lượng được lựa chọn tự động. Hệ thống vi điều
khiển có thể hoạt động bằng một nguồn cung cấp bên ngoài từ 6V đến 20V. Tuy nhiên
nếu cung cấp với ít hơn 7V, chân 5V có thể cung cấp ít hơn 5V và hệ thống vi điều
khiển có thể không ổn định. Nếu cấp nhiều hơn 12V, bộ điều chỉnh điện áp có thể quá
nóng và gây nguy hiểm cho bo mạch. Phạm vi khuyến nghị là 7-12V.

- GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn
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.

GV: Phạm Hữu Chiến 13 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

- 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 bạn 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Ω.

 Bộ nh

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

- 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ
nhớ Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này
sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá
20KB bộ nhớ này đâu.
- 2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai
báo khi lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần
nhiều bộ nhớ RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM
lại trở thành thứ mà bạn phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ
bị mất.
- 1KB cho EEPROM (Electrically Eraseble Programmable Read Only
Memory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi
dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như
dữ liệu trên SRAM.

GV: Phạm Hữu Chiến 14 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Các cổng vào/ra

Hình 2. 5 Sơ đồ chân I/O của Arduino Uno

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, bạn 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, bạ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.

GV: Phạm Hữu Chiến 15 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

- 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.
- LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi
bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối
với chân số 13. 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, bạn 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 bạn cấp điện áp 2.5V vào chân này thì bạn 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.

GV: Phạm Hữu Chiến 16 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.1.2 Arduino Mega 2560

Hình 2. 6 Board mạch Arduino Mega 2560

Arduino Mega 2560 là một bo mạch vi điều khiển được xây dựng dựa trên chip
Atmega 2560. Nó có 54 chân vào/ra số (trong đó có 15 chân có thể sử dụng để điều
chế độ rộng xung), có 16 chân đầu vào tín hiệu tương tự, sử dụng một dao động thạch
anh tần số dao động 16MHz, có một cổng kết nối USB, chân nguồn, một ICSP header,
một nút reset. Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, nguồn cung
cấp cho Arduino có thể là từ máy tính thông qua cổng USB hoặc là từ bộ nguồn
chuyên dụng được biến đổi từ xoay chiều sang một chiều hoặc là nguồn lấy từ pin.
Arduino Mega tương thích với hầu hết các shield thiết kế cho Arduino Duemilanove
hay Diecimila.

Arduino Mega 2560 là bản cập nhật từ Arduino Mega.

Arduino Mega 2560 khác so với các bo mạch trước đó ở chỗ nó không sử
dụng chip điều khiển FTDI USB-to-serial. Thay vào đó, các tính năng của
Atmega16U2 (ATmega8U2 trong phiên bản 1 và phiên bản 2 bảng) được lập trình
như một bộ chuyển đổi USB-to-serial).

GV: Phạm Hữu Chiến 17 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Các đặc điểm kỹ thuật

Arduino Mega Tính năn , đặc điểm

Vi điều khiển AVR ATmega 2560 (8bit)

7-12V (Bộ điều chỉnh sẵn có cho bộ điều


Nguồn cung cấp
khiển)

Số chân I/O số 54

Số chân I/O tương tự 16

Xung clock 16 MH ( nhà sản xuất cài đặt là 1MH )

Bộ nhớ flash 128 KB

SRAM 8 KB

USB (Lập trình với ATmega 8), ICSP (lập


Giao tiếp
trình), SPI, I2C và USART

Bộ Timer 2 (8bit) + 4 (16bit) = 6 Timer

PWM 12 (2-16 bit)

ADC 16 (10 bit)

USART 4

Ngắt thay đổi chân 24

Arduino Mega 2560 cũng được tích hợp các tính năng bổ sung như bộ so sánh,
ngắt, chế độ tiết kiệm điện, cảm biến nhiệt độ, RTC và nhiều tính năng khác.

GV: Phạm Hữu Chiến 18 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 2. 7 Cấu tạo của Arduino Mega

 Chân nguồn:

VIN Cung cấp điện áp (7-12V)

GND Chân nối đất

N ồn V Đối với nguồn cung cấp thiết bị phần cứng bên ngoài

N ồn . V Đối với thiết bị phần cứng điện áp thấp bên ngoài

 Chân điều khiển:

RESET: Arduino Mega Mega 2560 có sẵn mạch reset với nút ấn để thiết lập lại
hệ thống và chân này có thể được sử dụng khi kết nối các thiết bị khác để thiết lập lại
bộ điều khiển.

XTAL1, XTAL2: Thạch anh(16Mh ) được kết nối với xung clock cung cấp cho bộ
điều khiển.

ARE : Chân này được dùng khi sử dụng ADC để chuyển đổi tín hiệu với điện áp
tham chiếu bên ngoài mà không muốn sử dụng điện áp tham chiếu nội bộ 1.1V hoặc 5V.

 Các chân Di it ( ):

GV: Phạm Hữu Chiến 19 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Chân số: Từ 0-53 (số) và 0-15 (tương tự) có thể được sử dụng làm đầu vào
hoặc đầu ra cho thiết bị được thiết lập bằng các hàm Mode (), digtalWrite (),
digitalRead ().

- Ứng dụng:

Thiết bị đầu ra: Relay, LED, buzzer, LCD và các thiết bị khác.

Thiết bị đầu vào: Nút ấn, cảm biến siêu âm, cần điều khiển và các thiết bị khác

Thí dụ:

Đầu ra tín hiệu thấp trên Arduino mega

pinMode (0, OUTPUT);

digitalWrite (0, LOW);

Đầu vào đọc tín hiệu trên Arduino mega

pinMode (0, INPUT);

digitalRead (0);

 Chân t ơn tự (16):

Từ 0-15 (analog) có thể được sử dụng như chân đầu vào tương tự cho bộ ADC,
nếu không sử dụng nó hoạt động như chân digital bình thường. Nó được thiết lập bởi
các hàm pinMode () khai báo chân, analogRead () để đọc trạng thái chân và nhận giá
trị kỹ thuật số cho tín hiệu analog. Lưu ý phải cẩn thận để lựa chọn điện áp tham chiếu
bên trong hoặc bên ngoài và chân Aref.

- Ứng dụng :

Thiết bị đầu vào: Cảm biến nhiệt độ, cảm biến (như ldr, irled và độ ẩm) và các
thiết bị khác

Thí dụ :

pinMode (0, INPUT);

analogRead (0);

Chân có Chức năng thay thế:

Chân SPI: Chân 22-SS, 23_SCK, 24-MOSI, 25-MISO

GV: Phạm Hữu Chiến 20 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Các chân này được sử dụng cho giao tiếp nối tiếp với giao thức SPI để liên lạc
giữa 2 thiết bị trở lên. SPI cho phép bit phải được thiết lập để bắt đầu giao tiếp với các
thiết bị khác.

Ứng dụng: Lập trình điều khiển AVR, giao tiếp với những người khác ngoại vi
như LCD và thẻ SD.

 Chân I2C:

Chân 20 cho SDA và 21 cho SCK (Tốc độ 400kh ) để cho phép liên lạc hai
dây với các thiết bị khác. Hàm được sử dụng là wire.begin () để bắt đầu chuyển đổi
I2C, với wire.Read () để đọc dữ liệu i2c và wire.Write () để ghi dữ liệu i2c.

- Ứng dụng:

Thiết bị đầu ra: LCD và liên lạc giữa nhiều thiết bị với hai dây.

Thiết bị đầu vào: RTC và các thiết bị khác.

Thí dụ:

I2c chỉ đọc dữ liệu

Wire.begin ();

Wire.requestTừ (2, 1); // dữ liệu 1byte

Wire.Read ();

 PWM chân :

Chân 2-13 có thể được sử dụng như đầu ra PWM với hàm analogWrite () để
ghi giá trị pwm từ 0-255.

- Ứng dụng:

Thiết bị đầu ra: Điều khiển tốc độ của động cơ, ánh sáng mờ, pid cho hệ thống
điều khiển hiệu quả.

Thí dụ:

Ngõ ra tín hiệu tương tự trên bảng mạch Arduino

pinMode (0, OUTPUT);

analogWrite (0,255);

 Chân UART:

GV: Phạm Hữu Chiến 21 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Chân 0 - RXD0, chân 1 - TXD0

Chân 19 - RXD1, chân 18 - TXD1

Chân 17 - RXD2, chân 16 - TXD2

Chân 15 - RXD3, chân 14 - TXD3

Chân này được sử dụng cho giao tiếp nối tiếp giữa bo mạch với máy tính hoặc
hệ thống khác để chia sẻ và ghi dữ liệu. Nó được sử dụng với hàm serialBegin () để
cài đặt tốc độ truyền và bắt đầu truyền thông với serial.Println () để in mảng ký tự
(mảng char) ra thiết bị khác.

- Ứng dụng:

Bộ điều khiển truyền thông và máy tính

Ví dụ :

Serial.begin (9600);

Serial.Println (“hello”);

 Chân ngắt :

Chân digital: 0,22,23,24,25,10,11,12,13,15,14

Chân analog: 6,7,8,9,10,11,12,13,14,15

Chân này được sử dụng để ngắt. Để kích hoạt chân ngắt phải cài đặt bật ngắt
toàn cục.

- Ứng dụng :

Bộ mã hóa vòng quay, nút bấm dựa trên ngắt và các nút khác.

Thí dụ :

pinMode (0, OUTPUT);

pinMode (1, INPUT_PULLUP);

attachInterrupt (digitalpinToInterrupt (1), LOW, CHANGE);

 Chân n ắt hần cứng:

GV: Phạm Hữu Chiến 22 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Chân 18 - 21,2,3 ngắt phần cứng được sử dụng cho các ứng dụng ngắt. Ngắt
phần cứng phải được bật với tính năng ngắt toàn cục để ngắt quãng từ các thiết bị
khác.

- Ứng dụng:

Nhấn nút cho chương trình ISR, đánh thức bộ điều khiển bằng thiết bị bên
ngoài như cảm biến siêu âm và các thiết bị khác.

Thí dụ:

pinMode (0, OUTPUT);

pinMode (1, INPUT_PULLUP);

attachInterrupt (digitalpinToInterrupt (1), LOW, LOW);

 Các phần của Arduino Mega:


- Giắc cắm nguồn DC:

Cấp nguồn cho Arduino Mega từ 7-12V qua cổng này. Arduino Mega R3 có bộ
điều chỉnh điện áp nguồn cấp 5V và 3.3V cho bộ điều khiển Arduino và bộ cảm biến.

- AVR 2560:

Đây là vi điều khiển chính được sử dụng để lập trình và chạy tác vụ cho hệ
thống. Đây là bộ não của hệ thống để điều khiển tất cả các thiết bị khác trên mạch.

- ATmega8:

Vi điều khiển này được sử dụng để liên lạc giữa bộ điều khiển chính và các
thiết bị khác. Bộ điều khiển này được lập trình cho giao tiếp USB và các tính năng lập
trình nối tiếp.

- ICSP 1 (ATmega8) và 2 (AVR 2560):

Nó có các tính năng của lập trình sử dụng bus nối tiếp với lập trình AVR sử
dụng giao tiếp SPI. AVR 2560 được lập trình để chạy hệ thống và ATmega 8 được lập
trình để liên lạc và lập trình nối tiếp.

 Một số ch ơn trình đơn i n để thử trên Arduino Mega 2560

Chương trình 1: Đèn LED nhấp nháy

GV: Phạm Hữu Chiến 23 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

/ *Bật đèn LED trong hai giây, sau đó tắt trong hai giây trên chân 13, nhiều lần.

*// chức năng cài đặt chạy một lần khi bạn nhấn đặt lại hoặc bật bảng

void setup () {

// khởi tạo ghim số 13 làm đầu ra.

pinMode (13, OUTPUT);

// chức năng vòng lặp chạy lặp đi lặp lại

void loop () {

digitalWrite (13, CAO); // bật đèn LED (HIGH là mức điện áp)

Delay (2000); // chờ hai giây

digitalWrite (13, LOW); // tắt đèn LED

delay (2000); // chờ hai giây

Chương trình 2: Ánh sáng Led mờ (PWM):

int brightness = 0; // giá trị pwm

void setup ()

pinMode (3, OUTPUT);

Void loop ()

analogWrite (3, brightness); // pwm viết trên chân 3

brightness ++; // độ sáng được tăng thêm 1

GV: Phạm Hữu Chiến 24 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

if (brightness <= 0 || brightness > = 255) {

brightness = 0; // độ sáng giới hạn ở 0-255

delay (10)

Chương trình 3: Analog đọc điện áp (Analog chân với USART):

Void setup ()

Serial.begin (9600); // chức năng bắt đầu giao tiếp usart với baudrate được đặt
thành 9600

Void loop ()

int sensorValue = analogRead (A0); // dữ liệu analog chân 0 được đọc và


chuyển đổi thành giá trị số được lưu trữ trong sensorValue.

Serial.println (sensorValue); // usart để đầu ra giá trị cảm biến trên màn hình
nối tiếp

GV: Phạm Hữu Chiến 25 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.2 Mạch cầ H L298N

Hình 2. 8 Mạch cầu H L298N

 Mạch cầu H là gì?

Mạch cầu H là một mạch đơn giản dùng để điều khiển động cơ DC quay thuận
hoặc quay nghịch. Trong thực tế, có nhiều kiểu mạch cầu H khác nhau tùy vào cách
chúng ta lựa chọn linh kiện có dòng điện, áp điều khiển lớn hay nhỏ, tần số xung
PWM… Và chúng sẽ quyết định đến khả năng điều khiển của cầu H.

 Nguyên lý hoạt động của mạch cầu H

Động cơ DC đảo chiều quay khi thay đổi chiều dòng điện chạy vào động cơ.
Do đó ta hoàn toàn có thể đổi chiều cấp điện cho động cơ để làm thay đổi chiều quay.
(Hình 2.9) là sơ đồ mạch cầu H đơn thuần sử dụng 4 công tắc nguồn. Các công tắc

GV: Phạm Hữu Chiến 26 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

nguồn hoàn toàn có thể sửa chữa thay thế bằng relay hoặc những khóa bán dẫn công
suất.

Hình 2. 9 Sơ đồ nguyên lý mạch cầu H

- Khi đóng đồng thời công tắc nguồn S1 và S4 thì dòng điện sẽ chạy từ nguồn
VCC qua S1, động cơ, S4 và về MASS. Động cơ sẽ quay theo chiều thuận.
- Khi đóng hai công tắc nguồn S3, S2 thì dòng điện đi theo chiều ngược lại từ S3
qua động cơ qua S2 và về MASS. Động cơ lúc này sẽ quay theo chiều ngược
lại.

GV: Phạm Hữu Chiến 27 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

* Cần chú ý quan tâm trình tự đóng mở những công tắc nguồn để tránh bị ngắn
mạch.

S1 S2 S3 S4 Động cơ

0 0 0 0 Không quay

1 0 0 1 Quay thuận

0 1 1 0 Quay nghịch

1 1 X X Ngắn mạch

X X 1 1 Ngắn mạch

4 "công tắc" này thường là Transistor BJT, MOSFET hay relay. Tùy vào yêu
cầu điều khiển khác nhau mà người ta lựa chọn các loại "công tắc" khác nhau.

GV: Phạm Hữu Chiến 28 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 2. 10 Các chân kết nối của mạch cầu H L298N

 Thông số kỹ thuật

- Driver: L298N tích hợp hai mạch cầu H.


- Điện áp điều khiển: +5 V ~ +12 V
- Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)
- Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
- Dòng của tín hiệu điều khiển: 0 ~ 36mA
- Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃)
- Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃

GV: Phạm Hữu Chiến 29 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.3 Module gi m áp LM 2596


Là module giảm áp có khả năng điều chỉnh được dòng ra đến 3A. LM2596 là
IC nguồn tích hợp đầy đủ bên trong. Tức là khi cấp nguồn 9V vào module, sau khi
giảm áp ta có thể lấy được nguồn 3A < 9V...như 5V hay 3.3V

Thông số kỹ thuật:

- Module nguồn không sử dụng cách ly


- Nguồn đầu vào từ 4V - 35V.
- Nguồn đầu ra: 1V - 30V.
- Dòng ra Max: 3A
- Kích thước mạch: 53mm x 26mm

Hình 2. 11 Module LM 2596

GV: Phạm Hữu Chiến 30 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.4 Bộ nguồn
Với đề tài này, nhóm đồ án sử dụng 4 viên pin 18650 mắc nối tiếp với nhau để
cấp nguồn cho mô hình hoạt động.

Hình 2. 12 Sơ đồ đấu nối mạch sạc cho 4 cell pin 18650

GV: Phạm Hữu Chiến 31 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Mạch sạc cân bằng và bảo vệ pin 4s

Hình 2. 13 Mạch sạc cân bằng và bảo vệ pin 4s

 Thông số kỹ thuật
- Sử dụng sạc: 16.8V (4.2V * 4 cell)
- Điện thế xả cạn của mạch: 14.4V
- Điện thế sạc đầy của mạch: 16.8V
- Dòng xả liên tục (hoạt động): 40A
- Dòng xả quá tải (tức thời): 90A
- Sạc và xả chung 1 cổng
- Có chế độ cân bằng cell pin

GV: Phạm Hữu Chiến 32 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Pin 18650

Hình 2. 14 Pin 18650

 Thông số kỹ thuật
- Điện áp 3.6V, sạc đầy 4.2V
- Dòng xả liên tục: 10A
- Nội trở: 14-18Ω
- Dung lượng pin: 2500-2600mAh

GV: Phạm Hữu Chiến 33 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.5 C m biến hồng ngoại


Cảm biến hồng ngoại sử dụng một cặp truyền và nhận tia hồng ngoại. Tia hồng
ngoại phát một tần số nhất định khi gặp vật cản sẽ phản xạ vào đèn thu hồng ngoại,
sau khi qua IC so sánh đèn báo sẽ sáng lên, đồng thời cho tín hiệu số đầu ra.

Hình 2. 15 Nguyên lý hoạt động của mắt thu phát hồng ngoại

Chúng ta có thể thấy rằng mắt phát hồng ngoại truyền trong một phạm vi giới
hạn và nó đi đến một khoảng cách nhất định vì không có đối tượng phản xạ lại nên
mắt thu hồng ngoại không thể phát hiện vật cản, ngược lại khi gặp vật cản cản ánh
sáng hồng ngoại được phản chiếu lại khi đó mắt thu sẽ phát hiện được vật cản và xuất
tín hiệu ra

GV: Phạm Hữu Chiến 34 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 2. 16 Ảnh hưởng của đối tượng tới việc phát hiện của cảm biến

Ngoài ra độ nhạy của cảm biến còn phụ thuộc vào về mặt vật cản gặp phải, ví
dụ như các vật có xu hướng màu trắng có khả năng phản xạ ánh sáng hồng ngoại
mạnh hơn các vật cản có màu tối, các vật cản màu tối hấp thụ ánh sáng hồng ngoại
nhiều hơn và phản xạ lại ít hơn số lượng không đủ để mắt thu có thể phát hiện.

Sử dụng nguyên lý này người ta có thể chế tạo xe chạy theo vạch trắng hoặc
vạch đen gọi là xe dò line

GV: Phạm Hữu Chiến 35 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.5.1 C m biến vật c n hồng ngoại LM393

Hình 2. 17 Module cảm biến hồng ngoại LM393

 Nguyên lý hoạt động

Hình 2. 18 Sơ đồ nguyên lý cảm biến vật cản hồng ngoại

Led phát hồng ngoại ( IR LED ) luôn luôn phát ra sóng ánh sáng có bước sóng
hồng ngoại mắt người không thể nhìn thấy ánh sáng này, vì vậy người ta sử dụng led
thu hồng ngoại, led thu hồng ngoại bình thường nó có nội trở rất lớn ( vài trăm KΩ ),
khi led thu được tia hồng ngoại chiếu vào đủ lớn thì nội trở của nó giảm xuống (cỡ vài
chục Ω).

GV: Phạm Hữu Chiến 36 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Khi gặp vật cản, những chùm tia hồng ngoại gặp vật cản và phản xạ lại led thu
làm led thu thay đổi giá trị điện trở. Ở đây chúng ta thấy cầu chia áp ở điện trở R2 và
mắt thu hồng ngoại, sự thay đổi điện trở của mắt thu hồng ngoại dẫn đến điện áp đầu
vào chân 3 Op-Amp cũng thay đổi.

Khi khoảng cách càng gần, sự thay đổi càng lớn.

Khi đó, điện áp đầu vào chân 3 Op-Amp được so sánh với giá trị điện áp không
đổi gim trên biến trở R3, nếu điện áp chân 3 Op-Amp lớn hơn điện áp chân 2 Op-Amp
thì Op-Amp xuất mức 1 ( bằng VCC) . Ngược lại nếu điện áp chân 3 Op-Amp nhỏ
hơn điện áp chân 2 Op-Amp thì Op-Amp xuất mức 0 ( bằng GND)

Điện trở như R1 (150 Ω), R2 (10K Ω ), R4 (1 KΩ ) giúp các led hoạt động mà
không bị cháy

Biến trở R3 dùng để chỉnh độ nhạy của biến trở

 Thông số kỹ thuật.
- Điện áp cung cấp cho mạch: 3.3V-5V.
- Bộ so sánh dùng Op Amp LM358 hoặc LM393.
- Khoảng cách đo: 2~5cm.
- Đầu ra kỹ thuật số mức ( 1 và 0 ).

GV: Phạm Hữu Chiến 37 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.5.2 C m biến hồng ngoại QTR-5RC

Hình 2. 19 Module cảm biến hồng ngoại QTR-5RC

 Thông số kỹ thuật
- Sử dụng chip: 74HC14D
- Điện áp: 3.3V-5V
- Kiểu đầu ra: Digital Signal
- Khoảng cách đo: 1CM-1.5CM
- Cảm biến: TCRT5000L
- Tín hiệu nhận biết: Gặp màu trắng: đầu ra mức cao, Gặp màu đen hoặc
ngoải dải nhận biết tín hiệu mức thấp

GV: Phạm Hữu Chiến 38 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.6 Module RFID RC522


RFID là viết tắt của “Radio requency Identification”, có nghĩa là nhận dạng
bằng tần số radio. Đây là một công nghệ sử dụng sóng radio để truyền và nhận dạng
thông tin từ một thẻ hoặc một thiết bị RFID. Hệ thống RFID bao gồm ít nhất hai thành
phần chính: một thẻ RFID (hay còn gọi là tag RFID) và một đầu đọc RFID (hay còn
gọi là reader RFID).

Hình 2. 20 Nguyên lý hoạt động của RFID

Thẻ R ID thường được gắn vật lên vật thể, nó chứa một anten để thu phát sóng
radio và một chip chứa thông tin cần được nhận dạng. Đầu đọc RFID sử dụng sóng
radio để truyền đi và nhận lại thông tin từ thẻ RFID. Khi thẻ R ID được đặt trong
phạm vi hoạt động của đầu đọc RFID, thông tin từ thẻ sẽ được truyền đến đầu đọc
R ID để xử lý và xác định thông tin nhận dạng.

 Tổng quan về phần cứng

Module RFID RC522 là một module sử dụng công nghệ R ID để đọc và ghi
thông tin từ các thẻ R ID. Nó được sử dụng phổ biến trong các dự án Arduino và các
ứng dụng liên quan đến nhận dạng và theo dõi.

Module RFID Arduino bao gồm một chip đọc RFID MFRC522 và các thành
phần khác như anten và các linh kiện điện tử. Chip MFRC522 có khả năng đọc và ghi
dữ liệu từ các thẻ RFID tiêu chuẩn, bao gồm các loại thẻ MIFARE và các loại thẻ
tương thích.

GV: Phạm Hữu Chiến 39 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 2. 21 Module RFID RC522 và thẻ RFID

Module RFID RC522 kết nối với Arduino thông qua giao tiếp SPI (Serial
Peripheral Interface) hoặc I2C và UART.

Để sử dụng module RFID RC522, cần có thư viện hỗ trợ cho Arduino như thư
viện MFRC522, giúp dễ dàng giao tiếp và điều khiển module. Thông qua thư viện
này, bạn có thể đọc thông tin từ thẻ RFID, xác minh chúng và thực hiện các hoạt động
như đọc mã số, ghi dữ liệu, kiểm tra trạng thái và điều khiển anten.

 Thông số kỹ thuật
- Nguồn sử dụng: 3.3VDC
- Dòng điện:13~26mA
- Tần số hoạt động: 13.56Mhz
- Khoảng cách hoạt động: 0~60mm (mifare1 card)
- Chuẩn giao tiếp: SPI
- Tốc độ truyền dữ liệu: tối đa 10Mbit/s
- Các loại card RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight,
mifare Pro, mifare Desfire
- Kích thước: 40mm × 60mm

GV: Phạm Hữu Chiến 40 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Sơ đồ chân Module RFID RC522

Hình 2. 22 Sơ đồ chân Module RFID RC522

 SDA (Serial Data): Dùng để truyền và nhận dữ liệu giữa module RFID RC522
Arduino.

 SCK (Serial Clock): Dùng để đồng bộ hóa truyền thông SPI giữa module
RFID RC522 và Arduino.

 MOSI (Master Output Slave Input): Dùng để truyền dữ liệu từ Arduino tới
module RFID RC522.

 MISO (Master Input Slave Output): Chân đầu vào của Arduino nối với chân
MISO trên module R ID RC522. Dùng để nhận dữ liệu từ module RFID
RC522 về Arduino qua giao thức SPI.

 IRQ (Interrupt Request): Chân ngắt không được sử dụng trong một số ứng
dụng của module RFID RC522. Nếu sử dụng, chân này được sử dụng để xác
định xem module RFID RC522 có sự kiện cần xử lý hay không.

 GND (Ground): Chân đất kết nối với chân GND trên Arduino.

 RST (Reset): Chân đặt lại (reset) module R ID RC522. Khi chân này được
kích hoạt, module sẽ được đặt lại về trạng thái ban đầu.

 3.3V: Nguồn cấp 3.3V cho module

2.7 ESP8266

GV: Phạm Hữu Chiến 41 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 2. 23 Module Wifi ESP8266

ESP8266 là một module Wi-Fi với khả năng kết nối Internet và được tích hợp
sẵn trên một số board nhúng như NodeMCU, Wemos, và ESP-01. ESP8266 có thể
hoạt động như một điểm truy cập (access point), một client kết nối đến một điểm truy
cập khác, hoặc cả hai đều được. Nó được sử dụng rộng rãi trong các ứng dụng IoT
(Internet of Things) như cảm biến thông minh, hệ thống kiểm soát thiết bị, hoặc các
ứng dụng điều khiển từ xa. Module này có giá thành rẻ và rất dễ sử dụng, cùng với đó
là khả năng tương thích với nhiều loại vi điều khiển khác nhau.

GV: Phạm Hữu Chiến 42 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Module NodeMCU ESP8266

Hình 2. 24 NodeMCU ESP8266

ESP8266 NodeMCU là một nền tảng IoT mã nguồn mở, được phát triển bởi
một nhóm kỹ sư tại Trung Quốc. Nền tảng này được xây dựng trên ESP8266, một vi
điều khiển Wi- i SoC (System on a Chip) được sản xuất bởi Espressif Systems.
NodeMCU cung cấp một bộ SDK để lập trình cho ESP8266 bằng ngôn ngữ Lua hoặc
C++. Với các tính năng như Wi-Fi, GPIO, ADC, I2C, SPI, PWM và một số tính năng
khác, NodeMCU ESP 8266 được sử dụng rộng rãi trong các ứng dụng IoT như kiểm
soát thiết bị, thu thập dữ liệu và giao tiếp với các thiết bị khác.

GV: Phạm Hữu Chiến 43 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Thông số kỹ thuật của NodeMCU

 Microcontroller: ESP8266EX

 Điện áp hoạt động: 3.3V DC

 Số chân I/O: 17 chân GPIO

 Kết nối mạng: WiFi 802.11 b/g/n

 Giao diện mạng: TCP/IP

 Đồng hồ thời gian thực (RTC): không tích hợp

 Bộ nhớ trong: 4MB

 RAM: 80KB

 Cổng nạp: Micro-USB

 Hỗ trợ các giao thức: MQTT, CoAP, HTTP/HTTPS

 Kích thước: 49 x 24.5 x 13mm

Hình 2. 25 Sơ đồ chân NodeMCU ESP8266

GV: Phạm Hữu Chiến 44 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

2.8 Gi i thiệ hầm mềm Ar ino IDE

2.8.1 Phần mềm Arduino IDE là gì


Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết và
biên dịch mã vào module Arduino.

Đây là một phần mềm Arduino chính thức, giúp cho việc biên dịch mã trở nên
dễ dàng mà ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thể
làm được.

Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy
trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trò quan trọng để
gỡ lỗi, chỉnh sửa và biên dịch mã trong môi trường.

Có rất nhiều các module Arduino như Arduino Uno, Arduino Mega, Arduino
Leonardo, Arduino Micro và nhiều module khác.

Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp
nhận thông tin dưới dạng mã.

Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file
Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo.

Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên
dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên
dịch và tải mã lên module Arduino.

Môi trường này hỗ trợ cả ngôn ngữ C và C ++.

2.8.2 Ar ino IDE hoạt độn nh thế n o


Khi người dùng viết mã và biên dịch, IDE sẽ tạo file Hex cho mã. File Hex là
các file thập phân Hexa được Arduino hiểu và sau đó được gửi đến bo mạch bằng cáp
USB. Mỗi bo Arduino đều được tích hợp một bộ vi điều khiển, bộ vi điều khiển sẽ
nhận file hex và chạy theo mã được viết.

2.8.3 Cách t i Ar ino IDE


Bạn có thể tải phần mềm từ trang web chính thức của Arduino. Như đã nói
trước đó, phần mềm có các phiên bản cho các hệ điều hành phổ biến như Linux,
Windows và MAC, vì vậy hãy đảm bảo tải xuống đúng phiên bản phần mềm tương
thích với hệ điều hành của bạn.

GV: Phạm Hữu Chiến 45 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Nếu bạn muốn tải xuống phiên bản ứng dụng Windows, bạn phải có Windows
8.1 hoặc Windows 10, vì phiên bản ứng dụng không tương thích với Windows 7 hoặc
phiên bản cũ hơn của hệ điều hành này.

2.8.4 Các chức năn củ Ar ino IDE


Arduino IDE bao gồm các phần khác nhau

1. Window bar
2. Menu bar
3. Phím tắt
4. Text Editor
5. Output Panel

Hình 2. 26 Giao diện phần mềm Arduino IDE

 Window bar

Thanh cửa sổ bao gồm tên của File và phiên bản phần mềm Arduino IDE

GV: Phạm Hữu Chiến 46 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Menu bar

Thanh menu bao gồm

 File
 Edit
 Sketch
 Tools
 Help

 File

New: tạo một file mới. (Ctrl + N)


Open: sử dụng để mở file đã được lưu trước đó. (Ctrl + O)
Open Recent: hiển thị danh sách rút gọn các chương trình đã mở gần đây.
Sketchbook: hiển thị các sketch hiện tại mà bạn đã sử dụng cho project của mình
Examples: Ví dụ về một vài vấn đề cơ bản để tham khảo.
Close: đóng cửa sổ màn hình chính. (Ctrl + W)
Save: được sử dụng để lưu sketch hiện tại. (Ctrl + S)
Save as… : cho phép lưu sketch hiện tại với một tên khác. (Ctrl + Shift + S)
Page setup: cài đặt trang để sửa đổi trang (Văn bản). (Ctrl + Shift + P)

GV: Phạm Hữu Chiến 47 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Print: được sử dụng để in chương trình hiện tại. (Ctrl + P)


Preferences: cài đặt của phần mềm IDE có thể được thay đổi tại đây. (Ctrl +,)
Quit: đóng tất cả các cửa sổ IDE. (Ctrl + Q)

 Edit

Undo / Redo: quay lại một hoặc nhiều bước bạn đã làm trong khi chỉnh sửa.
Cut: cắt văn bản đã chọn khỏi trình chỉnh sửa.
Copy: sao chép văn bản đã chọn từ trình chỉnh sửa
Copy for orum: sao chép và thay đổi kiểu mã phù hợp với diễn đàn.
Copy as HTML: sao chép và thay đổi kiểu mã phù hợp với HTML.
Paste: dán văn bản từ văn bản đã sao chép.
Select All: chọn tất cả nội dung từ trình chỉnh sửa.
Comment / Uncomment: sử dụng để ghi chú và bỏ ghi chú các dòng mã đã chọn.
Increase / Decrease Indent: thêm hoặc xóa một khoảng trắng ở đầu mỗi dòng đã chọn
ind: tìm văn bản đã nhập trong trình chỉnh sửa
ind next: tìm vị trí tiếp theo của từ đang tìm kiếm.
Find previous: tìm vị trí trước đó của từ đang tìm kiếm.

GV: Phạm Hữu Chiến 48 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Sketch

Verify / Compile: kiểm tra hoặc xác minh chương trình của bạn nếu có bất kỳ lỗi nào
và hiển thị trong bảng đầu ra.
Upload: biên dịch và tải mã lên bo Arduino.
Upload using programmer: tải mã lên bằng Programmer có sẵn trong tab Tools.
Export Compiled Binary: lưu file .hex trong hệ thống
Show Sketch older: mở thư mục sketch hiện tại.
Include Library: thêm thư viện vào sketch của bạn bằng cách chèn các câu lệnh
#include vào đầu mã
Add ile… : thêm một file vào sketch và file mới xuất hiện trong tab mới trong cửa
sổ.

GV: Phạm Hữu Chiến 49 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

 Tools

Auto ormat: định dạng mã của bạn thành một định dạng đẹp để mọi người có thể
hiểu.
Archive Sketch: sao chép mã sang định dạng winrar (. ip)
ix Encoding & Reload: khắc phục sự khác biệt có thể có giữa mã hóa bản đồ char
của trình soạn thảo và các bản đồ char của hệ điều hành khác.
Serial Monitor: màn hình nối tiếp hiển thị giao tiếp trực quan bằng cách gửi và nhận
dữ liệu
Board: để chọn loại bo Arduino
Port: để chọn cổng mà bạn đã kết nối Arduino
Programmer: để chọn một programmer phần cứng khi lập trình bo mạch hoặc chip và
không sử dụng kiểu giao tiếp USB.
Burn Bootloader: được sử dụng để ghi bộ nạp khởi động vào bo Arduino

 Output panel

GV: Phạm Hữu Chiến 50 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Bảng đầu ra này được sử dụng để đưa ra nhận xét về mã

 Nếu mã được biên dịch thành công hoặc bất kỳ lỗi nào xảy ra.
 Nếu mã đã được tải lên bo thành công.

Bo đã chiếm bao nhiêu không gian.

 Thư viện
Các thư viện rất hữu ích để thêm chức năng bổ sung vào module Arduino. Có một
danh sách các thư viện bạn có thể thêm bằng cách nhấp vào nút Sketch trong thanh
menu và đi tới Include Library.
Khi bạn nhấp vào Include Library và Thêm thư viện tương ứng, nó sẽ xuất hiện trên
đầu sketch với ký hiệu #include. Giả sử, bạn thêm thư viện EEPROM, nó sẽ xuất hiện
trên trình soạn thảo văn bản dưới dạng
#include .

Hầu hết các thư viện đều được cài đặt sẵn và đi kèm với phần mềm Arduino. Tuy
nhiên, bạn cũng có thể tải xuống từ các nguồn bên ngoài.

 Chân đầu vào hoặc đầu ra


Các lệnh digitalRead và digitalWrite được sử dụng để định địa chỉ và tạo các chân
Arduino làm đầu vào và đầu ra tương ứng. Các lệnh này có độ nhạy văn bản, tức là
bạn cần viết chúng theo cách chính xác như digitalWrite bắt đầu bằng chữ "d" nhỏ và
viết hoa "W". Nếu bạn viết Digitalwrite hoặc digitalwrite sẽ không gọi bất kỳ chức
năng nào.

 Cách chọn bo
Để tải sketch lên, bạn cần chọn bo mạch phù hợp mà bạn đang sử dụng và các cổng
cho hệ điều hành đó. Bạn nhấp vào Tool trên Menu, đi tới phần Board và chọn bo bạn
muốn làm việc. Tương tự, COM1, COM2, COM4, COM5, COM7 hoặc cao hơn được
dành riêng cho bo Serial và bo USB. Bạn có thể tìm thiết bị serial USB trong phần
cổng của Windows Device Manager.

Sau khi lựa chọn chính xác cả Bo mạch và Cổng Serial, hãy nhấp vào nút Verify và
sau đó là nút Upload xuất hiện ở góc trên bên trái của phần sáu nút hoặc bạn có thể
chuyển đến phần Sketch và nhấn verify / compile rồi tải lên.
Sketch được viết trong trình soạn thảo văn bản và sau đó được lưu với phần mở rộng
tệp .ino.

GV: Phạm Hữu Chiến 51 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Điều quan trọng cần lưu ý là các module Arduino gần đây sẽ tự động đặt lại khi bạn
biên dịch và nhấn nút tải lên phần mềm IDE. Tuy nhiên các phiên bản cũ có thể yêu
cầu thiết lập lại vật lý trên bo mạch.
Sau khi bạn tải mã lên, đèn LED TX và RX sẽ nhấp nháy trên bo, cho biết chương
trình mong muốn đang chạy thành công.
Lưu ý: Các tiêu chí lựa chọn cổng được đề cập ở trên chỉ dành riêng cho hệ điều hành
Windows.
Điều đáng ngạc nhiên về phần mềm này là không quá phức tạp khi cài đặt phần mềm,
và bạn có thể viết chương trình đầu tiên của mình trong vòng 2 phút sau khi cài đặt
môi trường IDE.

 Bootloader
Khi bạn đi đến phần Tool, bạn sẽ tìm thấy Bootloader ở cuối. Việc ghi mã trực tiếp
vào bộ điều khiển sẽ rất hữu ích, bạn không cần phải mua ổ ghi bên ngoài để ghi mã.
Khi bạn mua module Arduino mới, bootloader đã được cài đặt bên trong bộ điều
khiển. Tuy nhiên, nếu bạn định mua một bộ điều khiển và đặt vào module Arduino,
bạn cần ghi lại bootloader bên trong bộ điều khiển bằng cách chuyển đến phần Tools
và chọn Burn Bootloader.

GV: Phạm Hữu Chiến 52 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Ch ơn Thiết kế hệ thốn điều khiển và thuật toán di chuyển


của robot

.1 Sơ đồ khối chung của hệ thống

Hình 3. 1 Sơ đồ khối hệ thống điều khiển

Mô hình robot gồm bộ điều khiển trung tâm là vi điều khiển Arduino. Động cơ
được điều khiển qua module cầu H L298N bằng xung PWM cấp từ vi điều khiển.
Cảm biến hồng ngoại đo giá trị độ lệch của xe và hồi tiếp về vi điều khiển. Tín hiệu
trả về của cảm biến hồng ngoại là tín hiệu analog. Vi điều khiển nhận chỉ dẫn của điện
thoại thông qua Module Wifi ESP8266.

GV: Phạm Hữu Chiến 53 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

3.2 Thiết kế bộ điều khiển PID


Thuật toán PID (Proportional Integral Derivative) là một trong những thuật
toán quan trọng của đề tài, PID giúp cho hướng đi của robot ổn định hơn, đây cũng là
mục tiêu quan trọng của đề tài đặt ra.

Một 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 được sử
dụng phổ biến nhất trong số các bộ điều khiển phản hồi. Một bộ điều khiển PID tính
toán một 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 về quá trình, bộ điều
khiển PID là 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.

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


( )
𝑂𝑢𝑡𝑝𝑢𝑡 = 𝐾𝑝 * 𝑒 (t) + 𝐾 ∫ 𝑒(𝑡 ) 𝑡 + Kd (3.11)

Khâu tích phân được rời rạc hóa với thời gian lấy mẫu là như sau:

∫ 𝑒(𝑡) 𝑡 ∑ 𝑒(𝑡) 𝑡 (3.12)

Khâu vi phân được rời rạc bằng sai phân hữu hạn lùi:

( ) ( ) ( )
(3.13)

Từ đây ta xây dựng được đoạn chương trình của bộ điều khiển PID như sau:

GV: Phạm Hữu Chiến 54 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

error = setpoint - Output (3.14)

integral = integral + (error*dt) (3.15)

derivative = (error - previous_error)/dt (3.16)

output = (Kp*error) + (Ki*integral) + (Kd*derivative) (3.17)

Trong đó:

- Setpoint: Giá trị ban đầu cần ổn định.

- Output: Giá trị đầu ra.

- dt: Thời gian lấy mẫu.

- Kp, Ki, Kd: Các hệ số PID.

Áp dụng phương pháp chỉnh định bằng tay ta tìm ra được các hệ sô Kp, Ki, Kd.
Mô phỏng hệ thống bằng các khối Simulink

Hình 3. 3 Sơ đồ khối sử dụng PID điều khiển động cơ

Thử nghiệm bằng PID tuner. Kết quả sau nhiều lần thử nghiệm các hệ số
Kp=0.4; Ki=0.001; Kd=0.01

GV: Phạm Hữu Chiến 55 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 3. 4 Kết quả mô phỏng trên matlab

GV: Phạm Hữu Chiến 56 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 3. 5 Chương trình PID điều khiển tốc độ động cơ.

GV: Phạm Hữu Chiến 57 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

3.3 Thuật toán điều khiển robot

Hình 3. 6 Lưu đồ thuật toán của robot giao và trả hang

Robot được đặt vào vị trí xuất phát. Sau khi nhận được tín hiệu lấy hàng robot
sẽ di chuyển đến vị trí nhận hàng. Sau đó nhận tín hiệu trả hàng robot sẽ đến vị trí trả
hàng và về vị trí xuất phát để chờ tín hiệu nhận hàng tiếp theo.

GV: Phạm Hữu Chiến 58 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Ch ơn 4 Mô hình v kết luận


4.1 Gi i thiệu mô hình

Hình 4. 1 Mô hình robot tự hành

GV: Phạm Hữu Chiến 59 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

Hình 4. 2 Mặt bên của robot

GV: Phạm Hữu Chiến 60 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

4.2 Kết luận

4.2.1 Những nhiệm vụ đã thực hiện


- Tìm hiểu được quá trình hình thành và phát triển của robot.

- Tìm hiểu về Arduino

- Nghiên cứu phần cứng của đề tài

- Sưu tầm tài liệu tham khảo về phục vụ cho việc nghiên cứu

- Nghiên cứu, học hỏi phương pháp lập trình Arduino và các vi xử lý khác

4.2.2 Những nhiệm vụ ch thực hiện đ ợc


- Do đồ án có kinh phí hạn hẹp nên chỉ hoàn thành được phần nhiệm vụ di
chuyển của robot mà chưa hoàn thành được chức năng chở hàng của robot.

- Giải thuật điều khiển của robot chỉ đáp ứng cho một số kiểu mô hình kho
hàng nhất định.

- Đây chỉ là mô hình nên không thể hoạt động trong kho xưởng thực được.

- Còn một số tác nhân bên ngoài ảnh hưởng đến quá trình hoạt động của robot
mà chưa thể xử lý ngay được

4. H ng phát triển củ đề tài


- Muốn robot có thể hoạt động ổn định trong môi trường công nghiệp cần nâng
cấp phần cứng để đảm bảo độ chính xác, ổn định của robot như chất liệu của khung
robot, bánh xe và động cơ, tính được trọng lượng có thể chở của robot.

- Định hướng đường đi của mô hình là dùng cảm biến hồng ngoại để dò line,
tuy nhiên trong công nghiệp ít khi sử dụng loại, thay vào đó sử dụng cảm biến radar
và sơ đồ nhà máy để tìm đường ngắn nhất đến vị trí đích hay có thể dùng cảm biến từ
và các line bằng từ dẫn đường cho robot

- Ngoài ra cần nâng cấp hệ thống cảnh báo va chạm vật như còi, cảm biến siêu
âm

- Thay đổi thuật toán điều khiển robot để phù hợp với các kiểu nhà xưởng khác
nhau.

GV: Phạm Hữu Chiến 61 SVTH: Nguyễn Văn Hò


Đồ án Tự động hóa

TÀI LIỆU THAM KHẢO

[1] Trịnh Chất – Lê Văn Uyển, “Tính toán thiết kế hệ dẫn động cơ khí”, nhà
xuất bản giáo dục, 2006.

[2] Ninh Đức Tốn, Nguyễn Thị Xuân Bảy, “Giáo trình Dung sai lắp ghép và
Kỹ thuật đo lường”, nhà xuất bản giáo dục, 2006.

[3] Sudha Arora, A. K. Rain, A. K. Mittal, “Hybrid Control in Automated


Guided Vehicle Systems”, 2001 IEEE Intelligent Transportation Systems Conference
Proceedings - Oakland (CA), USA - August 25 - 29, 2001.

[4] Ryan G. Rosandich, Richard R. Lindeke, Jeff Be (2007), “Developing An

Automatic Guided Vehicle or Small To Medium Si ed Enterprises”,

[5] Anh Son Tran, Ha Quang Thinh Ngo. “Research and manufacture of
automated guided vehicle for the service of storehouse”, tạp chí phát triển khoa học và
công nghệ - chuyên san kỹ thuật & công nghệ, tập 1, số 1, 2018.

[6] https://github.com/

GV: Phạm Hữu Chiến 62 SVTH: Nguyễn Văn Hò

You might also like