1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot

73 0 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

Thông tin cơ bản

Tiêu đề Thiết kế hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Tác giả Hồ Bá Quang, Nguyễn Công Hiếu
Người hướng dẫn TS. Trần Đình Sơn
Trường học Đại Học Bách Khoa - Đại Học Đà Nẵng
Chuyên ngành Cơ Điện Tử
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 73
Dung lượng 2,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (6)
    • 1. Tính cấp thiết của đề tài (6)
    • 2. Mục đính nghiên cứu của đề tài (6)
    • 3. Đối tượng và phạm vi nghiên cứu (6)
    • 4. Phương pháp nghiên cứu của đề tài (6)
  • CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ HỆ THỐNG KIỂM TRA VÀ ĐÓNG GÓI SẢN PHẨM (7)
    • 1. Giới thiệu về hệ thống sản xuất tự động (7)
      • 1.1 Đặt vấn đề (7)
      • 1.2 Tự động hóa (7)
      • 1.3. Vai trò của tự động hóa (8)
    • 2. Dây chuyền sản xuất (10)
    • 3. Giới thiệu hệ thống kiểm tra và xếp sản phẩm vào hộp (11)
    • 4. Sơ đồ khối tổng quan của hệ thống (12)
  • CHƯƠNG 3: TÍNH TOÁN, THIẾT KẾ CƠ KHÍ VÀ LỰA CHỌN THIẾT BỊ CHO HỆ THỐNG (14)
    • 1. Băng tải (14)
    • 2. Cánh tay robot (15)
      • 2.1. Tính chọn động cơ cho cánh tay robot (15)
      • 2.2. Tính toán động học thuận cánh tay robot (19)
      • 2.3. Tính toán động học nghịch cánh tay robot (21)
      • 2.4. Cơ cấu hút (22)
    • 3. Lựa chọn thiết bị (24)
      • 3.1. Nguồn tổ ong 24V (24)
      • 3.2. Adruino UNO R3 (25)
      • 3.3. Vi điều khiển ATmega328P (27)
      • 3.4. Driver A4988 (31)
      • 3.5 Modul rơle 5vdc (33)
      • 3.6 Cảm biến phát hiện vật thể (34)
      • 3.7. Hệ thống Camera (36)
    • 4. Sơ đồ đấu dây của hệ thống (36)
  • CHƯƠNG 4: THIẾT KẾ, MÔ PHỎNG BẰNG PHẦN MỀM (37)
    • 2. Vẽ cánh tay robot bằng phần mềm (38)
  • CHƯƠNG 5: LẬP TRÌNH CHO HỆ THỐNG (45)
    • 1. Lưu đồ thuật toán cho hệ thống (45)
    • 1. Kết quả đạt được (47)
    • 2. Những hạn chế (47)
    • 3. Hướng phát triển của đề tài (47)
    • 1. Chương trình xử lí ảnh bằng Python (49)
    • 2. Chương trình điều khiển Arduino (56)

Nội dung

Với đề tài đã chọn để thực hiện là “Hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot 3 bậc tự do” sẽ giúp sinh viên chúng em hiểu rõ hơn những kiến thức đã học và biết vận d

TỔNG QUAN

Tính cấp thiết của đề tài

Ngành công nghiệp robot toàn cầu đã phát triển mạnh mẽ, cung cấp robot công nghiệp phục vụ sản xuất, giải trí và chăm sóc con người Tại Việt Nam, robot ngày càng trở nên phổ biến trong các dây chuyền sản xuất, góp phần nâng cao hiệu quả và năng suất lao động.

Chúng em đã chọn đề tài "Thiết kế, chế tạo mô hình hệ thống kiểm tra và xếp sản phẩm kết hợp cánh tay robot" nhằm mục đích nội địa hóa sản phẩm và nghiên cứu sâu về robot Đề tài này không chỉ hướng tới việc thay thế các bộ điều khiển của các công ty nước ngoài mà còn xây dựng thuật điều khiển tối ưu cho các đối tượng sản xuất phù hợp với điều kiện sản xuất tại Việt Nam.

Mục đính nghiên cứu của đề tài

Mục đích của đề tài này là nghiên cứu phương pháp kiểm tra sản phẩm và tự động gắp chúng vào hộp đựng Đề tài cũng tập trung vào việc điều khiển cánh tay robot ba bậc tự do, nhằm phát triển kỹ thuật chế tạo robot có thể áp dụng hiệu quả trong sản xuất công nghiệp.

Đối tượng và phạm vi nghiên cứu

Đề tài nghiên cứu này tập trung vào phương trình động học của cánh tay robot 3 bậc tự do, sử dụng phần mềm Python để nhận diện màu sắc sản phẩm, cùng với mã code Arduino nhằm điều khiển cánh tay robot một cách hiệu quả.

Phương pháp nghiên cứu của đề tài

➢ Nghiên cứu cơ sở khoa học và thực tiễn về chế tạo, điều khiển robot và nhận diện sản phẩm.

GIỚI THIỆU CHUNG VỀ HỆ THỐNG KIỂM TRA VÀ ĐÓNG GÓI SẢN PHẨM

Giới thiệu về hệ thống sản xuất tự động

Ngày nay, điều khiển tự động đang đóng vai trò quan trọng trong các lĩnh vực khoa học kỹ thuật, quản lý và công nghiệp tự động hóa Việc nắm bắt và ứng dụng hiệu quả công nghệ này là cần thiết để phát triển nền khoa học kỹ thuật toàn cầu, đặc biệt trong lĩnh vực điều khiển tự động Trong dây chuyền sản xuất tự động, việc sử dụng băng tải và hệ thống nâng gắp để vận chuyển, kiểm tra và đóng gói sản phẩm là rất quan trọng Tuy nhiên, nhiều doanh nghiệp vừa và nhỏ vẫn chưa áp dụng tự động hóa hoàn toàn trong khâu phân loại và đóng bao bì, dẫn đến năng suất lao động chưa cao Với kiến thức đã học, chúng tôi quyết định thiết kế mô hình băng chuyền sử dụng cánh tay robot để gắp sản phẩm vào hộp, nhằm nâng cao hiệu suất lao động và đảm bảo độ chính xác Mô hình này không chỉ gần gũi với thực tế mà còn góp phần thúc đẩy sự phát triển xã hội, giúp chúng ta bắt kịp với sự tiến bộ của thế giới.

Tự động hóa là quá trình áp dụng công nghệ để thực hiện các nhiệm vụ và quy trình mà trước đây cần sự can thiệp của con người Nhờ vào tự động hóa, các hoạt động được thực hiện một cách nhanh chóng và hiệu quả hơn Hệ thống tự động hóa sử dụng thiết bị, phần mềm và thuật toán để kiểm soát và vận hành các quy trình.

➢ Có nhiều loại tự động hóa khác nhau:

