1. Trang chủ
  2. » Tất cả

Bản vẽ sơ đồ giải thuật

1 5 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 1
Dung lượng 308,56 KB

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

Nội dung

HCM Khoa Cơ Khí Ch.năng Họ và tên Chữ ký Ngày Thiết kế B.

Trang 1

Tiến hành cắt chữ

Bắt đầu

Kết nối máy tính và arduino bằng

UART

Chuyển động Jog

Gửi dữ liệu xuống arduino

Chuyển động Jog X Chuyển động Jog Y

Chuyển động Jog Z

Gửi lệnh xuống arduino

Home

Dir_X = 1

Dir_X = 0

Dir_Y = 1

Dir_Y = 0

Dir_ Z = 1

Dir_Z = 0

Trục Z đi lên

Tín hiệu Home Z

Dừng trục Z

Đi ngược lại

10 xung

Lùi trục Y

Tín hiệu Home Y

Dừng trục Y

Đi ngược lại

10 xung

Lùi trục X

Tín hiện Home X

Dừng trục X

Đi ngược lại

10 xung

Cắt tự động

Tiến hành cắt

Trục X di chuyển Trục Y di chuyển

Trục Z di chuyển

Gửi buffer tọa độ xuống arduino

k != pulX Khởi tạo biến đếm k = 0

Bắn BLUx

k = k +1

Dừng trục X

Dir_X = 1

k != pulZ Khỏi tạo biến đếm k = 0

Bắn BLUz

k = k +1

Dừng trục Z

Dir_Z = 1

Trục Z đi lên Trục Z đi xuống

k != pulY Khởi tạo biến đếm k = 0

Bắn BLUy

k = k +1

Dừng trục Y

Dir_Y = 1

Nhập tọa độ 2 điểm đầu và cuối của đoạn thẳng m Nhập số sung mỗi lần nội suy: BLUx, BLUy

Tính toán số xung cần thiết cấp cho mỗi trục: pulX, pulY

Số xung động cơ đã chạy được:

dentaX, dentaY

Xác định chiều quay dirX và

dirY

m song song với trục X

m song song với trục Y

Bắn xung trục X chạy BLUx

xung

Tính toán vị trí tương quan giữa

vị trí hiện tại và vị trí trước đó

Hai điểm nằm cùng phía đường thẳng m

Tiếp tục duy trì trục hiện tại thực thi

Đổi trục thực thi

Bắn xung cho trục thực thi 1

bước

Tính toán vị trí tương quan giữa

vị trí hiện tại và vị trí trước đó

dentaX < pulX

Bắn xung trục Y chạy BLUx

xung Lưu lại trạng thái hiện tại

X [n]

Y [n]

k < n

Khởi tạo biến đếm k = 0

X, Y: contour point array

G1XY(X[k], Y[k]) Xuống dao

Dir_ Z = 1 PulZ = 10000 Nhấc dao

Trục Z di chuyển

Dir_ Z = 0 pulZ = 10000

G1XY

Trục Z di chuyển

k = k +1

Xử lý chữ từ máy tính

Nhập chữ, font, font size (mm),

font style

Chuyển đổi ảnh RBG sang

ảnh xám

Tìm biên dạng bằng hàm findContours (EmguCV)

N: Số lượng đường biên

i < N

Khởi tạo max = contour[0].area

Khởi tạo i = 1 Khởi tạo index_max = 0

max < contour.area[i]

max = contour.area[i]

index_max = i

Lấy chiều cao của contour[index_max]

Tìm hệ số scale (quan hệ mm và

pixel)

N = 1

array_contour_point: Số điểm trên đường biên

j < array_contour_point_Off[0]

Khởi tạo j = 0 Khởi tạo offset = 10

Lưu tọa độ vào buffer trục X: (contourOff[0].X - offset) trục Y: (contourOff[0].Y - offset)

Lưu tọa độ vào buffer trục X: contourOff[0][j].X trục Y: contourOff[0][j].Y

j = j + 1

N = 2

Xác định thứ tự biên dạng trong

min < contour_area_Off[1]

Khởi tạo min = contour_area_Off[0]

Center_X = contour_Off[0].center.X Center_Y = contour_Off[0].center.Y

index = 0

Center_X = contourOff[1].center.X

Center_Y = contourOff[1].center.Y

index = 1

