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

Lập trình điều khiển trong chế tạo Rôbot

42 181 0

Đ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

Định dạng
Số trang 42
Dung lượng 1,38 MB

Nội dung

KHĨA LUẬN TỐT NGHIỆP Ngun Hång LỜI CẢM ƠN Trong thời gian nghiên cứu hồn thành đề tài, tơi nhận nhiều giúp đỡ q thầy cơ, bạn sinh viên ủng hộ tất người thân, bạn bè Những ủng hộ giúp tơi nhiều để hồn thành đề tài Qua đây, em xin gửi lời cảm ơn sâu sắc tới thầy giáo Vũ Mạnh Quang thường xuyên hướng dẫn, động viên giúp đỡ em Tôi xin cảm ơn người bạn nhóm SP2, người tơi vượt khó khăn, thử thách để hồn thành cơng việc Em xin chân thành cảm ơn thầy cô giáo khoa vật lý, bạn sinh viên động viên kịp thời đặc biệt có ý kiến quý báu để em hoàn thành đề tài Do lần tham gia nghiên cứu khoa học, đặc biệt tiếp cận với cơng việc lập trình đầy mẻ phức tạp, trình độ hiểu biết chưa sâu nên khơng tránh khỏi thiếu sót, hạn chế Tơi mong nhận nhiều ý kiến đóng góp thiết thực để hồn thiện Hà Nội, tháng năm 2009 Sinh viên Nguyễn Hồng Minh LỜI CAM ĐOAN Em xin cam đoan cơng trình nghiên cứu riêng em Các số liệu, kết khóa luận trung thực chưa cơng bố cơng trình nghiên cứu khác Sinh viên Nguyễn Hồng Minh MỤC LỤC Trang LỜI CẢM ƠN LỜI CAM DOAN MỤC LỤC MỞ ĐẦU I Lý chọn đề tài II.Mục tiêu nghiên cứu đề tài B NỘI DUNG Chương 1: Giới thiệu chung hợp ngữ vi điều khiển AT89C52 Chương 2: Kỹ thuật lập trình vi điều khiển chế tạo robot 13 Chương 3: Một số modul điều khiển robot 21 KẾT LUẬN 30 TÀI LIỆU THAM KHẢO 31 A MỞ ĐẦU I Lý chọn đề tài Trong q trình chế tạo máy móc tự động lập trình vi điều khiển phần việc khơng thể thiếu Lập trình vi điều khiển tạo chương trình điều khiển cho máy tự động Chương trình điều khiển xuất tín hiệu số, mạch điện tử chuyển thành tín hiệu tương tự điều khiển thiết bị, ngược lại nhận tín hiệu từ bên ngồi để xử lý thơng qua cổng (port) giao tiếp Chúng ta hình dung cỗ máy, phần khí giúp tạo thành hình dáng phần điện tử lập trình não để điều khiển hoạt động Một ưu điểm vượt trội lập trình vi xử lý chương trình điều khiển thay nhiều mạch logic phức tạp với độ xác cao, điều làm cho mạch điện tử đơn giản đỡ tốn trình chế tạo Một chương trình điều khiển viết nhiều ngơn ngữ lập trình khác Pascal, lập trình C, Assembly… Với ngơn ngữ lập trình Pascal hay C ngơn ngữ lập trình cấp cao, có ưu điểm dễ viết, dễ hiểu kích thước chương trình lớn Khi thực chương trình cho máy phức tạp, việc điều khiển có nhiều modul, lúc kích thước chương trình lớn dung lượng chip điều khiển Chính lý đó, khắc phục việc sử dụng ngơn ngữ lập trình cấp thấp Assembly để viết chương trình Để chương trình chạy được, khơng phải có chương trình đủ, cần đến chíp vi điều khiển để nạp chương trình viết vào Một chương trình điều khiển sau dịch file Hecxa nạp vào chíp chíp gắn với mạch điện tử Hiện nay, thấy có nhiều họ vi điều khiển 8051, 8048, AVR… Nhưng với trình thiết kế chế tạo robot, dã sử dụng chíp vi điều khiển AT89C52, chíp đơn có cấu trúc giống họ MCS51, loại chíp phổ biến thuận tiện giao tiếp Ngày nay, chip vi điều khiển sử dụng rộng rãi nhiều sản phẩm khác nhau, đặc biệt sản phẩm công nghệ cao thiết bị cơng nghiệp, ngoại vi máy tính, thiết bị tự động… Với mong muốn vận dụng kiến thức kỹ thuật điện tử lập trình, đặc biệt tiếp cận với lập trình điều khiển chúng tơi tham gia chế tạo thành công số robot Trong chế tạo robot đòi hỏi kỹ thuật tổng hợp gồm nhiều phần khác nhau, khóa luận tốt nghiệp mình, tơi trình bày phần nhỏ : “ Lập trình điều khiển chế tạo robot ” II Mục tiêu nghiên cứu đề tài Nghiên cứu lĩnh vực mới, lĩnh vực lập trình điều khiển, áp dụng vào thực tế để chế tạo số thiết bị điều khiển tự động Đồng thời nắm bắt số công nghệ chế tạo robot nhằm phục vụ nhu cầu tự động hóa xã hội tương lai A NỘI DUNG CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ HỢP NGỮ VÀ VI ĐIỀU KHIỂN AT89C52 Giới thiệu tổng quan hợp ngữ Hợp ngữ ( Assembly language) ngôn ngữ máy tính, có vị trí ngơn ngữ máy ngôn ngữ cấp cao Ngôn ngữ assembly gắn liền với ngơn ngữ nhị phân máy tính, sử dụng từ đại diện ngắn gọn thay cho số nhị phân dài dòng khó hiểu đươc trình dịch hợp ngữ dịch trực tiếp sang mã máy Ngôn ngữ assembly sử dụng từ có tính gợi nhớ, từ viết tắt để giúp ta dễ ghi nhớ thị phức tạp làm cho việc lập trình assembly dễ dàng Mục đích việc dùng từ gợi nhớ nhằm thay việc lập trình trực tiếp ngơn ngữ máy sử dụng máy tính thường gặp nhiều lỗi tốn thời gian Chương trình viết assembly có tốc độ cao dung lượng nhỏ Các ngôn ngữ cấp cao Pascal, C, hay Visual Basic sử dụng từ phát biểu dễ hiểu người Một dòng lệnh ngôn ngữ cấp cao biên dịch sang hợp ngữ bao gồm nhiều dòng lệnh Ngơn ngữ máy ( machine language ) ngôn ngữ dạng nhị phân máy tính Một chương trình viết ngôn ngữ máy chuỗi byte nhị phân biểu diễn lệnh mà máy tính thực thi Như ta nói trên, hợp ngữ thay mã nhị phân ngôn ngữ máy mã gợi nhớ giúp ta dễ nhớ dễ lập trình Một chương trình viết hợp ngữ khơng thể thực thi trực tiếp máy tính Sau viết xong, chương trình phải qua q trình dịch thành ngơn ngữ máy Phụ thuộc vào mức độ phức tạp mơi trường lập trình, việc dịch bao gồm nhiều bước tạo sản phẩm chương trình ngơn ngữ máy thực thi Như vậy, chương trình viết hợp ngữ (goi tắt chương trình hợp ngữ) chương trình viết dạng ký hiệu, mã gợi nhớ,… Trong phát biểu tương ứng với lệnh ngôn ngữ máy Các chương trình hợp ngữ thường gọi chương trình nguồn hay mã nguồn, chúng không thực thi trực tiếp máy tính Một chương trình viết ngơn ngữ máy (gọi tắt ngơn ngữ máy) chương trình chứa mã nhị phân biểu diễn lệnh máy tính Các chương trình ngơn ngữ máy thường gọi chương trình đối tượng hay mã đối tượng thực thi máy tính Vi điều khiển AT89C52 2.1 Sơ đồ khối Sau lập trình chương trình điều khiển dạng File Hecxa nạp vào chíp vi điều khiển AT89C52 để gắn với mạch điện tử, ta có sơ đồ khối sau: Chương trình Nạp AT89C52 Điều Khiển Mạch điện tử Một chương trình sau viết dạng file hecxa máy vi tính nạp vào chíp vi điều khiển thơng qua nạp chíp Sau đó, chíp vi điều khiển gắn trực tiếp vào mạch điện tử Chíp vi điều khiển AT89C52 thơng qua mạch điện tử, điều khiển hoạt động động robot trình làm việc Như vậy, chíp vi điều khiển có vị trí quan trọng, có tác dụng não robot Cấu tạo vi điều khiển dạng sơ đồ khối: ` Độ CPU Xung đếm Các ngắt Thời gian Bộ định thời Điều khiển ngắt Thiết bị nối Thiết bị tiếp song song Giao tiếp nối tiếp Giao tiếp song song Các bus địa chỉ, liệu, điều khiển Bộ nhớ RAM 2.2 Sơ đồ chân vi điều khiển AT89C52 Bộ nhớ ROM 2.2 Đặc điểm chung vi điều khiển AT89C52 Vi điều khiển AT89C52 mà sử dụng có đặc điểm sau: - 4KB ROM bên - 256 Byte - Port xuất nhập liệu I/O - Giao tiếp nối tiếp - 64 KB vùng nhớ mã - 64 KB vùng nhớ liệu - Xử lý Boolean 2.2 Sơ đồ chân vi điều khiển AT89C52 Trên sơ đồ chân có nhóm chân sau: 2.2.1 Nhóm chân nguồn ni + Nguồn ni 5V (chân số 40) + Nối đất (chân số 20) ;DAU TIEN LA DI THANG VA DEM VACH ;SAU DO DUNG LAI NHAT DO ;TIEP TUC DI CHUYEN THEM VACH NUA ;CUOI CUNG DUNG LAI VA THA DO RA ; KHAI BAO $MOD52 ;#include org 00h CLR P1.0 ; Chuyển chân P1.0, P1.1, P1.2, P1.3 CLR P1.1 ; giá trị CLR P1.2 CLR P1.3 ; -CHO: SETB P2.0 SETB P 2.1 ; Đưa chân P2.0, P2.1, P2.2, P2.3 ; lên giá trị SETB P 2.3 SETB P 2.2 LCALL DELAY200 START: CLR P2.0 ; Gọi thủ tục trễ ; Robot bắt đầu chuyển động CLR P2.2 SETB P2.1 SETB P2.3 LCALL DELAY100 ; DI THANG DEM DUOC VACH THI DUNG LAI -MOV R0,#0 ; Chuyển vào R0 giá trị MAIN: CJNE R0,#2,DI_DEM ; Nhảy đến DI_DEM R0 = LCALL DELAY100 LCALL DUNGLAI ; Gọi thủ tục dừng lại LCALL DELAY200 LCALL HATAY ; Gọi thủ tục hạ tay ; CHAY: JB P1.0,KHONG1 ;cho P1.0 =0 JB P1.1,KHONG2 LCALL DITHANG ; Gọi thủ tục thẳng SJMP KTRA ; Nhảy đến KTRA KHONG2: LCALL RETRAI ; Gọi thủ tục rẽ trái SJMP KTRA KHONG1: JB P1.1,KHONG3 LCALL REPHAI ; Gọi thủ tục rẽ phải SJMP KTRA KHONG3: LCALL DITHANG SJMP KTRA ; CHUONG TRINH CON -RETRAI: CLR P2.2 ;thủ tục rẽ trái SETB P2.1 SETB P2.0 SETB P2.3 RET REPHAI: CLR P2.0 ; thủ tục rẽ phải SETB P2.1 SETB P2.2 SETB P2.3 RET DITHANG: CLR P2.0 ; thủ tục thẳng CLR P2.2 SETB P2.1 SETB P2.3 RET DUNGLAI: SETB P2.0 ; thủ tục dùng lại SETB P2.1 SETB P2.2 SETB P2.3 RET ; -DEM VACH -DI_DEM: KTRA: JB P1.2,DI_DEM JNB P1.2,CHAY ;cho o P1.2 ;cho o P1.2 -Dem su kien INC R0 LJMP MAIN Đoạn chương trinh diều khiển robot dò đường đếm vạch trước dừng lại để hạ tay gắp đồ Đoạn chương trình sau tiếp tục cơng việc tiếp theo, robot thực thủ tục đưa ;CHUYEN DONG MOTO HA TAY XUONG ; moto chuyen dong canh tay xuong SETB P2.4 ; Chuyển động moto quay đưa cánh tay xuống CLR P2.5 LCALL DELAY200 ; Gọi thủ tục trễ LCALL DELAY200 SETB P2.4 SETB P2.5 ; - moto chuyen dong dua tay quay nhat SETB P 2.6 CLR P 2.7 ; Chuyển động moto quay cánh tay ; để nhặt đồ LCALL DELAY200 SETB P 2.6 SETB P 2.7 ; - nhat SETB P 1.6 ; Chuyển động moto làm cánh tay CLR P 1.7 ; nhặt đồ vật LCALL DELAY200 ; Gọi thủ tục trễ SETB P 1.6 SETB P1.7 ; moto chuyen dong dua tay len -CLR P 2.4 ; Xóa chân P2.4 SETB P 2.5 ; Đưa P2.5 lên giá trị LCALL DELAY200 ; Gọi thủ tục trễ SETB P 2.4 SETB P 2.5 LCALL DELAY200 LCALL DELAY200 Với đoạn chương trình trên, ta thấy rằng, robot phải thực thao tác nhặt đồ Nhiệm vụ tiếp theo, tơi lập trình cho robot thêm đoạn nữa, sau đặt đồ nhặt xuống ; ; TIEP TUC DI THANG THEM VACH NUA VA DUNG LAI MOV R0,#0 MAINa: ; Cho R0 = CJNE R0,#3,DI_DEMa ; Nhảy đến DI_DEMa R0 = SETB P2.0 ; Chuyển giá trị P2.0, P2.1, P2.2, P2.3 SETB P2.1 ; lên giá trị SETB P2.2 SETB P2.3 LCALL DELAY200 LCALL DUNGLAIa ; Gọi thủ tục dừng lại ; CHAYa: JB P1.0,KHONG1a ;cho P1.0 =0 JB P1.1,KHONG2a LCALL DITHANGa SJMP KTRAa KHONG2a: LCALL RETRAIa ; Gọi thủ tục rẽ trái SJMP KTRAa KHONG1a: JB P1.1,KHONG3a LCALL REPHAIa ; Gọi thủ tục rẽ phải SJMP KTRAa KHONG3a: LCALL DITHANGa SJMP KTRAa ; CHUONG TRINH CON -RETRAIa:CLR P2.2 ; Thủ tục rẽ trái SETB P2.1 SETB P2.0 SETB P2.3 RET REPHAIa:CLR P2.0 ; Thủ tục rẽ phải SETB P2.1 SETB P2.2 SETB P2.3 RET DITHANGa: CLR P2.0 ; Thủ tục thẳng CLR P2.2 SETB P2.1 SETB P2.3 RET DUNGLAIa: SETB P2.0 SETB P2.1 SETB P2.2 ; Thủ tục dùng lại SETB P2.3 RET ; -DEM VACH -DI_DEMa: KTRAa: JB P1.2,DI_DEMa JNB P1.2,CHAYa ;cho o P1.2 ;cho o P1.2 -Dem su kien INC R0 LJMP MAINa Sau thêm vạch nữa, robot dừng lại thả vật xuống Vậy làm để thả vật cánh tay robot xuống được? ;DAT VAT XUONG SAN ; moto chuyen dong canh tay xuong -SETB P2.4 ; Đưa P2.4 lên làm quay moto hạ CLR P2.5 ; cánh tay robot xuống LCALL DELAY200 ; Gọi thủ tục trễ LCALL DELAY200 SETB P2.4 SETB P2.5 ; - dat vat xuong -CLR P6 SETB P1.7 LCALL DELAY200 SETB P 1.6 SETB P1.7 ; Thả vật khỏi tay ; moto chuyen dong dua tay len CLR P 2.4 ; Chuyển động moto SETB P 2.5 ; đưa cánh tay lên LCALL DELAY200 SETB P 2.4 SETB P 2.5 LCALL DELAY200 LCALL DELAY200 ; - moto chuyen dong dua tay quay vao CLR P2.6 ; Chuyển động quay moto vào SETB P 2.7 LCALL DELAY200 ; Gọi thủ tục trễ SETB P 2.6 SETB P 2.7 ;KET THUC QUA TRINH Trong lập trình vi điều khiển, việc tăng hay giảm độ rộng xung thực cách dễ dàng thông qua việc thêm hay bớt thủ tục trễ thời gian, điều giúp bạn điều chỉnh hoạt động robot dễ dàng KẾT LUẬN “Lập trình điều khiển chế tạo robot” phần thiếu chế tạo robot Nó tạo tính ổn định tạo hoạt động linh hoạt cho robot, đồng thời việc lập trình điều khiển giúp điều khiển hoạt động robot cách dễ dàng Qua trình thực , đề tài thu kết sau: - Tìm hiểu cơng nghệ lập trình điều khiển robot - Viết chương trình sử dụng modul điều khiển tự động - Thiết kế modul lập trình điều khiển - Tham gia chế tạo thành cơng robot tham gia thi “sáng tạo robot Việt Nam 2009” Tơi hi vọng rằng, trình bày khóa luận tài liệu tham khảo có ích cho muốn tìm hiểu lập trình điều khiển TÀI LIỆU THAM KHẢO [1] Ngơ Diên Tập, Kỹ thuật ghép nối máy tính, NXB Khoa học kỹ thuật, 2001 [2] Ngô Diên Tập, Lập trình xử lý đo lường điều khiển, NXB Khoa học kỹ thuật, 2001 [3] Nguyễn Minh San – Hồng Đức Hải, Cẩm nang lập trình, NXB Giáo dục, 1999 [4] Tống Văn On – Hoàng Đức Hải, Họ vi điều khiển 8051, NXB Lao động – Xã hội ... chọn đề tài Trong q trình chế tạo máy móc tự động lập trình vi điều khiển phần việc khơng thể thiếu Lập trình vi điều khiển tạo chương trình điều khiển cho máy tự động Chương trình điều khiển xuất... vào lập trình điều khiển CHƯƠNG : MỘT SỐ MODUL ĐIỀU KHIỂN ROBOT Để hiểu phần trình lập trình robot tự động, nghiên cứu số chương trình lập trình cho vi điều khiển, chương trình trực tiếp điều khiển. .. THUẬT LẬP TRÌNH VI ĐIỀU KHIỂN TRONG CHẾ TẠO ROBOT Trình dịch hợp ngữ Trình dịch hợp ngữ (trình biên dịch) chương trình dùng để dịch chương trình hợp ngữ thành chương trình ngơn ngữ máy Chương trình

Ngày đăng: 05/05/2018, 09:01

TỪ KHÓA LIÊN QUAN

w