구독자 여러뷴~
디바이스마트 엔지니어 흥프로 입니다~~!!~!
오늘의 포스팅은 !!!
라즈베리파이 실습 예제 2탄
서보모터 사용하기 입니다.!!
저는 Raspberry Pi 3 B+에 Raspbian 이고 python을 사용합니다. 참고하세요!
서보 모터를 사용하려면!!!!
PWM(펄스 폭 변조)을 알아야 합니다.~
PWM(Pulse Width Modulation)
라즈베리파이 실습 예제 2탄
서보모터 사용하기 입니다.!!
저는 Raspberry Pi 3 B+에 Raspbian 이고 python을 사용합니다. 참고하세요!
서보 모터를 사용하려면!!!!
PWM(펄스 폭 변조)을 알아야 합니다.~
PWM(Pulse Width Modulation)
펄스 폭 변조(Pulse Width Modulation)는 펄스의 폭을 조절하는 제어 방법으로,
주로 LED의 밝기를 조절하거나 모터의 출력을 조절할 때 사용됩니다.
PWM방식은 일정한 주기(cycle)동안 On/Off 를 반복하며
ON이 되어있는 시간(Duty Cycle)을 조절하여
원하는 출력을 조절하는 방법입니다.
이를 통해 디지털 값을 아날로그 값처럼 사용 할 수 있습니다.
예를 들어 5V 출력 전압에서 Duty Cycle을 50%로 한다면,
LED나 모터는 2.5V의 출력으로 동작 합니다.
그리고 Duty Cycle을 25%로 한다면 1.75V의 출력으로 동작합니다.
실습 예제 입니다.!!!
구성은 간단하게 SG90 서보모터를 사용합니다.
아래 배선도를 확인해주세요.~
SG90 서보 모터 연결
서보모터 - 라즈베리파이
VCC - 5V
GND - GND
SIG - GPIO 18PIN
파이썬 스크랩트를 작성해 봅시다.
sudo nano Servo.py
import RPi.GPIO as GPIO
import time
pin =18
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
p= GPIO.PWM(pin, 50)
#PMW:펄스 폭 변조
p.start(0)
cnt = 0
try:
while True:
p.ChangeDutyCycle(12.5) #최댓값
time.sleep(1)
p.ChangeDutyCycle(10.0)
time.sleep(1)
p.ChangeDutyCycle(7.5) #0
time.sleep(1)
p.ChangeDutyCycle(5.0)
time.sleep(1)
p.ChangeDutyCycle(2.5) #최솟값
time.sleep(1)
except KeybordInterrupt:
p.stop()
GPIO.cleanup()
p.ChangeDutyCycle(12.5) 이게 듀티사이클입니다. 얼마의 듀티비로 출력을 할껀지 설정 하는겁니다. 저장하시고 $ python3 Servo.py 를 해보세요.!! 어떻게 움직이는지 확인하시고 코드가 어떻게 동작하시는지 확인하시면 좀 더 응용해서 사용하실수 있습니다. 오늘은 여기까지~ 다음 포스팅도 많은 기대 부탁 드려요~~ 라즈베리파이와 같이 쓰기 좋은 키트 소개 해드릴께요.! 기초적인 학습은 가능합니다.~ ▼▼▼라즈베리파이3 B+ 기본키트▼▼▼ http://www.devicemart.co.kr/goods/view?no=1385485 ▼▼▼라즈베리파이 베이직 키트▼▼▼ http://www.devicemart.co.kr/goods/view?no=1264628 |
감사합니다!!~ 안뇽!!!
2 댓글
궁금한 것이 있어서 댓글을 남깁니다. 저는 수상드론을 만드려고 하는데, 수상드론 모터에 전원을 따로 공급해야 한다고 합니다. 이 경우에도 위의 방식을 적용해서 pwm을 사용할 수 있나요?
답글삭제답글이 늦어서 죄송합니다! 전원 공급과 PWM 는 전원과 신호 라는 차이가 있습니다.
삭제모터에 전원을 따로 공급한다는 건 외부 전원을 사용하는것인데 대부분 모터 드라이버에서 전원을 공급받고 신호도 받아 모터를 제어합니다. 신호 레벨이 다르지 않는 이상 문제 없습니다. 참고 바랍니다.