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ó hai loại linear actuator:

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

linear bộ chấp hành extend retract

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.

linear bộ chấp hành sơ đồ chân

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.

how to control linear bộ chấp hành

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 trình điều khiển sơ đồ chân

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 VCCGND): 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.

Raspberry Pi linear bộ chấp hành l298n trình điều khiển sơ đồ đấu dây

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.
GPIO.output(IN1_PIN, GPIO.HIGH) GPIO.output(IN2_PIN, GPIO.LOW)
  • Đảo ngược Linear Actuator A
GPIO.output(IN1_PIN, GPIO.LOW) GPIO.output(IN2_PIN, GPIO.HIGH)

※ 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
pwm.ChangeDutyCycle(0);
  • Đặt các chân IN1 và IN2 cùng giá trị, hoặc LOW hoặc HIGH.
GPIO.output(IN1_PIN, GPIO.LOW) GPIO.output(IN2_PIN, GPIO.LOW)
  • Hoặc
GPIO.output(IN1_PIN, GPIO.HIGH) GPIO.output(IN2_PIN, GPIO.HIGH)

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.
pwm.ChangeDutyCycle(speed) # speed là giá trị từ 0 đến 255

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:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Tạo file script Python actuator.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-actuator import RPi.GPIO as GPIO import time # Constants ENA_PIN = 25 # GPIO pin connected to the EN1 pin L298N IN1_PIN = 8 # GPIO pin connected to the IN1 pin L298N IN2_PIN = 7 # GPIO pin connected to the IN2 pin L298N # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(ENA_PIN, GPIO.OUT) GPIO.setup(IN1_PIN, GPIO.OUT) GPIO.setup(IN2_PIN, GPIO.OUT) # Set ENA_PIN to HIGH to enable the actuator GPIO.output(ENA_PIN, GPIO.HIGH) # Main loop try: while True: # Extend the actuator GPIO.output(IN1_PIN, GPIO.HIGH) GPIO.output(IN2_PIN, GPIO.LOW) time.sleep(20) # Actuator will stop extending automatically when reaching the limit # Retract the actuator GPIO.output(IN1_PIN, GPIO.LOW) GPIO.output(IN2_PIN, GPIO.HIGH) time.sleep(20) # Actuator will stop retracting automatically when reaching the limit except KeyboardInterrupt: pass finally: # Cleanup GPIO on program exit GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 actuator.py

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.

Bài hướng dẫn liên quan