top drop menu

Recent Post

레이블이 라즈베리파이인 게시물을 표시합니다. 모든 게시물 표시
레이블이 라즈베리파이인 게시물을 표시합니다. 모든 게시물 표시

목요일, 11월 29

라즈베리파이 구글 어시스턴트–갑자기 에러 gTT관련인듯…

얼마전 까지도 잘 되던게 갑자기 안된다. 이럴때 황당하지 … 처음부터 안되던것도 아니고 아무것도 만진게 없는데 갑자기 안된다. 음성으로 조명 켜기를 시켜 보면 구글 어시스턴트 자체가 꺼져 버린다. 에러는 아래와 같다.


    tkk_expr = re.search(".*?(TKK=.*?;)W.*?", line).group(1)
AttributeError: 'NoneType' object has no attribute 'group'


끝에 저런 에러를 토해내고 중단되어 버린다. 어디서 발생되는 에러인지 찾아 보니 gTTS와 관련이 있는것 같다. 커스텀으로 음성제어 기능을 추가하면서 응답을 gTTS로 하도록 해 놨는데 이부분에서 에러가 나는듯 하다. 검색을 해보니 나만 그런게 아니다. gTTS 서비스에서 뭔가 바뀐게 있는 걸까?

일전에도 비슷한 에러를 만난것 같은데? 그때 찾아 보니 이 이슈는 패치가 되었다고 했었는데…? 음~ 알수가 없다.

이미지 150

/home/pi/env/lib/python3.5/site-packages/gtts_token/gtts_token.py 이 파일의 위 캡처 표시 라인이 문제라고 에러가 나온것이다.

뭐가 문제라는 거야? 잘 동작하다가 왜 ???


문제는 gTTS-token 버전이 업그레이드 되면서 뭔가 발생하는 듯 하다.


https://pypi.org/project/gTTS-token/


업그레이드 된 버전으로 재설치 해주자.

pip uninstall gTTS-token

pip install gTTS-token

이전 버전을 삭제하고 재설치 한다.


정상으로 돌아 옴…

금요일, 11월 16

라즈베리파이 3 A+ 출시

이미지 119
라즈베리파이 새로운 모델이 출시 된 모양이다. 외형이 정사각형이고 파이 3와 비슷한 성능에 조금 저렴한 가격이라고 한다.  라즈베리파이 제로는 성능이 시원찮아서 구입을 망설였는데 이것은 괜찮다.
  • Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz
  • 512MB LPDDR2 SDRAM
  • 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2/BLE
  • Extended 40-pin GPIO header
  • Full-size HDMI
  • Single USB 2.0 ports
  • CSI camera port for connecting a Raspberry Pi Camera Module
  • DSI display port for connecting a Raspberry Pi Touch Display
  • 4-pole stereo output and composite video port
  • Micro SD port for loading your operating system and storing data
  • 5V/2.5A DC power input
이더넷은 없어지고 와이파이 5GH를 지원한다. 음 이거 좋은데 … 사고 싶어 진다.


월요일, 11월 5

NodeMCU(혹 아두이노)를 이용하여 웹소켓 통신하기


이것저것 두서 없이 다루다 보니 웹소켓은 해 본것인지 아닌지 헷갈린다. 중복되면 뭐 어때 자꾸 해봐야 알 수 있는 것인데.
이번에는 NodeMCU에 웹소켓 서버를 설치하고 통신을 시도해 보기로 하자.

20181106_091915

LED 두개를 연결해 두었다. 목표는 웹소켓을 이용 두개의 LED를 제어 해 보는 것이다.
먼저 아두이노 코드를 작성해 보자.
웹소켓에 대한 추가 정보는 아래 사이트에서 확인해 보자.
http://www.websocket.org/aboutwebsocket.html
http://www.zdnet.co.kr/news/news_view.asp?artice_id=20111028085010&lo=zv41


먼저 와이파이 연결을 하도록 설정하자.

#include "ESP8266WiFi.h"
//Wifi 연결하기
const char* ssid = "SSID";
const char* password = "PASSSWORD";
void setup() {
   Serial.begin(115200);
   connectWifi();
  
}
void loop() {
}
//wifi
void connectWifi(){
   Serial.print("Connecting to ");
   Serial.print(ssid);
  WiFi.disconnect(true);
   delay(1000);
   WiFi.begin(ssid, password);
   while(WiFi.status() != WL_CONNECTED){
     delay(500);
     Serial.print(".");
   }
  
   Serial.println("");
   Serial.println("WiFi connected");
   Serial.print("IP Address: ");
   Serial.print(WiFi.localIP());
   Serial.println("");
}

이미지 036

웹소켓 라이브러리를 설치해 주자. 라이브러리 매니저으로 들어 가자.
websockets를 검색해서 설치 해준다. 웹소켓 서버 코드를 작성하자.

#include "ESP8266WiFi.h"
#include "WebSocketsServer.h"
//Wifi 연결하기
const char* ssid = "SSID";
const char* password = "PASSWORD";

//WebSocket
WebSocketsServer webSocket = WebSocketsServer(80);
//Callback function(웹소켓 메세지를 수신하면 실행)
void onWebSocketEvent(uint8_t num,
                     WStype_t type,
                     uint8_t * payload,
                     size_t length) {
   //웹소켓이벤트의 타입
   switch(type) {
     //클라이언트 연결 해제시
     case WStype_DISCONNECTED:
       Serial.printf("[%u] Disconnected!\n", num);
       break;
       //클라이언트 연결시
     case WStype_CONNECTED:
       {
         IPAddress ip = webSocket.remoteIP(num);
         Serial.printf("[%u] Connected!\n", num);
         Serial.println(ip.toString());
       }
       break;
      
     //클라이언트에게 응답을 보낸다.
     case WStype_TEXT:
       Serial.printf("[%u] Text: %s\n", num, payload);
       webSocket.sendTXT(num, payload);
       break;
      
     //기타 필요에 따라
     case WStype_BIN:
     case WStype_ERROR:
     case WStype_FRAGMENT_TEXT_START:
     case WStype_FRAGMENT_BIN_START:
     case WStype_FRAGMENT:
     case WStype_FRAGMENT_FIN:
     default:
       break;
   }
}
void setup() {
   Serial.begin(115200);
   connectWifi();
  //Start websocket server
   webSocket.begin();
   webSocket.onEvent(onWebSocketEvent);//콜백실행
}
void loop() {
   //웹소켓 데이터를 기다림
   webSocket.loop();
}

