'Raspberry Pi'에 해당되는 글 43건

  사실 웹캠 스트림 서버라는게 지난 포스트 CCTV 만들기-1, CCTV 만들기-2를 통해 알아본 CCTV와 크게 다를 바 없다. 실제로 motion프로그램에게 웹캠 스트림 기능을 제공하므로 기능 측면에서 다른점이라고 하면 CCTV에 있는 저장하는 기능이 웹캠 스트림 서버에 없다는 정도 일 것 같다. 그럼에도 불구하고 따로 웹캠 스트림 서버 프로그램을 설명하는 이유는 이번 포스트에서 설명할 mjpg-streamer라는 프로그램이 motion 프로그램의 여러 플랫폼에서 웹캠 스트림을 확인하지 못하는 단점을 보완하기 때문이다. 이에 대한 자세한 얘기는 이번 포스트 마지막 부분에서 하겠다.

 

  우선 mjpg-streamer라는 프로그램을 설치하자. 이 프로그램은 apt-get 을 이용해서 설치 할 수 있지 않다. 소스코드를 받아서 컴파일을 해서 실행 시켜야하는데 어렵지 않으니 그냥 따라 하면 된다. 우선 svn으로 소스코드를 받자. 아래와 같이 'svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer'를 입력하면 mjpg-streamer라는 폴더가 생기고 그 안에 mjpg-streamer 소스코드가 다운로드 받아진다.

웹캠 스트림 서버

 

  mjpg-streamer 폴더에 들어가서 make를 입력하면 스스로 프로그램을 컴파일한다. 중간에 에러가 발생할 수도 있는데 그때는 에러 내용이 무엇인지 판단해서 고쳐야 한다. 필요한 라이브러리가 없을 경우 에러가 발생할 가능성이 있으니 에러를 확인해서 없는 라이브러리를 설치한 뒤 다시 make로 컴파일 하면 된다.

웹캠 스트림 서버

 

  기본적으로 이 프로그램을 실행시키는 명령어는 './mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"' 이다. 여기에 여러 옵션을 넣을 수 있다. 그 옵션은 다음 표와 같다. 

 

 

  WebCam 옵션

-d

video device to open (your camera)

-r

the resolution of the video device, can be one of the following strings:
QSIF QCIF CGA QVGA CIF VGA SVGA XGA SXGA or a custom value like: 640×480

-f

frames per second

-y

enable YUYV format and disable MJPEG mode

-q

JPEG compression quality in percent (activates YUYV format, disables MJPEG)

-m

drop frames smaller then this limit, useful if the webcam produces small-sized garbage frames may happen under low light conditions

-n

do not initalize dynctrls of Linux-UVC driver

-l

switch the LED on, off, let it blink or leave it up to the driver using the value auto

 

 

  HTTP 출력 옵션

-w

folder that contains webpages in flat hierarchy (no subfolders)

-p

TCP port for this HTTP server

-c

ask for username:password on connect

-n

disable execution of commands

 

출처 : Wolf Paulus Journal

 

 

  옵션 사용이 조금 독특하다. WebCam 옵션은 -i 뒤에 나오는 따옴표 안에, HTTP 옵션은 -o 뒤에 나오는 따옴표 안에 넣어야 한다. 여기서 중요한 옵션 몇개만 간략히 소개하자면 WebCam 옵션의 -r은 해상도, -f는 초당 프레임수 -q는 jpg 퀄리티를 설정하는 옵션이다. -d는 웹캠이 두개 이상 설치되어 있을 때 그 중 원하는 웹캠을 선택하는 옵션으로 기본값으로 /dev/video0를 가진다. HTTP 옵션의 -w는 웹페이지가 담겨있는 폴더의 위치, -p는 TCP 포트를 설정하는 옵션이다. 포트 설정이 없을 경우 8080 포트를 기본값으로 사용하는데 XBMC등 8080포트를 사용하고 있으면 bind 할 수 없다는 에러 메시지가 뜬다. 예를들어 아래 사진 속 명령어를 보면 640*480 해상도로 초당 15프레임을 찍어서 8083포트로 스트리밍하고 있는 것을 알 수 있다.

웹캠 스트림 서버

 

  이제 웹브라우저로 http://아이피주소:8083/에 접속하면 아래와 같은 화면을 볼 수 있다. 아래 페이지는 프로그램에서 제공하는 샘플 페이지로 여러 가지 방법으로 웹캠 화면을 보는 것을 구현 해 놓았다. 기본적인 방법으로 html의 img 태그를 이용할 수 있다. 예를들어 <img src="http://아이피주소:8083/?action=snapshot">이라고 하면 정지된 사진을, <img src="http://아이피주소:8083/?action=stream">이라고 하면 동영상을 볼 수 있다. 이런 방법으로 동영상을 스트림 하는 경우는 익스플로러에서 작동하지 않는다.

웹캠 스트림 서버

 

웹캠 스트림 서버

 

웹캠 스트림 서버

 

  익스플로러에서도 동영상 스트리밍을 보려면 자바스크립트를 이용하는 방법을 사용하면 된다. 자바스크립트를 이용하는 방법 또한 제공되는 샘플 코드를 보면 그리 복잡하지 않기 따문에 쉽게 이용할 수 있을 것으로 보인다.

웹캠 스트림 서버

 

  마지막으로 VLC 프로그램이나 웹브라우저에 스트리밍 주소를 집접 적는 방법에 있는데 이때 주소는 'http://아이피주소:8083/?action=stream' 이고 motion과 마찬가지로 익스플로러와 크롬은 지원하지 않고, 파이어폭스는 지원한다.

웹캠 스트림 서버

 

  지난 포스트에서 소개한 motion 프로그램으로도 웹캠 스트리밍을 할 수 있음에도 불구하고 mjpg-streamer를 소개한 이유는 정말 다양한 플랫폼에서 사용할 수 있기 때문이다. 우선 인터넷 익스플로러, 크롬, 파이어폭스 모두 사용이 가능하다. 스냅샷은 모든 웹브라우저에서 가능하고, 스트림은 익스플로러에서는 제대로 작동하지 않지만 자바 스크립트를 이용한 방법으로는 익스플로러에서도 라이브 스트리밍을 볼 수있다. 또한 소스코드가 공개되어 있기 때문에 프로그래밍을 할 줄 아는 사람이라면 소스코드 분석을 통해 배울 점도 많아 보인다.

 

참조 : Wolf Paulus Journal

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 CCTV 만들기-1에서 motion 프로그램을 설치하고 daemon으로 실행하는 것 까지 알아보았다. 이번 포스트에서는 실제로 CCTV 화면을 확인하기 위해 필요한 설정들을 알아보자. (이번 포스트에 있는 그림에서 보면 8081번 포트로 접속하는데 이는 지난 포스CCTV 만들기-1 에서 설정한 것과 다른 설정에서 화면캡쳐를 했기 때문이다. 8082번으로 접속한 것으로 보기 바란다.)

  이제 프로그램도 돌아가니 웹브라우저에서 CCTV 화면을 확인해보자. 웹브라우저 주소창에 http://아이피주소:8082/를 입력하면 아래와 같이 페이지에 접속할 수 없다는 메시지가 나온다. 웹캠 서버가 localhost에서 접속만 허용하도록 설정되어 있기 때문이다. '/etc/motion/motion.conf' 파일에서 'webcam_motion' 값과 'control_localhost' 값을 모두 off로 설정해줘야 한다. 지금까지 인터넷에 돌아다니는 자료에는 'control_localhost'에 대한 언급이 없는데 프로그램이 수정되면서 추가된 것으로 추정된다.

라즈베리파이 CCTV

 

  다시 웹브라우저에서 스트리밍 주소로 접속을 하면 인터넷 익스플로러의 경우 웹캠 화면이 보이는 것이 아니라 아래와 같이 다운로드하는 창이 뜰 것이다. 크롬을 사용할 경우는 다운로드하는 창도 뜨지 않을 것이다. motion 서버에서 뿌려주는 화면을 표시하려면 mjpeg stream을 제공해야 하는데 인터넷 익스플로러와 크롬은 이를 지원하지 않기 때문이다. 크롬은 오래된 버전의 경우 지원을 했었기 때문에 제대로 표시 할 수도 있다.

라즈베리파이 CCTV

 

   다행히 파이어폭스는 mjpeg stream을 지원하기 때문에 파이어폭스를 이용하면 아래와 같이 CCTV 화면을 확인할 수 있다.

라즈베리파이 CCTV

 

  이렇게 확인을 했지만 여전히 문제는 있다. 바로 계속 motion 서버가 죽는 것이다. 이는 사진을 저장할 때 권한 문제로 에러가 나는 것으로 추정된다. 따라서 폴더를 하나 만들어서 사진을 저장하도록 하자. 예를 들어 '/home/pi/motion/'이라는 폴더를 만들면 'target_dir /home/pi/motion/'라고 값을 변경하자. 그러면 아래와 같이 motion 폴더에 사진들이 저장되는 것을 알 수 있다.

라즈베리파이 CCTV


  이제 라즈베리파이를 CCTV로 쓰는데 큰 문제는 없다. 지난 포스트에서도 언급했듯 '/etc/motion/motion.conf' 파일에는 여러가지 설정을 변경 할 수 있다. 그 중에 몇가지만 소개하자면 width와 height 값을 변경하면 아래와 같이 더 큰 화면을 얻을 수도 있고, brightness, contrast, saturation, hue 등을 통해 화면의 밝기, 대비, 채도 등을 설정할 수도 있다. output_normal 값을 off로 바꾸면 움직임이 감지되더라도 저장하지 않고, 라이브로 감시만 가능해지기도 한다. 이 외에도 많은 설정이 가능하기 때문에 꼭 하나하나 읽어보길 추천한다.

