- 소개
라즈베리 파이(Raspberry Pi)는 취미 및 산업 프로젝트에서 널리 사용되는 인기 있는 싱글보드 컴퓨터입니다. 본질적으로 신용카드 크기의 소형 컴퓨터입니다. 스테퍼 모터 제어를 포함한 다양한 프로젝트에 널리 사용되며, 이는 모션 제어 응용 분야에서 일반적인 작업입니다. 이 글에서는 Python 프로그래밍 언어와 RPi.GPIO 라이브러리를 사용하여 스테퍼 모터를 제어하는 방법과 해당 배선 방법을 배울 수 있습니다.
- 필요한 재료
- 라즈베리 파이 (Raspberry Pi 3B+ 이상 권장)
- 스테퍼 모터 (예: NEMA 17)
- 스테퍼 모터 드라이버 모듈 (예: DRV8825 또는 A4988)
- 점퍼 와이어 (듀퐁 커넥터)
- 12V DC 전원 어댑터
- 브레드보드 (선택 사항)
- 디커플링 커패시터 (예: 100 µF 전해 커패시터)
- 배선 방법
안전 주의사항: 전원을 인가하기 전에 항상 모터와 드라이버 배선을 먼저 연결하십시오. 라즈베리 파이 또는 드라이버 모듈의 손상을 방지하기 위해 모든 연결을 다시 한 번 확인하십시오.
- 스테퍼 모터의 4가닥 와이어를 모터 드라이버 모듈의 A1, A2, B1, B2 핀에 연결합니다.
- 12V 전원 공급장치의 양극을 드라이버 모듈의 VMOT 핀에, 음극을 GND 핀에 연결합니다. 디커플링 커패시터(예: 100 µF 전해 커패시터)를 VMOT와 GND 사이에 드라이버 모듈에 최대한 가깝게 배치하여 전압 스파이크를 억제합니다.
- 라즈베리 파이의 5V 전원 핀(물리적 Pin 2 또는 Pin 4)을 드라이버 모듈의 VCC 핀에 연결하고, GND 핀(예: 물리적 Pin 6)을 드라이버 모듈의 GND 핀에 연결합니다.
- 라즈베리 파이의 다음 BCM GPIO 핀을 드라이버 모듈의 해당 핀에 연결합니다:
| 라즈베리 파이 GPIO (BCM) | 물리적 핀 | 드라이버 모듈 핀 |
|---|---|---|
| GPIO 17 | Pin 11 | DIR |
| GPIO 18 | Pin 12 | STEP |
| GPIO 27 | Pin 13 | MS1 |
| GPIO 22 | Pin 15 | MS2 |
| GPIO 23 | Pin 16 | ENABLE |
팁: 대부분의 A4988/DRV8825 모듈에서 ENABLE 핀은 액티브 로우(active-low)입니다. LOW로 설정하면 드라이버 출력이 활성화됩니다.
- Python 코드 구현
먼저 RPi.GPIO 라이브러리를 설치합니다. 터미널에서 다음 명령을 입력합니다:
sudo apt-get update
sudo apt-get install python3-rpi.gpio
다음으로 stepper_motor.py라는 Python 파일을 생성하고 다음 코드를 입력합니다:
import time
import RPi.GPIO as GPIO
# 핀 정의 (BCM 번호 지정)
DIR = 17
STEP = 18
MS1 = 27
MS2 = 22
ENABLE = 23
# GPIO 모드 설정
GPIO.setmode(GPIO.BCM)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.setup(MS1, GPIO.OUT)
GPIO.setup(MS2, GPIO.OUT)
GPIO.setup(ENABLE, GPIO.OUT)
# 드라이버 활성화 및 방향 설정
GPIO.output(ENABLE, GPIO.LOW) # 드라이버 활성화 (액티브 로우)
GPIO.output(DIR, GPIO.HIGH) # 시계 방향
# 드라이버 모델에 따른 스테핑 모드 설정 (예: A4988)
GPIO.output(MS1, GPIO.HIGH) # 1/4 스텝
GPIO.output(MS2, GPIO.LOW)
# 모터 회전 제어
steps = 200
delay = 0.001 # 더 짧은 지연으로 더 빠른 속도
for _ in range(steps):
GPIO.output(STEP, GPIO.HIGH)
time.sleep(delay)
GPIO.output(STEP, GPIO.LOW)
time.sleep(delay)
# GPIO 정리
GPIO.cleanup()
마지막으로 파일을 저장하고 터미널에서 실행합니다:
python3 stepper_motor.py
- 요약
이 글에서는 라즈베리 파이를 사용하여 스테퍼 모터를 제어하는 방법을 소개했으며, 배선 방법과 RPi.GPIO 라이브러리를 사용한 Python 코드를 포함합니다. 이 단계를 따르면 쉽게 모터 제어를 구현할 수 있습니다. 프로젝트 요구 사항에 따라 코드의 매개변수(스텝 수, 지연 시간, 마이크로스테핑 설정 등)를 조정하십시오.