//wifi
void connectWifi(){
   Serial.print("Connecting to ");
   Serial.print(ssid);
  WiFi.disconnect(true);
   delay(1000);
   WiFi.begin(ssid, password);
   while(WiFi.status() != WL_CONNECTED){
     delay(500);
     Serial.print(".");
   }
  
   Serial.println("");
   Serial.println("WiFi connected");
   Serial.print("IP Address: ");
   Serial.print(WiFi.localIP());
   Serial.println("");
}
<웹소켓 서버 코드>

소켓 데이터 수신을 기다렸다. 접속한 클라이언트 ip를 알려 주고 받은 값을 그대로 클라이언트에게 되돌려 주는 코드이다.
이제 라즈베리파이에서 클라이언트 프로그램을 코딩하자.

이미지 037

라즈베리파이에 파이썬 클라이언트를 만들자. 먼저 websocket-client를 설치해야 한다.
파이썬 2와 파이썬3에서 설치및 사용용어에 차이가 있다. 지금 작업중인 파이썬이 몇 버전인지 먼저 체크하고 파이썬3으로 시작하자.

pip3 install websocket-client

클라이언트 코드는 간단하다.

import websocket
#Connect to websocket server
ws = websocket.WebSocket()
ws.connect("ws://websocket server ip")
print("Connected to WebSocket Server")
#Ask the user for some input
inputStr = input("Say something: ")
ws.send(inputStr)
#Wait for server to respond
result = ws.recv()
print("Received: " + result)
#Socket close
ws.close()


이제 실행해 보자. 파이썬3으로 실행해야 한다.

이미지 038
<NodeMCU 결과>

이미지 039
<라즈베리파이 파이썬 결과>

정상적으로 동작하는 것을 확인 할 수 있다. 이렇게 해서 웹소켓을 통해 소켓통신이 가능해 졌다. 이제 이것으로 좀 더 응용을 해 보기로 하자.

다음편에 계속 …

토요일, 11월 12

라즈베리파이에 MJPG-Streamer 설치하고 동작 시키기

파이 케마라를 달았으니 이제 웹스트리밍을 해 보자. 카메라가 설치 된 라즈베리파이 자체에서 보는게 아니라 다른 컴퓨터나 외부에서 카메라 영상을 실시간으로 확인 할 수 있도록 하는 것이다. 쉽게 말해서 라즈베리파이을 실시간 CCTV처럼 활용할 수 있게 된다는 것이다. 정말 CCTV기능을 원한다면 CCTV로 나온 기기를 사는게 나은 선택이겠지만 라즈베리파이의 다양한 활용방법을 배워 보는것도 의미 있는 일이라고 생각된다.
라즈베리파이에서 스트리밍을 할 수 있는 여러가지 툴들이 있지만 여기서는 MJPGE-Streamer를 이용해 보자. 단계별로 설치와 동작 시키는 방법에 대해 알아 보자.

1. MJPG-Streamer에 필요한 몇가지 라이브러리 설치
$ sudo apt-get install libjpeg8-dev imagemagick libv4l-dev

2. 변경된 Videodev.h 심볼릭 링크 걸기
$ sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

3. MJPG-Streamer 다운로드 하기
$ wget http://sourceforge.net/code-snapshots/svn/m/mj/mjpg-streamer/code/mjpg-streamer-code-182.zip
* 다운로드가 제대로 되지 않은다면 https://sourceforge.net/p/mjpg-streamer/code/HEAD/tarball 에서 수동으로 다운로드 받아서 설치하자.

4. 압축 풀기
$ unzip mjpg-streamer-code-182.zip

5. 빌드
$ cd mjpg-streamer-code-182/mjpg-streamer $ make mjpg_streamer input_file.so output_http.so

6. 인스톨 MJPG-Streamer
$ sudo cp mjpg_streamer /usr/local/bin $ sudo cp output_http.so input_file.so /usr/local/lib/ $ sudo cp -R www /usr/local/www

모두가 자동 인스톨이 아니라서 수동으로 몇가지 파일을 적절한 곳에 카피 해줘야 한다. 어쨌든 이것으로 설치는 완료 되었다. 이제 카메라를 시작하면 된다.

7. 카메라 시작
$ mkdir /tmp/stream $ raspistill --nopreview -w 640 -h 480 -q 5 -vf -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th0:0:0 &

스트리밍에 필요한 폴더를 하나 만들어 주고 이 예제에서는 /tmp/stream이라는 폴더를 지정했다. raspistil를 각자의 옵션에 따라 백그라운드로 실행한다.raspistill 뒤에 따라 오는 옵션들은 각자의 상황에 맞게 재설정 해주면 된다. -q는 사진 퀄리티 0~100사이, -o는 파일 저장, -tl은 타임랩스 몇조마다 찍을 것인지 1000이 1초이다. -t는 작동시간? 설정하지 않으면 5초라고 한다. 무한정 작동되는게 아니란 말인가? 이부분은 좀 더 알아 보자. -th는 썸네일 크기이다. w:h:quality 필요없으니 모두 0으로 설정되어 있다.개인적으로는 카메라를 거꾸로 달았 놓아서 재생시 영상을 뒤집어 주도록 옵션(-vf)을 추가해 주었다. 

파이 카메라는 계속해서 열심히 사진을 찍어서 임시 폴더에 저장을 한다. 스틸사진을 찍고 그사진을 연속적으로 전송해서 동영상 처럼 보이게 하는 방식인듯 하다. 어차피 동영상이라는게 움직이는 스틸사진이잖아. ^^

8. MJPG-Streamer를 시작한다.
LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "input_file.so -f /tmp/stream -n pic.jpg" -o"output_http.so -w /usr/local/www"


서버 실행 옵션이 좀 복잡하다. 일단 그대로 실행하자. 자세한 것은 다음에 천천히 알아 보자. 이제 라즈베리파이에서 할 것은 이것이 전부이다. 클라이언트 컴에서 웹브라우저를 통해 영상을 확인하면 된다. 

http://자신의라즈베리파이ip주소:8080 으로 접속하면 된다. 그럼 아래 그림 처럼 접속이 된다.



그런데 좀 불편한 점이 있다. 매번 위에서 했던 긴 명령어를 입력해야 하는것은 문제이다. 좀 간단한 방법이 있다. 실행 스크립트를 만들어 놓으면 실행하기가 쉽다.

<스트리밍 시작 스크립트>

#!/bin/bash

if [ ! -d /tmp/stream ]
then
mkdir /tmp/stream/
fi

if pgrep raspistill > /dev/null
then
echo "raspistill already running"
else
raspistill -w 640 -h 480 -q 5 -vf -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 -n > /dev/null 2>&1&
echo "raspistill started"
fi

if pgrep mjpg_streamer > /dev/null
then
echo "mjpg_streamer already running"
else
LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "input_file.so -f /tmp/stream -n pic.jpg" -o"output_http.so -w /usr/local/www" > /dev/null 2>&1&
echo "mjpg_streamer started"
fi 




