Vai trò xử lý ảnh trong công nghiệp

Successfully reported this slideshow.

Your SlideShare is downloading. ×

Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net

Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm, cho các bạn có thể tham khảo

Vai trò xử lý ảnh trong công nghiệp

Liên Hệ Zalo 0909232620 at BÁO GIÁ DV VIẾT BÀI TẠI: TRANGLUANVAN.COM

Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net

Download luận văn đồ án tốt nghiệp ngành điện tử công nghiệp với đề tài: Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm, cho các bạn có thể tham khảo

More Related Content

  1. 1. GVHD: TH.S NGUYỄN DUY THẢO SVTH: NGUYỄN HIỀN MINH 15141209 PHAN THANH PHONG 15141238 ĐỒ ÁN TỐT NGHIỆP NGÀNH: CNKT ĐIỆN TỬ - TRUYỀN THÔNG ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH TRONG HỆ THỐNG PHÂN LOẠI SẢN PHẨM 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 ĐIỆN - ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH ------------------------------ TP. HỒ CHÍ MINH – 6/2019
  2. 2. GVHD: TH.S NGUYỄN DUY THẢO SVTH: NGUYỄN HIỀN MINH 15141209 PHAN THANH PHONG 15141238 ĐỒ ÁN TỐT NGHIỆP NGÀNH: CNKT ĐIỆN TỬ - TRUYỀN THÔNG ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH TRONG HỆ THỐNG PHÂN LOẠI SẢN PHẨM 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 ĐIỆN - ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ------------------------------ TP. HỒ CHÍ MINH – 6/2019
  3. 3. TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ----o0o---- NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Phan Thanh Phong Nguyễn Hiền Minh MSSV: 15141238 MSSV: 15141209 Chuyên ngành: Điện tử Công nghiệp Mã ngành: 141 Hệ đào tạo: Đại học chính quy Mã hệ: 15 Khóa: 2015 Lớp: 15141DT2A I. TÊN ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH TRONG HỆ THỐNG PHÂN LOẠI SẢN PHẨM II. NHIỆM VỤ 1. Các số liệu ban đầu: Một kit Raspberry Pi, Một kit Arduino, Một Camera Pi, Hệ thống băng tải, Cảm biến. Sản phẩm gồm các phôi với 3 màu sắc đỏ, xanh, vàng. 2. Nội dung thực hiện: Tổng quan về xử lý ảnh; Tìm hiểu phương pháp nhận dạng và phân loại sản phẩm; Tìm hiểu kit Raspberry Pi; Tìm hiểu kit Arduino Uno và các linh kiện liên quan; Viết chương trình trên kit Raspberry Pi; Viết chương trình trên Arduino Uno; Thiết kế mô hình phân loại sản phẩm. III. NGÀY GIAO NHIỆM VỤ: 26/02/2019 IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 30/06/2019 V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Nguyễn Duy Thảo CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
  4. 4. TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ----o0o---- Tp.HCM, Ngày 01 tháng 07 năm 2019 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Phan Thanh Phong Lớp: 15141DT2A ..........................................................MSSV: 15141238 Họ tên sinh viên 1: Nguyễn Hiền Minh Lớp: 15141DT1B ..........................................................MSSV: 15141209 Tên đề tài: Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm Tuần/ngày Nội dung Xác nhận GVHD 1-2 Thực hiện chọn đề tài 3 Nhận đề tài, Gặp GVHD để phổ biến quy định. 4-5 Nghiêm cứu đề tài, tìm tài liệu về đề tài. 6 Viết đề cương chi tiết. 7-8 Tìm hiểu về cơ sở lý thuyết. 9-11 Tiến hành thi công phần cứng. 12-14 Viết chương trình. 15 Nạp code và cân chỉnh hệ thống. 16-17 Viết sách đồ án, Báo cáo đề tài tốt nghiệp. GV HƯỚNG DẪN (Ký và ghi rõ họ và tên) Ths. Nguyễn Duy Thảo
  5. 5. LỜI CAM ĐOAN Đề tài “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm” là nhóm tôi tự thực hiện dựa vào tham khả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 đó. Nhóm thực hiện đề tài Phan Thanh Phong Nguyễn Hiền Minh
  6. 6. LỜI CẢM ƠN  Để có thể thực hiện và hoàn thành đề tài này, nhóm xin gởi lời chân thành cảm ơn các thầy cô trong Khoa Điện-Điện Tử đã tạo những điều kiện tốt nhất cho em hoàn thành đề tài. Những kiến thức bổ ích mà các Thầy Cô dạy, nó được áp dụng vào đề tài Đồ Án Tốt Nghiệp rất nhiều, từ những kiến thức nhỏ nhặt cho tới những bài học lớn. Một lần nữa nhóm xin được gửi lời cám ơn đến tất cả Thầy Cô, nếu không có Thầy Cô thì chắc giờ này nhóm sẽ khó có thể hoàn thành đề tài này. Ngoài sự cố gắng của bản thân, nhóm em không thể nào không nhắc đến công lao đã vạch ra hướng đi cho đề tài và hướng dẫn từng yêu cầu của đề tài mà thầy Th.S. Nguyễn Duy Thảo đã truyền đạt cho nhóm em những kiến thức hết sức bổ ích và những ứng dụng thực tế. Thầy Th.S. Nguyễn Duy Thảo ân cần chỉ bảo tận tình. Giải thích rõ ràng những chỗ mà nhóm em chưa hiểu. Tiếp theo nhóm cũng xin cám ơn tới các Anh, Chị khóa trên cùng các bạn sinh viên đã tạo điều kiện giúp đỡ, từ những tài liệu liên quan tới đề tài cho tới những kinh nghiệm sống thực tế. Nhờ họ mà nhóm mới có thể phát triển được. Cuối cùng là gửi lời cảm ơn đến Cha, Mẹ nếu không có hai đấng sinh thành thì ngày hôm nay cũng không có ai hiện diện ở đây để thực hiện những việc mình muốn, họ đã tạo mọi điều kiện để giúp con của mình hướng tới một tương lai tốt đẹp. Mặc dù nhóm em đã cố gắng hoàn thành tốt đề tài này một cách hoàn chỉnh nhất, nhưng cũng không thể tránh những sai sót nhất định trong công tác nghiên cứu, tiếp cận thực tế, cũng như những hạn chế về kiến thức lẫn thời gian thực hiện. Rất mong nhận được sự góp ý của quý thầy cô và các bạn để đề tài này được hoàn chỉnh hơn. Xin chân thành cảm ơn! Nhóm thực hiện đề tài Phan Thanh Phong Nguyễn Hiền Minh
  7. 7. Mục lục TRANG 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....................................................................................................xii TÓM TẮT............................................................................................................xiii 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ÊM CỨU.........................................................................1 1.4 GIỚI HẠN....................................................................................................2 1.5 BỐ CỤC.......................................................................................................2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ........................................................................4 2.1 TỔNG QUAN VỀ XỬ LÝ ẢNH ..................................................................4 2.1.1 Thu nhận ảnh (Image Acquisition)..............................................................5 2.1.2 Tiền xử lý (Image processing).....................................................................5 2.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh............................................5 2.1.4 Biểu diễn ảnh (Image Representation) ........................................................6 2.1.5 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) .............6 2.1.6 Cơ sơ tri thức (Knowledge Base) ................................................................6 2.1.7 Mô tả ..........................................................................................................7 2.2 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH ...................................................7 2.2.1 Điểm ảnh (Picture Element)........................................................................7 2.2.2 Ảnh số ........................................................................................................7 2.2.3 Phân loại ảnh ..............................................................................................7 2.2.4 Quan hệ giữa các điểm ảnh .........................................................................8 2.2.5 Lọc nhiễu....................................................................................................8
  8. 8. 2.2.6 Phương pháp phát hiện biên........................................................................9 2.2.7 Phân đoạn ảnh...........................................................................................11 2.2.8 Các phép toán hình thái Morphology ........................................................12 2.3 GIỚI THIỆU RASPBERRY PI 3................................................................14 2.3.1 Giới thiệu..................................................................................................14 2.3.2 Thông tin cấu hình Raspberry Pi 3............................................................15 2.3.3 Ứng dụng..................................................................................................16 2.4 GIỚI THIỆU VỀ CAMERA PI...................................................................16 2.4.1 Giới thiệu..................................................................................................16 2.4.2 Thông tin cấu hình Camera Pi v2.1 ...........................................................17 2.4.3 Ứng dụng..................................................................................................18 2.5 GIỚI THIỆU VỀ ARDUINO UNO R3.......................................................18 2.5.1 Giới thiệu..................................................................................................18 2.5.2 Thông tin cấu hình Arduino Uno R3.........................................................18 2.5.3 Ứng dụng..................................................................................................22 2.6 GIỚI THIỆU VỀ CẢM BIẾN HỒNG NGOẠI E18-D80NK ......................23 2.6.1 Giới thiệu..................................................................................................23 2.6.2 Thông số kỹ thuật .....................................................................................23 2.6.3 Ứng dụng..................................................................................................24 2.7 GIỚI THIỆU VỀ ĐỘNG CƠ DC................................................................24 2.7.1 Giới thiệu..................................................................................................24 2.7.2 Cấu tạo và nguyên lý hoạt động................................................................24 2.7.3 Ứng dụng..................................................................................................26 2.8 GIỚI THIỆU VỀ ĐỘNG CƠ SERVO MG996R.........................................27 2.8.1 Tổng quan về động cơ servo .....................................................................27 2.8.2 Giới thiệu động cơ servo MG996R ...........................................................28 2.8.3 Ứng dụng..................................................................................................29 2.9 GIỚI THIỆU HỆ THỐNG BĂNG TẢI.......................................................29 2.9.1 Giới thiệu..................................................................................................29 2.9.2 Cấu tạo .....................................................................................................30 2.9.3 Ứng dụng..................................................................................................31 2.10 GIỚI THIỆU VỀ LCD16X2 .......................................................................31 2.10.1 Giới thiệu..................................................................................................31
  9. 9. 2.10.2 Cấu tạo .....................................................................................................31 2.10.3 Ứng dụng..................................................................................................33 2.11 GIỚI THIỆU HỆ ĐIỆU HÀNH TRÊN RASPBERRY PI ...........................33 2.12 GIỚI THIỆU NGÔN NGỮ PYTHON VÀ THƯ VIỆN OPENCV..............34 2.12.1 Ngôn ngữ Python......................................................................................34 2.12.2 Thư viện OPENCV...................................................................................35 2.13 GIỚI THIỆU VỀ CÁC CHUẪN GIAO TIẾP .............................................36 2.13.1 Chuẫn giao tiếp Uart.................................................................................36 2.13.2 Chuẫn giao tiếp I2C..................................................................................39 2.14 GIỚI THIỆU VỀ PHẦN MỀM ARDUINO IDE.........................................42 2.15 PHƯƠNG PHÁP PHÂN LOẠI SẢN PHẨM THEO MÀU SẮC................44 2.15.1 Các màu sắc cơ bản của sản phẩm ............................................................44 2.15.2 Phương pháp nhận dạng màu sắc ..............................................................44 CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ ..........................................................50 3.1 GIỚI THIỆU...............................................................................................50 3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG.................................................50 3.2.1 Thiết kế sơ đồ khối hệ thống.....................................................................50 3.2.2 Sơ đồ kết nối hệ thống ..............................................................................51 3.2.3 Sơ đồ kết nối toàn mạch............................................................................64 CHƯƠNG 4: THI CÔNG HỆ THỐNG .................................................................65 4.1 GIỚI THIỆU...............................................................................................65 4.2 THI CÔNG HỆ THỐNG ............................................................................65 4.2.1 Chuẩn bị phần cứng..................................................................................65 4.2.2 Lắp ráp và kiểm tra ...................................................................................66 4.3 LẬP TRÌNH HỆ THỐNG...........................................................................71 4.3.1 Lưu đồ giải thuật trên Arduino..................................................................71 4.3.2 Lưu đồ giải thuật xử lý ảnh trên Raspberry ...............................................73 4.3.3 Các bước tuy cập, lập trình trên Python ....................................................75 4.3.4 Hướng dẫn sử dụng và thao tác.................................................................78 CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ.............................................85 5.1 KẾT QUẢ...................................................................................................85 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ .....................................................................97 CHƯƠNG 6: KẾT LUẬN VÀ PHÁT TRIỂN.......................................................99
  10. 10. 6.1 KẾT LUẬN ................................................................................................99 6.1.1 Kết quả đạt được.......................................................................................99 6.1.2 Những mặt hạn chế...................................................................................99 6.2 HƯỚNG PHÁT TRIỂN..............................................................................99 TÀI LIỆU THAM KHẢO ...................................................................................100 PHỤ LỤC............................................................................................................101
  11. 11. LIỆT KÊ HÌNH ẢNH Hình Trang Hình 2.1: Các bước cơ bản trong xử lý ảnh..............................................................5 Hình 2.2: Lân cận 4 lân cận 8 ..................................................................................8 Hình 2.3: Hình tách biên........................................................................................10 Hình 2.4: Phép giản...............................................................................................13 Hình 2.5: Phép co..................................................................................................13 Hình 2.6: Raspberry Pi 3 .......................................................................................14 Hình 2.7: Sơ đồ Raspberry Pi 3 Module B.............................................................15 Hình 2.8: Camera Pi v2.1 ......................................................................................17 Hình 2.9: Sơ đồ khối Camera Raspberry Pi ...........................................................18 Hình 2.10: Arduino Uno R3 ..................................................................................20 Hình 2.11: Sơ đồ chân ATMega 328P ứng với arduino Uno R3 ............................22 Hình 2.12: Cảm biến hồng ngoại E18-D80NK.......................................................23 Hình 2.13: Động cơ DC.........................................................................................24 Hình 2.14: Pha 1 động cơ DC................................................................................25 Hình 2.15: Pha 2 động cơ DC................................................................................25 Hình 2.16: Pha 3 động cơ DC................................................................................26 Hình 2.17: Động cơ servo......................................................................................27 Hình 2.18: Cấu tạo bên trong động cơ servo ..........................................................28 Hình 2.19: Động cơ servo MG996R ......................................................................29 Hình 2.20: Mô hình băng tải..................................................................................30 Hình 2.21: LCD16x2.............................................................................................31 Hình 2.22: Sơ đồ chân LCD16x2...........................................................................32 Hình 2.23: Hệ điều hành Raspbian ........................................................................34 Hình 2.24: Giao tiếp Uart ......................................................................................36 Hình 2.25: Giao tiếp song song..............................................................................37 Hình 2.26: Truyền thông Uart................................................................................38 Hình 2.27: Giao diện Uart .....................................................................................39 Hình 2.28: Hệ thống các thiết bị giao tiếp chuẩn I2C.............................................40 Hình 2.29: Quá trình chủ ghi dữ liệu vào tớ...........................................................41 Hình 2.30: Quá trình chủ đọc dữ liệu từ tớ.............................................................42 Hình 2.31: Giao diện phần mềm Arduino IDE.......................................................43 Hình 2.32: Icon và chức năng trong Arduino IDE..................................................43 Hình 2.33: Không gian màu RGB..........................................................................45
  12. 12. Hình 2.34: Không gian màu CMYK ......................................................................46 Hình 2.35: Không gian màu HSV..........................................................................46 Hình 2.36: Sơ đồ các bước thực hiện phân loại màu ..............................................47 Hình 3.1: Sơ đồ khối hệ thống...............................................................................50 Hình 3.2: Sơ đồ kết nối của Raspberry Pi ..............................................................52 Hình 3.3: Sơ đồ kết nối thực tế của Raspberry Pi...................................................52 Hình 3.4: Sơ đồ các cổng ngoại vi sử dụng............................................................53 Hình 3.5: Sơ đồ kết nối thẻ nhớ của Raspberry......................................................54 Hình 3.6: Gắn thẻ nhớ vào khe thực tế...................................................................54 Hình 3.7: Sơ đồ kết nối Arduino............................................................................55 Hình 3.8: Giao tiếp Uart giữa Raspberry Pi và Arduino Uno .................................56 Hình 3.9: Sơ đồ kết nối khối Camera.....................................................................57 Hình 3.10: Kết nối Camera thực tế ........................................................................57 Hình 3.11: Giao tiếp I2C giữa Arduino Uno và LCD16x2 .....................................58 Hình 3.12: Kết nối Arduino Uno và động cơ DC ...................................................59 Hình 3.13: Kết nối giữa Arduino Uno và động cơ servo ........................................59 Hình 3.14: Kết nỗi giữa Arduino Uno và cảm biến E18-D80NK ...........................60 Hình 3.15: Adapter 5VDC – 2A ............................................................................60 Hình 3.16: Sơ đồ nguyên lý mạch hạ áp LM2596..................................................61 Hình 3.17: Hình ảnh thực tế mạch hạ áp LM2596..................................................61 Hình 3.18: Mạch cấp nguồn cho động cơ DC 24V.................................................62 Hình 3.19: Mạch cấp nguồn cho Servo MG996, Relay 5V, Cảm biến E18-D80NK, LCD16x2 ..............................................................................................................63 Hình 3.20: Nguồn tổ ong 24VDC – 5A..................................................................63 Hình 3.21: Sơ đồ kết nối toàn mạch.......................................................................64 Hình 4.1: Băng tải và động cơ DC.........................................................................67 Hình 4.2: Máng đưa sản phẩm vào ........................................................................67 Hình 4.3: Máng đưa sản phẩm sau khi phân loại....................................................68 Hình 4.4: Màn hình LCD16x2 hiển thị kết quả......................................................68 Hình 4.5: Hình ảnh thực tế kết nối Raspberry và Arduino......................................70 Hình 4.6: Lắp ráp giữa Lm2596 với Servo Mg996r, Cảm biến ..............................70 Hình 4.7: Lắp ráp giữa Arduino Uno với Servo Mg996r, Cảm biến, Relay 5V ......71 Hình 4.8: Mô hình toàn hệ thống...........................................................................71 Hình 4.9: Lưu đồ giải thuật trên Arduino Uno .......................................................72 Hình 4.10: Lưu đồ giải thuật xử lý ảnh trên Raspberry Pi ......................................74 Hình 4.11: Tạo địa chỉ IP tỉnh................................................................................76
  13. 13. Hình 4.12: Cho phép chia sẻ mạng Lan .................................................................76 Hình 4.13: Phần mềm Adcanced IP Scanner..........................................................77 Hình 4.14: Remote Desktop Connection................................................................77 Hình 4.15: Giao diện đăng nhập vào Raspberry.....................................................78 Hình 4.16: Giao diện Raspberry ............................................................................78 Hình 4.17: Cửa sổ Terminal...................................................................................79 Hình 4.18: Gọi lệnh thực thi chương trình .............................................................80 Hình 4.19: Cửa sổ PuTTY.....................................................................................81 Hình 4.20: Cửa số Terminal...................................................................................81 Hình 4.21: Tạo một file.sh trong đường dẫn home/pi.............................................82 Hình 4.22: Đặt tên file với đuôi .sh........................................................................82 Hình 4.23: Lưu các lệnh cần thực thi.....................................................................83 Hình 4.24: Lệnh chạy tự động ...............................................................................83 Hình 4.25: Thêm đường dẫn file cần chạy tự động ................................................84 Hình 4.26: Công tắt nguồn và nút nhấn Reset........................................................84 Hình 5.1: Mô hình hoàn thiện chụp từ bên trái.......................................................86 Hình 5.2: Mô hình hoàn thiện chụp từ bên phải.....................................................86 Hình 5.3: Mô hình hoàn thiện chụp từ trên xuống..................................................87 Hình 5.4: Kết quả nhận dạng màu đỏ lần 1 ............................................................87 Hình 5.5: Kết quả nhận dạng màu đỏ lần 2 ............................................................88 Hình 5.6: Kết quả nhận dạng màu đỏ lần 3 ............................................................88 Hình 5.7: Kết quả nhận dạng màu đỏ lần 4 ............................................................88 Hình 5.8: Kết quả nhận dạng màu đỏ lần 5 ............................................................89 Hình 5.9: Kết quả nhận dạng màu đỏ.....................................................................89 Hình 5.10: Hình ảnh thực tế phân loại sản phẩm đỏ...............................................90 Hình 5.11: Kết quả hiển thị sau 5 lần phân loại sản phẩm đỏ .................................90 Hình 5.12: Kết quả nhận dạng màu xanh lần 1.......................................................91 Hình 5.13: Kết quả nhận dạng màu xanh lần 2.......................................................91 Hình 5.14: Kết quả nhận dạng màu xanh lần 3.......................................................91 Hình 5.15: Kết quả nhận dạng màu xanh lần 4.......................................................92 Hình 5.16: Kết quả nhận dạng màu xanh lần 5.......................................................92 Hình 5.17: Kết quả nhận dạng màu xanh ...............................................................93 Hình 5.18: Hình ảnh thực tế phân loại sản phẩm màu xanh....................................93 Hình 5.19: Kết quả hiển thị sau 5 lần phân loại sản phẩm xanh..............................94 Hình 5.20: Kết quả nhận dạng màu vàng lần 1.......................................................94
  14. 14. Hình 5.21: Kết quả nhận dạng màu vàng lần 2.......................................................94 Hình 5.22: Kết quả nhận dạng màu vàng lần 3.......................................................95 Hình 5.23: Kết quả nhận dạng màu vàng lần 4.......................................................95 Hình 5.24: Kết quả nhận dạng màu vàng lần 5.......................................................95 Hình 5.25: Kết quả nhận dạng màu vàng ...............................................................96 Hình 5.26: Hình ảnh thực tế phân loại sản phẩm màu vàng....................................96 Hình 5.27: Kết quả hiển thị sau 5 lần phân loại sản phẩm vàng..............................97
  15. 15. LIỆT KÊ BẢNG Bảng Trang Bảng 2.1: Bảng thông số Arduino Uno R3.............................................................18 Bảng 2.2: Thông số kỹ thuật: Vi điều khiển ATmega328P ....................................21 Bảng 2.3: Chức năng các chân trên LCD ...............................................................32 Bảng 3.1: Thống kê dòng tiêu thụ..........................................................................55 Bảng 4.1: Danh sách các linh kiện.........................................................................65 Bảng 5.1: Bảng đánh giá độ chính xác phân loại sản phẩm....................................97
  16. 16. TÓM TẮT Đề tài “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm” là mô hình phân loại sản phẩm theo màu sắc (đỏ, xanh, vàng). Dựa trên ngôn ngữ Python với thư viện chính là OpenCV và được thực hiện trên Kit Raspberry và Kit Arduino Uno. Ở đây sử dụng các đặc điểm riêng biệt của từng màu sắc để đi nhận dạng và sau đó phân loại từng sản phẩm. Kết quả thực hiện của đề tài đã nhận dạng được những sản phẩm có màu sắc (đỏ, xanh, vàng) cùng với việc đếm được sản phẩm theo màu sắc của từng sản phẩm.
  17. 17. CHƯƠNG 1: TỔNG QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1 CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Ngày nay, xã hội ngày càng phát triển. Công nghiệp hóa, hiện đại hóa ngày càng được nâng cao để phát triển đất nước và cải thiện cuộc sống của người dân. Vì vậy việc ứng dụng khoa học kỹ thuật ngày càng rộng rãi, phổ biến và mang lại hiệu quả cao trong hầu hết các lĩnh vực kinh tế, kỹ thuật cũng như trong đời sống xã hội. Xét điều kiện cụ thể ở nước ta trong công cuộc công nghiệp hóa, hiện đại hóa sử dụng ngày càng nhiều thiết bị hiện đại để điều khiển tự động các quá trình sản xuất, gia công và chế biến sản phẩm… Điều này dẫn đến việc hình thành các hệ thống sản xuất linh hoạt, cho phép tự động hóa ở mức độ cao trên cơ sở sử dụng các máy CNC, robot công nghiệp. Trong đó có một khâu quan trọng ảnh hưởng đến chất lượng sản phẩm là hệ thống phân loại sản phẩm. Hệ thống phân loại sản phẩm nhằm chia sản phẩm ra các nhóm có cùng thuộc tính với nhau để thực hiện đóng gói hay loại bỏ sản phẩm hỏng. Hiện nay để phân loại sản phẩm người ta thường sử dụng các loại cảm biến với các chức năng khác nhau để phân loại sản phẩm theo mong muốn như cảm biến phân loại theo màu sắc, cảm biến phân loại theo hình dáng… Những cảm biến này có ưu điểm chung là quá trình lắp đặt và vận hành tương đối đơn giản nhưng lại dễ gây nhiễu. Do đó dựa trên nền tảng kiến thức đã học, vốn hiểu biết về điện tử và công nghệ xử lý ảnh cùng với sự cho đồng ý của giáo viên hướng dẫn – thầy Nguyễn Duy Thảo, nhóm chúng em chọn đề tài: “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm”. 1.2 MỤC TIÊU Để tài “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm” với mục tiêu là phân loại sản phẩm theo màu sắc (đỏ, xanh, vàng). Dựa trên ngôn ngữ Python với thư viện chính là OpenCV và được thực hiện trên Kit Raspberry và kit Arduino Uno 1.3 NỘI DUNG NGHIÊM CỨU Để tài “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm” Có những nội dung sau:  NỘI DUNG 1: Tìm hiểu về Raspberry pi 3 và Arduino Uno  NỘI DUNG 2: Tổng quan về xử lý ảnh.  NỘI DUNG 3: Viết chương trình
  18. 18. CHƯƠNG 1: TỔNG QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2  NỘI DUNG 4: Thiết kế và thi công mô hình  NỘI DUNG 5: Chạy thử nghiệm và cân chỉnh mô hình  NỘI DUNG 6: Viết sách đồ án tốt nghiệp  NỘI DUNG 7: Báo cáo đề tài đồ án tốt nghiệp 1.4 GIỚI HẠN Thời gian và tốc độ xử lý còn chậm, cùng với Camera chụp ảnh không mong muốn ở điều kiện thiếu ánh sáng mà phải được che kín và chiếu thêm đèn led để tăng cường sáng. Đề tài chỉ xây dựng với mô hình nhỏ và gọn không làm thành dây chuyền sản xuất, sử dụng kit Raspberry Pi 3, Arduino, băng tải, cảm biến, động cơ Servo và hiển thị kết quả trên màn hình lcd. 1.5 BỐ CỤC  Nội dung đề tài gồm các phần sau Chương 1: Tổng quan - Đặt vấn đề - Mục tiêu - Nội dung nghiêm cứu - Giới hạn - Bố cục Chương 2: Cơ sở lý thuyết - Tổng quan về xử lý ảnh - Những vấn đề cơ bản trong xử lý ảnh - Giới thiệu về Raspberry pi 3 - Giới thiệu về Camera Pi - Giới thiệu về Arduino Uno - Giới thiệu về cảm biến - Giới thiệu về động cơ DC - Giới thiệu về động cơ servo - Giới thiệu về hệ thống băng tải - Giới thiệu hệ điều hành trên Raspberry pi 3 - Giới thiệu ngôn ngữ Python và thư viện OPENCV - Giới thiệu về các chuẩn giao tiếp - Phương pháp phân loại sản phẩm theo màu sắc
  19. 19. CHƯƠNG 1: TỔNG QUAN BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 Chương 3: Tính toán và thiết kế - Giới thiệu - Tính toán và thiết kế Chương 4: Thi công hệ thống - Giới thiệu - Lập trình hệ thống - Lưu đồ điều khiển - Nạp code và chạy thử nghiệm Chương 5: Kết quả, nhận xét, đánh giá - Kết quả nhận dạng và phân loại sản phẩm - Nhận xét, đánh giá mô hình hệ thống Chương 6: Kết luận và hướng phát triển - Kết luận - Những hạn chế của đề tài - Hướng phát triển
  20. 20. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ XỬ LÝ ẢNH Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó. Xử lý ảnh là kỹ thuật áp dụng trong việc tăng cường và xử lý các ảnh thu nhận từ các thiết bị như camera, webcam… Do đó, xử lý ảnh đã được ứng dụng và phát triển trong rất nhiều lĩnh vực quan trọng như:  Trong lĩnh vực quân sự: xử lý và nhận dạng ảnh quân sự.  Trong lĩnh vực giao tiếp người máy: nhận dạng ảnh, xử lý âm thanh, đồ họa.  Trong lĩnh vực an, bảo mật: nhận diện khuôn mặt người, nhận diện vân tay, mẫu mắt, …  Trong lĩnh vực giải trí: trò chơi điện tử.  Trong lĩnh vực y tế: Xử lý ảnh y sinh, chụp X quang, MRI,… Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền từ Luân đôn đến New York từ những năm 1920. Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh. Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955. Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh số được thuận lợi hơn. Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh. Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng. Các phương pháp tri thức nhân tạo như mạng nơ-ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu được nhiều kết quả khả quan hơn.[1] Sau đây, ta sẽ xét các bước cần thiết trong quá trình xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới bên ngoài được thu nhận qua các thiết bị thu (như Camera, máy
  21. 21. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5 chụp ảnh). Trước đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR). Gần đây với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. Mặt khác ảnh có thể được quét từ vệ tinh chụp trực tiếp bằng máy quét ảnh[1] .Hình 2.1 dưới đây mô tả các bước cơ bản trong xử lý ảnh. Sơ đồ này bao gồm các thành phần sau: 2.1.1 Thu nhận ảnh (Image Acquisition) Ảnh có thể nhận qua camera màu hoặc trắng đen. Thường ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng có loại camera đã số hóa (như loại CCD – Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh.[1] Camera thường dùng là loại quét dòng, ảnh tạo ra có dạng hai chiều. Chất lượng ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh). 2.1.2 Tiền xử lý (Image processing) Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn.[1] 2.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thư cho mục đích phân loại bưu phẩm, cần chia các câu chữ về địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng. Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của Thu nhận ảnh Tiền xử lý ảnh Phân đoạn ảnh Biểu diễn ảnh Nhận dạng ảnh Cơ sở tri thức Hình 2.1: Các bước cơ bản trong xử lý ảnh
  22. 22. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6 ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này.[1] 2.1.4 Biểu diễn ảnh (Image Representation) Đây là phần sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết ở các vùng lân cận. Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng( Feature Extration) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được. Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phận biệt ký tự này với ký tự khác.[1] 2.1.5 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation) Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thể nội suy thành mã điện thoại. Có nhiều cách phân loại ảnh khác nhau về ảnh. Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:  Nhận dạng theo tham số.  Nhận dạng theo cấu trúc. Một số đối tượng nhận dạng khá phổ biến hiện nay được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người,…[1] 2.1.6 Cơ sơ tri thức (Knowledge Base) Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người. Vì vậy, ở đây các cơ sở tri thức được phát huy.[1]
  23. 23. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 2.1.7 Mô tả Ảnh sau khi số hóa sẽ lưu vào bộ nhớ, hoặc truyền sang các khâu tiếp theo để phân tích. Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ. Thông thường, các ảnh được gọi là các đặc trưng ảnh như: biên ảnh, vùng ảnh.[1] 2.2 NHỮNG VẤN ĐỀ TRONG XỬ LÝ ẢNH 2.2.1 Điểm ảnh (Picture Element) Là đơn vị cơ bản nhất để tạo nên một bước ảnh kỹ thuật số. Địa chỉ của điểm ảnh được xem như là một tọa độ (x,y) nào đó. Một bức ảnh kỹ thuật số, có thể được tạo ra bằng cách chụp hoặc bằng một phương pháp đồ họa nào khác, được tạo nên từ hàng ngàn hoặc hàng triệu pixel riêng lẻ. Bức ảnh càng chứa nhiều pixel thì càng chi tiết. Một triệu pixel thì tương đương với 1 megapixel.[1] 2.2.2 Ảnh số Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật. Số điểm ảnh xác định độ phân giải của ảnh. Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở nên thực và sắc nét hơn. Một hình ảnh là một tín hiệu hai chiều, nó được xác định bởi hàm toán học f(x, y) trong đó x và y là hai tọa độ theo chiều ngang và chiều dọc. Các giá trị của f(x, y) tại bất kỳ điểm nào là cung cấp các giá trị điểm ảnh (pixel) tại điểm đó của một hình ảnh.[1] 2.2.3 Phân loại ảnh Mức xám của điểm ảnh là cường độ sáng, gán bằng một giá trị tại điểm đó. Các mức ảnh xám thông thường: 16, 32, 64, 128, 256. Mức được sử dụng thông dụng nhất là 265, tức là dùng 1byte để biểu diễn mức xám. Trong đó:  Ảnh nhị phân: Là ảnh có 2 mức trắng và đen, chỉ có 2 giá trị 0 và 1 và chỉ sử dụng 1 bit dữ liệu trên 1 điểm ảnh  Ảnh đen trắng: Là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau.  Ảnh màu: Là ảnh kết hợp của 3 màu cơ bản lại với nhau để tạo ra một thế giới màu sinh động. Người ta thường dùng 3byte để mô tả mức màu, tức là có
  24. 24. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8 khoảng 16,7 triệu mức màu.[1] 2.2.4 Quan hệ giữa các điểm ảnh Lân cận điểm ảnh: được nói một cách hài hước như là hàng xóm của cái điểm ảnh. Có 2 loại lân cận cơ bản là lân cận 4 và lân cận 8. 4 điểm ảnh lân cận 4 theo cột và hàng với tọa độ lần lượt là (x+1, y), (x-1, y), (x,y+1), (x, y-1) ký hiệu là tập N4(p). 4 điểm ảnh lân cận 4 theo đường chéo có tọa độ lần lượt là (x+1, y+1), (x+1, y+1), (x-1, y+1), (x-1, y-1) ký hiệu là tập ND(p). Tập 8 điểm ảnh lân cận 8 là hợp của 2 tập trên: N8(p) = N4(p) + ND(p) (2.1) Liên kết ảnh: Các mối liên kết của ảnh được xem như là mối liên kiết của 2 điểm ảnh gần nhau, có 3 loại liên kết: liên kết 4, liên kết 8, lên kết m (liên kết hỗn hợp). Trong ảnh đa mức xám, ta có thể đặt V chứa nhiều giá trị như V={tập con}. Cho p có tọa độ (x, y).[1] Liên kết 4: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 4 của nhau nếu q thuộc về tập N4(p). Liên kết 8: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 8 của nhau nếu q thuộc về tập N8(p). Liên kết m: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết M của nhau nếu thỏa 1 trong 2 điều kiện sau: q thuộc về tập N4(p), q thuộc về tập ND(p) và giao của hai tập N4(p), N4(q) không chứa điểm ảnh nào có giá trị thuộc V.[1] 2.2.5 Lọc nhiễu Ảnh thu nhận được thường sẽ bị nhiễu nên cần phải loại bỏ nhiễu. Các toán tử không gian dùng trong kỹ thuật tăng cường ảnh được phân nhóm theo công dụng: Lân cận 4 hàng cột Điểm xét Điểm xét Điểm xét Lân cận 4 chéo Lân cận 8 Hình 2.2: Lân cận 4 lân cận 8
  25. 25. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 9 làm trơn nhiễu, nổi biên. Để làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyến tính (lọc trung bình, thông thấp) hoặc lọc phi tuyến (trung vị, giả trung vị, lọc đồng hình). Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở lý thuyết lọc là: bộ lọc chỉ cho tín hiệu có tần số nào đó thông qua, để lọc nhiễu người ta thường dùng lọc thông thấp (theo quan điểm tần số không gian) hay lấy tổ hợp tuyến tính để san bằng (lọc trung bình). Để làm nổi cạnh (ứng với tần số cao), người ta dùng các bộ lọc thông cao, lọc Laplace. Phương pháp lọc nhiễu. Chia làm 2 loại: lọc tuyến tính, lọc phi tuyến.[1] Làm trơn nhiễu bằng lọc tuyến tính: Khi chụp ảnh có thể xuất hiện nhiều loại nhiễu vào quá trình xử lý ảnh, nên ta cần phải lọc nhiễu. Gồm các phương pháp cơ bản lọc trung bình, lọc thông thấp,… Ví dụ lọc trung bình: Với lọc trung bình, mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận.[1] Làm trơn nhiễu bằng lọc phi tuyến: Các bộ lọc phi tuyến cũng hay được dùng trong kỹ thuật tăng cường ảnh. Một số phương pháp lọc cơ bản bộ lọc trung vị, lọc ngoài,… Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểm ảnh còn lọc giả trung vị sẽ dùng trung bình cộng của hai giá trị “trung vị” (trung bình cộng của max và min).[1] Lọc trung vị: Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong cửa sổ phải xếp theo thứ tự tăng hay giảm dần so với giá trị trung vị. Kích thước cửa số thường được chọn sao cho số điểm ảnh trong cửa sổ là lẻ.[1] Lọc ngoài: Giả thiết có ngưỡng nào đó cho các mức nhiễu (có thể dựa vào lược đồ xám). Tiến hành so sánh giá trị độ xám của một điểm ảnh với trung bình số học 8 lân cận của nó. Nếu sai lệch lớn hơn ngưỡng, điểm ảnh này được coi như nhiễu. Trong trường hợp đó, thay thế giá trị của điểm ảnh bằng giá trị trung bình 8 lân cận vừa tính được.[1] 2.2.6 Phương pháp phát hiện biên Biên là một trong những vấn đền ta cần quan tâm trong xử lý ảnh. Vì ở giai đoạn phân đoạn ảnh chủ yếu dựa vào biên.
  26. 26. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 10 Hình 2.3: Hình tách biên Điểm biên: Một điểm ảnh được coi là điểm biên nếu có sự thay đổi nhanh hoặc đột ngột về mức xám (hoặc màu). Ví dụ trong ảnh nhị phân, điểm đen gọi là điểm biên nếu lân cận nó có ít nhất một điểm trắng. Đường biên (đường bao: boundary): tập hợp các điểm biên liên tiếp tạo thành một đường biên hay đường bao.[1] Ý nghĩa của đường biên trong xử lý: ý nghĩa đầu tiên của đường biên là một loại đặc trưng cục bộ tiêu biểu trong phân tích, nhận dạng ảnh. Thứ hai, người ta sử dụng biên làm phân cách các vùng xám (màu) cách biệt. Ngược lại, người ta cũng sử dụng các vùng ảnh để tìm đường phân cách. Tầm quan trọng của biên: để thấy rõ tầm quan trọng của biên, xét ví dụ sau: khi người họa sỹ muốn vẽ một danh nhân, họa sỹ chỉ cần vẽ vài đường nứt tốc họa mà không cần vẽ một cách đầy đủ.[1] Như vậy, phát hiện biên một cách lý tưởng là phát hiện được tất cả các đường biên trong các đối tượng. Định nghĩa toán học của biên ở trên là cơ sở cho các kỹ thuật phát hiện biên. Điều quan trọng là sự biến thiên giữa các điểm ảnh thường nhỏ, trong khi đó biến thiên độ sáng của điểm biên thường là khá lớn khi qua biên. Xuất phát cơ sở này người ta thường sử dụng hai phương pháp phát hiện biên như sau: Tách biên theo đạo hàm bậc một: Có 2 phương pháp cơ bản là: một là tạo gradient của hai hướng và trực giao trong ảnh, hai là dùng tập đạo hàm có hướng. Tách biên theo đạo hàm bậc hai: được thực hiện trên một số dạng vi phân bậc 2 để làm xuất hiện biên. Có hai dạng của phương pháp đạo hàm bậc hai đã được nghiên cứu là: phương pháp Laplace và đạo hàm trực tiếp.[1] Bộ tách biên Canny: Phương pháp phát hiện này được sử dụng phổ biến vì nó có nhiều ưu điểm hơn các phương pháp khác. Các bước thực hiện: Làm phẳng dùng bộ lọc Gauss; Sau đó, Gradient cục bộ của biên độ và hướng được tính. Tìm điểm
  27. 27. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 11 ảnh có biên độ lớn nhất dùng kỹ thuật nonmaximal suppression; Các điểm ảnh đỉnh (tìm được từ bước 2) được chia làm hai ngưỡng T1 và T2, T1 < T2. Các điểm ảnh đỉnh có giá trị lớn hơn T2 được gọi là Strong và nằm trong khoảng T1 và T2 được gọi là Weak. Liên kiết các điểm ảnh Weak có 8 kết nối đến điểm ảnh Strong.[1] Phương pháp gradient: Gradient là một vector có các thành phần biểu thị tốc độ thay đổi giá trị của điểm ảnh theo 2 hướng x và y, hay có thể nói là nó đại diện cho sự thay đổi về hướng và độ lớn của một vùng ảnh.[1] ∂(x,y) ∂x = 𝑓′ x = ∆𝑥 ≈ 𝑓(x +dx,y) − 𝑓(𝑥,𝑦) dx ∂(x,y) ∂y = 𝑓′ y = ∆y ≈ 𝑓(x,y +dy) − 𝑓(𝑥,𝑦) dy (2.2) (2.3) Với dx, dy lần lượt là khoảng cách giữa 2 điểm lân cận theo chiều x và chiều y. (Ta có thể xem dx, dy là số lượng điểm ảnh giữa 2 điểm).[1] ∆𝑥 = 𝑓(i + 1, j) − 𝑓(i, j) (2.4) ∆y = 𝑓(i, j + 1) − 𝑓(i, j) (2.5) Nếu định nghĩa g1 (f’x), g2 (f’y) là Gradient (vector gradient thành G(g1,g2)) theo hai hướng x, y tướng ứng thì biên độ (tức độ lớn) g(m,n) và hướng của biên tại điểm (m,n) được tính như sau: 𝐴0 =g(m, n)=√𝑔1 2( 𝑚, 𝑛) + 𝑔2 2( 𝑚, 𝑛) (2.6) 𝜃=artan g2 g1 (2.7) Việc tính xấp xỉ đạo hàm bậc nhất (f’x và f’y ở đây là g1 và g2) theo các hướng x và y được thực hiện thông qua 2 mặt nạ nhân chập (toán tử đạo hàm), tương ứng sẽ cho ta các kỹ thuật phát hiện biên khác nhau tương ứng với mặt nạ mà nó sử dụng (Roberts, Sobel, Prewitt,…).[1] 2.2.7 Phân đoạn ảnh Phân đoạn ảnh là bước then chốt trong xử lý ảnh. Giai đoạn này nhằm phân tích ảnh thành các vùng có cùng tính chất nào đó dựa theo biên hay các vùng liên thông. Tiêu chuẩn để xác định các vùng liên thông có thể là cùng mức xám, cùng màu hay cùng độ nhóm.[1] Quá trình phân đoạn ảnh nhằm tách đối tượng cần khảo sát ra khỏi phần nội
  28. 28. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 12 dung còn lại của ảnh, hay phân chia các đối tượng trong ảnh thành những đối tượng riêng biệt. Như vậy quá trình phân đoạn ảnh là quá trình giảm bớt số lượng thông tin trong ảnh và chỉ giữ lại những thông tin cần thiết cho ứng dụng. Do đó phân đoạn ảnh là quá trình loại bỏ các đối tượng không quan tâm trong ảnh. Có nhiều phương pháp phân đoạn ảnh khác nhau. Trong đó quá trình phân đoạn ảnh sử dụng một ngưỡng giá trị xám để phân đoạn ảnh ra thành các đối tượng và nền là phương pháp đơn giản nhất. Lúc này các điểm ở bên dưới ngưỡng giá trị xám thuộc về nền còn những điểm ảnh ở bên trên ngưỡng giá trị xám thuộc về đối tượng. Phương pháp phân đoạn ảnh này hiệu quả lớn đối với ảnh nhị phân, văn bản in hay đồ họa... [1] Dựa vào đặc tính vật lý của vùng ảnh, các kỹ thuật phân đoạn vùng có thể được chia làm 3 loại:  Các kỹ thuật cục bộ: dựa trên các đặc tính cục bộ của các điểm ảnh và các lân cận của nó  Các kỹ thuật tổng thể: phân đoạn một ảnh dựa trên cơ sở của thông tin lấy từ tổng thể như sử dụng biểu đồ mức xám histogram.  Các kỹ thuật chia, nối và phát triển: dựa trên các khái niệm tương đồng về hình dạng và tính đồng nhất. Hai vùng có thể được nối lại với nhau và liền kề bên nhau. Các vùng không đồng nhất có thể được chia thành các vùng nhỏ. Một vùng có thể được phát triển bằng các nối các điểm ảnh sao cho nó đồng nhất với nhau.[1] 2.2.8 Các phép toán hình thái Morphology Khái niệm Morphology trong xử lý ảnh số khởi nguồn từ một ngành của sinh học, nghiên cứu về hình thể và cấu trúc của động thực vật. Đây là một công cụ giúp rút trích các thành phần trong ảnh nhị phân, biễu diễn và mô tả chúng dưới dạng các vùng hoặc dạng như các đường biên, xương và bao lồi. Kỹ thuật morphology cũng được áp dụng trên ảnh xám cho các công đoạn tiền/hậu xử lý ảnh (pre or post processing). Các phép toán đầu tiên trong Morphology được phát triển vào những năm 1964 bởi Georges Matheron (1930 - 2000) và Jean Serra (1940) tại trường đại học École des Mines de Paris, Pháp. Matheron là tiến sĩ hướng dẫn của Jean, họ cố gắng xác định số lượng đặc tính của khoáng sản thông qua “thin cross section” và công việc cho ra kết quả là một phương pháp tiếp cận mới, cũng như sự tiến bộ trong hình học tích phân và tô pô. Từ đó đến hết năm 1970, Morphology xử lý cơ bản với các ảnh nhị phân, tạo ra các phép toán và kĩ thuật như: Dilation, Erosion, Opening,
  29. 29. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 13 Closing….[1] Phép giãn (Dilation): Phép toán Dilation là thao tác giãn nở/phình to các đối tượng ảnh đơn sắc.[1] Hình 2.4: Phép giản Phép co (Erosion): Phép toán Erosion là thao tác xói mòn/co hẹp các đối tượng ảnh đơn sắc. Nếu như phép dãn có thể nói là thêm điểm ảnh vào trong đối tượng ảnh, làm cho đối tượng ảnh trở nên lớn hơn thì phép co sẽ làm cho đối tượng ảnh trở nên nhỏ hơn, ít điểm ảnh.[1] Hình 2.5: Phép co a. Những định dạng của ảnh Ảnh thu nhận được sau quá trình số hóa thường được lưu lại cho các quá trình xử lý tiếp theo hay truyền đi. Trong quá trình truyền của kỹ thuật xử lý ảnh, tồn tại nhiều định dạng khác nhau từ ảnh đen trắng như định dạng IMG, ảnh đa cấp xám cho đến ảnh màu (BMP,JPEG,GIF).[1] b. Các phần mềm hổ trợ xử lý ảnh Hiện nay xử lý ảnh được giảng dạy trường đại học và ứng dụng vào thực tế rất nhiều như các phần mềm chỉnh sửa hình ảnh hay nhận biết khuôn mặt. Chính vì thế có rất nhiều công cụ để chúng ta lập trình ứng dụng vào thực tế, Như phải kể đến
  30. 30. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 14 Matlap, hay ngôn ngữ Python,…[1] 2.3 GIỚI THIỆU RASPBERRY PI 3 2.3.1 Giới thiệu Raspberry Pi là một máy tính chỉ có một board mạch kích thước chỉ bằng một cái thẻ ATM. Người ta đã tích hợp mọi thứ cần thiết trong đó để bạn sử dụng như một cái máy vi tính, chạy hệ điều hành Linux, được phát triển tại Anh bởi Raspberry Pi Foundation với mục đích thúc đẩy việc giảng dạy về khoa học máy tính cơ bản trong các trường học và các nước đang phát triển.[1] Raspberry Pi xây dựng xoay quanh bộ xử lí soc Broadcom BCM2835 bao gồm: CPU, GPU, bộ xử lí âm thanh /video, và các tính năng khác… Raspberry Pi có hai phiên bản, Model A và Model B. Ở đề tài này sử dụng Kit Raspberry Pi 3 Model B vì thông dụng hơn.[1] Hình 2.6: Raspberry Pi 3
  31. 31. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 15 2.3.2 Thông tin cấu hình Raspberry Pi 3 Hình 2.7: Sơ đồ Raspberry Pi 3 Module B Thông tin cấu hình Raspberry Pi 3:  Bộ xử lí Broadcom BCM2835 tốc độ xử lí 1.2ghz 64-bit quad-core ARM Cortex- A53  Mạng Wireless LAN chuẩn 802.11 b/g/n  Bộ xử lý đa phương tiện Videocore IV® Dual Core  Bộ nhớ Ram 1GB  Hỗ trợ tất cả các bản phân phối ARM GNU / Linux mới nhất và Windows 10 iot  Đầu nối microusb cho nguồn điện 2,5A 5VDC  Cổng mạng 1 x 10/100  Đầu nối video / âm thanh 1 x HDMI  Đầu nối video / âm thanh 1 x RCA  x USB 2.0 ports  40 GPIO pins  Chip antenna
  32. 32. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 16  Kết nối hiển thị DSI  Khe cắm thẻ nhớ microsd  Kích thước: 85 x 56 x 17 mm[1] Ưu điểm: Giá rẻ, nhỏ gọn, GPU mạnh, phục vụ cho nhiều mục đích, Khả năng hoạt động liên tục, giá thành rẻ hơn so với máy tính thông thường… Nhược điểm: Máy tính nhúng xử lý vẫn còn chậm so với máy tính để bàn hay laptop. Không chạy được một số chương trình nặng. 2.3.3 Ứng dụng Hệ thống máy tính cho ô tô: chúng ta có thể dùng Raspberry Pi làm hệ thống máy cho xe hơi, Sử dụng Raspberry Pi để khắc laser, Chế tạo robot,… 2.4 GIỚI THIỆU VỀ CAMERA PI 2.4.1 Giới thiệu Raspberry Pi Camera là module camera được chính Raspberry Pi Foundation thiết kế và đưa vào sản xuất đại trà từ tháng 5/2013. Camera module ra đời đã làm thoả lòng rất nhiều tín đồ yêu thích raspberry.Trước khi xuất hiện camera, điều duy nhất bạn có thể làm để thêm khả năng nhận biết hình ảnh, quay phim, chụp hình cho RPi là sử dụng 1 webcam cắm vào cổng USB. Với các webcam Logotech tích hợp sẵn định dạng xuất mjpeg sẽ giúp Raspberry xử lý nhanh hơn. Nhưng các webcam Logitech lại có giá thành khá cao, nhất là các webcam có độ phân giải lớn. Bạn không tốn thêm cổng USB nào cho Camera vì Camera được gắn chắc chắn vào socket CSI. Điều này giúp hạn chế tình trạng nghẽn băng thông cho chip xử lý USB trên mạch Raspberry. Chiều dài cáp nối camera đã được tính toán cẩn thận khi vừa đạt được độ dài cần thiết trong khi vẫn đảm bảo tốc độ truyền hình ảnh từ module về RPi.[1] Tháng 4/2016, Raspberry Pi Foundation ra mắt thế hệ thứ 2 của sản phẩm Camera Module với nâng cấp đáng kể nhất là sử dụng sensor Sony IMX219 8 Megapixel. Raspberry Pi Camera Module V2 có một cảm biến 8-megapixel của Sony IMX219 (so với cảm biến 5-megapixel OmniVision OV5647 trên Camera Module phiên bản cũ).[1]
  33. 33. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 17 Hình 2.8: Camera Pi v2.1 Camera Module có thể được sử dụng để quay video độ nét cao, cũng như chụp hình ảnh tĩnh. Nó khá dễ dàng để sử dụng cho người mới bắt đầu, nhưng cũng có rất nhiều giải pháp mở rộng để cung cấp cho người dùng yêu cầu cao. Có rất nhiều demo của người dùng về công dụng của Camera Module như chụp Time-Lapse, Slow- Motion và rất nhiều ứng dụng khác.[1] Raspberry Pi Camera Module V2 là một bước nhảy vọt về chất lượng hình ảnh, màu sắc trung thực và hiệu suất ánh sáng thấp . Đặc biệt nó hỗ trợ video lên tới 1080P30, 720P60 và video mode VGA90, cũng như chế độ chụp hình. Dĩ nhiên, nó vẫn sử dụng đoạn cáp 15cm qua cổng CSI trên Raspberry Pi.[1] Chiếc camera này tương thích với tất cả các phiên bản của Raspberry Pi 1, 2 và 3. 2.4.2 Thông tin cấu hình Camera Pi v2.1  Ống kính tiêu cự cố định  Cảm biến độ phân giải 8 megapixel cho khả năng chụp ảnh kích thước 3280 x 2464  Hỗ trợ video 1080p30, 720p60 và 640x480p90  Kích thước 25mm x 23mm x 9mm  Trọng lượng chỉ hơn 3g  Kết nối với Raspberry Pi thông qua cáp ribbon đi kèm dài 15 cm  Camera Module được hỗ trợ với phiên bản mới nhất của Raspbian[1]
  34. 34. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 18 Hình 2.9: Sơ đồ khối Camera Raspberry Pi 2.4.3 Ứng dụng Bạn có thể dùng Camera và Raspberry để thiết lập hệ thống phát hiện chuyển động. Hệ thống này hoạt động bằng cách sử dụng hình ảnh từ Camera kết hợp với chương trình xử lý hình ảnh và đưa ra lệnh điều khiển nếu phát hiện thấy có chuyển động. Camera cũng đặc biệt hữu ích với các bạn yêu thích làm phim, bạn có thể sử dụng để quay những góc quay khó hoặc những cảnh quay độc mà chỉ với máy quay gọn nhẹ nhất mới làm được. Ngoài ra, bạn có thể sử dụng camera để quay các đoạn phim time-lapse (ghép nhiều hình lại với nhau) đang được rất nhiều người dùng trên thế giới thực hiện.[1] 2.5 GIỚI THIỆU VỀ ARDUINO UNO R3 2.5.1 Giới thiệu Arduino Arduino Uno R3 là một board mạch vi xử lý tích hợp, 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. Model hiện tạ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.[2] 2.5.2 Thông tin cấu hình Arduino Uno R3 Bảng 2.1: Bảng thông số Arduino Uno R3 Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA
  35. 35. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 19 Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30 mA Dòng ra tối đa (5V) 500 mA Dòng ra tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Cấu tạo chính của Arduino Uno R3 bao gồm các phần sau:  Cổng USB: đây là loại cổng giao tiếp để ta nạp code từ PC lên vi điều khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều khiển và máy tính.  Jack nguồn: để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên hoặc một nguồn từ 9V đến 12V. Với các chân điện như sau:  GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.  5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.  3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.  Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, 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à nó luôn bằng 5V. Mặc dù vậy không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.  RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.[2]
  36. 36. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20 Hình 2.10: Arduino Uno R3 Arduino UNO R3 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).[2] Một số chân digital có các chức năng đặc biệt như sau:  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.  Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép 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().  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 đè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 sử dụng LED này sẽ sáng.[2] 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 ta có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Nếu ta cấp điện áp 2.5V vào chân này thì ta có thể dùng các chân analog để đo điện áp trong khoảng
  37. 37. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21 từ 0V → 2.5V với độ phân giải vẫn là 10bit.[2] Đặ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. Bảng 2.2: Thông số kỹ thuật: Vi điều khiển ATmega328P Điện áp hoạt động 5V Điện áp đầu vào (khuyến nghị) 7-12V Điện áp đầu vào (giới hạn) 6-20V Số I/O 14(có 6 chân sử dụng như PWM) Số ngõ vào Analog 6 Dòng DC trên mỗi I/O: 20mA Dòng DC cho chân 3,3V 50mA Bộ nhớ flash 32 KB (0.5 KB nạp bộ khởi động) SRAM 2 KB EEPROM 1 KB Tốc độ xung 16 MHz Chiều dài 68.6 mm Chiều rộng 53,4 mm Cân nặng 25g Bộ nhớ vi điều khiển Atmega328:  32KB bộ nhớ Flash: những đoạn lệnh ta lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển.  2KB cho SRAM (Static Random Access Memory): giá trị các biến ta khai báo khi lập trình sẽ lưu ở đây. Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.  1KB cho EEPROM : đây giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu 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.[2]
  38. 38. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22 Hình 2.11: Sơ đồ chân ATMega 328P ứng với arduino Uno R3 2.5.3 Ứng dụng Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng điện tử tương tác với nhau hoặc với môi trường được thuận lợi hơn. Arduino giống như một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự án điện tử mà không cần phải có các công cụ chuyên biệt để phục vụ việc nạp code.[2] Một số ứng dụng của Arduino Uno trong đời sống:  Làm Robot. Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ,… nên nó thường được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot.  Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn hình,… khi chơi các game như Tetrix, phá gach, Mario…  Máy bay không người lái.  Điều khiển đèn tín hiệu giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng cáo…  Điều khiển các thiết bị cảm biến ánh sáng, âm thanh.  Làm máy in 3D
  39. 39. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23  Làm đàn bằng ánh sáng  Làm lò nướng bánh biết tweet để báo cho bạn khi bánh chín. Arduino còn rất nhiều ứng dụng hữu ích khác tùy vào sự sáng tạo của người dùng. 2.6 GIỚI THIỆU VỀ CẢM BIẾN HỒNG NGOẠI E18-D80NK 2.6.1 Giới thiệu Cảm biến vật cản hồng ngoại E18-D80NK dùng ánh sáng hồng ngoại để xác định khoảng cách tới vật cản cho độ phản hồi nhanh và rất ít nhiễu do sử dụng mắt nhận và phát tia hồng ngoại theo tần số riêng biệt. Cảm biến có thể chỉnh khoảng cách báo mong muốn thông qua biến trở, ngõ ra cảm biến ở dạng cực thu hở nên cần thêm 1 trở treo lên nguồn ở chân tín hiệu khi sử dụng.[3] Hình 2.12: Cảm biến hồng ngoại E18-D80NK 2.6.2 Thông số kỹ thuật Thông số kỹ thuật cảm biến E18-D80NK:  Nguồn điện cung cấp: 5VDC.  Khoảng cách phát hiện: 3 ~ 80cm.  Có thể điều chỉnh khoảng cách qua biến trở.  Dòng kích ngõ ra: 300mA.  Ngõ ra dạng NPN cực thu hở giúp tùy biến được điện áp ngõ ra, trở treo lên áp bao nhiêu sẽ tạo thành điện áp ngõ ra bấy nhiêu.  Chất liệu sản phẩm: nhựa.  Có led hiển thị ngõ ra màu đỏ.
  40. 40. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24  Kích thước: 1.8cm (D) x 7.0cm (L).[3] Sơ đồ chân:  Màu nâu: VCC, nguồn dương 5VDC.  Màu xanh dương: GND, nguồn âm 0VDC  Màu đen: Chân tín hiệu ngõ ra cực thu hở NPN, cần phải có trở kéo để tạo thành mức cao.[3] 2.6.3 Ứng dụng Các ứng dụng của cảm biến E18-D80NK: Xe dò tự động tránh vật cản, trong các dây chuyền sản xuất tự động. 2.7 GIỚI THIỆU VỀ ĐỘNG CƠ DC 2.7.1 Giới thiệu Động cơ một chiều DC ( DC là từ viết tắt của "Direct Current Motors") là Động cơ điều khiển bằng dòng có hướng xác định hay nói dễ hiểu hơn thì đây là loại động cơ chạy bằng nguồn điện áp DC- điện áp 1 chiều(Khác với điện áp AC xoay chiều). Đầu dây ra của đông cơ thường gồm hai dây (dây nguồn- VCC và dây tiếp đất- GND). DC motor là một động cơ một chiều với cơ năng quay liên tục.[4] Hình 2.13: Động cơ DC 2.7.2 Cấu tạo và nguyên lý hoạt động a. Cấu tạo Gồm có 3 phần chính stator( phần cảm), rotor ( phần ứng), và phần cổ góp-
  41. 41. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25 chỉnh lưu.  Stator của động cơ điện 1 chiều thường là 1 hay nhiều cặp nam châm vĩnh cửu, hay nam châm điện.  Rotor có các cuộn dây quấn và được nối với nguồn điện một chiều.  Bộ phận chỉnh lưu, nó có nhiệm vụ là đổi chiều dòng điện trong khi chuyển động quay của rotor là liên tục. Thông thường bộ phận này gồm có một bộ cổ góp và một bộ chổi than tiếp xúc với cổ góp.[4] b. Nguyên lý hoạt động Hình 2.14: Pha 1 động cơ DC Pha 1: Từ trường của rotor cùng cực với stator, sẽ đẩy nhau tạo ra chuyển động quay của rotor. Hình 2.15: Pha 2 động cơ DC Pha 2: Rotor tiếp tục quay
  42. 42. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26 Hình 2.16: Pha 3 động cơ DC Pha 3: Bộ phận chỉnh điện sẽ đổi cực sao cho từ trường giữa stator và rotor cùng dấu, trở lại pha 1 Nếu trục của một động cơ điện một chiều được kéo bằng 1 lực ngoài, động cơ sẽ hoạt động như một máy phát điện một chiều, và tạo ra một sức điện động cảm ứng Electromotive force (EMF). Khi vận hành bình thường, rotor khi quay sẽ phát ra một điện áp gọi là sức phản điện động counter-EMF (CEMF) hoặc sức điện động đối kháng, vì nó đối kháng lại điện áp bên ngoài đặt vào động cơ. Sức điện động này tương tự như sức điện động phát ra khi động cơ được sử dụng như một máy phát điện (như lúc ta nối một điện trở tải vào đầu ra của động cơ, và kéo trục động cơ bằng một ngẫu lực bên ngoài). Như vậy điện áp đặt trên động cơ bao gồm 2 thành phần: sức phản điện động, và điện áp giáng tạo ra do điện trở nội của các cuộn dây phần ứng. Dòng điện chạy qua động cơ được tính theo biều thức sau:[4] I = (Vnguồn – VPhần điện động)/RPhần cứng (2.8) Công suất cơ mà động cơ đưa ra được, được tính bằng: P = I*(Vphần điện động) (2.9) 2.7.3 Ứng dụng Ngày nay động cơ điện DC được dùng trong hấu hết mọi lĩnh vực, từ các động cơ nhỏ dùng trong lò vi sóng để chuyển động đĩa quay, hay trong các máy đọc đĩa (máy chơi CD hay DVD), đến các đồ nghề như máy khoan, hay các máy gia dụng như máy giặt, sự hoạt động của thang máy hay các hệ thống thông gió cũng dựa vào động cơ điện. Ở nhiều nước động cơ điện được dùng trong các phương tiện vận chuyển, đặc biệt trong các đầu máy xe lửa.
  43. 43. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27 Trong công nghệ máy tính: Động cơ điện được sử dụng trong các ổ cứng, ổ quang (chúng là các động cơ bước rất nhỏ). 2.8 GIỚI THIỆU VỀ ĐỘNG CƠ SERVO MG996R 2.8.1 Tổng quan về động cơ servo a. Tổng quan Động cơ servo đã có từ rất lâu và được sử dụng trong nhiều ứng dụng. Chúng có kích thước nhỏ nhưng đóng gói một cú đấm lớn và rất tiết kiệm năng lượng. Những tính năng này cho phép chúng được sử dụng để vận hành xe ô tô đồ chơi , robot và máy bay điều khiển từ xa . Động cơ servo cũng được sử dụng trong các ứng dụng công nghiệp, robot, sản xuất nội tuyến, dược phẩm và dịch vụ thực phẩm. Hình 2.17: Động cơ servo Động cơ servo có nhiều kiểu dáng và kích thước, được sử dụng trong nhiều máy khác nhau, từ máy tiện điều khiển bằng tay cho tới các mô hình máy bay và xe hơi. Ứng dụng mới nhất của động cơ servo là trong các robot...[5] b. Cấu tạo và nguyên lý hoạt động Bên trong có một thiết lập khá đơn giản: một động cơ DC nhỏ, chiết áp và mạch điều khiển. Động cơ được gắn bởi bánh răng vào bánh xe điều khiển. Khi động cơ quay, điện trở của chiết áp thay đổi, do đó mạch điều khiển có thể điều chỉnh chính xác mức độ chuyển động có và theo hướng nào.[5]
  44. 44. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28 Hình 2.18: Cấu tạo bên trong động cơ servo Khi trục của động cơ ở vị trí mong muốn, nguồn điện cung cấp cho động cơ sẽ dừng lại. Nếu không, động cơ được quay theo hướng thích hợp. Vị trí mong muốn được gửi qua các xung điện qua dây tín hiệu. Tốc độ của động cơ tỷ lệ thuận với sự khác biệt giữa vị trí thực tế và vị trí mong muốn. Vì vậy, nếu động cơ ở gần vị trí mong muốn, nó sẽ quay chậm, nếu không nó sẽ quay nhanh. Điều này được gọi là kiểm soát tỷ lệ. Động cơ servo được điều khiển bằng cách gửi một xung điện có độ rộng thay đổi hoặc điều chế độ rộng xung (PWM), thông qua dây điều khiển. Có một xung tối thiểu, một xung tối đa và tốc độ lặp lại. Một động cơ servo thường chỉ có thể quay 90° theo một trong hai hướng cho tổng chuyển động 180°. Vị trí trung tính của động cơ được xác định là vị trí mà servo có cùng số vòng quay tiềm năng theo cả chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. PWM được gửi đến động cơ xác định vị trí của trục và dựa trên thời gian của xung được gửi qua dây điều khiển; các rotor sẽ chuyển sang vị trí mong muốn.[5] 2.8.2 Giới thiệu động cơ servo MG996R a. Giới thiệu Động cơ RC Servo MG996 là loại thường được sử dụng nhiều nhất trong các thiết kế Robot hoặc dẫn hướng xe. Động cơ RC Servo MG996 có lực kéo mạnh, các khớp và bánh răng được làm hoàn toàn bằng kim loại nên có độ bền cao, động cơ
  45. 45. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29 được tích hợp sẵn Driver điều khiển động cơ bên trong theo cơ chế phát xung - quay góc nên rất dễ sử dụng.[6] Hình 2.19: Động cơ servo MG996R b. Thông số kỹ thuật  Chủng loại: Analog RC Servo.  Điện áp hoạt động: 4.8-6.6VDC  Kích thước: 40mm x 20mm x 43mm  Trọng lượng: 55g  Lực kéo:  3.5 kg-cm (180.5 ozin) at 4.8V-1.5A  5.5 kg-cm (208.3 ozin) at 6V-1.5A  Tốc độ quay:  0.17sec / 60 degrees (4.8V no load)  0.13sec / 60 degrees (6.0V no load)[6] 2.8.3 Ứng dụng Trong ngành công nghiệp động cơ servo được sử dụng trong các máy công cụ, đóng gói, tự động hóa nhà máy, xử lý vật liệu, in chuyển đổi. Ngoài ra chúng còn được sử dụng để chế tạo cánh tay robot vì sử chuyển đổi trơn tru và chính xác. 2.9 GIỚI THIỆU HỆ THỐNG BĂNG TẢI 2.9.1 Giới thiệu Băng tải (băng chuyền) hiểu đơn giản là một máy cơ khí dùng để vận chuyển các đồ vật từ điểm này sang điểm khác, từ vị trí A sang vị trí B. Thay vì vận chuyển sản phẩm bằng công nhân vừa tốn thời gian, chi phí nhân công lại tạo ra môi trường làm việc lộn xộn thì băng chuyền tải có thể giải quyết điều đó.Nó giúp tiết kiệm sức
  46. 46. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30 lao động, số lượng nhân công, giảm thời gian và tăng năng suất lao động.[7] Vì vậy băng chuyền, băng tải là một trong những bộ phận quan trọng trong dây chuyền sản xuất, lắp ráp của các nhà máy, xí nghiệp. Góp phần tạo nên một môi trường sản xuất hiện đại, khoa học và giải phóng sức lao động mang lại hiệu quả kinh tế cao cho công ty.[7] Hình 2.20: Mô hình băng tải 2.9.2 Cấu tạo  Khung băng tải: thường được làm bằng nhôm định hình, thép sơn tĩnh điện hoặc inox.  Dây băng tải: Thường là dây băng PVC dày 2mm và 3mm hoặc dây băng PU dầy 1.5mm.  Động cơ chuyền động: Là động cơ giảm tốc công suất 0.2KW, 0.4KW, 0.75KW, 1.5KW, 2.2KW.  Bộ điều khiển băng chuyền: Thường gồm có biến tần, sensor, timer, PLC...  Cơ cấu truyền động gồm có: Rulo kéo, con lăn đỡ, nhông xích...  Hệ thống bàn thao tác trên băng chuyền thường bằng gỗ, thép hoặc inox trên mặt có dán thảm cao su chống tĩnh điện.  Hệ thống đường khí nén và đường điện có ổ cắm để lấy điện cho các máy dùng trên băng chuyền.  Ngoài ra thường có thêm đường điện chiếu sáng.[7]
  47. 47. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31 2.9.3 Ứng dụng Băng tải, băng chuyền được ứng dụng trong các ngành sản xuất công nghiệp, chế biến thực phẩm, khai thác,...nhằm giúp hỗ trợ tối đa cho doanh nghiệp trong quá trình vận chuyển hàng hóa nhanh chóng, an toàn, tiện lợi. Ngoài ra với hệ thống băng tải còn giúp doanh nghiệp tối ưu hóa được chi phí, tiết kiệm thời gian, hạn chế nguồn nhân lực mang lại hiệu quả kinh tế cao đồng thời còn giúp cho hệ thống sản xuất ngày càng được tự động hóa theo hướng hiện đại.[7] 2.10 GIỚI THIỆU VỀ LCD16X2 2.10.1 Giới thiệu Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẽ …[8] Hình 2.21: LCD16x2 2.10.2 Cấu tạo LCD 16x2 có 2 hàng, mỗi hàng 16 kí tự.
  48. 48. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32 Hình 2.22: Sơ đồ chân LCD16x2 Bảng 2.3: Chức năng các chân trên LCD Chân Ký hiệu Mô tả 1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển 2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển 3 VEE Điều chỉnh độ tương phản của LCD. 4 RS Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi. + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD. 5 R/W Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc. 6 E Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E. + Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to- low transition) của tín hiệu chân E. + Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp. 7 - 14 DB0 - DB7 Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này : + Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
  49. 49. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33 Trong 16 chân của LCD được chia làm 3 dạng tín hiệu như sau:  Các chân cấp nguồn: chân số 1 nối mass (0V), chân số 2 là VDD nối với nguồn 5V, chân số 3 dùng để chỉnh contrast thường nối với biến trở.  Các chân điều khiển: chân số 4 là chân RS dùng để điều khiển lựa chọn thanh ghi. Chân R/W dùng để điều khiển quá trình đọc và ghi. Chân E là chân cho phép dạng xung chốt.  Các chân dữ liệu DB0-DB7: là chân từ số 7 đến 14 dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD.  Chân 15 nối nguồn +5V hoặc 4,2V đối với LED, chân 16 nối GND.[8] 2.10.3 Ứng dụng LCD thường được sử dụng trong các mạch điện tử, hiển thị thời gian thực, giá trị kết quả, hiệu ứng. 2.11 GIỚI THIỆU HỆ ĐIỆU HÀNH TRÊN RASPBERRY PI Raspberry Pi có rất nhiều hệ điều hành hỗ trợ như Raspbian, Ubuntu Mate, PiNet, RiscOS,.. nhưng trong đó Raspbian là hệ điều hành cơ bản, phổ biến nhất và do chính Raspberry Pi Foundation cung cấp. Nó cũng được hãng khuyến cáo sử dụng, nhất là cho người mới bắt đầu làm quen với Raspberry Pi.[9] + Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7 15 - Nguồn dương cho đèn nền 16 - GND cho đèn nền
  50. 50. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34 Hình 2.23: Hệ điều hành Raspbian Raspbian có dung lượng sau khi giải nén là khoảng gần 4GB, bạn cần tối thiểu 1 cái thẻ 4GB để có thể sử dụng Raspbian. Tuy nhiên, nên sử dụng thẻ tối thiểu 8GB vì bạn cần cài thêm các ứng dụng khác nữa. Raspbian được hướng đến người dùng có mục đích:  Sử dụng Raspberry Pi như máy tính văn phòng để lướt web, soạn văn bản, check mail và thi thoảng nghe nhạc/xem phim.  Nghiên cứu phát triển các thiết bị điều khiển tự động.  Sử dụng như một máy chủ cung cấp các dịch vụ như web, file server, printer server, ... Theo đánh giá, Raspbian hoạt động rất ổn định, tốc độ nhanh (đặc biệt là trên Raspberry Pi 3). Nhược điểm của nó là giao diện đơn giản, cổ điển và rất không hào nhoáng. Nếu bạn không quá quan tâm tới giao diện mà hướng đến hiệu năng thì Raspbian rất phù hợp cho bạn.[9] 2.12 GIỚI THIỆU NGÔN NGỮ PYTHON VÀ THƯ VIỆN OPENCV 2.12.1 Ngôn ngữ Python a. Giới thiệu ngôn ngữ Python Python là một ngôn ngữ lập trình được sử dụng phổ biến ngày nay từ trong môi trường học đường cho tới các dự án lớn. Ngôn ngữ phát triển nhiều loại ứng dụng, phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các
  51. 51. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35 ứng dụng web... Ngoài ra Python cũng là ngôn ngữ ưa thích trong xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning. Ban đầu, Python được phát triển để chạy trên nền Unix, nhưng sau này, nó đã chạy trên mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix.Python do Guido van Rossum tạo ra năm 1990. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python.[10] b. Đặt điểm nỗi bật của Python Python là ngôn ngữ có hình thức đơn giản, cú pháp ngắn gọn, sử dụng một số lượng ít các từ khoá, do đó Python là một ngôn ngữ dễ học đối với người mới bắt đầu tìm hiểu. Python là ngôn ngữ có mã lệnh (source code hay đơn giản là code) không mấy phức tạp. Cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy đoán được ý nghĩa của từng dòng lệnh trong source code. Python có nhiều ứng dụng trên nhiều nền tảng, chương trình phần mềm viết bằng ngôn ngữ Python có thể được chạy trên nhiều nền tảng hệ điều hành khác nhau bao gồm Windows, Mac OSX và Linux.[10] 2.12.2 Thư viện OPENCV a. Giới thiệu OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở, nó là miễn phí cho những ai bắt đầu tiếp cận với các học thuật. OpenCV được ứng dụng trong nhiều lĩnh vực như cho thị giác máy tính hay xử lý ảnh và máy học. Thư viện được lập trình trên các ngôn ngữ cấp cao: C++, C, Python, hay Java và hỗ trợ trên các nền tảng Window, Linux, Mac OS, iOS và Android. OpenCV đã được tạo ra tại Intel vào năm 1999 bởi Gary Bradsky, và ra mắt vào năm 2000. Opencv có rất nhiều ứng dụng: Nhận dạng ảnh, xử lý hình ảnh, phục hồi hình ảnh/video, thực tế ảo,… Ở đề tài này thư viện OpenCV được chạy trên ngôn ngữ Python. OpenCV được dùng làm thư viện chính để xử lý hình ảnh đầu vào và sau đó đi nhận dạng ảnh.[10] b. Đặt điểm OpenCV Là một thư viện mở nên sử dụng các thuật toán một cách miễn phí,
  52. 52. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36 cùng với việc chúng ta cũng có thể đóng góp thêm các thuật toán giúp Thư viện thêm ngày càng phát triển.[10] Các tính năng của thư viện OpenCV:  Đối với hình ảnh, chúng ta có thể đọc và lưu hay ghi chúng.  Về Video cũng tương tự như hình ảnh cũng có đọc và ghi.  Xử lý hình ảnh có thể lọc nhiễu cho ảnh, hay chuyển đổi ảnh.  Thực hiện nhận dạng đặc điểm của hình dạng trong ảnh.  Phát hiện các đối tượng xác định được xác định trước như khuôn mặt, mắt, xe trong video hoặc hình ảnh.  Phân tích video,... ước lượng chuyển động của nó, trừ nền ra và theo dõi các đối tượng trong video.[10] 2.13 GIỚI THIỆU VỀ CÁC CHUẪN GIAO TIẾP 2.13.1 Chuẫn giao tiếp Uart a. Giới thiệu Các tên đầy đủ UART là “Universal Asynchronous Receiver / Transmitter”, và nó là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một giao thức truyền thông (I2C & SPI). Chức năng chính của UART là truyền dữ liệu nối tiếp. Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song. Hình 2.24: Giao tiếp Uart Trong giao tiếp dữ liệu nối tiếp, dữ liệu có thể được truyền qua một cáp hoặc một đường dây ở dạng bit-bit và nó chỉ cần hai cáp. Truyền thông dữ liệu nối tiếp không đắt khi chúng ta so sánh với giao tiếp song song. Nó đòi hỏi rất ít mạch cũng
  53. 53. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37 như dây. Vì vậy, giao tiếp này rất hữu ích trong các mạch ghép so với giao tiếp song song.[11] Trong giao tiếp dữ liệu song song, dữ liệu có thể được truyền qua nhiều cáp cùng một lúc. Truyền dữ liệu song song tốn kém nhưng rất nhanh, vì nó đòi hỏi phần cứng và cáp bổ sung. Các ví dụ tốt nhất cho giao tiếp này là máy in cũ, PCI, RAM, v.v.[11] Hình 2.25: Giao tiếp song song b. Truyền thông UART Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau. Đối với điều này, chỉ cần hai cáp để giao tiếp giữa hai UART. Luồng dữ liệu sẽ từ cả hai chân truyền (Tx) và nhận (Rx) của UARTs. Trong UART, việc truyền dữ liệu từ Tx UART sang Rx UART có thể được thực hiện không đồng bộ (không có tín hiệu CLK để đồng bộ hóa các bit o / p).[11] Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU, v.v. Sau khi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba bit như bắt đầu, dừng lại và trung bình. Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu. Tóm lại, gói dữ liệu nhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận.[11]