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

kl hoang ngoc hung 811141d

70 0 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

Tiêu đề Lời Cảm Ơn
Tác giả Hoàng Ngọc Hùng
Người hướng dẫn Th.S Ngô Thanh Hải
Trường học Trường Đại Học Tôn Đức Thắng
Chuyên ngành Điều Khiển Tự Động
Thể loại Báo cáo đồ án
Năm xuất bản 2009
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 70
Dung lượng 1,07 MB

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

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU VỀ ROBOT (5)
    • 1.1. Giới thiệu về robot (5)
    • 1.2. Mô hình động học của robot học đường đi (7)
      • 1.2.1. Mô hình kết cấu (7)
    • 1.3. Động học của robot (7)
  • CHƯƠNG 2. GIỚI THIỆU CÁC LINH KIỆN ĐƯỢC SỬ DỤNG (8)
    • 2.1. Vi điều khiển họ 8051- AT89S52 (8)
      • 2.1.1. Các đặc điểm chủ yếu của AT89S52 (9)
      • 2.1.2. Cấu tạo chân (9)
      • 2.1.3. Sơ đồ khối (10)
      • 2.1.4. Tổ chức bộ nhớ (13)
      • 2.1.5. Bộ nhớ dữ liệu (14)
      • 2.1.6. Mô tả chức năng của các chân (16)
      • 2.1.7. Chân PSEN\ (17)
      • 2.1.8. Chân EA (17)
      • 2.1.9. Chân XTAL1, XTAL2 (18)
      • 2.1.10. Chân RST (18)
      • 2.1.11. Chân Vcc, Gnd (19)
      • 2.1.12. HOẠT ĐỘNG TIMER CỦA 89S52 (20)
      • 2.1.13. HOẠT ĐỘNG NGẮT (26)
    • 2.2. KHẢO SÁT LCD LMB162A (28)
      • 2.2.1. Sơ đồ chân (29)
      • 2.2.2. Sơ đồ khối (29)
      • 2.2.3. Các mã lệnh xử lý LCD (31)
      • 2.2.4. Mô tả mã lệnh (32)
      • 2.2.5. Mã lệnh (33)
    • 2.3. MOSFET (33)
      • 2.3.1. Cấu tạo (33)
    • 2.4. RAM 6264 (36)
      • 2.4.1. Mô tả tổng quát (36)
      • 2.4.2. Sơ đồ chân (36)
      • 2.4.3. Sơ đồ khối (36)
    • 2.5. MOTOR DC MỘT CHIỀU (37)
      • 2.5.1. Sơ lược động cơ điện 1 chiều (37)
      • 2.5.2. Các bộ phận của động cơ một chiều (37)
      • 2.5.3. Điều khiển chiều quay của DC motor (39)
    • 2.6. Điều xung PWM, điều chỉnh vận tốc cho động cơ (42)
      • 2.6.1. Định nghĩa (42)
      • 2.6.2. Phương pháp điều rộng xung ở AT89S52 (43)
      • 2.6.3. Lưu đồ điều rộng xung (44)
    • 2.7. Encoder cho bánh xe (44)
      • 2.7.1. Encoder (44)
  • CHƯƠNG 3. CÁC PHƯƠNG PHÁP ĐIÊU KHIỂN TRONG ROBOT (47)
    • 3.1. ĐO TỐC ĐỘ ĐỘNG CƠ (47)
      • 3.1.1. Hai thiết bị thường dùng để đo tốc độ động cơ (47)
    • 3.2. Nguyên nhân gây sai số khi sử dụng encoder (48)
    • 3.3. Phương pháp dùng vi điều khiển đọc cùng lúc 2 encoder (49)
    • 3.4. XÁC ĐỊNH ĐƯỜNG CONG QUÁ ĐỘ (50)
      • 3.4.1. Lấy mẫu tốc độ (50)
    • 3.5. Cấu tạo phần cứng (52)
      • 3.5.1. Khối nguồn (52)
      • 3.5.2. Sơ đồ mạch điều khiển (52)
      • 3.5.3. Mạch công suất điều khiển động cơ (54)
  • CHƯƠNG 4. THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN (55)
    • 4.1. Lưu đồ và giải thuật robot học đường đi (55)
    • 4.2. Lưu đồ và giải thuật ở chế độ chạy (57)

Nội dung

Đã có nhiều những đề tài nghiên cứu nhằm ứng dụng máy móc vào việc di chuyển đến những địa điểm cần thiết, và cũng có nhiều phương án được đưa ra để giải quyết vấn đề này như: điều khiển

GIỚI THIỆU VỀ ROBOT

Giới thiệu về robot

Robot được định nghĩa là một loại xe có khả năng tự di chuyển , tự vận động

Robot có thể được lập trình lại và vận hành dưới sự điều khiển tự động để thực hiện thành công các nhiệm vụ được giao Theo lý thuyết, môi trường hoạt động của robot có thể là đất, nước, không khí, không gian vũ trụ hoặc sự kết hợp giữa chúng Địa hình bề mặt mà robot di chuyển có thể phẳng hoặc có sự biến đổi lồi lõm tùy theo ứng dụng.

Theo bộ phận thực hiện chuyển động, robot được chia thành hai lớp: chuyển động bằng chân (legged) và bằng bánh (wheeled) Ở lớp chân, chuyển động được thực hiện nhờ các chi cơ khí bắt chước sự di chuyển của con người và động vật Loại robot legged có thể di chuyển rất tốt trên địa hình lồi lõm và phức tạp, nhưng việc phối hợp các chân và giữ thăng bằng là một thách thức cực kỳ lớn.

Lớp còn lại di chuyển bằng bánh xe thể hiện tính thực tế cao hơn và có thể làm việc tốt trên hầu hết các địa hình do con người tạo ra Việc điều khiển robot di chuyển bằng bánh xe cũng đơn giản hơn nhiều, gần như luôn đảm bảo tính ổn định cho robot khi vận hành Lớp này có thể chia làm 3 loại robot: loại chuyển động bằng bánh xe (phổ biến).

1.1a,b,c,f,i) loại chuyển động bằng vòng xích ( khi cần mômen phát động lớn hay khi cần di chuyển trên vùng đầm lầy, cát và băng tuyết ) ( hình 1.1 d,e ) , và loại hỗn hợp bánh xe và xích ( ít gặp)

Tiềm năng ứng dụng của robot hết sức rộng lớn, với các ứng dụng điển hình như robot vận chuyển vật liệu và hàng hóa trong tòa nhà, nhà máy, cửa hàng, sân bay và thư viện; robot quét dọn đường phố và làm việc trong khoang chân không; robot kiểm tra trong môi trường nguy hiểm; robot cảnh giác và do thám; robot khám phá không gian và di chuyển trên hành tinh; robot hàn và sơn trong sản xuất; robot xe lăn phục vụ người khuyết tật; và nhiều ứng dụng khác.

Mặc dù nhu cầu ứng dụng robot ngày càng cao, các hạn chế chưa được khắc phục vẫn ngăn cản việc triển khai rộng rãi, điển hình là chi phí chế tạo cao khiến robot trở nên khó tiếp cận với nhiều doanh nghiệp Thêm vào đó, thiếu tính linh hoạt và khả năng thích nghi khi làm việc ở các vị trí khác nhau là một nhược điểm đáng chú ý, khiến hiệu suất và phạm vi ứng dụng của robot bị giới hạn.