----------------
<중지하는 스크립트>

#!/bin/bash 

if pgrep raspistill 
then 
kill $(pgrep raspistill) > /dev/null 2>&1 
echo "raspistill stopped" 
else 
echo "raspistill not running" 
fi 

if pgrep mjpg_streamer 
then 
kill $(pgrep mjpg_streamer) > /dev/null 2>&1 
echo "mjpg_streamer stopped" 
else 
echo "mjpg_streamer not running" 
fi 



---------------
위 파일들을 적당한 곳에 저장해 놓고 파일에 실행권한을 부여하고 
$chmod +x filename.sh

$sh start_stream.sh
$sh stop_stream.sh


* 외부에서 접속해서 확인 하고 싶다면 사용중인 공유기에서 DDNS 설정과 포트포워딩을 해주면 된다. 자세한것은 다른 글을 검색해서 설정하자. 여기서는 다루지 않는다.

화요일, 8월 23

WebioPi와 UV4L를 이용하여 라즈베리파이 파이카메라 스트리밍 컨트롤러 만들기(3)

WebIOPi는 웹상에서 라즈베리파이의 GPIO를 컨트로할 수 있게 해준다. 라즈베리파이2에는 대응하지 않는다고 하지만 소스를 수정하면 사용이 가능하다고 한다. 지금은 상관 없는 일이다.

http://webiopi.trouch.com/DOWNLOADS.html

에서 최신 파일을 다운로드 받을 수 있다. wget이 안되서 여기서 다운로드 받아서 라즈베리파이에 옮겨 놓았다.

$ tar xvzf WebIOPi-x.y.z.tar.gz
$ cd WebIOPi-x.y.z

*추가사항 : 라즈베리파이 2에서 Webiopi를 사용하기 위해서 패치를 해줘야 한다.

$ wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch

$ patch -p1 -i webiopi-pi2bplus.patch
$ sudo ./setup.sh

※ webiopi를 설치 하고 나서 기본적으로 실행되는 웹서버 문서 위치는 /usr/share/webiopi/htdocs 이다. 이곳에 이동해서 보면 index.html 등 브라우저 접속해서 보이는 것들이 위치해 있다.

$ sudo /etc/init.d/webiopi start

부팅시 자동 실행 되게 할려면

$ sudo update-rc.d webiopi defaults

그리고 웹브라우저에서 라즈베리파이의 주소에 포트 :8000 으로 접속하면 된다.

※ Webiopi를 디버깅 모드로 실행하는 방법은
$ sudo webiopi -c /etc/webiopi/config -d 로 실행해 주면된다. 터미널에 메세지가 출력된다.

이렇게 해서 필요한 3가지를 모두 설치했다.
웹화면은 이전에 만들어 놓았던것을 그대로 활용했다. 예전에 작업했던것과 다를게 없다. 단지 영상만 UV4L을 이용한것으로 바꾸어 준 셈이다. 백업을 제대로 안해서 중간 작업단계의 것인듯 ... 음~




상단의 스트리밍 영상은 UV4L를 이용한 것이다. 영상과 모터 움직이는것은 관련성이 별로 없다. 카메라 움직이는대로 영상을 스트리밍 할 뿐이다.
WebioPi 스크립트도 이전에 것을 그대로 사용했다. 거의 다시 타이핑했다. 스트리밍 영상을 웹페이지에 끼워 넣는것은 쉽다. http를 지원하는(?) 스트리밍이기 때문에 그냥 소스 한줄이면 웹페이지에서 보인다.
<img src="http://raspberrypi-ip:8080/stream/video.mjpeg">


그냥 이미지 태그에 소스에 링크만 걸어 주면 된다. 물론 UV4L이 정상적으로 설치되고 설정이 되어 있어야 겠지만 ... 컨트롤러 부분을 살펴 보자.
이 부분은 WebioPi서버를 이용해서 파이썬 스크립트에 동작함수를 실행하게 해서 모터를 원하는 방향으로 움직이게 하면 된다.  파이썬에서 모터를 동작하게 하는것은 터미널에서 echo 0=150 > /dev/servoblaster 해서 모터를 움직이듯이 버튼에 따라 터미널에 명령을 주어 실행하게 하는 방식을 사용했다.

call("sudo echo 0=150 > /dev/servoblaster", shell =  True)
한줄이면 파이썬에서 모터를 움직이게 한다. sudo는 안해 줘도 되나?
버튼에 따라 패닝과 틸트 동작을 하게 하고 사각버튼은 기본위치로 돌아 가게 했다. auto scan은 자동으로 좌우로 움직이게 했다. 속도바를 조절하면 움직이는 속도가 변경된다. WebioPi를 이용하면 웹페이지에서 함수를 실행할때 인자를 같이 볼 수 있다. 속도의 변경값을 보내서 모터의 움직임을 조절하는 것이다.
맨 하단에 on/off버튼이 있는데 이게 좀 말썽이다. 어떤 기능을 줘야 하는지 명확하지 않다. 뭘 끄고 뭘 켜는 거지? ㅋㅋ 일단 영상과 서보모터의 동작을 끄거나 다시 켜는 것으로 해주었다. 그런데 영상 부분이 원하는대로 잘 안된다. UV4L 서비스를 중단하고 가동하는게 잘 모르겠다. 음~

전체적으로 이 프로그램이 동작하는 방식에 대해서는 더 고민을 해봐야 겠다. 라즈베리파이가 부팅하면 WebioPi는 자동으로 실행되게 해주었다. 그래야 브라우저에서 접속을 하니깐. 그런데 자동으로 영상을 보일것인지 서보블라스터를 가동해야 할지? 이 라즈베리파이가 딱 이 목적을 위한것이면 모두 부팅시 실행되게 해주면 고민 끝이지만 이런 저런 용도로 사용해야 한다면 사용하지 않을때는 쓸데없이 이런 서비스를 가동시켜 놓을 필요가 없기 때문이다. 이부분은 일단 두고 보자.


이렇게 작업한 것이 실제로 쓸만하지는 객관적으로 판단하기는 힘들다. 일단 라즈베리파이가 구모델 이라는 점과 일반 광랜에 유선도 아닌 무선랜을 사용하는 있으니 성능이 떨어지는것은 당연한 것 같기도 하다. 잠깐 야외에서 LTE로 접속해서 보니 자연스러운 동영상 스트리밍을 기대하기는 힘든것 같다. 역시 폰에서는 그냥 JPEG로 한장 한장 보는게 나을듯 하다. 일단 이정도에서 마무리~

