Ứng dụng sóng cao tần vào điều khiển Robot

Chương 1: DẪN NHẬP

1.1. ĐẶT VẤN ĐỀ . 1

1.2. TẦM QUAN TRỌNG CỦA ĐỀ TÀI . 1

1.3. YÊU CẦU VÀ ĐẶC TÍNH KỸ THUẬT . 2

1.4. MỤC ĐÍCH NGHIÊN CỨU. 3

Chương 2: CÁC VẤN ĐỀ LÝ THUYẾT LIÊN QUAN VÀ LINH KIỆN

SỬ DỤNG

2.1. HỆ THỐNG ĐIỀU KHIỂN TỪ XA . 5

2.1.1. GIỚI THIỆU . 5

2.1.2. HỆ THỐNG ĐIỀU KHIỂN TỪ XA BẰNG SÓNG VÔ TUYẾN . 5

2.1.3. LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ . 8

2.2. LÝ THUYẾT VỀ ĐIỀU CHẾ . 8

2.2.1. GIỚI THIỆU . 8

2.2.2. PHƯƠNG PHÁP ĐIỀU CHẾ FSK (frequency shift keying) . 9

2.2.2.1. Phương pháp hoạt động của phương pháp FSK. 9

2.2.2.2. Phương trình toán học của FSK . 10

2.3. NHỮNG LINH KIỆN SỬ DỤNG . 11

2.3.1. IC THU PHÁT RF:HM-TR 915 . 11

2.3.1.1. Giới thiệu. 11

2.3.1.2. Các đặc điểm kỹ thuật. 11

2.3.1.3. Các lĩnh vực ứng dụng . 11

2.3.1.4. Mạch và sơ đồ chân . 12

2.3.1.5. Chức năng các chân . 13

2.3.1.6. Các thông số cơ bản . 14

2.3.1.7. Thiết lập hoạt động . 14

2.3.2. VI ĐIỀU KHIỂN HỌ 8051 . 18

2.3.2.1. Dải đếm lập trình được PCA (Programmable Counter Array) . 18

2.3.2.2. Timer 2 . 27

2.3.3. IC GIAO TIẾP MAX232 . 34

2.3.4. CÁC PHẦN TỬ ĐIỀU KHIỂN CÁCH LY . 34

2.3.4.1. Opto Transistor (4N35). 34

2.3.4.2. Relay 12V. 35

Chương 3: MẠCH ĐIỆN ĐIỀU KHIỂN ROBOT

3.1. TỔNG QUÁT VỀ PHẦN CỨNG. 36

3.1.1. SƠ ĐỒ KHỐI MẠCH PHÁT VÀ CHỨC NĂNG TỪNG KHỐI . 36

3.1.2. SƠ ĐỒ KHỐI MẠCH THU VÀ CHỨC NĂNG NHIỆM VỤ CỦA TỪNG

KHỐI . 37

3.2. KHỐI NGUỒN . 44

3.3. MODULE MCU. 40

3.4. MODULE CHUYỂN ĐỔI TÍN HIỆU . 41

3.5. MODULE BÀN PHÍM. 42

3.6. MODULE LÁI ĐỘNG CƠ . 43

3.7. KHỐI CÁCH LY NGUỒN TẢI . 44

3.8. KHỐI KHUẾCH ĐẠI DÒNG ÁP IC2803. 44

3.9. BÀN PHÍM ĐIỀU KHIỂN BẰNG TAY . 45

3.10. LAYOUT CHO MẠCH ĐIỀU KHIỂN ROBOT . 47

3.10.1. TOP LAYER . 47

3.10.2. BOT LAYER. 48

3.10.3. SST LAYER (LỚP LINH KIỆN) . 49

3.10.4. MẠCH THỰC TẾ . 50

3.10.5. ROBOT SAU KHI THI CÔNG . 51

3.11. LAYOUT CHO MẠCH BẰNG TAY . 52

3.11.1. TOP LAYER (MẠCH ĐIỀU KHIỂN BẰNG TAY) . 52

3.11.2. BOT LAYER (MẠCH ĐIỀU KHIỂN BẰNG TAY) . 52

3.11.3. MẠCH THỰC TẾ . 53

3.11.4. MẠCH SAU KHI THI CÔNG . 54

3.12. GIỚI HẠN ĐỀ TÀI . 55

Chương 4: PHẦN MỀM VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN

4.1. PHẦN MỀM DOCK LIGHT. 56

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

4.2.1. CHƯƠNG TRÌNH CHÍNH Main.c. 56

4.2.2. HEADER declare.h . 57

4.2.3. HEADER define_sfr_const.h. 58

4.2.4. MODULE init_PCA_timer.c . 60

4.2.5. MODULE delay_func.c . 61

4.2.6. MODULE init_UART.c . 62

4.2.7. MODULE process_motor.c . 63

4.2.8. MODULE moving.c . 65

4.2.9. MODULE action.c . 66

TÀI LIỆU THAM KHẢO

