1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu chế tạo robot bám line dùng xử lý ảnh

88 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 6,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Robot bám line dùng xử lý ảnh 1 CHƯƠNG I DẪN NHẬP 1.1 Tổng quan về vấn đề nghiên cứu Ngày nay, với sự phát triển mạnh mẽ vượt bậc của Khoa học kỹ thuật, vi điều khiển AVR và PIC ngày cà

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ

NGHIÊN CỨU CHẾ TẠO ROBOT BÁM LINE DÙNG

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH

-

KHOA CƠ KHÍ CHẾ TẠO MÁY

Giảng viên hướng dẫn : TH.S LÊ TẤN CƯỜNG

Sinh viên thực hiện : ĐỖ ĐÌNH CẨM

MSSV : 11146012

Lớp : 111461A

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

Trang 3

Robot bám line dùng xử lý ảnh i

LỜI NÓI ĐẦU

Trong những năm gần đây, khả năng xử lý hình ảnh của các camera ngày càng phát triển Các robot được gắn camera có khả năng theo dõi, định vị hình dạng, kích thước vật quan sát Theo xu hướng phát triển đó, em quyết định lựa chọn thực hiện nghiên cứu đề

tài: “Nghiên cứu chế tạo Robot bám line dùng xử lý ảnh”

Ngoài việc hoàn thành đồ án tốt nghiệp với những công việc trên đây thì nó còn có ý nghĩa sâu sắc đối với sinh viên thực hiện Một lần nữa sinh viên được thực hành những kiến thức học được từ ghế nhà trường sẽ giúp hình thành những sản phẩm công nghiệp, được sử dụng, cầm tay lắp những cảm biến mà từ trước chỉ nằm trên trang giấy Trong quá trình tiến hành không thể không gặp những khó khăn vấp phải, do đó kích thích sinh viên tư duy để tìm ra phương án tối ưu và trao đổi thảo luận với thầy cô, chúng ta bè Tuy nhiên do hạn chế về kinh nghiệm thực tế và thời gian thực hiện nên việc giải quyết

đề tài không thể tránh khỏi những thiếu sót Do đó rất mong sự chỉ bảo thêm của quý thầy

cô cũng như những đóng góp của các chúng ta sinh viên

Xin chân thành cảm ơn!

Trang 4

Robot bám line dùng xử lý ảnh ii

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập – Tự Do – Hạnh Phúc

Thành phố Hồ Chí Minh, ngày tháng năm

NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP

Họ và tên: Đỗ Đình Cẩm MSSV: 11146012

Giảng viên hướng dẫn: TS Lê Tấn Cường ĐT: 0909744100

Ngày nhận đề tài: 25/08/2016 Ngày nộp đề tài: 28/07/2016

1 Tên đề tài: NGHIÊN CỨU CHẾ TẠO ROBOT BÁM LINE DÙNG XỬ LÝ ẢNH

2 Các số liệu, tài liệu ban đầu:

- Tài liệu tổng quan về Pixy và Wikipedia về Pixy

3 Nội dung thực hiện đề tài:

- Tìm hiểu về Pixy Camera và PixyMon

- Thiết kế mô hình camera

- Tìm hiểu về stepper motor

- Thiết kế mô hình robot

- Lập trình điều khiển

- Chạy thử nghiệm

4 Sản phẩm:

- Nghiên cứu tổng quan về xe bám line, Arduino và các cảm biến

- Tìm hiểu về Pixy Camera

- Thiết kế xe bám line tự động có camera

Trang 5

Robot bám line dùng xử lý ảnh iii

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

***

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ và tên Sinh viên: Đỗ Đình Cẩm MSSV: 11146012 Ngành: Cơ Điện Tử Tên đề tài: Nghiên cứu chế tạo robot bám line dùng xử lý ảnh

Họ và tên Giáo viên hướng dẫn: TS Lê Tấn Cường NHẬN XÉT 1 Về nội dung đề tài & khối lượng thực hiện: ………

………

………

………

………

………

2 Ưu điểm: ………

………

………

………

………

………

………

………

………

3 Khuyết điểm: ………

………

………

………

………

………

………

………

………

Trang 6

1 Hình thức và kết cấu luận án 20

Đúng format với đầy đủ cả hình thức và nội dung của các mục 5

Tính tổng quan, mục tiêu và nhiệm vụ nghiên cứu 5

2 Nội dung nghiên cứu 80

Khả năng ứng dụng kiến thức toán học, khoa học và kỹ thuật, khoa

Khả năng thực hiện thiết kế và chế tạo hệ thống, máy móc,

hoặc thiết bị,…(đối với đề tài theo hướng công nghệ)

Khả năng thực hiện nghiên cứu, đề xuất phương pháp hoặc

quy trình,… có tính mới và sáng tạo, đáp ứng yêu cầu đưa ra

với những ràng buộc thực tế (đối với đề tài theo hướng

nghiên cứu)

Khả năng sử dụng công cụ kỹ thuật, phần mềm chuyên ngành,… 5

Tổng điểm quy đổi (hệ 10) 10

5 Câu hỏi phản biện (nếu có):

Có nên sử dụng động cơ có encoder (thay cho động cơ bước) hay không ? So sánh ưu và

nhược điểm khi sử dụng từng loại ?

Trình bày rõ hơn về kết quả thực nghiệm của việc dò line bằng xử lý ảnh ?

6 Đề nghị cho bảo vệ hay không?

Đồng ý cho bảo vệ

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

Giáo viên hướng dẫn

(Ký & ghi rõ họ tên)

TS Lê Tấn Cường

Trang 7

Robot bám line dùng xử lý ảnh v

******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ và tên Sinh viên: Đỗ Đình Cẩm MSSV: 11146012 Ngành: Cơ điện tử Tên đề tài: Nghiên cứu chế tạo robot bám line dùng xử lý ảnh Họ và tên Giáo viên hướng dẫn: Lê Tấn Cường NHẬN XÉT 1 Về nội dung đề tài & khối lượng thực hiện: ……… ………

………

2 Ưu điểm: ………

………

………

………

………

………

3 Khuyết điểm: ………

………

………

………

………

………

………

………

………

………

Trang 8

1 Hình thức và kết cấu luận án 20

Đúng format với đầy đủ cả hình thức và nội dung của các mục 5

2 Nội dung nghiên cứu 80

Khả năng ứng dụng kiến thức toán học, khoa học và kỹ thuật, khoa

Khả năng thực hiện thiết kế và chế tạo hệ thống, máy móc,

hoặc thiết bị,…(đối với đề tài theo hướng công nghệ)

Khả năng thực hiện nghiên cứu, đề xuất phương pháp hoặc

quy trình,… có tính mới và sáng tạo, đáp ứng yêu cầu đưa ra

với những ràng buộc thực tế (đối với đề tài theo hướng

nghiên cứu)

Khả năng sử dụng công cụ kỹ thuật, phần mềm chuyên ngành,… 5

Tổng điểm quy đổi (hệ 10) 10

5 Câu hỏi phản biện (nếu có):

Có nên sử dụng động cơ có encoder (thay cho động cơ bước) hay không ? So sánh ưu và nhược điểm khi sử dụng từng loại ?

Trình bày rõ hơn về kết quả thực nghiệm của việc dò line bằng xử lý ảnh ?

6 Đề nghị cho bảo vệ hay không?

Đồng ý cho bảo vệ

(Ký & ghi rõ họ tên)

Trang 9

Robot bám line dùng xử lý ảnh vii

Lời cam kết: “Chúng tôi xin cam đoan đồ án tốt nghiệp này là công trình do chính chúng

em nghiên cứu và thực hiện Chúng em không sao chép từ bất kỳ một bài viết nào đã được công bố mà không trích dẫn nguồn gốc Nếu có bất kỳ một sự vi phạm nào, chúng