Hình 1.1 trình bày một số hình ảnh về robot, bao gồm Robot Nomad 150; sự kết hợp giữa robot tự hành Nomadic XR4000 và cánh tay PUMA 560; robot con rùa; robot Houdini di chuyển bằng xích; robot tự động nghiên cứu ở vùng Bắc Cực; và các hệ thống robot của NASA là SRR và FIDO.

Trong lĩnh vực robot di động, các mẫu tiêu biểu hiện đại gồm robot tự hành bằng chân spiderbot di chuyển trên sao Hỏa, robot sáu chân mang tên Ghanghis, và robot Meet Timbot được dùng để kiểm tra các phần mềm hệ thống nhúng trong phòng thí nghiệm Những thiết kế chân spiderbot và chân sáu của Ghanghis cho phép di chuyển linh hoạt trên địa hình khắc nghiệt, trong khi Meet Timbot hỗ trợ quá trình phát triển và thử nghiệm phần mềm nhúng.

Mô hình động học của robot học đường đi

Hình 1.2 mô tả mô hình kết cấu của robot với 4 bánh, trong đó có 2 bánh chủ động ở phía sau và 2 bánh đa hướng ở phía trước có thể quay tùy ý Nhờ kết cấu cơ khí này, robot có khả năng di chuyển rất linh hoạt, bao gồm tiến lên, lùi xuống và quay ở mọi góc độ.

Động học của robot

Hình 1.3 Động học của robot

Gọi s 1 , s 2 là đoạn dịch chuyển của 2 bánh chủ động Ta có :

Với s 1 , s 2 , r lần lượt là lượng dịch chuyển chiều quay và bán kính của 2 bánh chủ động

T là khoảng cách giữa 2 bánh RD,  là bán kính quay và góc dịch chuyển của robot trong mặt phẳng nằm ngang Khi đó :

Trong luận văn này, ta chỉ xét 2 trường hợp đặc biệt của robot chuyển động :

Khi s 2 = s 1 : R D = 0 ,  = , robot đi theo quỹ đạo là đường thẳng ( tiến hoặc lùi )

Khi s 2 = - s 1 : RD = 0,  = 2s 2 /T, robot quay quanh điểm giữa 2 bánh xe D

x, y : lượng dịch chuyển theo 2 phương của hệ tọa độ gắn với robot

  : lượng dịch chuyển của robot theo 2 phương gắn với hệ tọa độ gốc :

Vị trí của robot được xác định bởi tọa độ gốc của D ( X D và Y D ) + gốc định hướng

 D , tọa độ tại thời điểm thứ I được xác định như sau :

GIỚI THIỆU CÁC LINH KIỆN ĐƯỢC SỬ DỤNG

Vi điều khiển họ 8051- AT89S52

Do MCS-51 đã trở thành chuẩn công nghiệp nên có rất nhiều hãng sản xuất ra nó, điển hình là ATMEL Corporation Hãng này đã kết hợp nhiều tính năng dựa trên nền tảng kỹ thuật của mình để tạo ra các vi điều khiển tương thích với chuẩn MCS-51, mở rộng phạm vi ứng dụng trong nhúng Việc phổ biến của chuẩn này giúp các nhà thiết kế có thêm sự lựa chọn về giải pháp vi điều khiển, đồng thời tối ưu thời gian phát triển và chi phí sản phẩm.

MCS-51 nhưng mạnh mẽ hơn

Flash on-chip cho phép bộ nhớ lập trình được, lập trình trong hệ thống bởi một lập trình viên bình thường Bằng cách nối 1 CPU 8 bit với một Flash trên một chip đơn , AT89S52 là một vi điêu khiển mạnh ( có công suất lớn ), cung cấp một sự linh động cao và giải pháp về giá cả đối với những ứng dụng vê vi điều khiển

2.1.1 Các đặc điểm chủ yếu của AT89S52:

 8 Kbyte bộ nhớ chương trình

 32 đường I/O lập trình được ( 4 port )

 Tần số hoạt động : 0Hz đến 24Hz

 64 KB vùng nhớ mã ngoài

 64 KB vùng nhớ dữ liệu ngoài

 Bộ xử lý bit ( thao tác trên các bit riêng rẽ )

 210 vị trí nhớ có thể định vị bit

 Độ bền : 1000 lần ghi/xóa

 4s cho hoạt động nhân và chia

 Chế độ hạ nguồn và chế độ nghỉ tiêu tôn công suất thấp

Hình 1.5.Sơ đồ khối của bộ vi điều khiển AT89S52

Bộ vi điều khiển AT89s52 gồm các khối chức năng chính sau đây:

CPU( centralprocessing unit ) bao gồm :

Thanh ghi tích lũy phụ B, dùng cho phép nhân và chia; Đơn vị logic học ( ALU : Arithemetic Logic Unit );

Thanh ghi từ trạng thái chương trình ( PSW : Program Status Word );

Bộ nhớ chương trình ( bộ nhớ ROM ) gồm 8kbyte Flash

Bộ nhớ dữ liệu ( bộ nhớ RAM ) gồm 256 byte

The UART (Universal Asynchronous Receiver and Transmitter) module provides serial transmission and reception The AT89S52 microcontroller can communicate with a computer’s serial port through the UART.

3 bộ Timer / Counter 16 bit thực hiện các chức năng định thời và đêm sự kiện

WDM (Watch Dog Timer) trên vi xử lý AT89S52 được dùng để phục hồi hoạt động của CPU khi nó bị treo do một nguyên nhân nào đó WDM gồm một bộ timer 14 bit, một bộ timer 7 bit và thanh ghi WDTRST (WDM register) Bình thường WDT bị vô hiệu hóa; để cho phép WDT, hai giá trị 1EH và E1H phải được ghi liên tiếp vào thanh ghi WDTRST Bộ đếm 14 bit của WDT sẽ tăng dần sau mỗi chu kỳ đồng hồ cho đến khi đạt 16383, khi xảy ra tràn thì chân reset được đặt ở mức cao trong khoảng thời gian 98 × Tosc, với Tosc = 1 / Fosc.

Đối với Fosc và AT89S52, WDT sẽ gây reset hệ thống khi hoạt động Ngoại trừ reset phần cứng và reset do WDT tràn, không có cách nào có thể ngăn chặn WDT được; vì vậy khi sử dụng WDT, các đoạn mã của chương trình phải được đặt trong các khe thời gian giữa các lần WDT được khởi tạo lại.

Việc xác định chu kỳ đếm của WDT phụ thuộc vào các giá trị ghi vào S0, S1 và S2 Tùy từng giá trị này, bảng 1.1 cho biết chu kỳ đếm mà WDT thực hiện, còn bảng 1.2 chỉ ra thời gian tràn (timer-out) tương ứng của WDT.

Bảng 1.1 Số chu kỳ máy WDT đếm tùy theo giá trị cua S0, S1, S2

Bảng 1.2 Thời gian tràn của WDT

S2 S1 S0 Fosc = 12 MHz Fosc = 16MHz Fosc = 20MHz

AT89S52 là vi điều khiển có bộ nhớ theo cấu trúc Harvard, với các vùng nhớ riêng biệt cho chương trình và dữ liệu Cả bộ nhớ chương trình và bộ nhớ dữ liệu đều có sẵn trên chip nhưng dung lượng tích hợp giới hạn, vì vậy các ứng dụng cần bộ nhớ lớn có thể được mở rộng bằng bộ nhớ ngoài Khi thiết kế hệ thống, người ta có thể sử dụng bộ nhớ ngoài lên tới 64Kbyte cho bộ nhớ chương trình và 64Kbyte cho bộ nhớ dữ liệu để đáp ứng yêu cầu về dung lượng và hiệu năng.

