Hình 2 : Sơ đồ khối của hệ thống Hình 3: IR sensor LM393 Hình 4: Sơ đồ kết nối Arduino và cảm biến Hình 5: Webcam Hình 6: Sơ đồ kết nối Arduino, Motor Driver và động cơ DC Hình 7: Kích t
Mô tả hệ thống
Các thành phần trong hệ thống
Hệ thống phân loại sản phẩm gồm 3 thành phần chính:
Cơ cấu chấp hành là phần quan trọng trong hệ thống cơ điện tử Nó nhận lệnh điều khiển và tạo ra các thay đổi trong hệ vật lý bằng cách tạo lực, chuyển động hoặc nhiệt dòng chảy Cơ cấu chấp hành thường được kết hợp với nguồn năng lượng phụ trợ (điện, cơ) để chuyển đổi và biến đổi chuyển động Nó thường được đặt giữa thiết bị điều khiển và cảm biến và có thể là hệ thống dẫn động điện, thủy lực, khí nén hoặc các hệ thống khuếch đại điện tử
Cảm biến là thiết bị điện tử chuyển đổi tín hiệu vật lý thành tín hiệu điện Chúng được phân loại theo đại lượng cần đo (vị trí, gia tốc, nhiệt độ, dòng điện, ) và nguyên lý chuyển đổi (nhiệt điện, quang điện, quang đàn hồi, biến đổi hóa học, biến đổi sinh hóa, ) Cảm biến cũng được phân thành hai loại: cảm biến chủ động và cảm biến bị động Trong hệ thống phân loại sản phẩm theo màu sắc, cảm biến hình ảnh được sử dụng để phát hiện vật phẩm và dựa vào hình ảnh để xác định màu sắc của sản phẩm cần phân loại
Thiết bị điều khiển là thiết bị tạo ra tín hiệu điều khiển, nhằm tác động lên cơ cấu chấp hành để đạt được sự thay đổi mong muốn.
Các linh kiện được sử dụng trong bài tập lớn
Tên linh kiện Số lượng
Trên đây là phần tổng quan về ý tưởng cũng như sản phẩm của nhóm em thực hiện Các đầu mục sau đây sẽ làm rõ về sản phẩm cũng như các vấn đề xoay quanh hệ thống phân loại sản phẩm theo màu sắc.
Sơ đồ khối và thuyết minh các khâu
Thiết kế sơ đồ khối cho hệ thống
7 Để hệ thống có thể đáp ứng các yêu cầu về kĩ thuật cũng như những tiêu chuẩn được thầy đưa ra, nhóm tiến hành thiết kế sơ đồ khối của hệ thống như sau :
Hình 2 : Sơ đồ khối của hệ thống
Tổng quát về các khối
- Khối xử lí màu sắc: dựa trên thư viện Open CV xử lí tín hiệu từ camera để phân loại màu sắc của sản phẩm
- Khối cảm biến: cảm biến ở băng tải có nhiệm vụ phát hiện sản phẩm đã đến vị trí camera và để điều khiển băng trượt giúp sản phẩm được phân loại đúng vị trí
- Khối băng chuyền: có động cơ DC để vận hành, tải sản phẩm và chuyển đến các khu vực xử lí phân loại
- Khối cánh tay gắp: sử dụng servo để điều khiển cánh tay và thực hiện nhiệm vụ ở các hướng khác nhau
- Khối xử lí trung tâm.: sử dụng Raspberry Pi và Arduino Uno để xử lí tín hiệu và giao tiếp với các khối khác
- Khối nguồn: bao gồm 2 loại nguồn đảm bảo cung cấp đủ điện năng cho Raspberry Pi và Arduino Uno từ đó cung cấp nguồn cho cả hệ thống.
Tính toán và thiết kế các khối cho hệ thống
Khối cảm biến và xử lí màu sắc
❖ Nhận biết có sản phẩm đến
Sử dụng cảm biến hổng ngoại IR sensor để nhận biết có sản phẩm đến vị trí cần đọc màu sắc Trên thị trường hiện nay, có nhiều loại cảm biến hồng ngoại có khả năng ứng dụng cao trong việc phát hiện vật cản như SHARP,DS30C4,R2N1 nhưng với việc sử dụng Arduino Uno, để có thể dễ dàng giao tiếp cũng như thẩm mỹ, nhóm đã quyết định chọn IR sensor LM393
Sơ đồ kết nối với Arduino:
Hình 4: Sơ đồ kết nối Arduino và cảm biến
Các chân GND, VCC và chân OUT của cảm biến lần lượt được kết nối với chân GND, 5V và chân Pin2 trên Arduino Uno Chân Pin2 sẽ nhận tín hiệu từ cảm biến Khi có vật cản đi qua, cảm biến sẽ phát hiện và chuyển từ trạng thái High (mức 1)
9 sang trạng thái Low (mức 0) ở chân OUT đồng thời hệ thống sẽ cho phép đọc tín hiệu từ camera để thực hiện quy trình xử lí màu sắc của sản phẩm
❖ Nhận biết màu sắc sản phẩm
Sử dụng Webcam Logitech Brio 4K Stream Edition giao tiếp với Raspberry Pi để lấy tín hiệu hình ảnh Trong phần này, khi sử dụng Raspberry Pi cho phần xử lí ảnh
Webcam sẽ giao tiếp với Raspberry Pi qua giao thức UVC ( Usb video class) Bằng giao thức này, việc truyền dữ liệu video với tốc độ cao sẽ đáp ứng tốt nhu cầu xử lí ảnh của hệ thống trong thời gian thực, từ đó đảm bảo tính chính xác cho quá trình xử lí ảnh từ đó nâng cao hiệu quả hoạt động của hệ thống
❖ Quá trình xử lí màu sắc
Sử dụng thư viện OpenCV để xử lí ảnh trong hệ thống Quá trình xử lí màu sắc bao gồm chuyển đổi không gian màu từ RGB sang HSV, xác định giá trị ngưỡng màu cho các màu sắc đỏ, vàng và xanh, tạo binary masks và tìm contours để phát hiện màu sắc của sản phẩm Việc ứng dụng các hàm trong thư viện OpenCV là rất quan trọng và hiệu quả cho bài toán phân loại màu sắc này
File code chi tiết phần xử lí ảnh và phân loại màu sắc:
Khối băng chuyền
Khối băng chuyền chuyển sản phẩm đến vị trí webcam để phân loại màu sắc
Sử dụng một động cơ DC 2 trục với tỉ số truyền 1:48 và mức điện áp từ 3-12V để vận
10 hành băng chuyền Arduino điều khiển động cơ bằng Motor shield và cung cấp nguồn đủ để tránh hiện tượng low voltage
Sau khi nhận tín hiệu từ Raspberry Pi, Arduino kích hoạt động cơ để băng chuyền hoạt động Băng chuyền dừng lại khi cảm biến hồng ngoại phát hiện sản phẩm đã đến vị trí webcam để phân loại màu Khi quá trình phân loại màu kết thúc, băng chuyền tiếp tục đưa sản phẩm về cuối và đẩy xuống băng trượt để phân loại vào vị trí tương ứng với màu đã phân loại
Hình 6: Sơ đồ kết nối Arduino, Motor Driver và động cơ DC
Khối cánh tay robot
Cánh tay robot có nhiệm vụ di chuyển sản phẩm từ vị trí tập chung ban đầu vào băng chuyền, được điều khiển
- Tầm với xa nhất: 34.94cm
- Tầm với gần nhất: 9.65cm
- Tầm với tới điểm thấp nhất: -18.1cm (trục z)
- Tầm với tới điểm cao nhất: 14.6cm (trục z )
- Phạm vi hoạt động quanh trục đế: 0-180 độ
Hình 7: Kích thước cánh tay robot
❖ Nguyên lý hoạt động của cánh tay
Robot sẽ thực hiện 2 công việc chính: Gắp – thả, di chuyển đến điểm đích và sắp xếp các hộp lên băng tải
Trình tự làm việc của robot như sau:
1 Bộ phận cảm biến xác nhận có vật xuất hiện
2 Cánh tay di chuyển đến địa điểm gắp
3 Thực hiện gắp kẹp vật
4 Di chuyển đến vị trí thả vật trên băng tải
5 Mở tay kẹp (Nhả vật)
❖ Phân tích động học thuận robot
Bài toán động học nghịch là xác định các góc quay của biến khớp khi biết được hướng và vị trí của dụng cụ so với hệ tọa độ gốc Để giải bài toán trên, ta sử dụng quy tắc Denavit Hartenberg (DH)
Bộ thông số DH bao gồm 4 thông số:
- 𝜃i: góc quay quanh trục z để cho xi-1 trùng xi
- αi : góc quay quanh trục x (trục z đổi hướng)
Ma trận DH được biểu diễn như sau:
Bước 1: Xác định các hệ toạ độ
Hình 8: Sơ đồ động học robot 4 bậc tự do
Bước 2: Lập bảng D-H: i di 𝜃i ai 𝛼i
Bước 3: Lập ma trận DH
Bước 4: Tính toán ma trận
Bước 5: Rút ra bộ hệ số đầu cuối của robot
Tính được vị trí của Px, Py, Pz như sau:
Px = cos1(L2*cos2 +L3*cos23+L4*cos234)
Py = sin1(L2*cos2 +L3*cos23+L4*cos234)
Hình 9: Cánh tay robot để gắp sản phẩm
Khối xử lí trung tâm
Khối xử lí trung tâm sẽ thực hiện lấy tín hiệu từ khối cảm biến màu sắc, các cảm biến vật cản để thực hiện xử lí quá trình phân loại sản phẩm, điều khiển động cơ
DC của băng tải cũng như các servo của cánh tay Trong hệ thống trên, khối xử lí trung tâm được chia làm 3 phần bao gồm 2 mạch Arduino Uno và 1 máy tính nhúng Raspberry Pi
Máy tính nhúng Raspberry Pi đóng vai trò là bộ xử lý chính của hệ thống Nó xử lý hình ảnh từ webcam và gửi tín hiệu để điều khiển các thiết bị khác Để đảm bảo Raspberry Pi luôn có đủ điện năng, một nguồn điện chất lượng tốt được sử dụng, cung cấp dòng 2,5A với điện áp vào từ 110-220V và điện áp ra là 5.0-5.2V
Trong hệ thống này, Raspberry Pi và Arduino Uno được kết nối và truyền tín hiệu qua cổng USB, giúp đơn giản hóa giao tiếp và tối ưu hiệu suất Một cổng USB khác của Raspberry Pi được sử dụng để kết nối với webcam để lấy tín hiệu hình ảnh và xử lý nó Để tối ưu hóa các thiết bị trong hệ thống, cổng Ethernet được sử dụng để kết nối dây LAN với máy tính xách tay, sau đó dữ liệu được truyền qua SSH và giao diện màn hình của Raspberry Pi được chia sẻ lên laptop bằng VNC Việc này cho phép điều khiển Raspberry Pi mà không cần màn hình riêng Hệ thống và giao diện điều khiển giám sát trên web server có thể được thao tác trên laptop
Hình 10: Giao diện điều khiển Raspberry Pi từ laptop bằng VNC
Raspberry Pi không chỉ nhận tín hiệu từ camera và xử lý ảnh, mà còn xử lý giao diện điều khiển của hệ thống Nhóm đã xây dựng một chương trình giao diện trên web server để giám sát camera, bật/tắt hệ thống và điều chỉnh tốc độ băng tải Sử dụng Flask Streaming, hình ảnh từ webcam được phát trực tuyến trên trình duyệt web Với hiệu suất và khả năng xử lý của Raspberry Pi, quá trình thu thập dữ liệu từ camera, xử lý màu sắc và truyền video thời gian thực trở nên hiệu quả, với độ trễ thấp, giúp hệ thống hoạt động mượt mà
❖ Arduino Uno điều khiển băng truyền và cảm biến
Với việc raspberry Pi đã đảm bảo khâu xử lí ảnh cũng như chạy phần giao diện điều khiển, nhóm em đã quyết định sử dụng Arduino Uno cùng Motor Shield phục vụ cho việc điều khiển băng truyền và băng trượt cùng các cảm biến để phát hiện vật trên băng tải cũng như servo của băng trượt
Hình 11: Arduino và Shield L293D điều khiển băng tải
Khi có sản phẩm trên băng truyền, Arduino giao tiếp với các cảm biến hồng ngoại IR sensor để nhận biết sự có mặt của sản phẩm và vị trí của chúng Khi sản phẩm đi qua cảm biến chuyển, tín hiệu sẽ chuyển từ cao sang thấp, khi đó hệ thống băng tải sẽ tạm dừng hay động cơ DC sẽ chỉnh tốc độ về 0 để thực hiện quá trình xử
17 lí màu sắc Sau khi hoàn thành quá trình phân loại, động cơ DC tiếp tục quay đưa sản phẩm đi qua cảm biến IR thứ 2 có chức năng đếm sản phẩm và khi đến cuối sẽ điều khiển cho servo băng trượt đưa sản phẩm vào đúng vị trí
Tốc độ của động cơ được điều khiển bởi Arduino bằng cách điều khiển điện áp đầu vào của động cơ với phương pháp phổ biến nhất để làm điều đó là sử dụng tín hiệu PWM Đối với Arduino, hàm được tích hợp sẵn để tạo ra tín hiệu PWM là
“analogWrite() ”, với các chân PWM là 3, 5, 6, 9, 10 và 11 Việc điều khiển tốc độ được thực hiện trực tiếp tại giao diện điều khiển trên web
Hình 12: Các chu kì làm việc với mức điện áp khác nhau
Khối nguồn
Với việc sử dụng cả Raspberry Pi và Arduino Uno cho các khâu riêng biệt trong hệ thống với nhiều linh kiện, khối nguồn yêu cầu phải cung cấp đủ điện năng cho toàn hệ thống vận hành Để tối đa công suất cho động cơ DC, nhóm em đã quyết định sử dụng thêm 1 bộ nguồn riêng cho băng tải Từ đó khối nguồn sẽ bao gồm 2 bộ nguồn chính, 1 cho Raspberry Pi và 1 cho động cơ DC 2 bộ nguồn đều có khả năng chuyển đổi dòng điện đầu vào là dòng 110-220V AC sang 2-5V DC cần dùng để cung cấp cho hệ thống
Hình 13: Nguồn AC/DC ADAPTER 5V-2A Đối với khối xử lí màu sắc ta có các dòng của các linh kiện chính như sau
Bảng liệt kê các linh kiện sử dụng dòng chính
Tên linh kiện Số lượng Dòng hoạt động
Tổng dòng của các linh kiện trong bảng trên là mA Nên nhóm em sử dụng nguồn T6716DV với nguồn 5.2V/2.5A làm nguồn chính cho hệ thống
Mô hình hóa và mô phỏng vận tốc của động cơ DC bằng các phương trình toán
Giới thiệu về động cơ DC
Động cơ DC (điện xoay chiều) là một thành phần quan trọng trong công nghệ điện và có ứng dụng rộng rãi trong nhiều lĩnh vực
Hình 14: Cấu tạo động cơ DC
Cấu tạo của động cơ DC
Rotor là phần quay của động cơ DC, và nó thường được gắn chặt với trục quay Rotor có thể được làm từ một nam châm vĩnh cửu hoặc từ một loạt các lá thép chồng lên nhau Trên rotor, có một số lá thép hoặc cánh quạt giúp tăng cường quá trình làm lạnh và giảm sự mất nhiệt
Stator tạo ra trường từ sử dụng nam châm hoặc cuộn dây dẫn Nhiệm vụ của stator là tạo ra trường từ tác động lên rotor, tạo điều kiện để rotor quay
Stator thường bao gồm các cuộn dây dẫn đặt xung quanh rotor hoặc trong các khe của stator Khi dòng điện chảy qua các cuộn dây này, nó tạo ra một trường từ tác động lên rotor
❖ Cảm Biến (Brushes) Động cơ DC có thể đi kèm với các cảm biến, còn được gọi là “brushes”, giúp đảo chiều dòng điện thông qua rotor Brushes thường được làm từ vật liệu dẫn điện như than chì, và chúng được đặt ở gần cuối rotor
Ngoài ra còn 1 số thành phần khác như : nam châm giúp tạo ra từ trường, khung vỏ và trục cấu thành phần cứng cho động cơ DC
Nguyên lý hoạt động
Động cơ DC hoạt động dựa trên tương tác giữa từ trường và dòng điện Dòng điện đi qua cuộn dây trong phần stator tạo ra một trường từ Nếu rotor có nam châm, trường từ tác động lên rotor và làm nó quay Quá trình này tiếp tục cho đến khi dòng điện ngừng đi qua cuộn dây Tốc độ quay có thể được điều chỉnh bằng cách điều chỉnh dòng điện vào cuộn dây Ngoài ra, động cơ DC có thể đi kèm cảm biến để đảo chiều dòng điện qua rotor và duy trì quá trình quay.
Mô hình hóa động cơ DC
Động cơ DC được sử dụng rất nhiều trong các hệ thống hiện nay, đối với hệ thống của nhóm, động cơ DC được sử dụng để làm băng chuyền hoạt động đưa sản phẩm di chuyển Chính vì vậy việc thiết lập 1 mô hình hóa cho động cơ DC là vô cùng cần thiết
Có 2 loại động cơ DC là loại động cơ DC kích từ riêng và loại kích từ bằng nam châm vĩnh cửu Trong bài tập lớn, nhóm em đã sử dụng loại thứ 2 Trước khi mô hình hóa, ta chia động cơ thành 2 phần “ điện” và “cơ”
Hình 15: Khối động cơ DC
Rm : Điện trở động cơ (ohm) (nhà sản xuất cung cấp)
Lm : hệ số điện kháng (H) (nhà sản xuất cung cấp)
Kb : hằng số phản điện (V/(rad/sec)) (nhà sản xuất cung cấp)
Kt : hằng số momen (Nm/A) (nhà sản xuất cung cấp)
Jm : momen quán tính của rôto (kgm 2 ) (nhà sản xuất cung cấp)
Cm : hệ số ma sát nhớt (Nm/(rad/sec)) (phải tính toán)
Tf : momen ma sát (Nm) (nhà sản xuất cung cấp)
m: mô men xoắn nội (Nm)
𝜃m : góc xoay trục động cơ (rad) Để có được phương trình toán học của động cơ, ta phân tích bằng 2 phương trình của phần điện và phần cơ
Theo định luật bảo toàn năng lượng :
Từ 2 phương trình của phần điện và cơ, ta có phép biến đổi Laplace có dạng sau :
Ta giả thiết 𝑇 𝑓 là hằng số và 𝑇 𝑓 = 𝐾 𝑓 𝑠𝑔𝑛(Ω)
−1 Ω < 0 Nếu không biểu diễn theo dạng Laplace, ta có thể biểu diễn phương trình toán học theo thời gian của động cơ (có tính đến tải và ma sát)
𝑑𝑡 + 𝐶 𝑚 × 𝜔(𝑡) = 𝑇 𝑓 (𝑡) + 𝜏(𝑡) với 𝑇 𝑓 là tác động của ma sát và 𝜏 là tải ( trong hệ thống của nhóm là phần tải của băng truyền )
Từ đó ta có khối động cơ DC sau khi phân tích thành hàm truyền được miêu tả ở hình sau :
Hình 15: Khối động cơ DC sau khi phân tích thành hàm truyền
Nếu coi quá trình động cơ quay không có ma sát và tải trong quá trình động cơ quay, ta có hàm truyền: Ω(s)
(𝐿 𝑚 × 𝐽𝑚)𝑠 2 + (𝑅 𝑚 × 𝐽𝑚 + 𝐶 𝑚 𝑥𝐿 𝑚 )𝑠 + (𝑅 𝑚 𝐶 𝑚 + 𝐾 𝑏 ) Hàm truyền quan hệ điện áp và vận tốc của động cơ DC bỏ qua ma sát và tải
Mô tả hàm truyền trên:
Hình 16: Sơ đồ hàm truyền động cơ DC
Do có 1 số hạn chế về mặt thông số, nên khi mô phỏng nhóm em sẽ bỏ qua 1 số tham số là 𝐶 𝑚 𝑣à 𝑇 𝑓 , coi hệ số ma sát và tác động của ma sát là không đáng kể
Hàm truyền được viết trong Simulink –Matlab :
Thông số đầu vào của động cơ DC :
Hình 17: Các thông số đầu vào của động cơ DC khi thực hiện trên MATLAB
Các thông số trên còn nhiều hạn chế, bởi động cơ DC được sử dụng là DC 5V mini, nên 1 số thông số do nhà sản xuất cung cấp rất khó để tìm kiếm và không chính xác Từ đó kết quả mô phỏng không giống với kết quả mong muốn Đây cũng sẽ là mục tiêu cả nhóm đặt ra trong tương lai để có thể mô phỏng 1 cách chính xác nhất:
Hình 18: Mô phỏng hàm truyền của động cơ với các giá trị đầu vào trên
Trong quá trình xử lí hàm truyền cũng như các tham số, do còn nhiều hạn chế về mặt dữ liệu nên quá trình mô phỏng cho kết quả chưa thật sự chuẩn xác nhưng cũng đã mô phỏng được vận tốc quay của động cơ motor DC Đây sẽ là một trong những lưu ý cần xử lí trong tương lai
Bên cạnh đó, chúng em thực hiện mô phỏng đo tốc độ động cơ DC quay thông qua phần mềm Proteus Dưới đây, là sơ đồ mạch:
Hình 19: Sơ đồ mạch đo tốc độ động cơ DC
26 Đây là bảng giá trị đo tốc quay của động cơ trong 6s đầu :
Khối điều khiển của hệ thống
Tổng quan về khối điều khiển trong hệ thống cơ điện tử
Trong một hệ thống cơ điện tử, khối điều khiển chịu trách nhiệm xử lí tín hiệu được gửi từ các thiết bị thu dữ liệu, điều khiển và quản lí các hoạt động của các thành phần cơ điện tử từ đó tạo tương tác giữa các phần tử cơ và điện tử để đáp ứng yêu cầu cụ thể của hệ thống
Hình 20: Các khối điều khiển của hệ thống
Các thành phần chính trong khối điều khiển
Các thành phần chính trong khối điều khiển của 1 hệ thống cơ điện tử bao gồm: vi xử lý, bộ nhớ, các phần mềm điều khiển, giao diện kết nối
- Vi xử lí là bộ não của khối điều khiển đảm nhận nhiệm vụ xử lí các tác vụ tính toán, lưu trữ dữ liệu và điều khiển các hoạt động của hệ thống Đây như 1 cây cầu giúp kết nối giữa phần cơ và điện tử trong hệ thống Cụ thể trong Raspberry Pi 3B+ sử dụng trong hệ thống, vi xử lý được sử dụng là Broadcom BCM2837B0, quad-core A53 (ARMv8) 64-bit SoC @1.4GHz là bản nâng cấp đáng kể so với phiên bản trước đó về hiệu năng cũng như khả năng quản lí nhiệt
Hình 21: Cấu tạo Raspberry Pi
- Bộ nhớ của khối điều khiển dùng để lưu trữ dữ liệu như các thông số, cấu hình , và dữ liệu tạm thời cũng như các thông số được thu về từ các thiết bị thu tín hiệu như cảm biến
- Giao diện kết nối là phần giao tiếp giữa các thiết bị trong hệ thống với khối điều khiển Bao gồm các giao thức như UART,SPI, I2C, Ethernet hay USB hoặc các giao thức không dây như Wifi hay Bluetooth Nhờ các phương thức này, khối điều khiển có thể truyền thông tin và nhận lại từ các thiết bị khác trong hệ thống
- Các phần mềm điều khiển của khối điều khiển được lập trình để điều khiển và quản lí các hoạt động cũng như tùy chỉnh các tham số của hệ thống tùy theo yêu cầu sử dụng Các phần mềm được viết bằng các ngôn ngữ như C, C++ hay Python.
Khối điều khiển trong hệ thống của bài tập lớn
Đối với sản phẩm hệ thống dây chuyền phân loại sản phẩm, một trong những khâu quan trọng quyết định đến thành công của hệ thống là xử lí ảnh bao gồm xử lí tín hiệu thu về từ camera và trả về giá trị có độ chính xác tuyệt đối giúp phân loại đúng màu sắc từ đó phân loại được sản phẩm Điều đó yêu cầu bộ xử lí phải đủ mạnh mẽ để xử lí tín hiệu cũng như giao tiếp với các thiết bị khác trong hệ thống một cách tối ưu nhất đồng thời giá thành cũng yêu cầu tối ưu và dễ tiếp cận Đối với các yêu cầu trên, nhóm em đã quyết định sử dụng Raspberry Pi làm bộ não của khối điều khiển
Với hiệu suất và khả năng tính toán vượt trội so với các sản phẩm thông dụng khác như các loại Arduino, với bộ xử lí ARM, Pi có thể thực hiện các nhiệm vụ phức tạp trong hệ thông cũng như điều khiển hay xử lí dữ liệu phức tạp Ngoài ra với việc có thể sử dụng thẻ nhớ để lưu trữ hệ điều hành và dữ liệu, việc lưu trữ các thông tin cũng như tạo data sheet cho dự án trở lên dễ dàng hơn
Không chỉ thế với mục đính sử dụng trình duyệt web để điều khiển hệ thống, với đặc tính được coi như 1 máy tính thu nhỏ của mình, Raspberry Pi sẽ tối ưu quá trình thực hiện khi chạy trực tiếp phần web điều khiển trong môi trường của Raspberry Pi Pi sẽ nhận lệnh điều khiển từ người dùng thông qua yêu cầu HTTP sau đó gửi các tín hiệu và lệnh điều khiển tương ứng đến các thành phần khác trong hệ thống bao gồm Arduino Uno Đối với ArduinoUno, Pi giao tiếp với Arduino Uno qua kết nối chuỗi serial connection Điều này cho phép nó gửi lệnh start/stop để điều khiển băng chuyền Ngoài ra 2 thiết bị cũng gửi và nhận thông tin qua kết nối chuỗi này
Trong hệ thống, Pi cũng hoạt động như một máy chủ truyền phát, truyền hình hình ảnh từ camera đến trình duyệt web, từ đó vừa có thể điều khiển vừa có thể giám sát hệ thống trong suốt quá trình hoạt động
Trong bài, Pi được xử dụng với chức năng chính để thực hiện chương trình xử lí màu sắc giúp phân loại sản phẩm Ứng dụng thư viện Open CV với các dải màu, để phân loại màu được lấy từ khung hình camera Sau đó Pi gửi kết quả cho Arduino để thực hiện phân loại theo kết quả màu vừa thu được.
So sánh các giá trị RGB qua các lần phân loại
Trong bất kì hệ thống nào với công việc đo lường, sai số là điều không thể tránh khỏi Mỗi hệ thống mỗi trường hợp riêng đều sẽ có những sai số khác nhau dù ít hay nhiều cũng sẽ ảnh hưởng đến độ chính xác của hệ thống
Trong quá trình thực hiện xây dựng mô hình băng tải phân loại sản phẩm, sai số lớn nhất mà nhóm em gặp phải chính là sai số trong việc nhận biết các giá trị màu để từ đó có thể phân loại chính xác
Với 3 màu được dán lên sản phẩm để thực hiện phân loại là đỏ (red), xanh dương (blue) và xanh lá (green) được thực hiện phân loại bằng các ngưỡng màu đo được từ web cam, tuy nhiên qua các lần đo, nhóm em nhận thấy kết quả chưa thật sự chính xác Các kết quả này sẽ thể hiện trong bảng được lấy dữ liệu từ 10 lần đo giá
30 trị RGB tại tâm của khung hình (sử dụng thuộc tính shape của thư viện Open CV để tìm tọa độ x,y của center point):
Hình 22: Giao diện điều khiển (web) và phần hiển thị giá trị màu (terminal) của hệ thống
Mỗi lần sản phẩm dừng lại để xử lí sẽ là 1 lần chụp ảnh, ảnh sẽ được lưu và xác định tâm sau đó sẽ sử dụng Extension CollorZilla của Google để xác định giá trị RGB tại vị trí tâm của ảnh:
Hình 23: Extension CollorZilla của Google dùng để đọc giá trị RGB
Bảng giá trị RGB của sản phẩm:
Lần đo RED BLUE Green
Có thể thấy sự khác nhau trong các lần đo của cùng 1 màu bởi sự ảnh hưởng của ánh sáng môi trường Đồng thời bằng trực quan cũng như các giá trị đo được nhận thấy màu Blue là màu ít chịu ảnh hưởng nhất từ điều này trong khi 2 màu còn lại có sự khác nhau nhiều trong mỗi lần đo
Qua bảng trên có thể thấy tại cùng một điểm nhưng với mỗi lần đo, giá trị của các lần sẽ khác nhau và có độ sai lệch không hề nhỏ Trong thí nghiệm đo thực tế điều này không ảnh hưởng quá nhiều đến hệ thống bởi tính chất đơn giản chỉ xác định 3 màu cơ bản với độ rộng của dải màu tương đối lớn Tuy nhiên nếu yêu cầu cao hơn về độ chính xác thì chắc chắn với kết quả này, hệ thống sẽ chưa đáp ứng được
Với mô hình này, việc phân loại chính xác phụ thuộc nhiều vào các yếu tố bên ngoài như nền đặt hệ thống hay ánh sáng tự nhiên hay yếu tố từ phần cứng của hệ thống như chất lượng hình ảnh từ camera hoặc thuật toán xử lí màu sắc Để tăng độ chính xác cần đảm bảo các yếu tố trên có được trong điều kiện tốt nhất
Thuật toán điều khiển
Thuật toán phân đoạn ngưỡng ảnh
Trong project này, bọn em đã sử dụng thuật toán phân đoạn ngưỡng ảnh
Ngưỡng (Threshold): Trong xử lý ảnh, ngưỡng là một giá trị dùng để phân chia các điểm ảnh thành hai miền
• Miền thứ nhất là tập hợp các điểm ảnh có giá trị nhỏ hơn giá trị ngưỡng (lower)
• Miền thứ hai là tập hợp các các điểm ảnh có giá trị lớn hơn hoặc bằng giá trị ngưỡng (upper)
Hình 24:Hình ảnh các ngưỡng của 3 màu sử dụng trong bài tập lớn
Hình 25: Lưu đồ thuật toán xử lý trên raspberry pi
Giải thích lưu đồ thuật toán:
• Khai báo các thư viện cần sử dụng trong lập trình, thiết lập các lệnh cần thiết cho camera, gán các giá trị lower và upper HSV của 3 màu
• Sau đó chờ tín hiệu ra lệnh từ kit Arduino Uno truyền qua, nếu đúng thì xử lý tiếp chương trình Ngược lại là sai thì tiếp tục chờ
• Khi có tín hiệu ra lệnh, Camera sẽ tiến hành chụp ảnh và xử lý chuyển đổi ảnh màu chụp được từ RGB sang HSV
• Tiến hành so sánh ảnh HSV vừa chuyển đổi với các giá trị HSV mặc định ở trên
• Nếu giá trị nằm trong khoảng Upper_red và Lower_red thì sẽ tiếp hành gửi dữ liệu màu đỏ sang kit Arduino Uno
• Nếu giá trị nằm trong khoảng Upper_Green và Lower_Green thì sẽ tiếp hành gửi dữ liệu màu green sang kit Arduino Uno
• Nếu giá trị nằm trong khoảng Upper_Blue và Lower_Blue thì sẽ tiếp hành gửi dữ liệu màu blue sang kit Arduino Uno
• Kết thúc quá trình, Raspberry tiếp tục chờ thực hiện mệnh lệnh tiếp theo
Với sơ đồ thuật toán kia, nhóm em tiến hành phân loại thử 50 lần
Hình 26 : quá trình đo thực nghiệm
Kết quả thử nghiệm hệ thống với các sản phẩm có các màu sắc khác nhau được thể hiện như trong bảng sau:
Từ bảng số liệu về kết qủa kiểm thử 50 sản phẩm mỗi loại đi qua hệ thống ta thấy đối với sản phẩm màu RED chính xác 100% Sản phẩm màu GREEN có 5 trường hợp nhận diện không đúng (chính xác 90%) và sản phẩm màu BLUE có 8 sản phẩm nhận diện không đúng (chính xác 84%) Chứng tỏ các màu sắc khác nhau của sản phẩm sẽ dẫn tới độ chính xác khác nhau khi đi vào hệ thống.
Thuật toán điều khiển PD
Trong project này, bọn em đã sử dụng thuật toán điều khiển PD để vận hành băng tải phân loại sản phẩm
Thuật toán điều khiển PD là viết tắt của Điều khiển tỷ lệ- đạo hàm (Proportional- Derivative control) Đây là thuật toán được ghép vào từ hai khâu:
1 Khâu tỷ lệ (Proportional): Khâu này điều chỉnh tỷ lệ đầu ra của hệ thống tự động dựa trên sự sai lệch giữa giá trị được đo và giá trị setpoint theo thời gian lấy mẫu Công thức toán học của khâu này là:
2 Khâu đạo hàm (Derivative): Khâu này đo tốc độ thay đổi của sai lệch theo thời gian Nó ước lượng độ lớn trong sai số và điều chỉnh đầu ra dựa trên dự đoán về sự sai số trong tương lai Khâu đạo hàm giúp giảm thiểu độ vọt lố và ổn định hệ thống Công thức toán học của khâu này là:
Từ đó ta có công thức của thuật toán điều khiển PD:
Kết hợp cả hai khâu P và D, thuật toán PD cung cấp một cách tiếp cận linh hoạt để điều khiển, cải thiện hiệu suất và đáp ứng yêu cầu của hệ thống tốt hơn so với từng khâu riêng lẻ Bộ điều khiển PD có tác dụng làm giảm các hiện tượng quá
38 độ như thời gian xác lập, độ vọt lố và dao động ở đầu ra Vậy nên, nó thường được sử dụng trong các hệ thống yêu cầu tốc độ phản hồi nhanh, ổn định và ít dao động
Với các ưu điểm trên, bọn em đã áp dụng thuật toán vào động cơ DC của băng tải qua các bước sau:
Bước 1 : Xác định yêu cầu của hệ thống: Đầu tiên, xác định tốc độ cụ thể của động cơ DC cho băng tải của hệ thống
Bước 2: Thiết kế cảm biến và giao diện điều khiển: Lựa chọn và thiết lập các cảm biến ở các vị trí phù hợp với tốc độ vận chuyển sản phẩm của băng tải Thiết kế giao diện điều khiển để nhận dữ liệu từ các cảm biến và thực hiện các quyết định phân loại
Bước 3: Xây dựng mô hình và lựa chọn thông số PD: Xây dựng một mô hình đơn giản của hệ thống, bao gồm cảm biến và cơ chế phân loại sản phẩm Lựa chọn các thông số của thuật toán PD như Kp và Kd dựa trên yêu cầu của hệ thống và hiệu suất mong muốn
Bước 4: Triển khai và hiệu chỉnh: Triển khai thuật toán PD vào hệ thống và hiệu chỉnh các thông số của nó để đảm bảo rằng hệ thống hoạt động ổn định và chính xác Quá trình hiệu chỉnh này có thể bao gồm việc thử nghiệm và điều chỉnh các thông số
Kp và Kd để đạt được hiệu suất tốt nhất
Bước 5: Kiểm tra và điều chỉnh: Tiến hành kiểm tra hệ thống và điều chỉnh các thông số cần thiết để đảm bảo rằng hệ thống hoạt động đúng và phân loại sản phẩm một cách chính xác
Bước 6: Tối ưu hóa và duy trì: Tiến hành tối ưu hóa và duy trì hệ thống sau khi triển khai để đảm bảo rằng nó hoạt động ở mức độ tối ưu và đạt được kết quả phân loại sản phẩm mong muốn trong thời gian dài
Sau khi áp dụng, bọn em nhận được các kết quả sau:
- Phân loại chính xác: Thuật toán PD đã giúp điều khiển tốc độ động cơ một cách chuẩn xác, giúp sản phẩm được dừng đúng ngay tại vị trí cảm biến để phân loại
- Đáp ứng nhanh chóng: Thiết lập các thông số bằng thuật toán PD giúp hệ thống phản ứng nhanh chóng với sự thay đổi của sản phẩm hoặc điều kiện hoạt động, đảm bảo rằng sản phẩm được phân loại một cách hiệu quả và trong thời gian ngắn nhất
- Giảm độ dao động: Khâu đạo hàm trong thuật toán PD giúp ổn định hệ thống và giảm độ dao động, đặc biệt là trong các tình huống mà các tác nhân từ bên ngoài và bên trong hệ thống gây ra dao động không mong muốn
- Ổn định và tin cậy: Áp dụng thuật toán PD có thể giúp tăng cường ổn định và tin cậy của hệ thống phân loại sản phẩm, đảm bảo rằng quá trình phân loại được thực hiện một cách đáng tin cậy và không gặp phải sự cố
Sau khi bấm nút khởi động trên app, cánh tay robot sẽ bắt đầu đưa sản phẩm vào băng chuyền Khi sản phẩm được đặt lên, hệ thống bắt đầu quá trình phân loại bằng cách xác định loại sản phẩm thông qua cổng phân loại Cổng này bao gồm camera và cảm biến vị trí của mặt hàng, được lập trình để nhận diện và phân biệt dựa trên màu sắc được gán lên mặt hàng đó
Khi sản phẩm đi tới cổng, hệ thống sẽ nhận hình ảnh sản phẩm qua camera và phân loại chúng dựa trên màu sắc Trên tablet sẽ xuất hiện hình ảnh sản phẩm và giao diện phân loại Với mỗi loại sản phẩm đi qua, phần mềm sẽ tính thêm số lượng cho loại sản phẩm đó Sau khi phân loại, băng chuyền sẽ tiếp tục đưa sản phẩm tới bệ phân loại Ví dụ, nếu sản phẩm được nhận diện là màu đỏ, hệ thống sẽ điều chỉnh bệ phân loại để đưa sản phẩm này vào hộp chứa sản phẩm màu đỏ Ngược lại, nếu sản phẩm này có màu xanh, nó sẽ được đưa sang hộp chứa sản phẩm màu xanh
❖ Lưu đồ thuật toán hệ thống:
So sánh giữa 2 thuật toán điều khiển
Ngoài thuật toán PD, thuật toán PID là một trong những loại thuật toán hay được sử dụng nhất trong các hệ thống điều khiển tự động
Bộ điều khiển vi tích phân tỉ lệ (PID- Proportional Integral Derivative) là một cơ chế phản hồi vòng điều khiển tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID là bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi Bộ điều khiển PID sẽ tính toán giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào
Hai thuật toán điều khiển PID (Proportional-Integral-Derivative) và PD (Proportional-Derivative) đều là các phương pháp điều khiển phổ biến được sử dụng trong lĩnh vực tự động hóa và điều khiển tự động Dưới đây là các điểm khác nhau giữa 2 thuật toán
- PID: Thuật toán PID bao gồm cả thành phần Integral, được sử dụng để giảm độ lệch dài hạn giữa giá trị đặt trước và giá trị đo được Thành phần Integral giúp loại bỏ độ lệch cân bằng và đảm bảo rằng hệ thống đạt được độ chính xác cao
- PD: Thuật toán PD không bao gồm thành phần Integral Do đó, nó không thể giảm độ lệch dài hạn và chỉ tập trung vào việc ổn định và giảm độ dao động
- PID: Vì bao gồm cả thành phần Integral, thuật toán PID thường phức tạp hơn và khó hiệu chỉnh hơn so với thuật toán PD
- PD: Thuật toán PD đơn giản hơn và dễ hiệu chỉnh hơn do không có thành phần Integral
- PID: Thường được sử dụng trong các hệ thống yêu cầu độ chính xác cao và ổn định, như hệ thống điều khiển vị trí, nhiệt độ, áp suất, và các hệ thống tự động hóa công nghiệp
- PD: Thường được sử dụng trong các hệ thống cần ổn định và giảm độ dao động, như hệ thống định vị, hệ thống giữ góc độ, và hệ thống ổn định
- PID: Có độ linh hoạt cao và có thể được điều chỉnh để đáp ứng nhiều yêu cầu điều khiển khác nhau
- PD: Dễ dàng triển khai và điều chỉnh, nhưng không có sự linh hoạt của thành phần Integral để giải quyết các vấn đề về độ lệch dài hạn
5 Độ ổn định và đáp ứng
- PID: Thường cung cấp độ ổn định và đáp ứng tốt hơn trong các hệ thống yêu cầu cả hai yếu tố này
- PD: Có thể giảm độ dao động nhưng không thể đảm bảo độ ổn định và đáp ứng cao như thuật toán PID
Với ưu điểm dễ hiệu chỉnh và có giá thành phù hợp hơn so với thuật toán PID, bọn em đã sử dụng thuật toán PD để áp dụng vào sản phẩm bài tập lớn của chúng em
Link DRIVER demo sản phẩm:
Link DRIVER các giai đoạn làm việc:
Trên đây là báo cáo về sản phẩm Phân loại sản phẩm theo màu sắc dựa trên những yêu cầu đã được thầy đặt ra qua các giờ học trên lớp Song song với quá trình được học các tiết lí thuyết cũng như bài tập kết hợp với việc ứng dụng vào thực nghiệm và làm sản phẩm, chúng em đã có cơ hội được làm việc sâu hơn đối với việc xây dựng, thiết kế và hoành thành một hệ thống cơ điện tử Sau quá trình nghiên cứu, chúng em nhận thấy còn nhiều hạn chế về chất lượng bắt nguồn từ giá thành rẻ của các thiết bị sử dụng trong hệ thống nên ở 1 số trường hợp nhất định hệ thống vẫn chưa đạt được độ chính xác tốt nhất Ngoài ra do đặc tính của hệ thống nên các điều kiện bên ngoài cũng ảnh hưởng nhất định tới kết quả đầu ra Chúng em mong trong tương lai khi điều kiện cho phép sẽ được tiếp xúc thêm với nhiều loại cảm biến với chất lượng tốt với khả năng đo lường chính xác hơn
Trong tương lai khi điều kiện cho phép nhóm em mong muốn có thể phát triển sản phẩm tốt hơn nữa, cải tiến các mặt còn hạn chế hay tối ưu sản phẩm một cánh chỉnh chu nhất Về thuật toán xử lí ảnh, nhóm em sẽ tiếp thu thêm kiến thức để ứng dụng Học máy vào hệ thống từ đó sẽ có khả năng phân loại được nhiều kiểu sản phẩm hơn như phân loại dựa trên Logo, QR code … Cũng như phát triển thêm về phần đồ họa của web điều khiển Về phần cứng, nhóm em mong muốn sẽ phát triển phần cứng của cánh tay robot cũng như sử dụng công nghệ in 3D để làm các chi tiết nhỏ của phần khung
Ngày nay, trong thời đại bùng nổ của trí tuệ nhân tạo cũng như sự phát triển chóng mặt trong công nghiệp, nhưng hệ thống tự động hóa càng có yêu cầu cao hơn về cả phần cứng và phần mềm Vậy nên khi một bài toán được đặt ra và hoàn thiện, chúng em sẽ luôn không ngừng tìm hiểu, học hỏi thêm để có thể phát triển hơn nữa
Báo cáo này được hoàn thành bởi sự cố gắng tìm hiểu từng ngày, hỗ trợ giúp đỡ nhau trong quá trình nghiên cứu và hoàn thiện của các thành viên trong nhóm Để có được nền tảng kiến thức và bước vào nghiên cứu cũng như được sự giúp đỡ to lớn, giải đáp những vấn để xảy ra mà chúng em chưa rõ trong quá trình thực hiện xây dựng hệ thống, chúng em xin gửi lời cảm ơn sâu sắc đến giảng viên môn học Hệ thống cơ điện tử thầy Đinh Trần Hiệp và thầy trợ giảng đã giúp đỡ, hỗ trợ chúng em
44 rất nhiều Do kinh nghiệm và thời gian tìm hiểu kiến thức còn hạn chế, qua báo cáo này chúng em mong nhận được những ý kiến đóng góp của thầy để nhóm em có thể hoàn thiện về mặt kiến thức cũng như kinh nghiệm của bản thân Chúng em xin chúc thầy có nhiều sức khỏe, ngày càng thành công, hạnh phúc trong công việc và cuộc sống
DANH MỤC TÀI LIỆU THAM KHẢO
1 Việt, H.M., Hiệp, L.H and Phượng, M.T (no date) Nghiên Cứu Thiết KẾ hệ thống Phân Loại Sản Phẩm Theo Màu sắc ứng dụng công Nghệ XỬ LÝ ẢNH
SỐ, TNU Journal of Science and Technology Available at: https://jst.tnu.edu.vn/jst/article/view/3831
2 tcct “Điều Khiển Tốc độ Động Cơ DC Bằng Bộ Điều Khiển Thông Minh.”
Tạp Chí Công Thương, 11 Mar 2022, tapchicongthuong.vn/dieu-khien-toc- do-dong-co-dc-bang-bo-dieu-khien-thong-minh-ung-dung-trong-cong- nghiep-87394
3 Nguyen Gia Minh Thao, Duong Hoai Nghia and Nguyen Huu Phuc (2010)
A PID backstepping controller for two-wheeled self-balancing robot International Forum on Strategic Technology, 2010, 76-81
4 Z X Ming and L S Yu (2012) Simulation Study on Fuzzy PID Controller for DC Motor Based on DSP International Conference on Industrial Control and Electronics Engineering, 2012, 1628-1631
5 Introduction: System modeling Control Tutorials for MATLAB and
Simulink - Introduction: System Modeling (n.d.) https://ctms.engin.umich.edu/CTMS/
6 “Các Hệ Màu Cơ Bản Trong Xử Lý Ảnh.” AI Tech, 15 Apr 2019, buiduchanh.github.io/Colour-space https://s.net.vn/ojS9