em xin chịu hoàn toàn trách nhiệm”

Tp.HCM, ngày 20 tháng 7 năm 2016

Người thực hiện đề tài

Đỗ Đình Cẩm

Trang 10

Robot bám line dùng xử lý ảnh viii

Các chúng ta cùng đồng hành với em trong suốt quá trình học tập và nghiên cứu

Đặc biệt xin gửi lời tri ân đến Thầy LÊ TẤN CƯỜNG, người trực tiếp hướng dẫn đề

tài đã hỗ trợ cho em rất nhiều về kiến thức, tài liệu và cơ sở vật chất để em có thể hoàn thành tốt đề tài

Trang 11

Robot bám line dùng xử lý ảnh ix

MỤC LỤC

LỜI NÓI ĐẦU i

NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP ii

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN iii

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN v

LỜI CAM KẾT vii

LỜI CẢM ƠN viii

MỤC LỤC ix

CHƯƠNG I 1

DẪN NHẬP 1

1.1 Tổng quan về vấn đề nghiên cứu 1

1.2 Hướng dẫn giải quyết vấn đề 2

1.2.1 Bộ điều khiển trung tâm 2

1.2.2 Cảm biến 2

1.3 Mục tiêu và nhiệm vụ của đề tài 2

1.3.1 Mục tiêu 2

1.3.2 Nhiệm vụ 2

1.4 Giới hạn của đề tài 3

1.5 Tóm tắt các chương 3

CHƯƠNG II 4

CƠ SỞ LÝ LUẬN 4

2.1 Đối tượng nghiên cứu 4

2.2 Nội dung, phương tiện và phương án thực hiện 4

2.2.1 Nội dung 4

2.2.2 Phương tiện và phương án thực hiện 5

CHƯƠNG III 6

TỔNG QUAN VỀ ROBOT 6

3.1 Tổng quan về Robot 6

3.2 Giới thiệu Robot bám line tự động 7

3.2.1 Giới thiệu Robot bám đường 7

3.2.2 Nguyên tắc chung của robot bám line tự động 7

Trang 12

Robot bám line dùng xử lý ảnh x

3.3 Ứng dụng của Robot bám line tự động 7

CHƯƠNG IV 9

TỔNG QUAN VỀ XỬ LÝ ẢNH 9

4.1 Giới thiệu xử lý ảnh 9

4.1.1 Cảm biến hình ảnh 9

4.1.2 Giới thiệu về Pixy 9

4.2 Tính năng của Pixy 10

4.2.1 Hỗ trợ điều khiển 10

4.2.2 Thuật toán lọc màu 10

4.2.3 Đặc điểm của Pixy 11

4.2.4 Thông số kĩ thuật 11

4.3 Tính năng PIXY camera 12

4.3.1 Dạy pixy các đối tượng quan tâm 12

4.3.2 Pixy Mon 14

4.3.3 Giao tiếp thông qua PixyMon 21

4.3.4 Một mã màu ( Color code) 37

CHƯƠNG V 39

THIẾT BỊ ĐIỀU KHIỂN 39

5.1 Arduino 39

5.1.1 Giới thiệu chung về Arduino 39

5.1.2 Giới thiệu board Arduino UNO 328 R3 40

5.1.3 Tổ chức bộ nhớ 41

5.1.4 Các chân năng lượng 41

5.1.5 Vi điều khiển 42

5.1.6 Các cổng vào/ ra 43

5.1.7 Một số lưu ý về Arduino 44

5.1.8 Giới thiệu về Arduino IDE và ngôn ngữ lập trình cho Arduino 44

5.2 Duel Bipolar Stepper Motor Shield for Arduino (A4988) 51

5.2.1 Giới thiệu 51

5.2.2 Đặc điểm kĩ thuật 51

5.2.3 Pin out & Diagram 52

5.2.4 Các chi tiết bổ trợ 53

CHƯƠNG VI 54

THIẾT KẾ ROBOT BÁM LINE TỰ ĐỘNG 54

6.1 Thiết kế cơ khí 54

Trang 13

Robot bám line dùng xử lý ảnh xi

6.1.1 Ý tưởng 54

6.1.2 Khung xe 54

6.2 Phần điều khiển 55

6.2.1 Tổng quan và sơ đồ khối 55

6.2.2 Các khối cơ bản của Robot 56

6.2.2.1 Khối cảm biến dò đường 56

6.2.2.2 Khối động lực 56

6.2.2.3 Khối xử lý trung tâm 59

CHƯƠNG VII 60

XÂY DỰNG THUẬT TOÁN VÀ GIẢI THUẬT CHO ROBOT 60

7.1 Giải thuật điều khiển PID 60

7.2 Lưu đồ thuật toán 62

7.2.1 Theo dõi đối tượng (đường line) 62

7.2.2 Tìm kiếm đối tượng đường line 64

7.3 CODE 65

7.4 Một số hình ảnh trong quá trình 70

CHƯƠNG VIII 73

KẾT LUẬN VÀ 73

HƯỚNG PHÁT TRIỂN 73

8.1 Kết luận 73

8.2 Hướng phát triển đề tài 73

TÀI LIỆU THAM KHẢO 74

Trang 14

Robot bám line dùng xử lý ảnh 1

CHƯƠNG I DẪN NHẬP 1.1 Tổng quan về vấn đề nghiên cứu

Ngày nay, với sự phát triển mạnh mẽ vượt bậc của Khoa học kỹ thuật, vi điều khiển AVR và PIC ngày càng thông dụng hơn, nhưng có thể nói sự xuất hiện của Arduino vào năm 2005 tại Italia đã mở ra một hướng đi mới cho vi điều khiển Sự xuất hiện của Arduino đã hỗ trợ cho 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 mới bắt đầu tìm tòi về vi điều khiển mà không có nhiều kiến thức về lập trình và điện tử 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ới ngôn ngữ C cùng thư viện phong phú nên Arduino hiện đang dần phổ biến trên thế giới Ngày nay điều khiển tự động đã trở thành một nhu cầu không thể thiếu được của con người, dưới sự xuất hiện của các học thuyết và các ứng dụng cụ thể trong đời sống hằng ngày, có thể nói điều khiển tự động đang chi phối dần cuộc sống của chúng ta con người đang cố gắng sáng tạo ra các con robot có khả năng làm việc thay cho con người, chúng ta thường bắt gặp các con robot trong các dây chuyền công nghiệp sản xuất tự động hay robot giúp việc trong gia đình Để tìm ra các ý tưởng sáng tạo hay hàng năm đề diễn ra cuộc thi robocon châu á Thái Bình Dương đó là tiền đề để tạo ra những con robot có khả năng áp dụng vào thực tế

Nhưng robot đôi khi chỉ có thể thay thế đôi tay của con người như thế là chưa đủ, có những công việc cần phải quan sát và đánh giá Để làm được điều đó thì sự phát triển của

xử lý ảnh là rất cấp thiết Do đó khả năng sử dụng camera để trợ giúp đôi mắt của con người trong những điều kiện khác nhau ngày càng phát triển Và khả năng xử lý những hình ảnh được thu về từ camera là rất quan trọng Nó thể hiện bước tiến dài của công nghệ

xử lý ảnh Với thuật toán đúng, một bộ cảm biến hình ảnh có thể cảm nhận được hoặc phát hiện bất cứ điều gì thực tế, do đó Pixy camera ra đời

Xuất phát từ những thực tiễn nói trên, nhóm quyết định thực hiện đề tài: “Nghiên cứu

và chế tạo robot bám line dùng xử lý ảnh”

Trang 15

Robot bám line dùng xử lý ảnh 2

1.2 Hướng dẫn giải quyết vấn đề

1.2.1 Bộ điều khiển trung tâm