Tự động hóa công nghiệp là quá trình áp dụng robot và máy móc trong sản xuất, nhằm thay thế hoặc hỗ trợ con người trong các nhiệm vụ như lắp ráp và kiểm tra chất lượng sản phẩm.

➢ Tự động hóa văn phòng: Sử dụng phần mềm để tự động hóa các công việc như quản lý dữ liệu, lập hóa đơn, gửi email

Tự động hóa quy trình robot (RPA - Robotic Process Automation) là việc ứng dụng phần mềm để tự động hóa các quy trình lặp đi lặp lại trong doanh nghiệp, mang lại lợi ích tiết kiệm thời gian và giảm thiểu sai sót trong công việc.

➢ Lợi ích của tự động hóa bao gồm tăng năng suất, giảm chi phí lao động, cải thiện độ chính xác và nhất quán trong công việc

Hình 2.1 Tự động hóa trong công nghiệp

1.3 Vai trò của tự động hóa

Tự động hóa đóng vai trò thiết yếu trong nhiều lĩnh vực, mang lại lợi ích đáng kể cho doanh nghiệp, cá nhân và nền kinh tế Một số vai trò chính của tự động hóa bao gồm tăng cường hiệu suất làm việc, giảm chi phí vận hành, cải thiện chất lượng sản phẩm và dịch vụ, cũng như tạo ra cơ hội mới cho đổi mới sáng tạo.

➢ Tăng năng suất và hiệu quả:

Tự động hóa cải thiện hiệu quả quy trình vận hành bằng cách tăng tốc độ sản xuất và xử lý công việc Máy móc và phần mềm hoạt động liên tục 24/7, không cần nghỉ ngơi, giúp giảm thiểu sự phụ thuộc vào lao động và nâng cao tính ổn định trong hoạt động.

➢ Giảm chi phí và tối ưu hóa nguồn lực:

Khi doanh nghiệp tự động hóa các công việc thủ công và lặp đi lặp lại, họ không chỉ giảm chi phí lao động mà còn tiết kiệm tài nguyên Hệ thống tự động hóa giúp giảm thiểu sai sót, từ đó giảm chi phí khắc phục lỗi.

➢ Cải thiện chất lượng và độ chính xác:

Máy móc và phần mềm tự động hóa mang lại độ chính xác vượt trội so với con người, giúp giảm thiểu sai sót và nâng cao chất lượng sản phẩm hoặc dịch vụ Điều này đặc biệt quan trọng trong các ngành công nghiệp yêu cầu tính chính xác cao như y tế, sản xuất linh kiện điện tử và ô tô.

Quy trình tự động hóa giúp thực hiện các nhiệm vụ nhanh chóng và hiệu quả hơn so với phương pháp thủ công Chẳng hạn, các công việc như nhập dữ liệu, xử lý đơn hàng và phân tích báo cáo có thể được hoàn thành chỉ trong vài phút, tiết kiệm thời gian đáng kể so với việc làm thủ công, thường mất hàng giờ.

➢ Nâng cao sự linh hoạt và khả năng thích ứng:

Tự động hóa mang lại sự linh hoạt cho doanh nghiệp trong việc điều chỉnh quy trình và sản phẩm Chẳng hạn, các dây chuyền sản xuất tự động có khả năng thay đổi nhanh chóng để sản xuất các sản phẩm mới mà không cần phải thiết lập lại toàn bộ hệ thống.

➢ Tăng cường an toàn lao động:

Trong các môi trường làm việc nguy hiểm như nhà máy hóa chất, khai thác mỏ và sản xuất nặng, tự động hóa đóng vai trò quan trọng trong việc bảo vệ con người khỏi những công việc tiềm ẩn rủi ro.

Robot và máy móc có thể thực hiện các công việc này, giúp giảm thiểu tai nạn lao động

➢ Tăng cường tính cạnh tranh:

Doanh nghiệp áp dụng tự động hóa sẽ tăng cường tốc độ sản xuất, giảm chi phí và nâng cao chất lượng sản phẩm, từ đó mang lại giá trị lớn hơn cho khách hàng và tạo ra lợi thế cạnh tranh trên thị trường.

➢ Hỗ trợ phân tích và ra quyết định:

Các hệ thống tự động hóa không chỉ thực hiện nhiệm vụ mà còn thu thập và phân tích dữ liệu trong quá trình hoạt động, giúp doanh nghiệp có cái nhìn rõ ràng về hiệu suất và đưa ra quyết định chiến lược hiệu quả hơn.

Dây chuyền sản xuất

Dây chuyền sản xuất là hệ thống các quy trình liên tiếp, trong đó sản phẩm di chuyển qua từng bước để được chế tạo và lắp ráp Mỗi công đoạn thực hiện một phần nhỏ trong quy trình tổng thể, giúp sản phẩm từ nguyên liệu ban đầu dần hình thành đến khi trở thành thành phẩm hoàn chỉnh.

➢ Các đặc điểm của dây chuyền sản xuất:

Trên dây chuyền sản xuất, các công đoạn được sắp xếp theo trình tự nhất định, bắt đầu từ khâu nguyên liệu, tiếp theo là sản xuất, lắp ráp, kiểm tra và cuối cùng là đóng gói Sản phẩm sẽ di chuyển liên tục qua các giai đoạn này cho đến khi hoàn tất.

Chuyên môn hóa trong quy trình làm việc cho phép mỗi công đoạn tập trung vào một nhiệm vụ cụ thể, từ đó tối ưu hóa hiệu suất lao động Nhân viên chỉ cần thực hiện một phần nhỏ của công việc, nhưng có thể hoàn thành với tốc độ nhanh chóng và độ chính xác cao.

Dây chuyền sản xuất hiện đại thường tích hợp máy móc và thiết bị tự động hóa, giúp nâng cao tốc độ và độ chính xác trong quy trình sản xuất.

Ví dụ, trong ngành ô tô, các dây chuyền sản xuất sử dụng robot để hàn, lắp ráp các bộ phận với độ chính xác cao

Sản xuất hàng loạt là quá trình mà dây chuyền sản xuất được thiết kế nhằm tạo ra số lượng lớn sản phẩm trong thời gian ngắn, giúp doanh nghiệp tiết kiệm chi phí và nhanh chóng đáp ứng nhu cầu thị trường.

Hình 2.2 Dây chuyền sản xuất trong công nghiệp

Giới thiệu hệ thống kiểm tra và xếp sản phẩm vào hộp

Hệ thống kiểm tra và xếp sản phẩm được phát triển nhằm hiện đại hóa quy trình sản xuất, thay thế con người trong đóng gói để nâng cao chất lượng và năng suất Hệ thống này hoạt động với độ tin cậy cao, liên tục và không gây trì hoãn cho quy trình Đặc biệt, những công việc yêu cầu sự tập trung và tuần hoàn mà con người khó thực hiện được, đã được hệ thống này đáp ứng hiệu quả.