Hình 1.6 Tổ chức bộ nhớ của AT89S52

AT89S52 có 8 Kbyte Flash ROM trên chip khi chân EA được đặt ở mức logic cao

Khi cấp nguồn +5V, bộ nhớ vi điều khiển sẽ thực thi chương trình được lưu trữ trong bộ nhớ này, bắt đầu từ địa chỉ 0000H Số lần lập trình cho bộ nhớ này ước khoảng 1000 lần.

Khi chân EA của vi điều khiển ở mức logic thấp, chương trình được thực thi từ bộ nhớ ngoài EPROM/Flash thay vì bộ nhớ nội Để thực hiện điều này, cần có một mạch phối ghép AT89S52 với Flash/EPROM như trong sơ đồ Mạch latch sẽ tách riêng bus địa chỉ và dữ liệu AD0-AD7 trên Port 0 của AT89S52, và tùy thuộc vào dung lượng của EPROM mà sẽ dùng các đường địa chỉ tương ứng Qua đó, hệ thống có thể truy cập và điều khiển bộ nhớ ngoài một cách đồng bộ với dung lượng EPROM đã chọn.

Tín hiệu điều khiển đọc ROM là tín hiệu PSEN

Hình 1.7 Sơ đồ ghép nối AT89s52 vơi EPROM

AT89S52 có 256 byte RAM nội được phân chia như sau:

Các bank thanh ghi có địa chỉ từ 00H đén 1FH

Trong bộ nhớ RAM nội tại của vi điều khiển 89S52, 32 byte đầu được dành cho các bank thanh ghi Bộ nhớ lệnh của 89S52 hỗ trợ 8 thanh ghi, đặt tên là R0–R7, và sau khi reset hệ thống, các thanh ghi này được ánh xạ vào địa chỉ từ 00H đến 07H.

Trong tối ưu mã và thiết kế tập lệnh, các lệnh sử dụng thanh ghi R0–R7 ngắn gọn và nhanh hơn so với các lệnh tương ứng dùng địa chỉ trực tiếp Vì dữ liệu được truy cập và sử dụng thường xuyên, đưa chúng vào một trong các thanh ghi này giúp giảm thời gian truy cập và tăng hiệu suất xử lý, là một kỹ thuật tối ưu hoá mã được nhiều lập trình viên và nhà phát triển hệ thống áp dụng.

Trong hệ thống có 4 bank thanh ghi, tại mỗi thời điểm chỉ có một bank thanh ghi được truy cập thông qua các thanh ghi R0–R7 Việc chuyển đổi quyền truy cập giữa các bank thanh ghi được thực hiện bằng cách thay đổi các bit chọn bank trong thanh ghi trạng thái, từ đó quyết định bank thanh ghi nào được truy cập và thực hiện truy cập trên hệ thống.

Ram địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH

AT89S52 là vi điều khiển thuộc dòng 8051 có vùng RAM có thể địa chỉ bằng bit từ 0x20 đến 0x2F, chứa tổng cộng 128 bit cho phép truy cập từng bit một cách độc lập Việc truy xuất từng bit bằng phần mềm là một trong những đặc tính nổi bật của các vi điều khiển nói chung, giúp kiểm soát trạng thái các bit và tối ưu hóa hiệu suất hệ thống.

Các thanh ghi chức năng đặc biệt từ 80H đến FFH

Hình 1.8 Bộ nhớ dữ liệu trên chip AT89S52

Bộ nhớ dữ liệu RAM ngoài là bộ nhớ RAM được đọc hoặc ghi bởi tín hiệu

RD và WR Các RAM có thể giao tiếp với AT89S52 tương tự cách thức như

EPROM ngoại trừ chân RD của AT89S52 nối với các chân OE của RAM và chân

WR của AT89S52 nối với các chân WE của RAM

Hình 1.9 Sơ đồ ghép nối với RAM ngoài

2.1.6 Mô tả chức năng của các chân :

Port 0 ( P0.0 – P0.7 ) có số chân từ 32 – 39

Port xuất nhập dữ liệu ( P0.0 – P0.7 ) khi không sử dụng bộ nhớ ngoài

Bú địa chỉ byte thấp và bú dữ liệu đa hợp ( AD0 – AD7 ) khi có sử dụng bộ nhớ ngoài

Khi port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở kéo lên bên ngoài