WebioPi와 UV4L를 이용하여 라즈베리파이 파이카메라 스트리밍 컨트롤러 만들기(2)

이제 서보모터를 쉽게 컨트롤 할 수 있는 Servoblaster를 설치해 보자.

$ git clone https://github.com/richardghirst/PiBits
Pi계정 홈디렉토리 다운로드 받는다.

$ cd PiBits/ServerBlaster/user/
이동

$ sudo make install
데몬이 설치되고 실행이 된다. 단순 라이브러리 개념이 아닌듯 하다. 데몬이 항상 떠 있어야 한다.
사용법은 간단하다. 서보블라스터에서 라즈파이의 핀들을 자기들 번호로 매핑을 해 놓았다. 그 번호를 잘 맞춰서 핀번호=위치값을 파일로 저장하는 듯 하다. 그럼 데몬이 주시하고 있다가 모터를 작동시키는 것 같다. 떨림도 없고 간편하고 좋은것 같다.


sudo ./servod 해보면 어떤 핀번호를 사용해야 할지 알 수 있다. servod이게 정확히 어떤 역활인지는 모르겠다. 핀을 관리 하는것 같기도 하다. 어쨌든 나는 모터 두개를 GPIO-23과 GPIO-24에 연결해 놓았다. 그럼 서보블라스터 기준으로 봐서 5번과 6번이다. 이제 모터를 돌려 보자.

$ echo 0=150 > /dev/servoblaster
$ echo 1=150 > /dev/servoblaster

컨멘트 라인에 입력해 주면 모터가 동작하는 것을 확인 할 수 있다.

더 자세한 내용은 아래 링크에서 확인해 보자.

https://github.com/richardghirst/PiBits/tree/master/ServoBlaster

<다음편에서 계속>

WebioPi와 UV4L를 이용하여 라즈베리파이 파이카메라 스트리밍 컨트롤러 만들기(1)

이 글에서는 WebioPi와 UV4L를 이용해서 파이카메라를 조작하여 원하는 방향을 촬영할 수 있도록 만들어 보자. 이 작업을 위해서는 아래 3가지를 설치해야 한다.

1. UV4L 설치하기
2. Servoblaster 설치하기
3. WebioPi설치하기

UV4L은 파이카메라의 비디오를 스트림하는 역활을 한다. Servoblaster는 파이카메라를 움직이는 서보모터 두개를 쉽게 조작할 수 있도록 해준다. WebioPi는 라즈베리파와 웹브라우저간에 통신을 하게 해서 영상과 컨트롤 정보를 주고 받게 해준다. 하나씩 설치해 보자.

1) UV4L 설치

http://www.linux-projects.org/

위 링크에 상세한 설치 방법이 소개되어 있다. 간단히 적어 보면 아래와 같다.

$ curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -

$ sudo nano /etc/apt/sources.list 파일을 열어서 아래 한줄 추가해 주자.(자신의 설치 버전에 따라 다름)
deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main

$ sudo apt-get update
$ sudo apt-get install uv4l uv4l-raspicam

$ sudo apt-get install uv4l-raspicam-extras
부팅시 모듈을 자동으로 드라이버를 로드하게 할려면  extras 패키지를 설치한다. 또한 서비스를 시작, 중지 재시작등의 편리한 기능을 제공한다.
편하게 살려면 해지...

$ sudo service uv4l_raspicam restart (서비스 실행하기)
서비스가 시작되면 기본적으로 UV4L은 /etc/uv4l/uv4l-raspicam.conf 파일을 참조해서 실행이된다. 기본값을 변경하고 싶다면 이 파일을 원하는대로 수정하면 된다. 해상도나 화면 반전등 다양한 옵션을 변경해 주면 된다. 이것은 나중에 웹페이지로 접속해서 변경을 해줄도 있는것 같다. 수동으로 실행할때 추가해 줄 수도 있다. 이 값을 초기 실행될때의 기본값이 들어 있는 파일인듯 하다.

$ sudo nano /etc/uv4l/uv4l-raspicam.conf


파이카메라가 준비 되었다. 테스트로 JPG 사진을 찍어 보자.

$ uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding jpeg
(이건 앞에서 extras를 설치하지 않고 수동으로 직접 로드해주는 방식이다. 아니면 다시 옵션을 다르게 해서 실행하고 싶을때 해 줄 수 있다. 파이 카메라를 어떤식으로 작동 시킬것인지 설정해 주는것 같다.)

$ dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1 (찰칵!)
스트리밍 및 추가 기능을 사용하기 위해 아래 것들을 모두 추가 설치해 주자. 뭔지 정확히 모르겠지만 일단 모두 설치해 주자.

$ sudo apt-get install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy

$ pkill uv4l
실행중인 프로세스를 죽이는 명령이다.  앞의 설정을 지우고 다시 로드 하고 싶을때도 사용하면 되는것 같다. 즉, 뭔가 제대로 동작을 않을 때도 죽였다 다시 실행해 주자.
이렇게 하면 UV4L 코어 컴포넌트와 V4L2 드라이버 설치가 마무리된 것이다.
이제 웹브라우저에서 http://raspberrypi_ip:8080 으로 접속해보자. 다양한 옵션이나 기능을 보다 쉽게 이용하거나 변경해 줄 수 있다.



위 페이지로 접속한다. 터미널로 일일히 타이핑하는것보다 사용하기 쉽다. MJPEG/Stills stream을 선택하면 스트리밍되는 영상을 웹브라우저에서 확인할 수 있다. 크롬이나 파이어폭스에서 가능하다. 문제의 MS 익스플로러에서는 안되는것 같다. 안드로이드 폰 웹어플에서도 가능하다. Control Panel 아이콘을 선택하면 앞에서 해줬던 이런 저런 설정을 바로 변경해 줄 수 있다. 다른 아이콘 메뉴들은 개인적으로는 거의 사용할리 없거나 상관없는 것들이다. 일대일 혹은 다자간 화상회의 같은게 가능하다는 것 같다.
최신 기술로 WebRTC라는게 있는데 이게 라즈베리파이1에서는 안된다는 것 같다. 파이2부터는 된다고 ... 이런! 이건 포기하자.


해상도를 변경하고 화면 밝기나 콘트라스트 조절, 상하, 좌우 반전하기 등 잡다한 옵션을 설정할 수 있다. 역시 눈으로 보고 하는게 편하다. 파이카메라를 뒤집어 장착해 놔서 화면을 반전해주는 옵션을 선택했다. fullHD등 고해상도도 지원하지만 아무래도 재생 성능이 떨어지는 듯하다.