Hình 2.3 Hệ thống kiểm tra và đóng gói tự động

Sơ đồ khối tổng quan của hệ thống

Hình 2.4 Sơ đồ tổng quan của hệ thống

❖ Nguyên lí hoạt động của hệ thống:

Khi vật phẩm di chuyển trên băng tải, camera sẽ ghi lại hình ảnh và gửi về máy tính để kiểm tra tính hợp lệ của sản phẩm Máy tính sẽ phân tích dữ liệu để xác định màu sắc và hình dạng của sản phẩm Sau khi nhận diện, dữ liệu sẽ được gửi đến Arduino, điều khiển cánh tay robot thông qua driver động cơ bước Nếu sản phẩm đúng yêu cầu, robot sẽ hút và xếp sản phẩm vào hộp (mỗi hộp chứa 4 sản phẩm); khi hộp đầu tiên đầy, robot sẽ chuyển sang hộp thứ hai Ngược lại, nếu sản phẩm không đạt tiêu chuẩn, nó sẽ được loại bỏ khỏi băng tải.

▪ Hộp đựng: Chứa sản phẩm

▪ Camera: Chụp sản phẩm và gửi dữ liệu về máy tính

▪ Máy tính: nhận dữ liệu và xác định hình dáng của sản phẩm

▪ Arduino: nhận dữ liệu từ máy tính để điều khiển robot

▪ Driver: điều khiển động cơ bước của robot

▪ Động cơ bước: thực hiện các chuyển động của robot

▪ Cánh tay robot: Trực tiếp hút sản phẩm bỏ vào hộp đựng sau khi nhận được tín hiệu

TÍNH TOÁN, THIẾT KẾ CƠ KHÍ VÀ LỰA CHỌN THIẾT BỊ CHO HỆ THỐNG

Băng tải

Khi chọn động cơ băng tải, cần lưu ý các thông số quan trọng như đường kính của 2 con lăn dẫn và bị dẫn là D1mm, chiều dài băng tải là 600mm, và bề rộng đai được xác định là 100mm dựa trên kích thước hộp chứa hàng (70x80) Khối lượng trung bình của vật phẩm trên băng chuyền, bao gồm 4 sản phẩm và hộp đựng, là 1kg Tốc độ băng tải được tính theo công thức v = 𝜋𝐷𝑛.

60.1000 = 10 (m/ph) o Tốc độ động cơ: Vdc= V/𝜋𝐷 = 106 (vòng/ph) o Momen xoắn tối thiểu động cơ: T = mgD/2 = 150Nmm=1,53kg.cm o Công suất động cơ: P= (T × N)/9.55 = 1,66 kw

❖ Chọn động cơ cho băng tải:

Động cơ có đường kính trục 6mm và chiều dài 70mm, hoạt động với điện áp 24VDC và dòng điện 135mA Đường kính động cơ là 36mm, chiều dài trục 12mm, với tốc độ đạt 200 vòng/phút.

Hình 3.1 Động cơ giảm tốc GB37- 545 24VDC

Cánh tay robot

2.1 Tính chọn động cơ cho cánh tay robot

❖ Khối lượng các khâu: (thông số do sự tính toán của solidwork) o Khâu 1: 162,4(g)

Hình 3.2 Khâu 1 cánh tay robot o Khâu 2: 130,95(g)

Hình 3.3 Khâu 2 của cánh tay robot o Khâu 3: 152,12 (g)

Hình 3.4 Khâu 3 của cánh tay robot

❖ Tính toán Momen cho động cơ:

➢ Tính momen xoắn cho khâu 2,3

▪ Chọn động cơ bước – Step motor 42 (Nema 17) có Momen xoắn của động cơ 0.4N.m

Hình 3.5 Động cơ Step motor 42(NEMA 17)

• Đường kính trục: 5mm hình chữ D, trục dài 20mm

• Nguồn điện: 12v / 24v - Class: Class B (chịu nhiệt lên tới 130 độ)

• Moment xoắn: 400Nm m Min (2 phase)

2.2 Tính toán động học thuận cánh tay robot

❖ Ta có công thức tổng quát:

A 2 = [ cos θ 2 −sin θ 2 0 L 2 cos θ 2 sin θ 2 cos θ 2 0 L 2 sin θ 2

✓ Tọa độ điểm cuối: p x = cos θ 1 (L 3 cos( θ 2 + θ 3 ) + L 2 cos θ 2 ) p y = sin θ 1 (L 3 cos( θ 2 + θ 3 ) + L 2 cos θ 2 ) p z = L 1 + L 3 sin( θ 2 + θ 3 ) + L 2 sin θ 2

2.3 Tính toán động học nghịch cánh tay robot

❖ Sử dụng giác hút kết hợp động cơ hút chân không giúp tang tốc độ gắp vật thể

❖ Không làm biến dạng vật thể

❖ Chọn động cơ hút chân không 12V với lực hút tối đa 50kpa (thoả mãn yêu cầu)

Hình 3.6 Động cơ hút chân không

Lựa chọn thiết bị

Thông số kỹ thuật của thiết bị bao gồm dải điện áp đầu vào AC110/220VAC ±15% và tần số đầu vào 50-60Hz Điện áp ra là 24VDC có thể điều chỉnh ±5%, với hiệu suất đạt trên 80% Thiết bị có khả năng bảo vệ quá tải khi vượt quá 25% công suất định mức, công suất tối đa là 120W và dòng ra 5A Kích thước của sản phẩm là 16x10x4cm, hoạt động hiệu quả trong khoảng nhiệt độ từ 0 ℃ đến 40 ℃ và trọng lượng tổng cộng là 420g.

Thông số kỹ thuật của Arduino Uno R3

Arduino Uno được xây dựng với phần nhân là vi điều khiển ATmega328P, sử dụng thạch anh có chu kì dao động là 16 MHz

Vi điều khiển này có tổng cộng 14 pin ra vào, được đánh số từ 0 đến 13, trong đó có 6 pin PWM được đánh dấu bằng ký hiệu ~ Ngoài ra, còn có 6 pin nhận tín hiệu analog từ A0 đến A5, có thể sử dụng như các pin ra vào thông thường Đặc biệt, pin 13 nối trực tiếp với LED trạng thái trên board.

Bảng mạch được trang bị một nút reset, một cổng kết nối USB để kết nối với máy tính và một cổng nguồn sử dụng jack 2.1mm, cho phép cấp nguồn trực tiếp từ bộ chuyển đổi AC-DC hoặc thông qua ắc-quy.

Khi làm việc với Arduino board, một số thuật ngữ sau cần lưu ý:

• Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt điện

Bộ nhớ flash trên board Arduino đóng vai trò như ổ cứng để lưu trữ dữ liệu và chương trình Kích thước bộ nhớ này phụ thuộc vào vi điều khiển, chẳng hạn như ATmega8 có dung lượng 8KB Loại bộ nhớ này có khả năng chịu đựng khoảng 10.000 lần ghi/xóa.

RAM, giống như RAM của máy tính, sẽ mất dữ liệu khi nguồn điện bị ngắt Tuy nhiên, RAM có tốc độ đọc, ghi và xóa rất nhanh, đồng thời kích thước của nó nhỏ hơn nhiều so với Flash Memory.

EEPROM là một loại bộ nhớ tương tự như Flash Memory, nhưng có chu kỳ ghi/xóa cao hơn, lên tới khoảng 100.000 lần, và có kích thước rất nhỏ Để thực hiện việc đọc và ghi dữ liệu, người dùng có thể sử dụng thư viện EEPROM có sẵn trong Arduino.

Ngoài ra, Arduino board còn cung cấp cho các pin khác nhau như pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND,

Thông số kỹ thuật của Arduino board được tóm tắt trong bảng sau:

3 Điện áp vào khuyên dùng 7-12V

4 Điện áp vào giới hạn 6-20V

5 Digital I/O pins 14 (trong đó 6 pin có khả năng băm xung)

8 Cường độ dòng điện trên mỗi I/O pin 20 mA

9 Cường độ dòng điện trên mỗi 3.3V pin 50 mA

KB được sử dụng bởi bootloader

Bảng1: Thông số của Arduino UNO R3

ATmega328P là một bộ vi điều khiển mạnh mẽ và đa chức năng, nổi tiếng trong dòng sản phẩm của Atmel, đặc biệt là trong bo mạch Arduino UNO Thuộc họ vi điều khiển megaMVR, ATmega328P được thiết kế để xử lý các chương trình lớn với dung lượng ROM, RAM và các chân I/O phong phú Được sản xuất với nhiều cấu hình chân khác nhau, từ 8 chân đến hàng trăm chân, nó mang lại sự linh hoạt cho nhiều ứng dụng khác nhau trong lĩnh vực điện tử.

Mạch bên trong của ATmega328P được thiết kế nhằm tiết kiệm năng lượng, với khả năng tiêu thụ dòng điện thấp Chip này sở hữu 32 kilobyte bộ nhớ flash, 1 kilobyte EEPROM và 2 kilobyte SRAM Trong đó, EEPROM và bộ nhớ flash lưu trữ thông tin ngay cả khi nguồn điện bị ngắt, trong khi SRAM chỉ giữ thông tin khi có điện, và sẽ xóa tất cả dữ liệu khi mất nguồn.

• Thiết kế hiệu suất cao

• Tiêu thụ ít điện năng

• Tổng số chân ngõ vào Analog là 6

• Chứa 32 kilobyte bộ nhớ flash

• Tốc độ xung nhịp 16 megahertz

• Nhiệt độ tối thiểu và tối đa -40 độ C đến 105 độ C

• Tổng số chân I / O kỹ thuật số là 14 chân

• Khóa chức năng chương trình để bảo mật mã lập trình

• Chứa tổng cộng ba bộ định thời, hai 8 bit, một 16 bit

• Tổng số chân I / O là 23 chân

• Tổng số kênh PWM là 6

• Điện áp hoạt động tối thiểu và tối đa từ 1.8V DC đến 5.5V DC

Mô tả Chức năng Mô tả chức năng

Khi chân reset này ở mức thấp, bộ vi điều khiển và chương trình của nó sẽ được reset

2 PD0 Chân kỹ thuật số (RX) Chân đầu vào cho giao tiếp nối tiếp

3 PD1 Chân kỹ thuật số (TX) Chân đầu ra cho giao tiếp nối tiếp

4 PD2 Chân kỹ thuật số Chân 4 được sử dụng làm ngắt ngoài 0

5 PD3 Chân kỹ thuật số (PWM) Chân 5 được sử dụng làm ngắt ngoài 1

6 PD4 Chân kỹ thuật số

Chân 6 được sử dụng cho nguồn bộ đếm bên ngoài Timer0

7 Vcc Điện áp dương Nguồn dương của hệ thống

8 GND Nối đất Nối đất của hệ thống

Chân này nối với một châncủa bộ dao động tinh thể để cung cấp xung nhịp bên ngoài cho chip

10 XTAL Dao động tinh thể

Chân này nối với chân còn lại của bộ dao động tinh thể để cung cấp xung nhịp bên ngoài cho chip

11 PD5 Chân kỹ thuật số (PWM)

Chân 11 được sử dụng cho nguồn bộ đếm bên ngoài Timer1

12 PD6 Chân kỹ thuật số (PWM) Bộ so sánh analog dương i / ps

13 PD7 Chân kỹ thuật số Bộ so sánh analog âm i / ps

14 PB0 Chân kỹ thuật số Nguồn đầu vào bộ đếm hoặc bộ hẹn giờ

15 PB1 Chân kỹ thuật số (PWM) Bộ đếm hoặc bộ hẹn giờ so sánh khớp A

16 PB2 Chân kỹ thuật số (PWM)

Chân này hoạt động như lựa chọn slave i / p

17 PB3 Chân kỹ thuật số (PWM) Chân này được sử dụng làm đầu ra dữ liệu master và đầu vào dữ liệu slave cho SPI

18 PB4 Chân kỹ thuật số Chân này hoạt động như một đầu vào xung nhịp master và đầu ra xung nhịp slave

19 PB5 Chân kỹ thuật số Chân này hoạt động như một đầu ra xung nhịp master và đầu vào xung nhịp slave cho

20 AVcc Điện áp dương Điện áp dương cho ADC (nguồn)

21 AREF Tham chiếu analog Điện áp tham chiếu analog cho ADC (Bộ chuyển đổi analog sang kỹ thuật số)

Nối đất của hệ thống

23 PC0 Đầu vào analog Đầu vào analog giá trị kỹ thuật số kênh 0

24 PC1 Đầu vào analog Đầu vào analog giá trị kỹ thuật số kênh 1

25 PC2 Đầu vào analog Đầu vào analog giá trị kỹ thuật số kênh 2

26 PC3 Đầu vào analog Đầu vào analog giá trị kỹ thuật số kênh 3

27 PC4 Đầu vào analog Đầu vào analog giá trị kỹ thuật số kênh 4

Chân này cũng có thể được sử dụng làm kết nối giao diện nối tiếp cho dữ liệu

28 PC5 Đầu vào analog Đầu vào analog giá trị kỹ thuật số kênh 5

Chân này cũng được sử dụng như dòng xung nhịp giao diện nối tiếp

Bảng 2: Thông số các chân của vi điều khiển Atmega328P

Hình 3.10 Driver A4988 điều khiển động cơ bước

• Công suất ngõ ra lên tới 35V, dòng đỉnh 2A

• Có 5 chế độ: Full bước, 1/2 bước, 1/4 bước, 1/8 bước, 1/16 bước

• Điểu chỉnh dòng ra bằng triết áp, nằm bên trên Current Limit = VREF × 2.5

• Tự động ngắt điện khi quá nhiệt

• Điều Chỉnh Được Dòng Cực Đại

• Bảo Vệ Ngắn Mạch, Quá Tải

Hình 3.11 Sơ đồ đấu dây của Driver A4988

Khi lựa chọn chế độ hoạt động full, 1/2 hay 1/4, bạn sẽ điều chỉnh thông qua ba pin MS1, MS2 và MS3 Thông thường, tôi kết nối ba pin này với công tắc bit 3p để dễ dàng thiết lập từ phần cứng Lưu ý rằng nếu ba pin này được thả nổi, chế độ sẽ tự động chuyển sang full step.

+ Bật tắt động cơ thông qua chân ENABLE, mức LOW là bật module, mức HIGH là tắt + Điều khiển chiều quay của động cơ thông qua pin DIR

+ Điều khiển bước của động cơ thông qua pin STEP, mỗi xung là tương ứng với 1 bước

+ Chọn chế độ hoạt động bằng cách đặt mức logic cho các chân MS1, MS2, MS3

+ Hai chân Sleep với Reset nối với nhau

Module relay là thiết bị điều khiển dùng điện áp nhỏ để kích hoạt điện áp lớn, cho phép đóng mở các mạch điện Module relay 5VDC có kích thước nhỏ gọn, tiện lợi và dễ sử dụng, vì vậy nó được ứng dụng rộng rãi Thiết bị này thường được sử dụng như một công tắc điện để điều khiển các thiết bị công suất lớn như đèn và động cơ.

Hình 3.12 Modul rơle 5VDC 1 kênh

• Chân IN: kích mở relay

• Jump H/L level trigger: thiết lập mức điều khiển relay Có 2 mức : HIGH / LOW.

• Đầu ra: o COM: Tiếp điểm relay 220V 10A ( Lưu ý tiếp điểm , không phải điện áp ra) o NO: chân thường mở o NC: chân thường đóng

Cách đọc thông số trên relay giúp người dùng hiểu rõ hơn về khả năng chịu tải của thiết bị Thông số 10A - 250VAC cho biết cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với hiệu điện thế xoay chiều (AC) là 10A khi điện áp không vượt quá 250V Tương tự, với hiệu điện thế một chiều (DC), thông số 10A - 30VDC và 10A - 28VDC chỉ ra cường độ dòng điện tối đa tương ứng khi điện áp không vượt quá 30V và 28V Ngoài ra, thông số 10A - 125VAC cũng cho biết cường độ dòng điện tối đa khi điện áp xoay chiều không vượt quá 125V.

3.6 Cảm biến phát hiện vật thể

Cảm biến là thiết bị điện quan trọng, có chức năng đo đạc các tín hiệu như nhiệt độ, áp suất, ánh sáng và tốc độ Chúng chuyển đổi các hiện tượng bên ngoài thành tín hiệu điện tiêu chuẩn, giúp cung cấp thông tin cho các bộ điều khiển để phân tích và xử lý.

➢ Với mục đích phát hiện kiện hàng trên băng tải, nhóm sinh viên đã lựa chọn sử dụng loại cảm biến quang bởi những ưu điểm của nó như:

- Không tiếp xúc với vật thể cần phát hiện

- Có thể phát hiện vật từ khoảng cách xa

- Không bị hao mòn, có tuổi thọ cao

- Có thời gian đáp ứng nhanh

Nhóm sinh viên chúng em đã chọn cảm biến vật cản hồng ngoại E3F-DS30C4 cho đồ án này, vì cảm biến này có khả năng phát hiện kiện hàng với khoảng cách điều chỉnh và giá thành hợp lý.

Hình 3.13 Cảm biến vật cản hồng ngoại E3F-DS30C4

• Kích thước đường kính ngoài: 18mm (mm)

• Khoảng cách phát hiện: 10-30cm có thể điều chỉnh

• Điện áp làm việc: DC 6-36VDC

• Màu nâu: VCC, nguồn dương 6 – 36VDC

• Màu xanh dương: GND, nguồn âm 0VDC

• Màu đen: Chân tín hiệu ngõ ra cực thu hở NPN, cần phải có trở kéo để tạo thành mức cao

Hình 3.14 Sơ đồ đấu dây của cảm biến E3F-DS30C4

Sau khi camera ghi lại hình ảnh sản phẩm, dữ liệu sẽ được gửi về máy tính Phần mềm Python trên máy tính sẽ xác định chính xác hình dạng và vị trí của từng sản phẩm khi chúng đi qua.

➢ Kết nối camera máy tính với camera điện thoại thông qua ứng dụng EpocCam

Bộ phận điều khiển sử dụng board mạch Arduino, nhận dạng hình dáng sản phẩm và truyền dữ liệu từ Python sang Arduino Arduino sẽ điều khiển cánh tay robot để gắp sản phẩm; nếu sản phẩm đạt yêu cầu, nó sẽ được đưa vào thùng, còn nếu sản phẩm lỗi, sẽ được bỏ qua và tiếp tục di chuyển trên băng tải.

Sơ đồ đấu dây của hệ thống

Hình 4.1 Sơ đồ đấu dây của hệ thống

THIẾT KẾ, MÔ PHỎNG BẰNG PHẦN MỀM

Vẽ cánh tay robot bằng phần mềm

➢ Thiết kế cánh tay robot bằng phần mềm:

Hình 4.4 Thiết kế cánh tay robot bằng phần mềm Solidwords

Hình 4.5 Cánh tay robot trên phần mềm

Cánh tay robot ngoài thực tế:

Hình 4.6 Cánh tay robot ngoài thực tế

Hình 4.7 Hộp đựng sản phẩm

➢ Bàn để hộp đựng sản phẩm:

Hình 4.9 Bàn để hộp đựng sản phẩm

Hình 4.10 Bàn để sản phẩm thực tế

Hình 4.10 Hệ thống hoàn chỉnh trên phần mềm

Hình 4.11 Hệ thống hoàn chỉnh thực tế

LẬP TRÌNH CHO HỆ THỐNG

Lưu đồ thuật toán cho hệ thống

➢ Lưu đồ thuật toán hệ thống:

Hình 5.1 Lưu đồ thuật toán cho xử lí ảnh

Hình 5.2 Lưu đồ thuật toán cho vi điều khiển

Tổng kết và hướng phát triển

Kết quả đạt được

❖ Nhóm đã hoàn thiện được mô hình có thể hoạt động ổn định

❖ Về phần thiết kế cơ khí:

- Biết cách sử dụng các công cụ vẽ 3D và 2D thường dùng trong ngành cơ khí như Solidworks và Autocad

- Biết cách trình bày và đọc các bản vẽ thường dùng

- Biết cách tính toán, thiết kế, và chế tạo ra mô hình cơ khí có thể hoạt động được

- Lắp ráp mô hình sản phẩm hoàn chỉnh

❖ Về phần điện- điện tử, các thiết bị điện:

- Tìm hiểu thêm được các loại thiết bị điện tử như cảm biến, động cơ

- Thiết kế được mạch điện để điều khiển hoạt động của hệ thống

- Biết thêm về Arduino và cách lập trình trên Arduino

- Áp dụng những kiến thức để học để vẽ lưu đồ thuật toán và viết chương trình điều khiển mô hình

- Biết cách điều khiển các động cơ và các cảm biến

- Biết xử lí ảnh bằng ngôn ngữ Python

Những hạn chế

- Đây là mô hình nhỏ nên không thể áp dụng được nhu cầu trong thực tế

- Tốc độ làm việc của hệ thống còn chậm

- Độ cứng vững của mô hình chưa cao

Hướng phát triển của đề tài

- Sử dụng thêm hệ thống băng tải để có thể vận chuyển hộp sản phẩm đi sau khi xếp đầy hộp

- Thay thế giác hút bằng cánh tay gắp để quá trình gắp được chính xác và áp dụng được với nhiều loại sản phẩm

[1] https://bangtai24h.com/dong-co-bang-tai/

[2] https://caka.vn/dong-co-giam-toc-encoder-dc-servo-jgb37-520-333rpm

[3] https://caka.vn/may-bom-tao-ap-mini-12v

[4] https://dientu360.com/dong-co-giam-toc-jga25-370

[5] https://dientu360.com/cam-bien-vat-can-hong-ngoai-e3f-ds30c4

[6].https://www.sendo.vn/ro-le-kieng-8-chan-24v-dc-220v-omcrit-relay-kinh- roletrung-gian-my2n-my4n-49032267.html

[7].http://arduino.vn/bai-viet/1107-gioi-thieu-ve-module-lm2596-giai-thuong-tuan4

[8] Trần Ngọc Hải – Trần Xuân Tùy, Giáo trình hệ thống truyền động thủy lực và khí nén, Nhà xuất bản Xây dựng năm 2010

[9] Trịnh Chất - Lê Văn Uyển, Tính toán thiết kế hệ dẫn động cơ khí – tập 1 &2, Nhà xuất bản Giáo dục

[10] Nguyễn Trọng Hiệp - Nguyễn Văn Lẫm, Thiết kế chi tiết máy - tập 2, Nhà xuất bản Giáo dục

[11] Đặng Phước Vinh, Giáo trình Kỹ thuật Vi điều khiển PIC, Nhà xuất bản Xây dựng năm 2019.

PHỤ LỤC: CÁC CHƯƠNG TRÌNH ĐIỀU KHIỂN

Chương trình xử lí ảnh bằng Python

The program utilizes various libraries including OpenCV for image processing, NumPy for numerical operations, and Serial for communication It also incorporates time management and a graphical user interface (GUI) through Tkinter, featuring buttons and labels, along with the ability to handle images using the PIL library.

# Kết nối với Arduino qua Serial (chỉnh port COM theo hệ thống của bạn) arduino = serial.Serial(port='COM7', baudrate00, timeout=1) # Thay

'COM7' bằng cổng Serial của bạn time.sleep(2) # Chờ Arduino khởi động class ColorContourApp: def init (self, root): self.root = root self.root.title("Color Contour Detection")

# Tạo frame cho phần video và logo self.main_frame = Frame(root, bg="#ADD8E6") self.main_frame.grid(row=0, column=0, padx, pady)

To create a video frame in your application, initialize it with `self.video_frame = Frame(self.main_frame)`, and position it using `self.video_frame.grid(row=0, column=0)` Then, add a label to the video frame by using `self.video_label = Label(self.video_frame)` and place it with `self.video_label.grid(row=0, column=0)`.

To create a logo frame and display important project information, we initiate a frame using `self.logo_frame = Frame(self.main_frame)` and position it with `self.logo_frame.grid(row=0, column=1, padx)` We then add labels to showcase the project title, "PBL4: DESIGN OF ELECTRONIC SYSTEM," and the topic, "PROJECT: PRODUCT CHECKING AND BOXING SYSTEM," both formatted in bold Arial font Additionally, we include the instructor's name, "Guided by: Trần Đình Sơn," and the students' names, "Students: Hồ Bá Quang - Nguyễn Công Hiếu," ensuring each label is properly aligned and spaced within the frame for a clean presentation.

To add a logo in your application, first load the image using `Image.open("C:/intel/image.png")` Then, create a PhotoImage object with `ImageTk.PhotoImage(self.logo_image)` Finally, display the logo by placing it in a label within the designated frame using `self.logo_label = Label(self.logo_frame, image=self.logo_photo)` and position it in the grid with `self.logo_label.grid(row=4, column=0)`.

The control buttons for the camera interface are organized within a frame, created using `Frame(root)`, and positioned in the grid layout at row 4, column 0 A "Start Camera" button is included, which triggers the `start_camera` function when clicked This button is styled with a green background, has a width and height of 2, and uses the Arial font for its text.

12, "bold")) self.start_button.grid(row=0, column=0, padx=5) self.stop_button = Button(button_frame, text="Stop Camera", command=self.stop_camera, width, height=2, bg="red", font=("Arial", 12,

"bold")) self.stop_button.grid(row=0, column=1, padx=5)