Khi lập trình cho ROM trong chip thì port 0 đóng vai trò là ngõ vào của dữ liệu (

Port 1( P1.0 – P1.7 ) có số chân từ 1 – 7

Port xuất nhập dữ liệu ( P1.0 – P1.7 ) khi sử dụng hoặc không sử dụng bộ nhớ ngoài

Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ byte thấp ( A0 – A7 )

Port 2 ( P2.0 – P2.7) có số chân từ 21- 28

Port xuất nhập dữ liệu ( P2.0 – P2.7 ) khi không sử dụng bộ nhớ ngoài

Bus địa chỉ byte cao ( A8 – A15 ) khi có sử dụng bộ nhớ ngoài

Khi lập cho Rom trong chip thì port 2 đóng vai trò là ngõ vào của địa chỉ byte cao (

A8 – A11) và các tín hiệu điều khiển

Port 3 ( P3.0 – P3.7) có số chân từ 10 – 17

Port xuất nhập dữ liệu ( P3.0 – P3.7 ) khi không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt

Các tín hiệu điều khiển khi có sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt

Khi lập cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của tín hệu điều khiển

Chức năng của các chân Port 3 :

Bit Tên Địa chỉ bit Chức năng

P3.0 RxD B0H Chân nhận dữ liệu của port nối tiếp

P3.1 TxD B1H Chân phat dữ liệu của port nối tiếp

P3.2 INT0\ B2H Ngõ vào ngắt ngoài 0

P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1

P3.4 T0 B4H Ngõ vào của bộ định thời/đếm 0

P3.5 T1 B5H Ngõ vào của bộ định thời/đếm 1

P3.6 WR\ B6H Điều khiển ghi bộ nhớ dữ liệu ( RAM ) ngoài

P3.7 RD\ B7H Điều khiển đọc bộ nhớ dữ liệu ( RAM ) ngoài

Bảng 1.3: Chức năng của các chân của port 3

PSEN( program store enable ) : cho phép bộ nhớ chương trình, chân số 29

Là tín hiệu cho phép truy xuất ( đọc ) bộ nhớ chương trình ROM ngoài

Là tín hiệu xuất, tích cực mức thấp

PSEN\ = 0 : trong thời gian CPU tìm – nạp lệnh từ RAM ngoài

PSEN\ = 1 : CPU sử dụng RAM trong ( không sử dụng RAM ngoài )

Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chân

OE\ của RAM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài

EA ( External Access ) : truy xuất ngoài , chân số 31

Là tín hiệu cho phép truy xuất sử dụng bộ hớ chương trình RAM ngoài

Là tín hiệu nhập , tích cực mức thấp

EA\ =0 : chip 89S52 sử dụng chương trình của ROM ngoài

EA\ =1 : chip 89S52 sử dụng chương trình của ROM ngoài

Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp lập trình

Lưu ý : chân EA luôn luôn phải được nôi lên Vcc ( sử dụng chương trình của ROM trong ) và xuống Vss ( sử dụng chương trình của ROM ngoài )

XTAL ( Crystal ) : tinh thể thạch anh, chân số 18 – 19

Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung cấp tín hiệu xung clock cho chip hoạt động

XTAL1 : ngõ vào mạch tạo xung clock trong chip

XTAL2 : ngõ vào mạch tạo xung clock trong chip

Lưu ý : fTYP = 12MHz fOSC = fCLK / 2 f TYP : tần số danh định fOSC : tần số mạch dao động trên chip f CLK : tần số mạch dao động bên ngoài

RST ( Reset ) : thiết lập laị, chân số 9

Mạch dao động TTL XTAL1

Kết nối thạch anh dao động bên ngoài

Kết nối mạch dao động bên ngoài

Là tín hiệu cho phép thiết lặp ( đặt ) lại trạng thái ban đầu cho hệ thống

Là tín hiệu nhập, tích cực mức cao

RST = 0 : chip hoạt động bình thường

RST = 1 : chip được thiết lặp lại trạng thái ban đầu

T MACHINE = 6T OSC t RESET : thời gian reset

TOSC : chu kỳ dao động

Vcc, Gnd : nguồn cung cấp điện, chân 40 – 20

Cung cấp nguồn điện cho 8051 hoạt động

Reset bằng tay Reset khi cấp nguồn

Bộ định thời của timer được thực hiện bằng một chuỗi Flip-Flop mắc nối tiếp Nguồn tín hiệu xung clock được đưa vào Flip-Flop đầu tiên; tín hiệu xuất ra từ Flip-Flop này được dùng làm xung clock cho Flip-Flop thứ hai, và tiếp tục cho các Flip-Flop tiếp theo Ở mỗi cấp, tần số của xung clock được chia đôi, nên tần số tại các Flip-Flop giảm dần theo lũy thừa của 2, tạo nên chu trình định thời đồng bộ và điều khiển thời gian trễ hoặc chu kỳ hoạt động của hệ thống.

Mỗi tầng trong bộ timer đóng vai trò một bộ chia tần số: ngõ vào được chia cho 2 ở mỗi tầng Với n tầng, ngõ ra sẽ là clock ban đầu chia cho 2^n Ngõ ra của tầng cuối cùng là clock cho Flip-Flop trong bộ timer hoặc là tín hiệu cờ được phần mềm kiểm tra và có thể sinh ra ngắt Giá trị nhị phân lưu ở các Flip-Flop của bộ timer có thể được hiểu như một đếm xung clock hoặc như các sự kiện quan trọng mà hệ thống theo dõi.

Ví dụ : Timer 16 bit có thể đếm từ FFFFH sang 0000H

Hoạt động timer đơn giản là 3 bit được minh họa như sau :

Hình 1.10.Biểu đồ thời gian

KHẢO SÁT LCD LMB162A

LMB162A được sản xuất bằng công nghệ CMOS công xuất thấp Nó có thể hiển thị 20 ký tự nhân 2 dòng Nó giao tiếp 4 bit hay 8 bit với MPU

LMB162A có những đặc tính sau :

Dạng hiển thị : 20 ký tự nhân 2 dòng

Có chế độ màu vàng xanh

Dễ dàng giao tiếp 4 bit hoặc 8 bit với MPU

Sự tiêu thụ công suất thấp

Hình 1.14: Hình dạng bên ngoài của màn hình hiển thi LCD

Hình1.15: Sơ đồ khối ứng dụng

Những chip này có 2 cách giao tiếp : 4 bit bus và 8 bit bus , điều này được chọn bởi DL bit trong thanh ghi chỉ lệnh

Trong hoạt động đọc và ghi, 8 bit của thanh ghi được dùng; đây là thanh ghi dữ liệu (DR) Thanh ghi còn lại đảm nhận chức năng thanh ghi lệnh.

Có 2 loại thanh ghi : thanh ghi lệnh IR và thanh ghi dữ liệu DR trong chip điều khiển trực tiếp bởi đơn vị vi điều khiển Thông tin điều khiển được lưu trữ tạm thời trong thanh ghi dữ liệu DR mỗi hoặt động ở trong, đọc hoặt ghi vào RAM thì làm tự động Điều này cho phép giao tiếp với nhiều loại vi xử lý mà có thể hoạt động ở nhiều tốc độ khác nhau và cho phép giao tiếp với những thiết bị ngoại vi.Những hoặt động bên trong được xác định bởi tín hiệu gởi từ đơn vị xử lý MPU

Các tín hiệu RS (Register Select), RW (Read/Write) và DB0–DB7 (dữ liệu trên kênh) là các tín hiệu cơ bản dùng trong quá trình thăm dò, đóng vai trò là tín hiệu điều khiển và dữ liệu để chọn thanh ghi, xác định chế độ đọc/ghi và truyền dữ liệu qua các đường DB0–DB7.

Thanh ghi lệnh IR chỉ để lưu mã lệnh được truyền từ MPU, MPU không thể sử dụng nó để đọc dữ liệu

0 0 Chọn IR, IR ghi dữ liệu ở chế độ xóa màn hình

0 1 Cờ bận ( DB7 ) và địa chỉ counter ( DB0  DB6) đọc dữ liệu

1 0 Chọn DR, ở chế độ ghi dữ liệu trong DDRAM hoặt CGRAM

1 1 Chọn DR ở chế độ đọc dữ liệu từ DDRAM hoặc CGRAM

Bảng 1.16: Bảng lựa chọn thanh ghi phụ thuộc ngõ vào RS

Việc kết nối các chân để giao tiếp

Chân Ký hiệu Tên Mô tả

2 VDD Nguồn cung cấp Nguồn cung cấp cho mạch điện

3 VEE Áp cung cấp cho LCD Mức áp có thể thay đổi của LCD

4 RS Chọn thanh ghi Ngõ vào chọn thanh ghi

RS=1,thanh ghi dữ liệu được chọn RS=0,thanh ghi chỉ dẫn được chọn

5 RW Đọc/ghi Ngõ vào lựa chọn đọc /ghi

Tín hiệu có thể bắt đầu đọc/ghi liệu

710 DB0DB3 Thuộc bus dữ liệu

Dùng như bus data bit thấp, song công Trong kiểu 4 bit data thì mở những chân này

1114 DB4DB7 Thuộc bus dữ liệu

Dùng như bus data bit cao, song công Trong trường hợp kiểu 4 bit data, được sử dụng như thứ tự thấp và cao

DB7 được dùng như cờ bận ở ngõ ra

Bảng1.11: Chức năng các chân

2.2.3 Các mã lệnh xử lý LCD

Lệnh RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Trở về vị trí con trỏ

0 0 0 0 0 0 0 0 1 * Định chế độ 0 0 0 0 0 0 0 1 I/D S Điêu khiển hiển thị

Dịch màn hình/ con trỏ

0 0 0 0 0 1 S/C L/R * * Định chức năng hoặt động

0 0 1 A6 A5 A4 A3 A2 A1 A0 Đọc cờ bận và địa chỉ counter

Lệnh Mô tả Thời gian thực hiện

Fosc%0Khz Xóa màn hình Xóa màn hình và con trỏ về vị trí ban đầu

Trở về vị trí đầu con trỏ Màn hình trở về vị trí ban đầu 1.64ms Định chế độ I/D=1:địa chỉ tự động tăng dần,

S=0:màn hình không dịch chuyển

40us Điều khiển hiển thị màn hình

Dịch màn hình và con trỏ S/C=1:dịch màn hình 1 ký tự

40us Định chức năng hoặt động DL=0/1:giao tiếp dữ liệu 4 bit / 8 bit

40us Định địa chỉ CGRAM Định địa chỉ CGRAM tương ứng với định địa chỉ con trỏ

40us Định địa chỉ DDRAM Một đường: 00H0FH

40us Đọc cờ busy và địa chỉ counter

BF=1/0:cờ bận/cờ sẵn sàng Địa chỉ counter sử dụng 2 địa chỉ CGRAM và DDRAM

Ghi dữ liệu Ghi dữ liệu trong CGRAM và 46us

DDRAM Đọc dữ liệu Đọc dữ liệu trong CGRAM và

Address counter (AC): Địa chỉ counter định rõ khi dữ liệu được ghi vào trong DDRAM hoặc

CGRAM và dữ liệu này được đọc ra ngoài Nếu 1 địa chỉ lệnh được thiết lập

DDRAM hoặc CGRAM được ghi trong thanh ghi IR; thông tin địa chỉ được truyền từ IR sang AC Khi dữ liệu màn hình được ghi vào hoặc đọc từ DDRAM hoặc CGRAM, địa chỉ AC tự động tăng lên hoặc giảm theo chế độ đã được định trước Nội dung của địa chỉ AC là đầu ra từ các bit DB0 đến DB6, và được xác định khi RS=0 và R/W=1.

MOSFET

Trong hình 1.13 (kênh n) và hình 1.14 (kênh np), cấu tạo cho thấy hai đặc điểm quan trọng: một kênh dẫn điện loại n hoặc loại p đã có sẵn và được nối thông giữa hai cực D và S của thiết bị.

Cực nằm cách ly với kênh qua 1 lớp điện môi SiO2 mỏng cỡ m a) b) c ) Hình 1.15 a)Cấu tạo mosfet kênh n b) Ký hiệu quy ước; c)Đặc tuyến I D theo U GS

