반응형

 

 

라즈베리파이3에서 서보 모터를 제어하는 방법을 다룹니다.

 

Python 언어와 C 언어로 다루는 방법을 설명하며 이후 웹캠과 초음파 센서를 얹어 사용할 예정입니다. 

 

2019. 6. 3

 

 

 

(영상은 업로드 중입니다.)

 

 

 

 

Python

import RPi.GPIO as GPIO  
from time import sleep



GPIO.setmode(GPIO.BOARD) 

GPIO.setup(12, GPIO.OUT) 

p = GPIO.PWM(12, 50)   

p.start(0)            

p.ChangeDutyCycle(3) 
sleep(1)

p.ChangeDutyCycle(12)
sleep(1) 

p.ChangeDutyCycle(7.5)
sleep(1)



while(1):

  val = float(raw_input("input(3~7.5~12) = "))
  
  if val == -1: break

  p.ChangeDutyCycle(val)
  

p.stop()                

GPIO.cleanup() 

 

 

C

#include <stdio.h>
#include <wiringPi.h>
#include <softPwm.h>

#define PIN 12 



int main()
{

  if (wiringPiSetupPhys() == -1) 
     exit (1) ;
  
  pinMode(PIN, PWM_OUTPUT);

  pwmSetMode(PWM_MODE_MS); 

  pwmSetClock(384);
  pwmSetRange(1000);


  pwmWrite(PIN, 30 ); 
  sleep(1);

  pwmWrite(PIN, 120);
  sleep(1);

  pwmWrite(PIN, 75 ); 
  sleep(1);


  float val;

  while(-1){
  
    printf("(30~75~120)= ");
    scanf("%f", &val);
    
    if ( val == -1 ) break;
    
    pwmWrite(PIN, val );
    sleep(1);
  }
  
  return 0 ;
}

 

반응형

해보고 확인한 것을 문서화하여 기록합니다.


부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
문제가 생기면 포스트와 바뀐 환경이 있나 먼저 확인해보세요.

질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">
  1. thumbnail
    ^^
    2019.09.18 21:36

    라즈베리파이에서 서보 모터를 사용해 보는데 큰 도움이 되었습니다.
    감사합니다. :)

  2. thumbnail
    허허
    2019.11.11 16:37

    안녕하세요 작성자님이 올려주신데로 해서 작동이 잘 됩니다.
    여기서 응용으로 같이 led까지 키고끌수 있게 만들어보고싶어서
    와일문 안에 digitalWrite구문을 넣었더니 실행이 안되네요. 어떻게 하면 가능할까요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2019.11.12 09:08 신고

      digitalWrite만 사용하여 LED가 잘켜지는지 확인한 후에 소스코드를 합쳐보세요.

      while 문이 너무 빨리 반복되서 LED 켜지고 꺼지는게 안보일 수도 있습니다.

  3. thumbnail
    경두
    2019.11.13 19:29

    굉장히 유익한 정보인 것 같습니다. 감사합니다 ~

  4. thumbnail
    jeong
    2019.11.22 20:21

    모터를 돌리면서 일정한 시간마다 웹캠으로 사진을 찍을수 있을까요??

  5. thumbnail
    Favicon of https://luigibox.tistory.com BlogIcon mainspring

    C언어 myservo.detach 같은 명령어가
    python에도 있을까요? 2일째 찾는데 하나도안나오네요..
    떨림때문에그런데 해결할방법으로
    움직이고 (움직일시간주고) 모터를 다시 끄던데
    for문안에
    p.start()
    p.changeDutyCycle 로 움직이고
    p.stop()
    해봣는데
    p.stop한번 하고 바로 꺼지더라구요..

  6. thumbnail
    봐키
    2020.05.16 21:43

    안녕하십니까 질문 좀 드려도 될까요?
    1개의 라즈베리파이로 2개의 모터를 제어 할 수 있나요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2020.05.16 21:55 신고

      어떤 모터냐에따라 달라집니다. DC모터를 제대로 제어하려면 L293같은 것을 사용한 추가 보드가 필요한걸로 알고 있습니다.

      라즈베리파이용으로 만들어진 모터 제어용 보드를 찾아보거나 아래 링크처럼 직접 L293을 사용해보세요

      https://business.tutsplus.com/tutorials/controlling-dc-motors-using-python-with-a-raspberry-pi--cms-20051

  7. thumbnail
    Favicon of https://kalilinux.tistory.com BlogIcon kali.hk

    이코드에다가 얼굴 인식될시 부저가 계속 쭉 울리게 하는 코드를 넣어주실수 있나요?

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2020.08.05 18:35 신고

      파이썬으로 작성된 얼굴인식 코드가 OpenCV에 있습니다. 그것부터 시작해보세요

  8. thumbnail
    Favicon of https://jj8a8.tistory.com BlogIcon 헐8ㅁ8

    안녕하세요! 혹시 서보모터 방향 설정하는 부분 조금만 설명해주실 수 있나요...?
    서보모터 방향을 오른쪽으로 90도 회전 한 후 5초뒤에 왼쪽으로 90도 회전시키고 싶은데
    왼쪽으로 돌아가게끔 방향 설정하는 코드를 이해하지 못했습니다ㅠㅠ
    도와주세요ㅠ

    • thumbnail
      Favicon of https://webnautes.tistory.com BlogIcon webnautes
      2020.12.04 16:39 신고

      현재 3개의 각도를 설정하도록 된것을 하나씩 동작하도록 바꿔서 각각 어떻게 동작하는지 확인해보세요.