반응형

 

 

라즈베리파이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 ;
}

 

반응형

'Raspberry Pi > 서보 Servo 모터' 카테고리의 다른 글

Raspberry Pi 3에서 Servo Motor 제어하기  (13) 2019.06.03

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

유튜브 구독하기


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

  1. ^^ 2019.09.18 21:36

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

  2. 허허 2019.11.11 16:37

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

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

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

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

  3. 경두 2019.11.13 19:29

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

  4. jeong 2019.11.22 20:21

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

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.11.22 23:04 신고

      네 가능합니다. 쓰레드를 사용해야 할 수도 있습니다.

  5. Favicon of https://luigibox.tistory.com BlogIcon Luigibox 2020.04.15 23:34 신고

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

  6. 봐키 2020.05.16 21:43

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

    • 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. Favicon of https://kalilinux.tistory.com BlogIcon 작동이 2020.08.05 15:41 신고

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

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

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

+ Recent posts