정확한 테스트인지는 모르겠지만 대략 가늠해 볼 수 있을듯 하다. 라즈베리파이에는 무선랜을 사용하였다. PC의 파이어폭스 브라우저로 접속하여 테스트 해 보았다. 스트리밍 해상도를 FullHD -> HD -> SD로 바꾸어 가며 촬영하였다. 이건 PC의 성능과도 연관이 좀 있을것 같고 ... SD급으로는 거의 지연없는 스트리밍이 가능해 보인다.
재미 있는 기능도 들어 있다. 바로 얼굴인식 ... 브라우저에서 컨트롤판넬에서 object/face detection에 사용함으로 변경해 주거나 아래 명령으로 실행해 주면 된다.

$ uv4l --driver raspicam --auto-video_nr --object-detection --min-object-size 80 80 --main-classifier /usr/share/uv4l/raspicam/lbpcascade_frontalface.xml --object-detection-mode accurate_detection --width 320 --height 240 --framerate 15 --encoding h264

이렇게 해서 파이카메라 사용과 영상 스트리밍을 위한 UV4L 설치와 설정에 대해 알아 보았다.

<다음편에 계속>


수요일, 8월 17

라즈베리파이에게 이동의 자유를 - 무선랜 설치하기 iptime N100 mini - AP



유선랜이 속도면에서 안정적이고 빨라서 좋기는 하지만 유선의 불편함은 어쩔 수 없다. 라즈베리파이를 다목적으로 활용하기 위해서는 이동을 자유롭게 해야 한다. 그래서 유선랜 대신 USB방식 무선랜을 설치하고 설정해 보기로 하자. 전원은 샤오미 배터리팩으로 하면 된다.
일단 유선랜으로 연결된 상태에서 무선랜을 USB포트에 연결하자. 라즈베리파이에서 이 장치를 제대로 인식을 하고 있는지 확인해 보자.
$ lsusb



Realtek 어쩌고 저쩌고 .... 제대로 붙었다.
wifi동글이 제대로 인식이 되었는지 확이해 보자.
$ iwconfig



wlan0 이라고 제대로 인식이 되어 있은것을 확인할 수 있다.
이제 주변 AP를 검색해 보자. 여기서 자신의 공유기를 찾는 과정이다.
$ iwlist wlan0 scan



자신의 공유기 이름과 암호방식을 확인해 둔다.



$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
파일을 열어서 아래 내용을 추가해 주자. 여기서 다른 파일 이름을 지정해 주고 복잡하게 설정하는게 있던데 보안면서 그게 더 좋은지 모르겠지만 간단하게 가자.

network={
    ssid="자신의 공유기 이름"
    psk="공유기접속 암호"
    key_mgmt=WPA-PSK
}



저장하고 빠져 나오자.
$ sudo ifdown wlan0
$ sudo ifup wlan0
랜카드를 재시작 해주자.
$ ifconfig 해서 wlan0에 제대로 ip를 부여 받았는지 확인한다. 제대로 되지 않는다면 라즈베리파이를 재부팅 한번 하자. 이제 유선랜은 뽑아 버리고 무선랜으로 라즈베리파이를 즐길 수 있게 된다.


월요일, 8월 15

라즈베리파이에 서보모터 컨트롤을 위한 서보블라스터(Servoblaster) 설치하기

파이카메라를 움직이기 위해 서보모터를 달아 놓았다. 모터를 컨트롤 하기 위한 '서보블라스터'를 설치해 보자.
먼저 github로 부터 프로젝트를 복사해야 한다.

pi@raspberrypi:~ $ git clone https://github.com/richardghirst/PiBits


pi@raspberrypi:~ $ cd PiBits/ServoBlaster/user/

user폴더 까지 이동한다.

pi@raspberrypi:~/PiBits/ServoBlaster/user $ sudo make install


설치가 끝났다. 그리고 데몬이 시작 되어 있다. 이제 모터를 컨트롤 할 수 있게 되었다.

pi@raspberrypi:~ $ echo 0=150 > /dev/servoblaster


연결된 모터의 인덱스 번호와 위치값을 주면 해당 위치로 모터가 회전한다. 간단하다. 패닝동작을 하는 모터 한개를 서보블라스터 0번에 해당하는 라즈베리파이의 GPIO 4번핀에 연결했다. 틸트 역활을 하는 모터를 추가로 연결한다면 1번에 연결하면 된다.


좀더 최적화 하는 방법이 있지만 일단 이 상태로 테스트를 할 수 있다.


간단히 동작하는 모습. 이제 이런저런 프로그램에 모터를 컨트롤 할 수 있도록 작업을 하면 된다. 다음 프로젝트로 CCTV 처럼 원하는 방향으로 카메라를 회전하는 기능을 만들어 보자.
여기까지 서보블라스터를 설치하고 동작하는 방법에 대해 알아 보았다.



목요일, 8월 11

라즈베리파이에서 V4L2 - RTSP 서버로 비디오 스트리밍하기

Live555를 사용하여 비디오 스트리밍을 해 봤지만 결과가 신통찮았다. 그래서 다른 솔루션을 찾아 보니 다른게 또 있다. 음~ 이것도 하번 해보자. 언제까지? 제대로 될때까지... 왜 이걸 할려고 하는지 깜빡 할때가 있기는 하지만.
V4L2는 카메라 입력을 받기 위한 표준 인터페이스이다. 이번에는 이녀석을 이용해서 동영상 스트리밍을 해보자.

$ sudo apt-get update
$ sudo apt-get upgrade

update만 해 주었다.

$ sudo apt-get install v4l-utils
$ sudo modprobe bcm2835-v4l2 (일회성 실행인듯)

필요한 유틸을 설치(기본적으로 설치는 되어 있는듯 하다)하고 모듈을 실행한다.
이미 설치 되어 있을 수도 있다.


제대로 설정 되었는지 확인해 보자.
계속해서 bcm2835-v4l2를 사용하겠다면 modules에 등록을 해 놓아야 한다.

$ sudo nano /etc/modules
-> bcm2835-v4l2 추가해 준다.

이제 RTSP 서버를 다운받아서 설치해야 한다.

$  sudo git clone https://github.com/mpromonet/h264_v4l2_rtspserver.git
*git가 설치 되어 있지 않다면 먼저 git를 설치해 줘야 한다. 검색해서 참조할것.
$ sudo apt-get install liblivemedia-dev libv4l-dev cmake libasound2-dev

의존성에 필요한 것들(3개)을 추가로 미리 설치해 준다. libasound2-dev 라이브러리를 추가해 주었다. 이것 때문에 에러가 생긴듯 하다.

$ cd h264_v4l2_rtspserver

위에서 다운로드 했던 V4L2-rtspserver 디렉토리로 들어간다.