Có nhiều hướng thiết kế bộ xử lý trung tâm để điều khiển chiếc xe Gồm có:

1.2.2 Cảm biến

Hiện nay thì robot dò line hay bám line khá phổ biến Đa phần sử dụng cảm biến phản xả ánh sáng hay cảm biến thu phát Điều nay tuy là dễ dàng trong việc điều khiển xong chỉ giúp cho robot hoạt động theo đường line có sẵn, và không giúp được nhiều trong việc quan sát

Do đó Pixy Camera là 1 lựa chọn phù hợp để giải quyết vần đề về tầm nhìn Pixy vừa cung cấp tầm nhìn cho người quan sát, vừa có thể theo dõi cùng lúc nhiều đối tượng Nhằm giảm bớt chi phí cho các thành phần phụ khác, vừa giúp thu gọn kích thước của robot

1.3 Mục tiêu và nhiệm vụ của đề tài

1.3.1 Mục tiêu

 Robot có khả năng xử lý hình ảnh, trả về vị trí các đối tượng mà ta cần quan sát

 Tìm hiểu các mối tương quan giữa các tín hiệu thu được (hình ảnh) và tín hiệu trả

về bộ xử lý (tín hiệu số)

 Robot có thể đi chuyển trên đường line thiết kế sẵn

1.3.2 Nhiệm vụ

 Robot đi chuyển theo đường đi đã được định sẵn

 Nghiên cứu sử dụng Pixy CMUcam5 và phần mêm PixyMon

 Camera xác định được vị trí line và trả về tín hiệu cho bộ điều khiển

 Điều khiển ổn định bộ động cơ sử dụng stepmotor

Trang 16

Robot bám line dùng xử lý ảnh 3

1.4 Giới hạn của đề tài

Ứng dụng của Pixy camera là khá rộng lớn Với lượng thời gian và kiến thức có hạn, trong đề tài này nhóm chỉ thực thi một phần của Pixy camera Đó là xây dựng mô hình xe với các khả năng sau:

 Thiết kế khả năng xử lý hình ảnh, nhận diện đường line của Camera

 Thiết kế khả năng điều khiển của Arduino dành cho xe khi dùng step motor

1.5 Tóm tắt các chương

Chương 1: Dẫn nhập

Chương 2 : Cơ sở lý luận

Chương này trình bày về kế hoạch và ý tưởng thực hiện

Chương 3: Tổng quan về robot

Trong chương này, ta tìm hiểu sơ bộ về robot và hoạt động của robot bám line tự động

Chương 4: Tổng quan về Pixy Camera

Chương 5: Các linh kiện sử dụng

Chương 6: Thiết kế và thi công mô hình

Chương này trình bày các thiết kế chi tiết, nguyên lý hoạt động của mạch điện, cũng như kết quả thu được

Chương 7: Lưu đồ và giải thuật

Chương 8: Kết luận

Chương này nêu những ưu và khuyết của đề tài, khẳng định những đóng góp của đề tài

vào thực tiễn Đồng thời cũng đưa ra các đề nghị hướng phát triển cho đề tài

Trang 17

Robot bám line dùng xử lý ảnh 4

CHƯƠNG II

CƠ SỞ LÝ LUẬN

2.1 Đối tượng nghiên cứu

Đề tài hướng tới một phương thức điều khiển tự động có sự kết hợp của nhiều lĩnh vực liên quan như: PIXY camera, vi mạch điện tử, xử lý ảnh…Do đó, để tạo ta được một sản phẩm hoàn thiện theo mục đích đặt ra của đề tài thì người thực hiện cần phải tập trung nghiên cứu chủ yếu đến đối tượng: Vi mạch điện tử: là một đối tượng giữ vai trò trung tâm trong việc liên kết và xử lý tín hiệu từ các đối tượng khác Trong đề tài có một board mạch chính là Arduino, broad này được thiết kế và thi công từ các linh kiện điện tử đã có sẵn ngoài thị trường như: điện trở, tụ điện, các IC số…với sự điều khiển trung tâm là vi điều khiển Board này khi nhận tín hiệu từ cảm biến sẽ điều khiển nhiệm vụ được lập trình từ trước

Pixy camera đóng vai trò tiếp nhận và xử lý hình ảnh Nó chứa đựng các thông tin mà người dùng muốn Pixy truyền tải về và để người dùng ra lệnh cho các thiết bị ngoại vi làm việc

2.2 Nội dung, phương tiện và phương án thực hiện

2.2.1 Nội dung

Từ những lập luận trên, nhóm thực hiện tiến hành thi công đồ án với những nội dung như sau:

Phần viết báo cáo gồm các nội dung chính:

 Mô hình, sơ đồ khối và phương án thiết kế

Trang 18

Robot bám line dùng xử lý ảnh 5

Phần thi công mô hình và xử lý ảnh gồm:

 Chế tạo robot bám đường tự động

 Khả năng nhận diện hình ảnh của camera

2.2.2 Phương tiện và phương án thực hiện

Nhóm thực hiện đồ án và tiến hành công việc theo các giai đoạn như sau:

 Giai đoạn 1: Thiết kế, lắp ráp mô hình xe

 Giai đoạn 2: Nghiên cứu tìm hiểu về Pixy Camera

 Giai đoạn 3: Lắp ráp hoàn thiện xe mô hình, cho chạy trên đường line

 Giai đoạn 4: Chỉnh sửa, khắc phục lỗi hoàn thiện mô hình và báo cáo với thầy hướng dẫn về những kết quả của đề tài

Trang 19

Robot bám line dùng xử lý ảnh 6

CHƯƠNG III TỔNG QUAN VỀ ROBOT

3.1 Tổng quan về Robot

Robot đã và đang xuất hiện trong cuộc sống của chúng ta từ lâu và ngày càng trở thành một phần không thể thiếu trong cuộc sống hiện đại Chúng đã góp phần mình vào cuộc sống lao động, chính robot đang làm nên một cuộc cách mạng về lao động, khoa học

và đang phục vụ đắc lực cho các ngành khoa học khác: Khoa học quân sự,khoa học giáo dục, các ngành dịch vụ giải trí…

Năm 1921 nhà soạn kịch Karel Capek người Tiệp Khắc đã đưa lên sân khấu vở kịch

có tiêu đề “Romands Univesal Robot” Có thể đây là một gợi ý, một ý tưởng ban đầu về những cỗ máy có khả năng thao tác như con người Đến trước chiến tranh thế giới lần thứ hai nhu cầu sử dụng những máy móc có khả năng thay thế con người ở những môi trường làm việc độc hại đã trở thành một nhu cầu cấp thiết Ban đầu cơ cấu máy này hoạt động giống như tay máy của người vận hành Cấu tạo của cơ cấu này bao gồm các thanh và các khớp và hệ thống giây chằng Người vận hành điều khiển tay máy thông qua một cơ cấu khuyếch đại cơ khí.Trong chiến tranh thế giới lần thứ hai (năm 1945), xuất hiện cơ cấu máy được điều khiển từ xa để cầm nắm chất phóng xạ

Cho đến những năm 1950 cùng với sự ra đời của kĩ thuật điều khiển chương trình

số NC(Number Control) Kỹ thuật tay máy lúc này đã kết hợp với kĩ thuật điều khiển xa và điều khiển chương trình số Sự kết hợp này đã tạo ra những thế hệ máy điều khiển từ xa có khả năng mềm dẻo, khả năng tự động hóa cao nên gọi là Robot

Năm 1960 George Devol đưa ra mẫu Robot đầu tiên Năm 1961 cũng tại Mỹ Robot công nghiệp (IR: Industrial Robot) đầu tiên đưa ra thị trường Robot Unimat 1990 (Do trường đại học MIT chế tạo) đây là Robot phản hồi lực nó được ứng dụng trong công nghiệp sản xuất ô tô

