Raspberry Pi Linear Actuator
Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi để điều khiển Linear Actuator. Cụ thể, chúng ta sẽ học:
- Cách hoạt động của linear actuator
- Cách lập trình Raspberry Pi để làm cho linear actuator kéo dài hoặc rút lại
- Cách lập trình Raspberry Pi để điều khiển tốc độ của linear actuator
Có hai loại linear actuator:
- Linear actuator không có phản hồi: Loại này thường kéo dài hoặc rút lại hoàn toàn và không thể được điều khiển chính xác để dừng ở một vị trí cụ thể.
- Linear actuator có phản hồi: Loại này có tín hiệu phản hồi cho phép điều khiển chính xác để kéo dài hoặc rút lại đến một vị trí cụ thể.
Hướng dẫn này dành cho linear actuator không có phản hồi. Nếu bạn muốn tìm hiểu về linear actuator có phản hồi, vui lòng tham khảo hướng dẫn Raspberry Pi - Actuator with Feedback.
Linh Kiện Cần Thiết
| 1 | × | Raspberry Pi 5 | ||
| 1 | × | Linear Actuator | ||
| 1 | × | L298N Motor Driver Module | ||
| 1 | × | Bộ Nguồn 12V | ||
| 1 | × | DC Power Jack | ||
| 1 | × | Dây Cầu Nối | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi | ||
| 1 | × | (Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit | ||
| 1 | × | (Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Linear Actuator

Sơ Đồ Chân Linear Actuator
Linear Actuator có hai dây, với dây dương thường là màu đỏ và dây âm thường là màu đen.

Cách Hoạt Động
Khi mua linear actuator, quan trọng là phải hiểu nó cần điện áp bao nhiêu để hoạt động. Ví dụ, hãy xem xét linear actuator 12V.
Khi bạn cấp nguồn cho linear actuator 12V bằng nguồn 12V:
- Kết nối 12V vào dây dương và GND vào dây âm: linear actuator kéo dài với tốc độ tối đa cho đến khi đạt giới hạn.
- Kết nối 12V vào dây âm và GND vào dây dương: linear actuator rút lại với tốc độ tối đa cho đến khi đạt giới hạn.
Khi ngắt nguồn cho actuator bằng cách kết nối dây âm với cả dây dương và dây âm, quá trình kéo dài hoặc rút lại sẽ ngừng.
※ Lưu ý:
Đối với DC motor, servo motor và stepper motor không có hộp giảm tốc, khi có tải, nếu ngắt nguồn, chúng không thể duy trì vị trí. Ngược lại, actuator có thể duy trì vị trí ngay cả khi không còn nguồn cấp trong khi đang mang tải.
Nếu điện áp nguồn cấp cho linear actuator nhỏ hơn 12V, linear actuator vẫn sẽ kéo dài/rút lại, nhưng không ở tốc độ tối đa. Điều này có nghĩa là chúng ta có thể thay đổi tốc độ của linear actuator bằng cách thay đổi điện áp. Tuy nhiên, phương pháp này không được sử dụng phổ biến do khó khăn trong việc điều khiển điện áp nguồn. Do đó, điện áp nguồn được giữ không đổi và tốc độ linear actuator được điều chỉnh bằng tín hiệu PWM. Chu kỳ nhiệm vụ PWM càng lớn, linear actuator kéo dài/rút lại càng nhanh.

Cách điều khiển linear actuator bằng Raspberry Pi
Điều khiển linear actuator bao gồm:
- Kéo dài linear actuator ở tốc độ tối đa.
- Rút lại linear actuator ở tốc độ tối đa.
- (Tùy chọn) Điều chỉnh tốc độ kéo dài/rút lại.
Raspberry Pi có thể tạo tín hiệu điều khiển linear actuator, tuy nhiên tín hiệu này có điện áp và dòng điện thấp. Do đó, cần có driver phần cứng giữa Raspberry Pi và linear actuator để khuếch đại tín hiệu điều khiển từ Raspberry Pi, cũng như nhận tín hiệu điều khiển khác từ Raspberry Pi để chuyển đổi cực của nguồn điện để điều khiển hướng.
※ Lưu ý:
- Hướng dẫn này có thể được sử dụng với bất kỳ linear actuator nào. Linear actuator 12V chỉ là một ví dụ.
- Khi điều khiển linear actuator 5V, mặc dù chân Raspberry Pi xuất ra 5V (giống với điện áp linear actuator), vẫn cần driver giữa Raspberry Pi và linear actuator vì chân Raspberry Pi không cung cấp đủ dòng điện cho linear actuator.
Có nhiều loại chip và module có sẵn như L293D và L298N có thể được sử dụng làm driver cho linear actuator. Trong hướng dẫn này, chúng ta sẽ sử dụng L298N driver.
Về L298N Driver
L298N Driver có thể được sử dụng để quản lý linear actuator, DC motor và stepper motor. Hướng dẫn này chỉ bạn cách sử dụng nó để điều khiển linear actuator.
Sơ Đồ Chân L298N Driver

L298N Driver có hai kênh, được gắn nhãn A và B. Điều này cho phép nó điều khiển hai linear actuator độc lập cùng một lúc. Giả sử linear actuator A được kết nối với kênh A và linear actuator B được kết nối với kênh B. L298N Driver có tổng cộng 13 chân.
Các chân chung cho cả hai kênh:
- Chân VCC: Cung cấp nguồn cho linear actuator, với phạm vi điện áp từ 5 đến 35V.
- Chân GND: Đây là chân ground chung, và phải được kết nối với 0V (GND).
- Chân 5V: Cấp nguồn cho module L298N, và có thể được cung cấp bởi 5V từ Raspberry Pi.
Các chân kênh A:
- Chân ENA: Những chân này được sử dụng để điều khiển tốc độ của linear actuator A. Bằng cách tháo jumper và kết nối chân này với đầu vào PWM, chúng ta có thể điều khiển tốc độ kéo dài/rút lại của linear actuator A.
- Chân IN1 & IN2: Những chân này được sử dụng để điều khiển hướng của linear actuator. Khi một trong số chúng là HIGH và cái kia là LOW, linear actuator sẽ kéo dài hoặc rút lại. Nếu cả hai đầu vào đều HIGH hoặc LOW, thì linear actuator sẽ dừng.
- Chân OUT1 & OUT2: Những chân này được kết nối với linear actuator A.
Các chân kênh B:
- Chân ENB: Có thể tháo jumper và kết nối chân với đầu vào PWM để điều khiển tốc độ của linear actuator B.
- Chân IN3 & IN4: Bằng cách đặt một trong những chân này là HIGH và cái kia là LOW, linear actuator sẽ di chuyển theo một trong hai hướng. Nếu cả hai được đặt cùng trạng thái (HIGH hoặc LOW) thì actuator sẽ dừng.
- Chân OUT3 & OUT4: Những chân này được kết nối với linear actuator.
Như đã nói trước đó, L298N driver yêu cầu hai nguồn điện:
- Một cho linear actuator (chân VCC và GND): từ 5 đến 35V.
- Một cho hoạt động nội bộ của module L298N (chân 5V và GND): từ 5 đến 7V.
Tháo tất cả các jumper khỏi L298N driver để đơn giản hóa.
Chúng ta có thể quản lý hai linear actuator độc lập đồng thời bằng cách sử dụng Raspberry Pi và L298N Driver. Để điều khiển mỗi linear actuator, chúng ta chỉ cần ba chân từ Raspberry Pi.
※ Lưu ý:
Phần còn lại của hướng dẫn này sẽ tập trung vào việc điều khiển linear actuator thông qua kênh A. Vận hành linear actuator khác cũng tương tự.
Cách Điều Khiển Linear Actuator
Chúng ta sẽ nghiên cứu kỹ thuật sử dụng L298N driver để quản lý Linear Actuator.
Sơ Đồ Kết Nối
Tháo cả ba jumper khỏi module L298N trước khi kết nối.

This image is created using Fritzing. Click to enlarge image
Cách Làm Linear Actuator Kéo Dài/Rút Lại
Hướng di chuyển của Linear Actuator có thể được điều chỉnh bằng cách cung cấp logic HIGH/LOW cho các chân IN1 và IN2. Bảng dưới đây cho thấy cách điều khiển hướng trong cả hai kênh.
| Chân IN1 | Chân IN2 | Hướng |
|---|---|---|
| LOW | LOW | Linear Actuator A dừng |
| HIGH | HIGH | Linear Actuator A dừng |
| HIGH | LOW | Linear Actuator A kéo dài |
| LOW | HIGH | Linear Actuator A rút lại |
- Tăng độ dài của Linear Actuator A.
- Đảo ngược Linear Actuator A
※ Lưu ý:
Hướng của linear actuator có thể được đảo ngược bằng cách kết nối các chân OUT1 và OUT2 theo thứ tự khác. Để làm điều này, hoặc là các chân OUT1 và OUT2 phải được hoán đổi hoặc các tín hiệu điều khiển trên các chân IN1 và IN2 phải được thay đổi trong code.
Cách Dừng Linear Actuator Khỏi Kéo Dài hoặc Rút Lại
Linear actuator sẽ ngừng kéo dài/rút lại khi nó đạt giới hạn. Cũng có thể lập trình để dừng việc kéo dài/rút lại trước khi nó đạt giới hạn.
Có hai phương pháp để dừng linear actuator:
- Điều chỉnh tốc độ về 0
- Ngắt kết nối nguồn điện
- Đặt các chân IN1 và IN2 cùng giá trị, hoặc LOW hoặc HIGH.
- Hoặc
Cách Điều Khiển Tốc Độ Linear Actuator qua L298N Driver
Việc điều chỉnh tốc độ của linear actuator rất dễ dàng. Thay vì đặt chân ENA thành HIGH, chúng ta có thể tạo tín hiệu PWM cho chân ENA. Điều này có thể được thực hiện bằng cách:
- Kết nối một chân Raspberry Pi với ENA của L298N
- Tạo tín hiệu PWM cho chân ENA bằng cách sử dụng hàm pwm.ChangeDutyCycle(). L298N Driver khuếch đại tín hiệu PWM cho linear actuator.
Tốc độ là giá trị từ 0 đến 255. Khi tốc độ là 0, linear actuator sẽ ngừng di chuyển. Ở tốc độ 255, linear actuator sẽ kéo dài/rút lại ở tốc độ tối đa.
Code Ví Dụ Raspberry Pi
Code dưới đây:
- Điều khiển linear actuator kéo dài tối đa với tốc độ tối đa
- Điều khiển linear actuator rút lại tối thiểu với tốc độ tối đa
Các Bước Nhanh
Tháo cả ba jumper khỏi module L298N. Và sau đó:
- Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích Raspberry Pi khác trên Pi của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
- Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, xem Raspberry Pi - Cài Đặt Phần Mềm
- Kết nối PC của bạn với Raspberry Pi qua SSH sử dụng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
- Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, cài đặt nó bằng lệnh sau:
- Tạo file script Python actuator.py và thêm code sau:
- Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.
Bạn sẽ quan sát thấy:
- Linear actuator kéo dài cho đến khi đạt giới hạn, sau đó dừng.
- Linear actuator duy trì ở vị trí đó trong một khoảng thời gian nhất định.
- Linear actuator rút lại cho đến khi đạt giới hạn, sau đó dừng.
- Linear actuator duy trì ở vị trí đó trong một khoảng thời gian nhất định.
- Chu kỳ này lặp lại.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.