Khi đặt 1 điện áp U DS > 0 giữa D và S, thya đỏi điện áp đặt vào cực cửa U GS >0 hoặc

UGS < 0 ta nhận đặt tuyến truyền đạt ID = f1( UGS) a) b)

Hình 1.16 a) Cấu tạo loại Mosfet kênh p b) Ký hiệu quy ước c) Đặc tuyên I D theo U GS

Với mosfet kênh p cần chú ý: Điện áp máng nguồn UDD 0, ở chế độ nghèo, còn khi U GS < 0 kênh p ở chế độ giàu

Một số lưu ý khi sử dụng mosfet :

Khi sử dụng MOSFET ở chế độ khuếch đại hoặc chế độ khóa điện tử, cần chú ý tới độ nhạy của linh kiện với trường tĩnh điện bên ngoài Lớp điện môi SiO2 có độ dày rất mỏng (khoảng 10⁻⁶ m) nên dễ bị hỏng do phóng điện, vì vậy việc bảo vệ tĩnh điện và kiểm soát các yếu tố ESD là rất quan trọng.

Cần tuân thủ các yêu cầu trong khi thao tác với Mosfet

Khi đang nối nguồn tuyệt đối không lắp hàn hay gỡ Mosfet trong mạch

Không đưa tín hiệu vào lúc nguồn đang ngắt

Cần tiếp điểm ( 0V ) với mỏ hàn truớc khi cho tác động gỡ Mosfet

Nối ngắn mạch các cực của mosfet khi chưa sử dụng

Một số biện pháp có hiệu quả là dùng diode chống quá áp ( đánh thủng ) tại cổng vào như hình 1.17

Hình 1.17 Biện pháp bảo vệ đầu vào mosfet.

RAM 6264

HT6264 là một bộ nhớ SRAM tĩnh có dung lượng 65.536 bit, được cấu tạo từ 8.192 từ, mỗi từ 8 bit, hoạt động từ nguồn 5V một chiều Sản phẩm do HOLTEK sản xuất trên công nghệ CMOS hiệu suất cao ở quy trình 8 μm, phù hợp cho các ứng dụng SPDM.

Hình 1.18: Sơ đồ chân RAM 6264

Hình 1.19: sơ đồ khối RAM 6

Số chân Tên chân I/O Mô tả

10~3,25,24,21,2 A0~A12 I Địa chỉ những chân ngõ vào

11~13,15~19 D0~D2,D3~D7 I/O Những chân dữ liệu ngõ vào và ngõ ra tín hiệu 26,20 CS2,CS1\ I Chân chọn tín hiệu

22 OE\ I Chân cho phép tín hiệu ngõ ra

27 WE\ I chân cho phép ghi tín hiệu

28 VDD I Chân cung cấp nguồn dương

14 GND I Chân cung cấp nguồn âm

Bảng 1.14 Sơ đồ chân RAM 6264.

MOTOR DC MỘT CHIỀU

2.5.1 Sơ lược động cơ điện 1 chiều: Động cơ điện 1 chiều tuy cấu tạo phức tạp, khó sử dụng , nhưng có nhiều ưu điểm, đặc biệt là động cơ 1 chiều có mômen khởi động lớn hơn động cơ không đồng bộ, tôc độ chỉnh có phạm vi rộng Trong các thiết bị tự động hóa cũng hay dùng máy điện 1 chiều để kéo máy

2.5.2 Các bộ phận của động cơ một chiều

Phần cảm, hay stator, là bộ phận sinh ra từ trường, được chế tạo từ thép đúc và có lắp các cực từ, thường từ 2 đến 8 cực Trên các cực từ chính đặt dây quấn kích từ để tạo từ trường Ở những máy có công suất lớn, còn có thêm các cực từ phụ xen kẽ với các cực từ chính, và các cực phụ này nhỏ hơn các cực chính.

Trong máy điện nhỏ, dây quấn của cực từ phụ có ít vòng hơn nhưng tiết diện dây lớn hơn và mắc nối tiếp với phần ứng, có tác dụng khử các tia lửa điện phát sinh trên cổ góp Ở những máy nhỏ, phần cảm là nam châm vĩnh cửu đặt phía trong vỏ máy, gồm những thanh nam châm có cực N và S xen kẽ nhau.

Phần ứng là lõi thép gồm các lá thép kỹ thuật điện được dập rãnh để quấn dây nối ra cổ góp điện; cổ góp lắp trên trục tạo thành bộ phận quay cùng rotor Động cơ một chiều được chia thành 4 loại: động cơ kích từ độc lập, cuộn dây kích từ không nối vào phần ứng mà lấy điện từ nguồn điện một chiều; khi có yêu cầu cao về điều chỉnh tốc độ thường dùng động cơ kích từ độc lập Động cơ kích từ song song, hay còn gọi là kích từ song song, có cuộn dây kích từ đấu song song với cuộn dây phần ứng; đặc điểm là tốc độ động cơ ít thay đổi theo tải nên thường dùng để kéo các máy cần tốc độ ổn định như máy dệt, quạt gió, thang máy Động cơ một chiều kích từ nối tiếp có cuộn dây kích từ quấn bằng dây điện cỡ lớn và ít vòng; nguồn kích từ được nối tiếp với cổ góp điện của dây quấn phần ứng nên dòng kích từ bằng dòng điện phần ứng Động cơ một chiều kích từ hỗn hợp là sự kết hợp giữa kích từ độc lập và kích từ nối tiếp, cho phép tận dụng ưu điểm của cả hai để điều chỉnh tốc độ và tải tốt hơn.

Phần cảm có 2 loại cuộn dây:

Cuộn kích từ song song quấn bằng dây nhỏ , nhiêu vòng nối song song với phần ứng

Cuộn kích từ nối tiếp được quấn bằng dây to, ít vòng, và được đấu nối tiếp với phần ứng; từ thông của động cơ là tổng hợp của hai từ thông này, do đó động cơ tận dụng được các đặc tính cơ bản của hai loại từ thông.