라즈베리파이 CCTV

 

 

  지금까지 파이어폭스로 CCTV 화면을 확인하는 법을 알아봤는데 안드로이드 앱을 통해서 CCTV를 확인 하는 법을 알아보는 것으로 이번 포스트를 마치도록 하자.


  구글스토에서 mjpeg으로 검색을 하면 여러 앱이 검색된다. 이 중 어느 것을 사용하나 무방하지만 가장 위에 올라와 있는 MJpeg Viewer 앱을 선택해서 설치, 실행해보자.

Mjpeg Viewer Mjpeg Viewer


  실행하면 아래와 같이 매우 단순한 화면이 나온다. URL을 클릭하면 주소를 입력할 수있는 창이 뜨고, 주소를 넣고 확인을 누르고, Show 버튼을 클릭하면 CCTV화면이 나온다. 

Mjpeg Viewer Mjpeg Viewer


Mjpeg Viewer

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  이번 포스트에서는 라즈베리파이를 이용하여 간단한 CCTV를 만드는 법을 알아보자. 인터넷에 이와 관련해서 여러 블로그 자료가 있는데 그대로 따라했음에도 불구하고 제대로 작동하지 않아 답답한 사람들이라면 이번 포스트를 통해를 해결 할 수 있길 바란다.

 

  우선 CCTV를 만들기 위해서는 카메라가 필요하다. 카메라는 아래 왼쪽과 같은 라즈베리파이용 카메라 모듈을 사용할 수 있지만 일반 웹캠을 사용해도 무방하다. 사용할 수 있는 웹캠의 종류는 여기서 확인 할 수 있다. 이 포스트는 아래 오른쪽 사진에서 보이는 마이크로소프트사의 HD-3000을 기준으로 설명한다. 

라즈베리파이 CCTV라즈베리파이 CCTV

 

  일반 usb웹캠을 사용하게 되면 전력이 부족해서 라즈베리파이가 작동되지 않는다. 따라서 웹캠에 전원을 공급할 수 있도록 usb 허브를 사용해야한다. 필자는 지난 포스트에서 소개했던 MBF-H04 USB 허브를 이용하였다. 

USB 허브

 

  카메라를 usb 허브를 통해 라즈베리파이에 연결한 후, 제대로 연결되었는지 lsusb 명령어로 확인해본다. 아래 그림에서 웹캠이 Device 006으로 인식된 것을 확인 할 수 있다. 

라즈베리파이 CCTV

 

  라즈베리파이를 CCTV로 만들기 위해 사용되는 프로그램은 몇가지 있지만 그 중에 가장 많이 사용되는 것으로 보이는 motion 프로그램을 설치해보자. motion은 리눅스용으로 개발된 mjpeg 스트리밍 프로그램으로 카메라에 움직임이 포착될 때 사진을 저장하는 기능이 있어 CCTV 프로그램으로 쓰기에 좋다. 아래와 같이 'sudo apt-get install motion'을 입력하면 설치가 완료되는데 설치 전에 'sudo apt-get update' 명령으로 업데이트를 먼저 할 것을 추천한다.

라즈베리파이 CCTV

 

  프로그램 설치가 끝났으면 프로그램을 실행하기 전에 'nmap localhost' 명령으로 지금 사용되고 있는 네트워크 포트를 확인해 보자. nmap이 설치되어 있지 않다면 apt-get으로 쉽게 설치가 가능하다. 아래 그림에서 22, 80, 3389, 8080, 9090번 포트가 열려있는 것을 알 수 있다. 

라즈베리파이 CCTV

 

  이제 'sudo service motion start' 라고 입력하여 프로그램을 실행시켜보자. 원래 프로그램이 daemon 으로 실행, 즉, 백그라운드에서 실행되야 하지만 아래에서 보듯 실행되지 않는다. daemon 실행이 되지 않도록 기본값이 설정되어 있기 때문이라 설정을 바꿔줘야 한다.

라즈베리파이 CCTV

 

  우선 '/etc/default/motion' 파일을 열어서 'start_motion_daemon' 값을 yes로 바꾼다.

라즈베리파이 CCTV


  둘째로 '/etc/motion/motion.conf' 파일을 변경해야 하는데 이 파일에는 프로그램의 모든 설정사항들이 포함되어 있으므로 하나씩 읽어보길 권장한다. 우선 daemon으로 실행하기 위해 'daemon' 값을 on으로 바꾼다. 또한 포트 8080번은 xbmc에서 사용하고 있으므로 다른 포트로 사용해야 두 프로그램을 모두 원활하게 사용할 수 있다. 필자는 webcam_port 8082, control_port 8081으로 설정했다.

라즈베리파이 CCTV


  이제 다시 프로그램을 실행시켜보면 실행이 된다. 'nmap localhost' 명령으로 확인해보면 8081, 8082포트가 새로 열린 것을 알 수 있다. 8082 포트는 라이브 웹캠 화면을 볼 때 사용하는 포트이고 8081 포트는 http를 통해 컨트롤하는데 사용된다.

라즈베리파이 CCTV

 

  우선 192.168.1.9:8081에 접속하면 아래와 같은 화면을 볼 수 있다. 이 간단한 페이지를 통해 motion 프로그램의 설정 값을 가져오고 설정할 수 있다.

  이번 포스트에서는 motion 프로그램을 실행시키는 것 까지 알아보았다. 다음 포스트에서는 실제로 CCTV화면을 확인하고, motion 프로그램을 설정하는 법을 알아보자.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 PWM으로 RGB LED 다양한 색깔 표현에서 PWM 방식으로 RGB LED의 밝기를 조절해서 다양한 색깔의 빛을 표현하는 방법을 알아보았다. 이번 포스트에서는 가변저항을 이용하여 같은 일을 아날로그 방식으로 처리하는 방법을 알아보자.


  우선 가변저항이 무엇일까? 말그대로 변화가 가능한 저항, 즉 저항의 값이 하나로 고정된 것이 아니라 변할 수 있는 저항을 말한다. 다양한 가변저항이 있는데 기본적인 성질과 원리는 거의 비슷하다. 아래와 같이 생긴 가변저항을 로터리식 가변저항이라 부르는데 스피커의 볼륨조절기를 생각하면 된다. 그 원리는 아래 사진의 우측하단에 표시된 바와 같이 1과 3에 전체 저항이 연결되어 있고, 스위퍼(sweeper)라고 불리는 2번이 옮겨다니면서 저항 값이 변하게 되는 것이다. 즉 노브를 돌리면 1번과 2번사이의 저항, 2번과 3번사이의 저항의 값이 변화하게 되는 것이다. 참고로 1번과 2번 사이의 저항값이 최저일때, 2번과 3번사이의 저항값은 최고이고, 1번과 2번 사이의 저항값이 커지면 2번과 3번 사이의 저항값이 작아진다.


  이제 아래와 같이 회로를 구성한다. 스위치는 필자의 가변저항이 스위치 기능이 되는 것이 아니라 저렇게 따로 연결 했으나 없어도 불을 끄지 못하는 점 외에는 큰 상관 없다. 가변저항의 2번을 GND와 연결하고 1번이나 3번을 LED의 R, G, B 다리에 연결한다. 1번을 연결하느냐 3번을 연결하느냐에 따라 오른쪽으로 노브를 돌렸을 때 LED의 밝기가 밝아지느냐 어두워지느냐가 달라진다. 그리고 LED의 커먼 애노드(+)에 5V 전압을 연결하면 된다.


  이제 스위치로 LED를 켜고 노브를 돌리면 아래 동영상에서 처럼 LED의 밝기가 변화하는 것을 확인 할 수 있다.


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 RGB LED로 신호등 만들기에서 RGB LED를 사용해서 빨간색, 노란색, 초록색 불을 켜는 방법을 알아봤다. 그 중 특히 노란색 불은 빨간색과 초록색 불을 섞어서 만들었다. 이런 식으로 하면 빨간색, 노란색, 초록색 불을 각각 켜고 끄는 것으로 불끄는것 포함 총 8개의 색을 나타낼 수 있다. 하지만 이렇게 해서는 표현 할 수 있는 색이 너무 적다. 이번 포스트에서는 PWM을 이용해서 RGB LED로 여러가지 색깔을 표현하는 방법을 알아보자.


  우선 아래 사진처럼 지난 포스트에서 RGB LED를 연결하는거와 같이 저항과 LED와 GPIO핀을 연결한다. 지난 포스트에서는 파란색 불을 사용할 일이 없어서 연결하지 않아도 됐지만 이번에는 세개 모두 연결 한다.

PWM RGB LED


  LED로 여러가지 색을 나타내려면 기본적으로 LED의 밝기를 조절해야하는데 LED 밝기 조절은 전압을 변경하여 할 수 있다. 하지만 GPIO핀은 디지털인데, 즉, 끄고 켜는 두가지 외에는 방법이 없는데 어떻게 LED의 밝기를 조절 할 수 있을까? 이를 위해서는 PWM을 이해해야한다. PWM은 Pulse Width Modulation의 약자로 펄스 폭 변조라고 한다. PWM은 디지털 기기에서 아날로그 결과를 얻기 위한 테크닉으로, 전원인 on되는 시간을 펄스 폭이라고 하고, 펄스 폭을 조정함으로 on과 off사이의 전압을 흉내낼 수 있다. 이러한 on-off 패턴을 빠르게 반복하여 LED에 출력하면 LED의 밝기를 변경 할 수 있게 되는 것이다. 예를 들어 아래 그림과 같이 on이 지속 되는 시간, 즉, 펄스 폭을 조정하면, 위에서 아래로 갈 수록 밝은 LED 빛을 얻을 수 있다.