$ sudo cmake . (끝에 점을 빼 먹지 말자.)
$sudo make
이제 모든 설치가 완료 되었다. 이제 서버를 실행하면 된다.
지금 작업했던 디렉토리에서 실행되어야 한다. 나중에 다시 실행하더라도 이곳으로 이동하거나 경로를 적어 줘야 한다.

pi@raspberrypi:~/h264_v4l2_rtspserver $  sudo ./h264_v4l2_rtspserver -F 25 -W 1280 -H 720 -P 8555 /dev/video0
이제 클라이언트 RTSP 지원 플레이어에서 주소를 열어 접속한다. PC에서 다음팟플레이어를 실행하고 주소열기 창을 열어서 아래 주소를 입력해 준다.


rtsp://raspberrypi-ip:8555/unicast

로 접속하면 영상을 확인 할 수 있다.



RTSP Player 라는 안드로이드 어플로도 접속해 보니 정상적으로 잘 나온다.



- Live555보다 딜레이가 짧고 안정적인듯 하다.
- 하지만 GStreamer보다는 딜레이가 길다.
- 영상을 flip하는 하는 옵션은 뭣인가?
- 안드로이드에서도 딜레이가 더 있지만 Live555 처럼 끊기거나 중단되는 현상은 없는것 같다.
- 또 다른 RTSP 서버를 찾아 봐야 하나? GStreamer가 제일 나은듯 보인다.


*참고

V4L2를 사용하려고 보니 카메라가 뒤접혀 있어서 영상이 또 상하좌우 바껴 있다. 이걸 어떻게 정상으로 뒤집어야 하나 찾아 봐도 정보를 찾기 쉽지 않다. 방법은 v4l2-ctl --set-ctrl 옵션지정 방식으로 다양한 영상 효과를 줄 수 있다. 자세한 목록은 파일로 첨부 하였다.

$ v4l2-ctl --set-ctrl horizontal_flip=1 (수평으로 영상을 반전 시켜 준다. 기본값은 0 이다.)
$ v4l2-ctl --set-ctrl vertical_flip=1





일요일, 7월 31

라즈베리파이 Openelec에 날짜/시간 정보 오류가 날때 조치 방법

Openelec을 사용하다 보면 가끔 날짜와 타임정보가 초기화 되어 잘못 표시 되어 Kodi를 제대로 사용할 수 없게 되는 경우가 있다. 스킨에서 시간대가 한국어 서울로 설정되어 있음에도 오류가 난다. SSH로 접속하여 명령을 주는 방법도 있지만 쉽게 Kodi에서 해결하는 방법을 알아 보자.


간단하다. 시스템 > 오픈일렉 으로 들어가서 네트워크 탭에서 NTP Server의 타임서버를 추가해 주면 된다. pool.ntp.org 라고 추가해 주자.
시간이 제대로 표시가 된다.

목요일, 7월 28

라즈베리파이에 파이카메라 연결하기




파이카메라 케이블을 라즈베리파이에  연결했다. 케이블의 파란색이 이더넷 커넥터가 있는 방향으로 가도록 해서 연결하면 된다. 이제 라즈베리파이에서 카메라를 사용할 수 있도록 설정을 변경해 주면 된다.

$ sudo apt-get update
$ sudo apt-get upgrade

최신 환경이 되도록 업그레이드를 한번 해 주자.

$ sudo raspi-config 하면 설정화면이 나온다.


이제 카메라 모듈을 사용할 수 있는 기본 환경이 되었다. 동작이 잘 안되면 재부팅을 한번 해주자. 안해도 작동이 되었지만 ...
스틸사진을 한장 찍어 보자.

$ raspistill -o test.jpg

test,jpg라는 파일로 사진이 저장된다.
동영상도 찍어 보자.

$ raspivid -o sample.h264 

sample.h264라는 이름으로 동영상 파일이 만들어지는 것을 확인할 수 있다. 기본값을 이용하는 것이고 스틸이미지나 동영상 촬영시 다양한 옵션을 줄 수 있다. 영상의 크기나, 뒤집기, 밝기나 촬영 시간등등...

-o test.jpg 파일명으로 저장공간에 사진 저장
-t 5000 5초간 영상을 녹화한다.
-hf 화면을 수평으로 반전
-vf 화면을 위아래로 반전


파이카메라를 설치 하였으니 이제 다양한 방법으로 카메라를 사용해 볼 수 있다. 파이썬을 이용해서 파이카메라를 제어 할수도 있고 여러가지 방법으로 스트리밍 영상으로 원격에서 확인하는 것도 가능하다.




화요일, 7월 26

라즈베리파이 - FTP 서버 설치하고 설정하기

라즈베리파이에 FTP서버를 설치하고 설정해 보자. vsftpd를 설치한다.
$ sudo apt-get install vsftpd
$ sudo nano /etc/vsftpd.conf 설정 파일을 수정해준다.



* anonymous_enable = NO //익명사용자 접속 제한
* local_enable = YES //로컬 사용자 접속 허가
* chroot_local_user = YES
* chroot_list_enable = YES

* chroot_list_file = /etc/vsftpd.chroot_list //사용자 등록 파일

사용자 파일을 만들고 사용자를 등록해 준다. 등록된 사용자 이외의 사용자는 자신의 홈디렉토리 상위의 디렉토리로 이동을 할 수 없게 된다. pi사용자만 등록 해 두었다.


$ sudo nano /etc/vsftpd.chroot_list


ftp서버를 재실행해 준다.
$ sudo service vsftpd restart
이제 '파일질라'를 실행하고 접속 가능한지 테스트 해 본다.

스마트폰으로 SSH로 라즈베리파이에 접속하기

라즈베리파이에 라즈비안을 성공적으로 설치했다. 대부분의 작업이야 PC를 통해 하겠지만 가끔 스마트폰으로 할 필요가 있다. 이 팁에서는 스마트폰을 이용 라즈베리파에 SSH로 접속하는 방법에 대해 알아 보자. 먼저 스마트폰에 SSH 클라이언트 어플을 설치해 줘야 한다. 여러가지가 있지만 JuiceSSH 라는 어플을 설치하였다. 괜찮다.

<자신에게 맞는 어플을 선택 설치하면 된다.>

<JuiceSSH Client를 설치했다.>



<라즈베리파이 서버 정보를 입력한다.>

<기본 계정 정보를 입력한다. pi/raspberry 가 기본값이다.>

<접속한 상태>

<하단을 탭하면 기능키를 볼 수 있다.> 

접속한 상태에서 폰트 글자를 변경하고 싶다면 폰의 볼륨키를 이용하면 폰트크기를 조절할수 있다. 어플 설정 메뉴에서도 변경이 가능하다.


구형 라즈베리파이에 라즈비안(Raspbian Jessie) 설치하기

