성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • WINAPI
  • MFC
  • ARM Reverse Engineering
  • Boot Code 분석
  • 문자열 나누기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

[RPi 2 B+] Mini Servo 돌려보기
OwnProject/RPi B+

[RPi 2 B+] Mini Servo 돌려보기

2016. 1. 23. 23:33

오늘의 목표는 Servo Motor 돌려보기 !


구입한 서보모터는 Micro Servo 9g SG90 이라는 엄청 싼 가격의 모터이다.


대부분의 라즈베리파이 유저들은 wiringPi 라이브러리를 사용해서 코딩을 하므로, 


테스트겸 , C언어를 이용해서 구동시켜 보도록 할 것이다.


필요한 하드웨어

서보모터, PNP or NPN 트랜지스터, RPi, 저항 100~220옴 2개


구동영상



구동 시키기 위해서 필요한 정보는 서보모터에 입력되는 3가지선을 보면 알기 쉽다.



서보모터 사진



빨강 : 5V(VCC)

검정 : GND

노랑 : 신호선


회로사진




먼저 5V , GND 를 빨간선과 검은선으로 연결시켜준다.


그리고 신호선을 연결해야 하는데, 연결하기 전에 많은 양의 전류를 보내주면 라즈베리파이에 무리가 가므로


트랜지스터를 사용하면 좋겠다(솔직히 얼마나 무리가 갈지는 모르겠지만 ㅠ 소중하니까). 위에선 PNP TR을 사용하였다. 


TR에는 이미터, 베이스, 콜렉터 라고 부르는 3가지 반도체가 존재한다.


크기로만 봤을때 콜렉터 > 이미터 > 베이스 순이고, 베이스에 작은 전류만 흘려줘도 커다란 콜렉터에 많은 전류를 흐르게 할 수 있다.


예를 들어서 회로를 보았을 때 이미터에 100mA의 전류를 흘려보내면 1mA가 베이스, 99mA가 콜렉터로 흐를 것이고, 200mA를 흘려보내면 2mA가 베이스, 198mA가 콜렉터로 흘러간다. 그러므로 1mA->2mA 가 되면서 베이스에 대한 콜렉터의 전류 증폭률은 여기서 거의 99배 라고 보면 된다.


그래서 전류증폭기 인 것이다.


위의 사진에서 빨간점에서부터 오른순으로 이미터, 베이스, 콜렉터이다.


이미터에는 GND, 베이스에는 신호선과 220옴 저항, GPIO 17번 핀 콜렉터에는 220옴 저항, 5V 전원을 인가하였다.


다음은 소스를 보도록 하겠다.


소스

#include <wiringPi.h>

#include <stdio.h>

#include <stdlib.h>

#include <softPwm.h>

#include "softServo.h"


int  main(void)

{

int pos = 180;

int dir = 1;

if(wiringPiSetupGpio() == -1) return 1;


softServoSetup(17,-1,-1,-1,-1,-1,-1,-1);


while(1)

{

softServoWrite(17,-250);

delay(500);

softServoWrite(17, 500);

delay(500);

softServoWrite(17, 1250);

delay(500);

}

}


지금은 wiringPi 를 사용하였지만 , wiringPi 안에 함수들이나 소스를 보고 , 다음 항목부터는 나만의 라이브러리로 구동시킬 것이다.



저작자표시 (새창열림)

'OwnProject > RPi B+' 카테고리의 다른 글

[RPi 2 B+] 라즈베리파이2 랜선 접속하기.  (0) 2016.01.21
    'OwnProject/RPi B+' 카테고리의 다른 글
    • [RPi 2 B+] 라즈베리파이2 랜선 접속하기.
    성엽이
    성엽이

    티스토리툴바