pdf80 trang | Chia sẻ: lethao | Lượt xem: 2245 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Ứng dụng sóng cao tần vào điều khiển Robot, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
. module sẽ ở chế độ ngủ nếu chân này xuống mức thấp. Hình 2.9: Sơ đồ giao tiếp giữa module với cổng COM ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 16 SVTH: Lê Trung Hiếu Hình 2.10: Sơ đồ giao tiếp giữa modu với MAX232 Trong chế độ cấu hình thì các thông số làm việc của module có thể được thiết lập thông qua chương trình cài đặt HM-TR. Việc cài đặt được thực hiện thông qua việc giao tiếp giữa máy tính (PC) với module. Ban đầu nó được mặc định với các thông số: 9600, 8, N, 1 như bên dưới. Hình 2.11: Hình minh họa cho giao diện của chương trình HM-TR SETUP UTILITY  Nút “Read” : đọc các thông số từ module về  Nút “Write” : đưa các thông số đã chọn vào module để làm việc  Nút “Default” :sử dụng lại các thông số mặc định của module. ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 17 SVTH: Lê Trung Hiếu Hình 2.12: Hình dạng 3 chiều của module Hình 2.13: Hình dạng module khi nhìn từ trên xuống Hình 2.14: Hình dạng module khi nhìn ngang ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 18 SVTH: Lê Trung Hiếu 2.3.2 VI ĐIỀU KHIỂN HỌ 8051 Vi điều khiển họ 8051 đã trở nên khá quen thuộc với các bạn sinh viên. Phần sau đây sẽ không nhắc lại những vấn đề đã được trình bày trong giáo trình “Vi xử lý” mà sẽ giới thiệu những tính năng mới trong trong một số vi điều khiển họ 8051 mở rộng. Vi điều khiển P89V51RD2xx của Philips sẽ được lấy làm minh họa. 2.3.2.1 Dải đếm lập trình được PCA (Programmable Counter Array) PCA là một cải tiến đáng kể đối với những vi điều khiển họ 8051. Dải đếm này bao gồm một timer 16-bit và 5 module hỗ trợ. Các ngõ ra của module được ký hiệu lần lượt là CEX0 đến CEX4 tương ứng với các chân P1.3 đến P1.7. Các module này có thể được lập trình để hoạt động ở 1 trong 4 chức năng: Capture 16-bit, Timer 16-bit, High-speed output 16-bit, PWM 8-bit. Riêng module 4 có thêm chức năng Watchdog timer. Hình 2.15: PCA Modules Để hỗ trợ PCA, các vi điều khiển họ 8051 được bổ sung thêm một số thanh ghi sau:  Thanh ghi CH và CL (địa chỉ lần lượt là F9H và E9H): hai thanh ghi chứa byte cao, byte thấp của timer 16-bit PCA (tương tự như thanh ghi TH0, TL0 của timer 0 và TH1, TL1 của timer 1.  Thanh ghi CCAPnH (n=0..4) (địa chỉ từ FAH đến FEH) và CCAPnL ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 19 SVTH: Lê Trung Hiếu (n=0..4) (địa chỉ từ EAH và EEH): thanh ghi chứa byte cao, byte thấp của giá trị cần nạp cho mỗi module.  Thanh ghi CMOD: (địa chỉ D9H, không định địa chỉ bit, giá trị reset: 00H) Bit 7 6 5 4 3 2 1 0 Ký hiệu CIDL WDTE - - - CPS1 CPS0 ECF Bảng 2.3 Thanh ghi CMOD BIT Ký hiệu Chức năng 7 CIDL Counter Idle Control. CIDL = 1 sẽ cho phép PCA dừng khi8051 vào chế độ Idle, ngược lại CIDL = 0 buộc PCA vẫn tiếp tục hoạt động. 6 WDTE Watchdog timer enable. Set bit này lên 1 để enable chức năng Watchdog timer của module 4. Ngược lại sẽ disable. 5 ÷ 3 - Bit dự trữ 2 CPS1 Count Pulse Select 1. Bit cao chọn nguồn xung nhịp cho PCA 1 CPS0 Count Pulse Select 0. Bit thấp chọn nguồn xung nhịp cho PCA 0 ECF PCA Enable Counter Overflow Interrupt. Nếu set bit này lên 1 Bảng 2.4: Tóm tắt chức năng các bit của thanh ghi CMOD CPS1 CPS0 Nguồn xung cho PCA 0 0 1 1 0 1 0 1 0, Xung nhịp bên trong, fOSC/6 1, Xung nhịp bên trong, fOSC/2 2, Tốc độ tràn Timer 0 3, Xung nhịp ngoài được cấp tại chân ECI/P1.2 (tối đa là fOSC/4) Bảng 2.5: Chọn nguồn xung nhịp cho PCA  Thanh ghi CCON: (địa chỉ D8H, có định địa chỉ bit, giá trị reset: 00H) Bit 7 6 5 4 3 2 1 0 Ký hiệu CF CR - CCF4 CCF3 CCF2 CCF1 CCF0 Bảng 2.6 Thanh ghi CCON ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 20 SVTH: Lê Trung Hiếu BIT Ký hiệu Chức năng 7 6 5 4 3 2 1 0 CF CR - CCF4 CCF3 CCF2 CCF1 CCF0 PCA counter overflow flag. Khi bộ đếm bị tràn, CF tự động được set lên 1. Nếu bit ECF của thanh ghi CMOD đã được set trước đó, CF =1 sẽ tạo ra ngắt. PCA counter run control. Bật tắt PCA counter. Bit dự trữ Cờ ngắt module 4. Cờ ngắt module 3. Cờ ngắt module 2. Cờ ngắt module 1. Cờ ngắt module 0. Bảng 2.7: Tóm tắt chức năng các bit của thanh ghi CCON Lưu ý: các cờ ngắt trong thanh ghi CCON cần phải được xóa bằng phần mềm.  Thanh ghi CCAPMn (n=0..4): (địa chỉ lần lượt từ DAH đến DEH, không định địa chỉ bit, giá trị reset: 00H) Bit 7 6 5 4 3 2 1 0 Ký hiệu - ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn Bảng 2.8 Thanh ghi CCAPM Đây là thanh ghi điều khiển hoạt động của các module. Chế độ hoạt động của mỗi module sẽ được xác định bằng cách tác động vào các bit thuộc các thanh ghi này. Chức năng của các bit thuộc thanh ghi CCAPMn được mô tả trong bảng sau: BIT Ký hiệu Mô tả 7 6 - ECOMn Bit dự trữ Enable Comparator. ECOMn = 1 sẽ kích hoạt chức năng so sánh 5 CAPPn Capture Positive. CAPPn = 1 sẽ cho phép capture khi có cạnh lên tại chân CEXn. 4 CAPNn Capture Negative. CAPNn = 1 sẽ cho phép capture khi có cạnh xuống tại chân CEXn. ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 21 SVTH: Lê Trung Hiếu 3 MATn Match. Nếu MATn = 1, khi giá trị bộ đếm PCA (CH,CL) bằng giá trị nạp trong thanh ghi (CCAPnH,CCAPnL) sẽ làm cho bit CCFn trong thanh ghi CCON lên 1, nhờ đó tạo ra ngắt. 2 TOGn Toggle. Nếu TOGn = 1, khi giá trị bộ đếm PCA (CH,CL) bằng giá trị nạp trong thanh ghi (CCAPnH,CCAPnL) sẽ làm cho ngõ ra của module CEXn đổi trạng thái. 1 PWMn Pulse Width Modulation. PWMn = 1 sẽ làm cho CEXn là một ngõ ra điều xung. 0 ECCFn Enable CCFn Interrupt. ECCFn = 1, mỗi khi CCFn trong thanh ghi CCON =1 sẽ tạo ra ngắt. Bảng 2.9: Tóm tắt chức năng các bit của thanh ghi CCAPMn Sử dụng các ngắt PCA Các bit cờ ngắt PCA tập trung hoàn toàn trong thanh ghi CCON. Bit CF = 1 khi bộ đếm tràn, CCFn = 1 khi có capture/match tại CEXn. Muốn sử dụng được ngắt cần phải set bit cho phép ngắt toàn bộ (IE.7, ký hiệu EA), cho phép ngắt PCA (IE.6, kí hiệu EC) và set các bit cho phép từng module tạo ngắt (ECF, ECCFn). Hình 2.16: Các bit cờ ngắt của PCA ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 22 SVTH: Lê Trung Hiếu Các chế độ hoạt động của module PCA PCA 16-bit Capture Để có thể sử dụng chức năng Capture, một trong hai bit hoặc cả hai bit CAPPn và CAPNn trong thanh ghi CCAPMn phải được set lên 1. Các chân CEXn, được lấy mẫu và khi có cạnh lên/ cạnh xuống tại chân CEXn, 8051 sẽ nạp giá trị (CH,CL) vào cặp thanh ghi (CCAPnH,CCAPnL), đồng thời nó cũng làm cho bit CCFn lên 1. Hình 2.17: PCA hoạt động ở chế độ 16-bit Capture Trong trường hợp bit cho phép ngắt ECCFn trong thanh ghi CCAPMn được set lên 1, mỗi lần capture sẽ tạo ra ngắt. PCA 16-bit timer Các module PCA cũng có thể được sử dụng như những timer bằng cách set hai bit ECOMn và MATn thuộc thanh ghi CCAPMn lên 1. Giá trị của timer PCA (CH,CL) được so sánh với giá trị cặp thanh ghi của module (CCAPnH,CCAPnL). Khi 2 giá trị này bằng nhau sẽ làm cho các bit CCFn lên 1. Nếu bit ECCFn = 1 sẽ tạo ra ngắt ở module tương ứng. ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 23 SVTH: Lê Trung Hiếu Hình 2.18: PCA hoạt động ở chế độ 16-bit timer High-speed output Ở chế độ này, ngõ ra CEXn được điều khiển bởi PCA. Khi giá trị (CH,CL) bằng giá trị (CCAPnH,CCAPnL) sẽ làm cho chân CEXn đổi trạng thái. Chế độ này được kích hoạt bằng cách set các bit ECOMn, MATn, TOGn lên 1. Cách tạo ngắt tương tự chế độ PCA 16-bit timer. Hình 2.19: PCA hoạt động ở chế độ High-Speed Output ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 24 SVTH: Lê Trung Hiếu Pulse Width Modulator Tất cả các module đều có tần số ra như nhau do chỉ có một timer PCA. Duty cycle của chuỗi xung ra phụ thuộc giá trị nạp cho thanh ghi CCAPnL. Khi giá trị của thanh ghi CL nhỏ hơn giá trị lưu trong CCAPnL, ngõ ra CEXn sẽ ở mức thấp. Ngược lại, nếu lớn hơn hay bằng, ngõ ra CEXn sẽ ở mức cao. Khi CL bị tràn từ FF sang 00, CCAPnL được nạp lại giá trị từ CCAPnH. Để dùng được chức năng PWM, bit ECOM và bit PWM của thanh ghi CCAPMn phải được set lên 1. Hình 2.20: PCA hoạt động ở chế độ Pulse Width Modulator Ví dụ: Điều khiển động cơ chạy trong 10s, có điều xung với duty cycle là 50% /*-------------------------------------------------------------------*- This program is to creat a modulated pulse with duty cycle 50%. The modulated pusle is used to control a motor in 10 seconds, then stop the motor. Use module 1 from the PCA. -*-------------------------------------------------------------------*/ #include //Define new registers for P89V51RD2 microcontroller void PCA_Init(); void Delay(unsigned char); sfr Motor = 0xFB; // Name the CCAP1H register as Motor // CCAP1H has the address 0xFB void main(void) { PCA_Init(); Motor = 128; // Duty cycle = 128/256 = 50% ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 25 SVTH: Lê Trung Hiếu Delay(10); Motor = 0; } /*-----------------------------------------------------*/ void PCA_Init(void) { CMOD = 0; CCON &= 0x40; CCAPM1 = 0x42; CR = 1; } void Delay(unsigned char sec) { unsigned char x; unsigned int y; for(x=0;x<=sec;x++) { for(y=0;y<=18000;y++); // This loop remains appr 1s } } Watchdog timer (chỉ có ở module 4): Bộ định thời watchdog trên chip có sẵn trong PCA giúp cải thiện độ tin cậy của hệ thống mà không cần thêm chip đếm. Các bộ định thời watchdog trở nên hữu ích đối với các hệ thống dễ bị ảnh hưởng bởi nhiễu, các gai xung khi cấp điện hoặc do sự phóng tĩnh điện. Module 4 của PCA là module duy nhất có thể được lập trình thành một watchdog. Tuy nhiên module này cũng có thể được sử dụng cho các chế độ khác nếu ta không cần đến watchdog. Hình sau đây trình bày cách thức hoạt động của watchdog. Người sử dụng nạp trước một giá trị 16-bit vào các thanh ghi so sánh (CCAPnH,CCAPnL). Giống như các chế độ so sánh khác, giá trị 16-bit này được so sánh với giá trị bộ định thời PCA (CH,CL). Khi hai giá trị này bằng nhau, reset bên trong sẽ được tạo ra. Điều này không làm chân RST nhảy lên mức cao. ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 26 SVTH: Lê Trung Hiếu Hình 2.21: PCA Watchdog Timer Để không tiến đến trạng thái RESET, người sử dụng có 3 tùy chọn: 1. Thay đổi có định kỳ giá trị so sánh để sẽ không bao giờ trùng với giá trị bộ định thời PCA. 2. Thay đổi có định kỳ giá trị bộ định thời PCA để không bao giờ trùng với giá trị so sánh. 3. Không cho phép watchdog bằng cách xóa bit WDTE trước khi hai giá trị trùng nhau một lần nữa và sau đó sẽ được kích hoạt lại. Hai tùy chọn đầu tiên đáng tin cậy hơn do bộ định thời watchdog không bao giờ bị disable hoàn toàn trong lựa chọn 3. Khi đó, nếu bộ đếm chương trình bị lỗi, sau cùng, một tương thich sẽ xảy ra và gây reset bên trong. Lựa chọn thứ hai cũng không được khuyến khích nếu các module PCA khác đang được sử dụng. Do bộ định thời PCA được dùng chung cho các module, việc thay đổi giá trị bộ định thời sẽ làm ảnh hưởng đến hoạt động của các module khác. Như vậy, lựa chọn đầu tiên là lựa chọn tốt nhất. ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 27 SVTH: Lê Trung Hiếu 2.3.2.2 Timer 2 Timer 2 là một Timer/Counter 16 bit được bổ sung vào một số vi điều khiển thuộc họ 8051. Các vi điều khiển thông dụng có thể kể đến là AT89C52, P89C51RDxx, P89V51RDxx... Ở các vi điều khiển này, chân P1.0 và P1.1 còn có tên lần lượt là T2 và T2EX. Timer 2 là một cải tiến đáng kể và tỏ ra ưu việt hơn hẳn so với timer 0 và timer 1 với 4 chế độ hoạt động: chế độ Bắt giữ (Capture mode), chế độ Tự nạp lại (Auto-reload mode), chế độ Dải xung clock lập trình được (Programmable Clock-out) và chế độ Tạo tốc độ baud (Baudrate Generator). Một số thanh ghi mới dùng cho timer 2:  Thanh ghi TH2 và TL2 (địa chỉ CDH và CCH): 2 thanh ghi chứa byte cao và byte thấp timer 2.  Thanh ghi RCAP2H, RCAP2L (địa chỉ CBH và CAH): hai thanh ghi dùng nạp hoặc chứa dữ liệu của timer 2.  Thanh ghi T2MOD (địa chỉ C9H, không định địa chỉ bit): thanh ghi hỗ trợ mode timer 2. Bit 7 6 5 4 3 2 1 0 Ký hiệu - - - - - - T2OE DCEN Bảng 2.10 Thanh ghi T2MOD BIT Ký hiệu Chức năng 7 đến 2 1 0 - T2OE DCEN Bit dự trữ Timer 2 Output Enable bit. Được sử dụng ở mode Programmable Clock-out. Down Count Enable bit. DCEN=1 sẽ cho phép timer 2 đếm lên hoặc xuống tùy thuộc chân T2EX. Bảng 2.11: Tóm tắt chức năng các bit thanh ghi T2MOD ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 28 SVTH: Lê Trung Hiếu  Thanh ghi T2CON (địa chỉ C8H, có định địa chỉ bit): thanh ghi điều khiển timer 2. Bit 7 6 5 4 3 2 1 0 Ký hiệu TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 Bảng 2.12 Thanh ghi T2CON BIT Ký hiệu Chức năng 7 6 TF2 EXF2 Timer 2 Overflow flag. TF2=1 mỗi khi timer 2 tràn. Tuy nhiên điều này không đúng nếu RCLK=1 hay TCLK=1. Timer 2 External flag. EXF2=1 khi EXEN2=1 và có cạnh xuống trên chân T2EX. Nếu ngắt timer 2 (bit IE.5) được cho 5 RCLK phép, EXF2=1 sẽ tạo ra ngắt. Receive Clock flag. Khi RCLK=1, UART (mode 1 và 3) sẽ sử dụng tốc độ tràn timer 2 làm xung nhận. 4 TCLK Transmit clock flag. Khi TCLK=1, UART (mode 1 và 3) sẽ sử dụng tốc độ tràn timer 2 làm xung phát. 3 EXEN2 External Enable flag. Nếu EXEN2=1, sự kiện Capture hoặc Reload sẽ được kích hoạt mỗi khi có cạnh xuống trên chân T2EX. Nếu EXEN2=0, các sự kiện trên chân T2EX sẽ không được xử lý. 2 TR2 Timer Run Control bit. Khi TR2=1, timer 2 chạy. TR2=0, timer 2 ngừng. 1 C/T2 Timer mode select. C/T2=1, timer 2 có chức năng counter, xung nhịp cho timer 2 được cấp tại chân T2. Khi C/T2=0, timer 2 có chức năng timer hoạt động với xung nhịp từ CPU. 0 CP/RL2 Capture/Reload flag. Khi CP/RL2=1, với EXEN2=1 và có cạnh xuống trên chân T2EX, tác vụ Capture sẽ được thực hiện. Khi CP/RL2=0, với EXEN2=1 và có cạn xuống trên chân T2EX, tác vụ Reload sẽ được thực hiện.; Bảng 2.13: Tóm tắt chức năng các bit thanh ghi T2CON ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 29 SVTH: Lê Trung Hiếu RCLK+TCLK CP/RL2 TR2 T2OE Chế độ hoạt động 0 0 0 1 X 0 1 0 X X 1 1 1 1 0 0 0 1 0 X 16-bit Auto-Reload 16-bit Capture Programmable Clock-out Baudrate Generator Off Bảng 2.14: Tóm tắt cách thức khởi tạo chế độ hoạt động cho timer 2 Các chế độ hoạt động của timer 2: Chế độ Bắt giữ (Capture mode) Ở chế độ này, có hai chọn lựa được xác định bởi bit EXEN2 trong thanh ghi T2CON.  Nếu EXEN2=0, timer 2 hoạt động như một timer/counter 16-bit. Mỗi lần timer bị tràn sẽ set bit TF2 và tạo ra ngắt nếu ngắt timer 2 được cho phép (bit IE.5).  Nếu EXEN2=1, timer 2 hoạt động tương tự như trên. Tuy nhiên khi có chuyển tiếp từ 1 xuống 0 ở chân T2EX, giá trị hiện thời của TH2 và TL2 sẽ được giữ lại tương ứng trong cặp thanh ghi RCAP2H và RCAP2L.  Ngoài ra, việc xuất hiện cạnh xuống trên chân T2EX sẽ set bit EXF2 trong thanh ghi T2CON và điều này cũng tạo ra ngắt nếu ngắt timer 2 được cho phép (bit IE.5). Hoạt động của chế độ Bắt giữ được minh họa trong hình sau đây: Hình 2.22: Timer 2 Capture mode ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 30 SVTH: Lê Trung Hiếu Chế độ Tự nạp lại (Auto-reload mode) Timer 2 có thể được lập trình để đếm lên hay đếm xuống khi hoạt động ở chế độ Auto-Reload với sự hỗ trợ của bit DCEN trong thanh ghi T2MOD. Mỗi lần CPU được reset, bit DCEN này có giá trị là 0, do đó, timer 2 mặc định là đếm lên. Khi DCEN=1, timer 2 có thể đếm lên hay xuống tùy thuộc mức logic trên chân T2EX. Hình sau đây minh họa hoạt động của timer 2 ở chế độ Auto-reload trong trường hợp DCEN=0 (timer tự động đếm lên). Hình 2.23: Timer 2 Auto-reload mode (DCEN = 0) Khi timer 2 đếm lên, ở chế độ Auto-reload, có hai lựa chọn được xác định bởi bit EXEN2 trong thanh ghi T2CON.  Nếu EXEN2=0, timer 2 đếm lên đến giá trị 0FFFFH sau đó set bit TF2 báo tràn. Sự kiện tràn timer 2 làm cho cặp thanh ghi (TH2,TL2) được nạp lại giá trị 16-bit chứa trong cặp thanh ghi (RCAP2H,RCAP2L). Giá trị (RCAP2H,RCAP2L) được nạp trước bởi phần mềm. Tương tự chề độ Capture, sự kiện tràn timer 2 cũng tạo ra ngắt.  Nếu EXEN2=1, việc nạp lại sẽ được thực hiện khi có tràn timer 2 hoặc khi có chuyển tiếp từ 1 xuống 0 trên chân T2EX. Việc chuyển tiếp mức logic trên chân T2EX sẽ set bit EXF2 trong thanh ghi T2CON và nếu được cho phép, nó sẽ tạo ra ngắt. ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 31 SVTH: Lê Trung Hiếu  Trong trường hợp bit DCEN=1, timer 2 có thể đếm lên hay đếm xuống. Ở chề độ này, chân T2EX sẽ điều khiển hướng đếm. Hoạt động của timer 2 ở chế độ Auto- reload với DCEN=1 được minh họa trong hình sau: Hình 2.24: Timer 2 Auto-reload mode (DCEN = 1) Chế độ Dải xung clock lập trình được (Programmable Clock-out) Hoạt động của timer 2 trong chế độ này được minh họa trong hình sau: Hình 2.25: Timer 2 Programmable Clock-out mode ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 32 SVTH: Lê Trung Hiếu Một chuỗi xung clock có duty cycle là 50% có thể được lập trình để xuất ra trên chân P1.0 (T2). Chân P1.0 ngoài chức năng là chân I/O, nó cũng có thể được lập trình là ngõ vào xung nhịp cho Timer/Counter 2 hoặc là ngõ ra của chuỗi xung duty cycle 50% với tần số dao động từ 61 Hz đến 4 MHZ (nếu tần số dao động thạch anh 16MHz). Để cấu hình Timer/Counter 2 hoạt động ở chế độ này, bit C/T2 (T2CON.1) bắt buộc phải có giá trị ‘0’ và bit T2OE (T2MOD.1) phải được set. Bit TR2 (T2CON.2) điều khiển chạy, ngừng timer. Tần số chuỗi xung clock phụ thuộc tần số sao động thạch anh và giá trị nạp lại chứa trong cặp thanh ghi (RCAP2H,RCAP2L) theo công thức sau: Clockout _ Frequency = Oscillator _ Frequency4× [65536 ­ (RCAP2H , RCAP2L)] Trong chế độ này, sự kiện tràn timer không tạo ra ngắt. Ngắt timer 2 chỉ xảy ra khi có cạnh xuống trên chân T2EX và EXEN2=1. Khi đó bit EXF2 có giá trị ‘1’. Lưu ý: có thể sử dụng timer/counter 2 ở chế độ tạo baudrate và chế độ clock-out một cách đồng thời, tuy nhiên baudrate và tần số clock-out không thể độc lập nhau do dùng chung giá trị chứa trong cặp thanh ghi (RCAP2H,RCAP2L). Chế độ Tạo tốc độ baud (Baudrate Generator) Timer/Counter 2 có thể được lập trình hoạt động ở chế độ Tạo tốc độ baud. Với chế độ này, bit RCLK và TCLK trong thanh ghi T2CON cần phải được set. Tương tự như chế độ Auto-reload, trong chế độ Baudrate Generator, mỗi lần bị tràn, bộ định thời lại được nạp lại giá trị từ cặp thanh ghi (RCAP2H,RCAP2L). Giá trị trong cặp thanh ghi này đã được đặt trước bằng phần mềm. Minh họa cho chế độ này được cho ở hình sau: ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 33 SVTH: Lê Trung Hiếu Hình 2.26: Timer 2 Baudrate Generator Baudrate Tần số thạch anh Timer 2 RCAP2H RCAP2L 115200 57600 38400 19200 9600 4800 2400 1200 600 14400 11.0592 MHz 11.0592 MHz 11.0592 MHz 11.0592 MHz 11.0592 MHz 11.0592 MHz 11.0592 MHz 11.0592 MHz 11.0592 MHz 11.0592 MHz FFH FFH FFH FFH FFH FFH FFH FEH FDH FFH FDH FAH F7H EEH DCH B8H 70H E0H C0H E8H Bảng 2.15: Giá trị nạp ở một số baudrate thông dụng ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 34 SVTH: Lê Trung Hiếu 2.3.3 IC GIAO TIẾP MAX232 Tín hiệu cổng COM thường ở mức +12V, -12V nên không tương thích với điện áp TTL nên để giao tiếp vi điều khiển 8951 với máy tính qua cổng COM ta phải qua một vi mạch biến đổi điện áp cho phù hợp với mức TTL, vi mạch Max232. Hình 2.27: Sơ đồ chân và sơ đồ logic IC MAX232 Vi mạch này nhận mức RS232 đã được gởi tới từ máy tính và biến đổi tín hiệu này thành tín hiệu TTL để cho tương thích với IC 8951 và nó cũng thực hiện công việc ngược lại là biến đổi tín hiệu TTL từ vi điều khiển thành mức +12V, -12V để cho phù hợp hoạt động của máy tính. Giao tiếp theo cách này, khoảng cách từ máy tính đến thiết bị ngoại vi có thể đạt tới trên 20 mét. Khi dữ liệu từ máy tính được gởi đến board vi điều khiển 89v51 qua cổng COM thì dữ liệu này sẽ được đưa vào từng bit (nối tiếp) vào thanh ghi SBUF (thanh ghi đệm), đến khi thanh ghi đệm đầy thì cờ RI trong thanh ghi điều khiển sẽ tự động Set lên 1 và lúc này CPU sẽ gọi chương trình con phục vụ ngắt. 2.3.4 CÁC PHẦN TỬ ĐIỀU KHIỂN CÁCH LY 2.3.4.1 OPTO TRANSISTOR (4N35) Đây là một loại opto transistor thông dụng dùng để cách ly giữa các thiết bị công suất với các thiết bị điều khiển. Nó có sơ đồ nguyên lý như hình vẽ: ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 35 SVTH: Lê Trung Hiếu Hình 2.28: Sơ đồ chân OPTO TRANSISTOR 4N35 2.3.4.2 RELAY 12V Đây là loại Relay có 8 chân. Được kích bằng cuộn cảm với điện áp 12V. Nó có 1 cặp chân chung, 1 cặp chân thường đóng (NC) và 1 cặp chân thường hở (NO). Các chân này có khả năng chịu được dòng khá lớn: 5A đối với điện xoay chiều 277Vac hoặc 5A với dòng 30VDC. ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 36 SVTH: Lê Trung Hiếu Chương 3 MẠCH ĐIỆN ĐIỀU KHIỂN ROBOT 3.1 TỔNG QUÁT VỀ PHẦN CỨNG 3.1.1 Sơ đồ khối mạch phát và chức năng từng khối  Sơ đồ khối board điều khiển Hình 3.1 Sơ đồ khối board điều khiển. Với việc thiết kế phần cứng theo khối, mạch điện điều khiển trở nên rõ ràng, dễ hiểu và khả năng mắc lỗi thiết kế sẽ rất thấp. Theo trên, khối nguồn được dùng để cung cấp năng lượng cho toàn bộ mạch điều khiển. Khối MCU có khả năng xử lý những tín hiệu thu về từ các nút nhấn hoặc encoder, sau đó gởi đi tín hiệu điều khiển động cơ, điều khiển giao tiếp và hiển thị.  Chức năng nhiệm vụ của từng khối  Khối chuyển đổi tín hiệu: có nhiệm vụ kết nối giữa máy tính với khối thu phát để truyền các lệnh điều khiển ra mạch phát để truyền đi cũng như thu nhận tín hiệu hồi về từ vi điều khiển để xử lí.  Khối thu phát RF: có nhiệm vụ truyền dữ liệu từ mạch phát đi thông qua sóng RF cũng như việc thu dữ liệu qua sóng RF từ mạch slave truyền về để xử lý trên máy tính.  Khối nguồn: có nhiệm vụ cung cấp nguồn ổn áp 5VDC cho toàn mạch phát. KHỐI THU PHÁT RF KHỐI CHUYỂN ĐỔI TÍN HIỆU KHỐI NGUỒN 5V ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 37 SVTH: Lê Trung Hiếu 3.1.2 Sơ đồ khối mạch thu và chức năng nhiệm vụ của từng khối  Sơ đồ khối Hình 3.2 Sơ đồ khối mạch thu  Chức năng nhiệm vụ của từng khối  Khối thu phát RF: có nhiệm vụ thu thập dữ liệu từ sóng RF của mạch phát để đưa đến khối xử lí trung tâm để xử lí, đồng thời phát dữ liệu hồi về mạch phát sau khi đã xử lí dữ liệu thu về từ cảm biến.  Khối xử lí trung tâm: có nhiệm vụ nhận dữ liệu điều khiển thu được từ khối thu phát RF sau đó xử lí.  Khối điều khiển công suất: có nhiệm vụ nhận tín hiệu từ vi điều khiển sau đó nó sẽ thực hiện điều khiển các linh kiện công suất để thực hiện công việc. KHỐI NGUỒN 5V KHỐI CÔNG SUẤT ĐỘNG CƠ DC KHỐI NGUỒN 24V KHỐI THU PHÁT RF KHỐI XỬ LÝ TRUNG TÂM KHỐI ĐIỀU KHIỂN CÔNG SUẤT ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 38 SVTH: Lê Trung Hiếu  Khối công suất: bao gồm các linh kiện công suất  Động cơ DC: các động cơ được điều xung để thực hiện việc di chuyển và thao tác. Với việc thiết kế phần cứng theo khối, mạch điện điều khiển trở nên rõ ràng, dễ hiểu và khả năng mắc lỗi thiết kế sẽ rất thấp. Theo trên, khối nguồn được dùng để cung cấp năng lượng cho toàn bộ mạch điều khiển. Khối MCU có khả năng xử lý những tín hiệu thu về từ các nút nhấn hoặc encoder, sau đó gởi đi tín hiệu điều khiển động cơ, điều khiển giao tiếp và hiển thị. 3.2 KHỐI NGUỒN Có thể tạo ra các mạch ổn áp đơn giản bằng cách lắp ghép các linh kiện rời, nhưng các mạch này có độ ổn định rất kém, quá trình tính toán thiết kế phức tạp. Hiện nay một số vi mạch ổn áp chuyên dùng như: 78XX, 79XX, LM109, LM317,… có độ ổn định cao nên việc thiết kế trở nên dễ dàng.  Chức năng: cung cấp nguồn 5VDC cho các khối VDK 24V Nguon 12V HEADER 2 1 2 Dn_12V Diode 5A HI_CUR16 12V HI_CUR17 Dn_24V Diode 5ANguon 24V HEADER 2 1 2 LEDn_24V Rn_24V 2.2k ỨNG DỤNG SÓNG CAO TẦN VÀO ĐIỀU KHIỂN ROBOT GVHD: Cô Võ Thị Thu Hồng 39 SVTH: Lê Trung Hiếu Dn_5V FR204 Rn_sensor 330 Cn2_5V 104 +Cn1_5V2200uF + Cn2_VXL 1000uF Cn1_sensor 104 Un_sensor 7805 1 3 2 VIN VOUT GND 5V_sensor Rn_VXL 330 LEDn_sensor LEDn_VXL 5VNguon VXL HEADER 2 1 2 Cn1_VXL 104 Un_VXL 7805 1 3 2 VIN VOUT GND +Cn2_sensor1000uF HI_CUR18HI_CUR19 Hình 3.3: Sơ đồ nguyên lí khối nguồn  Hoạt động:  Có nhiều cách để tạo ra nguồn 5VDC, nhưng dùng IC ổn áp sẽ đảm bảo sự nhỏ gọn, tính ổn định cho bộ nguồn. Trong đề tài sử dụng IC ổn áp dương 7805 và IC nguồn xung 2575.  Acquy 12V được đưa vào. Áp lấy ra khỏi IC 7805 là áp 5VDC.  Board mạch sẽ có nguồn cấp cho động cơ (24V), nguồn relay (12V), nguồn cho MCU, hiển thị, giao tiếp máy tính (5V) và nguồn cấp cho CMUcam (8V).  Điện cấp cho khối nguồn được lấy từ 2 accu 12V cấp vào các chốt cắm “24V”, “12V”, “12V VXL”. Một accu cấp nguồn cho vi xử lý và hai accu mắc nối tiếp cấp cho động cơ.  Các IC ổn áp 7805 và 2575 được sử dụng để tạo các nguồn 5V 500mA và 5V 1A.

Các file đính kèm theo tài liệu này:

  • pdfỨng dụng sóng cao tần vào điều khiển robot.pdf