라즈베리파이2를 다시 미디어센터 OpenElec을 설치해서 사용하기로 하고 구형 라즈베리파이를 가지고 또 뭔가 이것 저것 해보기 위해 라즈비안을 설치하기로 했다. 뭐하는 짓인지... ㅋ 슬슬 심심해 지기도 하고 ... 날도 더운데 뭔가에 집중해 보는것도 피서법이 아닌가 싶기도 하다.

<PC에서>
먼저 최신 라즈비안을 다운로드 받아 놓자. 아래 링크에서 받으면 된다.

https://www.raspberrypi.org/downloads/raspbian/


용량이 꽤 된다.
다음엔 SD카드를 포맷하고 준비하자.

SDFomatter라는 유틸리티를 이용하면 된다. 아래 링크에서 다운로드 받을 수 있다.

https://www.sdcard.org/downloads/formatter_4/eula_windows/index.html


포맷을 한다. 다음 단계로 Win32 Disk Imager로 SD카드에 이미지파일을 설치해 보자.
아래 링크에서 다운로드 할 수 있다.

https://sourceforge.net/projects/win32diskimager/




이미지 파일을 선택하고 Write버튼을 클릭한다. 이렇게 하면 PC에서 할 작업은 끝이다. 이제 SD카드를 라즈베리파이 슬롯에 장착하고 전원을 넣어 주면 된다.


<라즈베리파이에서>
이제 라즈베리파이에 모니터, 키보드, 마우스, 랜선등을 모두 연결하고 나머지 설치와 설정을 해주면 된다.

부팅이 되면 터미널창을 하나 열어서
$ sudo raspi-config 를 실행하자.


Expand Filesystem 을 해줘야 SD카드 전체 용량을 사용할 수 있다. 필수적으로 해줘야 한다. 기타 언어나 키보드등을 설정해 주자.

재부팅한다.

금요일, 7월 8

미니 PC 라즈베리파이를 구입하고 설치하기 - Raspberry Pi v.2

* 이 자료는 2013년에 작성된 글이라서 지금은 설치 방식이나 과정이 조금 달라 졌을 수 있습니다. 

DLNA관련 정보를 찾아 보다가 대박 제품을 발견했다. 바로 '라즈베리 파이'라는 것이다. 일명 미니PC라고 하는 것으로 저렴한 가격으로 엄청난(?) 성능을 보여주는 신기한 제품이다. 

라즈베리파이의 대한 소개
Raspberry Pi는 영국의 라즈베리 파이 재단이 학교에서 기초 컴퓨터 과학 교육을 증진시키기 위해 만든 싱글 보드 컴퓨터라고 한다. 
어떤 기능을 할 수 있는지 알고서는 머리속에 바로 이거다 싶은 생각이 들었다. 그동안 오래된 TV에 DLNA기능을 활용하려고 가능한 방법을 무단히 찾아 다녔는데 이거면 모든 문제점들이 해결되면서 원하는 결과가 될듯 했다. 그래서 생소하지만 한번 만들어 보기로 했다. 뭐든 그렇지만 이런 저런 옵션 제대로 갖추면 배보다 배꼽이 커지는게 당연하다. 그렇게 까지 하면 의미가 없기 때문에 가능한 가지고 있는 부속품들 재활용을 해서 저렴한 비용으로 만들어야 겠다는 계획을 세웠다. 그렇지만 그렇게 잘 안된다는 게 ... ^^; 

필요한 것들 
1. 라즈베리파이 본체 - 이건 반드시 구입
2. SD메모리 카드 - 카메라용으로 가지고 있는 16기가 메모리카드(임시) 
3. 유선랜 케이블 혹은 무선랜카드 - 일단 유선랜으로 연결
4. 키보드 - 유선 키보드 있음
5. 마우스 - 유선 마우스 있음
6. HDMI 케이블 - 가지고 있음
7. 모니터 OR TV - 컴포넌트 단자로 연결 가능한 중국제 LCD TV(HD급) + HDMI->컴포넌트 변환기
8. 케이스 - 종이박스로 DIY - 두꺼운 종이 재료 문방구에서 구입할것.
9. USB 전원 어답터 - 사용 안하는 모트글램 USB 전원 어답터 5V / 850mA
10. HDMI to DVI 케이블 - 모니터와 연결을 위해 구입
11. 8G SDHC class10 - 추가구입. 여차하면 나중에 카메라용으로도 사용해야 하니...^^

일단 설치를 하고 테스트를 위해서는 이정도가 필요해 보인다. 하지만 최종 목표는 XBMC를 설치해서 스마트폰이나 PC 혹은 기타 저장장치, NAS(차후)등의 영상을 TV로 편안하게 볼 수 있게 만든것이다. XBMC용으로는 다음에 시도해 보기로 하고 이번 팁에서는 최신 설치팩인 NOOBS를 가지고 도전해 보자.
제일 중요한 라즈베이 파이 본체를 알뜰하게 구입을 해야 해서 이곳 저곳 이베이에서도 찾아보고 국내 쇼핑몰도 찾아 보고 ...가격차이도 그렇게 많이 나지 않으니 빠른 배송을 위해 국내 쇼핑몰을 이용하는게 좋겠다는 결론이 나왔다.
대략 5만원대이면 구입이 가능하다. 그냥 자주 이용하는 오픈마켓에서 구입을 했다.
DVI 변환 케이블도 하나 구입했다. 일단 남는 모니터에서 테스트를 해봐야 겠다 싶어서 ... SD카드는 16GB가 있기는 하지만 카메라에도 사용해야 하기 때문에 추가로 8GB짜리 하나 더 구입했다. 그외 나머지는 집에 돌아 다니는 것들을 활용하기로 했다.

개봉
드디어 물건이 도착 했다. 작은 박스 하나... 


딸랑 보드하나 들어 있다. 너무 작군. 케이스나 메모리등을 셋트로 구성해서 팔기도 하는것 같은데 일단은 케이스도 없는 기본제품으로 구입을 했다. 케이스는 나중에 대충 종이박스로 하나 만들어 주자. 한편으로 내구성은 있는건지 살짝 걱정이 되기도 한다. 포트에 사방으로 케이블이 연결되고 움직이다 보면 떨어져 나갈지도 모르겠다는 생각이 든다. 완전히 세팅이 되면 크게 움직일은 없겠지만 ... 일단 조심!


미니PC 맞군. 이것보다 사양이 더 좋은것도 있는 모양인데 조금 더 비싸고 사용자가 많지 않아서 따라서 하기기 쉽지 않다. 잘 모르는것은 일단 사용하는 사람들이 많은 것을 택하는게 최선이다.