Phần lớn các máy công nghiệp dùng động cơ một chiều thuộc loại kích từ hỗn hợp có cực từ phụ, nhằm ngăn tia lửa trên cổ góp khi tải và đạt mô-men mở lớn Điều này giúp động cơ khởi động mạnh và vận hành ổn định cho các hệ thống công nghiệp như máy bơm và cần cẩu.

Hoạt động của motor DC:

Hình 1.20: Hoạt động của motor Xét hình bên trên ta thấy rằng khi có dòng điện một chiều đi qua motor sẽ khiến motor quay như hình trên

Đảo chiều dòng điện qua động cơ DC khiến rotor quay theo một hướng, và đổi chiều sẽ khiến motor quay ngược lại; từ đó ta có thể điều chỉnh hướng quay của motor DC bằng cách thay đổi chiều dòng điện Động cơ DC có đặc tính tốc độ quay cao và mô-men ngẫu lực thấp, trong khi nhiều robot lại cần tốc độ quay chậm và mô-men ngẫu lực lớn, nên người ta thường lắp hộp số vào motor DC để giảm tốc độ và tăng mô-men Hộp số ghi rõ tỉ lệ truyền động giữa đầu vào và đầu ra; ví dụ một motor DC quay 1000 vòng/phút ghép với hộp số 1000:1 sẽ cho ra đầu ra có tốc độ khoảng 1/1000 của tốc độ motor khi chưa có hộp số Vận tốc đầu ra của hộp số bằng vận tốc motor chia cho hệ số truyền động, và mô-men ngẫu lực tăng lên theo cùng tỷ lệ (bỏ qua hao phí).

2.5.3 Điều khiển chiều quay của DC motor Điều khiển DC motor bằng Rơle:

Rơ-le (Relay) là một thiết bị điện hoạt động dựa trên nguyên lý cảm ứng từ nhờ cuộn dây nam châm Nó được cấu tạo từ một mạch điện điều khiển và một cơ cấu tiếp điểm có thể được đóng hoặc mở nhờ lực từ do cuộn dây nam châm sinh ra Khi cuộn dây nhận tín hiệu từ nguồn điện, trường từ làm cho tiếp điểm đóng hoặc mở, từ đó ngắt hoặc cấp nguồn cho tải theo yêu cầu điều khiển của hệ thống.

Sơ đồ nguyên lý Relay:

Nguyên lý hoạt động của cuộn dây là khi có dòng điện chạy qua, từ trường do cuộn dây sinh ra sẽ hút các thanh kim loại về phía cuộn Lập tức, hai thanh kim loại rời khỏi hai đầu dây cũ và tiếp xúc với hai đầu dây còn lại ở vị trí mới, làm thay đổi kết nối mạch và kích hoạt chức năng của thiết bị.

Trước khi có dòng điện chạy qua cuộn dây nam châm (2 cực đều là x), các thanh kim loại màu đen được nối từ đầu 1 đến đầu a và từ đầu 2 đến đầu c, vì vậy dòng điện chỉ chạy từ đầu 1 tới đầu a và từ đầu 2 tới đầu c.

Khi dòng điện chạy qua cuộn dây nam châm, từ trường do cuộn dây sinh ra sẽ hút các thanh kim loại về phía nó Do lực hút này, các thanh kim loại sẽ nối từ đầu 1 đến đầu b và từ đầu 2 đến đầu d.

Nguyên lý hoạt động của relay là biến đổi dòng điện thành từ trường thông qua cuộn dây; từ trường này tạo ra lực cơ học nhờ lực hút, từ đó thực hiện các động tác cơ khí như đóng mở công tắc hoặc điều chỉnh hành trình của các cơ cấu tự động Nhờ cơ chế này, relay đóng vai trò như một thành phần điều khiển điện–cơ trong mạch, đặc biệt là để điều khiển chiều quay của động cơ DC motor Ứng dụng của relay trong mạch điều khiển DC motor cho phép tín hiệu điều khiển được chuyển thành các thao tác điện và cơ, giúp kiểm soát nhanh chóng, an toàn và chính xác hành trình và hướng quay của động cơ.

Mạch nguyên lý có dạng như sau :

Hình 1.21 trình bày sơ đồ mạch Relay Đoạn mạch trên có hai đoạn dây cần nối với nhau là dây C1 nối với dây C1 và dây PWM1 nối với dây PWM1 Dây C1 điều khiển chiều quay của động cơ.

Trong mạch điều khiển motor DC bằng mạch cầu H, C1 nối với 12V để động cơ quay thuận; C1 ở mức tín hiệu dưới 11V để động cơ quay ngược Dây PWM1 là tín hiệu xung PWM dùng để điều khiển vận tốc của động cơ Trên mạch còn có IRF540, con FET này dùng để bảo vệ Relay mỗi khi xoay chiều Điều khiển chiều quay của DC motor bằng mạch cầu H cho phép thay đổi hướng quay một cách nhanh chóng và an toàn.

Trong các cuộc thi Robocon, mạch cầu H được nhiều bạn sinh viên lựa chọn nhờ hiệu quả cao trong điều khiển động cơ và sự linh hoạt của nó Tên gọi mạch cầu H bắt nguồn từ sơ đồ kết nối hình chữ H, cho phép điều khiển hướng quay và phối hợp hai động cơ một cách dễ dàng, từ đó tối ưu hóa hiệu suất thi đấu.

Điều xung PWM, điều chỉnh vận tốc cho động cơ

Điều chế PWM (Pulse Width Modulation) là một khâu quan trọng trong thiết kế robot, với vai trò tối ưu hóa điều khiển hệ thống PWM cho phép điều khiển tốc độ linh hoạt cho động cơ DC, từ đó có thể dùng các hàm vận tốc để điều khiển chuyển động của robot một cách hiệu quả và mượt mà.

2.6.1 Định nghĩa Điều xung nói chung lã cách bật tắt nguồn điện của motor liên tục làm cho motor lúc nhận được điện lúc mất điện Khi tần số đủ cao motor sẽ quay ổn định ở một tốc độ nhờ mômen quay của bánh xe

Xung vuông là biểu đồ thể hiện trạng thái của nguồn điện cấp cho động cơ Khi nguồn được cấp, động cơ hoạt động và xung vuông ở mức cao; khi nguồn ngắt, động cơ dừng và xung vuông ở mức thấp Tốc độ của động cơ phụ thuộc vào độ rộng của xung vuông (thời gian duy trì ở mức cao trong mỗi chu kỳ), vì vậy tần số và độ rộng xung quyết định tốc độ quay của động cơ.

Hình 1.22 : trạng thái điều rộng xung

Ta xem các xung trên, mỗi xung dù là 20%, 50% hay 80% đều có 2 trạng thái 12V và 0V, 12V được gọi là trạng thái cao ở trạng thái này motor sẽ quay còn

0V là trạng thái thấp và ở trạng thái này motor sẽ nhận điện áp dừng Trong một biểu đồ xung, tổng phần trăm của trạng thái cao và trạng thái thấp bằng 100%, và số xung cho biết sự phân bổ thời gian giữa các trạng thái này.

20%, 50% , 80% là xung cao Cho nên phần trăm xung thấp = 100% - % xung cao

Trong điều khiển bằng xung PWM, thời lượng xung cao càng dài thì tốc độ motor càng lớn Vì vậy, motor đạt tốc độ tối đa khi được cấp tín hiệu ở chế độ xung 100%, và motor sẽ dừng khi không có xung PWM (duty cycle bằng 0%).

2.6.2 Phương pháp điều rộng xung ở AT89S52

