• Product
  • Suppliers
  • Manufacturers
  • Solutions
  • Free tools
  • Knowledges
  • Experts
  • Communities
Search


Điều khiển động cơ servo: Hướng dẫn toàn diện

Encyclopedia
Trường dữ liệu: Bách khoa toàn thư
0
China

Điều khiển động cơ servo: Hướng dẫn toàn diện

 

Những nội dung chính:

 

Định nghĩa về điều khiển động cơ servo: Điều khiển động cơ servo cho phép thao tác chính xác vị trí, tốc độ và gia tốc của động cơ thông qua các tín hiệu điện tử.

 

Cơ chế phản hồi: Hệ thống phản hồi, thường là potentiometer hoặc encoder, đảm bảo rằng đầu ra của động cơ khớp chính xác với đầu vào điều khiển.

 

Tín hiệu PWM: Điều chế rộng xung (PWM) rất quan trọng để đặt vị trí của servo bằng cách thay đổi thời gian của các xung điện.

 

Arduino và động cơ servo: Sử dụng bảng Arduino là một cách phổ biến và hiệu quả để lập trình và điều khiển động cơ servo với thiết lập phần cứng tối thiểu.

 

Ứng dụng của động cơ servo: Động cơ servo là cần thiết cho các dự án yêu cầu kiểm soát vị trí chính xác, như robot và hệ thống tự động hóa.

 

Động cơ servo là động cơ được thiết kế để có độ chính xác cao trong việc quay. Nó khác biệt so với động cơ DC thông thường bởi khả năng giữ một vị trí cụ thể thay vì quay liên tục. Đặc điểm này làm cho động cơ servo lý tưởng cho robot, tự động hóa và các dự án sở thích.

 

Bài viết này giải thích cách hoạt động của điều khiển động cơ servo, các loại động cơ servo khác nhau, và các phương pháp và thiết bị điều khiển. Nó cũng cung cấp các ví dụ về ứng dụng và dự án sử dụng động cơ servo.

 

Động cơ servo là gì?

 

Động cơ servo được định nghĩa là bộ chấp hành cho phép kiểm soát chính xác vị trí (góc), tốc độ và gia tốc. Một động cơ servo điển hình bao gồm ba thành phần chính: động cơ DC, mạch điều khiển và thiết bị phản hồi.

 

Động cơ DC cung cấp năng lượng cho servo và kết nối với bánh răng giảm tốc và tăng mô-men xoắn trên trục đầu ra.

hình ảnh2.gif

Trục đầu ra là phần của servo quay và di chuyển tải.

 

Mạch điều khiển chịu trách nhiệm nhận và xử lý các tín hiệu đầu vào từ bộ điều khiển ngoại vi. Các tín hiệu này chỉ cho servo vị trí, tốc độ hoặc hướng di chuyển. Mạch điều khiển cũng gửi năng lượng đến động cơ DC để vận hành nó.

 

Thiết bị phản hồi thường là potentiometer hoặc encoder đo vị trí hiện tại của trục đầu ra.

hình ảnh3.png

Thiết bị phản hồi truyền dữ liệu vị trí trở lại mạch điều khiển, sau đó điều chỉnh nguồn điện của động cơ DC để căn chỉnh vị trí thực tế với vị trí mong muốn từ tín hiệu đầu vào.

 

Vòng lặp phản hồi giữa mạch điều khiển và thiết bị phản hồi đảm bảo rằng servo có thể di chuyển chính xác đến và duy trì bất kỳ vị trí nào trong phạm vi chuyển động của nó.

 

Làm thế nào để điều khiển động cơ servo?

 

Động cơ servo được điều khiển bằng cách gửi tín hiệu PWM (điều chế rộng xung) đến đường tín hiệu của servo. PWM là kỹ thuật chuyển đổi tín hiệu nhanh chóng để tạo ra các xung có độ rộng khác nhau. Độ rộng của các xung quyết định vị trí của trục đầu ra.

 

Ví dụ, khi bạn gửi tín hiệu PWM với độ rộng xung là 1,5 miligiây (ms), servo sẽ di chuyển đến vị trí trung tâm (90 độ).

hình ảnh4.png

