1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh

108 8 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (13)
    • 1.1.1 Đặt vấn đề (13)
    • 1.2 Mục tiêu nghiên cứu (15)
    • 1.3 Phương pháp nghiên cứu (15)
    • 1.4 Giới hạn đề tài (16)
    • 1.5 Nội dung nghiên cứu (16)
    • 1.6 Bố cục báo cáo (17)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (19)
    • 2.1 Cấu trúc của Delta Robot (19)
      • 2.1.1 Động học thuận [1] (20)
      • 2.1.2 Động học nghịch [1] (25)
    • 2.2 Một số khái niệm về thiết bị được sử dụng (29)
      • 2.2.1 Động cơ bước Nema 17-SK4248 (29)
      • 2.2.2 Driver DM806 cho động cơ bước (32)
      • 2.2.3 RC Servo Motor MG996R (33)
      • 2.2.4 Relay (36)
      • 2.2.5 Webcam Genius (39)
      • 2.2.6 Adapter 3-24V 2A (40)
      • 2.2.7 Bộ nguồn tổ ong 5V-12V-24V (41)
      • 2.2.8 Động cơ bơm chân không 12VDC (43)
      • 2.2.9 Công tắc hành trình V-155-1C25 (44)
      • 2.2.10 Băng tải mini (45)
      • 2.2.11 Arduino MEGA 2560 R3 (45)
    • 2.3 Các khái niệm cơ bản trong xử lý ảnh (48)
      • 2.3.1 Ảnh số (48)
      • 2.3.2 Không gian màu BGR (48)
      • 2.3.3 Ảnh xám (49)
      • 2.3.4 Không gian màu HSV (51)
      • 2.3.5 Phát hiện cạnh Canny [3] (52)
      • 2.3.6 Ảnh nhị phân (55)
      • 2.3.7 Xoay ảnh (56)
      • 2.3.8 Template matching [2] (57)
    • 2.4 Những phần mềm được sử dụng (59)
      • 2.4.1 Giới thiệu về Arduino (59)
      • 2.4.2 Giới thiệu về Matlab (61)
      • 2.4.3 Giới thiệu về Solidwork (63)
      • 2.4.4 Giới thiệu về Pycharm (65)
      • 2.4.5 Giới thiệu về Qtdesigner (67)
    • 2.5 Chuẩn giao tiếp UART (68)
    • 2.6 Firebase (69)
    • 2.7 Những công cụ được sử dụng (71)
      • 2.7.1 Công cụ Kivy, KivyMD (71)
      • 2.7.2 Công cụ Simcape Mutilbody (73)
  • CHƯƠNG 3: THIẾT KẾ HỆ THỐNG (75)
    • 3.1 Yêu cầu hệ thống (75)
    • 3.2 Mô phỏng, kiểm nghiệm động học thuận nghịch sử dụng phần mềm MATLAB và SOLIDWORKS (75)
    • 3.3 Thiết kế Robot Delta (78)
      • 3.3.1 Khung Delta Robot (78)
      • 3.3.2 Đế cố định (79)
      • 3.3.3 Khớp Delta Robot (80)
      • 3.3.4 Sơ đồ nối dây (82)
    • 3.4 Thiết kế phần mềm (83)
      • 3.4.1 Phần mềm máy tính (83)
      • 3.4.2 Phần mềm Android (94)
  • CHƯƠNG 4: KẾT QUẢ (97)
    • 4.1 Phần cứng Robot (97)
    • 4.2 Phần mềm (98)
      • 4.2.1 Giao diện máy tính (98)
      • 4.2.2 App điện thoại (102)
    • 4.3 Chạy phân loại và kết quả (103)
  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (106)

Nội dung

Đề 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

Ngày đăng: 26/09/2024, 14:44

HÌNH ẢNH LIÊN QUAN

Hình 1.2: Robot Delta trong công việc phân loại sản phẩm - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 1.2 Robot Delta trong công việc phân loại sản phẩm (Trang 14)
Hình 1.3: Ứng dụng xử lý ảnh trong công nghiệp kiểm tra chai nứt - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 1.3 Ứng dụng xử lý ảnh trong công nghiệp kiểm tra chai nứt (Trang 15)
Hình 2.1: Delta Robot với 4 bậc tự do - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 2.1 Delta Robot với 4 bậc tự do (Trang 19)
Hình 2.3: Gán các góc cho khớp - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 2.3 Gán các góc cho khớp (Trang 20)
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ơ - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
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ơ (Trang 21)
Hình 2.7: Giao điểm của 3 mặt cầu - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 2.7 Giao điểm của 3 mặt cầu (Trang 23)
Hình 2.10: Xoay hệ trục tọa độ  Đây là công thức tính tọa độ điểm E x y z 0 ( 0 , 0 , 0 ) trên hệ trục tọa độ mới: - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 2.10 Xoay hệ trục tọa độ Đây là công thức tính tọa độ điểm E x y z 0 ( 0 , 0 , 0 ) trên hệ trục tọa độ mới: (Trang 28)
Hình 2.11: Step Motor NEMA17 và hộp giảm tốc  Thông số kỹ thuật chính: - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 2.11 Step Motor NEMA17 và hộp giảm tốc Thông số kỹ thuật chính: (Trang 29)
Hình 2.17: RC Servo MG996R - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 2.17 RC Servo MG996R (Trang 33)
Hình 2.19: Điều khiển Servo bằng độ rộng xung PWM - Đồ án tốt nghiệp: Hệ thống phân loại sản phẩm sử dụng robot delta kết hợp xử lý ảnh
Hình 2.19 Điều khiển Servo bằng độ rộng xung PWM (Trang 35)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w