Trên thế giới hiện nay có rất nhiều loại Robot:

- Quy mô lớn như: Cánh tay máy trong các dây chuyền sản xuất, những hệ thống sản xuất tự động,…

- Quy mô nhỏ hơn: là những Robot có khả năng di chuyển, làm những công việc nguy hiểm thay thế con người, Robot giúp người già, Robot bán hàng,…

Trang 20

Robot bám line dùng xử lý ảnh 7

3.2 Giới thiệu Robot bám line tự động

3.2.1 Giới thiệu Robot bám đường

Loại robot mà có thể di động theo một quỹ đạo định sẵn được gọi là Robot bám đường Robot bám đường có thể di chuyển theo một đường, đường đi có thể được nhìn nhận như một dòng màu vàng trên một bề mặt trắng (bám line) hoặc có thể là đường vô hình như một từ trường…

3.2.2 Nguyên tắc chung của robot bám line tự động

Robot chuyển động theo một quỹ đạo được định trước nhờ vạch dẫn, hệ thống hai bánh xe được dẫn động bởi 2 động cơ điện một chiều (step motor) thông qua mạch điều khiển và mạch công suất Thường thì các vạch dẫn có màu khác với màu nền của quỹ đạo chuyển động Để Robot chuyển động đúng quỹ đạo cần có bộ phận cảm biến, bộ phận này

có nhiệm vụ phân biệt vạch dẫn và màu nền, đưa tín hiệu điện tương ứng về mạch điều khiển Mạch điều khiển có nhiệm vụ thu nhận thông tin phản hồi từ bộ phận cảm biến từ

đó điều khiển tốc độ và chiều quay của hai động cơ điện một chiều sao cho xe luôn bám

và chuyển động theo vạch dẫn Nhìn chung, về mạch cấu tạo thì Robot tự động bám đường được thể hiện theo sơ đồ sau

Hình 1: Sơ đồ robot bám line tự động

3.3 Ứng dụng của Robot bám line tự động

Được ứng dụng vào công nghệ dò đường di chuyển tự động trong vận chuyển hàng hóa Tuy còn sơ khai về nguyên tắc điều khiển nhưng robot bám line đã tạo một bước ngoặc quan trong trong công nghệ thiết kế và chế tạo robot, mở ra một kỷ nguyên mới về ngành công nghệ kỹ thuật tự động hóa và đưa tự động hóa vào sản xuất

Trang 21

Robot bám line dùng xử lý ảnh 8

Hình 2: Robot phục vụ di chuyển trên đường line

Bên cạnh đó việc xử dụng camera xử lý ảnh trên robot bám line làm tăng thêm xự hữu ích của robot bám line, nó giúp cho theo dõi, định vị vị trí, đánh dấu và theo dõi vật

Hình 3: Pixy pet robot

Trang 22

Robot bám line dùng xử lý ảnh 9

CHƯƠNG IV TỔNG QUAN VỀ XỬ LÝ ẢNH

4.1 Giới thiệu xử lý ảnh

4.1.1 Cảm biến hình ảnh

Nếu chúng ta muốn robot của chúng ta để thực hiện một công việc như chọn lên một đối tượng, theo đuổi một bóng, vị trí một trạm thu phí, vv, và chúng ta muốn có một

cảm biến duy nhất để giúp thực hiện tất cả các nhiệm vụ, sau đó “hình ảnh” là cảm biến

của chúng ta Vision (hình ảnh) cảm biến này rất hữu ích bởi vì họ rất linh hoạt Với thuật toán đúng, một bộ cảm biến hình ảnh có thể cảm nhận được hoặc phát hiện bất cứ điều gì thực tế Nhưng có hai nhược điểm với bộ cảm biến hình ảnh: Có rất nhiều đầu ra của dữ liệu, hàng chục MB mỗi giây, và xử lý số lượng dữ liệu có thể áp đảo nhiều bộ vi xử lý Và nếu bộ xử lý có thể theo kịp với các dữ liệu, nhiều sức mạnh xử lý của nó sẽ không có sẵn cho các nhiệm vụ khác

PixyCam giải quyết những vấn đề này bằng cách ghép nối một bộ xử lý chuyên dụng mạnh mẽ với bộ cảm biến hình ảnh Pixy xử lý hình ảnh từ các bộ cảm biến hình ảnh

và chỉ gửi các thông tin hữu ích (ví dụ như PixyMon phát hiện bóng tại x = 54, y = 103) cho vi điều khiển của chúng ta Và nó làm việc này ở tỷ lệ khung hình (50 Hz) Các thông tin có sẵn thông qua một trong những giao diện: UART nối tiếp, SPI, I2C, USB, hoặc đầu

ra digital / analog Vì vậy, Arduino của chúng ta hoặc vi điều khiển khác có thể giao tiếp

dễ dàng với Pixy và vẫn còn có rất nhiều CPU có sẵn cho các nhiệm vụ khác

Có thể gắn nhiều Pixy lên vi điều khiển của chúng ta - ví dụ, một robot với 4 Pixy

và 360 độ của cảm biến Hoặc sử dụng Pixy mà không có một vi điều khiển và sử dụng các kết quả đầu ra digital hoặc analog để kích hoạt sự kiện, công tắc, servo, vv

4.1.2 Giới thiệu về Pixy

 Nhỏ gọn, nhanh, dễ sử dụng, chi phí thấp, hệ thống camera dễ dàng – có sẵn

 Có thể học để phát hiện đối tượng mà chúng ta dạy nó

 Đầu ra những gì nó phát hiện 50 lần mỗi giây

 Kết nối với Arduino thông qua cáp nối kèm theo Cũng làm việc với Raspberry Pi, BeagleBone và bộ điều khiển tương tự

 Tất cả các thư viện cho Arduino, Raspberry Pi, v.v được cung cấp sẵn

 C / C ++ và Python được hỗ trợ

 Giao tiếp thông qua một trong những giao diện SPI, I2C, UART, USB hoặc analog I/O digital

 Tiện ích cấu hình chạy trên Windows, MacOS và Linux

 Tất cả các phần mềm / firmare là mã nguồn mở GNU cấp phép

 Tất cả các tài liệu phần cứng bao gồm sơ đồ, công thức, PCB bố trí, vv được cung cấp

Trang 23

Robot bám line dùng xử lý ảnh 10

Hình 4: Pixy CMUcam5 (mặt trước)

4.2 Tính năng của Pixy

4.2.1 Hỗ trợ điều khiển

Pixy có thể dễ dàng kết nối với rất nhiều các bộ điều khiển khác nhau, vì nó hỗ trợ một số tùy chọn giao diện (UART nối tiếp, SPI, I2C, USB, hoặc digital / analog), nhưng Pixy bắt đầu hoạt động của mình giao tiếp với Arduinos Trong vài tháng qua, nhà sản xuất đã thêm hỗ trợ cho Arduino Do, Raspberry Pi và BeagleBone Black Thư viện phần mềm được cung cấp cho tất cả các nền tảng, do đó chúng ta có thể nhận được và thao tác nhanh Ngoài ra, nhà sản xuất đã thêm một API Python nếu chúng ta đang sử dụng một bộ

điều khiển dựa trên Linux (ví dụ như Raspberry Pi, BeagleBone)

4.2.2 Thuật toán lọc màu

Pixy sử dụng một thuật toán lọc màu dựa trên phát hiện các đối tượng Phương pháp lọc màu dựa trên rất phổ biến vì chúng nhanh chóng, hiệu quả, và tương đối mạnh mẽ Hầu hết chúng ta đã quen thuộc với RGB (đỏ, xanh lá cây, và màu xanh) để đại diện cho màu sắc Pixy tính toán màu sắc và độ bão hòa của mỗi pixel RGB từ các cảm biến hình ảnh và