# Reset và hiển thị số lượng sản phẩm self.reset_button = Button(root, text="Reset Count", command=self.reset_count, width, height=2, bg="yellow", font=("Arial",

In the user interface, a reset button is implemented to allow users to reset their selections Below this button, two labels display the quantity of products in two separate boxes, with the first box showing "Product quantity (Box 1): 0" and the second box indicating "Product quantity (Box 2): 0." Both labels are designed with a bold Arial font for clear visibility.

# Khởi tạo các biến trạng thái self.cap = None self.running = False self.count1 = 0 self.count2 = 0 self.object_detected = False self.count2_active = False def detect_color(self, frame):

Hàm nhận diện màu đỏ trong không gian màu HSV và trả về 'R' hoặc 'N'

To detect the presence of red color in a frame, the image is first converted to the HSV color space using OpenCV's `cv2.cvtColor` function Two ranges for red color are defined: `red_lower` and `red_upper`, allowing for the creation of a mask with `cv2.inRange` If the number of non-zero pixels in the red mask exceeds 1000, the function returns 'R' indicating a significant presence of red; otherwise, it returns 'N' for no detection Additionally, to analyze color contours and their centers, the frame is scaled, and two more red color ranges are established for comprehensive detection.

In this code snippet, two masks for red color detection are created using the HSV color space with specified lower and upper bounds The masks are combined using a bitwise OR operation, and contours are extracted from the resulting mask An object is detected if the area of the contour exceeds 500 pixels, at which point the contour is drawn on the original frame in green.