PWM


  WiringPi 라이브러리에서 PWM을 지원 한다. 다음은 WiringPi 라이브러리의 PWM 함수를 이용해서 LED의 색깔을 바꿔서 다양한 색을 표현하는 프로그램 코드이다. 

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

#define PIN_R 7
#define PIN_G 0
#define PIN_B 1

void setRGB(int r, int g, int b){
  softPwmWrite(PIN_R, 255-r);
  softPwmWrite(PIN_G, 255-g);
  softPwmWrite(PIN_B, 255-b);
}

int main (void)
{
  int i = 0, j = 0, k=0;
  printf("RGB LED Various Color");

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

  pinMode (PIN_R, OUTPUT) ; //R
  pinMode (PIN_G, OUTPUT) ; //G
  pinMode (PIN_B, OUTPUT) ; //B

  softPwmCreate(PIN_R,0,255);
  softPwmCreate(PIN_G,0,255);
  softPwmCreate(PIN_B,0,255);

  for (i = 0; i <= 250; i=i+50){
    for (j = 0; j <= 250; j=j+50){
      for (k = 0; k <= 250; k=k+50){
        setRGB(i,j,k);
        delay(50);
        printf("R:%d G:%d B:%d\n", i, j, k);
      }
    }
  }

  setRGB(0,0,0);//clear LED
  delay(50);

  return 0 ;
}
  위 코드를 조금 살펴보자. 우선 3번째 줄을 보면 'softPwm.h' 헤더파일을 포함시키는데, 이는 WiringPi에서 지원하는 헤더파일로 PWM을 사용하기 위해서는 이 헤더파일이 필요하기 때문이다. 두번째로 27-29번째 줄을 보면, softPwmCreate 함수를 사용하는데 이 함수는 소프트웨어로 제어되는 PWM 핀을 만든다. 이 함수는 핀번호, 기본값, PWM 값의 범위 이렇게 세가지를 파라미터로 갖는다. 따라서 27번째 줄의 softPwmCreate(PIN_R,0,255) 는 7번 핀을 0과 255사이의 범위를 갖고 기본값을 0으로 하는 PWM 핀을 만든다. 마지막으로 9-13번째 줄은 LED에 불을 켜는 함수로 softPwmWrite를 이용해서 빨간색, 초록색, 파란색 불빛의 밝기를 조절하여 원하는 색깔의 빛을 만든다.

  프로그램을 컴파일하고 실행하면 아래 동영상과 같은 결과를 얻을 수 있는데, 컴파일 할 때 pthread 라이브러리도 포함시켜야 한다. 예를 들면 'gcc -o 3led_light 3led_light.c -lwiringPi -lpthread' 명령을 사용해서 컴파일 해야한다.


참조

WiringPi.com


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 LED로 간단한 신호등 만들기에서 빨간색, 노란색, 초록색 세개의 LED를 사용해서 신호등을 만드는 법을 알아보았다. 이번 포스트에서는 RGB LED 하나로 신호등을 만드는 법을 알아보자.


  아래 사진에 보이는 LED가 RGB LED 혹은 3색 LED이다. 일반적인 LED와 달리 RGB LED는 다리 네개가 각각 아래 사진에서 처럼 빨간색 녹색 파란색 그리고 커먼 애노드(+) 로 구성된다. 커먼 애노드 RGB LED는 아래 사진에서 처럼 가장 긴 다리에 5V 전압을 넣고 Red에 Low 접압을 넣으면 빨간색 불이 들어오고 High 전압을 넣으면 빨간불이 꺼지고 G와 B에 대해서도 같은 방식으로 작동한다. 커먼 캐소드(-) RGB LED도 있는데 커먼 애노드(+) RGB LED와 달리 캐소드 다리에 0V를 넣고, R, G, B 다리에 High 전압을 넣어주면 각각 빨간, 녹색, 파란불이 들어온다.

RGB LED


  신호등을 만들기에는 빨간, 초록, 파란 불이 충분하지 않다. 노란색 불이 필요하다. 노란색 불을 켜기위해서 빛을 혼합해야 한다. 위 사진의 왼쪽 상단에 빛의 삼원색 혼합 다이어그램이 있는데 이를 참조하면, 빨간색 빛과 초록색 빛을 섞으면 노란색이 된다. 즉, 빨간색과 초록색 불을 동시에 켜면 노란색 불을 얻을 수 있는 것이다. 


  신호등을 만들기 위해서 아래와 같이 RGB LED를 연결하면 된다. 필자는 G04, G17, G18에 차례대로 R, G, B를 연결했다. 신호등을 만들기 위해서는 파란 빛이 필요하지 않으므로 B를 연결할 필요는 없다.

RGB LED

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

int main (void)
{
  int i = 0;
  printf("Traffic Light");

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

  pinMode (7, OUTPUT) ;
  pinMode (0, OUTPUT) ;

  for(;;){
    for (i = 0; i < 3; i++){
      switch(i) {
      case 0:
        digitalWrite(7, 0);
        digitalWrite(0, 1);
        delay(3000);
        break;
      case 1:
        digitalWrite(0, 0);
        delay(800);
        break;
      case 2:
        digitalWrite(7, 1);
        delay(3000);
        break;
      }
    }
  }
  
  return 0 ;
}

  위 코드는 지난 포스트의 LED 신호등 코드를 조금 수정 한 것이다. 수정된 부분을 보면 19번째 줄에서 이전 프로그램에는 7번 핀에 1을 출력해서 빨간 불을 켰었는데 여기서는 0을 출력해서 빨간 불을 켠다. 위에서 설명했듯, 필자의 RGB LED가 커먼 애노드 이기 때문이다. 20번째 줄은 반대로 0번 핀에 1을 출력해서 초록색 불을 끈다. 24번째 줄은 빨간 불이 켜진 상태에서 초록색 불을 켜서 노란색 불이 켜지게 된다. 마지막으로 28번째 줄은 빨간색 불을 꺼서 초록색 불만 켜지게 만든다. 이 코드를 실행하면 아래 동영상 같이 하나의 LED로 신호등을 볼 수 있다.



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트에서 WiringPi로 GPIO 핀을 제어하여 LED를 깜빡이는 방법을 알아보았다. 이번 포스트에서는 조금 수정해서 신호등을 만드는 법을 알아보자.


  우선 아래 사진처럼 LED와 저항을 연결한다. 빨간색, 노란색, 초록색 LED +극에 저항을 연결하고 G04, G17, G18을 차례대로 연결하고, -극에는 접지를 연결한다.

라즈베리파이 신호등


라즈베리파이 신호등

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

