2015.05.04 01:49

인터넷 라디오 프로토타입을 완성. 실행 후 버튼을 누르면 채널이 변경되도록 만들었다. 


일단 회로도 구성은 아래와 같다. 아직은 버튼이 하나라 간단하다. 



YELLOW BUTTON : 3.3V로 전원이 들어가고 10K옴을 통해 버튼으로 들어간다. 위 그림에서 위 오른쪽 다리 방향으로 GND로 이어지고, 버튼의 입력은 18번 핀으로 받도록 설정했다. 18번 pin은 wiringPI에서 5번이다.


실행 후 노란 버튼을 누르면 미리 입력된 채널이 변경되도록 했다. mms 출력을 위해 mplayer를 사용하며, mplayer 설치 방법 을 참고하기 바란다. 


코드는  아래와 같다. 

#include <stdio.h>

#include <stdlib.h>

#include <signal.h>

#include <time.h>

#include <unistd.h>

#include <wiringPi.h>


int main (void)

{

  if(-1 == wiringPiSetup())

    return 1;


  int SWITCH = 5; //  pin 18

  pinMode( SWITCH, INPUT);


  clock_t startPush = 0;// for shutdown

  const char *radiolist[] = {

    "mms://210.105.237.100/mbcam"

    ,"mms://211.181.136.136/livefm"

    ,"mms://114.108.140.39/magicfm_live"

    ,"mms://115.84.165.160/fmlive"

    ,"mms://211.218.209.124/L-FM_300k"

  };


  int count = sizeof(radiolist)/sizeof(int);

  printf("radio list count = %d\n", count);

  printf("now time = %d \n", startPush);


  pid_t sndPID = -1;

  pid_t myPID = getpid();

  int radioIdx = 0;

  for (;;)

  {

    if( digitalRead(SWITCH) == 0)

    {

        if(sndPID != -1)

          kill(sndPID, SIGQUIT);

        sndPID = fork();

        if(sndPID == 0)

        {

          sndPID = execl("/usr/bin/mplayer", "mplayer", "-quiet", radiolist[radioIdx], NULL);

        }else{

          ++radioIdx;

          if(radioIdx >= count)

            radioIdx = 0;

        }

    }

  }

  return 0 ;

}

18번 핀의 입력을 받으면 저장한 라디오 주소를 바꿔주도록 했다.


결과는 아래와 같다. 



다음에는 볼륨 조절, 종료 코드를 추가해 볼 예정이다. 

이후 블루투스 스피커 연결, 외형 제작, 실기 테스트 순서로 진행되어 마무리 될 예정. 


다들 좋은 하루 되세요. ^^





저작자 표시 비영리 동일 조건 변경 허락
신고
2015.04.18 22:06

이 글은 개인적으로, 라즈베리파이를 활용한 첫번째 프로젝트이다. 


아내가 집 안쪽에서 라디오 안잡혀서 힘들다고 불평이었다. ipad에 라디오 어플을 설치해줘도 각 방송사마다 별도 어플을 설치해야 되서 힘들다고.. 


고민끝에 라파이로 라디오를 만들어주기로 했다. 


그래서 최근에 라파이를 구매했고, 오늘 라이브러리 설치해서 테스트까지는 했다. 


과정은 아래와 같다.

(* 아래 과정은 http://kocoafab.cc/tutorial/view/340 블로그의 내용을 참고해서 제작되었으며, 짧은 진행을 위해 불필요한 과정 생략, 내 환경과 틀린 부분을 수정하여 제작되었음을 알립니다.)


(* command의 모든 과정은 sudo 명령을 먼저 입력하고 진행하자. 혹은 귀찮다면 나처럼, sudo su를 입력해서 권환을 획득 후 진행해도 된다.) 


1. 일단 패키지 설치를 위해 apt-get 업데이트를 해보자.

   apt-get update

   apt-get upgrade


2. 사운드 드라이버가 설치되었는지 확인합니다. 



만약 설치가 안되었다면 아래 명령을 통해 설치를 해보시기 바랍니다. 

modprobe snd-bcm2835


3. 이제 라디오 방송을 듣기 위해 mplayer를 설치합니다.
우리나라의 라디오 방송은 대부분 Microsoft Media Server (mms , http://goo.gl/XPTGJv 참고)로 전송됩니다. 이를 플레이 할 수 있는 대표적인 플레이어 입니다. 

apt-get install mplayer

설치 후 mplayer config에서 오디오 출력장치에 대한 설정을 수정해야 합니다. 

ctrl+w 로  ao=pulse, alsa, sdl: aalib 부분을 찾아 주석을 처리해 주세요. 

4. 이제 들어봅시다.

아래와 같이 입력해서 라디오를 들어봅시다. 

mms 주소는 인터넷으로 검색해 보시면 많이 나옵니다. 



이상입니다. 


다음 과정은 아래와 같이 진행될 예정입니다. 진행에 문제가 발생할 수 있어, 아래 과정은 변경될 수 있습니다.


1. 라즈베리파이 설정 

2. 전용 플레이어 프로그램 구현

3. 여러 mms 주소를 입력해두고 채널을 전환하는 과정 구현

4. 외부 스위치를 통해 채널 전환하는 과정

5. 설치 구동 영상 


저작자 표시 비영리 동일 조건 변경 허락
신고


티스토리 툴바