Đồ án tốt nghiệp - Thiết kế thiết bị mở khóa cửa bằng cảm biến vân tay | Học viện Nông nghiệp Việt Nam
Đề tài "Thiết kế thiết bị cửa sử dụng cảm biến vân tay" tập trung vào việc ứng dụng công nghệ sinh trắc học vào đời sống, nhằm tạo ra một hệ thống chứng minh tính khả thi và giới hạn của đề tài.
Preview text:
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
KHOA CƠ - ĐIỆN
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI : THIẾT KẾ THIẾT BỊ MỞ-KHÓA CỬA
BẰNG CẢM BIẾN VÂN TAY
Sinh viên thực hiện
: LÊ DUY Khóa : K63 Chuyên ngành
: TỰ ĐỘNG HÓA
Giảng viên hướng dẫn
: TS. NGÔ TRÍ DƯƠNG
HÀ NỘI – 2024
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng nhóm tôi, các
kết quả nghiên cứu được trình bày trong đồ án là trung thực, khách quan và chưa
từng dùng để bảo vệ cho bất kỳ đồ án nào.
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện đồ án đã được
cảm ơn , các thông tin trích dẫn trong đồ án này đều ghi rõ nguồn gốc.
Hà Nội, ngày 08 tháng 02 năm 2024 Tác giả đồ án Duy Lê Duy ii
LỜI CẢM ƠN
Trước tiên em xin gửi lời cảm ơn chân thành tới Ban giám đốc trường
Học viện nông nghiệp Việt Nam. Ban chủ nhiệm khoa Cơ Điện cùng toàn thể
các thầy, cô giáo trong khoa, trong trường đã dạy bảo, dìu dắt em trong suốt 5
năm qua dưới mái trường Học viện.
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo Ngô Trí Dương
trưởng bộ môn Tự động hóa đã tận tình hướng dẫn, giúp đỡ em trong quá trình
hoàn thành đề tài tốt nghiệp này.
Em cũng xin chân thành cảm ơn thầy, cô giáo, bạn bè và những người
thân đã động viên, giúp đỡ và tạo điều kiện tốt nhất cho em hoàn thành tốt đợt làm đồ án này.
Do kiến thức và thời gian còn hạn chế nên đồ án không thể tránh khỏi
những thiếu sót, mong quý thầy cô, và các bạn đóng góp ý kiến để đồ án của em
được hoàn chỉnh tốt hơn.
Cuối cùng em xin kính chúc toàn thể các thầy cô giáo trong khoa Cơ
Điện, các thầy cô trong Học viện nông nghiệp Việt Nam cùng toàn thể bạn bè,
người thân sức khỏe, hạnh phúc và thành đạt.
Em xin chân thành cảm ơn!
Hà Nội, ngày 08 tháng 02 năm 2024 Sinh viên Duy Lê Duy MỤC LỤC
DANH MỤC BẢNG iv MỞ ĐẦU
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 phát triển được nâng cao và đổi mới để phát triển đất nước và cải
thiện cuộc sống của con người. Trong đó công nghệ xử lí hình ảnh, quan sát và
giám sát từ xa đang là một bước ngoặt cho sự phát triển thời đại 4.0. Công nghệ
xử lí hình ảnh đã và đang được sử dụng trong mọi ngành nghề công việc vì sự
tiên tiến và tiện ích nó mang lại. 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 những hiệu quả vô cùng 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 con người.
Hiện nay, có rất nhiều cách để mở-khóa cửa khác nhau, cụ thể như là sử
dụng khóa cửa sắt thep bình thường ( hình thức này yêu cầu phải có chìa khóa
luôn đi theo bên mình và nếu có rơi mất thì sẽ mất rất nhiều thời gian để làm lại khóa mới).
Nhận thấy nhu cầu sử dụng đồ dùng thông minh đang tăng cao trong thời
đại hiện đại hóa 4.0. Cũng như giúp các hộ gia đình hạn chế việc bị đánh rơi
hoặc là bỏ quên chìa khóa dẫn đến việc không mở khóa được cửa. Vì vậy, em
quyết định chọn đề tài “ Thiết kế thiết bị mở-khóa cửa sử dụng cảm biển vân
tay” áp dụng phương pháp quét vân tay.
Bên cạnh đó, em cũng muốn thông qua đề tài để tìm hiểu thêm về ứng
dụng của công nghệ vào đời sống đồng thời vận dụng và hiểu sâu hơn về các
kiến thức đã được học.
Em xin chân thành cảm ơn thầy đã tận tình chỉ bảo và giúp đỡ em hoàn
thành đề tài. Do thời gian còn hạn chế trong quá trình thực hiện không tránh
khỏi những sai sót kính mong quý thầy cô bỏ qua. Em rất mong sự đóng góp của
thầy cô để đề tài em hoàn thiện và có hướng phát triển hơn. Em xin cảm ơn!
2. Mục đích của đồ án
Ứng dụng thành công công nghệ sinh trắc học ( cảm biến vân tay ) vào đề tài.
Chạy thử nghiệm thành công và đánh giá kết quả đạt được. 3. Giới hạn
Từ lý thuyết đến thực tế là một chặng đường dài, và với tốc độ phát triển
hiện nay thì công nghệ và kiến thức thay đổi không ngừng. Với tầm hiểu biết
hạn hẹp của em thì khó lòng giải quyết được nhiều yêu cầu trên thực tế vì nhiều
khi chỉ cần thêm một yêu cầu cũng khiến khối lượng kiến thức liên quan cũng
như độ khó tăng lên nhiều lần. Do đó, đồ án này chỉ tập trung vào xây dựng một
hệ thống chứng minh được tính khả thi của đồ án và giới hạn như sau:
Mô hình sử dụng cảm biến vân tay có thể sử dụng và cải tiến được thêm các công dụng khác.
Tốc độ quét của vân tay chưa được nhạy, do là dính bụi hoặc bám bẩn.
Giới hạn về đối tượng nghiên cứu :
Đề tài chỉ dừng lại ở việc xây dựng mô hình hệ thống.
Các thiết bị sử dụng chỉ mạng tính chất học thuật không tối ưu về kinh phí
cũng như tính ổn định của thiết bị.
Đề tài được nghiên cứu qua các tài liệu, kiến thức trên mạng internet và các sách giáo trình.
Đề tài được thực hiện và thử nghiệm tại nhà riêng. 4. Ý nghĩa
Đề tài “Thiết kế thiết bị mở-khóa cửa sử dụng cảm biến vân tay ” được áp
dụng vào trong đời sống nhằm phục vụ cho việc tự động sử dụng thiết bị. Là nền
tảng cơ sở để xây dựng quy trình tự động hóa trong nông nghiệp góp phần đưa
sản xuất nông nghiệp của Việt Nam tiến gần hơn với nền nông nghiệp 4.0. Quá
trình nhận dạng vân tay sẽ giúp hạn chế việc đánh rơi chìa khóa mà không lo bị
đứng ở ngoài cửa. Mô hình được dùng làm công cụ để nghiên cứu phát triển và thực nghiệm ứng dụng. 2
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Giới thiệu về đề tài
1.1.1. Giới thiệu công nghệ sinh trắc học:
Theo Biometric Research Group,.Inc sinh trắc học (hay Biometrics) là
các điểm thể chất và hành vi có thể đo lường cho phép thiết lập và xác minh
danh tính của một cá nhân.
Sinh trắc học là quá trình các đặc điểm thể chất và đặc điểm khác của một
người được phát hiện và ghi lại bởi một thiết bị hoặc hệ thống điện tử như một
phương tiện xác nhận danh tính. Thuật ngữ “Sinh trắc học” bắt nguồn từ từ
“Sinh trắc học”, dùng để chỉ việc phân tích thống kê quan sát các hiện tượng sinh trắc học.
Hình 1-1. Công nghệ sinh trắc học
Vì mã nhận dạng sinh trắc học là duy nhân của các cá nhân, chúng đáng tin
cậy hơn trong việc xác minh danh tính so với các phương pháp khác như chứng
minh nhân dân và mật khẩu.
Các mã nhận dạng hoặc phương thức sinh trắc học thường được phân loại là
“sinh lý học” hoặc “hành vi”. Các mã nhận dạng sinh trắc học liên quan đến thể
chất của một người và bao gồm: nhận dạng vân tay, bàn tay, nhận dạng tĩnh
mạch, mùi, mùi hương, DNA, nhận dạng khuôn mặt, quét mống mắt.
Công nghệ sinh trắc học là các hệ thống hoặc ứng dụng được thiết kế để sử
dụng dữ liệu sinh trắc học thu được từ các phương thức hoặc nhận dạng sinh trắc
học. Hệ thống sinh trắc học là một quá trình tự động:
1) Thu thập dữ liệu sinh trắc học thông qua thiết bị nhận dạng sinh trắc học,
chẳng hạn như máy quét hình ảnh cho dấu vân tay hoặc các mẫu tĩnh mạch lòng
bàn tay hoặc một máy ảnh để thu thập các bản quét khôn mặt và mống mắt.
2) Trích xuất dữ liệu từ mẫu được gửi thực tế.
3) So sánh dữ liệu được quét từ những dữ liệu được thu thập để tham khảo.
4) Đối sánh giữa mẫu đã gửi với các mẫu.
5) Xác định hoặc xác minh xem danh tính của người giữa dữ liệu sinh trắc học có xác thực hay không.
Do đó, công nghệ sinh trắc học bao gồm cả phần cứng và phần mềm. Thiết
bị nhận dạng sinh trắc học là phần cứng thu thập, đọc và so sánh dữ liệu sinh
trắc học. Dữ liệu sinh trắc học là một mẫu được lấy từ cá nhân và duy nhất. Phần
mềm được nhúng trong công nghệ sinh trắc học bao gồm một công cự sinh trắc
học xử lý dữ liệu sinh trắc học đã thu thập được. Phần mềm này thường hoạt
động song song với phần cứng để vận hành quy trình thu thập dữ liệu sinh trắc
học, trích xuất dữ liệu và thực hiện so sánh, bao gồm cả đối sánh dữ liệu.
1.1.2 Lịch sử công nghệ sinh trắc học:
Ngày càng có nhiều người tiêu dùng chuyển sang thế giới kỹ thuật số.
Tuy nhiên, sự phổ biến ngày càng tăng của các nền tảng mua sắm trực truyến và
các dịch vụ tài chính online đã trở thành mục tiêu cho tội phạm mạng.
Với các mối đe dọa bảo mật tiềm tàng, các doanh nghiệp phải thực hiện các
biện pháp an ninh mạng mạnh mẽ để ngăn chặn các tội phạm truy cập trái phép
vào mạng của họ. Do đó, công nghệ sinh trắc học được coi là sự thay thế khả thi
cho các phương pháp xác minh danh tính thông thường. Đặc điểm sinh trắc học
là thứ không thể giả mạo, do đó với việc sử dụng công nghệ sinh trắc học, các
doanh nghiệp có thể chống lại các hacker nhằm tìm ra điểm yếu trong hệ thống. 4
Xác thực sinh trắc học nghe có vẻ như là công nghệ của tương lai nhưng
thực tế việc sử dụng sinh trắc học cho mục đích nhận dạng đã được phát triển kể
từ những năm 1800. Ban đầu nó dựa trên các mẫu giọng nói và dấu vân tay của
con người và được sử dụng để xác định tội phạm. Nhưng khi công nghệ có
những bước nhảy bọt, khoa học ính trắc học cũng phát triển không ngừng và
hiện nay, công nghệ sinh trắc học đã được phổ biến rộng rãi ở khắp mọi nơi và
cụ thể là ngay trên điện thoại của bạn.
Năm 1823: Nhà khoa học Joannes Evangelista Purkinji tìm thấy các mô
hình và hình dạng của ngón tay.
Năm 1880: Henry Faulds và W.J Herchel, trong một công trình công bố tên
là “Nature”. đã đề xuất sử dụng vân tay như là phương thức độc đáo để xác định bản chất con người.
Cuối thế kỉ 19 năm 1880: Tiến sĩ Henry Faulds đưa ra lý luận số lượng
vân tay TRC(Total Ridge Count) có thể dự đoán tương đối chính xác mức độ
phụ thuộc của chúng vào gen di truyền của con người được kế thừa trong đó có
liên quan đến tiềm năng và trí tuệ của con người.
Năm 1892: ông Fancis Galton đã chỉ ra rằng: vân tay của những cặp song
sinh, anh em và di truyền cùng dòng máu thì có sự tương đồng. Chính điều này
đã mở ra ngành nhân học.
Năm 1926: Harol Cummins đề xuất “Dermatoglyphics” (Sinh trắc học dấu
vân tay) như là một thuật ngữ cho chuyên ngành để nghiên cứu dấu vân tay tại
Hiệp hội hình thái học của Mỹ.
Năm 1930: Hiệp hội nghiên cứu hình thái sinh lý học (viết tắt là SSPP:
Society for the Study of Physiological Pattems) bắt đầu công trinh nghiên cứu 5
chúng vân tay và những nét đặc trưng độc đáo của nó.
Năm 1985: Tiến sĩ nổi tiếng Chen YI Mou - Đại học Havard nghiên cứu
Sinh trác vân tay dựa trên Thuyết Đa Thông Minh của Tiến sĩ Howard Garder.
Đây là lần đầu tiên phương pháp này được áp dụng sinh trắc vân tay trong lĩnh
vực giáo dục và chức năng của bộ não liên quan đến dấu vân tây.
1.1.3 Ứng dụng công nghệ sinh trắc học:
- Các ứng dụng của sinh trắc học đang áp dụng hiện nay
Dấu vân tay - fingerprint
Hình 1-2 Sinh trắc học vân tay
Tại hội nghị WQC năm 2014 đã có kết quả báo cáo rằng có đến
85% người sử dụng Iphone 5S dùng công nghệ bảo mật vân tay
TouchID để bảo vệ thiết bị của mình. Lý do mà việc dấu vân tay được
sử dụng nhiều như vậy là do khả năng bảo mật cao. Và điện thoại của
họ hoàn toàn được bảo mật khi bị thất lạc hoặc bị mất trộm.
Không chỉ sử dụng dấu vân tay cho mục đích bảo vệ tài sản, mà
dấu vân tay còn được sử dụng nhiều trong các thiết bị điện tử như:
Khóa điện tử, khóa cửa bằng vân tay, chấm công bằng vân tay. Hiện
nay thì việc sử dụng dấu vân tay là phổ biển trên nhiều trường học trên thế giới.
Máy quét tĩnh mạch lòng bàn tay - Palm Vein Reader
Hình 1-3 Sinh trắc học bàn tay 6
Một hệ thống camera hồng ngoại đặc biệt sẽ được tích hợp dưới màn hình
thiết bị. Khi người dùng đưa bàn tay qua màn hình thiết bị, hệ thống camera này
sẽ kết hợp với ánh sáng từ màn hình để quét các thông số tĩnh mạch của đối
tượng rồi so sánh với dữ liệu gốc đã được đưa ra quết định cho phép mở khóa
thiết bị hay không. Mặc dù phương pháp bảo mật này có vẻ không khác gì bảo
mật vân tay được Apple cùng rất nhiều hãng smarthome áp dụng. Mức độ bảo
mật được cho là cao hơn nhiều so với dấu vân tay nó nằm trong cơ thể và rất khó bị làm giả.
Nhận diện khuôn mặt
Hình 1-4 Sinh trắc học khuôn mặt
Nhận diện khuôn mặt là công nghệ tưởng chừng chỉ xuất hiện trong các bộ
phim viễn tưởng. Nhưng ngày nay nó đã xuất hiện trong các thiết bị công nghệ
phổ biến như mở khóa cửa bằng khuôn mặt, mở điện thoại bằng khuôn mặt.
Công nghệ này đặc biệt được sử dụng nhiều trong quá trình tìm kiếm kẻ truy nã.
Với hệ thống camera quan sát lắp đặt tại khu trung tâm và những nơi yêu cầu
bảo mật cao như ngân hàng, sân bay, chung cư, văn phòng, nhà xưởng, kho
bãi..v..v. Sử dụng phần mềm phân tích khuôn mặt còn giúp phá các vụ án nhanh hơn.
Sinh trắc học hành vi - Behavioral Biometri
Hình 1-5 Sinh trắc học dựa vào hành vi con người
Công nghệ xác thực về hành vi được hình thành từ thói quan sử dụng của
con người trên các thiết bị smartphone. Chúng phân tích các từ khóa mà người
sử dụng hay sử dụng. Hay những ứng dụng mhay mở để phân tích các hành vi.
Và tao ra lưu trữ cho những lần tiếp theo. Công nghệ này được phản ứng tích
cực hơn từ đa số mọi người. Có thể đưa ra một cảnh báo và chặn truy cập vào tài
khoản. Khi người dùng có hành vi sai lệch khi thực hiện đăng nhập. Nhóm dịch
vụ tài chính toàn cầu BBVA sử dụng công nghệ cài đặt trên thiết bị di động.
Nhịp tim - Cardiac Rhyth
Hình 1-6 Dựa vào nhịp tim để thanh toán các hóa đơn
Mọi người có thể đã chẳng còn lạ gì với theiets bị đọc điện tâm đồ (ECG)
xuất hiện trong các bệnh viện. Về thực chất thì công nghệ điện tâm đồ không thể
nói là có quá nhiều đột phá, những gì xuất hiện trên bản đồ sinh trắc học đơn
giản. Chỉ là các thiết bị nhỏ bé giúp kết nối với nhịp đập trái tim của người sử
dụng và hệ thống tín hiệu. Được đeo trên người có thể xác nhận các nhịp tim
riêng biệt khi hoạt động của từng cá nhân.
Nhận diện qua võng mạc - Eye Scan 8
Hình 1-7 Sinh trắc học nhận diện võng mạc
Công nghệ quét võng mạc đã xuất hiện từ những năm 1980. Và là một trong
những ứng dụng sinh trắc học nổi tiếng nhất. Ngày nay người ta chủ yếu sử
dụng cho ứng dụng kiểm soát ra vào trong môi trường bảo mật cao: trong doanh
trại, nhà chính phủ,…. Quét võng mạc là một công nghệ mới những rất có triển vọng.
1.2 Mục đích nghiên cứu
Đề tài được nghiên cứu, khảo sát và thực hiện với mục đích áp dụng những
kiến thức đã được học trong nhà trường để thiết kế, tạo ra một hệ thống mở-
đóng cửa bằng phương pháp quét vân tay. Hệ thống gồm có: Arduino Cảm biến vân tay AS608 Màn hình LCS 16x2 4 nút nhấn Module relay Module thời gian thực RTC
1.3 Nội dung nghiên cứu
Tìm hiểu về cảm biến vân tay và phương pháp mở-đóng cửa tự động
Thiết kế module cảm biến vân tay
Đánh giá kết quả thực hiện được.\
1.4 Phương pháp nghiên cứu
Kết hợp giữa lí thuyết và thực nghiệm:
Sau khi nhận đề tài, em đã tập trung tìm hiểu các vấn đề liên quan đến đề tài.
Sau đó chế tạo mạch, sản phẩm để kiểm tra thực tế. Trong quá trình chạy thực tế
kiểm tra lỗi, những hạn chế mắc phải để sửa và phát triển thêm các ý tưởng khác.
Phương pháp quan sát: khảo sát một số mạch điện thực tế đang có trên thị
trường và tham khảo thêm một số dạng mạch từ mạng Internet.
Phương pháp tham khảo tài liệu: bằng các thu thập thông tin từ sách, tạp chí
về điện tử và truy cập từ mạng Internet. 1.5 Ý nghĩa thực tiễn
- Thực tế có rất nhiều công ty, doanh nghiệp đã áp dụng công nghệ mở-khóa
cửa thông minh sử dụng cảm biến vân tay này. Nó mang lại tính hữu ích cao, tiết
kiệm thời gian cho công nhân cũng như quản lý, cải thiện chất lượng cuộc sống
- Tạo tính tư duy, sáng tạo cho sinh viên trong quá trình nghiên cứu.
- Có tính linh động và mở rộng cho sinh viên thiết kế mô hình dựa trên cơ sở thực tiễn.
- Mô hình nhỏ, đơn giản nhưng tiện lợi, hữu ích. 10
CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
2.1. Đối tượng nghiên cứu
Trong cuộc sống hiện nay, mở cửa bằng dấu vân tay là phương thức mở
khóa hiện đại được sử dụng trong các dòng khóa vân tay, khóa cửa điện tử.
2.1.1. Phân loại các phương pháp mở-khóa cửa thông minh:
2.2.1 Mở-khóa cửa bằng thẻ từ:
Mở-khóa cửa bằng thẻ từ là thiết bị điện tử hoạt động khi cắm điện và sử
dụng thẻ từ cảm ứng gắn chip (RFID) để nhân viên mở-khóa cửa.
Ưu điểm của cách mở-khóa cửa này là:
- Mở khóa tiện lợi và nhanh chóng:
Người dùng chỉ cần chạm đầu ngón tay lên phần đầu đọc, chưa đầy một
giây, cửa sẽ được mở ra.
Người sử dụng không cần luôn mang theo chìa khóa bên người giống như
với loại ổ khóa cơ truyền thống.
Không lo lắng việc quên chìa khóa hay đánh rơi, làm mất chìa khóa
Chìa khóa là vân tay, người dùng có thể mở khóa mà không cần bất kỳ
phương tiện hay công cụ nào khác.
- Độ an toàn, bảo mật tối ưu
Mỗi người có một dấu vân tay khác nhau, không thể trùng lặp
Ổ khóa cửa kết hợp công nghệ nhận dạng vân tay hiện đại, cho phép khóa
ngăn chặn mọi tình trạng sao chép, làm giả, lấy trộm vân tay
Những người không có dấu vân tay hợp lệ, chưa đăng ký vân tay trước đó
không thể mở cửa trong bất kỳ trường hợp nào.
2.2.2 Mở cửa bằng vân tay
Với cách lưu dữ liệu tương tự như mở cửa bằng thẻ từ, khưng mở cửa bằng
vân tay được áp dụng công nghệ hiện đại hơn. Cách này khắc phục được hạn
chế việc quân hay làm mất thẻ so với cách trên. Song máy cũng có một vài
nhược điểm như không nhạy khi tay ướt, máy cũ còn hay gặp lỗi không xác định
được vân tay và chi phí lắp đặt cao hơn cho với việc mở cửa bằng thẻ từ. Mở
cửa thông minh bằng vân tay cũng không quá phù hợp với các ngành nghề, công
việc dễ làm mờ vân tay như tiếp xúc với sơn hoặc có nhiều bụi bặm, làm đồ gỗ...
Ưu điểm của cách mở-khóa cửa này là:
- Mở khóa tiện lợi và nhanh chóng:
Người dùng chỉ cần chạm đầu ngón tay lên phần đầu đọc, chưa đầy một
giây, cửa sẽ được mở ra.
Người sử dụng không cần luôn mang theo chìa khóa bên người giống như
với loại ổ khóa cơ truyền thống.
Không lo lắng việc quên chìa khóa hay đánh rơi, làm mất chìa khóa
Chìa khóa là vân tay, người dùng có thể mở khóa mà không cần bất kỳ
phương tiện hay công cụ nào khác.
- Độ an toàn, bảo mật tối ưu
Mỗi người có một dấu vân tay khác nhau, không thể trùng lặp
Ổ khóa cửa kết hợp công nghệ nhận dạng vân tay hiện đại, cho phép khóa
ngăn chặn mọi tình trạng sao chép, làm giả, lấy trộm vân tay
Những người không có dấu vân tay hợp lệ, chưa đăng ký vân tay trước đó
không thể mở cửa trong bất kỳ trường hợp nào.
Nhược điểm của cách mở cửa này là:
- Lỗi xác nhận vân tay không phải lúc nào cũng thưc hiện được….
- Chi phí lắp đặt sử dụng cao
2.2.3 Mở cửa bằng nhận diện khuôn mặt
Đây là cách mở cửa được nhiều công ty đầu tư, sử dụng hiện nay nhằm tăng
độ an ninh an toàn. Cơ chế hoạt động của hình thức này là sử dụng công nghệ
nhận diện khuôn mặt Face ID để ghi nhận nhân viên.
Ưu điểm của mở cửa nhận diện khuôn mặt - Tính xác thực cao
- Hiện đại và nhanh chóng 12
- Góp phần đảm bảo an ninh
Nhược điểm khi sử dụng:
- Cần đầu tư máy tốt thì hoạt động mới ổn định
- Tốc độ chấm công chậm hơn so với thẻ
- Chi phí lắp đặt sử dụng cao
Kết luận: Mỗi cách mở cửa thông minh đều có ưu và nhược điểm riêng
nhưng đều hỗ trợ người dùng sử dụng. Dựa trên những ưu nhược điểm đó và tùy
theo các người sử dụng đưa ra lựa chọn hiệu quả và tối ưu nhất. Nhưng phương
pháp mở cửa bằng vân tay đang được sử dụng rộng rãi nhất ở thời điểm hiện tại
vì nó nhanh gọn, minh bạch, xác thực cao.
2.2 Tìm hiểu về cảm biến vân tay
Công nghệ cảm biến vân tay ngày càng thông dụng và phát triển. Không chỉ
được sử dụng để tích hợp tính năng bảo mật trên các dòng smartphone hiện nay.
Công nghệ cảm ứng vân còn còn được ứng dụng tích hợp vào các thiết bị hiện
đại khác như: Laptop, Tivi, máy chấm công, Khóa cửa…Vậy cảm biến vân tay là gì? Định nghĩa:
Cảm biến vân tay hay còn có tên gọi khác là cảm biến nhận diện vân tay là
một dạng lưu trữu vân tay của người dùng bằng công nghệ sinh trắc học với
những loại sóng khác nhau, sau đó lưu lại những bề mặt lồi lõm và cả lớp da của
tay để lưu lại nhằm đảm bảo tính bảo mật khi người dùng sử dụng.
Nguyên lý hoạt động:
Về cơ bản, cảm biến vân tay là một hệ thống có khả năng lưu bản in vân tay
của người dùng một cách nhanh chóng nhờ một hệ thống được đặt dưới khung
quét. Người dùng đặt tay lên khung quét và các cảm biến trên khung quét sẽ lưu
lại cách hình ảnh đó và các phân mềm, vi xử lý sẽ phân tích hình ảnh này theo
các vị trí lồi/lõm trên đầu ngón tay của bạn. Khi đặt ngón tay lên trên một thiết
bị đọc vân tay, ngay lập tức thiết bị này sẽ quét hình ảnh ngón tay đó và đưa vào
hệ thống. Hệ thống sẽ xử lý dấu vân tay, chuyển sang dạng dữ liệu số rồi đối
chiếu các đặc điểm vân tay đó với dữ liệu đã được lưu trữ trong hệ thống.
Ưu nhược điểm của cảm biến vân tay: Ưu điểm:
- So với các thiết bị thông thường việc mở khóa bằng cảm biến vân tay sẽ
nhanh hơn với độ nhạy cao: chỉ cần chạm hoặc vuốt nhẹ
- Không cần ghi nhớ mật khẩu, dễ dàng thao tác, tiếp cận dễ dàng với người sử dụng.
- Có tính bảo mật, xác thực cao: do vân tay của mỗi người là khác nhau Nhược điểm:
- Không thể mở cửa nếu vân tay của bạn bị xước, biến dạng mà không có phương án dự phòng.
Cảm biến vân tay là một hệ thống xác thực, không có chức năng bảo vệ
dữ liệu. Chính vì vậy người khác có thể sử dụng ngón tay của bạn mở khóa cửa
khi bạn ngủ hoặc mất ý thức.
2.4 Phân loại cảm biến vân tay
2.4.1 Cảm biến quang học
Cảm biến này sẽ sử dụng một camera chuyên dụng để chụp lại hình ảnh
của dấu vân tay trên bề mặt kính, bề mặt kính của cảm biến loại này được phủ
một lớp mặt kính. Bức ảnh sau khi được hệ thống camera chụp lại sẽ được nén
lại và chuyển sang tín hiệu số để chuyển đến khối xử lý hình ảnh phía sau.
Công nghệ này có nhược điểm là nhận dạng vân tay lâu. Thiếu độ chính
xác cao, khả năng xử lý dấu vân tay mất nhiều thời gian hơn so với các loại khác. 14
2.4.2 Cảm biến điện dung
Cảm biến loại này dựa trên nguyên lý cảm ứng điện từ, bề mặt cảm biến sẽ
được bố trí một ma trận tụ điện, ma trận này sẽ có nhiệm vụ tái tạo lại hinhfa nhr
vân tay khi được lấy mẫu. Khi ngón tay của người dùng đặt trên bề mặt cảm
biến, ngay lập tức nó sẽ tạo nên sự thay đổi điện dung trong từng con tụ trên ma
trận tụ điện, tùy vào độ nông sâu của vân tay ở từng điểm mà trị số tụ điện sẽ
khác nhau. Dựa vào trị số điện dung ở từng node hệ thống sẽ dựng lại ảnh vân
tay trên ngón vừa lấy mẫu để gửi về khối xử lý và so sánh.
Cảm biến loại này có cấu tạo mỏng và có độ bảo mật cao hơn cảm biến
quang học vì thế nó được áp dụng ở các thiết bị các nhân như máy điện thoại di
động hoặc một số dòng thiết bị cao cấp khác.
2.4.3 Cảm biến siêu âm
Là sự đột phá trong công nghệ bảo mật vân tay, loại bỏ đi những bất tiện
của cảm biến vân tay điện dung chẳng hạn như không thể sử dụng khi vân tay bị
ướt hay chiếm kích thước một vùng đáng kể trên thiết bị, nhất là trong lúc các
smartphone với xu thế tràn viền đang khá thịnh hành.
Bằng cách sử dụng âm thanh tần số sóng để nhận diện các chi tiết trên vân
tay người dùng, khi quét vân tay, một số xung áp lực sẽ được thu lại, một số dội
ngược vào cảm biến gồm đường vân, lỗ chân lông, các chi tiết khác để nhận
diện sự riêng biệt. Sóng này không chỉ quét bề mặt lồi lõm mà còn cả lớp da
dưới ngón tay, tránh những trường hợp làm giả ngón tay tinh vi hiện nay. Cảm
biến này bao gốm máy phát và máy thu.
Cảm biến siêu âm là công nghệ còn khá mới đối với giới công nghệ và chi phí khá cao.
2.5 Cảm biến vân tay
Giới thiệu cảm biến vân tay
Hình 2-8 Cảm biến vân tay AS608 Thông số kĩ thuật
Điện áp sử dụng: 3.0 đến 3.6VDC (thường cấp 3.3VDC, lưu ý quan
trọng nếu cấp lớn hơn 3.3VDC cảm biến sẽ cháy ngay lập tức).
Dòng tiêu thụ: 30 đến 60mA, trung bình 40mA
Chế độ so sánh kiểm tra: có 2 chế độ 1:1 và 1: N.
Giao tiếp truyền thông: USB /UART
Tốc độ Baudrate UART: 9600 x N (N từ 1 đến 12), mặc định N=6 baudrate = 57600,8,1.
Giao tiếp USB: 2.0 full speed
Kích thước hình ảnh cảm biến (pixel): 256 x 288 pixels
Thời gian xử lí ảnh (s): <0.4s
Độ trễ bật nguồn (s): <0.1s (module cần khoảng 0.1 giây để khởi tạo sau khi bật nguồn)
Thời gian làm việc (s): <0.3s
FRR (tỉ lệ từ chối): <1%
FAR(tỉ lệ nhận dạng): <0.001%
Dung lượng lưu trữ vân tay 10 (ID 1 đến 10)
Trong cuộc sống hiện nay, nhu cầu về màu sắc sản phẩm ngày càng được
chú trọng, để đáp ứng nhu cầu cần thiết đó nên thị trường ra nhiều sản phẩm có 16
màu sắc đa dạng. Ở đây sản phẩm sử dụng màu sắc của quả quýt, có hai nhóm
màu sắc cơ bản là : Màu sắc sản phẩm phổ biến , màu sắc sản phẩm ít phổ biến.
Cách chia màu sắc này dựa vào sự phổ biến của màu sắc sản phẩm ở trong cuộc
sống, nhóm màu sắc chính ( xanh, vàng, đỏ) và các màu sắc còn lại là màu sắc ít
thông dụng hơn nên thuộc nhóm còn lại. Ở đề tài này nhóm sử dụng màu sắc
quả thực tế là quả quýt với 2 màu xanh và vàng.
a. Giới thiệu về không gian màu sắc
Không gian màu là những phương pháp định lượng màu sắc được thiết lập
công thức một cách khoa học. Hệ thống không gian màu cho phép mỗi màu
được xác định theo số học, bằng cách đó ta có thể chọn và lặp lại những màu
nào đó thật chính xác. Bạn sẽ tiếp xúc với những không gian màu chính sau đây:
HLS (sắc thái, quang độ và độ bão hòa), HSB (sắc thái, độ bão hòa và độ đậm
nhạt), RGB (đỏ, lục, lam) và CYMK (xanh hóa học, vàng, tím sen, đen). CMYK
là không gian màu được sử dụng trong công nghiệp in ấn và bị giới hạn bởi mức
độ thể hiện của mực in và chất màu. Không gian RGB - hệ thống màu thường
gặp nhất trong nghệ thuật nhiếp ảnh số - sử dụng ánh sáng, do vậy cho ta phổ
màu rộng hơn các chất màu CYMK. Điều quan trọng là bạn phải lưu ý sự khác
biệt giữa những hệ thống màu mà bạn đang làm việc với những biến đổi màu có
thể sẽ xảy ra giữa màn hình hiển thị và kết xuất in ấn. - Không gian màu RGB
Không gian màu RGB hoặc hệ thống màu RGB , tạo ra tất cả các màu từ
sự kết hợp của các màu Red, Green và Blue.
Màu đỏ, xanh lục và xanh lam sử dụng 8 bit mỗi màu, có giá trị nguyên từ
0 đến 255. Điều này làm cho 256 * 256 * 256 = 16777216 có thể có màu.
RGB ≡ Đỏ, Xanh lục, Xanh lam.
Mỗi pixel trong màn hình LED hiển thị màu sắc theo cách này, bằng sự
kết hợp của các đèn LED màu đỏ, xanh lục và xanh lam (điốt phát quang).
Khi điểm ảnh màu đỏ được đặt thành 0, đèn LED sẽ tắt. Khi pixel màu đỏ
được đặt thành 255, đèn LED được bật hoàn toàn.
Hình 2. 1. Không gian màu RGB
Mã RGB có định dạng 24bit(bit0..23): RGB = (R*65536)+(G*256)+B ,
(when R is RED, G is GREEN and B is BLUE). Ví dụ:
Màu trắng RGB: White RGB code = 255*65536+255*256+255 = #FFFFFF.
Màu RGB xanh lam : Blue RGB code = 0*65536+0*256+255 = #0000FF.
Màu RGB vàng : Yellow RGB code = 255*65536+255*256+0 = #FFFF00. - Không gian màu CMYK
CMYK là không gian màu được sử dụng phổ biến trong ngành công
nghiệp in ấn. Ý tưởng cơ bản của hệ không gian này là dùng 4 màu sắc cơ bản
phục vụ cho việc pha trộn mực in. Trên thực tế người ta dùng 3 màu là C=Cyan:
xanh lơ, M=Magenta: hồng xẫm và Y= Yellow: vàng để biểu diễn các màu sắc
khác nhau. Nếu lấy màu hồng xẫm cộng vàng sẽ ra đỏ, màu xẫm kết hợp với
xanh lơ sẽ cho ra xanh lam. Sự kết hợp của 3 màu trên sẽ cho ra màu đen, tuy
nhiên màu đen ở đây không phải là đen tuyệt đối và có độ tương phản lớn.
Hình 2. 2. Không gian màu CMYK 18
Nguyên lý hoạt động : Nguyên lý của hệ màu CMYK là hấp thụ ánh sáng.
Màu chúng ta nhìn thấy chính là từ phần ánh sáng không hấp thụ. Diễn giải cách
khác, chúng hoạt động trên cơ chế vật không tự phát ra ánh sáng. Mà chỉ phản
xạ ánh sáng từ các nguồn sáng chiếu tới.
Vậy nên, thay vì thêm độ sáng để có những màu sắc khác nhau. Hệ màu
CMYK sẽ loại trừ ánh sáng từ màu trắng (ánh sáng gốc) để tạo ra những màu
sắc khác. Mặt khác, 3 màu Cyan, Magenta và Yellow khi kết hợp cũng sẽ tạo ra màu đen.
Màu CMYK được dùng trong các thiết kế phục vụ cho mục đích in ấn. Ví
dụ như poster, flyer, brochure, portfolio, name card, catalogue, sách và tạp chí,
bộ nhận diện thương hiệu, bao bì, ... - Không gian màu HSV
HSV và cũng gần tương tự như HSL là không gian màu được dùng nhiều
trong việc ch ỉnh sữa ảnh, phân tích ảnh và một phần của lĩnh vực thị giác máy
tính. Hệ không gian này dựa vào 3 thông số sau để mô tả màu sắc H = Hue: màu
sắc, S = Saturation: độ đậm đặc, sự bảo hòa, V = value: giá trị cường độ sáng.
Không gian màu này thường được biểu diễn dưới dạng hình trụ hoặc hình nón.
Hình 2. 3. Không gian màu HSV
Ví dụ: màu đen là sự kết hợp của các kênh màu (R, G, B)với giá trị tương
ứng (0, 0, 0) màu trắng có giá trị (255,255, 255), màu vàng có giá trị (255, 255,
0), màu tím đậm có giá trị (64, 0, 128) ...Nếu ta dùng 16bit để mã hóa một kênh
màu (48bit cho toàn bộ 3 kênh màu) thì dãi màu sẽ trãi rộng lên tới 3*2^16 = ... Một con số rất lớn.
b. Phương pháp nhận diện màu sắc
Với ảnh chụp thu nhận được từ Camera sẽ cho không gian màu của ảnh là
RGB, không gian màu RGB không thích hợp cho việc nhận dạng màu sắc, để
phân loại màu sắc người ta thường dùng không gian màu HSV. Vì vậy cần
chuyển đổi ảnh gốc từ không gian RGB sang ảnh không gian HSV.
Hình 2. 4. Các bước thực hiện xử lí ảnh Các bước thực hiện : - Thu nhận ảnh
Thu nhận ảnh là quá trình mà ảnh có thể thu nhận qua camera hoặc có thể
lấy từ bộ nhớ hệ thống. - Tiền xử lý ảnh
Là bước sửa chất lượng ảnh như việc lọc nhiễu hay tăng cường độ sáng,
để nâng cao chất lượng ảnh và chuyển ảnh xám để dễ dàng nhận dạng ảnh.
Chuyển đổi xám: giả sử hình ảnh được lưu trữ dưới dạng RGB. Điều này
có nghĩa là ba ma trận xám tương ứng cho màu Red, Green, Blue. Công việc là
tìm cách tổng hợp ba ma trận này về thành một ma trận duy nhất.
Lọc trung bình: Giả sử có một ảnh đầu vào với I(x,y) là giá trị điểm ảnh
tại một điểm (x,y) và một ngưỡng 0.
Bước 1: Tính tổng các thành phần trong ma trận lọc.
Bước 2 : Chia lấy trung bình của tổng các thành phần trong ma trận được
tính ở trên với số lượng các phần tử của cửa sổ lọc ra một giá trị. Bước 3 : Hiệu chỉnh - Chuyển đổi ảnh
Chuyển đổi xám: giả sử hình ảnh được lưu trữ dưới dạng RGB. Điều này
có nghĩa là ba ma trận xám tương ứng cho màu Red, Green, Blue. Công việc là 20
tìm cách tổng hợp ba ma trận này về thành một ma trận duy nhất. Một trong số
công thức phổ biến để thực hiện là
Không gian màu RGB không thích hợp cho việc nhận dạng màu sắc, để
phân biệt màu sắc người ta thường dùng không gian màu HSV. Vì vậy ta cần
chuyển đổi ảnh có không gian màu RGB sang ảnh có không gian màu HSV
- Nhận dạng và phân loại
Ta nhận dạng màu sắc dựa vào các đặc điểm riêng biệt của từng màu, khi
có được các đặc điểm riêng biệt của từng màu ta tiến hành phân loại từng màu
sắc sản phẩm một nhờ vào việc so sánh các đặc điểm riêng biệt của chúng đối
với các giá trị đã định trước. Ta lần lượt so sánh từng màu một từ màu xanh đến
màu vàng. Nếu các đặc điểm trùng khớp với đặc điểm đề ra ở màu trước thì ta
kết luận ngay đó là sản phẩm của màu đó và ngược lại.
2.1.2. Trang thiết bị điều khiển và phần mềm vận hành
a. Bộ điều khiển PLC
Hình 2. 5. PLC board fx3u
PLC viết tắt của Programmable Logic Controller, đây là thiết bị điều
khiển lập trình cho phép thực hiện linh hoạt các điều khiển logic thông qua ngôn
ngữ lập trình. Giúp đặt lệnh các chương trình chạy cho băng tải đa
Người sử dụng có thể lập trình thực hiện một loạt trình tự các công việc.
Các công việc này được kích hoạt bởi tác nhân tác động vào PLC hoặc qua hoạt
động có trễ như thời gian nhất định. Khi công việc được kích hoạt bộ điều khiển
lập trình sẽ liên tục “lặp lại” chương trình do “người sử dụng lập ra” chờ tín hiệu
ở ngõ vào và xuất tín hiệu ở ngõ ra tại thời điểm đã lập trình.
Tuy nhiên trong quá trình làm việc hệ thống PLC còn nhiều nhược điểm
để khắc phục những nhược điểm này nhà sản xuất có thể dùng dây nối (bộ điều
khiển bằng Relay) để chế tạo ra bộ PLC nhằm thỏa mãn các yêu cầu sau: - Lập trình dễ dàng. -
Kích thước gọn nhẹ, dễ dàng bảo quản, sửa chữa.
- Dung lượng bộ nhớ của hệ thống lớn để có thể chứa được nhiều chương trình phức tạp. -
Có độ tin cậy cao trong môi trường công nghiệp.
- Khả năng giao tiếp được với các thiết bị thông minh khác như: máy tính,
nối mạng, các module mở rộng.
Hình 2. 6. Sơ đồ chân của FX3U - 24MT
Thông số kĩ thuật của PLC board fx3u – 24MT.
Ngõ vào/ra : 14 vào / 10 ra.
Ngõ vào analog : 6 ngõ vào analog, độ chính xác 12bit, A0-AD2: 0-10V,
A3-AD5: 0-20mA; Đọc cấu trúc lệnh RD3A.
Ngõ ra analog : 2 ngõ ra analog, độ chính xác 12bit, ngõ ra vôn: 0-10V,
ngõ ra analog với cấu trúc lệnh WR3A. Nguồn cấp : 24VDC – 1A.
Phần mềm lập trình : GX Developer - GX-Work 2.
b. Phần mềm GX Work2 22
Hình 2. 7. Giao diện GX Work2 - Tổng quan
Đây là phiên bản phần mềm nâng cấp và thay thế cho phần mềm GX
Developer, lập trình cho các dòng PLC FX, Q, L, A, S, CNC
GX Works2 là phiên bản nâng cấp và thay thế cho GX Developer bị hạn
chế một số tính năng. Những cải tiến trong phiên bản phần mềm này gồm có:
Giao diện được thiết kế lại một cách trực quan hơn để thuận tiện cho người sử dụng
Thư viện các modul được cập nhập đầy đủ hơn
Hỗ trợ thêm những ngôn ngữ lập trình như FBD và SFC
Thao tác tùy chỉnh các thông số dễ dàng
Bộ cài đặt được tích hợp thêm các gói phần mềm hỗ trợ
Phần mềm có thể lập trình cho các dòng PLC sau:
Dòng FX: FX0S, FX0, FX1, FX1S, FX1N, FX1NC, FX2N, FX2NC, FX3S, FX3G, FXGC, FX3U, FX3UC
Dòng Q cpu (Q mode, A mode), L cpu, QS cpu, QnA cpu, A cpu, S cpu, CNC
GX Work 2 là phần mềm được Mitsubishi nâng cấp và thay thế cho GX
Developer với giao diện trực quan đẹp hơn hơn, thao tác mượt mà và có hỗ trợ
thêm các ngôn ngữ lập trình khác như là FBD (Function Block Diagram), SFC
(Sequential Function Chart). Phần mềm này khá nặng, nếu máy tính lập trình
cấu hình thấp thì có thể sử dụng GX Developer.
Cấu hình màn hình trong của GX Work2
Hình 2. 8. Vị trí của từng thanh trong GX Work2
Thanh tiêu đề : Thanh tiêu đề hiện tên các dự án đang sử dụng
Hình 2. 9. Thanh tiêu đề
Thanh menu: Thanh menu được sử dụng khá thường xuyên khi làm việc
với GX Works2. Click vào thanh menu để chọn những chức năng khác nhau từ thanh menu.
Thanh công cụ: Thanh công cụ gồm những biểu tượng rất trực quan và dễ
sử dụng cho những chức năng thông dụng. Nó khiến các thao tác nhanh hơn.
Hình 2. 10. Thanh công cụ
Tap : Khi làm việc với nhiều cửa sổ đang mở, nó thể hiện theo dạng trình
duyệt tab . Click vào tab sẽ kích hoạt cửa sổ làm việc tương ứng
Xem nội dung hiển thị : Xem nội dung hiển thị thể hiện nội dung của trình hiển thị hiện tại
Vùng quản lý project : xem vùng đang chọn vùng thể hiện nội dung của vùng hiện tại. 24
Khu vực soạn thảo chương trình (cửa sổ làm việc) : Màn hình chỉnh sửa
thể hiện nhiều loại màn hình như màn hình tạo chương trình và màn hình tạo
comment để chỉnh sửa biểu đồ lader, chú thích, và tham số.
Cửa sổ Output : Cửa sổ đầu ra thể hiện sự biên dịch và kiể mtra kết quả (như lỗi và cảnh báo).
Thanh trạng thái : Thanh trạng thái thể hiện thông tin trạng thái của GX Works2.
Hình 2. 11. Thanh trạng thái - Chức năng
GX Works2 quản lý các chương trình và thông số đầu vào của dự án cho
mỗi CPU điều khiển khả trình. Lập trình :
Chương trình có thể được tạo ra trong một Dự án đơn giản theo cách
tương tự với GX Developer.
Lập trình cấu trúc trong một dự án cấu trúc cũng khả thi với GX Works2
Hình 2. 12. Ví dụ về lập trình trong GX Work2 Cài đặt tham số :
Tham số cho CPU điều khiển khả trình và tham số cấu hình mạng có thể
được đặt với GX Works2.
Tham số cho khối chức năng thông minh cũng có thể được cài đặt
Hình 2. 13. Cài đặt các tham số
Viết/đọc dữ liệu đến/từ một CPU điều khiển khả trình.
Tạo chương trình tuần tự có thể được viết/đọc từ một CPU điều khiển khả
trình sử dụng Read từ PLC/Write của chức năng PLC. Đồng thời, với chương
trình thay đổi chức năng trực tuyến, chương trình tuần tự có thể bị thay đổi ngay
cả khi CPU điều khiển khả trình đang chạy (RUN).
Hình 2. 14. Khả năng đọc và viết dữ liệu Quan sát/soát lỗi :
Tạo chương trình tuần tự có thể được viết cho CPU điều khiển khả trình
và giá trị của thiết bị khi hoạt động của nó đang được theo dõi trực tuyến/ngoại tuyến.
Hình 2. 15. Soát lỗi trong chương trình Chuẩn đoán
Trạng thái lỗi hiện tại và lịch sử lỗi của CPU điều khiển khả trìnhcó thể được chuẩn đoán. 26
Với chức năng chuẩn đoán, công việc khôi phục có thể được hoàn thành trong thời gian ngắn.
Với chức năng theo dõi hệ thống (cho QCPU (Q mode)/LCPU), thông tin
cụ thể trong module chức năng thông tin có thể được lấy về. Điều này giúp cho
rút ngắn thời gian phục hồi dữ liệu khi hệ thống đang lỗi.
Hình 2. 16. Chuẩn đoán trạng thái
c. Phần mềm Visual Studio
Hình 2. 17. Giao diện Visual Studio
- Tổng quan về phần mềm
Visual Studio là một môi trường phát triển tích hợp được phát triển bởi
Microsoft. Visual Studio còn được gọi là “trình soạn thảo mã được nhiều người
sử dụng nhất thế giới”, đây là một trong những công cụ hỗ trợ lập trình website
nổi tiếng nhất hiện nay mà chưa phần mềm nào có thể thay thế chúng. - Cấu trúc
Visual Studio không hỗ trợ cho bất kỳ ngôn ngữ lập trình nào về giải pháp
hoặc công cụ thực chất thay vào đó nó cho phép cắm chức năng được mã hóa
như là một VSPackage. Visual Studio SDK cũng bao gồm Managed Package
Framework là một tập hợp quản lý bao bọc quanh các COM-interfaces cho phép
các gói được viết bằng bất kỳ ngôn ngữ nào. Hỗ trợ cho các ngôn ngữ lập trình
được thêm vào bằng cách sử dụng một VSPackage đặc biệt được gọi là một dịch
vụ ngôn ngữ. Một dịch vụ ngôn ngữ định nghĩa giao tiếp có các chức năng được
thêm vào theo cách này bao gồm cú pháp màu, hoàn thành báo cáo kết quả, kết
hợp đôi, công cụ chú giải tham số thông tin, danh sách thành viên và đánh dấu
lỗi trên nền biên dịch.
Visual Studio không bao gồm bất kỳ Hệ thống quản lý phiên bản hỗ trợ
kiểm soát mã nguồn nhưng nó xác định hai cách thay thế cho các hệ thống kiểm
soát mã nguồn để tích hợp với IDE. Visual Studio hỗ trợ chạy nhiều cá thể của
môi trường (tất cả đều có VSPackages riêng của mình). Các phiên bản sản phẩm
khác nhau của Visual Studio được tạo ra bằng cách sử dụng AppIds khác nhau.
Các sản phẩm phiên bản Visual Studio Express được cài đặt với AppIds riêng
nhưng với các sản phẩm Standard, Professional và Team Suite chia sẻ cùng AppID. - Giao diện làm việc
Hình 2. 18. Giao diện làm việc chính
Vùng 1: Toolbox - đây là vùng chứa tất cả các control có thể sử dụng cho
project, có thể kéo thả những control này sang vùng 2 và vùng 3.
Vùng 2: Design - vùng hiển thị kết quả (giao diện) từ mã giao diện, có
những loại project không có vùng làm việc này như Console App.
Vùng 3: vùng viết mã nguồn (coding). 28
Vùng 4: nơi xuất ra những thông báo trong quá trình biên dịch, các lỗi cú
pháp phát sinh trong quá trình viết mã.
Vùng 5: Solution Explorer - vùng quản lý các file trong project đang làm việc.
2.3. Nội dung nghiên cứu
Tìm hiểu tổng quan về xử lý ảnh, tổng quan về phân loại sản phẩm, ứng
dụng của xử lý ảnh trong đời sống sản suất, đặc biệt là ứng dụng của xử lý ảnh
trong phân loại sản phẩm. Qua đó có thể xây dựng được yêu cầu về mô hình
phân loại sản phẩm theo màu sắc quả.
Giới tổng quan về đối tượng nghiên cứu, ý đồ xây dựng hệ thống, các
thiết bị có trong hệ thống và các phương pháp nghiên cứu.
Hoàn thiện các thiết kế phần cứng, phần mềm và tiến hành chế tạo mô
hình, cùng đó là thực hiện thử nghiệm đánh giá hoạt động của hệ thống.
2.4. Phương pháp nghiên cứu
Phương pháp kế thừa: Kế thừa từ các tài liệu, công trình nghiên cứu trước
đó về những mảng chính của đề tài, cách sử dụng các thiết bị, cảm biến, sử dụng
các thư viện lập trình được thiết lập và kiểm chứng bởi cộng đồng.
Sau khi đã xây dựng xong cơ sở lý thuyết của đề tài sẽ tiến hành thử
nghiệm sự hoạt động trên các thiết bị hiện có.
Các bước tiến hành nghiên cứu là tìm hiểu cơ sở lý thuyết về vấn đề
nghiên cứu, tiến hành thiết kế chương trình điều khiển và mạch điều khiển, sau
đó thử nghiệm trên mô hình để đưa ra kết luận.
Kết hợp giữa việc thiết kế tuần tự và đồng thời: cụ thể là việc đầu tiên là
nghiên cứu mô hình cụ thể sau đó xây dựng mô hình chứa đầy đủ những dự định
sẽ có trong thiết kế qua đó có cái nhìn tổng quan về hệ thống chung và xác định
thông số cơ bản. Từ đó, áp dụng để thiết kế trong giới hạn của đề tài.
Tìm hiểu tổng quan về xử lý ảnh, , ứng dụng của xử lý ảnh trong đời sống
sản suất, đặc biệt là ứng dụng của xử lý ảnh trong phân loại sản phẩm. Qua đó
có thể xây dựng được yêu cầu về mô hình phân loại sản phẩm quả quýt theo độ nguyên vẹn.
Giới thiệu tổng quan về đối tượng nghiên cứu, ý đồ xây dựng hệ thống,
các thiết bị có trong hệ thống và các phương pháp nghiên cứu.
Hoàn thiện mục tiêu ứng dụng công nghệ xử lí ảnh vào mô hình cùng đó
là thực hiện thử nghiệm đánh giá hoạt động của hệ thống.
Qua chương 2, em đã giới thiệu được tổng quan về đối tượng nghiên cứu,
ý đồ xây dựng hệ thống, các thiết bị có trong hệ thống và các phương pháp
nghiên cứu của mình. Trên cơ sở đó trong chương 3, em sẽ hoàn thiện các thiết
kế phần cứng, phần mềm và tiến hành chế tạo mô hình, cùng đó là thực hiện thử
nghiệm đánh giá hoạt động của hệ thống.
CHƯƠNG 3 : KẾT QUẢ VÀ THẢO LUẬN
3.1. Sơ đồ tổng quát
3.1.1. Sơ đồ khối
Hình 3. 1. Sơ đồ khối 30
Các cảm biến đầu vào bao gồm cảm biến vật cản hồng ngoại, camera.
PLC sẽ đóng vai trò xử lý trung tâm, nó nhận tín hiệu từ các cảm biến rồi
thông qua thuật toán điều khiển sẽ đưa ra các tín hiệu điều khiển cho cơ cấu chấp hành.
Cơ cấu chấp hành bao gồm động cơ DC băng tải và động cơ Bước xoay cánh tay và hút vật.
Laptop đóng vai trò bộ xử lý ảnh và máy chạy giao diện.
Màn hình là nơi người dùng giao tiếp với hệ thống thông qua giao diện điều khiển.
Sau khi dữ liệu hình ảnh được xử lí trong máy tính đưa ra kết quả về màn
hình đồng thời cũng truyền dữ liệu vào PLC để bộ điều khiển PLC kích hoạt
điều khiển động cơ bước quay cánh tay về gốc. Tiếp đó xi lanh hạ xuống , giác
hút tiến hành hút quả. Động cơ bước quay cánh tay đến vị trí thùng cần thả vật
để giác hút nhả hơi ra và vật rơi xuống thùng. Sau đó cánh tay lập tức quay về vị trí gốc ban đầu.
3.1.2. Giải thuật xử lí ảnh
Hình 3. 2. Giải thuật xử lí ảnh
- Nguyên lí hoạt động :
Camera sẽ đóng vai trò nhận diện và xác định vật mẫu. Đưa vật mẫu vào
trong đường bao đã được cài đặt trong phần mềm để tiến hành lấy giá trị vật
mẫu. Tiến hành căn chỉnh minH, minS, minV, maxH, maxS, maxV để bôi đen
toàn bộ khung ảnh và chỉ để nhận diện được vùng bao quanh quả quýt. Sau khi
có được các giá trị min max lần lượt kể trên ta nhập vào chương trình để xác
định thông số xử lí. Kết quả sau khi lấy giá trị sẽ được đưa vào quá trình xử lí,
tính toán để cho ra kết quả dưới điểm ảnh (px) hay còn được gọi là vùng dữ liệu
màu. Điểm ảnh của quả quýt sau khi được xác định sẽ đem so sánh đồng thời
tìm kiếm trong các dải màu mẫu đã cài sẵn để phân tích( Dải màu 1 và dải màu
2). Sau khi hoàn thiện so sánh và tìm kiếm, giao diện sẽ đưa ra kết quả của dài
màu cuối cùng tương ứng với các màu mà đề tài cần đạt được.
3.2. Xác định sản phẩm theo màu sắc bằng xử lí ảnh
Bước 1: Xác định vật mẫu
Đặt sản phẩm tại điểm xử lý trong khu vực nhận diện, thiết lập ánh sáng
chuẩn với trong quá trình hoạt động.
Bước 2: Đọc hình dạng và tiến hành tách.
Sau khi đặt vật tại vị trí trong khung của camera. Tại phần giao diện của
phần mềm sẽ có phần debug. Sau khi click vào đó màn hình hiển thị sẽ đưa ra 2
màn nhận diện màu của vật.
Hình 3. 3. Bảng chỉnh sửa không gian màu HSV 32
Điều chỉnh các thanh MinH, MinS, MinV và MaxH, MaxS, MaxV để bôi
đen đi viền. Đến khi nào trong khung ảnh chỉ còn là hình dạng của vật nhiều
nhất và đúng nhất ít bị dính tô đen.
Sau đó lấy các thông số H, S, V của Min và Max thay vào chương trình
Hình 3. 4. Các giá trị lọc màu
Điều chỉnh các thanh MinH, MinS, MinV và MaxH, MaxS, MaxV để bôi
đen đi viền. Đến khi nào trong khung ảnh chỉ còn là hình dạng của vật nhiều
nhất và đúng nhất ít bị dính tô đen.
Giá trị màu lọc được của màu vàng lần lượt là : minH_Yellow = 0 ;
minS_Yellow = 228; minV_Yellow = 230; maxH_Yellow = 26; maxS_Yellow = 255; maxV_Yellow = 255.
Hình 3. 5. Lấy mẫu quả quýt vàng
Giá trị lọc màu của màu xanh lần lượt là : minH_Green = 0; minS_Green
= 191; minV_Green = 156; maxH_Green = 46; maxS_Green = 208; maxV_Green = 255.
Hình 3. 6. Lấy mẫu quả quýt xanh
Sau khi lọc được các giá trị màu ta tiến hành gộp min max để lấy trung bình.
Hình 3. 7. Gộp giá trị màu lọc được
Nhân ảnh mặt nạ với ảnh đầu vào để được ảnh tách lấy sản phẩm.
Hình 3. 8. Nhân ảnh mặt nạ với ảnh gốc
Bước 3: Tạo đường bao nhận diện ảnh.
Sau khi đã nhân mặt nạ ảnh với ảnh gốc ban đầu, tiếp theo ta tiến hành vẽ
đường bao để nhận diện qua camera.
Viền x có giá trị x(500,1300).
Viền y có giá trị y(400,850). 34
Hình 3. 9. Chọn đường bao cho quả
Hình 3. 10. Kết quả của đường bao trên camera
Hình 3. 11. Tìm kiếm đường nét xanh
Điểm ảnh của quả màu xanh sẽ được tính từ dải màu 1 tính từ 300px đến 500px.
Hình 3. 12. Tìm kiếm đường nét vàng
Điểm ảnh của quả vàng sẽ được tính từ dải màu 2 300 đến 400px. Bước 4 : Xử lí ảnh
Sau khi nhận diện được điểm ảnh của quả quýt là màu gì. Hệ thống sẽ
tiến hành phân loại màu sắc.
Hình 3. 13. Xử lí giá trị nhận được
Với từng giá trị màu tương ứng 1,2,3 là đỏ, xanh, vàng.
3.3. Kết quả và thử nghiệm
Kết nối nguồn điện với hệ thống. Kết nối các thiết bị điều khiển với
laptop. Sau khi nối đầy đủ các thiết bị với nhau tiến hành test kết nối hệ thống qua các phần mềm.
Khi tất cả thông báo đã kết nối thành công thì ta bắt đầu tiến hành chạy mô hình.
Bảng 1. Bảng phân loại màu sắc theo dải đo màu Mã thập ST Màu sắc thành Khoảng đo của dải Màu sắc chính phân T phần màu (px) R, G, B 1 Vôi xanh 420 – 440 50,205,50 2 Vôi 440 – 460 0,255,0 3 Màu xanh Rừng xanh 460 – 480 34,139,34 4 Màu xanh lá 480 – 500 0,128,0 5 Xanh vàng 400 – 420 154,205,50 6 Màu vàng 300 – 350 255,255,0 Màu vàng 7 Vàng 350 – 400 255,215,0 36
Bảng 2. Bảng kết quả chạy thử nghiệm và đánh giá Kết quả và đánh giá Số lần Nội dung thử Dải màu Dải màu STT thử nghiệm 1(Màu xanh) 2(Màu vàng) Kết quả nghiệm (px) (px) Chạy thực Chạy thử 445 384 nghiệm trong nghiệm mô điều kiện ánh hình 3 lần 1 3 447 397 sáng phòng đều cho ra kín bình kết quả 431 380 thường chính xác Chạy thực Chạy thử nghiệm mô 328 377 nghiệm 3 hình trong lần đều cho điều kiện 302 354 ra kết quả 2 3 phòng kín vàng chính không có ánh xác. Còn sáng 365 347 quả xanh sai Chạy thực Chạy thử 411 341 nghiệm mô nghiệm mô hình trong hình 3 lần 3 3 420 355 điều kiện ánh đều cho ra sáng ngoài kết quả 416 347 trời chính xác Chạy thực
Phân loại quả vẫn chính 4 3 nghiệm 402 mô
xác khi để quả trong điều hình với quả kiện ánh sáng bình 410 quýt to hơn
thường. Giác hút vẫn có quả quýt đang
thể hút được vật. Tuy được lấy làm
nhiên chỉ đối với vật có mẫu 406 kích thước nằm trong đường bao.
Kết luận chung : Để mô hình có thể hoạt động ổn định, camera nhận diện
và xử lí quả quýt chính xác nhất phải đủ điều kiện ánh sáng bình thường trong
phòng kín để có thể hoạt động chuẩn xác nhất. Dải màu xanh và vàng rất đa
dạng nhưng trong quá trình thử nghiệm chúng em chỉ tiến hành chạy được một số dải trên đây.
- Hình ảnh chạy thử nghiệm :
Hình 3. 14. Kết quả chạy thử nghiệm quả quýt xanh trong phòng có ánh sáng
Hình 3. 15. Kết quả chạy thử nghiệm quả quýt vàng trong phòng có ánh sáng 38
Hình 3. 16. Kết quả chạy thử nghiệm quả quýt xanh trong phòng không có ánh sáng
Hình 3. 17. Kết quả chạy thử nghiệm quả quýt vàng trong phòng không có ánh sáng
Hình 3. 18. Kết quả chạy thử nghiệm quả quýt xanh ngoài trời
Hình 3. 19. Kết quả chạy thử nghiệm quả quýt vàng ngoài trời
Hình 3. 20. Kết quả chạy thử nghiệm với quả quýt xanh to hơn
3.4. Đánh giá và thảo luận
3.4.1. Đánh giá
Nhìn chung hệ thống đáp ứng được những yêu cầu ban đầu của đề tài đặt
ra, sản phẩm có một số ưu nhược điểm như sau:
Các cảm biến hồng ngoại hoạt động tốt.
Thuật toán điều khiển chạy đúng theo yêu cầu đặt ra.
Độ nhạy của hệ thống tốt, ngay lập tức thực hiện các lệnh khi có tín hiệu đầu vào.
Làm việc ổn định, đạt đầy đủ các yêu cầu đề ra.
Camera nhận diện và đưa ra kết quả chính xác. Ưu điểm :
Thiết kế nhỏ gọn phù hợp với yêu cầu của đề tài.
Hệ thống điều khiển hoàn toàn tự động.
Tốc độ xử lý ổn định. 40
Đơn giản trong thao tác, vận hành, sửa chữa, bảo dưỡng.
Khả năng phân loại khá chính xác.
3.4.2. Thảo luận
Xây dựng kết cấu cơ khí, mạch điều khiển, động cơ hoàn thiện và gắn liền với thực tế.
Tăng tốc độ xử lý nhằm tăng năng suất của hệ thống.
Ứng dụng công nghệ IoT cho phép điều khiển, giám sát từ xa.
Tăng đối tượng xử lí.
Có thể đưa vào xử lí được nhiều dải màu hơn nữa.
Qua chương 3, em đã hoàn thiện các thiết kế phần cứng, phần mềm và tiến
hành chế tạo mô hình, đã tiến hành thực hiện thử nghiệm và đánh giá hoạt động
của hệ thống, hoàn thành đề tài theo đúng tiến độ đề ra.
KẾT LUẬN VÀ KIẾN NGHỊ 1. Kết luận
Sau một thời gian nghiên cứu, tìm hiểu và được sự hướng dẫn nhiệt tình
của TS.Ngô Trí Dương đề tài : “Ứng dụng công nghệ xử lí ảnh trong phân loại
quả quýt” của em đã hoàn thành. Qua quá trình nghiên cứu và tìm hiểu em đã biết thêm được về:
Trang bị thêm kiến thức về phân loại sản phẩm theo hình dạng, ứng dụng
của xử lý ảnh trong bài toán phân loại sản phẩm.
Tìm hiểu được về PLC và cách lập trình PLC trong một ứng dụng thực tế.
Biết được cách sử dụng các thiết bị trong một đề tài phân loại sản phẩm.
Những kết quả đạt được :
Đã hoàn thành đồ án đúng thời gian quy định và mục đích đặt ra.
Mô hình làm việc ổn định trong các điều kiện ánh sáng khác nhau và sai số ở ngưỡng cho phép.
Ứng dụng thành công công nghệ xử lí ảnh vào mô hình phân loại quả quýt
Tốc độ vận hành và xử lí ổn định.
Những mặt còn tồn tại :
Thiết bị mua trên thị trường không được chuẩn nên tín hiệu nhiều lúc không chính xác.
Trong quá trình chạy thực nghiệm mô hình camera đôi khi bị nhận tín hiệu màu nhầm, lệch.
Từ đề tài này cho thấy việc áp dụng công nghệ cao vào nông nghiệp tại
nước ta không còn là quá xa nữa mà ngay bây giờ đã và đang thực hiện, nghiên
cứu áp dụng vào thực tế góp phần phát triển và đưa nền nông nghiệp Việt Nam
tiến gần hơn tới nền nông nghiệp 4.0.
2. Kiến nghị
Qua chương 3, em đã hoàn thiện các thiết kế phần cứng, phần mềm và
tiến hành chế tạo mô hình, đã tiến hành thực hiện thử nghiệm và đánh giá hoạt
động của hệ thống, hoàn thành đề tài theo đúng tiến độ đề ra. 42
Trong khoảng thời gian thực hiện đề tài có một số nội dung em chưa thể
tối ưu do thời gian và kinh phí, kiến thức hạn hẹp, có thể được bổ sung :
Khả năng hút vật có thể chính xác và điều kiện nâng cao hơn về khoảng cách và kích thước.
Thiết kế vận dụng với nhiều đối tượng vật mẫu khác nhiều hơn, đa dạng
về màu sắc cũng như khả năng nhận dạng chính xác vật.
Ứng dụng xử lí ảnh nhận diện quả còn có sai lệch cần được nghiên cứu
chính xác và thiết lập chuẩn xác.
Khả năng nhận diện không chỉ dừng lại ở màu sắc của quả quýt mà có thể
áp dụng với nhiều loạt vật, nhiều loại quả trong đời sống hàng ngày.
Em rất mong quý thầy cô sẽ tạo điều kiện và hướng cho các bạn sinh viên
khoá sau tiếp tục phát triển hơn nữa cho đề tài này.
TÀI LIỆU THAM KHẢO
[1] https://timvieckythuat.com/tong-quat-nhung-kien-thuc-co-ban-ve-ky-thuat- tu-dong-hoa-1426.html/
[2] Bộ môn Công nghệ chế tạo máy; Cơ sở Công nghệ chế tạo máy; NXB KH-KT; Hà Nội 2008.
[3] https://visualcpp.net/visual-studio-la-gi-gioi-thieu-phan-mem-visual- studio/
[4] https://blogdankythuat.com/tong-quan-phan-mem-gx-works-2-lap-trinh- plc/
[5] GS. TSKH. Nguyễn Văn Khang; Sổ Tay Cơ Điện Tử ; NXB Giáo dục Việt Nam; Năm 2020.
[6] Nguyễn Ngọc Phương, Nguyễn Trường Thịnh; Hệ thống điều khiển tự
động khí nén; NXB Khoa học và Kỹ thuật.
[7] https://www.rapidtables.org/vi/web/color/RGB_Color.html
[8] https://doc.edu.vn/tai-lieu/bai-giang-tong-quan-ve-he-thong-xu-ly-anh-va-
cac-van-de-trong-xu-ly-anh-54734/ 44 PHỤ LỤC Chương trình using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.IO.Ports; using Emgu.CV; using Emgu.CV.Structure; using Emgu.CV.Util; using System.Linq; using System.Threading; using Emgu.CV.UI; using AForge.Video;
using AForge.Video.DirectShow; using Emgu.CV.CvEnum; using ActUtlTypeLib; namespace EmguCV {
public partial class Form1 : Form {
private FilterInfoCollection cameras;
private VideoCaptureDevice cam; public static Bitmap bitmap; public static Image imgRgb; public static Image imgGray; public static Image imgMask;
public static Image imgMask_red;
public static Image imgMask_green;
public static Image imgMask_yellow;
public static Image imgMask_final; public static Image imgHsv;
public static Image imgHsv_red;
public static Image imgHsv_green;
public static Image imgHsv_yellow; int r = 0; int g = 0; int y = 0; // các giá trị lọc màu public int maxH_red = 50; public int maxS_red = 90; public int maxV_red = 255; public int maxH_yellow = 26; public int maxS_yellow = 255; public int maxV_yellow = 255; public int maxH_green = 46; 46 public int maxS_green = 208; public int maxV_green = 255; public int minH_red = 0; public int minS_red = 15; public int minV_red = 200; public int minH_yellow = 0; public int minS_yellow = 228; public int minV_yellow = 230; public int minH_green = 0; public int minS_green = 191; public int minV_green = 156;
// biến tính toán vị trí public double td_x; public double td_y; public double mmpx_x = 5.5; public double mmpx_y = 6.35; int sl1, sl2, sl3; public Form1() { InitializeComponent(); cameras = new
FilterInfoCollection(FilterCategory.VideoInputDevice);
foreach (FilterInfo info in cameras) { cbb_cam.Items.Add(info.Name); } }
public ActUtlType plc = new ActUtlType();
private void btn_start_Click(object sender, EventArgs e) { try {
if (cam != null && cam.IsRunning) { cam.Stop(); } cam = new
VideoCaptureDevice(cameras[cbb_cam.SelectedIndex].MonikerString); cam.NewFrame += cam_NewFrame; cam.Start(); timer1.Enabled = true; } catch { } }
void cam_NewFrame(object sender, NewFrameEventArgs eventArgs) {
bitmap = (Bitmap)eventArgs.Frame.Clone(); //ptb_1.Image = bitmap; }
private void btn_stop_Click(object sender, EventArgs e) { 48
if (cam != null && cam.IsRunning) { cam.Stop();
PictureBox ptb = new PictureBox();
ptb.BackColor = Color.LightGray; ptb_1.Image = ptb.Image; timer1.Enabled = false; } }
private void btn_debug_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); }
private void btn_test_Click(object sender, EventArgs e) { }
private void distance(Rectangle rect) { int xtox = 140; int ytoy = 200;
int center_x = rect.X + rect.Width / 2;
int center_y = rect.Y + rect.Height / 2; int x1, y1;
td_x = xtox - Convert.ToInt32(center_x / mmpx_x);
td_y = ytoy - Convert.ToInt32((1080 - center_y) / mmpx_y);
x1 = Convert.ToInt32(center_x / mmpx_x);
y1 = Convert.ToInt32((1080 - center_y) / mmpx_y); } private void process_img() { try { Mat hsv = new Mat(); Mat hier = new Mat(); Mat mask = new Mat(); Mat img_bt = new Mat(); Mat hsv_red = new Mat(); Mat hier_red = new Mat(); Mat mask_red = new Mat(); Mat img_bt_red = new Mat(); Mat hsv_green = new Mat(); Mat hier_green = new Mat(); Mat mask_green = new Mat(); Mat img_bt_green = new Mat(); Mat hsv_yellow = new Mat(); Mat hier_yellow = new Mat(); Mat mask_yellow = new Mat();
Mat img_bt_yellow = new Mat();
Emgu.CV.Util.VectorOfVectorOfPoint contours = new
Emgu.CV.Util.VectorOfVectorOfPoint(); 50
Emgu.CV.Util.VectorOfVectorOfPoint contours_red = new
Emgu.CV.Util.VectorOfVectorOfPoint();
Emgu.CV.Util.VectorOfVectorOfPoint contours_green = new
Emgu.CV.Util.VectorOfVectorOfPoint();
Emgu.CV.Util.VectorOfVectorOfPoint contours_yellow = new
Emgu.CV.Util.VectorOfVectorOfPoint(); imgRgb = new Image(bitmap); CvInvoke.CvtColor(imgRgb.Mat, hsv,
Emgu.CV.CvEnum.ColorConversion.Bgr2Hsv); // Hsv
imgHsv = new Image(hsv.Bitmap);
CvInvoke.InRange(imgHsv, new ScalarArray(new
MCvScalar(Form2.minH, Form2.minS, Form2.minV)), new ScalarArray(new
MCvScalar(Form2.maxH, Form2.maxS, Form2.maxV)), mask); imgHsv_red = new Imagebyte>(hsv.Bitmap);
CvInvoke.InRange(imgHsv_red, new ScalarArray(new MCvScalar(minH_red, minS_red, minV_red)), new ScalarArray(new
MCvScalar(maxH_red, maxS_red, maxV_red)), mask_red); imgHsv_green = new Imagebyte>(hsv.Bitmap);
CvInvoke.InRange(imgHsv_green, new ScalarArray(new
MCvScalar(minH_green, minS_green, minV_green)), new ScalarArray(new
MCvScalar(maxH_green, maxS_green, maxV_green)), mask_green); imgHsv_yellow = new Imagebyte>(hsv.Bitmap);
CvInvoke.InRange(imgHsv_yellow, new ScalarArray(new
MCvScalar(minH_yellow, minS_yellow, minV_yellow)), new ScalarArray(new
MCvScalar(maxH_yellow, maxS_yellow, maxV_yellow)), mask_yellow); // Mask
imgMask = new Image(mask.Bitmap); imgMask = imgMask.Dilate(5); imgMask = imgMask.Erode(5);
imgMask_red = new Image(mask_red.Bitmap);
imgMask_red = imgMask_red.Dilate(5);
imgMask_red = imgMask_red.Erode(5);
imgMask_green = new Image(mask_green.Bitmap);
imgMask_green = imgMask_green.Dilate(5);
imgMask_green = imgMask_green.Erode(5);
imgMask_yellow = new Image(mask_yellow.Bitmap);
imgMask_yellow = imgMask_yellow.Dilate(5);
imgMask_yellow = imgMask_yellow.Erode(5);
// Kết hợp mask vs ảnh gốc - chỉ làm vs mask để tăng tính hình dung
CvInvoke.Merge(new VectorOfMat(imgMask.Mat, imgMask.Mat, imgMask.Mat), mask);
CvInvoke.BitwiseAnd(mask, imgRgb.Mat, img_bt);
imgMask_final = new Image(img_bt.Bitmap);
// Vẽ đường bao khu vực nhận dạng x(500,1300), y(400,850)
Rectangle rec = new Rectangle(300, 100, 700, 500);
CvInvoke.Rectangle(imgRgb, rec, new MCvScalar(255, 0, 255), 4);
CvInvoke.FindContours(imgMask, contours, hier,
Emgu.CV.CvEnum.RetrType.External,
Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple); // Find contours red 52
CvInvoke.FindContours(imgMask_red, contours_red, hier_red,
Emgu.CV.CvEnum.RetrType.External,
Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple); // Find contours green
CvInvoke.FindContours(imgMask_green, contours_green, hier_green,
Emgu.CV.CvEnum.RetrType.External,
Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple);
for (int i = 0; i < contours_green.Size; i++) {
CircleF cir = CvInvoke.MinEnclosingCircle(contours_green[i]);
if (((int)cir.Radius) > 300 && ((int)cir.Radius) < 500) {
if ((int)cir.Center.X > 300 && (int)cir.Center.X < 1000 &&
(int)cir.Center.Y > 100 && (int)cir.Center.Y < 600) {
CvInvoke.Circle(imgRgb, Point.Round(cir.Center),
((int)cir.Radius), new MCvScalar(255, 0, 0), 4);
CvInvoke.PutText(imgRgb, "Green =" + ((int)cir.Radius) + "px", Point.Round(cir.Center), FontFace.HersheyDuplex, 2.0, new Bgr(Color.Red).MCvScalar);
plc.SetDevice("M1", Convert.ToInt16(1)); //sl2++;
//tb_sp2.Text = sl2.ToString(); } } } // Find contours yellow
CvInvoke.FindContours(imgMask_yellow, contours_yellow, hier_yellow,
Emgu.CV.CvEnum.RetrType.External,
Emgu.CV.CvEnum.ChainApproxMethod.ChainApproxSimple);
for (int i = 0; i < contours_yellow.Size; i++) {
CircleF cir = CvInvoke.MinEnclosingCircle(contours_yellow[i]);
if (((int)cir.Radius) > 300 && ((int)cir.Radius) < 400) {
if ((int)cir.Center.X > 300 && (int)cir.Center.X < 1000 &&
(int)cir.Center.Y > 100 && (int)cir.Center.Y < 600) {
CvInvoke.Circle(imgRgb, Point.Round(cir.Center),
((int)cir.Radius), new MCvScalar(255, 0, 0), 4);
CvInvoke.PutText(imgRgb, "yellow =" + ((int)cir.Radius) + "px", Point.Round(cir.Center), FontFace.HersheyDuplex, 2.0, new Bgr(Color.Red).MCvScalar);
plc.SetDevice("M3", Convert.ToInt16(1)); //sl3++;
//tb_sp3.Text = sl3.ToString(); } } } ptb_1.Image = imgRgb.Bitmap; } catch (Exception ex) {
//MessageBox.Show(ex.Message); } } 54
private void timer1_Tick(object sender, EventArgs e) { process_img(); }
private void Form1_Load(object sender, EventArgs e) { }
private void btn_test_connect_Click(object sender, EventArgs e) { }
private void btn_connect_Click(object sender, EventArgs e) {
plc.ActLogicalStationNumber = 1; plc.Open(); }
private void btn_disconnect_Click(object sender, EventArgs e) { plc.Close(); }
private void pl(int color)// 1 dỏ 2 xanh 3 vàng { if (color == 1) {
plc.SetDevice("M1", Convert.ToInt16(1)); sl1++; tb_sp1.Text = sl1.ToString();
plc.SetDevice("M2", Convert.ToInt16(0));
plc.SetDevice("M3", Convert.ToInt16(0)); } if (color == 2) {
plc.SetDevice("M2", Convert.ToInt16(1)); sl2++; tb_sp2.Text = sl2.ToString();
plc.SetDevice("M1", Convert.ToInt16(0));
plc.SetDevice("M3", Convert.ToInt16(0)); } if (color == 3) {
plc.SetDevice("M3", Convert.ToInt16(1)); sl3++; tb_sp3.Text = sl3.ToString();
plc.SetDevice("M2", Convert.ToInt16(0));
plc.SetDevice("M3", Convert.ToInt16(0)); } }
private void btn_rst_Click(object sender, EventArgs e) {
plc.SetDevice("M20", Convert.ToInt16(1));
plc.SetDevice("M20", Convert.ToInt16(0)); sl1 = 0;sl2 = 0; sl3 = 0; 56 tb_sp1.Text = sl1.ToString(); tb_sp2.Text = sl2.ToString(); tb_sp3.Text = sl3.ToString(); }
private void btn_start_plc_Click(object sender, EventArgs e) {
plc.SetDevice("y11", Convert.ToInt16(1));
plc.SetDevice("M1", Convert.ToInt16(0));
plc.SetDevice("M2", Convert.ToInt16(0));
plc.SetDevice("M3", Convert.ToInt16(0)); }
private void btn_stop_plc_Click(object sender, EventArgs e) {
plc.SetDevice("y11", Convert.ToInt16(0));
plc.SetDevice("M1", Convert.ToInt16(0));
plc.SetDevice("M2", Convert.ToInt16(0));
plc.SetDevice("M3", Convert.ToInt16(0)); }
private void timer2_Tick(object sender, EventArgs e) { try { int stt;
plc.GetDevice("y11", out stt); if (stt == 1) {
btn_start_plc.BackColor = Color.Green;
btn_stop_plc.BackColor = Color.Red; } else {
btn_start_plc.BackColor = Color.Red;
btn_stop_plc.BackColor = Color.Green; }
int sl1, sl2, sl3, t1, t2, t3;
//plc.GetDevice("d1",out sl1);
//tb_sp1.Text = sl1.ToString(); } catch(Exception ex) { } }
private void btn_sp1_Click(object sender, EventArgs e) {
plc.SetDevice("M1", Convert.ToInt16(1)); sl1++; tb_sp1.Text = sl1.ToString(); }
private void btn_sp2_Click(object sender, EventArgs e) {
plc.SetDevice("M2", Convert.ToInt16(1)); sl2++; tb_sp2.Text = sl2.ToString(); 58 }
private void btn_sp3_Click(object sender, EventArgs e) {
plc.SetDevice("M3", Convert.ToInt16(1)); sl3++; tb_sp3.Text = sl3.ToString(); } } }