int main (void)
{
  int i = 0;
  printf("Traffic Light");

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

  pinMode (7, OUTPUT) ;
  pinMode (0, OUTPUT) ;
  pinMode (1, OUTPUT) ;
  for(;;){
    for (i = 0; i < 3; i++){
      switch(i) {
      case 0:
        digitalWrite(7, 1);
        digitalWrite(1, 0);
        delay(3000);
        break;
      case 1:
        digitalWrite(0, 1);
        digitalWrite(7, 0);
        delay(800);
        break;
      case 2:
        digitalWrite(1, 1);
        digitalWrite(0, 0);
        delay(3000);
        break;
      }
    }
  }
  
  return 0 ;
}

  위 코드는 WiringPi를 이용하여 신호등을 만든 간단한 프로그램이다. 조금씩 살펴보자. 2번째 줄은 wiringPi 헤더파일을 불러와서 WiringPi 라이브러리를 사용하기 위해서는 꼭 필요하다. 9번째 줄은 WiringPi를 시작하기 전에 셋업 하는 함수이다. 12-14줄은 7, 0, 1 핀을 출력핀으로 만들어 주는 것이다. 참고로 WiringPi 핀넘버 7, 0, 1은 순서대로 BCM 핀넘버 4, 17, 18이다. 19번째 줄은 7번핀에 1을 출력해서 빨간색 LED에 불을 켜는 것이고, 20번째 줄은 1번 핀에 0을 출력해서 초록색 LED의 불을 끄는 것이다. 21번째 줄은 3초동안 현재 상태를 유지 즉, 빨간불을 3초동안 켜고 있는 것이다. 따라서 case0 일때는 빨간불을 켜고, case1 일때는 노란불을 켜고, case2 일때는 초록불을 켜는 것으로 아래 동영상 같은 간단한 신호등이 완성 된다.



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 LED 불 켜기에서 스위치로 LED 불을 켜고 끄는 것을 알아봤다. 이번 포스트에서는 GPIO를 이용해서 LED를 깜빡이는 방법을 알아보자.


  GPIO를 컨트롤 하는 가장 쉽고 편한 방법은 WiringPi 라이브러리를 사용하는 것이다. Git가 설치되어 있으면 WiringPi를 설치하기가 수월하다. Git이 설치되어 있지 않다면 'sudo apt-get install git-core'를 입력해서 설치한다. Git이 설치되어 있으면 'git clone git://git.drogon.net/wiringPi'를 입력해서 WiringPi를 다운 받는다. 다운 받은 디렉터리에 들어가서 './build'를 입력하면 설치 끝.

 

  제대로 설치되었는지 확인하기 위해서는 'gpio readall'을 입력한다. 아래 사진과 같은 화면이 나온다. 제일 왼쪽행(BCM)은 Broadcom의 BCM2835 칩에서 사용하는 핀번호, wPi는 WiringPi 라이브러리의 핀번호, Name은 GPIO의 이름, Mode는 핀이 입력모드인지 출력모드인지를 알려주고, V는 핀의 값으로 1은 전압이 High상태 0은 Low상태, 그리고 Physical은 라즈베리파이 핀헤더의 번호이다. 예를들어 밑줄 친 열을 보면 11번 헤더핀이 출력모드이고 값은 0인 것을 알 수 있다. 유튜브(http://www.youtube.com/watch?v=Wr49ia3oID4)에 올라온 실험에 따르면, 핀이 입력모드일 때 전압이 0-1.19v는 0, 1.34-3.3v는 1으로 인식된다고 한다.


  라즈베리파이의 GPIO 핀을 이용해서 전압을 넣으면 LED가 켜지고 전압을 없애면 LED가 꺼지는 것으로 매우 단순하다. LED 불 켜기에서와 같이 LED를 저항과 GND에 연결하고 3.3v 에 연결되어 있던 부분을 GPIO핀으로 연결해주면 세팅이 완료 된다. (예제를 그대로 사용하려면 NS-GPIO의 G17 이나 라즈베리파이의 11번째 핀에 연결해야한다.)


  아래 wiringpi.com에 올라와 있는 예제인 'blink.c'의 코드이다. 이것을 복사해서 라즈베리파이에 'blink.c'로 저장하고 'gcc -o blink blink.c -lwiringPi'를 입력해서 컴파일 하고 'sudo ./blink' 명령으로 실행하면 아래 동영상과 같이 LED가 깜빡이는 것을 확인 할 수 있다.

#include <wiringPi.h>
int main (void)
{
  wiringPiSetup () ;
  pinMode (0, OUTPUT) ;
  for (;;)
  {
    digitalWrite (0, HIGH) ;
	delay (500) ;
    digitalWrite (0,  LOW) ;
	delay (500) ;
  }
  return 0 ;
}




  다음 포스트에서는 'blink.c' 프로그램의 코드를 살펴보고, 수정해서 LED로 신호등을 만드는 것을 알아보자.


참조

WiringPi.com

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  LED는 전자회로에서 가장 기본적인 소자중에 하나이다. 사용하는 방법은 매우 간단하다. 아래 그림 같이 +극에 전원을 넣고 -극에 접지를 하면 불이 켜진다. +극과 -극을 알아보려면 기본적으로 긴다리가 + 짧은 다리가 - 극이다. 다리 길이로 +,- 극을 구별할 수 없을 경우에는 헤드에서 작은쪽이 + 큰 쪽이 - 극이다.

LED


  LED를 포함한 전자소자에 최대전압 이상의 전압이 걸리면 소자가 타버릴 수 있다. 예를들어 3.2V LED에 6V의 전압을 가하면 순간 많은 전류가 흐르면서 LED가 번쩍하고 타서 더이상 쓸 수 없게 된다. 이를 조절하기 위해서 적절한 저항을 달아주는 것이 필요하다. 이때 적절한 저항의 크기를 계산하는 법은 다음과 같다. 중고등학교 물리시간에 한번쯤은 들어봤을 법한 V=IR공식을 이용하여 R=V/I로 계산 하면 된다. 예를들어 동작전압이 1.8~2.4V 이고 동작전류가 20mA 그리고 소스전압이 3.3V 인 경우, V=3.3-2.4, I=20mA 를 식에 대입하면 R=45Ω이고,  V=3.3-1.8, I=20mA를 대입하면 R=75Ω이므로 45~75Ω사이의 저항을 사용하면 된다. 저항을 계산할 때 고려해야 하는 것이 와트인데 저항마다 견딜 수 있는 전력량이 다르기 때문이다. P=VI=I^2R 이라는 공식을 사용하면 되는데 위의 예를 보면 I=20mA, R=75Ω이므로 P=0.03W이다. 따라서 1/8W 이상되는 저항을 사용하면 문제 없겠다.


LED

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  저항은 전자회로 구성의 필수요소라 불릴만큼 특수한 경우 외에는 거의 항상 쓰이는 소자이다. 저항의 목적은 흐르는 전류의 양을 조절하는데 있는데 누구나 한번씩은 들었을 법한 유명한 공식 V=IR에 의하면 전압이 같을 때 저항이 커지면 전류가 적게 흐르고, 저항이 작아지면 전류가 많이 흐른다. 저항을 사게되면 일반적으로 아래와 같이 저항값을 적어놓고 쓰기 때문에 저항값을 따로 읽을 필요가 없을 때가 많으나 종종 저항값을 읽어야 할 때가 있다. 테스터기가 있다면 테스터기를 이용하면 쉽게 저항 값을 읽을 수 있지만 없더라도 아래의 저항값 표만 있다면 읽을 수 있다.

저항


  저항값 표로 저항을 읽는 방법은 매우 간단하다. 저항을 보면 색깔 띠가 있는데 3색 부터 6색 저항 까지 있는데 기본적으로 저항을 읽는 방법은 큰 차이가 없으므로 4색 저항을 읽는 법으로 설명을 하자. 4색 저항의 경우 처음 두 색은 수치, 세번째 색은 승수 네번째 색은 정밀도를 나타낸다. 예를 들어, 위 사진 오른쪽 저항은 갈-빨-갈-금 으로 표시되어 있는데, 이를 아래의 표를 참조해서 읽어보면 이 된다. 그리고 네번째 색이 금색이므로 ±5%의 정밀도를 갖는다. 참고로 5색저항은 앞의 세 색이 수치, 네번째 색이 승수 그리고 다섯번째 색이 정밀도를 나타내고, 6색저항은 5색저항과 같고 여섯번째가 온도 계수를 나타낸다.

저항값 표


  위에서 알아 본 바와 같이 표만 있으면 저항값을 읽는것이 어렵지 않다. 하지만 요즘 처럼 다들 스마트폰을 들고다니는 때에 스마트 폰 앱 하나면 쉽게 저항값을 읽을 수 있다. 플레이 스토어에서 저항 읽기로 검색하면 많은 앱이 나오는데 그 중 가장 상위에 있는 저항 계산기를 사용해 봤다. 사용법은 설명할 것이 없을 정도로 간단하다. 띠를 클릭하면 색이 바뀌고 그에 따른 저항 값이 바로바로 계산되어 위에 표시된다.

저항값 읽기 앱 저항값 읽기 앱

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 라즈베리파이 GPIO 소개에서 라즈베리파이의 GPIO에 대해서 조금 알아보았다. 아래 사진에 ⑧번이 바로 GPIO인데 핀마다 점퍼 케이블을 사용하면 되지만 좀 더 쉽게 사용하는 방법을 이번 포스트에서 알아보자.


  아래 사진에 보이는 것이 엘레파츠에서 판매하고 있는 NS-GPIO-03인데, 라즈베리파이 GPIO를 편하게 쓸 수 있게 만들어주는 보조장치라고 보면 되겠다. 아래사진에서 보이듯 별것 없고 어렵지 않게 만들 수도 있지만 완성도를 생각하면 8천원 주고 사는게 낫다는 생각이다. 아래와 같이 완성되지 않은 상태로 오기 때문에 납땜을 해야한다.


  납땜을 해서 완성하면 아래와 같이 라즈베리파이와 빵판에 연결해서 GPIO 핀들을 사용할 수 있다. 엘레파츠에 보면 NS-GPIO 종류도 여러가지가 있으니 그중 맞는걸로 찾아서 구입하면 되겠다.


p.s.

  납땜 할때 케이블 소켓을 먼저 납땜 하고 다리를 납땜하려 했더니 아래 사진처럼 계속 앞으로 넘어져서 다리 납땜하기가 쉽지 않았다. 무엇으로든 앞을 받치고 납땜을 해야하는데 필자는 백원짜리 3개 십원짜리 4개로 해결했다. 



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이를 사용하다보면 딱히 필요하지는 않지만 또 하나 있으면 하는거, 아마 USB 허브가 아닐까 싶다. 그렇다고 일반적으로 쓰는 전원이 없는 허브를 쓸 수도 없다. 필자의 경험에 의하면 무선마우스 리시버 두개와 키보드 하나를 연결하니 전원이 딸려서 꺼져버렸다. 따라서 전원이 따로 들어가는 USB 허브가 필요하다. 이번 포스트에서는 유전원 USB허브인 MBF-H04를 알아보자.

 

  아래 사진에서 알수 있듯이 MBF-H04가 다른 USB허브랑 차이나는 점이라면 바로 각 USB포트마다 전원 스위치가 달려 있다는 점이다. 스위치가 달려있기 때문에 USB 주번기기를 쓸 때만 켤수 있다는 장점이 있다. 게다가 스위치를 켜면 불까지 들어오는게 참 마음에 든다.

 

 

  사실 USB허브라는게 다 거기서 거기라서 포스팅할 거리가 되지 않지만 포스팅을 한 이유가 있다. 아래 사진을 보자. 이상한 점이 보이는가? 뭔가 이상하지 않나?

 

  그렇다. 전원부에 전원 케이블이 꽂혀있지 않았는데 라즈베리파이에가 작동하고 있다. 이는 라즈베리파이 USB 포트로도 전원이 들어간다는 사실을 방증한다. 사진에서는 잘 보이지 않지만 지금 USB 포트에 USB 허브가 연결되어 있고, USB 허브는 전원 어댑터로 연결되어 전원을 공급하므로 라즈베리파이가 켜지는 것이다. 이는 라즈베리파이 전원 어댑터와 USB허브 어댑터 두개를 한벌에 쓸 필요없이 USB 허브 어댑터 하나만 있어도 된다는 얘기다. 또한 불의의 사고로 라즈베리파이의 전원부가 망가지는 불상사가 생기더라도 USB에 전원을 넣음으로 라즈베리파이를 켤수 있다는 사실이기도 하다.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이가 널리 사용되는 이유 중 하나가 GPIO를 사용해서 많은 재미난 프로젝트들을 할 수 있다는 점 일 것이다. GPIO가 무엇인지 간단히 설명하자면 General Purpose Input/Output의 줄임말인데 말그대로 일반 목적으로 사용되는 입출력 핀을 이야기 한다. 즉, GPIO를 이용하면 LED를 켜고 끄고, 센서에서 값을 읽어오는 일에서 부터 LCD 패널에 출력하고 로봇의 모터를 제어하는 일 까지 다양한 일들을 할 수 있다. 라즈베리파이 모델B Rev2는 26개의 기본 GPIO 핀과 8개의 추가 GPIO 핀을 사용할  수 있다. 아래 사진에서 ⑧이 기본 GPIO핀이고 ⑨는 추가 GPIO 핀이다.


  아래 두 테이블은 라즈베리파이 모델B Rev2의 GPIO 핀번호를 나타낸 것이다.


기본 GPIO 핀

기본 GPIO 핀


추가 GPIO 핀

추가 GPIO 핀


참조

Gordons Projects



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이에는 PC와 달리 전원 스위치나 리셋 버튼이 없다. 리셋 버튼이 꼭 필요한 것은 아니지만 없으면 조금 성가실 정도로 불편하다. 특히 라즈베리파이가 뻗어서 재시작해야 할 경우나, 지난 포스트 라즈베리파이 종료하기에서 알아본 halt 명령어로 라즈베리파이을 종료했을때 라즈베리파이를 다시 켜려면 전원 뽑았다가 다시 연결해야한다. 이번 포스트에서는 이런 성가신 일을 해결해줄 리셋 버튼 다는 법을 알아보도록 하자.


  위에서 언급했듯 라즈베리파이에는 리셋버튼이 없다. 하지만 리셋버튼을 달 수 있는 핀을 빼 놓았다. 바로 P6핀인데 아래 사진에서 빨간색으로 테두리쳐진 부분이다. 두개의 구멍이 있는데 도체로 이 두개를 연결하면 라즈베리파이가 꺼지고 연결을 끊으면 라즈베리파이가 재시작된다. 이를 이용하면 라즈베리파이에 리셋버튼을 달 수 있다.


라즈베리파이 리셋 버튼


  스위치를 라즈베리파이에 직접 달아도 상관 없지만 필자의 경우 케이스로 덮어서 사용할 것이기 때문에 아래 사진에서 보이듯 두 선을 P6에 연결 해서 케이스 밖으로 리셋 버튼을 빼냈다. 

라즈베리파이 리셋 버튼


  버튼은 Self-Lock이 되는 버튼을 사용해도 되고, Self-Lock이 되지 않는 버튼을 사용해도 된다. Self-Lock이 되는 버튼의 경우 PC의 전원 버튼 처럼 한번 누르면 켜지고 또 한번 누르면 꺼지는 식으로 사용할 수 있고, Self-Lock이 안되는 버튼은 리셋 버튼처럼 사용할 수 있다. 필자는 TS-1109 라는 Self-Lock이 되지 않는 자그마한 버튼을 사용했는데 이는 전원버튼이 더 유용하겠지만 일반적으로 Self-Lock이 되는 버튼이 크기가 커서 라즈베리파이에 어울리지 않다고 판단했기 때문이다. 리셋 버튼은 아무래도 전원 옆에 있는게 맞는 것 같아서 아래와 같이 전원부 근처로 자리를 잡았다. 생각보다 잘어울리고 유용하다. 참고로 필자의 케이스는 엘레파츠에서 구입한 라즈베리파이 전용케이스 H타입이다.

라즈베리파이 리셋 버튼



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  이번 포스트에서는 지난 포스트 라즈베리파이에 GUI로 원격 접속 (XRDP)에서 XRDP를 이용한 원격 접속에 이어 VNC를 이용하는 방법을 알아보자.


1. 라즈베리파이에 VNC 서버 설치

  vnc를 이용하기위해서 tight vnc sever를 라즈베리파이에 설치해야 한다. 이를 위해 'sudo apt-get install tightvncserver'를 입력한다. tight vnc server가 설치 되어 있다면 아래와 같이 표시된다.

VNC


2. VNC 서버 실행

  vnc 서버를 실행하기 위해 'vncserver'를 입력하면 아래와 같이 비밀번호를 넣으라고 하는데 비밀번호를 두번 입력하면 vnc 서버가 실행된다.

VNC


   vnc 서버가 실행되는지 그리고 몇번 포트를 사용하는지 알아보기 위해 'sudo netstate -tulpn'을 입력하면 아래와 같이 나오는데 이를 보면 포트 5901와 66001이 vnc 서버에 의해 사용되고 있음을 확인할 수 있다.

VNC


3. 윈도우에서 원격 접속

  윈도우에서 vnc로 라즈베리파이에 원격 접속 하기 위해서는 윈도우에 vnc 클라이언트 프로그램이 설치되어 있어야 한다. 여러 종류의 VNC가 있는데 이중에 TightVNC를 사용해보자. TightVNC는 여기에서 무료로 다운받을 수 있다.

VNC


  다운받은 프로그램을 설치하고난 후에 vnc 클라이언트 프로그램 실행하면 아래와 같은 화면이 표시된다. Remote Host에 라즈베리파이의 IP 주소와 위에서 알아낸 포트번호를 아래와 같이 입력해주고 접속 버튼을 누르 비밀번호를 누르는 창이 나온다. 비밀번호를 입력하면 아래와 같이 라즈베리파이의 데스크탑 화면을 확인할 수 있다.

VNC


VNC


VNC


4. 안드로이드 폰에서 원격접속

  VNC도 스마트폰에서 접속할 수 있다. 여러 종류의 vnc 클라이언트 앱이 있는데 이중 무료인 android-vnc-viewer 앱을 사용해보자.

① 구글플레이에서 android-vnc-viewer를 찾아서 설치한다.

VNC


② 처음 실행하면 아래와 같은 화면이 뜨는데 'Don't show again' 버튼을 클릭한다.

VNC


③ 아래와 같은 화면이 뜨면 IP 주소, 포트, 비밀번호 등을 입력하고 접속 버튼을 누르면 라즈베리파이에 접속된다.

VNC


VNC


VNC


④ 텍스트를 입력할 수 도 있다. 메뉴키를 누르면 아래와 같은 메뉴들이 나오는데 여기서 Send Text 버튼을 누르면 문자를 입력할 수있는 창이 뜨는데 문자를 입렵하고 Send Text를 클릭하면 아래와 같이 문자열이 입력되는 것을 확인 할 수 있다.

VNC


VNC


VNC



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 GUI 프로그램 SSH 통해 실행시키기에서 SSH의 X11 터널링을 이용해서 라즈베리파이의 GUI 프로그램들을 실행시키는 방법에 대해 알아봤었다. 이번 포스트에서는 윈도우의 리모트 데스크탑을 이용하는 방법을 알아보자.


  우선 RDP(Remote Desktop Protocol)를 간단히 설명하면 GUI형식으로 다른 PC에 원격접속을 할 목적으로 마이크로소프트사에서 개발한 프로토콜이다. 윈도우에 기본적으로 리모트 데스크탑 클라이언트 프로그램이 깔려 있으므로 라즈베리파이에 xrdp 서버만 설치되어 있으면 된다. xrdp는 오픈소스 진영에서 rdp를 리눅스에서 사용할 수 있도록 만든 프로그램이다.


1. 라즈베리파이에 xrdp 서버 설치

  설치하기전에 'sudo apt-get update'와 'sudo apt-get upgrade'를 통해 업데이트를 먼저 하는 것을 권유한다. 그 후 xrdp 서버를 라즈베리파이에 설치하기 위해 'sudo apt-get install xrdp'를 입력한다. 

xrdp


2. 윈도우에서 라즈베리파이에 접속하기

① 원격 데스크탑 접속(Remote Desktop Connection) 프로그램을 실행시킨다. 이 프로그램은 rdp를 이용해 다른 PC에 접속하게 해주는 윈도우즈 기본프로그램이다. 윈도우7을 기준으로 시작버튼을 누르고 입력창에 'remote desktop connection'이나 'mstsc'를 입력해서 실행한다. 아래와 같은 화면이 표시되면 라즈베리파이의 IP를 입력하고 접속을 누른다.

xrdp


② 아래와 같은 화면이 뜨면 '예' 버튼을 클릭한다.

xrdp


③ 아래와 같이 로그인창이 표시되면 사용자명과 암호를 입력하고 'OK' 버튼을 누린다. 위의 과장이 모두 정상적으로 실행되었다면 마지막 사진같이 라즈베리파이의 LXDE 화면을 확인할 수 있다.

xrdp


xrdp


3. 안드로이드에서 라즈베리파이에 접속하기

  컴퓨터에서 접속하는 것 뿐만 아니라 스마트폰에서도 라즈베리파이에 RDP를 이용해서 접속할 수 있다.


① 구글플레이에서 Microsoft Remote Desktop 앱을 찾아서 설치한다.

xrdp


② 앱 설치 후 실행하면 IP주소와 사용자명, 비밀번호를 입력한다.

xrdp


③ 생성된 프로필을 클릭하면 라즈베리파이에 접속한다. 처음 접속하면 믿을수 없는 커넥션이라는 경고창이 뜨는데 항상 접속하기를 누르면 끝!

xrdp


xrdp


xrdp


  다음 포스트에서는 라즈베리파이에 VNC를 설치하는 방법을 알아보자.



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  가장 기본적인 라즈베리파이를 재시작하고, 끄는 방법은 매우 간단하지만 포스팅한적이 없는 것 같아서 이번 포스트에서 알아보도록 하자.


  알다시피 라즈베리파이에는 다른 컴퓨터들에 있는 파워스위치나 리셋 버튼이 없다. 리셋 버튼을 만들수는 있는데 이건 다음에 알아보자. 따라서 재시작 하거나 라즈베리파이를 끄려면 리눅스 명령어를 사용해야한다.


1. 라즈베리파이 종료

  ssh를 통해서나 라즈베리파이에 직접 연결을 해서 'sudo shutdown -h now'를 입력하면 즉시 라즈베리파이가 종료된다. sudo 권한이 없이는 시스템을 종료할 수 없다. 'sudo halt' 또한 같은 역할을 한다.


2. 라즈베리파이 재시작

  재시작을 하기 위해서는 'sudo shutdown -r now'를 입력하면 즉시 라즈베리파이가 재시작 된다. 'sudo reboot' 또한 같은 역할을 한다.

라즈베리파이 재시작



블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트에서 라즈베리파이에서 DVD 사용하는 방법을 알아봤다. 하지만 소리만 나오고 영상이 나오지 않는 문제에 봉착했다. 그 이유는 라즈베리파이 재단에서 라즈베리파이를 만들때 주 목적이 엔터테인먼트 센터가 아닌 교육용이고. 싸게 보급을 하려고 MPEG-2와 VC-1 코덱 라이센스를 라즈베리파이에 포함시키지 않았기 때문이다. 다행히 많은 사람들이 MPEG-2와 VC-1 코덱을 원해서 라즈베리파이 재단에서 비싸지 않은 가격에 개별로 두 코덱에 대한 라이센스를 팔기 시작했다. 필자는 MPEG-2 코덱 라이센스만 샀는데 2파운드였는데 원화로 3601원이 결제되었다. 이번 포스트에서는 라이센스를 사고 라즈베리파이에 라이센스를 설치하는 방법에 대해 알아보자.


1. 라즈베리파이 시리얼 알아내기

  라즈베리파이 재단에서 라이센스 문제를 어떻게 해결할 것인지는 힘들었다고 한다. 기술팀의 Dom이라는 기술자의 제안으로 모든 라즈베리파이에 라이센스를 설치하지 않고 고유한 시리얼 번호와 라이센스를 묶어서 개별로 라이센스를 살 수 있도록 하는 지금의 방식을 만들었다고 한다. 그래서 라즈베리파이용 MPEG-2 라이센스를 사려면 라즈베리파이의 시리얼 번호를 알아내야한다. 참고로 이런 방식으로 라이센스를 팔기 때문에 라즈베리파이당 라이센스를 사야한다. 애플스토어에서 앱 하나 사면 같은 아이디로 등록된 모든 기기에서 앱을 사용할 수 있는 방식이 아니다. 시리얼 번호를 알아내는 것은 쉽다. 'cat /proc/cpuinfo'를 입력하면 제일 밑에 시리얼 번호가 나온다.

라즈베리파이 MPEG-2 라이센스


2. 라이센스 구입하기

① 시리얼 번호를 알아냈다면 MPEG-2 라이센스를 클릭해서 MPEG=2 라이센스 구입 화면으로 들어간다. 아래와 같은 화면이 나오면 위에서 알아둔 시리얼 번호를 넣고 'Add to Cart'버튼을 누른다.

라즈베리파이 MPEG-2 라이센스


② 아래와 같은 창이 뜨면 'Proceed to Checkout'을 클릭한다.

라즈베리파이 MPEG-2 라이센스


③ 아래와 같이 필요한 정보를 넣고 페이팔로 결제한다. 페이팔 외의 다른 옵션이 없는 것은 조금 아쉽다.

라즈베리파이 MPEG-2 라이센스


라즈베리파이 MPEG-2 라이센스


라즈베리파이 MPEG-2 라이센스


④ 72시간 안에 입력한 이메일로 라이센스가 온다고 적혀있는데 실제로 한 두시간안에 아래와 같은 이메일을 받았다. 아래 사진에서 흐리게 처리된 부분이 라이센스 키다. 'decode_MP2=0x00000000' 부분을 복사해둔다.

라즈베리파이 MPEG-2 라이센스


3. 라즈베리파이에 라이센스 설치하기

① 라즈베리파이의 SD카드를 윈도우 PC에서 읽어온다. 아래의 G드라이브 같이 드라이브가 잡히면 config.txt 파일을 메모장에서 연다.

라즈베리파이 MPEG-2 라이센스


② 'config.txt' 파일의 제일 마지막 부분에 위에서 복사해둔 'decode_MP2=0x00000000'를 삽입하고 저장한다.

라즈베리파이 MPEG-2 라이센스


4. 라이센스가 제대로 설치되었는지 확인

  라즈베리파이에 MPEG-2 라이센스가 잘 설치되었는지 확인하기 위해서는 아래와 같이 'vcgencmd codec_enabled MPG2'를 입력한다. 아래와 같이 'MPG2=enabled'가 출력되면 제대로 설치된 것이다.

라즈베리파이 MPEG-2 라이센스


  지난 포스트 에서 알아본 방법 대로 DVD를 플레이 하면 이제 영상도 제대로 나오는 것을 확인 할 수 있다. 고마해라~ 마이 적었다아이가.

고마해라. 마이 무따이가.


참조

NEW VIDEO FEATURES! MPEG-2 AND VC-1 DECODE, H.264 ENCODE, CEC SUPPORT

How to Add MPEG-2 and VC-1 Video Codec Support to Your Raspberry Pi


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

 이번 포스트에서는 라즈비안 XBMC에서 DVD 재생하는 법을 알아보자. 우선 DVD를 재생하기 위해서 DVD 드라이브가 필요하다. 그래서 외장형 USB DVD 플레이어를 사려고 알아보니 4~5만원 정도에 판다. 살까 말까 고민할때 혹시 노트북에 달려있는 DVD를 쓸수 없나 하는 생각이 들었다. 빙고! 윈도우에서 DVD 장치도 공유가 되는 것이다. 그렇다면 XBMC에서 SMB를 이용해서 DVD를 재생시킬 수 있을 것이라는 판단에 외장형 DVD는 사지 않기로 했다.


1. 윈도우에서 DVD 드라이브 공유하기

① DVD 드라이브에 오른쪽 클릭을 해서 고급 공유를 클릭한다.

라즈베리파이 DVD


② 공유탭에서 고급 공유를 클릭한다.

라즈베리파이 DVD


③ 아래와 같은 창이 뜨면 '이 폴더 공유'의 체크박스를 클릭하고 공유 이름을 정해주고 확인을 누르면 공유가 된다.

라즈베리파이 DVD


라즈베리파이 DVD



2. XBMC에서 DVD 불러오기

  기본적으로 DVD를 추가하는 방법은 지난 포스트 네트워크 공유 비디오 파일 재생하기에서 알아본 방법과 거의 같다. 그래서 아주 간단히 넘어가도록 한다.


① 비디오 추가를 누른다.

라즈베리파이 DVD


② 탐색을 눌러서 윈도우즈 네트워크 (SMB)를 클릭해서 공유된 PC의 DVD를 찾는다.

라즈베리파이 DVD


라즈베리파이 DVD


라즈베리파이 DVD


라즈베리파이 DVD


③ 위 과정을 모두 마치게 되면 아래와 같이 DVD가 추가된다.

라즈베리파이 DVD


④ DVD안에 들어가서 원하는 파일을 클릭하면 비디오가 시작된다.

라즈베리파이 DVD


그런데 뭔가 이상하다. 소리는 나오는데 아래와 같이 영상은 나오지 않는다. 다음 포스트에서는 어떻게 이 문제를 해결하는지 알아보자.

라즈베리파이 DVD


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  라즈베리파이라고 라즈베리파이라고 다 똑같은 제품이 아니다? 중요할 수도 있고 중요하지 않을 수도 있는 라즈베리파이 보드 제조사에 대한 이야기를 알아보도록 하자.


  라즈베리파이는 같은 곳에서 만들어졌을 것이라고 생각했었는데 의외로  세개의 제조사(Sony, Qisda, Egoman)가 라즈베리파이를 만들고 있다. 뭐 제조사가 다른건 중요하지 않다. 일부 매니아들이 안성표 신라면과 안양표 신라면을 비교하는 것도 아니고 제조사가 달라서 라즈베리파이가 다르다는 말을 하려는 것이 아니다.


  우선 다들 알겠지만 라즈베리파이는 A모델과 B모델이 있다. A모델과 B모델은 구별하기 쉽다. Ethernet포트가 없고 USB포트가 하나인 녀석이 바로 A모델이니까 쉽게 구별 가능하다. 하지만 B모델도 Rev1과 Rev2로 나뉜다. 또 Rev2는 256MB 램과 512MB 램으로 나누니다. 2012년 10월 이후 라즈베리파이 B모델은 램이 512MB로 바뀌어서 나왔다. 즉 2012년 10월 이후에는 새 제품을 사면 혹시 256MB일까 걱정하지 않아도 된다. 하지만 중고로 산다면 살때 램의 크기를 물어봐야 하고 도착한 물건이 Rev1인지 Rev2인지 확인하는 과정이 필요하다. (램이 512MB이냐 256MB 이냐는 정말 큰 차이다.) 또한 Rev1과 Rev2의 GPIO 핀번호가 다르니 개발자 입장에서는 자신의 보드의 버젼을 알아볼 필요가 있다.


1. 라즈비안에서 알아보기

라즈비안으로 부팅해서 CPU 정보를 보면 라즈베리파이 보드의 버전을 확일 할 수 있다. 'sudo /proc/cpuinfo/'를 입력하면 아래와 같이 정보가 출력되는데 Revision을 보면 된다. 필자의 라즈베리파이 보드의 Revision 번호는 000e이다. 아래의 표를 참고하면 000e인 필자의 라즈베리파이는 소니에서 만들어진 B 모델 Rev2(512MB) 임을 알 수 있다.



'Beta' => 'Beta Board'

'0002' => 'Model B Revision 1.0',

'0003' => 'Model B Revision 1.0 + Fuses mod and D14 removed',

'0004' => 'Model B Revision 2.0 256MB', (Sony)

'0005' => 'Model B Revision 2.0 256MB', (Qisda)

'0006' => 'Model B Revision 2.0 256MB', (Egoman)

'0007' => 'Model A Revision 2.0 256MB', (Egoman)

'0008' => 'Model A Revision 2.0 256MB', (Sony)

'0009' => 'Model A Revision 2.0 256MB', (Qisda)

'000d' => 'Model B Revision 2.0 512MB', (Egoman)

'000e' => 'Model B Revision 2.0 512MB', (Sony)

'000f' => 'Model B Revision 2.0 512MB', (Qisda) 


2. 라즈베리 파이 보드를 보고 구별하기

  위에서 알아봤듯이 A모델과 B모델은 생김새가 달라서 알아보기 쉽다. 그러나 B모델이 512MB인지 256MB인지 한눈에 알아보기는 쉽지 않다. 하지만 조금 자세히 들여다 보면 그 차이를 알 수 있다. 아래 두 사진의 중간에 보이는 검은색 네모박스가 메모리다. 큰 그림으로 보면 붉은색으로 밑줄 쳐놓은 곳을 볼 수 있는데 이게 2G(왼쪽) 이냐 4G(오른쪽)이냐에 따라서 왼쪽은 256MB, 오른쪽은 512MB로 구별할 수 있다.

   


참조

RPi.GPIO basics 2 – how to check what Pi board Revision you have

GERTBOARD! AND HOW TO TELL HOW MUCH RAM YOUR PI HAS WITHOUT TURNING IT ON


블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지금까지 22개의 포스트를 통해서 라즈베리파이에 라즈비안을 설치하고 XBMC를 설치하는 등 몇가지 세팅을 해왔다. 한번 세팅을 해놓고 계속 쓴다면 문제될 것 없지만 PC를 포맷하듯 초기화 시키고 싶을 때 혹은 여러대의 라즈베리파이를 세팅해야 할 때 등 전에 세팅해 놓은 것을 그대로 쓰고 싶을 때가 있다. 예를 들어 라즈베리파이 10대에 라즈비안과 XBMC를 설치하고 한글 설정 등 이런 저러 기본 설정을 해야한다고 할 때 하나하나 일일이 세팅을 한다면 매우 오랜 시간이 걸릴 것이다. XBMC 뿐 아니라 다른 기본 프로그램을 설치해야 하고 설치해야하는 라즈베리파이가 10개가 아니라 100개라면 그 일의 양은 기하급수적으로 늘어 날 것이다. 이럴 때 커스트마이즈된 라즈비안 이미지를 이용하면 문제가 쉽게 풀린다. 이번 포스트에서는 라즈비안 백업이미지를 만드는 방법에 대해서 알아보자.


① 백업하기 원하는 SD카드를 윈도우 PC에 마운트 한다.


② Win32 Disk Imager를 실행시킨다. Win32 Disk Imager는 지난 포스트 라즈비안 설치하기에서 라즈비안을 SD카드에 설치하는데 사용했던 프로그램으로 여기에서 다운 받을 수 있다.


③ 아래 그림에서 폴더모양을 클릭해서 이미지를 백업하고자 하는 디렉토리를 찾아 가서 My_Raspbian.img를 입력하고 열기 버튼 누른다.



④ 장치는 에서 마운트한 SD카드를 선택하고 읽기 버튼을 누르면 이미지 백업이 시작된다.


⑤ SD카드의 용량에 따라 십여분 정도 기다리면, 끝!



⑥ 작업이 제대로 완료되었다면 ③에서 지정한 폴더에 My_Raspbian.img가 생성된 것을 확인할 수 있다.


⑦ 이제 생성된 이미지를 이용해서 복구하기만 하면 된다. 복구하는 방법은 지난 포스트 라즈비안 설치하기를 참조하면 된다.


※ 그런데 이미지 파일의 크기가 무려 15기가다.(이것은 SD카드의 용량에 따라 다르다). 압축을 하니 3기가로 줄었지만 여전히 크다. 하드디스크에 백업해놓을때 용량을 더 차지하는 문제 보다 큰 문제는 이렇게 15기가 짜리 이미지를 만들어 놓으면 나중에 8기가나 4기가짜리 적은 용량의 SD 카드에 사용할 수 없다는 문제가 있다. 적은용량의 SD카드가 있다면 이를 이용해서 백업 이미지를 만들어두는 것을 권장한다.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 스마트폰을 XBMC 리모컨으로 사용하기에서는 XBMC 공식 리모컨 사용법에 대해서 알아봤다. 그리고 XBMC에서 쉽게 유튜브 비디오 재생하기에서는 무슨 이유에서인지 XBMC 공식 리모컨에서 유튜브 동영상 재생하는데 문제가 있어서 Yatse를 이용해서 쉽게 유튜브 비디오를 재생하는 법을 알아봤다. 처음에는 당연히 XBMC 공식 리모컨이 더 좋을 거라 생각해서 받아서 썼었는데 Yatse를 써보니 더 많은 기능을 지원하고 좀 더 사용자를 배려한 것 같아서 마음에 들었다. 모든 기능이 무료가 아니라는 점이 아쉬움에도 불구하고 Yatse를 더 선호하게 되었다. 이번 포스트에서는 Yatse가 XBMC 공식 리모컨 보다 나은 점에 대해서 알아보자.

 

1. 유튜브 동영상 플레이

  이거는 XBMC 공식 리모컨에서도 지원하는 기능인데 무슨 이유인지 필자의 스마트폰으로 제대로 돌아가지 않았기 때문에 객관적으로 Yatse가 낫다고 할 수는 없겠지만 필자 사적으로는 Yatse를 사용하게 된 이유이다.

 

2. 잠금화면 제어

  잠금화면 제어는 아이스크림 샌드위치 이후로 생긴 기능으로 알고 있는데 팟캐스트 앱과 같이 미디어플레이어 기능을 사용하는 앱에서 재생중인 미디어를 정지시키거나 일시 정지된 미디어를 다시 재생하는 등 간단한 제어를 아래와 같이 잠금 화면에서 할 수 있게 해주는 기능이다. 감사하게도 Yatse에 이 기능이 옵션으로 들어가 있다. 설정-일반설정-잠금 화면 제어에 체크를 하면 된다.

잠금화면 제어

 

3. 추가기능 라이브러리

  두개의 앱 모두 라이브러리 기능을 제공한다. 하지만 XBMC 공식 리모컨에는 없는 추가기능 라이브러리가 Yatse에는 있다. 왼쪽 아래 사진은 앱에서 XBMC에 깔려있는 추가기능을 불러온 화면이고, 오른쪽 아래는 그중 YouTube 추가기능을 선택했을 때 화면이다. XBMC에서 사용하는 방법 그대로 Yatse에서 쉽게 YouTube 추가기능을 사용할 수 있다.

Yatse 추가기능 Yatse 추가기능

 

4. 가상키보드(한글입력)

  가상키보드를 사용할 수 있다는 점도 Yatse의 큰 장점이다. 아래 사진의 가운데 윗부분을 보면 키보드 같은 모양이 있는데 이를 클릭하면 키보드가 나오고 이걸 이용해서 입력할 수 있다. 이로서 무선 키보드를 사지 않고도 무선 키보드를 이용하는 셈이 되고, 더욱이나 한글 입력이 가능해서 정말 좋다.

 

Yatse 가상 키보드(영문) Yatse 가상 키보드(한글)

 

5. 전원 동작

  또하나 강력한 기능이 바로 종료 기능이다. XBMC 공식 리모컨에서는 XBMC 종료기능만 지원한다. 하지만 Yatse에서는 시스템 종료, 최대 절전, 다시 시작 등 여러 모드의 종료를 지원한다. 시스템 종료나 다시 시작과 같이 sudo 권한이 필요한 기능은 XBMC가 sudo 권한으로 실행되었을 때만 가능하다. 모르는 사람은 이전 글 부팅시 XBMC sudo로 자동 실행을 참조하자.

Yatse 전원 동작

 

  위의 다섯가지 기능 외에도 Yatse에는 좋은 기능들이 많이 있다. 그 중 일부는 돈을 주고 사야해서 사용해보지 못했다. 특히 폰에 있는 동영상을 바로 XBMC로 볼 수 있는 기능은 쓰고 싶은데 무료로 쓰고 있는지라 아쉽다. 리모컨의 음소거 버튼 같이 작은 것에서도 Yatse가 XBMC 공식 리모컨 보다 사용자를 더 배려했다는 점을 알 수 있다. 그리고 마지막으로 Yatse의 디자인이 훨~씬 낫다. 미적감각이라고는 찾기 힘든 필자가 봐도 확연히 드러난다. 이러한 이유로 어떤 리모컨 앱을 써야하는지 고민하는 사람들에가 필자는 Yatse를 추천한다.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트에서 알아봤듯 sudo로 XBMC를 시작하거나 다른 계정으로 새로 시작할 때 또는 새로운 라즈베리파이에 XBMC를 깔 때 설정을 모두 다시 해줘야한다. 하나하나 세팅을 다시하면 시간도 걸리고 귀찮을 것이다. 이럴때 한번에 예전 세팅을 그대로 가져올 수 있다면 얼마나 좋을까? 역시나 사람들의 생각이 비슷한지 이미 그런 기능을 하는 추가기능이 존재했다. 이번 포스팅에서는 이에 대해 알아보자.

 

1. XBMC Backup 추가기능 설치

① 프로그램에 들어가서 아래와 같이 XBMC Backup 추가기능을 찾아서 클릭한다.

 

 

 

② 추가기능 정보 창에 설치를 클릭하면 설치 끝.

 

 

2. XBMC Backup 추가기능 설정 하기

① XBMC Backup에 오른쪽 클릭을 하여 추가기능 설정을 클릭한다.

 

② 원격 경로 유형을 경로 탐색으로 바꾸고 밑에 원격 경로 탐색을 클릭해서 세팅을 저장하고자 하는 디렉토리를 설정해준다.

 

③ 파일 선택에서 백업을 원하는 항목들을 선택한다.

 

3. 백업 하기

 

 

4. 복구 하기

① 새로 세팅하고자 하는 XBMC에 위에서와 같은 방법으로 XBMC Backup을 설치하고 XBMC Backup 설정을 한다.  

② 이번에는 백업이 아닌 복구를 클릭한다.

 

③ 백업된 디렉토리중 원하는 세팅이 백업된 디렉토리를 선택하면 백업이 시작된다.

 

 

④ 복구가 끝났다.

 

  위에 사진에 보니 라이브러리와 디렉토리 설정등이 모두 복구되었다. 그런데 이상한점이 하나 있다. 라즈베리파이를 재시작 했는데도 언어 설정이 영어에서 한국어로 바뀌어야 하는데 그렇지 않다. 확인해보면 XBMC 시스템에서 설정한 모든 것이 복구되지 않았다. 원인을 모르겠다. XBMC Backup 추가기능에 문제가 있는 것인지. 그렇다고 포기할 수는 없다.

 

5. 시스템 세팅 복구 하기

  XBMC Backup 추가기능이 어떤 일을 하는지를 알면 해결의 실마리를 찾을 수 있다. XBMC Backup은 단순히 '.xbmc/userdata/' 밑의 모든 파일을 저장했다가 원하는 곳으로 복사해주는 기능만 하는 듯 보인다. 시스템 세팅이 바뀌지 않았다는 말은 이 중에 어떤 파일을 제대로 복사해주지 못한다는 뜻이다. 바로 그 파일이 'guisettings.xml' 이다.

 

  아래 사진 첫줄에 'sudo find / -name guisettings.xml'는 guisettings.xml이 어느 디렉토리에 있는지 알려주는 명령이다. 아래에서 첫번째 두개는 백업데이터 안에 들어있는 것이고, 세번째는 사용자 pi가 그냥 'xbmc-standalone'으로 XBMC를 실행, 네번째는 사용자가 'sudo xbmc-standalone'으로 XBMC를 실행, 마지막은 부팅시 sudo 권한으로 실행시켰을 때 읽어 오는 세팅 파일이다. 그래서 'sudo cp /home/pi/.xbmc/userdata/guisettings.xml /.xbmc/userdata/guisettings.xml'와 그 밑의 명령어로 복사를 시켜주고 라즈베리파이를 재시작하면 설정이 적용된 것을 확인할 수 있다.

 

 

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 부팅시 XBMC 자동 실행에서 XBMC를 부팅시 자동 실행하는 법에 대해서 알아 보았다. 이번에는 sudo로 XBMC를 자동 실행 하는 방법을 알아 보도록 하겠다. 우선 sudo로 실행하는 것이랑 그냥 실행하는 것이랑 무슨 차이가 있길래 sudo로 실행하려고 하는 것일까? 필자가 sudo로 실행시키려고 하는 이유는 한가지 이다.

 

  필자는 라즈베리파이에 키보드를 항상 달아 놓기를 원하지 않았다. 마땅히 놓을 곳도 없고 아무래도 전기도 조금 더 쓸것이고, 게다가 키보드 하나를 별 쓸일 없는 곳에 묶어두는 것이 못마땅 해서이다. 거의 모든 작업은 XBMC 리모컨으로 할 수 있었지만 XBMC를 종료하면 다시 콘솔로 돌아가서 콘솔에서 라즈베리파이를 끄는 명령어를 입력해야 하니 키보드를 떼어 낼 수도 없는 일이었다. 하지만 sudo 권한으로 XBMC를 실행 시켰을 때는 시스템 종료를 시킬 수 있다.

 

  우선 XBMC 부팅시 자동 실행에서 설명한 대로 라즈베리파이 부팅시 XBMC가 자동 실행되도록 세팅을 한다. 그 후 'sudo nano /etc/init.d/xbmc'를 입력해서 아래 빨간 밑줄 처럼 sudo를 앞에 추가한다. 그리고 재부팅 하면 부팅시 sudo 권한으로 XBMC를 실행하게 된다. 

 

  sudo 권한을 가지고 XBMC가 실행되었다면 아래와 같이 종료버튼을 눌렀을 경우 종료, 시스템 종료, 사용자 지정 종료 타이머, 재시작의 4가지 옵션을 가진 메뉴가 나온다. 시스템 종료를 누를 수 있기 때문에 XBMC를 종료하고 다시 시스템을 종료시키는 번거러움도 없어지고 키보드가 없이도 종료시킬 수 있다.

  그런데 아래 사진을 보면 뭔가 이상하다. 한글 설정이 안되어 있다. 비디오 라이브러리도 없어졌다. 이게 무슨 날벼락인가? 앞에서 설정해놓은 모든 것이 사라지다. 이런 이유는 라즈비안 XBMC는 실행한 사용자마다 세팅을 따로 저장하는데 sudo로 실행하는 바람에 전에 세팅해놓은 것은 다 날아가고 새로 다시 세팅을 해야하게 된 것이다. 아무 세팅도 안한 상태라면 상관 없지만 다시 세팅을 하는 것이 유쾌할 리 없다. 그래서 다음 포스트에서는 다시 세팅을 하지 않고 예전 세팅을 그대로 가져오는 방법을 알아보도록 하자.

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,

  지난 포스트 XBMC에서 유튜브 비디오 재생하기에서 유튜브 비디오가 소리만 나올 때 비디오 나오도록 설정하는 것을 알아보았다. 이제 XBMC에서 유튜브를 재생 시킬 수 있지만 XBMC에서 유튜브 비디오를 검색해서 보는것을 추천하지 않는다. 검색하는데 시간이 많이 걸리기 때문이다. 이번 포스트에서는 유튜브 비디오를 쉽게 볼 수 있는 방법에 대해서 알아보도록 하자.

 

1. 유튜브 계정에 연결해서 보기

  위에서 언급했듯 유튜브 탐색이나 유튜브 추천 동영상을 불러오는데 상당한 시간이 걸린다. 이때 좋은 방법은 스마트 폰이나 컴퓨터에서 유튜브에 로그인 해서 좋아하는 비디오나 나중에 볼 동영상으로 등록해 둔 뒤 XBMC에서 보는 것이다.

 

① 비디오-추가기능-YouTube에 들어온다. 내가 좋아하는 비디오를 클릭하거나 나중에 볼 동영상을 클릭한다.

 

② 리스트에 있는 동영상중 보고싶은 동영상을 클릭하면 재생된다.

 

  위의 방법은 매우 기본적인 것으로 사전에 폰이나 컴퓨터로 먼저 검색하고 난 뒤에 XBMC에서 유튜브 플레이를 하기위해 몇단계를 더 거쳐야 하므로 효율적인 방법은 아니다. 이걸 설명하기 위해서 포스팅 한것은 아니니 바로 이어서 실제로 XBMC에서 효과적으로 유튜브 동영상을 재생하는 방법을 알아보자.

 

2. XBMC 리모컨으로 재생하기

  지난 포스트 스마트폰을 XBMC 리모컨으로 사용하기에서 XBMC 공식 리모컨을 설치하고 사용하는 법에 대해서 알아보았다. 지금 부터 알아갈 방법은 XBMC 공식 리모컨 앱에서도 지원하는 것으로 보이나 무슨 이유에서 인지 필자의 폰과 라즈베리파이에서는 제대로 작동하지 않았다. 그래서 다른 리모컨앱을 찾아보던 중 Yatse라는 앱을 사용해보았는데 XBMC 공식 리모컨 앱보다도 훨씬 사용하기 편하고 유튜브 재생도 가능해서 이 앱을 사용하기로 했다.

 

① Play 스토어에서 Yatse를 설치한다.

Yatse

 

② Yatse를 실행하면 아래와 같은 첫 화면이 표시되고 시작을 누르면 호스트를 추가할 수 있는 화면이 나올텐데 이때 스마트폰을 XBMC 리모컨으로 사용하기에서와 같은 방법으로 호스트를 추가한다.

Yatse 

 

 

③ Yatse의 기능들은 다음 기회에 알아보도록 하고 이번에는 유튜브 재생에 촛점을 맞추고 알아보자. 폰에서 유튜브 앱을 켜고 보고싶은 동영상을 찾는다. 아래 사진에서 붉은색 박스로 둘러싸인 공유 아이콘을 누르면 다음 창이 뜬다.

 

② 아래 사진에서 보면 Play on XBMC와 XBMC로 보내기가 있는데 둘다 같은 기능을 하는 것으로 전자는 XBMC 공식 리모콘, 후자는 Yatse의 기능이다. Yatse의 XBMC로 보내기를 클릭해서 실행시키면 다음 사진처럼 유튜브 스트림을 열어서 재생을 시작한다.

 

블로그 이미지

작은 조약돌

공돌이 형과 글쟁이 동생 쌍둥이 형제의 낙서장

,