To calculate the center of a contour in an image using OpenCV, first compute the moments with `M = cv2.moments(contour)` If the zeroth moment `M["m00"]` is not zero, the coordinates of the center can be determined by dividing the first moments by the zeroth moment: `cX = int(M["m10"] / M["m00"])` and `cY = int(M["m01"] / M["m00"])` These coordinates are then converted to millimeters using a predefined scale factor: `cX_mm = cX * scale_factor` and `cY_mm = cY * scale_factor` To visualize the center, a circle is drawn on the frame at `(cX, cY)` with `cv2.circle(frame, (cX, cY), 5, (255, 255, 255), -1)`, and a text label displaying the center coordinates in millimeters is added using `cv2.putText(frame, f"Center ({cX_mm:.1f} mm, {cY_mm:.1f} mm)", (cX + 10, cY - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255))`.

The code initializes a camera feed and tracks object detection through a series of counters When an object is detected, it increments a counter until a threshold is reached, at which point it resets the counters The camera starts capturing video only when it is not already running, and it stops by releasing the camera resources The `update_frame` function continuously reads frames from the camera while it is active, allowing for real-time color detection.

# Gửi tín hiệu đến Arduino arduino.write(detected_color.encode()) # Gửi 'R' hoặc 'N' print(f"Detected Color: {detected_color}")