Giả sử ta điều động xung ở chế độ 50%:

2.6.3 Lưu đồ điều rộng xung.

Encoder cho bánh xe

Encoder là một hệ thống gồm một cặp thu phát hồng ngoại và một đĩa tròn có rãnh, được dùng để quản lý và xác định vị trí góc quay của vật chuyển động tròn như bánh xe hay trục động cơ Trong kỹ thuật robot, encoder có vai trò quan trọng để đếm số vòng quay của bánh xe và theo dõi vận tốc quay một cách chính xác Đĩa tròn của encoder thường có hai vòng lỗ, giúp sinh ra các xung tín hiệu khi quay và cho phép giải mã vị trí cũng như tốc độ quay của hệ thống.

Vì trong robot ứng dụng chính của encoder là đếm số vòng quay của động cơ nên ở đây chỉ đề cập đến encoder đếm lên ( Incremental encoder )

Trong encoder, độ phân giải chính là số lỗ trên một vòng quay Ví dụ, một đĩa encoder có N lỗ trên vòng, tương ứng với độ phân giải của nó Cách hoạt động của nó rất đơn giản: nó dùng một cặp LED phát và một cặp cảm biến thu bằng ánh sáng hồng ngoại Các LED hồng ngoại được đặt đối xứng, chiếu sáng qua đĩa; mỗi khi các lỗ trên đĩa đi qua giữa nguồn sáng và cảm biến, ánh sáng được bật/tắt và phát sinh các xung để xác định vị trí và vận tốc quay.

2 led ta đặt cái đĩa encoder vào:

Trong cấu tạo encoder như hình 1.23, bánh xe chuyển động kéo theo đĩa quay, còn đĩa đứng chỉ nhằm mục đích điều tiết tia sáng và không tham gia vào quá trình truyền tín hiệu Trên đĩa quay có các rãnh hở; khi đèn LED chiếu đúng vào một rãnh, tia hồng ngoại sẽ xuyên qua rãnh và được nhận bởi bộ thu LED, còn tại các vị trí không có rãnh ánh sáng không thể đi qua Như vậy mỗi khi tín hiệu nhận được từ cảm biến cho biết LED đã đi qua một rãnh, hệ thống encoder sẽ ghi nhận một xung, cho phép xác định vị trí và góc quay của encoder.

Để biết đĩa encoder đã quay được một vòng, ta dùng một đĩa encoder có một vòng lỗ duy nhất và chiếu sáng qua lỗ bằng LED, sau đó cho đĩa quay Khi lỗ đi qua đường sáng, LED sáng lên và tạo ra tín hiệu; khi đĩa quay đủ một vòng và quay lại vị trí của lỗ, ánh sáng lại lọt qua và phát ra tín hiệu cho biết đã quay hoàn tất một vòng Vì mỗi lần lỗ qua ánh sáng sẽ gửi về một xung vuông, ta có thể đếm các xung này để xác định số vòng quay đã thực hiện.

Encoder càng có nhiều lỗ trên vòng quay thì độ phân giải (xung/vòng) càng cao, nhưng lúc đó bộ xử lý đòi hỏi tốc độ xử lý rất nhanh để nhận biết kịp thời các xung vì vận tốc quay của động cơ là rất lớn Với các ứng dụng thông thường, nên chọn encoder có ít lỗ để dễ đếm và đảm bảo tín hiệu ổn định Ví dụ một đĩa encoder 16 lỗ trên một vòng có thể kết nối với một bộ đếm ngoài để đếm số lỗ; khi đếm lên tới 16 lỗ, ta dùng ngắt (interrupt) báo rằng động cơ đã quay được một vòng.

Trong trường hợp có tác động khiến encoder đếm sai một lỗ, sai số ban đầu có thể không lớn, nhưng khi encoder quay nhiều vòng thì sai một lỗ sẽ tích lũy và trở thành một con số đáng kể Vì vậy ta sẽ tạo một lỗ định vị nằm ngay bên trong vòng đếm của encoder, nhằm xác định vị trí chuẩn và giảm thiểu sai lệch tích lũy qua các vòng quay.

Khi LED của lỗ định vị báo motor đã quay hoàn tất một vòng quay nhưng vòng ngoài vẫn chưa có tín hiệu xác nhận hoàn tất một vòng quay, chúng ta cho rằng đây là lỗi của bộ đếm và xem đó là một vòng quay hợp lệ.

Cách xác định chiều quay của động cơ :

Chúng ta sử dụng thêm một cặp LED phát/thu và đặt lệch so với cặp thứ nhất; ví dụ, khi cặp thứ nhất chiếu vào một rãnh thì cặp thứ hai không chiếu vào rãnh Do đó khi rãnh quay ta có sơ đồ xung như sau.

Trong sơ đồ chiều quay của encoder (Hình 1.24), chiều quay được xác định dựa vào quan hệ pha giữa hai xung A và B Khi xung A chuyển từ mức cao xuống mức thấp và tại thời điểm đó xung B ở mức thấp, chiều quay của encoder được xác định theo hướng mà mũi tên màu cam chỉ ra.

Nếu A đang từ mức cao xuống mức thấp, mà B đang ở mức cao thì chúng ta sẽ biết encoder đang quay theo chiều màu đen.

CÁC PHƯƠNG PHÁP ĐIÊU KHIỂN TRONG ROBOT

ĐO TỐC ĐỘ ĐỘNG CƠ

3.1.1 Hai thiết bị thường dùng để đo tốc độ động cơ

Techomotor: ngõ ra của techomotor là điện áp 1 chiều biên độ tỷ lệ thuận vào tốc độ Chiều của điện áp phụ thuộc vào hướng quay của techomotor

Encoder thường được dùng để đo góc quay và có hai loại chính là encoder gia tăng và encoder tuyệt đối Cả hai hoạt động dựa trên nguyên lý cảm biến ánh sáng với một đĩa có các vạch sáng tối quay giữa nguồn sáng và phototransistor, cho phép xác định vị trí và tốc độ quay Đối với động cơ servo, encoder thường được tích hợp sẵn và gắn trực tiếp ở đuôi động cơ Loại encoder này cho ra hai xung, xung A và xung B lệch nhau 90 độ, và độ phân giải phụ thuộc vào từng loại động cơ.

Quay thuận A sớm pha hơn B 90 0 Quay ngược A trể pha hơn B 90 0

 Đo tốc độ sử dụng encoder thường dùng đơn vị 

Với T giây là thời gian lấy mẫu (tính bằng giây)

Với thời gian lấy mẫu đúng bằng ĐPGencoder

60 (giây) số xung đọc được chính là số vòng quay của động cơ trong 1 phút.

Nguyên nhân gây sai số khi sử dụng encoder

Tần số xung ra của encoder tỉ lệ thuận với tốc độ quay và độ phân giải của encoder; khi tốc độ hoặc độ phân giải tăng lên, tần số xung tăng theo Tần số xung quá cao có thể làm bộ đếm đọc thiếu xung, gây sai lệch đo và làm giảm độ chính xác của hệ thống Để tối ưu hiệu suất, chọn encoder có tần số xung phù hợp với yêu cầu ứng dụng và đảm bảo bộ đếm có thể xử lý xung ở ngưỡng đó mà không bỏ xung.

Nhiễu trên đường truyền, để khắc phục thường sử dụng encoder ngõ ra xung vi sai A,A\,B,B\ hoặc sử dụng encoder ngõ ra dòng

Hiện tượng rung khi đọc encoder: gây ra sai số lớn không mong muốn, nguyên nhân do sự rung cơ khí khi encoder hoạt động