Lưu tọa độ vào buffer trục X: Center_X trục Y: Center_Y

j < array_contour_point_Off[index]

Lưu tọa độ vào buffer trục X: contour_Off[index][j].X trục Y: contour_Off[index][j].Y

j = j + 1

Khởi tạo index = 0 Khởi tạo center_X = 0 Khởi tạo center_Y = 0

Trở về

j < array_contour_point_Off[1]

j = 0

Lưu tọa độ vào buffer trục X: (contour_Off[1-index][0].X- offset) trục Y: (contour_Off[1-index][0].Y - offset)

Cắt 1 biên dạng ngoài

và 1 biên dạng trong

Cắt 1 biên dạng ngoài

và 1 biên dạng trong

j = j + 1

Xác định thứ tự biên dạng trong

Lưu tọa độ vào buffer trục X: contour_Off[index][j].X trục Y: contour_Off[index][j].Y

Trở về

Xác định thứ tự

2 biên dạng trong

Khởi tạo index[2] = 0 Khởi tạo center_X[2] = 0 Khởi tạo center_Y[2] = 0

Cắt 1 biên dạng ngoài và

2 biên dạng trong

max > contour_area_Off[stt]

Khởi tạo max= contour_area_Off[0]

Khởi tạo stt = 1 Khởi tạo stt_center = 0

Center_X[stt_center] = contour_Off[stt].center.X Center_Y[stt_center] = contour_Off[stt].center.Y

index[stt_center] = stt

Trở về

Xác định thứ tự

2 biên dạng trong

stt < 3

Center_X[stt_center] = contour_Off[stt-1].center.X Center_Y[stt_center] = contour_Off[stt-1].center.Y

index[stt_center] = stt - 1 max = contour_area_Off[stt]

stt = stt + 1 stt_center = stt_center +1

Lưu tọa độ vào buffer trục X: Center_X[stt]

trục Y: Center_Y[stt]

j < array_contour_point_Off[index[stt]]

Lưu tọa độ vào buffer trục X: contour_Off[index[stt]][j].X trục Y: contour_Off[index[stt]][j].Y

j = j + 1

j < array_contour_point_Off[index[stt]]

j = 0

Lưu tọa độ vào buffer trục X: (contour_Off[index[stt]][0].X- offset) trục Y: (contour_Off[index[stt]][0].Y - offset)

Cắt 1 biên dạng ngoài

và 2 biên dạng trong

j = j + 1

Lưu tọa độ vào buffer trục X: contour_Off[index[stt]][j].X trục Y: contour_Off[index[stt]][j].Y

Trở về

Khởi tạo stt = 0

stt = 2 stt = stt + 1

(index[0] + index[1]) = 1

index[2] = 2

(index[0] + index[1]) = 3

index[2] = 0 index[2] =1

Xử lý chữ từ máy tính

Trở về

Bắn xung cho động cơ trục X chạy đúng số xung pulX

Bắn xung cho động cơ trục Y chạy đúng số xung pulY

Bắn xung trục Y một lượng (pulY - dentaY)

dentaY = pulY?

dentaX = pulX?

Trục Y di chuyển Trục X di chuyển

Trục Z di chuyển

Trở về Trở về

Trở về

Tiến hành cắt

Trở về

Trở về

G1XY

CHƯƠNG TRÌNH ĐIỀU KHIỂN

Số lượng Khối lượng Tỉ lệ

1:1 Tờ: Số tờ: 1

Trường ĐH Bách Khoa TP.

HCM Khoa Cơ Khí

Ch.năng Họ và tên Chữ ký Ngày Thiết kế B Hoàng Sơn

H dẫn P Công Bằng Duyệt

Đ

Đ Đ

Đ

Đ

Đ

Đ

Đ

Đ Đ

Đ Đ

Đ Đ

Đ

Đ

Đ

Đ

Đ

Đ Đ

Đ

Đ

Đ

Đ

Đ

Đ Đ

Đ

Đ

Đ

Đ

Đ

Đ

S S

S S

S

S

S

S

S S

S

S

S

S

S

S

S

S S

S

S

S S

S

S

S

S

S

S

S

S

S

S S

Mở rộng/thu nhỏ biên dạng sử dụng thư viện ClipperLib

Kết thúc

Ngày đăng: 23/01/2018, 21:50

w