Đề tài “Hệ thống phân loại sản phẩm sử dụng Robot Delta kết hợp xử lý ảnh” mà sinh viên đã lựa chọn cũng là một phần của xu hướng tự động hóa này.. ❖ Hệ thống cũng đã có một Robot Delt
TỔNG QUAN
Đặt vấn đề
Trong bối cảnh cách mạng công nghiệp lần thứ tư, sự hội tụ của các công nghệ tiên tiến như trí tuệ nhân tạo (AI), Internet vạn vật (IoT), và tự động hóa đang thúc đẩy sự chuyển đổi mạnh mẽ trong các ngành công nghiệp Cách mạng công nghiệp 4.0 không chỉ mang lại những thay đổi căn bản về kỹ thuật và quy trình sản xuất, mà còn định hình lại cấu trúc kinh tế và xã hội toàn cầu Các doanh nghiệp đang nỗ lực áp dụng các giải pháp công nghệ mới để nâng cao hiệu quả, giảm chi phí và cải thiện chất lượng sản phẩm, nhằm cạnh tranh trên thị trường ngày càng khốc liệt
Hình 1.1: Cách mạng công nghiệp qua các thời kỳ
Việc áp dụng Robot phân loại trong công nghiệp là một trong những ứng dụng nổi bật của tự động hóa trong cách mạng công nghiệp 4.0 Khi được tích hợp vào dây chuyền sản xuất, các Robot phân loại này có thể thực hiện nhiệm vụ một cách hiệu quả và chính xác Trong số các loại robot phân loại, Delta Robot đặc biệt nổi bật nhờ khả năng di chuyển nhanh chóng và chính xác Với thiết kế ba cánh tay robot nối với một điểm trung tâm, Delta Robot có thể thao tác với tốc độ cao và độ chính xác đáng kinh
2 ngạc, thích hợp cho các quy trình yêu cầu tốc độ và độ chính xác cao Điều này không chỉ giúp tăng năng suất mà còn giảm thiểu sai sót, nâng cao chất lượng sản phẩm đầu ra và giảm thiểu chi phí lao động thủ công.
Hình 1.2: Robot Delta trong công việc phân loại sản phẩm
Công nghệ xử lý ảnh cũng đóng vai trò quan trọng trong việc tối ưu hóa các quy trình sản xuất công nghiệp Bằng cách sử dụng các thuật toán phân tích hình ảnh tiên tiến, hệ thống xử lý ảnh có thể nhận diện và phân tích các đặc điểm của sản phẩm như hình dạng, màu sắc, kích thước và tình trạng bề mặt Điều này cho phép phát hiện sớm các sản phẩm bị lỗi, đảm bảo rằng chỉ những sản phẩm đạt tiêu chuẩn mới được đưa vào thị trường Việc ứng dụng xử lý ảnh không chỉ tăng cường khả năng kiểm soát chất
3 lượng mà còn giúp doanh nghiệp tối ưu hóa quy trình sản xuất, tiết kiệm chi phí và thời gian.
Hình 1.3: Ứng dụng xử lý ảnh trong công nghiệp kiểm tra chai nứt
Với những lợi ích rõ ràng mà robot và công nghệ xử lý ảnh mang lại, đề tài "Hệ thống phân loại sản phẩm sử dụng Robot Delta kết hợp xử lý ảnh" trở nên vô cùng thiết thực và có ý nghĩa Bằng việc kết hợp hai công nghệ này, sinh viên hy vọng sẽ tạo ra một hệ thống phân loại sản phẩm hiệu quả, tiết kiệm chi phí và thân thiện với người sử dụng, đồng thời mang lại giá trị thực tiễn cao cho doanh nghiệp và xã hội.
Mục tiêu nghiên cứu
Nghiên cứu, thiết kế và thi công thành công hệ thống phân loại và sắp xếp 2 sản phẩm gồm: Gói giấy Puplly và gói giấy Bless you Hệ thống gồm 2 phần là phần robot và phần xử lý ảnh.
Phương pháp nghiên cứu
Để phát triển hệ thống phân loại sản phẩm sử dụng Delta Robot kết hợp xử lý ảnh, sinh viên sẽ tiến hành nghiên cứu theo các bước sau đây:
1 Nghiên cứu lý thuyết và thu thập tài liệu
• Tìm hiểu về Delta Robot: Nghiên cứu cấu trúc, nguyên lý hoạt động và các ứng dụng thực tiễn của Delta Robot trong công nghiệp
• Công nghệ xử lý ảnh: Tìm hiểu các phương pháp và thuật toán xử lý ảnh phổ biến, bao gồm nhận diện hình dạng, màu sắc, kích thước,…
• Tích hợp hệ thống: Nghiên cứu các phương pháp tích hợp giữa Delta Robot và hệ thống xử lý ảnh để đảm bảo hoạt động đồng bộ và hiệu quả
2 Xây dựng mô hình và thử nghiệm
• Lắp ráp mô hình hệ thống: Kết hợp Delta Robot và hệ thống xử lý ảnh thành một mô hình hoạt động hoàn chỉnh
• Thử nghiệm ban đầu: Thực hiện các thử nghiệm ban đầu để kiểm tra khả năng hoạt động của hệ thống, bao gồm việc thu thập hình ảnh, phân tích và điều khiển robot
• Hiệu chỉnh hệ thống: Dựa trên kết quả thử nghiệm ban đầu, hiệu chỉnh và tối ưu hóa các tham số của hệ thống để đạt được hiệu quả hoạt động cao nhất
Bằng cách áp dụng các bước nghiên cứu này, chúng sinh viên kỳ vọng sẽ phát triển một hệ thống phân loại sản phẩm sử dụng Delta Robot kết hợp xử lý ảnh hiệu quả và đáng tin cậy, góp phần nâng cao năng suất và chất lượng sản phẩm trong quy trình sản xuất công nghiệp.
Giới hạn đề tài
Do kiến thức có hạn nên đề tài của sinh viên còn những giới hạn như sau:
• Hệ thống hoạt động vẫn chưa hoàn toàn ổn định
• Hệ thống chưa có lớp bảo mật.
Nội dung nghiên cứu
Nội dung nghiên cứu bao gồm:
• Nghiên cứu các thiết kế hệ thống trên thị trường
• Tham khảo các tài liệu có liên quan đến hệ thống đang nghiên cứu Nghiên cứu cách thức hoạt động của hệ thống
• Nghiên cứu tổng quan cấu trúc Delta robot, động học thuận, động học nghịch
• Nghiên cứu các tài liệu có liên quan đến việc điều khiển bằng Arduino
• Nghiên cứu và thiết kế phần mềm xử lý ảnh và phần mềm điều khiển Delta robot
• Thử nghiệm truyền dữ liệu từ Python sang Arduino
• Thử nghiệm việc truyền dữ liệu lên Database trên Firebase
• Thử nghiệm việc nhận dữ liệu trên App
• Hiệu chỉnh, sửa lỗi, tối ưu phần cứng và phần mềm.
Bố cục báo cáo
Chương này giới thiệu về đề tài sẽ nghiên cứu như đặt vấn đề để dẫn đến việc lựa chọn đề tài, các phương pháp nghiên cứu đề tài, mục tiêu nghiên cứu, nội dung nghiên cứu và giới hạn phạm vi của đề tài
Chương 2: Cơ sở lý thuyết
Phần cơ sở lý thuyết đề cập đến các nội dung lý thuyết gồm:
- Động học thuận và động học nghịch của Delta Robot
- Giới thiệu tổng quan về các thiết bị được sử dụng trong hệ thống
- Giới thiệu lý thuyết về các phương pháp xử lý ảnh được sử dụng trong hệ thống
- Giới thiệu lý thuyết về chuẩn giao tiếp giữa máy tính và vi xử lý
- Giới thiệu tổng quát về những phần mềm, dịch vụ cơ sở dữ liệu được sử dụng trong quá trình tạo ra hệ thống
Chương 3: Thiết kế hệ thống
Trình bày chi tiết về yêu cầu của hệ thống Mô phỏng phần cứng của Delta Robot Thiết kế phần cứng và sơ đồ nối dây của vi xử lý Thiết kế phần mềm
Chương này cho thấy các kết quả đạt được của đề tài Thực nghiệm độ chính xác của hệ thống khi thay đổi tốc độ băng chuyền Thực nghiệm độ chính xác của hệ thống với độ sáng khác nhau
Chương 5: Kết luận và hướng phát triển
Rút ra kết luận từ các kết quả đạt được của đề tài và đưa ra phương hướng có thể phát triển tiếp trong tương lai
CƠ SỞ LÝ THUYẾT
Cấu trúc của Delta Robot
Hình 2.1: Delta Robot với 4 bậc tự do
Robot Delta là một loại robot song song hay có nghĩa là điểm làm việc sẽ di chuyển song song không xoay, vẫn giữ nguyên hướng trong quá trình hoạt động Robot Delta bao gồm ba cánh tay phân bố theo tam giác đều và được nối với các khớp quay (thường là động cơ hoặc cơ cấu truyền động được nối với động cơ) ở một bệ cố định
Hình 2.2: Cấu trúc của Delta robot
8 Để thực hiện việc di chuyển điểm làm việc song song so với bệ cố định Các nhà thiết kế đã lợi dụng tính chất của hình bình hành khiến cho mặt phẳng chứa điểm làm việc luôn song song so với mặt phẳng cố định chứa các khớp xoay
Hình 2.3: Gán các góc cho khớp
Tính động học thuận của Robot Delta nghĩa là phải tính được vị trí điểm đầu cuối so với trục tọa độ gốc khi thay đổi góc điều khiển 1 , 2 , 3 Đầu tiên ta đặt trục tọa độ gốc ở tam giác lớn với mặt phẳng Oxy là mặt tam giác lớn và trụcOzsẽ vuông góc với mặt phẳng và hướng lên trên
Hình 2.4: Ảnh gán trục tọa độ Oxyz Tiếp theo ta đặt tên các điểm như trên hình sau:
Hình 2.5: Hình sau khi tịnh tiến các điểm J Với J 1 , J 2 , J 3 là các điểm J 1 , J 2 , J 3 được tịnh tiến lần lượt theo các vectơ
Kế tiếp ta sẽ tìm tọa độ của 3 điểm J 1 , J 2 , J 3 so với trục tọa độ gốc đã đặt ban đầu Ta sẽ chiếu các điểm lên mặt phẳng Oxy để tìm tọa độ các điểm theo trụcOxvà trục Oy
Từ (1),(2) và (3) ta sẽ tìm được tọa độ 3 điểmJ x y z 1( 1; ;1 1 ) , J 2( x y z 2; 2; 2 ) ,
0; cos ; sin cos cos 30 ; cos sin 30 ; sin cos cos 30 ; cos sin 30 ; sin f f f f f f f f
Từ tọa độ của J 1 , J 2 , J 3 ta sẽ tìm được tọa độ điểm đầu cuối bằng cách tìm điểm giao nhau giữa 3 hình cầu có tâm lần lượt là J 1 , J 2 , J 3 và cùng bán kính r e
Hình 2.7: Giao điểm của 3 mặt cầu
Ta có phương trình hình cầu tâm J i và bán kính r e là
Từ đó ta có hệ phương trình giao nhau của 3 mặt cầu là:
Ta đặt m i = + +x i 2 y i 2 z i 2 thì ta sẽ được:
2 2 2 e e e x y z yy zz r m x y z xx yy zz r m x y z xx yy zz r m
Từ (5),(6) và (7) ta biến đổi chúng thành:
Từ (8) và (9) ta rút ra cách tính x y, :
Thế (10) và (11) vào (5) ta được công thức tính z như sau:
Tiếp theo ta sẽ thế các giá trị x i , y i , z i từ (4) vào để tính toán Sau khi tính toán ta sẽ có hai tập nghiệm cho tọa độ của điểm đầu cuối E x y z 0 ( 0 , 0 , 0 )nhưng ta chỉ lấy tập nghiệm có nghiệm z nhỏ hơn Do trong thực tế sinh viên có gắn một thanh cố định đầu hút ở điểm đầu cuối nên điểm đầu cuối thực tế của sinh viên phải tính thêm độ dài thanh này vô E x y z 0 ( 0 , 0 , 0 − d hut )
Ngược với động học thuận, động học nghịch là từvị trí điểm đầu cuối mong muốn phải tính được góc 1 , 2 , 3 cần điều khiển Nếu ta muốn tìm được góc quay 1 khi đã biết tọa độ E x y z 0 ( 0 , 0 , 0 )thì ta phải tìm được tọa độ của điểm J 1
Do thiết kế của robot nên khi 1 thay đổi từ 0 0 đến 360 0 thì đoạn cánh tay F J 1 1 sẽ vẽ lên một đường tròn trên mặt phẳng Oyz với tâm là điểm F 1 và bán kính là r f Ta gọi điểm
E 1là hình chiếu của điểm E 1 trên mặt phẳng Oyz Vẽ một đường tròn có tâm là điểm E 1 và có bán kính là E J 1 1 , hai đường tròn cắt nhau tại hai điểm, ta chỉ cần lựa điểm J 1 có tọa độ z âm và ynhỏ nhất
Hình 2.8:Hình chiếu E’ của E trên mặt phẳng Oyz
Hình 2.9: Mặt phẳng Oyz Đầu tiên ta tìm tọa độ các điểm F 1 ( 0, y F 1 , z F 1 ), E 1 ( 0, y E 1 , z E 1 )và độ dài đoạn E J 1 1 sau đó bắt đầu tìm J 1 ( 0, y J 1 , z J 1 )từ điểm giao nhau giữa hai đường tròn
Từ đó ta có phương trình đường tròn có tâm là điểm E 1 và có bán kính E J 1 1 là:
Từ tọa độ của điểmF 1 (0,−f,0)ta có phương trình đường tròn với tâm là điểm F 1 và bán kính F J 1 1 là:
Từ (12) và (13) ta có hệ phương trình giao nhau giữa hai đường thẳng là:
Từ hệ phương trình (14) ta sẽ tìm được tọa độ của điểm J 1 ( 0, y J 1 , z J 1 ) Sau đó ta có thể tìm ra góc 1 cần quay từ công thức lượng giác sau:
Do Robot Delta có thiết kế vị trí các điểm F F 1 , 2 , F 3 theo dạng tam giác đều nên ta chỉ cần xoay trục tọa độ Oxyz theo trụcOzmột góc 120 0 ta sẽ được một trục tọa độ mới
Ox y z với điểm F 2 nằm trên trục Oy Tương tự như vậy khi ta xoay trục tọa độ Oxyz theo trụcOzmột góc -120 0 ta sẽ được một trục tọa độ mới Ox y z với điểm F 3 nằm trên trục Oy
Hình 2.10: Xoay hệ trục tọa độ Đây là công thức tính tọa độ điểmE x y z 0 ( 0, 0, 0 )trên hệ trục tọa độ mới:
Từ đó ta cứ áp dụng cách tính tương tự như khi ta tính góc 1 để tính hai góc 2 , 3 :
Một số khái niệm về thiết bị được sử dụng
2.2.1 Động cơ bước Nema 17-SK4248: Động cơ bước Nema 17-SK4248 là một trong những loại động cơ bước phổ biến trong họ NEMA 17 Chúng được sử dụng rộng rãi trong các ứng dụng yêu cầu độ chính xác cao và độ chịu tải lớn như máy in 3D, máy CNC, robot nhỏ và các thiết bị tự động hóa khác
Hình 2.11: Step Motor NEMA17 và hộp giảm tốc Thông số kỹ thuật chính:
• Tên sản phẩm: NEMA17-SK4248 (0.55Nm)
• Tỷ giảm tốc qua hộp số:57/11 (~5.18)
18 Hình 2.12: Thông số kích thước của NEMA17-SK4248
Hình 2.13: Sơ đồ dây của động cơ NEMA17-SK4248
Hình 2.14 Sơ đồ dây của động cơ NEMA17-SK4248 Động cơ bước là một loại động cơ điện được thiết kế để thực hiện các bước di chuyển chính xác Cấu tạo chung của động cơ bước bao gồm các thành phần chính sau:
• Rotor: Phần quay của động cơ, gồm một dãy lá nam châm vĩnh cửu được xếp chồng lên nhau, các lá nam châm này lại chia thành các cặp cực xếp đối xứng nhau
• Stator: Phần cố định của động cơ, bao gồm các cuộn dây được bố trí theo từng bước, tạo ra các cực từ để tương tác với nam châm trên rotor
Hình 2.15: Cấu tạo Step Motor
• Độ chính xác cao: Động cơ bước có thể điều khiển vị trí với độ chính xác cao, giúp đạt được các vị trí và chuyển động mong muốn mà không cần các cơ cấu giảm tốc phức tạp
• Điều khiển đơn giản hơn so với các loại động cơ khác
• Khả năng giữ vị trí khi mất điện: Do tính chất từ tính của nam châm vĩnh cửu hoặc từ tạo ra trên rotor và stator, động cơ bước có thể giữ vị trí hiện tại khi ngừng cấp điện
• Không đòi hỏi bảo dưỡng cao: Do không có phần tiếp xúc vật lý giữa rotor và stator, động cơ bước ít hao mòn và yêu cầu bảo dưỡng thấp
• Mất bước (Step Loss): Trong một số trường hợp, đặc biệt là khi vận tốc tăng lên hoặc khi tải quá nặng, Động cơ bước có thể trải qua hiện tượng mất bước
• Nhiệt độ cao: Đối với một số ứng dụng đòi hỏi vận tốc cao, Động cơ bước có thể sinh nhiệt độ cao, đòi hỏi các biện pháp làm mát để tránh quá nhiệt
• Hiệu suất điện năng thấp: Trong một số trường hợp, Động cơ bước có thể không có hiệu suất điện năng tốt như một số loại động cơ khác, đặc biệt là ở vận tốc cao
• Kích thước lớn và trọng lượng nặng: So với một số loại động cơ khác với cùng công suất, Động cơ bước thường có kích thước lớn và trọng lượng nặng hơn
2.2.2 Driver DM806 cho động cơ bước:
• Tên sản phẩm: Driver DM806
Hình 2.16: Bộ Driver điều khiển Step Motor DM806
• Tên sản phẩm: RC Servo MG996R
• Moment xoắn: 9.4kg/cm (với nguồn 4.8V), 11kg/cm (với nguồn 6V)
• Điện áp làm việc: 4.8VDC - 7.2VDC
Hình 2.18: Thông số kích thước của động cơ
MG996R là một RC servo có góc quay giới hạn trong khoảng 0 đến 180 độ, so với động cơ DC có thể quay liên tục mà không giới hạn và động cơ bước có thể quay theo từng bước nhỏ nhưng không giới hạn tổng số bước
MG996R sử dụng hệ thống điều khiển phản hồi (feedback) để đạt được và giữ vị trí chính xác, khác với động cơ DC, thường được điều khiển về tốc độ và hướng quay, và động cơ bước, điều khiển vị trí theo bước nhưng thường không có phản hồi vị trí
MG996R có thể duy trì vị trí chính xác mà không cần thêm cơ chế khóa, nhờ vào hệ thống điều khiển liên tục điều chỉnh vị trí rotor Trong khi đó, động cơ DC và động cơ bước cần các cơ chế bổ sung để giữ vị trí Động cơ RC Servo MG996R gồm 4 bộ phần:
• Động cơ DC nhỏ: MG996R sử dụng một động cơ DC nhỏ bên trong để cung cấp lực quay cho trục
• Hộp số: Được trang bị hộp số kim loại để tăng cường độ bền và truyền tải lực một cách hiệu quả, giúp nâng cao mô-men xoắn đầu ra
Các khái niệm cơ bản trong xử lý ảnh
2.3.1 Ảnh số: Ảnh số là một biểu diễn số hóa của thông tin hình ảnh, trong đó mỗi điểm ảnh được mô tả bằng giá trị số Mỗi giá trị này thường thể hiện cường độ màu sắc hoặc độ xám tại một vị trí cụ thể trong hình ảnh Ảnh số có thể được lưu trữ, xử lý và truyền tải thông qua các thiết bị số và máy tính Để hiểu rõ hơn, ảnh số thường được biểu diễn bằng một ma trận hai chiều, trong đó mỗi phần tử của ma trận đại diện cho giá trị pixel tương ứng trong ảnh Nếu ảnh là hình ảnh màu, thì có thể sử dụng nhiều ma trận tương ứng với các kênh màu khác nhau (ví dụ: đỏ, xanh lá cây, và xanh dương)
Mỗi pixel trong ảnh số có thể có giá trị từ một tập hợp giá trị cố định, phụ thuộc vào độ sâu bit của ảnh Ví dụ, trong ảnh đen trắng, mỗi pixel có thể có giá trị từ 0 (đen) đến 255 (trắng) trong một hình ảnh 8 bit Trong ảnh màu RGB, mỗi kênh màu thường có chiều sâu 8 bit, nên mỗi pixel cho mỗi kênh có thể có giá trị từ 0 đến 255 Ảnh số đóng vai trò quan trọng trong nhiều ứng dụng, từ xử lý ảnh kỹ thuật số và thị giác máy tính đến y học, công nghiệp, nghệ thuật và nhiều lĩnh vực khác
Không gian màu BGR (Blue, Green, Red) là một biểu diễn màu sắc thường được sử dụng trong xử lý ảnh và thị giác máy tính Trong không gian màu BGR, mỗi màu sắc được biểu diễn bằng một kênh riêng biệt trong hình ảnh, và thường được sắp xếp theo thứ tự B (Blue), G (Green), R (Red) Mỗi kênh này thể hiện cường độ màu tương ứng
• Kênh Blue (B): Đại diện cho màu xanh lam, với giá trị từ 0 đến 255, trong đó
0 là độ tương ứng với màu đen và 255 là màu xanh lam sáng nhất
• Kênh Green (G): Đại diện cho màu xanh lá cây, cũng với giá trị từ 0 đến 255, trong đó 0 là đen và 255 là màu xanh lá cây sáng nhất
• Kênh Red (R): Đại diện cho màu đỏ, cũng với giá trị từ 0 đến 255, trong đó 0 là đen và 255 là màu đỏ sáng nhất
Hình 2.30: Không gian màu RGB hoặc BGR
Một pixel trong không gian màu BGR có thể được biểu diễn bằng một vectơ (B, G, R), trong đó mỗi thành phần là một giá trị từ 0 đến 255 Ví dụ, một pixel màu đỏ tinh khiết có thể có giá trị (0, 0, 255), trong đó kênh Red có giá trị cao nhất, còn kênh Blue và Green có giá trị thấp nhất
Không gian màu BGR thường được sử dụng trong nhiều thư viện xử lý ảnh, chẳng hạn như OpenCV Tuy nhiên, trong môi trường trình duyệt web và nhiều ứng dụng thì không gian màu RGB (đảo ngược thứ tự so với BGR) thường được sử dụng nhiều hơn
2.3.3 Ảnh xám: Ảnh xám hay còn gọi là ảnh đơn sắc (monochromatic) là một loại hình ảnh được biểu diễn dưới dạng một mảng hai chiều các giá trị pixel, trong đó mỗi pixel có một giá trị đại diện cho cường độ độ xám tại vị trí tương ứng trên ảnh Ảnh xám không chứa thông tin về màu sắc, chỉ thể hiện độ tương phản của các vùng khác nhau trong ảnh
Mỗi giá trị pixel trong ảnh xám thường nằm trong khoảng từ 0 đến 255 trong hệ thống 8-bit, với giá trị 0 thường đại diện cho đen hoàn toàn và giá trị 255 đại diện cho trắng hoàn toàn Các giá trị pixel còn lại thể hiện các cấp độ xám khác nhau giữa đen và trắng
Công thức chuyển đổi từ ảnh BGR sang ảnh xám (của opencv):
• Y: Là ma trận xám sau khi tính toán
• R: Là ma trận màu đỏ trong không gian màu RGB
• G: Là ma trận màu xanh lá cây trong không gian màu RGB
• B: Là ma trận màu xanh dương trong không gian màu RGB
Hình 2.31: Mức xám của các ảnh theo số bit của pixel Ảnh xám được sử dụng trong nhiều ứng dụng và lĩnh vực khác nhau, chẳng hạn như xử lý ảnh y tế, phân tích hình ảnh, và nhiều loại thuật toán xử lý ảnh Trong một số trường hợp, chuyển đổi hình ảnh màu thành ảnh xám cũng giúp giảm bớt độ phức tạp
39 của dữ liệu và giảm dung lượng lưu trữ, đặc biệt là khi màu sắc không quan trọng cho mục đích cụ thể
Không gian màu HSV là một hệ thống mô tả màu sắc dựa trên ba thuộc tính chính: Hue (Màu sắc), Saturation (Độ bão hòa), và Value (Giá trị hoặc Độ sáng) Trong không gian màu HSV, mỗi màu sắc được biểu diễn bằng một điểm trong không gian ba chiều, với mỗi chiều tương ứng với một thuộc tính chính
Dưới đây là giải thích về ba thuộc tính chính trong không gian màu HSV:
• Hue (Màu sắc): Đây là thuộc tính mô tả màu sắc chính của một điểm trong không gian màu Hue được biểu diễn dưới dạng một giá trị góc trong đơn vị độ (thường từ 0 đến 360 độ), tương ứng với vòng màu
• Saturation (Độ bão hòa): Đây là thuộc tính mô tả mức độ mạnh mẽ của màu sắc Mức độ độ bão hòa càng cao, màu sắc càng "tinh khiết," trong khi độ bão hòa thấp có thể dẫn đến màu xám
• Value (Giá trị hoặc Độ sáng): Đây là thuộc tính mô tả độ sáng của màu sắc Một giá trị cao của độ sáng tạo ra màu sáng, trong khi giá trị thấp tạo ra màu tối
Hình 2.32: Các thành phần HUE, SATURATION và VALUE trong HSV
Khi sử dụng không gian màu HSV, người ta thường dễ dàng điều chỉnh màu sắc và độ sáng một cách tự nhiên và trực quan hơn so với một số không gian màu khác, như không gian màu RGB Điều này làm cho không gian màu HSV thường được ưa chuộng trong các ứng dụng liên quan đến chỉnh sửa hình ảnh và thiết kế đồ họa
Phát hiện cạnh Canny là một trong những kỹ thuật quan trọng và phổ biến nhất trong xử lý ảnh và thị giác máy tính Được phát triển bởi John F Canny vào năm 1986, phương pháp này đã trở thành một tiêu chuẩn để phát hiện các đường biên trong các hình ảnh vì tính hiệu quả và độ chính xác cao của nó
Các bước cơ bản của thuật toán phát hiện cạnh Canny bao gồm:
Bước 1: Làm mượt ảnh (Smoothing Image): Ta thường sử dụng bộ lọc Gaussian để giảm nhiễu và làm mịn ảnh
Phương trình cho một bộ lọc Gaussian có kích thước (2k+1) x (2k+1):
Hình 2.33: Hình ảnh được làm mờ với bộ lọc Gaussian
Bước 2: Tính cường độ và hướng của đạo hàm (Gradient Computation): Sử dụng các bộ lọc gradient (thường là Sobel) để tính cường độ và hướng của đạo hàm theo chiều x và chiều y cho mỗi pixel
Sobel filter (3x3) cho cả chiều ngang và chiều dọc:
Độ lớn và góc của Gradient được tính như sau:
Hình 2.34: Hình ảnh cường độ Gradient
Những phần mềm được sử dụng
Hình 2.39: Phần mềm Arduino IDE
Arduino IDE (Integrated Development Environment) là môi trường phát triển tích hợp được sử dụng rộng rãi trong việc lập trình và phát triển ứng dụng cho các bo mạch phần cứng Arduino Được thiết kế để đơn giản hóa quá trình lập trình cho cả người
48 mới bắt đầu và những nhà phát triển kỳ cựu, Arduino IDE cung cấp một giao diện trực quan và dễ sử dụng Đặc điểm chính của Arduino IDE:
• Giao diện người dùng đơn giản: Arduino IDE có giao diện thân thiện và đơn giản, phù hợp cho người mới bắt đầu với lập trình nhúng và điện tử cơ bản
• Hỗ trợ nhiều loại bo mạch Arduino: IDE hỗ trợ lập trình cho nhiều dòng bo mạch Arduino khác nhau như Arduino Uno, Arduino Mega, Arduino Nano, Arduino Due, và nhiều loại khác
• Công cụ lập trình và gỡ lỗi: IDE đi kèm với các công cụ hỗ trợ lập trình như trình soạn thảo mã, biên dịch và tải mã vào bo mạch Arduino một cách dễ dàng
Nó cũng cung cấp các công cụ gỡ lỗi đơn giản để giúp phát triển ứng dụng một cách hiệu quả
• Thư viện và mã nguồn mẫu: Arduino IDE đi kèm với một bộ thư viện lớn các chương trình mẫu (examples) và thư viện (libraries) đã được viết sẵn, giúp người dùng tiết kiệm thời gian và nỗ lực trong việc phát triển ứng dụng
• Đa nền tảng: IDE hỗ trợ trên nhiều hệ điều hành như Windows, macOS và Linux, giúp cho người dùng có thể lập trình trên nền tảng yêu thích của họ
• Cộng đồng lớn và hỗ trợ tài liệu: Arduino có một cộng đồng sáng tạo và năng động, cung cấp nhiều tài liệu học tập, hướng dẫn và hỗ trợ qua các diễn đàn và các nguồn tài nguyên trực tuyến khác
Arduino IDE là công cụ cơ bản và quan trọng trong việc thực hiện các dự án điện tử từ đơn giản đến phức tạp, từ các hệ thống nhúng đơn giản cho đến các ứng dụng IoT phức tạp Nó không chỉ dễ học và sử dụng mà còn rất mạnh mẽ trong việc giúp người dùng thực hiện các ý tưởng sáng tạo của mình trên nền tảng Arduino
MATLAB là một phần mềm và môi trường tính toán số mạnh mẽ được sử dụng rộng rãi trong nghiên cứu, phát triển và giải quyết các vấn đề trong khoa học và kỹ thuật Được phát triển bởi MathWorks, MATLAB cung cấp một bộ công cụ và môi trường làm việc toàn diện để phân tích dữ liệu, thực hiện tính toán số, visualize và mô phỏng, đồng thời hỗ trợ lập trình và phát triển ứng dụng Đặc điểm chính của MATLAB:
• Ngôn ngữ lập trình và môi trường tính toán: MATLAB cung cấp một ngôn ngữ lập trình dễ học và dễ sử dụng, với cú pháp rất giống với các phép toán toán học truyền thống Người dùng có thể thực hiện các phép tính số học, đại số tuyến tính, xử lý tín hiệu, thống kê, và nhiều tính toán khác một cách hiệu quả
• Hỗ trợ mạnh mẽ cho tính toán và phân tích dữ liệu: MATLAB cung cấp các công cụ và hàm tích hợp để thực hiện phân tích dữ liệu, biến đổi Fourier, xử lý hình ảnh và video, mô phỏng động lực học, và các phép toán phức tạp khác
• Visualize và mô phỏng: Môi trường MATLAB cho phép người dùng dễ dàng visualize dữ liệu và kết quả tính toán bằng cách sử dụng các biểu đồ, đồ thị và
50 hình ảnh Người dùng có thể tạo ra các biểu đồ 2D, 3D, biểu đồ phân phối, biểu đồ tuần hoàn, và nhiều loại biểu đồ khác để trực quan hóa dữ liệu
• Phát triển ứng dụng: MATLAB cho phép người dùng phát triển các ứng dụng phức tạp, bao gồm các ứng dụng đồ họa (GUI) sử dụng MATLAB App Designer, và triển khai chúng thành các ứng dụng độc lập hoặc các công cụ dòng lệnh
• Hỗ trợ đa nền tảng và tích hợp: MATLAB có sẵn trên nhiều hệ điều hành như Windows, macOS và Linux, đồng thời hỗ trợ tích hợp với các ngôn ngữ lập trình khác như C/C++, Python, và Java
Chuẩn giao tiếp UART
Chuẩn truyền thông UART (Universal Asynchronous Receiver/Transmitter) là một trong những chuẩn giao tiếp phổ biến nhất trong việc kết nối các thiết bị điện tử Nó cho phép truyền và nhận dữ liệu giữa các thiết bị mà không cần sự đồng bộ hóa đồng thời Điều này có nghĩa là dữ liệu có thể được truyền mà không cần một tín hiệu clock chung như trong các giao thức như SPI (Serial Peripheral Interface) hay I2C (Inter- Integrated Circuit)
UART sử dụng hai chân truyền thông cơ bản: một chân dành cho truyền (TX - Transmit) và một chân dành cho nhận (RX - Receive).Quá trình truyền dữ liệu thường sẽ diễn ra ở 3.3V hoặc 5V Dữ liệu được truyền qua TX ở tốc độ xác định, và được nhận qua RX ở cùng tốc độ đó.Tuy nhiên, UART không có tín hiệu clock nên tốc độ truyền dữ liệu cần phải được cấu hình trước giữa các thiết bị để đảm bảo đồng bộ hóa chính xác
Các tham số cấu hình UART bao gồm:
- Baud rate: Tốc độ truyền dữ liệu, đo bằng số lần chuyển đổi trạng thái của tín hiệu trên mỗi giây
- Data bits: Số lượng bit dữ liệu được truyền trong mỗi gói, thường là 7 hoặc 8 bit
- Parity bit: Một bit được thêm vào để kiểm tra lỗi trong quá trình truyền dữ liệu
- Stop bits: Số lượng bit dừng được sử dụng để chỉ ra kết thúc mỗi gói tin dữ liệu
UART thường được sử dụng trong các ứng dụng như kết nối vi điều khiển với các cảm biến, hiển thị LED, module GPS, module GSM, và nhiều thiết bị điện tử khác
Mặc dù UART có nhiều ưu điểm, nhưng cũng có hạn chế, như việc không hỗ trợ đa thiết bị trên cùng một đường truyền và yêu cầu thêm một dây tín hiệu đồng bộ hóa Tuy nhiên, nhờ tính đơn giản và phổ biến, UART vẫn là một trong những lựa chọn phổ biến nhất cho việc kết nối các thiết bị điện tử
Firebase
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây (cloud) do Google phát triển, giúp các lập trình viên xây dựng, quản lý và phát triển ứng dụng một cách nhanh chóng và hiệu quả Được ra mắt lần đầu vào năm 2011 bởi công ty Firebase Inc và sau đó được Google mua lại vào năm 2014, Firebase cung cấp một bộ công cụ và dịch vụ toàn diện giúp đơn giản hóa quy trình phát triển ứng dụng
Một số tính năng nổi bật của Firebase bao gồm:
• Realtime Database: Một cơ sở dữ liệu NoSQL cho phép đồng bộ dữ liệu giữa các client trong thời gian thực, giúp ứng dụng phản hồi nhanh chóng và hiệu quả
• Authentication: Hỗ trợ xác thực người dùng qua email, Google, Facebook, Twitter và nhiều phương thức khác, giúp tăng cường bảo mật và đơn giản hóa quá trình đăng nhập
• Cloud Firestore: Một cơ sở dữ liệu NoSQL linh hoạt và có thể mở rộng, với khả năng truy vấn mạnh mẽ và hỗ trợ đồng bộ dữ liệu theo thời gian thực
• Cloud Functions: Cho phép chạy mã backend trên nền tảng serverless của Google Cloud, giúp mở rộng các tính năng của ứng dụng mà không cần quản lý server
• Hosting: Dịch vụ lưu trữ tĩnh với khả năng phân phối nội dung nhanh chóng và an toàn qua mạng CDN toàn cầu Ưu điểm:
• Rất dễ tạo tài khoản và dự án, việc sử dụng cũng rất dễ tìm hiểu
• Hỗ trợ nhiều nền tảng bao gồm iOS, Android và web
• Miễn phí cho các dự án nhỏ
• Cho phép chạy mã backend mà không cần quản lý server, giúp mở rộng các tính năng của ứng dụng một cách linh hoạt
• Phụ thuộc vào Google:Sử dụng Firebase có nghĩa là bạn phụ thuộc vào cơ sở hạ tầng của Google, và nếu có sự cố từ phía Google, ứng dụng của bạn cũng sẽ bị ảnh hưởng
• Hạn chế tùy chỉnh: Một số dịch vụ của Firebase như Authentication hay Hosting có thể không đáp ứng đầy đủ các yêu cầu tùy chỉnh cao của một số dự án đặc thù
• Hạn chế truy vấn phức tạp: Firebase Realtime Database có hạn chế về khả năng truy vấn phức tạp, đòi hỏi lập trình viên phải thiết kế cấu trúc dữ liệu cẩn thận để tối ưu hóa hiệu suất
• Có một số dịch vụ của Firebase cần phải trả phí
Những công cụ được sử dụng
Kivy là một framework mã nguồn mở mạnh mẽ được sử dụng để phát triển ứng dụng đa nền tảng, cho phép lập trình viên xây dựng các ứng dụng với giao diện người dùng phong phú, hỗ trợ cảm ứng, và có thể chạy trên nhiều hệ điều hành khác nhau như Windows, macOS, Linux, iOS, và Android Với việc sử dụng ngôn ngữ lập trình Python, Kivy cung cấp một bộ công cụ và thư viện phong phú, giúp tạo ra các ứng dụng hiện đại và tương tác dễ dàng
KivyMD, viết tắt của Kivy Material Design, là một mở rộng của Kivy, mang đến các thành phần giao diện theo chuẩn Material Design của Google KivyMD giúp các nhà phát triển dễ dàng tạo ra các ứng dụng với giao diện đẹp mắt, trực quan và nhất quán, tuân thủ các nguyên tắc thiết kế Material Design Bằng cách kết hợp Kivy và KivyMD, lập trình viên có thể tận dụng sức mạnh của Kivy trong việc xây dựng ứng dụng đa nền tảng, đồng thời áp dụng các thành phần thiết kế hiện đại từ KivyMD để nâng cao trải nghiệm người dùng Ưu điểm:
• Đa nền tảng: Kivy hỗ trợ phát triển ứng dụng trên nhiều hệ điều hành khác nhau như Windows, macOS, Linux, iOS và Android
• Giao diện người dùng phong phú: Kivy cung cấp các widget mạnh mẽ và linh hoạt, giúp tạo ra các ứng dụng với giao diện người dùng đẹp và tương tác tốt
• Hỗ trợ cảm ứng: Kivy được thiết kế đặc biệt để hỗ trợ các thiết bị cảm ứng, làm cho nó trở nên lý tưởng cho phát triển ứng dụng di động
• Mã nguồn mở: Kivy là một dự án mã nguồn mở, cho phép cộng đồng đóng góp và cải tiến liên tục
• Python: Kivy sử dụng Python, một ngôn ngữ lập trình dễ học và phổ biến, giúp tăng năng suất và khả năng duy trì mã nguồn
• Material Design: KivyMD tuân thủ theo nguyên tắc Material Design của Google, giúp tạo ra các ứng dụng với giao diện đẹp và nhất quán
• Component sẵn có: KivyMD cung cấp nhiều component và widget theo chuẩn Material Design, giúp tiết kiệm thời gian và công sức trong việc thiết kế giao diện
• Dễ tích hợp: KivyMD dễ dàng tích hợp với Kivy, cho phép lập trình viên tận dụng cả hai công cụ để xây dựng ứng dụng hoàn chỉnh
• Hiệu năng: Ứng dụng phát triển bằng Kivy có thể không đạt hiệu năng cao như các ứng dụng viết bằng ngôn ngữ gốc như Java (Android) hay Swift (iOS)
• Học tập: Dù Python dễ học, nhưng việc làm quen với Kivy và các thành phần của nó có thể tốn thời gian
• Hỗ trợ giao diện gốc: Giao diện của Kivy không tuân theo các tiêu chuẩn giao diện gốc của hệ điều hành, có thể khiến ứng dụng trông không giống như ứng dụng gốc
• Hạn chế về tính năng: Dù cung cấp nhiều widget theo chuẩn Material Design, KivyMD có thể không đầy đủ như các thư viện UI khác
• Cộng đồng và tài liệu: So với các framework phổ biến khác, cộng đồng và tài liệu của KivyMD có thể không phong phú bằng, làm cho việc tìm kiếm hỗ trợ và giải pháp có thể gặp khó khăn
Tóm lại, Kivy và KivyMD là những công cụ mạnh mẽ cho phát triển ứng dụng đa nền tảng với Python, nhưng cũng có những hạn chế nhất định về hiệu năng và tính năng so với các giải pháp phát triển ứng dụng gốc
Simscape Multibody là một công cụ mạnh mẽ nằm trong bộ phần mềm MATLAB & Simulink, được thiết kế để hỗ trợ việc mô phỏng và phân tích các hệ thống cơ khí đa thân Công cụ này cho phép người dùng mô hình hóa các cấu trúc cơ học phức tạp với các liên kết động học và động lực học giữa các bộ phận một cách trực quan và chính xác
Với Simscape Multibody, bạn có thể xây dựng các mô hình 3D của các cơ cấu máy móc, robot, hệ thống treo xe cộ, và nhiều ứng dụng khác Công cụ này cung cấp một loạt các khối xây dựng cơ bản như khớp nối, khung cứng, lò xo, giảm chấn, và các lực tác động, giúp người dùng dễ dàng tạo ra các mô hình tùy chỉnh phù hợp với yêu cầu cụ thể
Một trong những điểm mạnh của Simscape Multibody là khả năng tích hợp chặt chẽ với các phần mềm CAD, cho phép nhập và xuất dữ liệu từ nhiều định dạng CAD phổ biến Điều này giúp kết nối liền mạch giữa thiết kế cơ khí và môi trường mô phỏng, giảm thời gian và công sức trong quá trình chuyển đổi dữ liệu
Simscape Multibody cũng cung cấp các công cụ phân tích mạnh mẽ để kiểm tra và tối ưu hóa thiết kế, bao gồm các phân tích động học, động lực học, và kiểm tra tính ổn định Bằng cách sử dụng công cụ này, các kỹ sư và nhà nghiên cứu có thể thực hiện
62 các phép tính mô phỏng chi tiết, đánh giá hiệu suất của hệ thống, và đưa ra các quyết định thiết kế chính xác hơn
Nhìn chung, Simscape Multibody là một giải pháp toàn diện cho việc mô hình hóa và mô phỏng các hệ thống cơ khí đa thân, giúp cải thiện hiệu suất thiết kế và rút ngắn thời gian phát triển sản phẩm
THIẾT KẾ HỆ THỐNG
Yêu cầu hệ thống
Hệ thống nhận dạng và phân loại bằng Delta Robot phải đảm bảo một số yêu cầu sau đây:
- Hệ thống phải nhận dạng chuẩn xác sản phẩm
- Hệ thống phải hoạt động ổn định trong vùng làm việc.
Mô phỏng, kiểm nghiệm động học thuận nghịch sử dụng phần mềm MATLAB và SOLIDWORKS
Qua các bài toán động học thuận nghịch ở chương 2 sinh viên đã tính toán được vị trí điểm đầu cuối khi thay đổi các góc khớp Và để kiểm nghiệm lại quá trình đó sinh viên sử dụng phần mềm MATLAB để mô phỏng lại hoạt động của Delta Robot, dựa vào việc quan sát trên giao diện qua việc mô phỏng để kết luận rằng việc tính toán động học thuận nghịch là chính xác
64 Hình 3.1: Khối mô phỏng robot Delta
65 Hình 3.2: Tổng quan các khối mô phỏng
Hình 3.3: Kết quả sau khi chạy mô phỏng
Thiết kế Robot Delta
Trong phần này ta sẽ thiết kế các linh kiện cần thiết để lắp ghép thành Robot Delta
Khung Delta Robot được làm từ các thanh nhôm định hình 2020 EU, được cố định các góc bằng ke góc vuông nhôm định hình 2020 EU
Hình 3.4: Nhôm định hình và ke góc vuông nhôm định hình
Thông số khung yêu cầu:
- Độ dày các thanh: 2cm
Phần đế cố định gồm 1 khung Mica được thiết kế bởi Solidwork, các đế cố định động cơ bước
Hình 3.6: Đế cố định Mica và đế cố định động cơ bước Thông số khung Mica yêu cầu:
Thông số đế cố định động cơ bước yêu cầu:
Phần khớp Delta Robot gồm 4 thành phần trong đó có 3 thành phần là được in 3D và thành phần còn lại.Thông số khớp thứ nhất yêu cầu độ dài từ tâm của khớp đến tâm của 2 thanh đỡ là 15cm, độ dày là 2cm, độ dài nhô ra của 2 thanh đỡ là 1.5cm
Thông số khớp thứ hai yêu cầu độ dài từ tâm của khớp đến tâm của thanh đỡ là 3.8cm
Thông số khớp thứ ba yêu cầu độ dài là 13.5cm
Thành phần cấu tạo của khớp thứ 4 gồm khớp cầu và thanh ren Yêu cầu độ dài từ tâm của 2 đầu khớp cầu là 37.3cm
Hình 3.10: Khớp cầu và thanh ren
Hình 3.12: Sơ đồ nối dây gggg Webcam và Arduino sẽ được nối với PC qua đường dẫn USB
Ta sẽ cấp nguồn 24V cho Driver DM806 Các chân EN-,PU-,DR- ta nối chung rồi nối vào chân GND của Arduino Các chân EN+,PU+,DR+ sẽ nối vào các chân điều khiển của Arduino Bộ chân A+,A-,B+,B- lần lượt nối vô các chân của step motor để cấp nguồn điều khiển cho step motor Ta sẽ gạt các chân trên Driver sao cho góc bước là 1.8 0 /bước và dòng đầu ra là 1.9A
Tiếp theo đến động cơ MG996R, ta sẽ cấp nguồn 5V vô 2 đầu trong đó đầu âm sẽ nối chung với chân GND của Arduino và chân tín hiệu sẽ được nối vô chân điều khiển của Arduino
Kế tiếp là công tắc hành trình, một đầu thường mở (NO) ta sẽ nối vào chân GND của arduino, đầu COM thì sẽ nối vào chân nhận tín hiệu của arduino
Cuối cùng ta sẽ nối các chân để điều khiển Relay cấp nguồn cho động cơ hút chân không với nguồn cấp là 12V.
Thiết kế phần mềm
Trong phần này sinh viên chia ra 2 phần là phần mềm máy tính và phần mềm điện thoại
Bắt đầu khởi động, chương trình sẽ lần lượt chạy các lệnh sau:
• Lấy thư viện và giao diện cần cho chương trình
• Lấy dữ liệu hình ảnh Template của 2 vật thể là gói giấy Bless You màu hồng và gói giấy Pupply màu xanh dương
• Tìm địa chỉ cổng webcam nếu không thấy thì tìm lại
• Tìm địa chỉ cổng kết nối Arduino nếu không thấy thì tìm lại
• Kiểm tra kết nối Internet nếu không có kết nối thì thử kết nối lại
• Tải dữ liệu từ firebase về và khởi tạo các biến với giá trị ban đầu
• Bật màn hình đăng nhập
72 Hình 3.13: Lưu đồ chương trình khi mới bắt đầu khởi động
Trong giao diện đăng nhập sẽ hoạt động như sau:
Khi nhấn nút đăng nhập chương trình sẽ kiểm tra xem đã nhập đủ hai ô tên đăng nhập và mật khẩu hay không, nếu không sẽ báo cần nhập đủ Chương trình cũng sẽ kiểm tra xem người dùng có nhập đúng hay không và sẽ yêu cầu nhập lại nếu sai Có nút thoát để thoát chương trình
Hình 3.14: Lưu đồ giao diện đăng nhập
Trong chương trình sinh viên sẽ sử dụng nhiều luồng (Thread) chạy song song với nhau để tăng tốc độ xử lý Ở đây sinh viên đang dùng 4 luồng:
• Luồng 1: Là luồng dùng để hiển thị giao diện, thực hiện các thao tác liên quan đến nút nhấn, bảng biểu,… đây cũng là luồng chính của chương trình
• Luồng 2: Là luồng dùng để thực hiện việc xử lý ảnh dùng để nhận dạng sản phẩm trên băng chuyền và chuyền lại dữ liệu đã xử lý (Loại sản phẩm, góc lệch của sản phẩm, vị trí của sản phẩm, thời gian xử lý) cho luồng chính để luồng chính có thể hiển thị và chuyền lại thông tin cho các luồng khác
• Luồng 3: Là luồng dùng để tính toán động học nghịch, thời gian truyền và truyền dữ liệu điều khiển cho Arduino
• Luồng 4: Là luồng đo tốc độ băng chuyền bằng xử lý ảnh luồng này sẽ chuyền dữ liệu tốc độ băng chuyền lại cho luồng chính
Trong giao diện chính của sinh viên sẽ có 2 chế độ là Auto và Manual Dưới đây là lưu đồ hoạt động của màn hình chính và 2 chế độ:
75 Hình 3.15: Lưu đồ giao diện chính
76 Hình 3.16: Lưu đồ chạy ở chế độ Auto
77 Hình 3.17: Lưu đồ chạy ở chế độ Manual
Dưới đây là lưu đồ chạy của các luồng và hàm con của chúng:
Hình 3.18: Lưu đồ chạy luồng Xử Lý Ảnh
79 Hình 3.19: Lưu đồ chạy hàm xử lý ảnh
Hình 3.20: Lưu đồ chạy hàm phát hiện màu hồng Để xử lý ảnh đo tốc độ băng chuyền sinh viên đã vẽ 1 hình tròn trên băng chuyền và đo thời gian giữa hai lần xử lý phát hiện hình tròn từ đó tính ra vận tốc Dùng hình tròn để dễ detect và khó bị nhầm với vật thể khác
Hình 3.21: Ảnh chấm tròn nhận diện tốc độ băng chuyền
81 Hình 3.22: Lưu đồ luồng Đo Tốc Độ
Hình 3.23: Lưu đồ luồng Điều Khiển
Khởi đầu ta kết nối để lấy dữ liệu từ Firebase, sau đó chạy 1 luồng (Thread) để cập nhật mỗi 1 giây Kế tiếp sẽ mở màn hình đăng nhập, khi nhập đúng tài khoản thì sẽ mở đến màn hình chính
83 Hình 3.24: Lưu đồ khởi đầu của app
Trong màn hình chính sinh viên có 1 thanh menu trên đầu màn hình có 2 nút nhấn, 1 nút Menu dùng để mở 1 list và 1 nút nhấn Logout
Hình 3.25: Lưu đồ Màn hình chính
KẾT QUẢ
Phần cứng Robot
Phần mềm
Hình 4.2: Màn hình đăng nhập
87 Hình 4.3: Giao diện Auto đang phân loại sản phẩm gói giấy Bless You
Hình 4.4: Giao diện Auto đang phân loại sản phẩm gói giấy Pulppy
88 Hình 4.5: Giao diện điều khiển tay
Hình 4.6: Giao diện cài đặt
89 Hình 4.7: Giao diện quản lý đăng nhập
Hình 4.8: Giao diện quản lý tài khoản nhân viên
Hình 4.9: Giao diện tạo tài khoản nhân viên
Hình 4.10: Giao diện tạo đăng nhập
4 Hình 4.11: Giao diện của App
Chạy phân loại và kết quả
Tốc độ băng chuyền 20.0mm/s:
V mm/s Số gói Pass Fail Tỉ lệ (%)
Bảng 4.1: Bảng kết quả khi tốc độ băng chuyền là 20mm/s
Tốc độ băng chuyền 19.0mm/s:
Vmm/s Số gói Pass Fail Tỉ lệ (%)
Bảng 4.2: Bảng kết quả khi tốc độ băng chuyền là 19mm/s Tốc độ băng chuyền 18.0mm/s:
Vmm/s Số gói Pass Fail Tỉ lệ (%)
Bảng 4.3: Bảng kết quả khi tốc độ băng chuyền là 18mm/s Tốc độ băng chuyền 17.0mm/s:
Vmm/s Số gói Pass Fail Tỉ lệ (%)
Bảng 4.4: Bảng kết quả khi tốc độ băng chuyền là 17mm/s
Tốc độ băng chuyền 16.0mm/s:
Vmm/s Số gói Pass Fail Tỉ lệ (%)
Bảng 4.5: Bảng kết quả khi tốc độ băng chuyền là 16mm/s
Tất cả đều chạy ở cùng 1 điều kiện ánh sáng giống nhau
Nhận xét: Khi tốc độ băng chuyền càng tăng thì khả năng nhận diện vật thể bị giảm do hiện tượng mờ chuyển động (motion blur) khiến ảnh bị mờ nặng