sử dụng các thông số như lọc chính Các màu sắc của một đối tượng phần lớn vẫn không thay đổi với những thay đổi trong ánh sáng và phơi sáng Những thay đổi trong ánh sáng

và tiếp xúc có thể có một tác động bực bội về thuật toán lọc màu, khiến chúng vỡ Thuật toán lọc Pixy là mạnh mẽ khi nói đến ánh sáng và tiếp xúc với những thay đổi

Trang 24

Robot bám line dùng xử lý ảnh 11

4.2.3 Đặc điểm của Pixy

 Có 7 kí tự màu: Pixy nhớ lên đến 7 chữ ký màu sắc khác nhau, điều đó có nghĩa

rằng nếu chúng ta có 7 đối tượng khác nhau với màu sắc độc đáo, thuật toán lọc màu Pixy sẽ không có vấn đề xác định chúng Nếu chúng ta cần nhiều hơn bảy, chúng ta có thể sử dụng mã màu

 Có khả năng thấy hàng trăm đối tượng: Pixy có thể tìm thấy hàng trăm đối tượng

tại một thời điểm Nó sử dụng một thuật toán thành phần kết nối để xác định nơi một đối tượng bắt đầu và kết thúc khác Pixy sau đó biên dịch các kích thước và vị trí của từng đối tượng và báo cáo cho họ thông qua một trong các giao diện của nó (ví dụ như SPI)

 Tốc độ 50 khung hình mội giây: "50 khung hình mỗi giây" có nghĩa là gì? Nó có

nghĩa là Pixy nhanh Pixy xử lý toàn bộ khung 640x400 hình ảnh mỗi 1 / 50th của một giây (20 phần nghìn giây) Điều này có nghĩa rằng chúng ta sẽ có được một cập nhật đầy đủ các vị trí tất cả các đối tượng phát hiện mỗi 20 ms Với tốc độ

này, theo dõi đường đi của rơi / bóng nảy là có thể

4.2.4 Thông số kĩ thuật

 Bộ xử lý: NXP LPC4330, 204 MHz, lõi kép

 Cảm biến hình ảnh: Omnivision OV9715, 1/4 ", 1280x800

 Lens trường-of-view: 75 độ theo chiều ngang, dọc 47 độ

 loại ống kính: tiêu chuẩn M12 (loại khác nhau có sẵn)

 Công suất tiêu thụ: 140 mA điển hình

 Công suất đầu vào: đầu vào USB (5V) hoặc đầu vào không được kiểm soát (6V đến 10V)

Trang 25

Robot bám line dùng xử lý ảnh 12

4.3 Tính năng PIXY camera

4.3.1 Dạy pixy các đối tượng quan tâm

Chúng ta có thể dạy cho Pixy những gì mà chúng ta quan tâm đền cảm biến Đặt quả bóng màu cam phía trước của Pixy và nhấn nút Thật đơn giản và nhanh chóng

Hình 6 : dạy pixy về màu sắc

Dạy Pixy một đối tượng là siêu dễ dàng, nhưng trước tiên hãy nói về những đối tượng mà sẽ làm việc tốt với Pixy Pixy sử dụng một thuật toán lọc màu sắc dựa trên phát hiện các đối tượng Các đối tượng cần phải có một màu riêng biệt Dưới đây là một số đối tượng là tốt, vì nó có màu nổi bật, màu sắc khác nhau rõ ràng

Hình 7: Đối tượng tốt cho camera có thể phát hiện

Trang 26

Robot bám line dùng xử lý ảnh 13

Dưới đây là một số đối tượng xấu bởi vì hoặc là không có màu (đen, trắng hoặc màu xám) hoặc màu sắc không phải là riêng biệt

Hình 8 : Đối tượng khiến camera khó phát hiện

Lưu ý những hướng dẫn trên, sau đó chọn một đối tượng để dạy Pixy Bây giờ , giữ nút trên đầu board của Pixy Sau khoảng 1 giây, đèn LED sẽ bật - đầu trắng, sau đó màu

đỏ, sau đó màu sắc khác - nhưng khi nó chuyển sang màu đỏ, thả nút Khi chúng ta thả nút, Pixy sẽ nhập vào những gì được gọi là "ống ánh sáng" chế độ, nơi màu LED là màu sắc của đối tượng đó Pixy đã "khóa" vào Pixy sẽ khóa vào đối tượng ở trung tâm của khung hình video của nó, vì vậy giữ đối tượng trực tiếp ở phía trước của Pixy, từ 6 đến 20 inch từ các ống kính

Pixy sử dụng một thuật toán phát triển không gian để cố gắng xác định điểm ảnh của đối tượng và những điểm ảnh của nền Sử dụng các điểm ảnh, Pixy sẽ cố gắng tạo ra một

mô hình thống kê đối tượng của chúng ta để nó có thể phát hiện ra đối tượng trong những điều kiện ánh sáng khác nhau Sử dụng các màu LED như thông tin phản hồi để xác định nếu Pixy đã khóa các đối tượng, và sử dụng các hướng dẫn sau đây để đánh giá:

1 Khi Pixy đã khóa vào đối tượng của chúng ta, màu sắc LED nên phù hợp với màu của đối tượng của chúng ta

2 Các đèn LED sáng hơn, khóa đối tượng tốt hơn Di chuyển các đối tượng một chút

và xem nếu chúng ta có thể tối đa hóa độ sáng LED

3 Nhìn vào lưới điện khu vực đang phát triển trong cửa sổ PixyMon và xem như thế nào kích thước của lưới điện tương ứng với màu LED và độ sáng Một tấm lưới đó bao gồm nhiều đối tượng của chúng ta thì tốt hơn so với một mạng lưới mà chỉ bao gồm một số đối tượng và kết quả của chúng ta trong một LED sáng hơn Những hình ảnh dưới đây cho thấy một mạng lưới bao gồm hầu hết các đối tượng (tốt)

Hình 9: Dạy Pixy 1 đối tượng

Trang 27

Robot bám line dùng xử lý ảnh 14

Để Pixy có thể học màu đối tượng bằng cách sử dụng màu của các đèn LED có thể mất một chút luyện tập, nhưng một khi chúng ta có được cảm giác về nó, chúng ta có thể dạy

Pixy đối tượng mới đáng tin cậy mà không cần phải sử dụng PixyMon ! Khi chúng ta đã

hài lòng, nhấn và thả nút trên Pixy, như chúng ta phải nhấp chuột của chúng ta Các đèn LED sẽ nhấp nháy một vài lần chỉ ra rằng Pixy hiện đã "học" được đối tượng của chúng

ta Nó sẽ bắt đầu theo dõi đối tượng của chúng ta Pixy có thể học lên đến bảy chữ ký màu Có thể dạy Pixy chữ ký màu 1 bằng cách thả nút khi các đèn LED chuyển sang màu

đỏ Nếu chúng ta tiếp tục giữ nút, các đèn LED sẽ chuyển sang màu cam, vàng, vv, cho thấy chữ ký màu còn lại Dưới đây là những chữ ký theo thứ tự:

Vị trí chữ ký màu được xác định bởi khi chúng ta thả nút Thả nút khi các đèn LED có

màu vàng và chúng ta đang dạy chữ ký 3 Thả nút khi các đèn LED màu xanh là chúng ta

đang dạy chữ ký 6 Những màu sắc không liên quan đến màu sắc của các đối

tượng Những màu sắc chỉ được sử dụng để chỉ ra vị trí chữ ký Vì vậy, ví dụ, chữ ký 1 có

thể là một đối tượng màu vàng, mặc dù chữ ký 1 được chỉ định bởi một đèn LED màu đỏ, chữ ký và 2 có thể là một đối tượng màu hồng mặc dù chữ ký 2 được chỉ định bởi một cam LED