Khi bạn gửi tín hiệu PWM với độ rộng xung là 1 ms, servo sẽ di chuyển đến vị trí tối thiểu (0 độ). Khi bạn gửi tín hiệu PWM với độ rộng xung là 2 ms, servo sẽ di chuyển đến vị trí tối đa (180 độ).

 

Tín hiệu PWM có tần số 50 Hz, nghĩa là nó lặp lại mỗi 20 ms. Độ rộng xung có thể thay đổi từ 1 ms đến 2 ms trong khoảng thời gian này.

 

Có nhiều cách để tạo và gửi tín hiệu PWM đến động cơ servo. Một số phương pháp phổ biến nhất là:

 

Sử dụng bảng Arduino hoặc bộ điều khiển vi mô khác

 

Sử dụng potentiometer hoặc cảm biến tương tự khác

Sử dụng cần gạt hoặc thiết bị nhập số khác

 

Sử dụng bộ điều khiển servo chuyên dụng hoặc trình điều khiển

 

Trong các phần tiếp theo, chúng ta sẽ khám phá chi tiết từng phương pháp này và xem một số ví dụ về cách chúng hoạt động.

 

Điều khiển động cơ servo bằng Arduino

 

Arduino là một trong những nền tảng phổ biến nhất để điều khiển động cơ servo. Các bảng Arduino có đầu ra PWM tích hợp có thể được sử dụng để gửi tín hiệu đến động cơ servo. Arduino cũng có thư viện Servo giúp dễ dàng viết mã cho việc điều khiển servo.

 

Để điều khiển động cơ servo bằng Arduino, bạn sẽ cần:

 

Một bảng Arduino (như Arduino UNO)

 

Một động cơ servo tiêu chuẩn (như SG90)

 

Dây nhảy

 

Bảng mạch (tùy chọn)

 

Dây đỏ từ động cơ servo kết nối với 5V trên bảng Arduino. Dây đen từ động cơ servo kết nối với GND trên bảng Arduino. Dây trắng từ động cơ servo kết nối với chân 9 trên bảng Arduino.

 

Để lập trình bảng Arduino, bạn sẽ cần sử dụng Arduino IDE (trực tuyến hoặc ngoại tuyến). Bạn có thể sử dụng một trong các ví dụ từ thư viện Servo hoặc viết mã của riêng bạn.

 

Mã sau đây cho thấy cách quét động cơ servo qua lại 180 độ bằng vòng lặp for:

 

 

#include <Servo.h> // Bao gồm thư viện Servo

 

Servo myservo; // Tạo đối tượng Servo

 

int pos = 0; // Biến cho vị trí

 

void setup() {

  myservo.attach(9); // Gắn đối tượng Servo vào chân 9

}

 

void loop() {

  for (pos = 0; pos <= 180; pos += 1) { // Vòng lặp từ 0 đến 180 độ

    myservo.write(pos); // Ghi vị trí vào đối tượng Servo

    delay(15); // Đợi 15 ms

  }

 

  for (pos = 180; pos >= 0; pos -= 1) { // Vòng lặp từ 180 đến 0 độ

    myservo.write(pos); // Ghi vị trí vào đối tượng Servo

    delay(15); // Đợi 15 ms

  }

}

 

 

Mã này sử dụng hai vòng lặp để tăng và giảm biến vị trí từ 0 đến 180 độ và ngược lại. Sau đó, nó ghi giá trị này vào đối tượng Servo bằng cách sử dụng myservo.write(pos). Nó cũng thêm một khoảng thời gian chờ 15 ms giữa mỗi bước để làm chậm chuyển động.

 

Tải mã này lên bảng Arduino của bạn bằng cách sử dụng nút Upload của IDE, và quan sát động cơ servo của bạn quét qua lại mượt mà.

 

Điều khiển động cơ servo bằng potentiometer

 

Potentiometer là cảm biến tương tự có thể thay đổi điện trở tùy thuộc vào mức độ xoay núm của nó. Bạn có thể sử dụng potentiometer làm thiết bị nhập để điều khiển động cơ servo.

 

Để điều khiển động cơ servo bằng potentiometer, bạn sẽ cần:

 

Một bảng Arduino (như Arduino UNO)

 

Một động cơ servo tiêu chuẩn (như SG90)

 

Một potentiometer (10k Ohms)

 

Dây nhảy

 

Bảng mạch

 