Cách khắc phục là đọc kết hợp xung A và xung B sử dụng các bit nhớ để nhớ trạng thái trước đó

Sau đây là phương pháp đọc xung encoder độ phân giải nhân 2 có chống rung

- Xung A nối với chân ngắt ngoài của vi điều khiển Ngắt ngoài phải hổ trợ ngắt cạnh lên và ngắt cạnh xuống

- Xung B nối với chân bất kì làm mức tham chiếu dùng xác định chiều quay và đưa vào bit nhớ trạng thái

Nguyên tắc xét ngắt cạnh ở xung A tại thời điểm t cho phép giả sử mứclogic tương ứng trên chân B bằng 0; ngắt ở A tại thời điểm t+1 được coi là hợp lệ chỉ khi mức logic trên chân B bằng 1 Nói cách khác, hai ngắt liên tiếp phải có mức logic trên chân B là bù nhau; bất kỳ ngắt nào có mức logic trên chân B bằng với ngắt trước đó sẽ được xem là sai Mỗi ngắt hợp lệ sẽ tăng đếm xung lên 1 đơn vị.

Chiều quay của encoder được xác định theo qui tắc sau:

Quay thuận nếu có ngắt mức thấp khi B=1

Quay ngược nếu có ngắt mức thâp khi B=0.

Phương pháp dùng vi điều khiển đọc cùng lúc 2 encoder

Hai xung A_1, A_2 đưa vào 2 chân ngắt ngoài, ngắt phải cho phép đọc cạnh xuống

Hai xung B_1, B_2 đưa vào 2 chân bất kì làm mức tham chiếu để xác định chiều và chống rung

Mỗi ngắt hợp lệ trên chân Interrupt sẽ tăng biến counter tương ứng lên 1 đơn vị

Một ngắt timer được thiết lập với thời gian tràn 2

T giây là thời gian lấy mẫu , T giây ĐPGencoder

Ngắt timer sẽ luân phiên đọc số vòng quay của encoder ở 2 biến counter_1 và counter_2.

XÁC ĐỊNH ĐƯỜNG CONG QUÁ ĐỘ

Với thiết bị đo tốc độ hiện có (thông qua đọc số xung encoder lắp sẵn trên động cơ), ta không thể đo được số xung trong một khoảng thời gian cố định để suy ra tốc độ quay Nguyên nhân là do giới hạn về độ phân giải của encoder và tần số đáp ứng của hệ thống đo, cùng với sự bất đồng bộ giữa thời gian đo và chu trình sinh xung khi động cơ vận hành ở các tốc độ khác nhau, khiến việc suy ra tốc độ từ một khoảng thời gian ngắn trở nên không đáng tin cậy Để khắc phục, ta có thể đo tần số xung hoặc số xung trên mỗi vòng quay kèm thời gian đo, hoặc nâng cấp hệ thống với encoder có độ phân giải cao và bộ xử lý tín hiệu có tần số mẫu lớn để đạt được đo tốc độ chính xác hơn.

 Thời gian quá độ của động cơ tương đối ngắn thường không quá 3 giây

 Nếu thời gian lấy mẫu lớn, số mẫu tốc độ thu được sẽ rất ít

 Nếu thời gian lấy mẫu nhỏ sẽ gây ra sai số, sai số sẽ càng lớn nếu độ phân giải của encoder càng thấp

Tốc độ động cơ dưới dạng liên tục

Tốc độ động cơ dưới dạng xung encoder

Ta có thể đo tốc độ động cơ bằng cách đo chu kì của N xung sau đó suy ra tốc độ trung bình tại thời điểm đó

Việc chọn số xung cho hệ điều khiển được xác định dựa trên số lượng mẫu yêu cầu, độ phân giải của encoder và đặc tính tốc độ của động cơ Thao tác này giúp tối ưu hóa độ chính xác vị trí, độ mịn của tín hiệu điều khiển và hiệu suất hoạt động của hệ thống Khi số mẫu yêu cầu hoặc độ phân giải encoder tăng, nên tăng số xung để duy trì độ phân giải và đáp ứng nhanh Ngược lại, với động cơ có tốc độ không tải thấp hoặc các giới hạn khác của hệ thống điều khiển, cần điều chỉnh số xung cho phù hợp để tránh quá tải và đảm bảo sự ổn định Ví dụ với động cơ có thông số tốc độ không tải, việc xác định số xung tối ưu sẽ giúp tối ưu hóa hiệu suất và độ ổn định của hệ thống.

2400 vòng/phút, encoder 500 xung, thời gian quá độ 3 giây, số mẫu yêu cầu 300 mẫu Số xung được tính như sau:

 Tốc độ động cơ V= 2400 vòng/phút = 40 vòng/giây

 Xác định gần đúng số vòng quay của động cơ trong thời gian quá độ bằng cách tuyến tính hóa đường cong tốc độ

Số xung mâu sô ĐPGencoder

Khi đó tốc độ động cơ được tính bằng công thức:

Với T i là thời gian VĐK đọc được 60 xung từ encoder.

Cấu tạo phần cứng

Nguồn động lực lấy từ bình acquy 12V

Nguồn điều lấy từ bình acquy qua IC ổn áp 7805

3.5.2 Sơ đồ mạch điều khiển :

3.5.3 Mạch công suất điều khiển động cơ.

THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN

Lưu đồ và giải thuật robot học đường đi

Lấy giá trị encoder lưu vào RAM với chu kỳ 1s Sau đó lấy ra chạy với vận tốc dựa vào chính số xung mới lấy ra

Kiểm tra tốc độ nhanh nhất của động cơ trong 1s là bao nhiêu xung = V

Số xung (encoder/vòng bánh ) = x Để tính vận tốc ta có :

Với V là giá trị encoder khi động cơ chạy 100% trong 1s Và vận tốc của xe lúc học không được nhanh hơn V?

Lưu đồ và giải thuật ở chế độ chạy

[1] Tống Văn On, Hoàng Đức Hải, Họ vi điều điều khiển 8051, nhà xuất bản lao động và xã hội

[2] Ngô Diên Tập, Vi điều khiển với lập trình C, nhà xuất bản khoa học và kỹ thuật

[3] Kiều Xuân Thực ( chủ biên), Vũ Thị Thu Hương, Vũ Trung Kiên, Vi điều khiển cấu trúc – lập trình và ứng dụng, nhà xuất bản giáo giục

This AT89x52/8051 microcontroller code maps specific I/O pins to labeled signals: nut1–nut4 read the four inputs on Port 1 (P1^0 to P1^3), cl1 and cl2 occupy P1^4 and P1^5, and cr1 and cr2 use P1^6 and P1^7, while pwmL and pwmR are PWM outputs on Port 3 (P3^0 and P3^1) A learn flag is initialized to 0 to control mode behavior The program declares several unsigned integers to track encoder pulse counts and timing for left and right channels (luuxung_r, luuxung_l and their backups luuxung_r1, luuxung_l1), along with xung_l and xung_r as edge counters It also defines two 8-bit PWM values, Pwm_L and Pwm_R, and two counters, tp and dem, to manage timing, sequencing, and state changes in an embedded PWM/encoder control system.

#include void main()

{ unsigned int i=0; li=0; cl1=1; cl2=0; cr1=1; cr2=0; for(i=0;i8)&0xff; ram[dia_chi_ram*4+3]=xung_r&0xff; dia_chi_ram++;

{ luuxung_l=((ram[dia_chi_luu*4+0]

Ngày đăng: 30/10/2022, 03:41

w