라즈파이 4로 서보 모터를 움직이는 pigpio

라즈파이 4 커널 5.1.0 (2021.5.7 판 32bit 추천 전부 들어간)을 사용하고 있습니다
라즈파이 소개 기사에서 자주 보이는 GPIO 라이브러리 RPi.GPIO에서 서보 모터를 PWM으로 제어하면 펄스 폭 등에 흔들림이 있기 때문에 서보 모터가 멈출 것인데, 지, 지, 그리고 움직여 버립니다.

GPIO에 액세스하는 몇 가지 라이브러리가있는 것처럼 보이지만 pigpio를 사용하기로 결정했습니다.
interface2021.6월호에서도 소개하고 있습니다. ㅡㅡㅡㅜㅜㅜㅜㅜㅜㅜㅜ cq 푸 b. 이. jp / wp - 콘텐트 t / u p ぉ ds / f2106_148. pdf

pigpio 설치



공식 페이지 다운로드 링크 h tp // // 아 by… 우 k / r 피 / 피 g 피오 / 도 w 응 아 d. HTML
여기에, 이하의 2개의 커멘드를 치고 있으면(자) 단말로부터 실행합니다.
sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio
이번에는 런타임에 이미 최신판이 있어! 라고 표시되었으므로, 32bit 추천 전부 입판은 인스톨 불필요했습니다.
사용하기 전에 데몬을 시작합니다.
sudo pigpiod pigpio가 아닌 d가 붙어 있습니다.
pigpiod -v로 버전을 확인할 수 있습니다.
설치했을 때는 1.79로 나왔습니다만, 버전 확인에서는 79라고 표시되었습니다.

동작 테스트



코드는 참고 HP
https://www.fabshop.jp/%E3%80%90-%E7%AC%AC38%E5%9B%9E-%E3%80%91gpio%E5%88%B6%E5%BE%A1%E3 %83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E3%81%BE%E3%81%A8%E3%82 %81/
에서 복사했습니다. windows상이라면 코드 부분을 텍스트 에디터에 붙여 붙여, PWM.py등 적당하게 이름을 붙입니다.
USB 메모리로 코드를 옮겨 라즈파이에 찔렀습니다. 그런 다음 파일 관리자를 사용하여 홈 디렉토리에 복사합니다.
py 파일을 두 번 클릭하면 라즈파이의 파이썬 개발 환경 인 Thonny가 시작됩니다.
실행 버튼을 누르면 서보 모터가 움직였습니다.
몇 가지 제어 함수가있는 것 같습니다.
import pigpio
from time import sleep
# 実行前にsudo pigpiodを忘れずに
pig = pigpio.pi()
pig.set_mode(12, pigpio.ALT0) #OUTPUTの他にALT0-5のモードがある

counter = 0
while (counter < 3):
    pig.hardware_PWM(12, 50, 120000) #サーボは50Hzで制御する
    sleep(1)
    pig.hardware_PWM(12, 50, 72500) #7.25%のdutycycle
    sleep(1)
    pig.hardware_PWM(12, 50, 25000)
    sleep(1)
    pig.hardware_PWM(12, 50, 72500)
    sleep(1)
    counter = counter + 1

pig.hardware_PWM(12, 50, 0)
pig.set_mode(12, pigpio.INPUT)
pig.stop()

라즈파이 4에서 ALT 모드 소개
htps : // 에이누 x. rg/R피_BCM2711_G피오 s#PCM_CLK
set_mode에서 OUTPUT이나 ALT1-5를 시도했지만 ALT0과 마찬가지로 서보가 움직였습니다. 18번 GPIO에서도 마찬가지였습니다.
interface의 기사에서는 18번으로 OUTPUT를 사용하고 있었습니다.

서보 모터 연결



아키즈키에서 구입한 SG-92R을 사용했습니다. 동작 전압 : 4.8V, 배선 : 차 = GND, 적색 = 전원 [+], 오렌지 = 제어 신호 [JR 타입]이므로,
전원 라인은 5V로서(3.3V에서도 움직입니다), 오렌지는 참고 HP의 코드로부터 12번의 GPIO핀과 접속했습니다.
PWM 사이클이 20ms이므로 50Hz로 제어합니다. 제어 펄스 0.5ms일 때 duty는 2.5%, 2.4ms일 때는 12%이므로 2.5-12% 사이에서 duty를 걸어 줍니다.

좋은 웹페이지 즐겨찾기