Sơ đồ đấu dây để kết nối potentiometer và động cơ servo với bảng Arduino được hiển thị dưới đây:

 

Dây đỏ từ potentiometer được kết nối với 5V trên bảng Arduino. Dây đen từ potentiometer được kết nối với GND trên bảng Arduino. Dây xanh lá cây từ potentiometer được kết nối với chân A0 trên bảng Arduino.

 

Dây đỏ từ servo được kết nối với 5V trên một hàng khác trên breadboard. Dây đen từ servo được kết nối với GND trên một hàng khác trên breadboard. Dây trắng từ servo được kết nối với chân D9 trên một hàng khác trên breadboard.

 

Để lập trình cho bảng Arduino của bạn, bạn sẽ cần sử dụng cùng mã như ví dụ trước nhưng thay đổi một vài dòng:

 

 

#include <Servo.h> // Bao gồm thư viện Servo

 

Servo myservo; // Tạo đối tượng Servo

 

int potpin = A0; // Chân kết nối với potentiometer

int val = 0; // Biến để đọc giá trị từ potentiometer

 

void setup() {

myservo.attach(9); // Kết nối đối tượng Servo với chân D9

}

 

void loop() {

val = analogRead(potpin); // Đọc giá trị từ potentiometer (0 -1023)

val = map(val,0,1023,0,180); // Ánh xạ dải giá trị (0 -180)

myservo.write(val); // Ghi giá trị đã ánh xạ vào đối tượng Servo

delay(15); // Chờ 15 ms

}

 

 

Mã này sử dụng hàm analogRead(potpin) để đọc giá trị từ potentiometer được kết nối với chân A0. Sau đó, nó sử dụng hàm map(val,0,1023,0,180) để ánh xạ dải giá trị từ 0 -1023 độ. Nó sau đó ghi giá trị đã ánh xạ vào đối tượng Servo bằng hàm myservo.write(val). Nó cũng thêm delay, giống như ví dụ trước.

 

Bạn có thể tải mã này lên bảng Arduino của mình bằng cách sử dụng nút Upload trong IDE. Bạn nên thấy motor servo di chuyển theo vị trí của núm potentiometer.

 

Điều khiển Motor Servo bằng Joystick

 

Joystick là thiết bị đầu vào số có thể phát hiện hướng và độ lớn di chuyển theo hai trục. Bạn có thể sử dụng joystick để điều khiển motor servo bằng cách ánh xạ trục x của joystick thành góc của servo.

 

Để điều khiển motor servo bằng joystick, bạn sẽ cần những thứ sau:

 

Một bảng Arduino (như Arduino UNO)

 

Một motor servo tiêu chuẩn (như SG90)

 

Một mô-đun joystick (như KY-023)

 

Dây nhảy

 

Một breadboard

 

Sơ đồ đấu dây để kết nối mô-đun joystick và motor servo với bảng Arduino được hiển thị dưới đây:

 

!https://www.makerguides.com/wp-content/uploads/2019/01/Servo-motor-control-with-Arduino-and-joystick-wiring-diagram.png

 

Dây đỏ từ mô-đun joystick được kết nối với 5V trên bảng Arduino. Dây đen từ mô-đun joystick được kết nối với GND trên bảng Arduino. Dây xanh lá cây từ mô-đun joystick được kết nối với chân A0 trên bảng Arduino.

 

Dây đỏ từ servo được kết nối với 5V trên một hàng khác trên breadboard. Dây đen từ servo được kết nối với GND trên một hàng khác trên breadboard. Dây trắng từ servo được kết nối với chân D9 trên một hàng khác trên breadboard.

 

Để lập trình cho bảng Arduino của bạn, bạn sẽ cần sử dụng cùng mã như ví dụ trước nhưng thay đổi một vài dòng:

 

 

#include <Servo.h> // Bao gồm thư viện Servo

 

Servo myservo; // Tạo đối tượng Servo

 

int joyX = A0; // Chân kết nối với trục x của joystick

int val = 0; // Biến để đọc giá trị từ joystick

 

void setup() {

  myservo.attach(9); // Gắn đối tượng Servo vào chân 9

}

 