있을건 다 있는 재주꾼. 유선랜을 연결할 수 있는 이더넷 1개 / USB포트 2개 제공 / 사운드 출력을 하는 오디오 잭 / 영상 출력을 위한  RAC / USB충전 케이블으로 연결하는 전원포트 / 영상과 사운드를 동시에 출력하는  HDMI로 구성되어 있다. 뒷편에는 SD카드를 장착할 수 있는 스롯이 있다. 




- 제품사양
  • Broadcom BCM2835 700MHz ARM1176JZFS processor with FPU and Videocore 4 GPU
  • GPU provides Open GL ES 2.0, hardware-accelerated OpenVG and 1080p30 H.264 high-profile decode
  • GPU is capable of 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs with texture filtering and DMA infrastructure
  • 512MB RAM
  • Powered from micro USB socket
  • Size - 85.6 x 53.98 x 17mm
  • HDMI socket
  • USB 2.0 socket
  • RCA video socket
  • SD card socket
  • 10/100 BaseT Ethernet socket
  • 3.5mm audio out jack
  • Header footprint for camera connection


라즈베리파이용으로 추가로 구입한 SDGB Class10이다. 나중에 쓸일 없게 되면 카메라용으로 사용해야지... 요즘 카메라는 대부분 이 메모리카드를 사용하는듯 하다. 그외 필요한 키모드, 마우스, HDMI 케이블, 유선랜선등은 잡동사니 박스에서 찾아서 준비 해 두었다. 그런데 키보드가 PS/2 스타일이다. 이런... 할 수 없이 컴퓨터에 사용하는 키보드와 바꿔야 했다. 일단 설치를 해야 하니깐... 이렇게 모든 준비가 끝났다. 이제 본격적으로 설치를 하고 세팅을 해보자. 

OS 설치 
라즈베리 파이의 공식 사이트  http://www.raspberrypi.org/
최근에 새로운 설치팩이 나온듯 하다. 이전의 방식보다 좀 쉽게 개선이 된듯 하다. 무조건 최신의 것을 선택하고 라즈베리 사이트의 설치가이드에 따라 설치를 해 보자. 그전에 SD카드를 포맷하고 준비 해야 한다.

1. SD Formatter 4.0 으로 SD카드 포맷하기
라즈베리를 설치할 SD카드를 준비하고 포맷을 해야 한다. 권장하기를 4Gb이상을 사용하라고 권장 하고 있다. 일단은 카메라용으로 사두었던 16G를 사용해 보기로 하자. 나중에 8G짜리 정도 하나사서 바꿔 주도록 하자. 여기도 뭘 저장하거나 할것은 아니기 때문에 쓸데없이 큰 용량은 필요 없어 보인다. 포맷을 이해 포맷 유틸리티를 다운로드 받는다.
위 링크에서 들어가서 맨 하단의 I Accept를 클릭하면 다운로드 된다. 깨끗한 상태에서 설치하기 위한 사전 작업인듯 하다. PC에 인스톨 하고 실행한다. 



Option 버튼을 선택하고 'Format Size Adjustment'를 'ON'으로 바꿔주고 빠져 나온다. 
'Format'버튼을 클릭한다.
이렇게 SD카드가 준비 되었다.


2. NOOBS(New Out of Box Software)를 다운로드 한다. 


용량은 약 1.1GB정도 된다. 이 새로운 설치 팩은 원하는 모드를 선택해서 설치가 가능하도록 만들어 놓은 것 같다. 토렌트 파일로 된것은 마운트 오류가 생겨서 그냥 Zip파일로 된것을 바로 다운로드 했다. 시간이 꽤나 걸렸다.

3. 압축을 풀고 SD카드로 복사한다.



위에서 받은 파일을 선택하고 오른쪽 마우스 클릭해서 압축을 풀기를 선택하고 압축을 풀어 놓을 위치를 지정해 준다. 당연 SD카드가 마운트된 드라이브를 지정해 주면 된다. 준비된 SD카드로 복사한다. 아니면 하드디스크에 압축풀어서 다시 모든 파일을 복사해도 된다. 이 방법이 더 빠른가?  

PC에서 할일은 여기서 끝이 난다. 이제 SD카드를 뽑아서 라즈베리에 SD슬롯에 장착하면 된다.


4. 연결
설치할 OS도 준비가 되었고 이제 다른 필요한 기기들을 하나씩 연결을 한다.



5. 설치 
켜고 끄고하는 버튼도 없다. ^^; 그냥 전원을 연결하면 부팅을 시작한다. 제발 한번에 가자...! ^^


NOOBS로 설치를 하면 초보자도 쉽게 설치가 가능하게 여러가지 배포판을 선택해서 설치 할 수 있다. 일단은 권장하는 Raspbian을 설치해 보자. 솔직히 전문 개발자도 아닌데 이 배포판으로 그렇게 크게 활용을 하기는 힘들것이다. 그냥 어떤 모습인지 확인을 해보는 정도에서 끝내도록 하자. Raspbian에 체크를 해주고 상단의  install를 클릭한다. 마우스, 키보드는 자동으로 인식되어 사용이 가능하다.




OS설치가 완료되고 재부팅 되면서 뭔가 잔뜩 올라간다. 그리고 다음 과정에서 몇가지 설정을 하는 화면이 나온다. 설치시간은 꽤나 걸린다. 대단한 속도를 바랄 순 없겠지... 




다른것은 손댄 게 없고 데스크탑을 사용하도록 하는 옵션을 지정해 주고 완료를 하면 다시 리부팅 한다.  


그리고는 짠! 성공! 중간에 별 문제 없이 한번에 설치가 완료되고 부팅이 되었다. 
그런데 이제 뭘하지? ^^




한국 사이트에도 들어가보자. 한글이 제대로 나오게 하기 위해서는 폰트등을 설치해줘야  했다. 마지막으로 설치 기념으로 내 블로그에도 접속 보자. 음~ 잘 나오네..ㅋㅋ

이것이 바로 미니PC 라즈베리파이...! 이렇게 OS를 설치해 보았다. 이게 다가 아닐텐데? 할 수 있는게 더 많이 있을테지만 이 배포판은 이정도로만 살펴 보기로 했다. 초보자라도 설치도 별 문제가 없어서 앞으로 어떻게 활용을 하는냐에 따라 재밌고 유용한 도구가 될듯 하다. 여기에 웹서버를 구축해서 웹호스팅을 할 수 있고, NAS처럼 꾸밀 수도 있고, 로봇도  움직이고 이것 저것 많이 활용을 하는 것 같다. 내 능력 밖의 이야기이고, 다음에는 진짜 목적인  XBMC를 사용할수 있는 다른 배포판인  RaspBMC를 설치해 보도록 하자. 


Blogger Widget