The process of video processing involves detecting red colors and identifying objects within the frame Initially, the frame is resized to 800x500 pixels and converted from BGR to RGB color format Afterward, the frame is transformed into an image using the Image.fromarray method This image is then converted to a PhotoImage format compatible with Tkinter, allowing it to be displayed in the video label by configuring the image accordingly.

The product count for box 1 is displayed and updated in real-time, while the count for box 2 is also tracked The system refreshes the video feed every 10 milliseconds to ensure accurate detection To reset the counts, both box counts are set to zero, and the detection status is cleared, ensuring a fresh start for monitoring products.

{self.count1}") self.count2_label.config(text=f"số lượng sản phẩm (hộp 2):

# Khởi tạo ứng dụng Tkinter root = tk.Tk() app = ColorContourApp(root) root.mainloop()

Chương trình điều khiển Arduino

// Khai báo chân tín hiệu cho động cơ 1

#define STEP_PIN_1 3 // STEP động cơ 1

#define DIR_PIN_1 6 // DIR động cơ 1

// Khai báo chân tín hiệu cho động cơ 2

#define STEP_PIN_2 4 // STEP động cơ 2

#define DIR_PIN_2 7 // DIR động cơ 2

// Khai báo chân tín hiệu cho động cơ 3

#define STEP_PIN_3 2 // STEP động cơ 3

#define DIR_PIN_3 5 // DIR động cơ 3

#define ENABLE_PIN 8 // ENABLE dùng chung cho động cơ 1, 2 và 3

#define SENSOR_PIN A0 // Chân tín hiệu cảm biến NPN

#define OUTPUT_PIN1 A1 // Chân điều khiển đầu ra char colorCommand = 'N'; // Lệnh nhận từ Python ('R' cho đỏ, 'Y' cho vàng, 'N' cho không

// Tốc độ và số bước int step_delay = 1000; // Thời gian giữa các bước (micro giây)

Để điều khiển động cơ di chuyển đến các vị trí khác nhau, ta cần xác định số bước cần thiết cho mỗi vị trí Ví dụ, động cơ 1 di chuyển đến vị trí A yêu cầu 1390 bước, trong khi đến vị trí B là 1610 bước Các vị trí khác như C, D, E, F, K, L cũng có số bước cụ thể, từ 0 đến 2190 bước Trong hàm setup, ta thiết lập chân cảm biến quang và chân điều khiển để đảm bảo hoạt động chính xác của hệ thống.

Serial.begin(9600); pinMode(OUTPUT_PIN2, OUTPUT);

// Cấu hình chân tín hiệu động cơ 1 pinMode(STEP_PIN_1, OUTPUT); pinMode(DIR_PIN_1, OUTPUT);

// Cấu hình chân tín hiệu động cơ 2 pinMode(STEP_PIN_2, OUTPUT); pinMode(DIR_PIN_2, OUTPUT);

// Cấu hình chân tín hiệu động cơ 3 pinMode(STEP_PIN_3, OUTPUT); pinMode(DIR_PIN_3, OUTPUT);

// Cấu hình chân ENABLE pinMode(ENABLE_PIN, OUTPUT);

// Cấu hình công tắc hành trình pinMode(X_ENDSTOP, INPUT_PULLUP); // Sử dụng điện trở PULLUP pinMode(Y_ENDSTOP, INPUT_PULLUP); pinMode(Z_ENDSTOP, INPUT_PULLUP);

// Bật driver digitalWrite(ENABLE_PIN, LOW); // LOW để bật driver

// Kiểm tra tín hiệu cảm biến quang int sensorState = digitalRead(SENSOR_PIN);

Quay động cơ 1 theo hướng ngược chiều kim đồng hồ cho đến khi công tắc hành trình được kích hoạt bằng cách sử dụng lệnh digitalWrite(DIR_PIN_2, LOW); digitalWrite(DIR_PIN_3, LOW); digitalWrite(DIR_PIN_1, HIGH); trong khi kiểm tra trạng thái công tắc hành trình với digitalRead(Z_ENDSTOP) == HIGH.

// Nếu công tắc hành trình chưa được nhấn digitalWrite(STEP_PIN_2, HIGH); delayMicroseconds(step_delay); digitalWrite(STEP_PIN_2, LOW); delayMicroseconds(step_delay);

// Nếu công tắc hành trình chưa được nhấn digitalWrite(STEP_PIN_3, HIGH); delayMicroseconds(step_delay); digitalWrite(STEP_PIN_3, LOW); delayMicroseconds(step_delay);

// Nếu công tắc hành trình chưa được nhấn digitalWrite(STEP_PIN_1, HIGH); delayMicroseconds(step_delay); digitalWrite(STEP_PIN_1, LOW); delayMicroseconds(step_delay);

} digitalWrite(STEP_PIN_2, LOW); digitalWrite(STEP_PIN_3, LOW); digitalWrite(STEP_PIN_1, LOW);

// Nhận lệnh từ Python if (Serial.available() > 0) { colorCommand = Serial.read(); // Đọc lệnh từ Python ('R', 'Y', 'N')

// Nếu phát hiện vật và màu đỏ thì di chuyển đến vị trí A if (sensorState == LOW && colorCommand == 'R') { digitalWrite(OUTPUT_PIN1, HIGH); // Kích chân A1 lên HIGH

