1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu chương 3: Thiết kế hệ Pan-Tilt ppt

14 460 1
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ệ Pan-Tilt
Thể loại Đồ án
Định dạng
Số trang 14
Dung lượng 721,8 KB

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

Nội dung

- Trên hệ Pan-Tilt ta gá cảm biến siêu âm SRF04, hệ Pan-Tilt quay mang theo cảm biến và yêu cầu vẽ được biên dạng 2D của vật đặt trước cảm biến.. Thiết kế: - Dựa theo yêu cầu đề tài, xem

Trang 1

chương 3: Thiết kế hệ Pan-Tilt

3.1 Yêu cầu:

- Đề tài yêu cầu thiết kế 1 hệ Pan-Tilt có thể quay quanh 2 trục Ox – Tilting, và Oy – Panning

- Trên hệ Pan-Tilt ta gá cảm biến siêu âm SRF04, hệ Pan-Tilt quay mang theo cảm biến và yêu cầu vẽ được biên dạng 2D của vật đặt trước cảm biến

3.2 Thiết kế:

- Dựa theo yêu cầu đề tài, xem cấu trúc của 1 hệ Pan-Tilt và tham khảo 1 số mẫu Pan-Tilt trên mạng, chúng em đã thiết kế được

1 hệ Pan-Tilt cơ bản, đáp ứng được yêu cầu mang SRF04 quay quanh 2 trục Ox, Oz dễ dàng

O Z

Y

X

Trang 2

- Hai động cơ được sử dụng để thiết kế là 2 động cơ RC Servo của hãng Futaba (các thông số như trình bày ở phần động cơ servo), momen của chúng là 3.2 kg.cm đáp ứng đủ yêu cầu mang

sensor SRF04 quay mà không sợ bị quá tải

- Cảm biến siêu âm SRF04 được gá trên top của hệ Pan-Tilt

biến có thể quét được hầu hết toàn bộ biên dạng của vật thể nằm trong tầm quét của nó (phụ thuộc cách đặt, vị trí tương đối hệ Pan-Tilt – vật)

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

I Phần cứng:

1 Vật mẫu: 3 vật mẫu: hình tròn, chữ nhật và nón cụt

Trang 3

2 Phần cứng toàn bộ của đề tài:

II Phần điện tử:

2.1 Thiết kế board điều khiển dùng AT Mega32:

a Nguyên lý:

Trang 4

b Mạch hoàn thành:

Trang 5

2.2 Board nguồn cung cấp cho 2 động cơ Servo:

Board dùng IC LM 2576 Adj, có khả năng điều chỉnh điện áp ngõ ra (mắc biến trở) và cho dòng ra lớn (lên đến 3A) Lý do chính

để chọn IC này làm mạch nguồn cho servo là nhằm đáp ứng đủ dòng tiêu thụ cho 2 động cơ servo, vì khi chạy dòng I tiêu thụ của mỗi servo khoảng > 1A, 2 servo phải mất trên 2A và các loại IC nguồn thường dùng (7805, MC34063…) không đáp ứng đủ

a Nguyên lý mạch

b Mạch hoàn thành:

Trang 6

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

1.Vi điều khiển – AT Mega32:

1.1 Chương trình chính:

a Giải thuật chương trình chính:

Bắt đầu reset

Xác định Xmax, Xmin,Ymax,Ymin

Truyền lên máy tính

Đưa cảm biến về Xmin, Ymax

Quét và gởi tọa độ lên

máy tính

Trang 7

b Source Code: viết bằng phần mềm CodeVision.

reset_servoX(); // vi tri "0"

reset_servoY();

Xmin,Xmas***************

axes = top(); // lấy giá trị Ymax - điểm cao nhất trên cùng của vật

itoa(axes,Ymax);

axes = bottom(); // lấy giá trị Ymin -điểm thấp nhất dưới cùng của vật

itoa(axes,Ymin);

axes = left(); // lấy giá trị Xmin - điểm ngoài cùng bên trái của vật

itoa(axes,Xmin);

axes = right();

itoa(axes,Xmax); // lấy giá trị Xmax -điểm ngoài cùng bên phải của vật

//**xử lý chuỗi và gởi lên máy tính các giá trị

biên***********

Trang 8

strcatf(str," ");// them ky tu ' ' strcat(str,Ymax);

strcatf(str," ");// them ky tu ' ' strcat(str,Ymin);

strcatf(str," ");// them ky tu ' ' strcat(str,Xmax);

strcatf(str," ");// them ky tu ' ' strcat(str,Xmin);

puts(str); // gởi lên máy tính chuỗi data dạng: Ymax Ymin

Xmas Xmin

lcd_clear(); // xóa LCD

lcd_puts(str);

servoX = iXmin; // đưa servo đến vị trí "top left"chuẩn

bị quét

servoY = iYmax;

delay_ms(1000);

//***********thực hiện quét vật thể***********

for (y=j2;y>=j1;y )

{

for (x=i1;x<=i2;x++)

{

servoX += 4;

if (has_obj())

{

itoa(x,axis_OX);

itoa(y,axis_OY);

strcatf(axis_OX," "); strcat(axis_OX,axis_OY);

Trang 9

puts(axis_OX);

delay_ms(100);

}

}

delay_ms(300);

servoX = iXmin;

servoY += 4;

delay_ms(300);

}

1.2 Chương trình con xác định X(min,max); Y(min,max):

a Giải thuật chương trình con xác định Ymax:

Trang 10

c Source Code:

//***********hàm xác định “top” - mép trên cùng của vật

int top(void)

{

unsigned char tang=1;

reset_servoX();

reset_servoY();

Ytang:

servoY -= 4; //Y tang

Bắt đầu

Y tăng

Ymax

Tăng ==1 S

S

Đ Thoát

X tăng

Đ

Xmax

KT

KT

Reset servoX Tăng :=0

X giảm S

S

Đ

S

Return Y Kết thúc

Trang 11

j2++;

if (servoY <= 461-20) //kiem tra Y max

else

kiemtra:

if (has_obj()) //kiem tra co vat

else

{

}

thoat:

iYmax = servoY;

return j2; //return giá trị top = Ymax

}

//********************end*********************

Trang 12

* Các chương trình con xác định Ymin, Xmax, Xmin tương tự.

1.3 Chương trình ngắt đo khoảng cách từ SRF04 đến vật-có vật hay không?

a Giải thuật:

S

Đ

Bắt đầu

Xuất 1 xung 10us từ chân PD.7 kích CB

Thiết lập INT2 ngắt cạnh lên, khởi tạo timer0.

Khi ngắt cạnh lên, cho timer chạy, INT2 chuyển qua dò cạnh xuống

Khi ngắt cạnh xuống cho timer dừng, đo khoảng time t từ lúc

có cạnh lên đến lúc có cạnh xuống

t # timeout

Có vật

Không có vật

Kết thúc

Trang 13

b Source Code:

interrupt [EXT_INT2] void ext_int2_isr(void)

{

#asm("sei")

if (MCUCSR==0x40)

else

long)count*256);

}

}

// Timer 0 overflow interrupt service routine

interrupt [TIM0_OVF] void timer0_ovf_isr(void)

{

#asm("sei")

}

2 MatLab:

Ngày đăng: 21/01/2014, 16:20

TỪ KHÓA LIÊN QUAN

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

w