Chương này trình bày một số lý thuyết về xử lý ảnh, vi điều khiển và trình bày về một số linh kiện sử dụng trong mạch.. Là 1 công nghệ ra đời từ những năm 1960, tuy nhiên thì vào thời đi
Trang 1KHOA ĐIỆN - ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG
ROBOT NHẬN BIẾT MÀU VÀ HÌNH SỬ DỤNG
PHƯƠNG PHÁP NHẬN DẠNG ĐƯỜNG BIÊN
GVHD: TS NGUYỄN VĂN THÁI SVTH: ĐINH BÁ CAO
MSSV: 12141019 SVTH: ĐƯỜNG QUỐC QUYỀN MSSV: 12141186
S K L 0 0 4 4 1 9
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP -
Trang 3KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP
Trang 4Đề tài này là do tôi tự thực hiện dựa vào một số tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó
Người thực hiện đề tài
Trang 5
Trong suốt thời gian học tại Trường Đại học Sư phạm Kỹ thuật TP.HCM, nhờ sự giúp đỡ tận tình của quý thầy cô về mọi mặt nên đề tài tốt nghiệp của chúng em đã được hoàn thành
Chúng em xin gởi lòng biết ơn chân thành đến Bộ môn Điện tử công nghiệp cùng quý thầy cô trong khoa Điện-Điện Tử đã giảng dạy những kiến thức chuyên môn làm cơ
sở để nhóm sinh viên chúng em thực hiện tốt đề tài
Đặc biệt, chúng em xin gởi lời cảm ơn sâu sắc đến Thầy TS Nguyễn Văn Thái đã trực tiếp hướng dẫn và trong suốt quá trình làm đồ án thầy luôn quan tâm, tận tình giúp
đỡ tạo điều kiện để chúng em hoàn thành tốt đề tài
Em cũng gửi lời đồng cảm ơn đến các bạn lớp 12141DT1C đã chia sẻ, đóng góp ý kiến, trao đổi kiến thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện
đề tài
Cảm ơn đến cha mẹ và người thân đã tận tình nhắc nhở chúng em, tạo cho chúng
em nguồn động lực to lớn để hoàn thành đề tài
Chúng em xin chân thành cảm ơn!
Trang 6Trang bìa i
Nhiệm vụ đồ án ………ii
Lịch trình iii
Cam đoan iv
Lời cảm ơn v
Mục lục vi
Liệt kê hình vẽ ix
Liệt kê bảng vẽ xi
Tóm tắt xii
CHƯƠNG 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 1
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN 2
1.5 BỐ CỤC 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 GIỚI THIỆU VỀ XỬ LÝ ẢNH 4
2.1.1 Tổng quan về xử lý ảnh 4
2.1.2 Một số khái niệm cơ bản trong xử lý ảnh 5
2.1.2.1 Điểm ảnh 5
2.1.2.2 Phân loại ảnh 6
2.1.2.3 Độ phân giải 7
2.1.3 Không gian màu HSV 7
2.1.4 Thư viện EmguCV 8
2.2 KHỐI VI ĐIỀU KHIỂN 9
2.2.1 Sơ lược về cấu trúc của vi điều khiển 9
2.2.2 Vi điều khiẻn PIC 18F4550 10
2.2.3 Sơ đồ chân PIC18F4550 12
Trang 72.2.4.1 Cấu trúc khối điều chế độ rộng xung PWM 17
2.2.4.2 Tính chu kỳ xung PWM 17
2.2.4.3 Tính hệ số chu kỳ xung PWM 18
2.2.5 Ngắt của vi điều khiển PIC18F4550 18
2.2.6 Truyền/nhận dữ liệu UART 19
2.3 MỘT SỐ THIẾT BỊ NGOẠI VI KHÁC 20
2.3.1 Cảm biến ENCODER 20
2.3.2 PICKit 2 FULL Program/Debug 21
2.3.3 PL2303 HX Cable 22
2.3.4 Động cơ DC 22
2.3.5 Relay OEG-OMI-SS-124L 23
2.3.6 OPTO PC817 24
2.3.7 MOSFET IRF540N 25
2.3.8 Webcam Logitech C615 26
2.3.9 Cảm biến siêu âm SRF005 27
CHƯƠNG 3 : THIẾT KẾ VÀ TÍNH TOÁN 29
3.1 GIỚI THIỆU 29
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 29
3.2.1 Sơ đồ khối hệ thống 29
3.2.1.1 Ứng dụng nhận dạng màu sắc 30
3.2.1.2 Lưu đồ điều khiển Robot 38
3.2.2 Tính toán thiết ké ứng dụng 39
3.2.3 Tính toán và thiết kế mạch 43
3.2.3.1 Mạch nguồn 43
3.2.3.2 Khối điều khiển động cơ: 44
3.2.4 Sơ đồ nguyên lí toàn mạch 50
CHƯƠNG 4 : THI CÔNG HỆ THỐNG 51
4.1 THI CÔNG ỨNG DỤNG 51
4.1.1 Phần mềm thiết kế 51
Trang 84.1.3 Thi công giao diện: 53
4.1.4 Thi công mẫu vật 57
4.2 THI CÔNG MẠCH 57
4.3 LẮP RÁP VÀ ĐÓNG GÓI MẠCH 61
4.4 QUY TRÌNH THAO TÁC SỬ DỤNG 67
CHƯƠNG 5 : KẾT QUẢ NHẬN XÉT VÀ ĐÁNH GIÁ 69
5.1 BOARD MẠCH IN 69
5.2 NGUỒN 69
5.3 ĐỘNG CƠ DC 69
5.4 CẢM BIẾN ENCODER: 69
5.5 KẾT QUẢ MÔ PHỎNG ỨNG DỤNG 70
5.6 KẾT QUẢ MÔ PHỎNG ROBOT 73
CHƯƠNG 6 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 75
6.1 TÓM TẮT ĐỀ TÀI 75
6.2 KẾT LUẬN 75
6.3 HƯỚNG PHÁT TRIỂN 76
TÀI LIỆU THAM KHẢO : 77
MỘT SỐ TRANG WEB THAM KHẢO KHÁC : 78
PHỤ LỤC 79
Trang 9Hình 2.1: Không gian màu HSV 7
Hình 2.2 : Vi điều khiển PIC16F4550 10
Hình 2.3 : Cấu hình PIC18F4550 12
Hình 2.4 : Sơ đồ chân PIC18F4550 13
Hình 2.5 : Điều chế độ rộng xung với các hệ số chu kì khác nhau 16
Hình 2.6 : Cấu trúc khối điều chế độ rộng xung PWM 17
Hình 2.7 : Encoder và bánh xe gắn cho encoder 20
Hình 2.8 : Hình mô phỏng cách đếm số xung từ encoder 20
Hình 2.9 : Xung từ hai kênh của encoder 21
Hình 2.10 :Mạch nạp cho vi điều khiển PIC 22
Hình 2.11 : Cáp PL2303 HX 22
Hình 2.12 : Điều khiển động cơ DC chạy thuận 23
Hình 2.13 : Điều khiển động cơ DC chạy ngược 23
Hình 2.14 : Relay loại 8 chân 24
Hình 2.15 : Opto PC817 24
Hình 2.16 : Hình dáng và ký hiệu của IRF540 25
Hình 2.17 : Webcam Logitech C615 26
Hình 2.18 : Cảm biến siêu âm SRF005 27
Hình 3.1 : Sơ đồ tổng quát 29
Hình 3.2 : Sơ đồ khối giao diện điều khiển 30
Hình 3.3 : Lưu đồ giải thuật tiền xử lý ảnh và nhận dạng màu sắc 31
Hình 3.4 : Lưu đồ giải thuật nhận dạng hình tam giác 33
Hình 3.5 : Lưu đồ giải thuật nhận dạng hình chữ nhật 35
Hình 3.6 : Lưu đồ giải thuật nhận dạng hình tròn 36
Hình 3.7 : Lưu đồ giải thuật truyền/nhận dữ liệu giữa ứng dụng và Robot 37
Hình 3.8 : lưu đồ điều khiển Robot 38
Hình 3.9 : Chọn chỉ số HSV để nhận dạng 40
Hình 3.10 : Khung ảnh giá trị màu H 40
Hình 3.11 : RadioButton chọn hình khối 41
Trang 10Hình 3.13 : Nút nhấn trong ứng dụng 41
Hình 3.14 : Nút nhấn và Combobox để kết nối với cổng COM 42
Hình 3.15 : TextBox hiển thị dữ liệu truyền nhận 42
Hình 3.16 : TextBox hiển thị tọa độ tâm vật 42
Hinh 3.17 : mạch nguồn 43
Hình 3.18 : Điều khiển động cơ DC dùng cặp Relay đảo chiều 45
Hình 3.19 : Mạch điều xung (PWM) và mạch động lực đảo chiều động cơ 46
Hình 3.20 : Mạch đảo chiều động cơ 48
Hình 3.21 : Mạch điều khiển xung PWM 49
Hình 3.22 : Sơ đồ nguyên lý toàn mạch 50
Hình 4.1 : Giao diện khởi động của Visual Studio 2013 53
Hình 4.2 : Tạo một ứng dụng trong Visual Studio 2013 54
Hình 4.3 : Giao diện thiết kế ứng dụng 55
Hình 4.4 : Thêm control của EmguCV vào Toolbox 56
Hình 4.5 : Mẫu vật màu xanh và đỏ 57
Hình 4.6 : Lấy linh kiện trong ORCAD 59
Hình 4.7 : Cách tạo file Netlist 60
Hình 4.8 : Chỉnh lại độ phân giải màn hình trong ORCAD 61
Hình 4.9 : Khung xe và pin 62
Hình 4.10 : Động cơ và bánh xe trái 62
Hình 4.11 : Động cơ và bánh xe phải 63
Hình 4.12 : Bánh xe đa hướng trước 63
Hình 4.13 : Encoder trái và phải 64
Hình 4.14 : Thân sau của Robot 64
Hình 4.16 : Mặt trên mạch điều khiển Robot 65
Hình 4.17 : Mặt dưới mạch điều khiển Robot 66
Hình 4.18 : Robot hoàn chỉnh 66
Hình 4.19 : Kết nối ứng dụng với Robot 67
Hình 4.20 : các bước sử dụng ứng dụng 68
Trang 11Hình 5.2 : Textbox hiển thị tọa độ vật 70
Hình 5.3 : Kết nối cổng COM 71
Hình 5.4 : Dữ liệu truyền nhận được 71
Hình 5.5 : Ảnh tiền xử lý 71
Hình 5.6 : Ảnh sau khi nhận dạng màu sắc 72
Hình 5.7 : ảnh sau khi nhận dạng hình khối 72
Hình 5.8 : Ứng dụng chạy thực tế 73
Trang 12Bảng 2.1 : So sánh bốn loại pic 18F: 12
Bảng 2.2 Một thông số kỹ thuật của IRF540 (13) 25
Bảng 3.1 : Bảng màu HSV 32
Bảng 3.2 Dòng tiêu thụ của một số linh kiện trong mạch 44
Bảng 4.1 : Bảng danh sách các linh kiện sử dụng : 58
Bảng 5.1 : Thống kê Robot di chuyển tới vật: 73
Trang 13CHƯƠNG 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Sau cuộc cách mạng khoa học kỹ thuật, các phát minh, sáng chế vĩ đại không ngừng được xuất hiển biến những điều không tưởng thành sự thật và đã đưa nhân loại bước sang một nền văn minh hoàn toàn mới Trong đó, các lĩnh vực như công nghệ thông tin, điện tử, tự động hóa, các hệ thống truyền thông sử dụng sóng vô tuyến… ngày càng
có những bước phát triển vượt bậc
Nền văn minh nhân loại không ngừng vận động và phát triển, và như một quy luật
tự nhiên thì khoa học – công nghệ cũng đang tiến những bước rất mạnh mẽ, sức mạnh mà chúng mang lại đáp ứng được gần như là toàn bộ các nhu cầu cuộc sống của con người Năng suất lao động được nâng lên một cách tối đa, lao động chân tay được giảm hẳn, các Robot và các thiết bị tự động hóa khác đảm nhận các công việc nặng nhọc trong các nhà máy, xí nghiệp
Một trong những lĩnh vực đã góp phần tạo nên các thành tựu to lớn đó chính là công nghệ xử lý ảnh Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh tốt hơn hoặc một kết luận, từ đó phục vụ xử lý các công việc chính xác hơn
Thế giới ngày càng phát triển thì lĩnh vực tự động hóa cần phải được mở rộng hơn Những Robot phục vụ sản xuất cũng như sinh hoạt của con người ngày càng nhiều Công nghệ chế tạo Robot cũng ngày càng hoàn thiện và tinh vi Đồng thời, việc ứng dụng xử lý ảnh đã mang lại nhiều thuận lợi cho con người, các công việc được xử lý chính xác hơn
Xuất phát từ những nguyên nhân trên và để góp phần cũng cố những kiến thức đã
được học, nhóm chọn đề tài: “ROBOT NHẬN BIẾT MÀU VÀ HÌNH SỬ DỤNG PHƯƠNG PHÁP NHẬN DẠNG ĐƯỜNG BIÊN” để nghiên cứu và thi công mô hình
sản phẩm
1.2 MỤC TIÊU
Trang 14 Viết ứng dụng cho máy tính sử dụng công nghệ xử lý ảnh để xác định chính xác hình khối và màu sắc
vị trí hình khối và màu sắc theo yêu cầu
1.3 NỘI DUNG NGHIÊN CỨU
Visual Studio
1.4 GIỚI HẠN
Để phù hợp với mục đích nghiên cứu chuyên sâu về lập trình xử lý ảnh cũng như lập trình vi điều khiển điều khiển Robot, nhóm thực hiện đề tài chỉ chú trọng nghiên cứu những phần chính sau:
Visual Studio 2013
vị trí hình khối và màu sắc theo yêu cầu
Đề tài này không đi giải quyết vấn đề sau:
Trang 151.5 BỐ CỤC
Chương 1: Tổng Quan
Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nôi dung nghiên cứu, các giới hạn thông số và bố cục đồ án
Chương 2: Cơ Sở Lý Thuyết
Chương này trình bày một số lý thuyết về xử lý ảnh, vi điều khiển và trình bày về một số linh kiện sử dụng trong mạch
Chương 3: Thiết kế và tính toán
Nội dung chương là thiết kế sơ đồ hệ thống, sơ đồ từng khối Tính toán thiết kế mạch và ứng dụng trên máy tính
Chương 4 : Thi công hệ thống
Nội dung chương là thi công mạch và thi công ứng dụng
Trình bày kết quả của cả quá trình nghiên cứu làm, nhận xét và đánh giá kết quả đạt được
Chương 6: Kết luận và hướng phát triển
Trình bày những kết quả thu được so với dự kiến ban đầu, đề xuất hướng phát triển
đề tài
Trang 16CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VỀ XỬ LÝ ẢNH
2.1.1 Tổng quan về xử lý ảnh
Là 1 công nghệ ra đời từ những năm 1960, tuy nhiên thì vào thời điểm đó cấu hình
của máy tính chưa đủ mạnh để hỗ trợ công nghệ xử lý ảnh đòi hỏi tốc độ phải cao và tốn
nhiều bộ nhớ lưu trữ Vào thời điểm đó thì đã có nhiều trường đại học lớn và các viện
nghiên cứu trên thế giới như MIT đã trang bị những chiếc máy tính khổng lồ để nghiên
cứu về công nghệ này Từ những năm 1970 trở đi, cấu hình máy tính đã mạnh mẽ hơn,
các ứng dụng như cải thiện và nâng cao chất lượng ảnh, lưu trữ và truyền ảnh bắt đầu
được phổ biến hơn Còn ngày nay thì xử lý ảnh đang là 1 công nghệ làm thay đổi cuộc
sống giúp máy móc thay thế cho thị giác của con người
Xử lý ảnh là quá trình thao tác trên ảnh đầu vào có thể là một hình ảnh, một khung
hình video , đầu ra là một hình ảnh đáp ứng nhu cầu người dùng hay tập hợp các thông số
liên quan đến hình ảnh
Xử lý ảnh có thể được chia ra làm 3 lĩnh vực:
cho chất lượng một hình ảnh đã cũ trở lên rõ, nét như khi nó được chụp cách đây
nhiều năm
ra đời nhằm làm giảm dung lượng lưu trữ và tăng tốc độ truyền nhận hình ảnh khi
băng thông có giới hạn Các nhà nghiên cứu đã cho ra đời các định dạng ảnh như
.jpg, png, bmp đã dần làm giảm đáng kể dung lượng của ảnh nhưng vẫn đảm
bảo chất lượng của hình ảnh
hay được sử dụng trong các dây truyền giám sát, đánh giá và kiểm tra chất lượng
sản phẩm trong công nghiệp Ví dụ như nhận diện biển số xe trong các bãi giữ
Trang 17xe, kiểm tra nhãn chai đã được dán đúng tiêu chuẩn hay chưa, kiểm tra các linh
kiện điện tử đã được gắn đúng vị trí trên các bo mạch hay chưa, giúp Robot phát
hiện và chữa cháy kịp thời hay trong quân sự thì sử dụng công nghệ xử lý ảnh để
2.1.2 Một số khái niệm cơ bản trong xử lý ảnh
2.1.2.1 Điểm ảnh
Ảnh số : là một tập hợp của nhiều điểm ảnh, hay còn gọi là pixel Mỗi điểm ảnh
biểu diễn một màu sắc nhất định (hay độ sáng với ảnh đen trắng) tại một điểm ảnh duy
nhất, có thể xem một điểm ảnh giống như một chấm nhỏ trong một tấm ảnh màu Bằng
phương pháp đo lường và thống kê một lượng lớn các điểm ảnh, chúng ta hoàn toàn có
thể tái cấu trúc các điểm ảnh này thành một ảnh mới gần giống với ảnh gốc Có thể nói
các pixel gần giống như các phần tử có cấu trúc hạt trên một ảnh thông thường nhưng
được xếp theo từng hàng và cột và chứa các thông tin khác nhau
Ảnh được biểu diễn dưới một ma trận hai chiều với các pixel được xác định bởi cặp tọa
độ (x, y), trong đó, giá trị của pixel tại tọa độ nhất định biểu diễn độ sang (ảnh đen trắng)
hay màu nhất định (ảnh màu) Giá trị độ sáng được số hóa trong xử lý ảnh được gọi là ảnh
xám Với một ảnh sau khi lấy mẫu để cho ra một ảnh số với kích thước xác định gồm có
M hàng và N cột, ta nói rằng ảnh có kích thước M x N và được biểu diễn dưới dạng ma
trân như sau:
Đối với ảnh đen trắng, giá trị mức xám thường nằm trong khoảng 0 ≤ f(x,y) ≥ G -1
Trong đó G thường được biểu diễn theo lũy thừa của 2
Trang 182.1.2.2 Phân loại ảnh
Có hai dạng quan trọng trong ảnh số được dùng với nhiều mục đích khác nhau là
ảnh màu và ảnh đen trắng (hay còn gọi là ảnh xám) Trong đó, ảnh màu được cấu trúc từ
các pixel màu trong khi ảnh đen trắng đươc xây dựng từ các pixel có giá trị mức xám
khác nhau
Ảnh đen trắng : với một ảnh đen trắng được xây dựng từ nhiều pixel mà tại đó biểu
diễn một giá trị nhất định tương ứng với một mức xám Những mức xám này trải dài
trong một khoảng từ đen sang trắng với bước nhảy rất mịn, thông thường là 256 mức xám
khác nhau theo tiêu chuẩn Do mắt người chỉ có thể phân biệt một cách rõ ràng với
khoảng 200 mức xám khác nhau nên vì thế hoàn toàn có thể nhận xét sự thay đổi liên tục
các mức xám
Ảnh màu : thường được tạo thành từ nhiều pixel mà trong đó mỗi pixel được biểu
diễn bởi ba giá trị tương ứng với các mức trong các kênh màu đỏ (Red), xanh lá (Green)
và xanh dương (Blue) tại một vị trí cụ thể Các kênh màu Red, Green và Blue (trong
không gian màu RGB) là những màu cơ bản mà từ đó có thể tạo ra các màu khác nhau
nhau Từ đó có thể thấy rằng với một pixel chỉ cần một byte cho việc lưu trữ đối với ảnh
đen trắng và 3 byte đối với ảnh màu Vì thế với cùng một ảnh có kích thước nhất định,
dung lượng của ảnh màu lưu trên bộ nhớ luôn lớn hơn gấp 3 lần dung lượng dành cho ảnh
đen trắng trong trừng hợp không sử dụng các kỹ thuật nén ảnh
biểu diễn như sau :
Trong đó :
Cgs – dung lượng của ảnh xám (tính theo byte)
Crgb – dung lượng của ảnh màu (tính theo byte)
m – kích thước theo chiều ngang của ảnh
Trang 19n – kích thước theo chiều dọc của ảnh
(m x n) – tổng số pixel của ảnh
Ảnh nhị phân : chỉ sử dụng duy nhất một bit để biểu diễn một pixel Do do một bit
chỉ có thể xác lập hai trạng thái là đóng và mở hay 1 và 0 tương ứng với hai màu đen và
trắng Do đặc trưng trên mà ảnh nhị phân ít khi được sử dụng trong thực tế
Ảnh chỉ số (indexed) : Một vài ảnh màu (hay đen trắng) được tạo thành từ một
bảng màu có sẵn bị giới hạn, điển hình thường dùng là tập 256 màu khác nhau Những
ảnh này được gọi là ảnh màu chỉ số hóa (indexed) do dữ liệu dành cho mỗi pixel bao gồm
2.1.2.3 Độ phân giải
Với cùng một ảnh, càng nhiều điểm được lấy mẫu thì ảnh chụp càng chi tiết Mật
độ điểm ảnh trong một ảnh được xem như độ phân giải trong chính nó Ảnh có độ phân
giải càng cao thì ảnh càng chứa nhiều thông tin Nói một các chính xác, khi giữ ảnh tại
cùng một kích thước vật lý thì ảnh trở nên sắc nét và chi tiết hơn nếu độ phân giải cao
hơn. (2)
2.1.3 Không gian màu HSV
HSV (hue saturation value) : Không gian màu này còn có tên khác là HSI
(intensity), HSL (lightness) Mô hình này do AR Smith tạo ra vào năm 1978 Nó dựa trên
các đặc tính màu trực quan như sắc (tint), bóng (shade) và và tông màu (tone); nói cách
khác là họ màu, độ thuần khiết, và độ sáng
Hình 2.1: Không gian màu HSV
Trang 20Hệ tọa độ cho không gian màu này là hình trụ:
bao nhiêu màu trắng được thêm vào màu thuần khiết này Giá trị của S nằm trong
đoạn [0, 1], trong đó S = 1 là màu tinh khiết nhất, hoàn toàn không pha trắng Nói
cách khác, S càng lớn thì màu càng tinh khiết, nguyên chất
dao động trong đoạn [0, 1], trong đó V = 0 là hoàn toàn tối (đen), V = 1 là hoàn
toàn sáng Nói cách khác, V càng lớn thì màu càng sáng
Hệ thống màu HSV thích hợp với một số thiết kế đồ họa vì nó cung cấp sự điều
khiển trực tiếp đến ánh sáng và sắc động Hệ thống màu HSV cũng hỗ trợ tốt hơn những
thuật toán xử lý ảnh vì tiêu chuẩn hóa về ánh màu và tập trung vào hai hàm số về độ hội
tụ màu và cường độ màu Hệ thống màu HSV có sự phân chia rõ rệt giữa ánh sáng và
màu sắc do đó có khả năng rất lớn được áp dụng cho việc tính đặc trưng và so sánh sự
2.1.4 Thư viện EmguCV
Là một cross flatform NET, một thư viện xử lý hình ảnh mạnh dành riêng cho
ngôn ngữ C# Cho phép gọi được chức năng của OpenCV là từ NET
Tương thích ngôn ngữ như: C#, VB, VC ++, Iron Python
Wrapper có thể được biên dịch bởi Visual Studio, Xamarin Studio và Unity
Nó có thể chạy trên Windows, Linux, Mac OS X, iOS, Android và Windows
Phone
EmguCV được viết hoàn toàn bằng C# Có thể chạy trên bất kỳ nền tảng hỗ trợ bao
gồm iOS, Android, Windows Phone, Hệ điều hành Mac OS X và Linux
EmguCV có thể được sử dụng từ nhiều ngôn ngữ khác nhau, bao gồm C#,
VB.NET, C ++ và Iron Python
Nhận dạng ảnh : nhận dạng khuôn mặt, các vật thể …
Trang 21Xử lý ảnh : khử nhiễu, điều chỉnh độ sáng …
2.2 KHỐI VI ĐIỀU KHIỂN
2.2.1 Sơ lược về cấu trúc của vi điều khiển
Năm 1971, bộ vi xử lý đầu tiên ra đời đã mở ra 1 thời đại mới trong công nghệ
điện tử và tin học Các hàng chế tạo bán dẫn đã tích hợp các mạch ngoại vi và bộ vi xử lý
lên một chip duy nhất( on chip) để tạo ra các bộ vi điều khiển, để nhằm hạn chế tối đa các
linh kiện mắc ngoài khi xây dựng hệ thống có sử dụng vi xử lý, vi điều khiển
Điều thúc đẩy việc nghiên cứu chế tạo vi điều khiển đó là tính đa dụng, dễ dàng sử dụng
và giá thành thấp Vi điều khiển tỏ ra rất hấp dẫn trong các ứng dụng điều khiển điện tử vì
có kích thước nhỏ, tuy nhỏ nhưng chức năng rất đa dạng, dễ dàng tích hợp vào trong hệ
thống để điều khiển toàn hệ thống
Các thành phần của vi điều khiển là: CPU, RAM, ROM, các bộ đếm, bộ định thời,
các cổng vào ra, giao diện truyền thông nối tiếp, các khối chuyển đổi tương tự số A/D và
ngược lại số tương tự D/A Khối xử lý trung tâm CPU thực hiện các chỉ thị được lưu
trong bộ nhớ chương trình ROM để điều khiển tất cả các thành phần còn lại Bộ nhớ truy
cập ngẫu nhiên RAM được dùng để lưu các thiết lập và các biến sử dụng trong chương
trình Chương trình và các số liệu cố định được lưu trong ROM Bộ nhớ ROM của vi điều
khiển trở thành thành phần FIRMWARE sau khi được nạp chương trình
Vi điều khiển được sử dụng rộng rãi trong các thiết bị điện tử: thiết bị viễn
thông, máy văn phòng, đồ điện tử gia dụng, đồ chơi trẻ em, thiết bị giải trí Nói chung là
các thiết bị cần một cơ cấu điều khiển thông minh, có khả năng tương tác với người sử
dụng
Chương trình cho vi điều khiển là một tập các mã lệnh đã được dịch thành mã máy
thường được nạp trực tiếp vào bộ nhớ ROM của vi điều khiển từ máy tính thông qua một
bộ nạp chương trình Các cổng vào ra số cho các dữ liệu nhị phân vào ra qua các chân của
vi điều khiển Các chân này được dùng để ghép nối vi điều khiển với các thiết bị vào ra số
Trang 22hay ghép nối với các bộ vi điều khiển khác thực hiện các chức năng nào đó
Cổng truyền thông dữ liệu nối tiếp tạo khả năng giao tiếp của hệ thống với các hệ
thống khác qua: UART, I2C, SPI…
Các bộ đếm(Timer) dùng để tạo ra các nhịp thời gian chính xác hoặc để đếm xung
Khối chuyển đổi A/D cho phép vi điều khiển giao tiếp với các thiết bị điện tử
tương tự như cảm biến tương tự nhờ đó nó có thể đưa các dữ liệu vào để xử lý và lưu trữ
Khối A/D cho phép vi điều khiển điều khiển các thiết bị không tương thích điều khiển
số.(5)
2.2.2 Vi điều khiẻn PIC 18F4550
PIC18F4550 là một vi điều khiển đa chức năng và rẻ Nó là sản phẩm của họ vi xử
lý PIC thông dụng của công ty Microchip của Mỹ PIC 18F4550 là vi điều khiển 8bit có:
Hình 2.2 : Vi điều khiển PIC16F4550
256 Bytes, SRAM 2048 Bytes, FLASH 32 Kbytes
Chạy: CPU chạy, thiết bị ngoại vi chạy
Chờ: CPU tắt, thiết bị ngoại vi chạy
Ngủ: CPU tắt, thiết bị ngoại vi tắt
Trang 23 Thoát khỏi chế độ chờ trong 5.8 µs
Thoát khỏi chế độ ngủ trong 0.1 µs
4 module Timer ( Timer0 đến Timer3)
Lên tới 2 Capture/Compare/PWM (CCP) module:
Capture 16- bit, độ phân giải tối đa 5.2 ns
Compare 16-bit, độ phân giải tối đa 83.3 ns
Độ phân giải của PWM là 1 đến 10-bit
Module Capture/Compare/PWM (ECCP) cải tiến:
10- bit, lên tới 13 kênh ADC với khả năng lập trình thời gian nhận
2 bộ so sánh Analog với ngõ vào đa hợp
Trang 24Bảng 2.1 : So sánh bốn loại pic 18F:
Hình 2.3 : Cấu hình PIC18F4550
2.2.3 Sơ đồ chân PIC18F4550.
Để phù hợp với các yêu cầu của người dùng, PIC18F4550 có nhiều kiểu thiết kế
dạng như: 28-Pin PDIP; 40-Pin PDIP, 44-Pin TQFP, 44-Pin QFN Ở đây, chúng em lựa
chọn sử dụng loại 40-PIN PDIP vì dễ dàng mua được ở thị trường, giá cả rẻ và phù hợp
với mục đích của việc nghiên cứu
Trang 25Hình 2.4 : Sơ đồ chân PIC18F4550
Chức năng một số chân chúng ta sử dụng của PIC18F4550:
Chân MCLR/Vpp/RE3:
MCLR: ngõ vào reset tích cực mức thấp
Vpp: ngõ vào nhận điện áp khi ghi dữ liệu vào bộ nhớ nội flash
RE3: xuất/ nhập số - bit thứ 3 của PORT E
Chân RE0/AN5/CK1SPP:
RE0: xuất/ nhập số - bit thứ 0 của PORT E
AN5: Ngõ vào tương tự của kênh thứ 5
Chân VDD
Chân VSS
Chân OSC1/CLKI:
OSC1: ngõ vào dao động thạch anh hoặc ngõ vào nguồn xung ở bên ngoài
Ngõ vào có mạch Schmitt Trigger nếu sử dụng dao động RC
CLKI: ngõ vào nguồn xung bên ngoài
Chân OSC2/CLKO/RA6 :
OSC2: ngõ ra dao động thạch anh Kết nối đến thạch anh hoặc bộ cộng
hưởng
Trang 26 CLKO: ở chế độ RC, ngõ ra của OSC2, bằng ¼ tần số của OSC1 và chính
là tốc độ của chu kì lệnh
RA6: xuất/nhập số - bit thứ 6 của PORT A
Chân RC1/T1OSI/CCP2/UOE
RC1: xuất/nhập số - bit thứ 1 của PORT C
T1OSI: ngõ vào của bộ dao động Timer1
CCP2: ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2
Chân RC2/CCP1/P1A
RC2: xuất/nhập số - bit thứ 2 của PORT C
CCP1: ngõ vào Capture1, ngõ ra compare1, ngõ ra PWM1
Chân RD0/SPP0
RD0: xuất/nhập số - bit thứ 0 của PORT D
SPP0: dữ liệu port song song
Chân RD1/SPP1
RD1: xuất/nhập số - bit thứ 1 của PORT D
SPP1: dữ liệu port song song
Chân RD2/SPP2
SPP2: dữ liệu port song song
Chân RC6/TX/CK:
RC6: xuất/ nhập số - bit thứ 6 của PORT C
TX: ngõ ra phát dữ liệu trong chế độ truyền bất đồng bộ UART
CK: ngõ ra cấp xung clock trong chế độ truyền bất đồng bộ UART
Chân RC7/RX/DT/SDO:
RC7: xuất/ nhập số - bit thứ 7 của PORT C
RX: ngõ ra nhận dữ liệu trong chế độ truyền bất đồng bộ UART
DT: ngõ phát và nhận dữ liệu ở chế độ truyền bất đồng bộ UART
Trang 27 SDO: ngõ xuất dữ liệu trong truyền dữ liệu kiểu SPI
Chân RB3/AN9:
RB3: xuất/ nhập số - bit thứ 3 của PORT B
AN9: Ngõ vào tương tự của kênh thứ 9
2.2.4 Khối điều chế độ rộng xung PWM
Nguyên lý điều chế độ rộng xung là mạch tạo ra xung vuông có chu kỳ là hằng số
nhưng hệ số công tác (còn gọi là hệ số chu kỳ - duty cycle) có thể thay đổi được Sự thay
đổi của hệ số chu kỳ làm thay đổi điện áp trung bình hoặc dòng điện trung bình
Sự thay đổi điện áp hoặc dòng trung bình dùng để điều khiển các tải như động cơ
DC thì làm thay đổi tốc độ động cơ, điều khiển bóng đèn thì làm thay đổi cường độ sáng
của bóng đèn
Các dạng sóng điều chế độ rộng xung với các hệ số chu kì khác nhau như:
Trang 28Hình 2.5 : Điều chế độ rộng xung với các hệ số chu kì khác nhau
Cho chu kỳ 10ms, ở cấp tốc độ 0 thì tín hiệu bằng 0 Điện áp hay dòng trung bình
sẽ bằng 0, nếu tín hiệu này điều khiển động cơ thì động cơ không quay
Ở cấp tốc độ 1 thì tín hiệu điều khiển ở mức 1 chỉ có 1ms, ở mức 0 là 9ms Giả sử
dòng tạo ra là 10mA khi ở mức 1 thì dòng trung bình là (10*1)/10 = 1mA Động cơ quay
chậm với dòng 1mA
Ở cấp tốc độ 5 thì tín hiệu điều khiển ở mức 1 chỉ có 5ms, ở mức 0 là 5ms Giả sử
dòng tạo ra là 10mA khi ở mức 1 thì dòng trung bình là (10*5)/10 = 5mA Động cơ quay
nhanh hơn với dòng 5mA
Ở cấp tốc độ 10 thì tín hiệu điều khiển ở mức 1 là 10ms, ở mức 0 là 0ms Giả sử
dòng tạo ra là 10mA khi ở mức 1 thì dòng trung bình là (10*10)/10 = 10mA Động cơ
quay nhanh nhất với dòng 10mA
Khi thay đổi hệ số chu kỳ thì chỉ thay đổi thời gian xung ở mức 1, còn chu kỳ thì
Trang 292.2.4.1 Cấu trúc khối điều chế độ rộng xung PWM
Hình 2.6 : Cấu trúc khối điều chế độ rộng xung PWM
Khối PWM gồm có 2 mạch so sánh: mạch so sánh 2 dữ liệu 8 bit nằm bên dưới và
mạch so sánh 2 dữ liệu 10 bit nằm bên trên
Ta xét RC2/CCP1 của PIC18F4550 Mạch so sánh 8bit sẽ so sánh giá trị đếm của
Timer2 với giá trị của thanh ghi PR2 (Period Register), giá trị trong Timer2 tăng từ giá trị
đặt trước cho đến khi bằng giá trị của PR2 thì mạch so sánh sẽ kích flipflop RS làm ngõ
ra RC2/CCP1 lên mức 1 Đồng thời nạp giá trị 10bit từ thanh ghi CCPR1L sang hanh ghi
Chu kỳ xung PWM của PIC 18F4550 được tính theo công thức:
PWM Period = [(PR2) + 1] *4 *TOSC *(TMR2 Prescale Value) (2.4)
Trang 30Trong đó: TOSC là chu kỳ của tụ thạch anh dao động
TMR2 Prescale Value là giá trị chia trước của Timer2
Khi giá trị của Timer2 (TMR2) bằng giá trị của thanh ghi PR2 thì 3 sự kiện theo
sau sẽ xảy ra:
CCPx vẫn ở mức 0
2.2.4.3 Tính hệ số chu kỳ xung PWM
Hệ số chu kỳ được thiết lập bởi giá trị lưu trong thanh ghi 10 bit gồm thanh ghi 8
bit CCPRxL và 2 bit còn lại là bit thứ 4 và bit thứ 5 lưu ở trong thanh ghi CCPxCON -
kí hiệu là CCPxCON<5:4>
Giá trị của hệ số chu kỳ là 10 bit nên có thể thay đổi từ 0 tới đến 1023 tạo ra 1024
cấp giá trị điều khiển
Giá trị 10 bit thì 8 bit có trọng số lớn lưu trong thanh ghi CCPRxL và 2 bit còn lại
có trọng số thấp thì ở CCPxCON<5:4>
PWM Duty Cycle = (CCPRxL:CCPxCON<5:4>) *TOSC *(TMR2 Prescale Value) (6)
2.2.5 Ngắt của vi điều khiển PIC18F4550
Ngắt sử dụng trong vi xử lý hoặc vi điều khiển hoạt động như sau: vi xử lý hay vi
điều khiển luôn thực hiện một chương trình thường gọi là chương trình chính, khi có tác
động từ bên ngoài bằng phần cứng hay tác động từ bên trong làm cho vi xử lý ngừng thực
hiện chương trình chính để thực hiện một chương trình khác (còn gọi là chương trình
Trang 31phục vụ ngắt ISR) và sau khi thực hiện xong vi xử lý trở lại thực hiện tiếp chương trình
2.2.6 Truyền/nhận dữ liệu UART
Truyền dữ liệu nối tiếp có nhiều tiện ích trong điều khiển nên hầu hết các vi điều
khiển đều kết hợp Có nhiều kiểu truyền dữ liệu phổ biến tích hợp trong các họ vi điều
Trong mô hình Robot, chúng ta lựa chọn truyền nối tiếp bất đồng bộ Ở kiểu
truyền nối tiếp bất đồng bộ thì có một đường phát dữ liệu và một đường nhận dữ liệu Để
truyền được dữ liệu thì cả bên phát và bên nhận phải có cùng tốc độ truyền dữ liệu(
baud), ví dụ: 2400 baud, 4800 baud, 9600 baud,… 2400 baud có nghĩa là truyền 2400
bit/giây
Vi điều khiển PIC 18F4550 có khối truyền dữ liệu đồng bộ, bất đồng bộ đa năng
cải tiến Khối truyền dữ liệu nối tiếp đa năng bao gồm bộ phát xung clock tạo tốc độ
truyền, các thanh ghi dịch và bộ đệm dữ liệu rất cần thiết để thực hiện truyền hoặc nhận
dữ liệu nối tiếp một cách độc lập
Để truyền dữ liệu từ Robot xuống máy tính theo chúng ta cần kết hợp với một thiết
bị chuyển đổi mức điện áp để tạo ra điện áp phù hợp giao tiếp giữa máy tính và chip Ở
máy tính, chuẩn RS232( hay COM) trên các máy tính cá nhân là sự kết hợp của chip
UART và chip chuyển đổi mức điện áp Tín hiệu từ chip UART thường theo mức TTL:
mức logic high là 5V, mức low là 0V Trong khi đó,tín hiệu theo chuẩn RS232 thường là
Trang 322.3 MỘT SỐ THIẾT BỊ NGOẠI VI KHÁC
2.3.1 Cảm biến ENCODER
Hình 2.7 : Encoder và bánh xe gắn cho encoder
Encoder mục đích dùng để quản lí vị trí góc của một đĩa quay, đĩa quay có thể là bánh xe,
trục động cơ, hoặc bất kì thiết bị quay nào cần xác định vị trí góc
Encoder được chia làm hai loại, absolute encoder và incremental encoder
Nguyên lý cơ bản của encoder, đó là một đĩa tròn xoay, quay quanh trục Trên đĩa có các
lỗ (rãnh) Khi đĩa quay, chỗ không có lỗ (rãnh), đèn led không chiếu xuyên qua được; chỗ
có lỗ (rãnh), đèn led sẽ chiếu xuyên qua Ở đây ta lựa chọn incremental encoder, nghĩa là
tín hiệu sẽ tăng lên một đơn vị khi một lần lên xuống của cạnh xung
Hình 2.8 : Hình mô phỏng cách đếm số xung từ encoder
Trang 33Ngoài ra, encoder chúng ta có 2 dây tín hiệu sigA và sigB giúp chúng ta đọc được
số xung và chiều quay của encoder
Hình 2.9 : Xung từ hai kênh của encoder
Ta thấy rằng nếu như khi xung A đang từ mức cao xuống mức thấp, mà lúc đó B
đang ở mức thấp, thì ta sẽ xác định được chiều của encoder theo chiều ngược chiều mũi
tên Nếu A đang ở mức cao xuống mức thấp mà B đang ở mức cao, thì ta sẽ biết encoder
2.3.2 PICKit 2 FULL Program/Debug
PICKit 2 Programmer/ Debugger là một công cụ phát triển giá rẻ nhưng tính năng
và độ ổn định cao, dễ dàng để sử dụng để nạp và gỡ lỗi PIC Microcontrollers Flash
Ngoài ra còn có thể sử dụng như một thiết bị đầu cuối truyền dữ liệu với PC qua chức
năng UART Tool và Logic Tool Analyzer sử dụng software PICKit 2 hoặc MPLAB IDE
Có khả năng tự cập nhật Firmware khi có phiên bản mới Software và firmware sẵn có và
Trang 34Hình 2.10 :Mạch nạp cho vi điều khiển PIC
2.3.3 PL2303 HX Cable
Như đã giới thiệu về truyền/nhận dữ liệu của PIC 18F4550 ta sử dụng PL2303
HX Cable để thực hiện chuyển đổi điện áp cho phù hợp:
Hình 2.11 : Cáp PL2303 HX
Cáp USB to TTL là thiết bị chuyển đổi rất lý tưởng sử dụng cho các máy tính
không có cổng COM Chỉ cần cắm qua cổng USB, ta sẽ có ngay cổng COM ảo (Virtual
COM port) và sử dụng giống như 1 cổng COM bình thường Để sử dụng chỉ cần
download driver PL2303, việc cuối cùng là cắm dây kết nối với thiết bị muốn truyền nhận
dữ liệu Trong đó: dây đỏ là 5V, dây đen là GND, dây trắng là RXD (nối với chân TXD
của vi điều khiển PIC 18F4550, chân PIN_C6) , dây xanh là TXD (nối với chân RXD của
vi điều khiển PIC 18F4550, chân PIN_C7)
Khi kết nối hãy chắc chắn rằng không để các dây RXD và TXD kết nối với các
2.3.4 Động cơ DC
Để cho một motor hoạt động, chúng ta cần đặt một điện áp 1 chiều vào nó, khi đó sẽ
Trang 35có một dòng điện 1 chiều chạy qua nó và motor sẽ quay theo một chiều nào đó
Hình 2.12 : Điều khiển động cơ DC chạy thuận
Nếu chúng ta đổi chiều của điện áp 1 chiều này thì motor sẽ quay ngược lại
Hình 2.13 : Điều khiển động cơ DC chạy ngược
Chú ý : Điện áp V và dòng điện I không nên vượt quá giá trị định mức ghi trên
motor, nếu không motor sẽ bị hư Tuy nhiên nếu chúng ta đặt 1 điện áp thấp hơn điện áp
V và một dòng điện thấp hơn dòng điện I thì tốc độ và độ chịu tải của motor sẽ giảm theo
(10)
2.3.5 Relay OEG-OMI-SS-124L
Relay là loại khí cụ điện được điều khiển gián tiếp từ xa và thường có bộ bảo vệ
quá tải (overload) kèm theo, để tự động ngắt mạch tức thời, khi bị quá tải hoặc mạch tiêu
thụ bị chập mạch
Trang 36Hình 2.14 : Relay loại 8 chân
Relay có 2 kênh có thể sử dụng để đảo chiều động cơ 1 cách dễ dàng, dòng ra và
2.3.6 OPTO PC817.
Opto hay còn gọi là cách ly quang là linh kiện tích hợp có cấu tạo gồm 1 led và 1
photo diot hay 1 photo transitor Được sử dụng để cách ly giữa các khối chênh lệch nhau
về điện hay công suất nhu khối có công suất nhỏ với khối điện áp lớn
Hình 2.15 : Opto PC817
250mW
Trang 37Khi có dòng nhỏ di qua 2 đầu của led có trong opto làm cho led phát sáng Khi led
phát sáng làm thông 2 cực của photo diot, mở cho dòng điện chạy qua
Opto rất hay được sử dụng trong các hệ thống điện-điện tử công suất lớn dùng để
ngăn các xung điện áp cao hay các phần mạch điện công suất lớn có thể làm hư hỏng các
ngõ điều khiển công suất nhỏ trên một bo mạch Ngoài ra, Opto PC817 cũng dùng để
2.3.7 MOSFET IRF540N
Đây là 1 loại MOSFET công suất kênh N có tốc độ chuyển mạch nhanh (đến hàng
nano giây) nên có thể hoạt động ở chế độ đóng ngắt liên tục Ngoài ra, IRF540 còn tiện
dụng ở chỗ dễ ghép nối song song, các yêu cầu điều khiển đơn giản IRF540 thích hợp sử
dụng trong các ứng dụng: đóng mở thường xuyên, điều khiển động cơ DC bằng phương
pháp PWM, điều khiển relay
IRF540 có khả năng chịu dòng cao (Dòng ID liên tục có thể lên tới 28A), trong khi
công suất điều khiển cực cổng thấp IRF540 có tổng trở vào cao
Bảng 2.2 Một thông số kỹ thuật của IRF540 (13)
A
Trang 38Kết nối : USB2.0, USB
Trang 392.3.9 Cảm biến siêu âm SRF005
Hình 2.18 : Cảm biến siêu âm SRF005
Sóng siêu âm (sonar) là một loại sóng cao tần mà con người không thể nghe thấy
được Tuy nhiên, ta có thể thấy được sự hiện diện của sóng siêu âm ở khắp mọi nơi trong
tự nhiên Ta có các loài động vật như dơi, cá heo dùng sóng siêu âm để liên lạc với
nhau, để săn mồi hay định vị trong không gian
Dựa trên việc quan sát hoạt động của chúng, ta thấy được nguyên tắc mà các loài
vật sử dụng sóng âm để định vị rất đơn giản, có thể tóm gọn trong 3 bước sau:
quanh được tính ra
Chức năng của các chân này như sau:
điện cao / thấp diễn ra
Trang 40hiệu trả về, sau đó trở về 0V