Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Tìm hiểu RC SERVO Giải pháp Điều Khiển Tốc Độ cho RC SERVO (không can thiệp phần cứng) Khảo sát trên động cơ RG946 của hãng TOWARD PRO ( Trung Quốc ) là loại động cơ có chất lượng tương đối tốt , các thông số thỏa mãn các yêu cầu đặt ra đối với nhiều ứng dụng này , giá thành chấp nhận được . Thông số của động cơ: Bảng dòng tải đo đạc trực tiếp: (Các giá trị này là giá trị tương đối được đo đạc thủ công bằng VOM số mang tính chất dùng để ước lượng độ lớn của dòng điện tiêu thụ của động cơ khi động cơ hoạt động) Điều kiện đo Dòng điện trung bình Quay không tải 200mA – 300mA Có tải nhẹ Khoảng 400mA – 500mA Kẹt tải Khoảng 1.2A www.robotgiaoduc.com Dựa vào bảng các giá trị trên ta nhận xét thấy rằng dòng qua động cơ tầm khoảng 200mA đến 500mA .Khi kẹt tải dòng sẽ tăng lên khoảng 1,2A. IC ổn áp tuyến tính áp ra phẳng hơn IC ổn áp xung.Nh ng tổn hao lớn hơn IC nguồn xung rất nhiều.Sẽ làm tỏa nhiệt l ợng lớn rất vô ích , đồng th i giảm th i gian hoạt động . Th ng các IC ồn áp tuyến tính chỉ có các loại ổn áp đ ợc các tải có dòng hoạt động nhỏ .Vì tải là động cơ nên vấn đề cần nguồn có ngõ ra có áp phẳng không quan trọng bằng việc nguồn có ngõ ra có dòng lớn . Nên ta sẽ chọn IC nguồn xung cho việc thiết kế nguồn cho RC servo. Và một lý do quan trọng hơn cả là hiệu suất của loại IC này cao làm tăng th i gian hoạt động ,giảm thiểu tối đa nhiệt năng sinh ra khi RC hoạt động . Trong các họ IC ổn áp nguồn xung hiện nay seri LM25xx của hãng National Semiconductor là loại khá thông dụng tại thị tr ng Việt Nam hiện nay. Ta cần chọn các IC có định mức dòng càng lớn càng tốt , tần số càng cao càng tốt để các linh kiện gắn ngoài (tụ và cuộn dây ) có kích th ớc tối thiểu . Tuy nhiên nếu ta sử dụng loại IC nguồn xung có khả năng chỉnh đ ợc áp ra thì loại IC của hãng MICREL cũng có khả năng thích hợp. Tập trung so sánh 3 loại IC có dòng danh định lớn. Tên IC Dòng điện (A) Tần số(Khz) Áp ra (V) Giá (VND) LM2576 3 52 5 hoặc ADJ 14.000 LM2596 3 150 5 hoặc ADJ 14.000 MIC29302 3 100 5V 28.000 Ta nhận thấy LM2596 u điểm hơn loại LM2576 mà giá thành lại ngang nhau nên ta sử dụng LM2596 cho vấn đề thiết kế mạch nguồn . Đối với mạch điều khiển RC SERVO: Để lựa chọn đ ợc ph ơng án thiết kế mạch điều khiển RC SERVO ta cần tìm hiểu sơ qua cấu tạo và cách thức động cơ hoạt động. www.robotgiaoduc.com Bên trong RC servo 1. Motor 2.Electronics Board 3.Positive Power Wire (Red) 4.Signal Wire (Yellow or White) 5.Negative or Ground Wire (Black) 6.Potentiometer 7.Output Shaft/Gear 8.Servo Attachment Horn/Wheel/Arm 9.Servo Case 10.Integrated Control Chip Bên trong của một động cơ servo R/C. Servo bao gồm một động cơ,một chuỗi các bánh răng giảm tốc, một mạch điều khiển và một vôn kế Động cơ và vôn kế nối với mạch điều khiển tạo thành mạch hồi tiếp vòng kín. Cả mạch điều khiển và động cơ đều đ ợc cấp nguồn DC (th ng từ 4.8 – 7.2 V). Để quay động cơ, tín hiệu số đ ợc gới tới mạch điều khiển . Tín hiệu này kh i động động cơ , thông qua chuỗi bánh răng , nối với vôn kế . Vị trí của trục vôn kế cho biết vị trí trục ra của servo . Khi vôn kế đạt đ ợc vị trí mong muốn , mạch điều khiển sẽ tắt động cơ . Động cơ servo www.robotgiaoduc.com đ ợc thiết kế để quay có giới hạn chứ không phải quay liên tục nh động cơ DC hay động cơ b ớc . Mặc dù ta có thể chỉnh động cơ servo R/C quay liên tục nh ng công dụng chính của động cơ servo là đạt đ ợc góc quay chính xác trong khoảng từ 90 – 180 độ . Việc điều khiển này có thể ứng dụng để lái robot, di chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng… Servo và điều biến độ rộng xung Trục của động cơ servo R/C đ ợc định vị nh vào kỹ thuật gọi là điều biến độ rộng xung (PWM). Trong hệ thống này, servo là đáp ứng của một dãy các xung số ổn định. Cụ thể hơn, mạch điều khiển là đáp ứng của một tín hiệu số có các xung biến đổi từ 1 – 2 ms. Các xung này đ ợc g i đi 50 lần/giây. Chú ý rằng không phải số xung trong một giây điều khiển servo mà là chiều dài của các xung. Servo đòi hỏi khoảng 30 – 60 xung/giây. Nếu số này qua thấp, độ chính xác và công suất để duy trì servo sẽ giảm. Với độ dài xung 1 ms, servo đ ợc điều khiển quay theo một chiều (giả sử là chiều kim đồng hồ ) Điều khiển vị trí của trục ra của động cơ bằng cách điều chế độ rộng xung Với độ dài xung xung 2 ms, servo quay theo chiều ng ợc lại. Kỹ thuật này còn đ ợc gọi là tỉ lệ số - chuyển động của servo tỉ lệ với tín hiệu số điều khiển. Công suất cung cấp cho động cơ bên trong servo cũng tỉ lệ với độ lệch giữa vị trí hiện tại của trục ra với vị trí nó cần đến. Nếu servo gần vị trí đích, động cơ đ ợc truyền động với tốc độ thấp . Điều này đảm bảo rằng động cơ không v ợt quá điểm định đến. Nh ng nếu servo xa vị trí đích nó sẽ đ ợc truyền động với vận tốc tối đa để đến đích càng nhanh càng tốt. Khi trục ra đến vị trí mong muốn, động cơ giảm tốc. Quá trình t ng chừng nh phức tạp này diễn ra trong khoảng th i gian rất ngắn - một servo trung bình có thể quay 60 độ trong vòng ¼ - ½ giây. Vì độ dài xung có thể thay đổi tùy theo hãng chế tạo nên ta phải chọn servo và máy thu vô tuyến thuộc cùng một hãng để đảm bảo sự t ơng thích. Đối với robot, ta phải làm một vài thí nghiệm để xác định độ dài xung tối u. Vai trò của Vôn kế www.robotgiaoduc.com Vôn kế trong servo giữ vai trò chính trong việc cho phép định vị trí của trục ra. Vôn kế đ ợc gắn vào trục ra (trong một vài servo, Vôn kế chính là trục ra). Bằng cách này, vị trí của Vôn kế phản ánh chính xác vị trí trục ra của servo. Ta đã biết Vôn kế hoạt động nh cung cấp một điện áp biến thiên cho mạch điều khiển, Khi cần chạy bên trong Vôn kế chuyển động , điện thế sẽ thay đổi. Mạch điều khiển trong servo so sánh điện thế này với độ dài các xung số đ a vào và phát“tín hiệu sai số” nếu điện thế không đúng . Tín hiệu sai số này tỉ lệ với độ lệch giữa vị trí của Vôn kế và độ dài của tín hiệu vào. Mạch điều khiển sẽ kết hợp tín hiệu sai số này để quay động cơ. Khi điện thế của Vôn kế và độ dài các xung số bằng nhau, tín hiệu sai số đ ợc loại bỏ và động cơ ngừng. Vôn kế thường được dùng như một cầu chia áp. Khi Vôn kế quay, cần chạy di chuyển dọc theo chiếu dài thanh điện trở. Tín hiệu ra của Vôn kế là một điện thế biến thiên từ 0 -5V Vì vậy để điều khiển đ ợc động cơ thì vấn đề cốt lõi chính là làm sao ta tạo ra đ ợc các xung có tần số 50hz và có th i gian lên trong tầm nhỏ hơn 2ms . Ta có 3 cách tạo xung nh sau: * Dùng hàm delay * Dùng biến đếm và so sánh * Dùng module PWM Dùng hàm delay : một chân I/O của vi điều khiển xuất ra mức logic 1 ,sau đó delay 1 khoảng th i gian a (chính là th i gian mức cao của xung điều khiển động cơ mong muốn ) . Tiếp theo đó kéo chân I/O đó xuống mức 0. Delay thêm 1 khoảng th i gian nữa cho đủ 20ms . Đây là giải thuật đơn giản , thiết kế phần cứng sẽ gọn nhẹ vì chỉ dùng các chân I/O là đủ khả năng điều khiển đ ợc động cơ . Mỗi chân I/O t ơng ứng với 1 chân điều khiển động cơ . Chi phí thi công mạch rất thấp. Tuy nhiên trong giải thuật này hầu hết th i gian vi điều khiển chẳng làm gì cả ( và cũng chắng có khả năng xử lý công việc nào cả ) nên muốn sử dụng ph ơng án này ta cần có thêm phần giao tiếp nó . Tức có nghĩa là thiết kế phần điều khiển RC SERVO thành 1 module chuyên dùng để delay và có thêm 1 cổng để giao tiếp với module này . Bên cạnh đó nếu dung nhiều động cơ ta phải so sánh các giá trị delay với nhau để biết đ ợc delay cho động cơ nào tr ớc , cho động cơ nào sau . Vấn đề này gây khó khăn khi lập trình khi mà ta không thể viết thuật toán để sắp xếp đ ợc dữ liệu (vì hàm delay sử dụng quá nhiều ). Dùng giải thuật đếm và so sánh : ý t ng của giải thuật này là tạo 1 biến đếm khoảng 10us và liên tục đếm cho đến 20ms thì reset biến đếm . Khi đó sẽ cho chân điều khiển RC SERVO lên 1 . Biến đếm này sẽ đ ợc so sánh với các giá trị chính là các số chính là các giá trị các độ rộng xung lên của các xung điều khiển động cơ . Nếu 1 so sánh >= xảy ra chân điều khiển sẽ đ ợc set xuống 0. u điểm của giải thuật này www.robotgiaoduc.com là dễ dàng cập nhật các số dùng để so sánh ( tức các góc quay mong muốn của động cơ ) . Nh ng khi chạy nhiều động cơ vì có nhiều so sánh diễn ra mà hàm ngắt dùng để tăng biến đếm lại có th i gian khá nhỏ nên sẽ làm cho ngõ ra điều khiển động cơ sai lệch , không chính xác . Điều này khiến các động cơ sẽ bị rung lắc tại vị trí mong muốn. Dùng module PWM của vi điều khiển : đây là ph ơng án cho ra xung ổn định nhất đồng th i dễ dàng cho việc cập nhật các giá trị điều khiển . Nh ng bắt buộc ta phải sử dụng kênh PWM với độ phân giải tối thiểu là 10 bits để đạt độ mịn t ơng đối chấp nhận đ ợc khi thay đổi các góc quay của động cơ . Vì bản chất xung điều khiển là các xung có chu kỳ lớn mà duty cycle lại bé ( nhỏ hơn 10%) nên độ phân giải của kênh PWM phải lớn để mới thỏa mãn đ ợc 2 điều trên . Điều tốc RC Servo Nguyên lý để điều tốc động cơ được thể hiện trên hình vẽ sau Khi động cơ muốn quay đến 1 góc nào đó , khoảng góc từ góc muốn quay đến góc hiện tại sẽ đ ợc chia nhỏ thành n khoảng nhỏ.Động cơ quay từ khoảng 1 đến khoảng n . Giữa mỗi khoảng khi động cơ quay xong nó sẽ nghỉ 1 khoảng th i gian nào đó.Bằng việc thay đổi khoảng th i gian nghỉ đó ta thay đổi đ ợc vận tốc của động cơ. hình trên:vận tốc t ơng ứng của hình trên cùng là nhỏ nhất và của hình d ới cùng là lớn nhất , trong khoảng th i gian 18ms động cơ trên quay đ ợc 1 đoạn nhỏ , động cơ giữa quay đ ợc 2 đoạn nhỏ và động cơ d ới quay đ ợc 5 đoạn nhỏ. Giải thuật: www.robotgiaoduc.com Trong giải thuật này sử dụng 1 ngắt th i gian 0.1s. Khi ngắt xảy ra ta tăng biến đếm i và và j.Biến i dùng để cập nhật khi nào thì kích cho động cơ chạy , biến j dùng để tính đ ợc kích động cơ chạy bao nhiêu lần dựa vào góc bắt đầu và kết thúc.Biến i sẽ cập nhật khi nào kích bằng cách tính số d khi lấy i chia cho vận tốc. Ví dụ nh tr ng hợp d ới cùng vận tốc=3 , tr ng hợp giữa vận tốc=6 , tr ng hợp trên cùng vận tốc=9.Một l u ý quan trọng là thực ra vận tốc nói đến đây chỉ là biến dùng để cập nhật vận tốc thực sự (dùng để tính toán).Vận tốc thực sự của động cơ sẽ tỉ lệ nghịch với biến vận tốc đ ợc nói đến trên. www.robotgiaoduc.com Trong giải thuật này bắt buộc mạch sử dụng để kích động cơ chạy phải là mạch dung PWM.B i vì trong th i gian nhảy vào ngắt lúc đó sẽ kích động cơ chạy.Th i gian ngắt t ơng đối nhỏ nên việc chạy bằng delay và giải thuật so sánh không thực hiện đ ợc. Đặc biệt nếu sử dụng 18 động cơ thì th i gian tiêu tốn trong ngắt tối thiểu là 18*20ms.Th i gian này lớn hơn rất nhiều lần th i gian ngắt 1ms.Dùng PWM thì th i gian này ta không quan tâm mà chỉ quan tâm đến th i gian lên của xung điều khiển của động cơ vì PWM chạy độc lập với vi điều khiển . Tất nhiên th i gian tối thiểu giữa 2 lần cập nhật phải >=20ms.Điều đó đ ợc đảm bảo bằng cách chọn các biến vận tốc và khoảng th i gian ngắt thích hợp.Tuy nhiên nếu điều kiện này không đảm bảo thì sẽ có những lần kích chạy động cơ bị bỏ lỡ ( thực ra là mạch điều khiển có kích nh ng mà động cơ không đáp ứng kịp) và góc kích sẽ đ ợc cộng dồn lại khi nào điều kiện này (th i gian 2 lần kích liên tiếp >=20ms) đảm bảo.Đây chính là u điểm tốt v ợt trội mà mạch sử dụng PWM có đ ợc so với mạch sử dụng 2 ph ơng pháp so sánh và delay nêu ra trên. Mr Công Nghệ www.robotgiaoduc.com