Sau khi chúng ta dạy Pixy một chữ ký, nó sẽ lưu lại chữ ký trong flash, vì vậy nó sẽ nhớ các chữ ký chúng ta đã dạy nó và tiếp tục theo dõi các đối tượng phù hợp với những chữ ký

Nếu chúng ta vô tình thấy mình dạy nhầm chữ kí màu cho đèn LED (tức là chúng ta phát hành nút khi nó là màu cam thay vì màu đỏ), ví dụ, chỉ cần giữ nút cho đến khi đèn LED tắt Đây là cách chúng ta nói Pixy để hủy bỏ chế độ giảng dạy Sau đó chúng ta có thể bắt đầu lại bằng cách giữ nút xuống một lần nữa

4.3.2 Pixy Mon

PixyMon là một ứng dụng chạy trên Windows, MacOS và Linux Nó cho phép chúng ta xem những gì Pixy thấy, hoặc là video thô hoặc chỉnh sửa Nó cũng cho phép chúng ta cấu hình Pixy của chúng ta, thiết lập các cổng đầu ra và quản lý chữ ký màu PixyMon giao tiếp với Pixy qua cáp mini USB chuẩn

PixyMon là rất tốt để gỡ lỗi các ứng dụng của chúng ta Chúng ta có thể cắm một cáp USB vào mặt sau của Pixy và chạy PixyMon và sau đó xem những gì Pixy thấy trong khi nó được nối với Arduino của chúng ta hoặc vi điều khiển khác - không cần tháo bất cứ điều gì PixyMon là mã nguồn mở, giống như mọi thứ khác

Dưới đây là những gì PixyMon truyền tới máy tính:

Trang 28

Robot bám line dùng xử lý ảnh 15

Hình 10: Pixy truyền tới máy tính qua PixyMon

Buttons: đó là những hành động PixMon phổ biến nhất, vị trí thuận lợi ở trên cùng

của cửa sổ chính

Cửa sổ Video: đây là nơi PixyMon làm cho nhiều loại hình video thô hoặc

processsed

Command / trạng thái: đây là nơi mà các thông điệp tình trạng được hiển thị và

nơi lệnh Pixy có thể được gõ vào

Dưới đây là một chi tiết của các nút:

Hình 10: Một số các nút

Dừng / tiếp tục: nhấn nút này dừng video đang được kết xuất trong cửa sổ

video Điều này rất hữu ích khi lấy một khung hình hoặc gõ lệnh vào cửa sổ lệnh / trạng thái Nhấn nút này lần nữa để chạy lại các video

Chương trình mặc định: nhấn nút này chạy chương trình mặc định, đó là các

chương trình thực thi khi Pixy quyền hạn lên Đó thường là các chương trình mà tất

cả các xử lý trên Pixy và xuất ra kết quả (ví dụ như phát hiện các đối tượng) thông qua một trong các cổng nối tiếp Pixy của

Video thô: nhấn nút này sẽ hiển thị liệu, video chưa qua chỉnh sửa Điều này rất

hữu ích cho điều chỉnh tiêu cự, độ sáng máy ảnh, vv

Cooked video: nhấn nút hiển thị xử lý video này "chỉnh sửa" Nhấn nút này nếu

chúng ta muốn có được một ý tưởng tốt về cách Pixy đang xử lý hình ảnh trong chương trình mặc định Chế độ Cooked video là video thô với lớp phủ xử lý video

Cấu hình: nhấn này sẽ trả về các cấu hình hộp thoại, trong đó có các thông số cấu

hình khác nhau cho Pixy và PixyMon

Trang 29

Robot bám line dùng xử lý ảnh 16

Hình 11:Menu Action

Menu này sẽ liệt kê tất cả các thư mục có trong "Action" đã được truy vấn và có sẵn trên Pixy của chúng ta

Run / Stop: Điều này giống như cách nhấn vào nút Run / Stop trong cửa sổ chính

của PixyMon Lựa chọn này dừng video đang được kết xuất trong cửa sổ video Điều này rất hữu ích khi lấy một khung hoặc gõ lệnh vào cửa sổ lệnh / trạng thái Hãy chọn điều này một lần nữa để lại các video

Mặc định chương trình: Đây là giống như việc nhấn nút chương trình mặc định

trong cửa sổ chính của PixyMon Lựa chọn này chạy các chương trình mặc định, đó

là các chương trình thực thi khi Pixy quyền hạn lên Đó thường là các chương trình

mà tất cả các xử lý trên Pixy và xuất ra kết quả (ví dụ như phát hiện các đối tượng) thông qua một trong các cổng nối tiếp Pixy của

Video thô: Đây là giống như cách nhấn vào nút video thô trong cửa sổ chính của

PixyMon Lựa chọn này sẽ hiển thị liệu, video chưa qua chế biến Điều này rất hữu ích cho điều chỉnh tiêu cự, độ sáng máy ảnh, vv

Cooked video: Đây là giống như cách nhấn các nút cooked video trong cửa sổ chính

của PixyMon Lựa chọn hiển thị xử lý video này "cooked video" Hãy chọn điều này nếu chúng ta muốn có được một ý tưởng tốt về cách Pixy đang xử lý hình ảnh

Trang 30

Robot bám line dùng xử lý ảnh 17

trong chương trình mặc định Chế độ cooked chín là video thô với lớp phủ xử lý video

Chạy pan / tilt demo: Lựa chọn này chạy demo pan / tilt onboard Pixy (không

Arduino hoặc bộ điều khiển bên ngoài yêu cầu)

Set chữ ký: Lựa chọn một trong số này sẽ cho phép chúng ta thiết lập chữ ký bằng

cách chọn đối tượng của chúng ta trong cửa sổ video với một con chuột - chọn

Đặt chữ ký CC: Chọn một trong số này sẽ cho phép chúng ta thiết lập một chữ ký

mã màu bằng cách chọn đối tượng của chúng ta trong cửa sổ video với một con chuột - chọn

Xóa chữ ký : Lựa chọn này và chúng ta sẽ được nhắc trong cửa sổ lệnh / tình trạng

mà màu chữ ký chúng ta muốn xóa

Xóa tất cả chữ ký: Lựa chọn này sẽ xóa tất cả các chữ ký màu

Khôi phục các giá trị tham số mặc định: Lựa chọn này sẽ khôi phục lại tất cả các

thông số Pixy giá trị mặc định Điều này rất hữu ích nếu Pixy chúng ta hoạt động không đúng theo yêu cầu - chúng ta có thể sử dụng điều này để "thiết lập lại" mọi thứ Lưu ý, đây không khôi phục lại các thông số PixyMon về giá trị mặc định của chúng

Dạy pixy một đối tượng thông qua PixyMon

Chúng ta cũng có thể dạy Pixy một đối tượng thông qua PixyMon Điều này có thể hữu ích nếu đối tượng chúng ta muốn dạy là vật nhỏ, hoặc nếu chúng ta muốn kiểm soát nhiều hơn đối với các điểm ảnh được sử dụng để giảng dạy Bắt đầu bằng cách cắm cáp USB giữa Pixy và máy tính của chúng ta và chạy PixyMon

Bây giờ giữ các đối tượng chúng ta muốn dạy trước Pixy và chọn Action➜Set signature 1 từ trình đơn thả xuống

Hình 12 : Chọn Action➜Set signature 1

Trang 31

Robot bám line dùng xử lý ảnh 18

Sử dụng chuột, click và kéo chuột để chọn khu vực chúng ta muốn Pixy sử dụng

để tìm hiểu những đối tượng

Hình 13 : Click và kéo chuột

Sau khi chúng ta chọn khu vực, Pixy sẽ "học" các đối tượng và tự động chuyển sang chế độ cooked video, do đó chúng ta có thể xác minh chữ ký như thế nào màu sắc của chúng ta đang làm việc

