라즈베리 파이 액추에이터
이 튜토리얼은 라즈베리 파이를 사용하여 선형 액추에이터를 제어하는 방법을 안내합니다. 구체적으로, 우리는 다음을 배울 것입니다:
- 선형 액추에이터의 작동 방식
- 선형 액추에이터를 확장하거나 수축시키기 위해 Raspberry Pi를 프로그래밍하는 방법
- 선형 액추에이터의 속도를 제어하기 위해 Raspberry Pi를 프로그래밍하는 방법
선형 액추에이터에는 두 가지 유형이 있습니다:
- 피드백 없는 선형 액추에이터: 이 장치는 일반적으로 끝까지 확장하거나 수축하며 특정 위치에서 멈추도록 정확히 제어할 수 없습니다.
- 피드백 있는 선형 액추에이터: 이 장치는 피드백 신호가 있어 특정 위치까지 확장하거나 수축하도록 정확히 제어할 수 있습니다.
이 튜토리얼은 피드백 없는 리니어 액추에이터에 대한 것입니다. 피드백이 있는 리니어 액추에이터에 대해 배우고자 한다면, 이 Raspberry Pi - Actuator with Feedback 튜토리얼을 참조하세요.
Hardware Preparation
1 | × | Raspberry Pi 4 Model B | Amazon | |
1 | × | Linear Actuator | Amazon | |
1 | × | L298N Motor Driver Module | 쿠팡 | Amazon | |
1 | × | 12V Power Adapter | Amazon | |
1 | × | DC Power Jack | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (추천) Screw Terminal Block Shield for Raspberry Pi | 쿠팡 | Amazon | |
1 | × | (추천) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B | Amazon | |
1 | × | (추천) Plastic Case and Cooling Fan for Raspberry Pi 4B | Amazon | |
1 | × | (추천) HDMI Touch Screen Monitor for Raspberry Pi | Amazon |
선형 액추에이터에 대하여
리니어 액추에이터 핀아웃
선형 액추에이터에는 두 개의 전선이 있으며, 일반적으로 양극 전선은 빨간색이고 음극 전선은 보통 검은색입니다.
작동 방식
선형 액추에이터를 구매할 때, 작동에 필요한 전압을 이해하는 것이 중요합니다. 예를 들어, 12V 선형 액추에이터를 생각해 봅시다.
12V 전원으로 12V 직선 액추에이터에 전원을 공급할 때:
- 12V를 양극선에 연결하고 GND를 음극선에 연결하세요: 선형 액추에이터는 한계에 도달할 때까지 최대 속도로 확장됩니다.
- 12V를 음극선에 연결하고 GND를 양극선에 연결하세요: 선형 액추에이터는 한계에 도달할 때까지 최대 속도로 수축됩니다.
접지선을 양극선과 음극선 모두에 연결하여 액추에이터로의 전원이 차단되면, 확장 또는 수축 과정이 중단됩니다.
※ NOTE THAT:
DC 모터, 서보 모터, 스테퍼 모터는 기어링이 없을 때, 하중이 있을 경우 전원이 차단되면 위치를 유지할 수 없습니다. 반면 액추에이터는 하중을 운반하는 동안 전원이 공급되지 않아도 위치를 유지할 수 있습니다.
리니어 액추에이터의 전원 공급 전압이 12V보다 낮으면 리니어 액추에이터는 여전히 확장/축소되지만 최대 속도로는 작동하지 않습니다. 이는 전압을 변경하여 리니어 액추에이터의 속도를 조절할 수 있음을 의미합니다. 그러나 전원 공급 장치의 전압을 제어하기 어려워 이 방법은 일반적으로 사용되지 않습니다. 따라서 전원 공급 장치의 전압은 일정하게 유지되고, 리니어 액추에이터의 속도는 PWM 신호로 조절됩니다. PWM의 듀티 사이클이 클수록 리니어 액추에이터가 더 빠르게 확장/축소됩니다.
라즈베리 파이를 사용하여 리니어 액추에이터 제어 방법
선형 액추에이터 제어는 다음을 포함합니다:
- 리니어 액추에이터를 최대 속도로 확장합니다.
- 리니어 액추에이터를 최대 속도로 축소합니다.
- (선택 사항) 확장/축소 속도를 조절합니다.
라즈베리 파이는 선형 액추에이터를 제어하기 위한 신호를 생성할 수 있지만, 이 신호는 낮은 전압과 전류를 가지고 있습니다. 따라서 라즈베리 파이와 선형 액추에이터 사이에 하드웨어 드라이버가 필요하며, 이는 라즈베리 파이의 제어 신호를 증폭하고, 방향 제어를 위해 전원 공급의 극성을 전환하는 또 다른 제어 신호를 라즈베리 파이로부터 수신하기 위함입니다.
※ NOTE THAT:
- 이 튜토리얼은 모든 선형 액추에이터에 사용할 수 있습니다. 12V 선형 액추에이터는 단지 한 예일 뿐입니다.
- 5V 선형 액추에이터를 제어할 때, Raspberry Pi 핀이 5V를 출력한다고 해도 (선형 액추에이터 전압과 동일함), Raspberry Pi 핀이 선형 액추에이터에 충분한 전류를 제공하지 않기 때문에 Raspberry Pi와 선형 액추에이터 사이에 드라이버가 필요합니다.
L293D 및 L298N과 같이 선형 액추에이터 드라이버로 사용할 수 있는 다양한 유형의 칩과 모듈이 있습니다. 이 튜토리얼에서는 L298N 드라이버를 사용할 것입니다.
L298N 드라이버에 대하여
L298N 드라이버는 리니어 액추에이터, DC 모터, 스테퍼 모터를 관리하는 데 사용할 수 있습니다. 이 튜토리얼은 리니어 액추에이터를 제어하는 방법을 안내합니다.
L298N 드라이버 핀아웃
L298N 드라이버에는 A와 B로 표시된 두 개의 채널이 있습니다. 이를 통해 두 개의 선형 액추에이터를 동시에 독립적으로 제어할 수 있습니다. 선형 액추에이터 A가 채널 A에 연결되어 있고 선형 액추에이터 B가 채널 B에 연결되어 있다고 가정합니다. L298N 드라이버에는 총 13개의 핀이 있습니다.
두 채널의 공통 핀:
- VCC 핀: 5V에서 35V 범위의 전압으로 리니어 액추에이터에 전원을 공급합니다.
- GND 핀: 공통 접지 핀으로, 0V (GND)로 연결되어야 합니다.
- 5V 핀: L298N 모듈에 전원을 공급하며, Raspberry Pi에서 5V로 공급할 수 있습니다.
채널 A 핀:
- ENA 핀: 이 핀들은 리니어 액추에이터 A의 속도를 제어하는 데 사용됩니다. 점퍼를 제거하고 이 핀을 PWM 입력에 연결하면 리니어 액추에이터 A의 확장/수축 속도를 제어할 수 있습니다.
- IN1 및 IN2 핀: 이 핀들은 리니어 액추에이터의 방향을 제어하는 데 사용됩니다. 하나가 HIGH이고 다른 하나가 LOW일 때 리니어 액추에이터는 확장하거나 수축합니다. 두 입력이 모두 HIGH 또는 LOW이면 리니어 액추에이터가 멈춥니다.
- OUT1 및 OUT2 핀: 이 핀들은 리니어 액추에이터 A에 연결되어 있습니다.
채널 B 핀:
- ENB 핀: 점퍼를 제거하고 해당 핀을 PWM 입력에 연결하여 선형 액추에이터 B의 속도를 제어할 수 있습니다.
- IN3 및 IN4 핀: 이 핀 중 하나를 HIGH로 설정하고 다른 핀을 LOW로 설정하면 선형 액추에이터가 양방향으로 이동합니다. 두 핀 모두 동일한 상태(HIGH 또는 LOW)로 설정하면 액추에이터가 정지합니다.
- OUT3 및 OUT4 핀: 이 핀들은 선형 액추에이터에 연결되어 있습니다.
앞서 언급했듯이, L298N 드라이버는 두 개의 전원 공급원이 필요합니다.
- 선형 액추에이터용( VCC 및 GND 핀): 5V에서 35V까지.
- L298N 모듈의 내부 작동용(5V 및 GND 핀): 5V에서 7V까지.
단순화를 위해 L298N 드라이버에서 모든 점퍼를 제거하십시오.
Raspberry Pi와 L298N 드라이버를 사용하여 두 개의 선형 액추에이터를 동시에 독립적으로 제어할 수 있습니다. 각 선형 액추에이터를 명령하기 위해서는 Raspberry Pi의 세 개의 핀만 필요합니다.
※ NOTE THAT:
이 튜토리얼의 나머지 부분은 채널 A를 통해 선형 액추에이터를 제어하는 데 중점을 둘 것입니다. 다른 선형 액추에이터를 작동하는 것도 유사합니다.
선형 액추에이터 제어 방법
우리는 L298N 드라이버를 사용하여 선형 액추에이터를 관리하는 기술을 연구할 것입니다.
배선도
연결하기 전에 L298N 모듈에서 모든 점퍼 세 개를 제거하십시오.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
선형 액추에이터 확장/수축 방법
리니어 액추에이터의 이동 방향은 IN1 및 IN2 핀에 논리 HIGH/LOW를 제공하여 조절할 수 있습니다. 아래 표는 두 채널 모두에서 방향을 제어하는 방법을 보여줍니다.
IN1 pin | IN2 pin | Direction |
---|---|---|
LOW | LOW | Linear Actuator A stops |
HIGH | HIGH | Linear Actuator A stops |
HIGH | LOW | Linear Actuator A extends |
LOW | HIGH | Linear Actuator A retracts |
- 리니어 액추에이터 A의 길이를 늘리세요.
- 리니어 액추에이터 A 반전
※ NOTE THAT:
선형 액추에이터의 방향은 OUT1 및 OUT2 핀을 다른 순서로 연결하여 반대로 설정할 수 있습니다. 이를 위해서는 OUT1 및 OUT2 핀을 교체하거나 IN1 및 IN2 핀의 제어 신호를 코드에서 변경해야 합니다.
선형 액추에이터의 확장 또는 수축을 멈추는 방법
리니어 액추에이터는 한계에 도달하면 확장/축소가 멈춥니다. 한계에 도달하기 전에 확장/축소를 프로그래밍 방식으로 중지할 수도 있습니다.
선형 액추에이터를 멈추는 방법은 두 가지가 있습니다.
- 속도를 0으로 조절하기
- 전원 공급 장치 분리하기
- IN1 및 IN2 핀을 동일한 값, 즉 LOW 또는 HIGH로 설정합니다.
- 또는
L298N 드라이버를 통해 선형 액추에이터의 속도를 제어하는 방법
리니어 액추에이터의 속도를 조절하는 것은 쉽습니다. ENA 핀을 HIGH로 설정하는 대신, ENA 핀에 PWM 신호를 생성할 수 있습니다. 이것은 다음과 같이 할 수 있습니다:
- Raspberry Pi 핀을 L298N의 ENA에 연결하기
- pwm.ChangeDutyCycle() 함수를 사용하여 ENA 핀에 PWM 신호 생성하기. L298N 드라이버는 PWM 신호를 직선 액추에이터에 증폭합니다.
속도는 0에서 255까지의 값입니다. 속도가 0이면 리니어 액추에이터의 움직임이 멈춥니다. 속도가 255일 때 리니어 액추에이터는 최대 속도로 확장/수축합니다.
라즈베리 파이 예제 코드
아래 코드:
- 선형 액추에이터를 최대 속도로 최대한 작동시킵니다.
- 선형 액추에이터를 최대 속도로 최소한 작동시킵니다.
Detailed Instructions
L298N 모듈에서 세 개의 점퍼를 모두 제거하십시오. 그런 다음:
- Raspberry Pi에 Raspbian 또는 다른 호환 운영 체제를 설치했는지 확인하세요.
- PC와 같은 로컬 네트워크에 Raspberry Pi가 연결되어 있는지 확인하세요.
- 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하세요.
- Raspberry Pi를 처음 사용하는 경우, Raspberry Pi 설정 방법을 참조하세요.
- Linux 및 macOS에서는 내장된 SSH 클라이언트를 사용하고 Windows에서는 PuTTY를 사용하여 SSH로 PC를 Raspberry Pi에 연결하세요. SSH를 통해 PC를 Raspberry Pi에 연결하는 방법을 참조하세요.
- RPi.GPIO 라이브러리가 설치되어 있는지 확인하세요. 설치되어 있지 않으면 다음 명령어를 사용하여 설치하세요:
- Python 스크립트 파일 actuator.py을(를) 만들고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행하세요:
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다.
관찰해야 합니다:
- 리니어 액츄에이터가 한계에 도달할 때까지 연장되고, 그러고 나서 멈춤.
- 리니어 액츄에이터가 그 위치에 일정 시간 동안 머무름.
- 리니어 액츄에이터가 한계에 도달할 때까지 축소되고, 그러고 나서 멈춤.
- 리니어 액츄에이터가 그 위치에 일정 시간 동안 머무름.
- 이 사이클이 반복됨.
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.