MỤC LỤC
LỜI NÓI ĐẦU 3
CHƯƠNG 1 PHÂN TÍCH HỆ THỐNG 4
1.1 GIỚI THIỆU VỀ ĐỘNG CƠ BƯỚC 4
1.1.1 Vai trò của động cơ bước 4
1.1.2 Cấu tạo của động cơ bước 4
1.1.3 Hoạt động 5
1.1.4 Ứng dụng 6
1.1.5 Các đặc tính cơ bản của động cơ bước 6
1.1.6 Một số loại động cơ bước 7
1.2 CÁC GIẢI PHÁP VÀ XÁC ĐỊNH BÀI TOÁN 11
1.2.1 Phân tích và lựa chọn giải pháp 11
1.2.2 Xác định bài toán và giới hạn của đề tài 12
CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 14
2.1 SƠ ĐỒ KHỐI TỔNG THỂ CỦA HỆ THỐNG 14
2.2 SƠ ĐỒ CALL GRAPH 15
2.3 SƠ ĐỒ ĐẶC TẢ CỦA HỆ THỐNG 15
2.4 SƠ ĐỒ NGUYÊN LÝ VÀ CÁC MODULE 16
2.4.1 Sơ đồ nguyên lý tổng thể 16
2.4.2 Module điều khiển 16
2.4.3 Module động cơ 17
2.4.4 Module hiển thị 19
2.4.5 Module cảm biến 19
2.4.6 Module nguồn 20
2.5 LỰA CHỌN LINH KIỆN 20
2.5.1 Khối điều khiển 21
2.5.2 Khối nguồn 23
2.5.3 Khối hiển thị: 24
2.5.4 IC đệm dòng ULN2803: 25
2.6 SƠ ĐỒ MÔ PHỎNG 27
2.7 SƠ ĐỒ THUẬT TOÁN 28
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG 29
3.1 XÂY DỰNG PHẦN MỀM 29
3.1.1 Chương trình nạp vào vi điều khiển AT89C52 29
3.2 KẾT QUẢ MÔ PHỎNG 34
3.3 XÂY DỰNG PHẦN CỨNG 35
3.3.1 Sơ đồ nguyên lý của hệ thống 35
3.3.2 Sơ đồ mạch in 35
TÀI LIỆU THAM KHẢO 38
38 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 12715 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế mô hình điều khiển động cơ bước - Ứng dụng phục hồi robot tự hành, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nhận xét của giáo viên hướng dẫn
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
Thái Nguyên, Ngày Tháng Năm 2011
Giáo viên hướng dẫn
(Ký ghi rõ họ tên)
Nhận xét của giáo viên chấm
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
……………………………………………………………………………………………………………………………..………………..
Thái Nguyên, Ngày Tháng Năm 2011
Giáo viên chấm
(Ký ghi rõ họ tên)
MỤC LỤC
LỜI NÓI ĐẦU
Ngày nay, việc ứng dụng cho các hệ thống nhúng ngày càng trở nên phổ biến: từ những ứng dụng đơn giản như điều khiển một chốt đèn giao thông định thời, đếm sản phẩm trong một dây chuyền sản xuất, điều khiển tốc độ động cơ điện một chiều, thiết kế một biển quảng cáo dùng Led ma trận, một đồng hồ thời gian thực….đến các ứng dụng phức tạp như hệ thống điều khiển robot, bộ kiểm soát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân. Các hệ thống tự động trước đây sử dụng nhiều công nghệ khác nhau như các hệ thống tự động hoạt động bằng nguyên lý khí nén, thủy lực, rơle cơ điện, mạch điện tử số, các thiết bị máy móc tự động bằng các cam chốt cơ khí... các thiết bị, hệ thống này có chức năng xử lý và mức độ tự động thấp so với các hệ thống tự động hiện đại được xây dựng trên nền tảng của các hệ thống nhúng.
Với mong muốn giới thiệu những ứng dụng cơ bản của hệ thống nhúng trong đời sống hiện đại và để mọi người biết đến một vài ứng dụng cụ thể cũng như tầm quan trọng của các hệ thống nhúng, nhóm chúng em đã tìm hiểu và đưa ra mô hình điều khiển động cơ bước, ứng dụng phục hồi robots tự hành của Bộ môn Kỹ thuật máy tính.
Trong quá trình thực hiện đồ án môn học, do kiến thức còn hạn hẹp cũng như kỹ năng phân tích thiết kế chưa cao nên còn nhiều thiếu sót, kính mong thầy cô và các bạn đóng góp thêm ý kiến để đề tài của chúng em thành công hơn.
Nhóm thực hiện đồ án chúng em xin chân thành cảm ơn sự hướng dẫn tận tình của ThS. Nguyễn Văn Huy – Bộ môn Kỹ thuật máy tính - Khoa Điện Tử đã giúp nhóm hoàn thành đề tài một cách tốt nhất.
Chúng em xin chân thành cảm ơn!
Nhóm thực hiện đề tài: Dương Thanh Hoàng
Trần Xuân Kỳ
Trần Văn Linh
CHƯƠNG 1: PHÂN TÍCH HỆ THỐNG
GIỚI THIỆU VỀ ĐỘNG CƠ BƯỚC
Vai trò của động cơ bước
Động cơ bước có vai trò rất quan trọng trong điều khiển chuyển động kỹ thuật số, tự động hóa,… vì nó là cơ cấu chập hành trung thành với những lệnh đưa ra dưới dạng số, nó chấp hành chính xác. Ta cớ thể điều khiển nó quay một góc bất kỳ, chính xác, dừng lại ở một vị trí nào đó ta muốn. Vì vậy nó được ứng dụng nhiều trong tự động hóa và điều khiển số
Một số ứng dụng như : máy CNC, máy in, ổ cứng , ổ đĩa quang, robot, …
Rất nhiều ứng dụng đòi hỏi cơ cấu chuyển động có độ chính xác cao, chuyển động êm cho thấy vai trò của động cơ bước rất quan trọng.
Cấu tạo của động cơ bước
Động cơ bước là một loại động cơ điện có nguyên lý và ứng dụng khác biệt với đa số các động cơ điện thông thường. Chúng thực chất là một động cơ không đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của rôto có khả năng cố định rôto vào các vị trí cần thiết.
Về cấu tạo, động cơ bước có thể được coi là tổng hợp của hai loại động cơ: Động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ.
Động cơ bước có thể được mô tả như là một động cơ điện không dung chuyển mạch
Cụ thể, các mấu trong động cơ là rô to và stato là các năm châm vĩnh cửu hoăc trong trường hợp của động cơ biến từ trở nó là những khối răng làm bằng vật liệu nhẹ có từ tính, cho phép chúng quaykhá nhanh và với một mộ điều khiển thích hợp cho phép chúng khởi động và dừng lại ở bất kỳ vị trí nào ta muốn một cách dễ dàng.
Hình mẫu của một động cơ bước trong thực tế
Động cơ bước có thể được dùng trong hệ thống vòng hở đơn giản những hệ thống này đảm bảo cho hệ thống điều khiển gia tốc với tải trọng tĩnh, nhưng khi tải trọng thay đổi hoặc điều khiển ở gia tốc lớn, người ta vẫn dùng hệ điều khiển vòng kín với động cơ bước một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ.
Hoạt động
Động cơ bước không quay theo cơ chế thông thường, chúng quay theo từng bước nên có độ chính xác rất cao về mặt điều khiển học Chúng làm việc nhờ các bộ chuyển mạch điện tử đưa các tín hiệu điều khiển vào stato theo thứ tự và một tần số nhất định.
Tổng số góc quay của rôto tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của rôto phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi.
Một số ưu và nhược điểm của động cơ bước:
Ưu điểm:
Khi dùng động cơ bước không cần mạch phản hồi cho điều khiển vị trí và vận tốc.
Thích hợp với các thiết bị điều khiển số.với khả năng điều khiển số trực tiếp (động cơ bước trở thành thông dụng trong kĩ thuật robot)
Hầu hết các động cơ bước có thể chuyển động ở tần số âm thanh,
Nhược điểm:
Công xuất thấp (việc nâng cao công xuất của động cơ bước đang được rất quan tâm hiện nay)
Ứng dụng
Trong điều khiển chuyển động kỹ thuật số, động cơ bước là một cơ cấu chấp hành đặc biệt hữu hiệu bởi nó có thể thực hiện trung thành các lệnh đưa ra dưới dạng số.
Động cơ bước được ứng dụng nhiều trong ngành Tự động hóa chúng được ứng dụng trong các thiết bị cần điều khiển chính xác. Ví dụ: Điều khiển robot, điều khiển tiêu cự trong các hệ quang học, điều khiển định vị trong các hệ quan trắc, điểu khiển bắt, bám mục tiêu trong các khí tài quan sát, điều khiển lập trình trong các thiết bị gia công cắt gọt, điều khiển các cơ cấu lái phương và chiều trong máy bay…
Trong công nghệ máy tính, động cơ bước được sử dụng cho các loại ổ đĩa cứng, ổ đĩa mềm, máy in …
Các đặc tính cơ bản của động cơ bước
Brushlesss (không chổi than): STEP là loại động cơ không chổi than.
Load Independent (độc lập với tải): động cơ bước quay với tốc độ ổn định trong tầm moment của động cơ.
Open loop positioning (điều khiển vị trí vòng hở): thông thường chúng ta có thể đếm xung kích ở động cơ để xác định vị trí mà không cần phải có cảm biến hồi tiếp vị trí, nhưng đôi khi trong những ứng dụng đòi hỏi tính chính xác cao STEP thường được sử dụng kết hợp với các cảm biến vị trí như: encoder, biến trở …
Holding Torque (moment giữ ): STEP có thể giữ được trục quay của nó, so với động cơ DC không có hộp số thì moment giữ của STEP lớn hơn rất nhiều.
Excellent Response (Đáp ứng tốt): STEP đáp ứng tốt khi khởi động, dừng lại và đảo chiều quay một cách dễ dàng.
Một số loại động cơ bước
Động cơ bước có thể được phân loại dựa theo cấu trúc hoặc cách quấn các cuộn dây trên stator.
Dựa theo cấu trúc rotor, động cơ bước được chia thành 3 loại:
Động cơ bước từ trở biến thiên.
Động cơ bước nam châm vĩnh cửu
Động cơ bước lai.
Dựa theo cách quấn dây trên stator, động cơ bước được chia thành hai loại:
Động cơ bước đơn cực.
Động cơ bước lưỡng cực.
Các bộ phận cấu thành nên động cơ bước.
Ngoài ra, các loại này còn rơi vào một trong hai phương pháp cấu tạo. Trong phương pháp thứ nhất, Hình 1.3a, rotor có các răng bình thường. Stator có các răng tương tự để giữ các cuộn dây. Trong phương pháp thứ hai, Hình 1.3b, mặt răng của rotor và stator có nhiều răng nhỏ hơn. Ưu điểm của các răng nhỏ này là tạo ra các góc bước nhỏ hơn.
Trên đây là một số loại động cơ bước, nhưng trong phạm vi đồ án nhóm em tập trung vào cấu tạo và nguyên tắc của loại động cơ bước được sử dụng trong đồ án, cụ thể là loại: Động cơ đơn cực như hình dưới đây.
Động cơ bước đơn cực, cả nam châm vĩnh cửu và động cơ hỗn hợp, với 5, 6 hoặc 8 dây ra thường được quấn như sơ đồ hình 1.2, với một đầu nối trung tâm trên các cuộn. Khi dùng, các đầu nối trung tâm thường được nối vào cực dương nguồn cấp, và hai đầu còn lại của mỗi mấu lần lượt nối đất để đảo chiều từ trường tạo bởi cuộn đó.
Để xử lý góc bước ở mức độ cao hơn, rotor phải có nhiều cực đối xứng hơn.
Động cơ 30 độ mỗi bước trong hình là một trong những thiết kế động cơ nam châm vĩnh cửu thông dụng nhất, mặc dù động cơ có bước 15 độ và 7.5 độ là khá lớn. Người ta cũng đã tạo ra được động cơ nam châm vĩnh cửu với mỗi bước là 1.8 độ và với động cơ hỗn hợp mỗi bước nhỏ nhất có thể đạt được là 3.6 độ đến 1.8 độ, còn tốt hơn nữa, có thể đạt đến 0.72 độ.
Như trong hình, dòng điện đi qua từ đầu trung tâm của mấu 1 đến đầu a tạo ra cực Bắc trong stator trong khi đó cực còn lại của stator là cực Nam. Nếu điện ở mấu 1 bị ngắt và kích mấu 2, rotor sẽ quay 30 độ, hay 1 bước. Để quay động cơ một cách liên tục, chúng ta chỉ cần áp điện vào hai mấu của động cơ theo dãy.
Mấu 1a 1000100010001000100010001 Mấu 1a 1100110011001100110011001
Mấu 1b 0010001000100010001000100 Mấu 1b 0011001100110011001100110
Mấu 2a 0100010001000100010001000 Mấu 2a 0110011001100110011001100
Mấu 2b 0001000100010001000100010 Mấu 2b 1001100110011001100110011
thời gian à thời gian à
*Chú ý :
Hai nửa của một mấu không bao giờ được kích cùng một lúc. Cả hai dãy nêu trên sẽ quay một động cơ nam châm vĩnh cửu một bước ở mỗi thời điểm.
Dãy bên trái chỉ cấp điện cho một mấu tại một thời điểm, như mô tả trong hình trên; vì vậy, nó dùng ít năng lượng hơn. Dãy bên phải đòi hỏi cấp điện cho cả hai mấu một lúc và nói chung sẽ tạo ra một mô men xoáy lớn hơn dãy bên trái 1.4 lần trong khi phải cấp điện gấp 2 lần.
Vị trí bước được tạo ra bởi hai chuỗi trên không giống nhau; kết quả kết hợp hai chuỗi trên cho phép điều khiển nửa bước, với việc dừng động cơ một cách lần lượt ở các vị trí đã nêu ở một trong hai dãy trên.
Chuỗi kết hợp như sau:
Mấu 1a 11000001110000011100000111
Mấu 1b 00011100000111000001110000
Mấu 2a 01110000011100000111000001
Mấu 2b 00000111000001110000011100
Thời gian à
CÁC GIẢI PHÁP VÀ XÁC ĐỊNH BÀI TOÁN
Phân tích và lựa chọn giải pháp
Khảo sát và phân tích bài toán
Hiện nay trong thực tế thì việc điều khiển động cơ bước có nhiều phương pháp, tùy vào mục đích sử dụng , tùy vào yêu cầu mà người ta có những phương pháp điều khiển động cơ bước sao cho phù hợp với yêu cầu công nghệ cũng như tính tối ưu hóa sản phẩm. Trên thị trường cũng có nhiều modul điều khiển được thiết kế sẵn, chuyên biệt phù hợp cho từng sản hẩm riêng
Dựa vào nguyên lý hoạt động và các đặc tính của động cơ bước , người ta đã thiết kế sẵn các mạch số, các IC chuyên dụng để điều khiển động cơ bước , kết hợp với các modul khác để có một sản phẩm hoàn thiện. Với các IC chuyên dụng thì người ta thiết kế các mạch điều khiển động cơ bước nhanh gọn , đơn giản, độ chính xác cao. Tuy nhiên ngoài việc sử dụng các vi mạch chuyên dụng để điều khiển nó, ta hoàn toàn có thể dụng vi điều khiển để điều khiển nó, kết hợp với các IC số khác và lập trình ta hoàn toàn có thể điều khiển được động cơ bước tùy theo ý mình, chủ động thiết kế phần cứng hơn, không như việc sử dụng các IC chuyên dụng. Việc thiết kế mạch điều khiển động cơ bước dùng vi điều khiển cũng đơn giản, thông qua lập trình ta có thể thiết kế mạch tùy ý sao cho tối ưu nhất, và với việc sử dụng vi điều khiển để điều khiển động cơ bước thì ta có thể tích hợp thêm cho nó nhiều chức năng khác cho từng ứng dụng cụ thể cũng chỉ với cùng một bộ điều khiển đó mà không cần tốn thêm nhiều modul khác dễ dàng , linh hoạt.
Với một vi điều khiển thì ngoài việc dùng nó làm modul điều khiển động cơ ta hoàn toàn có thể dùng nó để điều khiển các modul khác cùng hoạt động song song mà không cần tốn thêm nhiều modul khác. Năng lượng để cấp cho vi điều khiển cũng rất nhỏ, khả năng xử lý của thì tùy vào từng loại mà cho ta tốc độ khác nhau, nhưng đảm bảo yêu cầu để giải quyết bài toán này.
Lựa chọn giải pháp
Giải pháp công nghệ
Qua phân tích ở trên, nhóm chúng em đưa ra giải pháp điều khiển động cơ bước sử dụng vi điều khiển thông qua việc điều khiển các chuỗi xung đưa đến các cuộn dây của động cơ bước để nó quay được những góc tùy theo ý mình, qua đó ta hoàn toàn có thể xác định được góc quay của động cơ, và xác định được vị trí cụ thể của nó khi chuyển động.
Giải pháp thiết kế
Để điều khiển ta dùng vi điều khiển để xuất các chuỗi xung và đưa đến các cuộn dây của động cơ, với tần số hợp lý thì động cơ sẽ quay với tốc độ hợ lý, và theo yêu cầu thiết kế. Qua đó, ta xác định được tốc độ thực tế của động cơ.
Thông qua việc điều khiển các dãy xung đưa đến các cuộn dây của động cơ thì ta hoàn toàn có thể điều khiển cho động cơ quay được các góc như ý muốn va dừng lại ở vị trí mong muốn.
Ứng dụng củ thể trong đề tài là phục hồi robot tự hành, thì ta hoàn toàn có thể điều khiển cho nó chạy theo một lộ trình được đặt sẵn, thiết kế thêm các công tắc hành trình để nó có thể tránh được vật cản khi xảy ra va chạm trong quá trình hoạt động của nó.
Xác định bài toán và giới hạn của đề tài
Các yêu cầu
Điều khiển động cơ quay đến một vị trí xác định, dừng ở vị trí bất kỳ ta muốn
Tốc độ quay điều chỉnh được
Hoạt động với điện áp 12V/DC
Tốc độ ổn định, sai số nhỏ
Thông qua điều khiển động cơ ứng dụng vào việc phục hồi robot tự hành :
Điều khiển cho robot di theo một lộ trình đặt sẵn
Có khả năng tránh được vật cản trong khu đang chạy
Có khả năng cải tiến và nâng cấp
Kết nối với các modul khác
Giới hạn của đề tài
Do những đặc thù của động cơ bước nên hệ thống làm việc với tốc độ không cao, momen quay nhỏ
Mô men của động cơ nhỏ nên chỉ mang được những tải nhỏ, việc tăng tải trọng làm quá trình chuyển động ko chính xác
Nguồn nuôi là động cơ là 12V nên việc cấp nguồn cho động cơ gặp khó khăn
Việc mở rộng thêm các modul gặp khó khăn do khả năng mang tải của động cơ không lớn.
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
SƠ ĐỒ KHỐI TỔNG THỂ CỦA HỆ THỐNG
Khối
xử lý
Khối
chấp
hành
Khối hiển
thị
Khối
cảm biến
Khối nguồn
Sơ đồ tổng thể của hệ thống
Khối nguồn: Lấy AC (hoặc DC) đầu vào từ 5 – 15V chỉnh lưu thành nguồn DC cấp cho khối chấp hành đồng thời biến đổi thành nguồn DC 5V cung cấp cho khối điều khiển, hiển thị, cảm biến
Khối cảm biến: Nhận ra các vật cản thông qua việc tác động của các công tắc, gửi tín hiệu về khối xử lý.
Khối xử lý: Tiếp nhận thông tin từ khối cảm biến, từ đó xuất tín hiệu điều khiển gửi đến khối hiển thị và khối chấp hành theo các chương trình đã lập sẵn.
Khối chấp hành: Nhận tín hiệu điều khiển từ khối xử lý, thực hiện các lệnh điều khiển do khối xử lý đưa ra để tạo ra sự di chuyển của robot.
Khối hiển thị: Nhận tín hiệu từ khối xử lý, hiển thị các vị trí va chạm tương ứng khi khối cảm biến có tín hiệu tác động.
SƠ ĐỒ CALL GRAPH
CT
điều khiển chính
Module
Xử lý
Cảm biến
Module
Xử lý
Chương trình
Cảm biến
Chấp hành
Hiển thị
Sơ đồ Callgraph
SƠ ĐỒ ĐẶC TẢ CỦA HỆ THỐNG
Lùi
Chạy thẳng
Vật
cản
bên
trái
Gặp
vật
cản
Rẽ trái
Rẽ phải
Vật
cản
bên
phải
Sơ đồ đặc tả của hệ thống điều khiển động cơ bước
SƠ ĐỒ NGUYÊN LÝ VÀ CÁC MODULE
Sơ đồ nguyên lý tổng thể
Với đồ án môn học Hệ thống nhúng với đề tài là ‘‘Điều khiển động cơ bước, ứng dụng phục hồi robot tự hành KTMT’’, việc thiết kế phần cứng của mạch hệ thống cụ thể được chia làm 5 khối cơ bản là :
Khối nguồn.
Khối cảm biến.
Khối hiển thị.
Khối động cơ.
Khối điều khiển.
Sơ đồ mạch nguyên lý tổng quát của hệ thống như sau :
Sơ đồ mạch nguyên lý tổng thể
Module điều khiển
Khối điều khiển trung tâm dùng vi điều khiển AT89C52. Khi có tín hiệu tác động vào các công tắc hành trình gắn ở chân P1.0 đến P1.3, vi điều khiển sẽ xuất tín hiệu để điều khiển khối hiển thị (Led đơn) và khối chấp hành (module động cơ) theo các chương trình đã lập trình sẵn.
IC ULN2803 là IC đệm dòng, nhằm tạo ra dòng lớn hơn cung cấp cho 2 động cơ thông qua 2 jump nối J3 và J4, các tín hiệu từ vi điều khiển sẽ đưa vào 8 cổng vào (từ chân 1 tới chân 8) của ULN2803 điều khiển mức tín hiệu ở 8 cổng ra (từ chân 11 tới chân 18) nối với động cơ.
Bộ tạo dao động dùng thạch anh 12MHz cung cấp ngồn dao động cho vi điều khiển
Bộ reset như trong hình vẽ dưới nhằm tạo ra xung reset, xác lập trạng thái ban đầu cho vi điều khiển khi nút reset được nhấn.
Sơ đồ nguyên lý module điều khiển
Module động cơ
Sơ đồ cấu tạo đông cơ
Bảng trạng thái logic đưa vào các đầu dây
Điều khiển cả bước
Full step
Step
A
B
A\
B\
0
1
1
0
0
1
0
1
1
0
2
0
0
1
1
3
1
0
0
1
Điều khiển nửa bước
Half mode sequen
Step
A
B
A\
B\
0
1
1
0
0
1
0
1
0
0
2
0
1
1
0
3
0
0
1
0
4
0
0
1
1
5
0
0
0
1
6
1
0
0
1
7
1
0
0
0
Dựa vào bảng trạng thái trên ta đưa vào các đầu dây lần lượt các chuỗi xung có mức logic tương ứng, với phương pháp điều khiển cả bước để điều khiển động cơ quay theo 1 chiều nhất định
B1: 1100
B2:0110
B3:0011
B4:1001
Để động cơ quay được 1 vòng thì ta lặp lại quá trình trên 50 lần vì mỗi bước động cơ quay được 1.8 độ nên ta phải cho động cơ thực hiện 200 bước.
Module hiển thị
Để tiện cho việc theo dõi công tắc nào đã được tác động, ta sử dụng 4 led đơn, các chân Anode được mắc nối tiếp qua các điện trở hạn dòng lên dương nguồn, đầu Ktode nối vào các chân P1.4, P1.5, P1.6, P1.7. Khi công tắc nào tác động ta sẽ bật led sáng tương ứng vị chí của công tắc đó
Sơ đồ nguyên lý module hiển thị
Module cảm biến
Bộ phận cảm biến của hệ thống sử dụng 4 công tắc hành trình SW1, SW2, SW3, SW4. Các công tắc nối trực tiếp vào các chân P0.0, P0.1, P0.2, P0.3 của vi điều khiển và các đầu còn lại nối xuống âm nguồn. Các chân này của vi điều khiển được treo lên dương nguồn thông qua các điện trở R3, R4, R5, R6 để xác định điện áp mức cao ở chân vi điều khiển khi chưa tác động vào các công tắc. Khi công tắc nào đó được tác động, chân vi điều khiển tương ứng sẽ được nối xuống âm nguồn, xác định điện áp mức thấp trên chân vi điều khiển. Thông qua vị trí đặt các công tắc và việc tác động vào các công tắc vi điều khiển sẽ xuất tín hiệu điều khiển các module khác theo chương trình đã lập trình trước.
Sơ đồ nguyên lý module cảm biến
Module nguồn
Module này tạo ra điện áp một chiều từ nguồn xoay chiều 12 – 15V để cung cấp cho các linh kiện trong hệ thống, dùng diode cầu chỉnh lưu từ điện áp xoay chiều sang điện áp một chiều, dùng IC ổn áp 7805 để lấy ra điện áp ổn định 5V ở ngõ ra. Phía sau cầu diode và sau IC7805 có tụ chống sụt áp
Sơ đồ nguyên lý module nguồn
LỰA CHỌN LINH KIỆN
Khối điều khiển
Vi điều khiển 89C52 là một vi điều khiển thuộc họ 8051 (MCS-51). Họ vi điều khiển MCS-51 do Intel sản xuất đầu tiên vào năm 1980 là các IC thiết kế cho các ứng dụng hướng điều khiển. Các IC này chính là một hệ thống vi xử lý hoàn chỉnh bao gồm các các thành phần của hệ vi xử lý: CPU, bộ nhớ, các mạch giao tiếp, điều khiển ngắt.
MCS-51 là họ vi điều khiển sử dụng cơ chế CISC (Complex Instruction Set Computer), có độ dài và thời gian thực thi của các lệnh khác nhau. Tập lệnh cung cấp cho MCS-51 có các lệnh dùng cho điều khiển xuất / nhập tác động đến từng bit.
AT89C52 là vi điều khiển do Atmel sản xuất, chế tạo theo công nghệ CMOS có các đặc tính như sau:
8 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả năng tới 1000 chu kỳ ghi xoá
Tần số hoạt động từ: 0Hz đến 24 MHz
mức khóa bộ nhớ lập trình
256 Byte RAM nội.
Port xuất /nhập I/O 8 bit.
bộ Timer/counter 16 Bit.
8 nguồn ngắt.
Giao tiếp nối tiếp điều khiển bằng phần cứng.
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoài.
Cho phép xử lý bit.
210 vị trí nhớ có thể định vị bit.
chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia.
Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Power-down).
Sơ đồ chân Vi điều khiển AT89C52
Hình ảnh thực tế Vi điều khiển AT89C52
Chip AT89C52 có các tín hiệu điều khiển cần phải lưu ý như sau:
Tín hiệu vào /EA trên chân 31 thường đặt lên mức cao ( +5V) hoặc mức thấp (GND). Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K với 89C51 hoặc tối đa 8k đối với 89C52). Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ mở rộng (tối đa đến 64Kbyte). Ngoài ra người ta còn dùng /EA làm chân cấp điện áp 12V khi lập trình EEPROM trong 8051.
Chân PSEN (Program store enable): PSEN là chân tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển cho phép chương trình mở rộng, PSEN thường được nối đến chân /OE (Output Enable) của một EPROM hoặc ROM để cho phép đọc các bytes mã lệnh. Hãy nhớ rằng : bình thường chân /PSEN sẽ được thả trống ( No Connect).Chỉ khi nào cho /EA ở mức thấp thì lúc đó: /PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình được lấy từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh của 8951 để giải mã lệnh. /PSEN ở mức thụ động (mức cao) nếu thi hành chương trình trong ROM nội của 89C52.
Các chân nguồn: AT89C52 hoạt động ở nguồn đơn +5V. Vcc được nối vào chân 40, và Vss (GND) được nối vào chân 20.
Khối nguồn
Khối nguồn của mạch sử dụng IC ổn áp LM7805 thuộc dòng 78xx. 78xx là loại IC dùng để ổn định điện áp dương với điều kiện điện áp đầu vào luôn luôn lớn hơn đầu ra 3V. Dòng IC 78xx có nhiều loại, ổn định nhiều mức điện áp khác nhau, cụ thể ở đây 7805 là dùng để ổn định điện áp đầu ra ở mức 5V.
Sơ đồ chân và hình ảnh thực tế IC 7805
7805 đóng gói dạng TO-220 gồm có 3 chân:
Vin: Chân đầu nguồn vào
GND: Chân nối đất
Vo: Chân đầu nguồn ra
Như chúng ta biết, mạch ổn áp dùng Diode Zener tuy nhỏ gọn, đơn giản nhưng có nhược điểm cho dòng điện nhỏ (~20mA). Để tạo ra một điện áp cố định nhưng dòng điện lớn hơn người ta mắc thêm một Tranzitor để khuếch đại như sơ đồ dưới đây:
Sơ đồ cấu tạo IC ổn áp 7805
Đây cũng chính là sơ đồ cấu tạo của IC 7805. Thông qua R và Dz ghim điện áp cố định trên chân E của Tranzitor Q1
Mạch ổn áp dùng trên ổn áp 7805 (78xx nói chung) rất ổn định và hiệu quả nên được sử dụng rộng rãi, sơ đồ lắp mạch đơn giản như sau:
Sơ đồ mạch ổn áp dùng IC ổn áp 7805
Khối hiển thị:
LED – viết tắt của cụm từ Light Emitting Diode, tạm dịch là Điốt phát quang. Là các điốt có khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống như điốt, LED được cấu tạo từ một bán dẫn loại P ghép với một bán dẫn loại N. Tương tự như bóng đèn tròn dùng sợi đốt nhưng không phải chiếu sáng bằng sợi đốt, đèn LED được coi là loại đèn tiết kiệm điện năng nhất, tạo ra hiệu suất ánh sáng tốt nhất , tỏa nhiệt ít hơn so với các thiết bị chiếu sáng thông thường.
Hoạt động của LED:
Giống như nhiều loại điốt bán dẫn khác
Tùy theo mức năng lượng giải phóng cao hay thấp mà bước sóng ánh sáng phát ra khác nhau (tức màu sắc của LED sẽ khác nhau). Mức năng lượng (và màu sắc của LED) hoàn toàn phụ thuộc vào cấu trúc năng lượng của các nguyên tử chất bán dẫn
Tùy vào từng loại LED mà điện áp phân cực thuận khác nhau. Đối với LED thường thì điện áp phân cực thuận khoảng 1,5V đến 2,5V; còn đối với LED siêu sáng thì điện áp phân cực thuận có thể lên tới 5V
Khi LED hoạt động bình thường thì cường độ dòng điện từ 10mA đến 50mA.
Sơ đồ, ký hiệu và hình ảnh thật của LED
IC đệm dòng ULN2803:
Đây là IC gồm 8 transistor NPN ghép Darlington gắn mạch điện tử trong dãy này của chuổi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức logic thấp như: TTL, CMOS hoặc PMOS/NMOS
Sơ đồ khối IC ULN2803
ULN2803 được thiết kế để phù hợp với chuẩn TTL
Vài chỉ số kĩ thuật của IC ULN2803:
Dòng điện ngõ vào khoảng 25mA
Điện áp ngõ vào khoảng 0.5V – 30V
Dòng ra tới 500 mA/ 50 V
Đệm 8 kênh riêng biệt
Đầu ra đảo.
Sơ đồ cấu tạo 1 kênh đệm dòng của ULN2803
Hình ảnh thực tế IC ULN2803
SƠ ĐỒ MÔ PHỎNG
Hệ thống được mô phỏng trên phần phềm Proteus 7.5 Sp2. Do những đặc thù riêng của phần mềm nên trong mạch mô phỏng không cần có mạch tạo dao động, mạch nguồn
Sơ đồ mô phỏng hệ thống trên Proteus
SƠ ĐỒ THUẬT TOÁN
Hoàn thành
Đ
Dừng lại
Chạy theo
lộ trình đặt sẵn
S
Chạy tiếp
Có vật cản
S
Đ
Tránh vật cản
Sơ đồ thuật toán điều khiển động cơ bước
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG
XÂY DỰNG PHẦN MỀM
Việc thiết kế phần mềm cho hệ thống chính là việc xây dựng chương trình điều khiển nạp vào Vi xử lý. Trước tiên phải có sơ đồ thuật toán điều khiển để xử lý các vấn đề về nguyên tắc hoạt động của mạch.
Các vấn đề đặt ra là :
- Robots chạy theo một hành trình định trước
- Khi gặp vật cản (các công tắc được tác động) thì cần tránh các vật cản và đi tiếp.
Chương trình nạp vào vi điều khiển AT89C52
Chương trình cho hệ thống điều khiển động cơ được soạn thảo trên trình biên dịch KeilC 4 bằng ngôn ngữ C. Sau đây là chương trình:
#include
#define DCB P2
#define thuan 1
#define nguoc 0
#define co 1
#define khong 0
#define tien 1
#define lui 0
#define trai 1
#define phai 0
#define sang 0
#define tat 1
sbit P_S = P1^1; //Cong tac ben phai phia sau
sbit P_T = P1^3; //Cong tac ben phai phia truoc
sbit T_S = P1^0; //Cong tac ben trai phia sau
sbit T_T = P1^2; //Cong tac ben trai phia truoc
sbit D_PS = P1^5; // Den bao ben phai phia sau
sbit D_PT = P1^6; // Den bao ben phai phia truoc
sbit D_TS = P1^4; // Den bao ben trai phia sau
sbit D_TT = P1^7; // Den bao ben trai phia truoc
bit DC1, DC2, STOP; //1 la thuan 0 la nguoc
unsigned char CB_DC1[]={0x1,0x2,0x4,0x8};
unsigned char CB_DC2[]={0x10,0x20,0x40,0x80};
unsigned char G_DC1,G_DC2;//Vi tri cua moi dong co
unsigned int cuon_day;
unsigned int van_toc, dem_ngat, chu_ky, tre;
// Khai bao Timer 0
void setup_timer0(void){
TMOD=0x2; // Che do 8 bit tu nap lai
TL0=0x6; // Gia tri khoi tao, 200 xung thi tran
TH1=0x6; // Gia tri nap lai
EA=0;
ET0=1;
TR1=0;
EA=1;
}
// Chuong trinh ngat Timer 0
void Run(void) interrupt 1 {
TR0=0; // Dung chay Timer 0
if(++dem_ngat==van_toc){
if((!STOP)||(!cuon_day==0)){ // Chua co dk dung lai hoac chua tro ve cuon day dau tien
if(DC1){
G_DC1=CB_DC1[cuon_day];
}
else{
G_DC1=CB_DC1[3-cuon_day];
}
if(DC2){
G_DC2=CB_DC2[cuon_day];
}
else{
G_DC2=CB_DC2[3-cuon_day];
}
if(++cuon_day>=4){
cuon_day=0;
chu_ky++;
}
}
else{
DCB=0x0;//Tat dong dien dua vao` cac cuon day
}
DCB=G_DC1+G_DC2; // Xuat tin hieu ra PORT 2
}
if(dem_ngat>van_toc){
dem_ngat=0;
}
TR0=1; // Cho chay Timer 0
}
// Chuong trinh con cho Tien va Lui
void MOVE(bit huong,unsigned int so_chu_ky){
if(huong){
DC1=thuan;
DC2=nguoc;
}
else{
DC1=nguoc;
DC2=thuan;
}
chu_ky=0; //bat dau dem so chu ky
STOP=khong;
while(so_chu_ky>=chu_ky)
{}
STOP=co;
}
// Chuong trinh cho re
void re(bit huong,unsigned int so_chu_ky){
if(huong){
DC1=thuan;
DC2=thuan;
}
else{
DC1=nguoc;
DC2=nguoc;
}
chu_ky=0;//bat dau dem so chu ky
STOP=khong;
while(so_chu_ky>=chu_ky)
{}
STOP=co;
}
// Chuong trinh tao tre
void delay(unsigned int time){
unsigned int i;
while(--time){
i=1000;
while(--i)
{}
}
}
void SW_TT(void){
D_TT=sang; // Bat den bao
STOP=co; delay(tre); // Dung lai 1 chut
D_TT=tat; // Tat den bao
STOP=khong; D_TS=sang; D_PS=sang; // Bat 2 den phia sau
MOVE(lui,10); // Lui lai 1 doan
STOP=co; delay(tre); // Dung lai 1 chut
D_TS=tat; D_PS=tat; // Tat 2 den phia sau
STOP=khong; D_PT=sang; D_PS=sang; // Bat 2 den ben phai
re(phai,19); // Quay xe 90* sang phai
STOP=co; D_PT=tat; D_PS=tat; // Tat 2 den ben phai
delay(tre); // Dung lai 1 chut
STOP=khong; // Chay tiep
}
void SW_PT(void){
D_PT=sang; // Bat den bao
STOP=co; delay(tre); // Dung lai 1 chut
D_PT=tat; // Tat den bao
STOP=khong; D_TS=sang; D_PS=sang; // Bat 2 den phia sau
MOVE(lui,10); // Lui lai 1 doan
STOP=co; delay(tre); // Dung lai 1 chut de dong co doi chieu quay
D_TS=tat; D_PS=tat; // Tat 2 den phia sau
STOP=khong; D_TT=sang; D_TS=sang; // Bat 2 den ben trai
re(trai,19);// Quay xe 90* sang trai
STOP=co; D_TT=tat; D_TS=tat; // Tat 2 den ben trai
delay(tre); // Dung lai 1 chut
STOP=khong; // Chay tiep
}
void SW_TS(void){
D_TS=sang; // Bat den bao
STOP=co; delay(tre); // Dung lai 1 chut
D_TS=tat; // Tat den bao
STOP=khong; D_TT=sang; D_PT=sang; // Bat 2 den phia truoc
MOVE(tien,10); // Tien len 1 doan
STOP=co; delay(tre); // Dung lai 1 chut de dong co doi chieu quay
D_TT=tat; D_PT=tat; // Tat 2 den phia truoc
STOP=khong; D_PT=sang; D_PS=sang;
re(phai,19); // Quay xe 90* sang phai
STOP=co; D_PT=tat; D_PS=tat;
delay(tre); // Dung lai 1 chut
STOP=khong; // Chay tiep
}
void SW_PS(void){
D_PS = sang; // Bat den bao
STOP=co; delay(tre); // Dung lai 1 chut
D_PS = tat; // Tat den bao
STOP=khong; D_TT=sang; D_PT=sang; // Bat 2 den phia truoc
MOVE(tien,10); // Tien len 1 doan
STOP=co; delay(tre); // Dung lai 1 chut de dong co doi chieu quay
D_TT=tat; D_PT=tat; // Tat 2 den phia truoc
STOP=khong; D_TT=sang; D_TS=sang; // Bat 2 den ben trai
re(trai,19); // Quay xe 90* sang trai
STOP=co; D_TT=tat; D_TS=tat; // Tat 2 den ben trai
delay(tre); // Dung lai 1 chut
STOP=khong; // Chay tiep
}
// Chuong trinh chinh
void main(){
chu_ky=0; cuon_day=0;
STOP=co;
ET0=1; TR0=1;
setup_timer0();
van_toc=80;
tre=50;
while(1){
STOP=0;
DC1=thuan; // Cho xe di thang
DC2=nguoc;
if(T_T==0) // Cong tac ben trai phia truoc tac dong
SW_TT();
if(P_T==0) // Cong tac ben phai phia truoc tac dong
SW_PT();
if(T_S==0) // Cong tac ben trai phia sau tac dong SW_TS();
if(P_S==0) // Cong tac ben phai phia truoc tac dong
SW_PS();
}
}
KẾT QUẢ MÔ PHỎNG
Sau đây là kết quả mô phỏng của hệ thống trê Proteus:
Kết qủa mô phỏng
XÂY DỰNG PHẦN CỨNG
Sơ đồ nguyên lý của hệ thống
Sơ đồ nguyên lý của hệ thống được thiết kế trên công cụ Capture CIS của bộ phần mềm Cadence OrCAD v10.5
Sau đây là sơ đồ nguyên lý tổng quan
Sơ đồ nguyên lý tổng quan thiết kế trên Capture CIS
Sơ đồ mạch in
Mạch in được thiết kế trên công cụ Layout Plus của bộ phần mềm Cadence OrCAD v10.5
Mạch tổng quan:
Lớp bottom sau khi đã phủ đồng:
Lớp top:
Sơ đồ sắp xếp linh kiện:
TÀI LIỆU THAM KHẢO
Động cơ bước - Nguyễn Quang Hùng, Trần Ngọc Bình - NXB KHKT 2003
Họ vi điều khiển 8051 - Tống Văn On - NXB LĐXH 2009