Hình 13 :Pixy đã học (đánh dấu) lên đối tượng

Trang 32

Robot bám line dùng xử lý ảnh 19

Chữ ký điều chỉnh

Đôi khi các chữ ký màu chúng ta dạy Pixy cần phải "tinh chỉnh" - đó là, chúng ta đang nhận được một số dương tính giả (Pixy là phát hiện các đối tượng không phải là đối tượng mà chúng ta dự định) hoặc âm tính giả (Pixy không phát hiện các đối tượng chúng

ta chỉ dạy nó, hoặc nó phát hiện các đối tượng liên tục.) chúng ta có thể tinh chỉnh mọi thứ

bằng cách đưa ra hộp thoại Configure Chọn chỉnh Chữ ký ô dưới Pixy Parameters

Hình 14 : Bảng menu Pixy Parameters

Sử dụng thanh trượt cho Chữ ký 1 phạm vi điều chỉnh toàn diện của chữ ký 1 (giả

định đó là chữ ký của 1 chúng ta đang mong muốn để điều chỉnh) Trượt sang trái nếu chúng ta muốn được ít bao gồm (tức là nếu chúng ta đang nhìn thấy dương tính giả, giống như hình ảnh dưới đây):

Hình 15 : Nhìn thấy dương tính giả

Trang 33

Robot bám line dùng xử lý ảnh 20

hoặc trượt sang bên phải nếu chúng ta muốn được toàn diện hơn (tức là chúng ta đang nhìn thấy âm tính giả) hoặc phát hiện là không liên tục hay thưa thớt (như trong hình dưới đây):

Hình 16 : Nhìn thấy âm tính giả

Chọn giá trị thanh trượt mà cung cấp phát hiện tốt mạnh mẽ, giống như hình ảnh dưới đây:

Hình 17 : Ví trí màu phù hợp

Chúng ta có thể điều chỉnh tất cả bảy chữ ký màu theo cách này để tối đa hóa độ

chính xác phát hiện cho tất cả các chữ ký Hãy chắc chắn để nhấn Apply hoặc OK để lưu! Các giá trị được điều chỉnh sẽ không được ghi lại nếu chúng ta nhấn Cancel hay bỏ

qua hộp thoại

Trang 34

Robot bám line dùng xử lý ảnh 21

4.3.3 Giao tiếp thông qua PixyMon

Hiện có phần mềm hỗ trợ cho các vi điều khiển sau đây:

Serial: điều này bao gồm SPI, I2C và giao diện UART Các giao diện nối tiếp đều

sử dụng một giao thức đơn giản hóa với một mã số và bộ nhớ giắc cắm Mã này là đơn giản đến cổng để vi điều khiển khác nhau Đây là phương pháp được sử dụng

để giao tiếp với Arduino Sử dụng giao thức nối tiếp, Pixy gửi thông tin đầy đủ về những gì nó phát hiện, và nó chấp nhận các lệnh đơn giản để thiết lập các servo pan / tilt, vv

USB: giao diện USB dành cho vi điều khiển có nguồn tài nguyên bộ nhớ (RAM và

đèn flash) Mã cho giao thức USB có một bộ nhớ lớn hơn Đây là phương pháp được

sử dụng để giap tiếp với Raspberry Pi và BeagleBone Black, và nó được sử dụng bởi PixyMon dòng video trực tiếp và đọc / ghi thông tin cấu hình

Analog / digital: đây là giao diện đơn giản và thậm chí không có một giao thức

 Chọn đúng giao diện

Trước tiên, chúng ta cần phải xác định cách chúng ta muốn giao tiếp với Pixy Pixy gửi/chặn thông tin để Arduino tại 1 Mbits / giây qua SPI vì tốc độ clock Arduino SPI được thiết lập để 1 MHz (nó có thể được đặt cao hơn, tuy nhiên) Điều này có nghĩa Pixy có thể gửi nhiều hơn 6000 phát hiện đối tượng mỗi đối tượng phát hiện thứ hai hay 135 cho mỗi khung hình (quy trình Pixy tại 50 khung hình mỗi giây) Nhưng nó vẫn còn có thể là liên kết nối tiếp là quá chậm để gửi lại tất cả các đối tượng trước khi frame kế tiếp được xử lý

và các đối tượng mới đã sẵn sàng để gửi qua nối tiếp Điều này đặc biệt có thể xảy ra với UART nối tiếp, mà chỉ là 19,2 kbaud thường, nhưng có thể cao như 115 kbaud Khi điều này xảy ra, các khối đối tượng chưa gửi từ khung trước đó được ném và các khối đối tượng mới từ khung mới được gửi thay thế Bằng cách này, những thông tin gần đây nhất là ưu tiên và luôn luôn được gửi Và kể từ khi đối tượng được sắp xếp theo kích thước, lớn hơn các đối tượng, ưu tiên nhiều hơn, nó cũng thu Hãy xem xét những hướng dẫn này:

 Nếu điều khiển của chúng ta được dựa trên Linux và có một cổng USB host, sử dụng libpixyusb Đó là khá dễ dàng để cảng và USB là giao diện nhanh nhất

 Nếu điều khiển của chúng ta hỗ trợ SPI, sử dụng đó Nó thường nhanh hơn so với I2C và UART, hoặc

 Nếu điều khiển của chúng ta hỗ trợ I2C, sử dụng đó Đó là về tốc độ giống như UART nối tiếp, nhưng linh hoạt hơn, hoặc

 Nếu điều khiển của chúng ta hỗ trợ UART nối tiếp, sử dụng, hoặc

 Nếu điều khiển của chúng ta không hỗ trợ bất kỳ các giao diện, xem xét sử dụng tương tự đơn giản và đầu ra digital Đây là giao diện đơn giản nhất có thể!

Trang 35

Robot bám line dùng xử lý ảnh 22

 Thiết lập giao diện

Chúng ta có thể cấu hình các giao diện đầu ra thông qua PixyMon "Dữ liệu ra cổng" tham số trong các "giao diện" tab xác định giao diện chúng ta đang sử dụng

Hình 18 : Thiết lập giao diện

 Arduino ICSP SPI - đây là cổng mặc định mà sử dụng 3 dây (chân 1, 3, và 4 của I/O kết nối) và được sử dụng để giao tiếp với Arduino thông qua đầu nối ICSP Phiên bản này của SPI không sử dụng một slavechọn tín hiệu

 SPI với SS - điều này cũng giống như Arduino ICSP SPI ngoại trừ việc nó bao gồm

hỗ trợ cho Slave Chọn thông qua pin 7 (SPI SS) Đó là chúng ta cần phải điều khiển SPI SS thấp trước khi gửi / nhận từng byte

 I2C - đây là một multi-drop 2 dây cổng (chân 5 và 9 của I / O kết nối) cho phép một chủ duy nhất để giao tiếp lên đến 127 người slave (lên đến 127 Pixys) Chúng ta có thể cấu hình các địa chỉ I2C thông qua các tham số "địa chỉ I2C"

 UART - đây là "cổng nối tiếp" thông thường (chân 1 và 4 của I/O ) Pixy nhận dữ liệu thông qua pin 1 (đầu vào) và truyền dữ liệu thông qua pin 4 (đầu ra) Chúng ta

có thể cấu hình baudrate UART thông qua các tham số "UART baudrate"

 analog / digital x – điều này sẽ ra các giá trị x của đối tượng phát hiện lớn nhất là một giá trị tương tự giữa 0 và 3.3V (pin 3) Nó cũng kết quả đầu ra cho dù một đối tượng được phát hiện hoặc không phải là một tín hiệu digital (pin 1 của I/O)

 analog / digital y - điều này sẽ ra các giá trị y của đối tượng phát hiện lớn nhất là một giá trị tương tự giữa 0 và 3.3V (pin 3) Nó cũng kết quả đầu ra cho dù một đối tượng được phát hiện hoặc không phải là một tín hiệu digital (pin 1 của I/O)

 LEGO I2C - nếu chúng ta có một LEGO Mindstorms EV3 hoặc NXP điều khiển,