// Di chuyển đến vị trí A moveToPositionA(); digitalWrite(OUTPUT_PIN1, LOW); // Kích chân A1 lên HIGH

// Quay về vị trí ban đầu returnToHome(); colorCommand = 'N'; sensorState = HIGH; // Giả định rằng cảm biến không còn phát hiện vật sau khi hoàn thành

The code snippet demonstrates a sequence of operations where the function `waitForCondition()` is used to pause until a signal occurs It then sets the output pin A1 to HIGH with `digitalWrite(OUTPUT_PIN1, HIGH)`, triggers the movement to position B using `moveToPositionB()`, and subsequently sets the output pin A1 back to LOW Finally, the process concludes with a call to `returnToHome()`, ensuring the system returns to its initial state.

Nếu phát hiện màu đỏ lần nữa, hãy di chuyển đến vị trí B Đặt colorCommand là 'N' và sensorState là HIGH, giả định rằng cảm biến không còn phát hiện vật sau khi hoàn thành.

The function `waitForCondition()` is utilized to pause until a specific signal occurs again Once the signal is received, the code sets `OUTPUT_PIN1` to HIGH, activating pin A1 Following this, the system executes the `moveToPositionC()` function After reaching the designated position, it sets `OUTPUT_PIN1` back to LOW, deactivating pin A1, and subsequently calls the `returnToHome()` function to reset the system to its original state.

Nếu cảm biến phát hiện màu đỏ lần nữa, hãy di chuyển đến vị trí B Giả định rằng cảm biến đã hoàn tất và không còn phát hiện vật.

The code snippet initiates a wait for a condition to be met using the waitForCondition() function Once the signal is received, it sets OUTPUT_PIN1 to HIGH, activating pin A1 The moveToPositionD() function is then called to execute a specific movement After completing the movement, OUTPUT_PIN1 is set back to LOW, deactivating pin A1, and the returnToHome() function is invoked to reset the position.

Nếu cảm biến phát hiện màu đỏ một lần nữa, hãy di chuyển đến vị trí B Giả định rằng cảm biến đã hoàn tất việc phát hiện và không còn nhận diện vật thể nào khác.

The function waitForCondition() is used to wait for a signal to occur again After receiving the signal, the code sets OUTPUT_PIN1 to HIGH, followed by setting it back to LOW Finally, the returnToHome() function is called to complete the process.

Nếu phát hiện màu đỏ lần nữa, hãy di chuyển đến vị trí B Đặt colorCommand là 'N' và sensorState là HIGH, giả định rằng cảm biến không còn phát hiện vật sau khi hoàn thành.

The process begins by waiting for a signal to occur again using the waitForCondition() function Once the signal is received, the OUTPUT_PIN1 is set to HIGH to activate pin A1 Following this, the moveToPositionF() function is executed After the movement is complete, OUTPUT_PIN1 is set back to LOW, deactivating pin A1, and the system returns to its home position with the returnToHome() function.

Nếu phát hiện màu đỏ lần nữa, hãy di chuyển đến vị trí B Đặt colorCommand là 'N' và sensorState là HIGH, giả định rằng cảm biến không còn phát hiện vật sau khi hoàn thành.

The function `waitForCondition()` is used to pause until a specific signal occurs again Following this, the code sets the output pin A1 to HIGH using `digitalWrite(OUTPUT_PIN1, HIGH)`, then executes the `moveToPositionK()` function After the movement is complete, it sets the output pin A1 back to LOW with `digitalWrite(OUTPUT_PIN1, LOW)` and finally calls the `returnToHome()` function to reset the position.

Nếu phát hiện màu đỏ lần nữa, hãy di chuyển đến vị trí B Đặt colorCommand là 'N' và sensorState là HIGH, giả định rằng cảm biến không còn phát hiện vật sau khi hoàn thành.

The code snippet demonstrates a sequence of operations in a control system: it waits for a specific condition to occur using the `waitForCondition()` function Once the condition is met, it sets the output pin A1 to HIGH by calling `digitalWrite(OUTPUT_PIN1, HIGH)`, then executes the `moveToPositionL()` function to move to a designated position After the movement, it sets the output pin A1 back to LOW with `digitalWrite(OUTPUT_PIN1, LOW)` and concludes the operation by executing the `returnToHome()` function to return to the starting point.

Ngày đăng: 28/02/2025, 11:13

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Tự động hóa trong công nghiệp - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 2.1. Tự động hóa trong công nghiệp (Trang 8)
Hình 2.2 Dây chuyền sản xuất trong công nghiệp - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 2.2 Dây chuyền sản xuất trong công nghiệp (Trang 11)
Hình 2.3 Hệ thống kiểm tra và đóng gói tự động - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 2.3 Hệ thống kiểm tra và đóng gói tự động (Trang 12)
Hình 3.1 Động cơ giảm tốc GB37- 545 24VDC - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 3.1 Động cơ giảm tốc GB37- 545 24VDC (Trang 15)
Hình 3.3 Khâu 2 của cánh tay robot - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 3.3 Khâu 2 của cánh tay robot (Trang 16)
Hình 3.10 Driver A4988 điều khiển động cơ bước - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 3.10 Driver A4988 điều khiển động cơ bước (Trang 31)
Hình 4.2 Mô hình băng tải trên phần mềm Solidwords - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.2 Mô hình băng tải trên phần mềm Solidwords (Trang 37)
Hình 4.4 Thiết kế cánh tay robot bằng phần mềm Solidwords - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.4 Thiết kế cánh tay robot bằng phần mềm Solidwords (Trang 38)
Hình 4.3 Hình ảnh băng tải ngoài thực tế - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.3 Hình ảnh băng tải ngoài thực tế (Trang 38)
Hình 4.5 Cánh tay robot trên phần mềm - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.5 Cánh tay robot trên phần mềm (Trang 39)
Hình 4.6 Cánh tay robot ngoài thực tế - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.6 Cánh tay robot ngoài thực tế (Trang 40)
Hình 4.9 Bàn để hộp đựng sản phẩm - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.9 Bàn để hộp đựng sản phẩm (Trang 42)
Hình 4.10 Bàn để sản phẩm thực tế - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.10 Bàn để sản phẩm thực tế (Trang 42)
Hình 4.10 Hệ thống hoàn chỉnh trên phần mềm - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.10 Hệ thống hoàn chỉnh trên phần mềm (Trang 43)
Hình 4.11 Hệ thống hoàn chỉnh thực tế - Thiết kế hệ thống cơ Điện tử Đề tài hệ thống kiểm tra và xếp sản phẩm vào hộp bằng cánh tay robot
Hình 4.11 Hệ thống hoàn chỉnh thực tế (Trang 44)

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w