void loop() {

  val = analogRead(joyX); // Đọc giá trị từ trục x của joystick (0 - 1023)

  val = map(val, 0, 1023, 0, 180); // Ánh xạ phạm vi giá trị (0 - 180)

  myservo.write(val); // Ghi giá trị đã ánh xạ vào đối tượng Servo

  delay(15); // Chờ 15 ms

}

 

 

Mã này sử dụng hàm analogRead(joyX) để đọc giá trị từ trục x của joystick được kết nối với chân A0. Sau đó, nó sử dụng hàm map(val, 0, 1023, 0, 180) để ánh xạ phạm vi giá trị từ 0 – 1023 thành 0 – 180 độ. Nó sau đó ghi giá trị này vào đối tượng Servo bằng cách sử dụng hàm myservo.write(val). Nó cũng thêm một khoảng thời gian chờ 15 ms giữa mỗi bước.

 

Bạn có thể tải mã này lên bo mạch Arduino của bạn bằng cách sử dụng nút Upload trong IDE. Bạn nên thấy động cơ servo di chuyển theo vị trí của joystick.

 

Điều khiển động cơ servo bằng bộ điều khiển servo

 

Bộ điều khiển servo là thiết bị chuyên dụng có thể tạo và gửi tín hiệu PWM đến nhiều động cơ servo. Bộ điều khiển servo hữu ích cho các dự án yêu cầu kiểm soát chính xác và phức tạp nhiều servo, như cánh tay robot hoặc hexapod.

 

Để điều khiển động cơ servo bằng bộ điều khiển servo, bạn sẽ cần những thứ sau:

 

Bộ điều khiển servo (như Pololu Maestro)

 

Động cơ servo tiêu chuẩn (như SG90)

 

Dây USB

 

Nguồn điện

 

Dây đỏ từ servo kết nối với VSRV trên bộ điều khiển servo. Dây đen từ servo kết nối GND với bộ điều khiển servo. Dây trắng từ servo kết nối với một trong các chân tín hiệu trên bộ điều khiển servo.

 

Để lập trình bộ điều khiển servo của bạn, bạn sẽ cần sử dụng phần mềm Maestro Control Center.

 

Các bước sau đây cho thấy cách điều khiển động cơ servo bằng Maestro Control Center:

 

Kết nối bộ điều khiển servo của bạn với máy tính bằng dây USB.

 

Khởi chạy Maestro Control Center và chọn thiết bị của bạn từ danh sách.

 

Chuyển đến tab Status và di chuyển thanh trượt tương ứng với chân tín hiệu kết nối với servo của bạn.

 

Bạn sẽ thấy động cơ servo di chuyển theo góc được đặt bởi thanh trượt.

 

Ứng dụng và dự án động cơ servo

 

Động cơ servo là thiết bị đa năng và mạnh mẽ có thể được sử dụng cho nhiều ứng dụng và dự án. Dưới đây là một số ví dụ về những gì bạn có thể làm với servo:

 

Xây dựng giá đỡ camera pan/tilt có thể xoay và nghiêng camera bằng hai servo.

 

Xây dựng cánh tay robot có thể di chuyển và thao tác vật thể bằng nhiều servo.

 

Xây dựng robot hexapod có thể đi bộ và quay bằng nhiều servo.

 

Xây dựng xe robot có thể lái và chạy bằng hai servo.

 

Xây dựng rối animatronic có thể di chuyển mắt, miệng và đầu bằng servo.

 

Kết luận

 

Trong bài viết này, bạn đã học cách điều khiển động cơ servo hoạt động, các loại động cơ servo khác nhau, và cách điều khiển chúng bằng các phương pháp và thiết bị khác nhau. Bạn cũng đã thấy một số ví dụ về ứng dụng và dự án động cơ servo.

 

Động cơ servo rất tốt để thêm chuyển động và tương tác vào dự án của bạn. Chúng dễ sử dụng và điều khiển với Arduino hoặc các microcontroller khác. Chúng cũng rộng rãi và phải chăng.


Đóng góp và khuyến khích tác giả!
Đề xuất
Yêu cầu
Tải xuống
Lấy Ứng Dụng IEE Business
Sử dụng ứng dụng IEE-Business để tìm thiết bị lấy giải pháp kết nối với chuyên gia và tham gia hợp tác ngành nghề mọi lúc mọi nơi hỗ trợ toàn diện phát triển dự án điện và kinh doanh của bạn