sử dụng chế độ này Đó là I2C, nhưng sử dụng giao thức LEGO

Lưu ý, các giao diện USB và giao thức luôn được kích hoạt, trong khi mỗi giao diện trên chỉ có thể được kích hoạt một tại một thời điểm nhất định

Trang 36

Robot bám line dùng xử lý ảnh 23

 Ghi chú trên mỗi giao diện

Dưới đây là sơ đồ chân nối của I / O Pixy, nơi mà tất cả các nối tiếp (SPI, I2C, UART) và analog / digital giao diện có sẵn

Hình 19 : Sơ đồ nối chân

Nhìn vào mặt sau của Pixy, các chân của cổng I / O là theo thứ tự sau đây, với pin 1 nằm trên bên trái:

1 Dữ liệu được gửi bit quan trọng nhất đầu tiên

2 SPI SCK là thấp khi nhàn rỗi

3 bit dữ liệu được bám trên các cạnh tăng của SPI SCK

4 Slave chọn là hoạt động thấp

Pixy cũng hỗ trợ SPI với slave chọn (SPI với SS)

Dưới đây là làm thế nào để kết nối SPI điều khiển của chúng ta lên Pixy (nếu chúng ta không sử dụng một Arduino và cáp cung cấp):

1 Pin 10 ➜ tín hiệu mặt đất điều khiển của chúng ta

2 Pin 1 (SPI MISO) ➜ tín hiệu SPI MISO điều khiển của chúng ta

3 Pin 4 (SPI MOSI) ➜ tín hiệu SPI MOSI điều khiển của chúng ta

4 Pin 3 (SPI SCK) ➜ tín hiệu SPI SCK điều khiển của chúng ta

5 Pin 7 (SPI SS) ➜ tín hiệu SPI SS điều khiển của chúng ta (nếu chúng ta đang sử dụng SPI với SS)

Trang 37

Robot bám line dùng xử lý ảnh 24

 I2C

 Giao diện I2C hoạt động như một slave I2C

 Có biến trở 4.7K pullups đến 5V trên SDA và SCL tín hiệu, thông qua R14 và R15

 Tín hiệu I2C được 5V

 Các địa chỉ I2C có thể được cấu hình trong "Giao diện" tab và các tham số cấu hình hộp thoại trong PixyMon

 Có một ví dụ Arduino sử dụng I2C Chạy nó bằng cách chọn File➜Examples➜i2c trong Arduino IDE Chúng ta sẽ cần phải thực hiện một cáp đặc biệt

Dưới đây là làm thế nào để kết nối I2C điều khiển của chúng ta lên Pixy:

1 Pin 10 ➜ tín hiệu mặt đất điều khiển của chúng ta

2 Pin 9 (I2C SDA) ➜ tín hiệu I2C SDA điều khiển của chúng ta

3 Pin 5 (I2C SCL) ➜ tín hiệu I2C SCL điều khiển của chúng ta

Lưu ý, khi giao tiếp với nhiều hơn một Pixy qua I2C, chúng ta sẽ cần phải cấu hình một địa chỉ I2C khác nhau cho mỗi Pixy vì vậy họ không ảnh hưởng vào nhau Đó là, khi chọn I2C là một giao diện, tất cả các tín hiệu trên kết nối I / O Pixy đi vào một trạng thái trở kháng cao và sẽ không can thiệp với nhau, tránh lãng phí năng lượng, vv

 RX tín hiệu (pin 1) là 5V đầu vào

 TX tín hiệu (pin 4) là 0 để tín hiệu đầu ra 3.3V

 Baudrates lên đến 230 kbaud hỗ trợ

 Có một ví dụ Arduino sử dụng UART nối tiếp Chạy nó bằng cách chọn File➜Examples➜uart trong Arduino IDE Chúng ta sẽ cần phải thực hiện một cáp đặc biệt

Dưới đây là làm thế nào để kết nối UART điều khiển của chúng ta lênPixy:

1 Pin 10 ➜ tín hiệu mặt đất điều khiển của chúng ta

2 Pin 1 (UART RX) ➜ đầu ra UART TX điều khiển của chúng ta

3 Pin 4 (UART TX) ➜ UART RX đầu vào của bộ điều khiển của chúng ta

 Analog và digital đầu ra

 Pixy có một đầu ra analog đơn (DAC), vì vậy có hai chế độ cho analog/digital đầu

ra

 Chế độ 4 đầu ra các giá trị x của trung tâm của các đối tượng phát hiện lớn nhất đối với pin 3 của I / O

 5 chế độ xuất ra giá trị y của đối tượng phát hiện lớn nhất đối với pin 3 I/ O

 Pin 1 lên mức cao (3.3V) khi một đối tượng được phát hiện, và thấp (0V) khi không

có đối tượng được phát hiện

 Đầu ra digital Pixy là 0 - 3.3V và source/sink 5 mA

Trang 38

1 Pin 10 ➜ tín hiệu mặt đất điều khiển của chúng ta

2 Pin 3 (DAC OUT) ➜ một trong những tín hiệu đầu vào ADC của bộ điều khiển của chúng ta

3 Pin 1 (GPIO0) ➜ một trong những tín hiệu đầu vào digital điều khiển của chúng ta Lưu ý, tất cả các tín hiệu đầu ra digital trên Pixy là 3.3V CMOS logic Tất cả các tín hiệu đầu vào digital trên Pixy được 5V

 Các giao thức nối tiếp

Cho dù đang sử dụng SPI, I2C hay UART nối tiếp, giao thức là giống hệt nhau

 Giao thức là dữ liệu hiệu quả nhị phân

 Các đối tượng trong mỗi khung hình được sắp xếp theo kích thước, với các đối tượng lớn nhất gửi đầu tiên

 Chúng ta có thể cấu hình số lượng tối đa của vật gửi cho mỗi khung hình ( "khối Max" tham số)

 SPI và I2C hoạt động trong "chế độ slave" và dựa vào điểm bỏ phiếu để nhận được cập nhật

 Khi không có đối tượng phát hiện (không có dữ liệu) Pixy gửi số không nếu giao diện SPI hoặc I2C (kể từ Pixy là một slave, nó có gửi một cái gì đó)

 Mỗi đối tượng được gửi trong một "khối đối tượng" (xem dưới đây)

 Tất cả các giá trị trong khối đối tượng là những từ 16-bit, byte gửi kém signifcant đầu tiên (về cuối nhỏ) Vì vậy, ví dụ, khi gửi lời đồng bộ 0xaa55, Pixy gửi 0x55 (byte đầu tiên) sau đó 0xaa (byte thứ hai)

Trang 39

#define PIXY_START_WORD 0xaa55

#define PIXY_START_WORD_CC 0xaa56

#define PIXY_START_WORDX 0x55aa

return 0; // in I2C and SPI modes this means no data, so return immediately

else if (w==PIXY_START_WORD && lastw==PIXY_START_WORD)

{

g_blockType = NORMAL_BLOCK; // remember block type

return 1; // code found!

Trang 40

Robot bám line dùng xử lý ảnh 27

Vì vậy, để xác minh rằng chúng ta đang nhận được 50 khung hình / giây:

int main()

{

int i=0, curr, prev=0;

// look for two start codes back to back

static int g_skipStart = 0;

static Block *g_blocks;

uint16_t getBlocks(uint16_t maxBlocks)

Ngày đăng: 27/11/2021, 23:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w